no.ts 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581
  1. import { SubmitKey } from "../store/config";
  2. import type { PartialLocaleType } from "./index";
  3. import { getClientConfig } from "../config/client";
  4. const isApp = !!getClientConfig()?.isApp;
  5. const no: PartialLocaleType = {
  6. WIP: "Arbeid pågår ...",
  7. Error: {
  8. Unauthorized: isApp
  9. ? "Ugyldig API-nøkkel oppdaget. Gå til [innstillinger](/#/settings) for å sjekke om API-nøkkelen er riktig konfigurert."
  10. : "Adgangskoden er feil eller tom. Gå til [innlogging](/#/auth) for å oppgi riktig adgangskode, eller fyll inn din egen OpenAI API-nøkkel på [innstillinger](/#/settings) siden.",
  11. },
  12. Auth: {
  13. Title: "Passord påkrevd",
  14. Tips: "Administrator har aktivert passordbeskyttelse. Vennligst skriv inn tilgangskoden nedenfor",
  15. SubTips: "Eller skriv inn din OpenAI eller Google API-nøkkel",
  16. Input: "Skriv tilgangskoden her",
  17. Confirm: "Bekreft",
  18. Later: "Kom tilbake senere",
  19. },
  20. ChatItem: {
  21. ChatItemCount: (count: number) => `${count} samtaler`,
  22. },
  23. Chat: {
  24. SubTitle: (count: number) => `Totalt ${count} samtaler`,
  25. EditMessage: {
  26. Title: "Rediger meldingshistorikk",
  27. Topic: {
  28. Title: "Samtaleemne",
  29. SubTitle: "Endre nåværende samtaleemne",
  30. },
  31. },
  32. Actions: {
  33. ChatList: "Vis meldingsliste",
  34. CompressedHistory: "Vis komprimert historikk",
  35. Export: "Eksporter samtaler",
  36. Copy: "Kopier",
  37. Stop: "Stopp",
  38. Retry: "Prøv igjen",
  39. Pin: "Fest",
  40. PinToastContent:
  41. "1 samtale er festet til forhåndsdefinerte oppfordringer",
  42. PinToastAction: "Se",
  43. Delete: "Slett",
  44. Edit: "Rediger",
  45. RefreshTitle: "Oppdater tittel",
  46. RefreshToast: "Forespørsel om titteloppdatering sendt",
  47. },
  48. Commands: {
  49. new: "Ny samtale",
  50. newm: "Start samtale fra maske",
  51. next: "Neste samtale",
  52. prev: "Forrige samtale",
  53. clear: "Rydd kontekst",
  54. del: "Slett samtale",
  55. },
  56. InputActions: {
  57. Stop: "Stopp respons",
  58. ToBottom: "Rull til nyeste",
  59. Theme: {
  60. auto: "Automatisk tema",
  61. light: "Lyst tema",
  62. dark: "Mørkt tema",
  63. },
  64. Prompt: "Hurtigkommando",
  65. Masks: "Alle masker",
  66. Clear: "Rydd samtale",
  67. Settings: "Samtaleinnstillinger",
  68. UploadImage: "Last opp bilde",
  69. },
  70. Rename: "Gi nytt navn til samtale",
  71. Typing: "Skriver…",
  72. Input: (submitKey: string) => {
  73. var inputHints = `${submitKey} send`;
  74. if (submitKey === String(SubmitKey.Enter)) {
  75. inputHints += ",Shift + Enter for linjeskift";
  76. }
  77. return (
  78. inputHints + ",/ for å utløse autoutfylling, : for å utløse kommando"
  79. );
  80. },
  81. Send: "Send",
  82. Config: {
  83. Reset: "Fjern minne",
  84. SaveAs: "Lagre som maske",
  85. },
  86. IsContext: "Forhåndsdefinerte oppfordringer",
  87. },
  88. Export: {
  89. Title: "Del samtalehistorikk",
  90. Copy: "Kopier alt",
  91. Download: "Last ned fil",
  92. Share: "Del til ShareGPT",
  93. MessageFromYou: "Bruker",
  94. MessageFromChatGPT: "ChatGPT",
  95. Format: {
  96. Title: "Eksporterformat",
  97. SubTitle: "Kan eksporteres som Markdown-tekst eller PNG-bilde",
  98. },
  99. IncludeContext: {
  100. Title: "Inkluder maske kontekst",
  101. SubTitle: "Skal maske kontekst vises i meldinger",
  102. },
  103. Steps: {
  104. Select: "Velg",
  105. Preview: "Forhåndsvis",
  106. },
  107. Image: {
  108. Toast: "Genererer skjermbilde",
  109. Modal: "Langtrykk eller høyreklikk for å lagre bilde",
  110. },
  111. },
  112. Select: {
  113. Search: "Søk meldinger",
  114. All: "Velg alle",
  115. Latest: "Siste meldinger",
  116. Clear: "Fjern valg",
  117. },
  118. Memory: {
  119. Title: "Historisk sammendrag",
  120. EmptyContent: "Samtaleinnholdet er for kort, ingen oppsummering nødvendig",
  121. Send: "Automatisk komprimere samtalehistorikk og sende som kontekst",
  122. Copy: "Kopier sammendrag",
  123. Reset: "[unused]",
  124. ResetConfirm: "Er du sikker på at du vil tømme historisk sammendrag?",
  125. },
  126. Home: {
  127. NewChat: "Ny samtale",
  128. DeleteChat: "Er du sikker på at du vil slette den valgte samtalen?",
  129. DeleteToast: "Samtale slettet",
  130. Revert: "Angre",
  131. },
  132. Settings: {
  133. Title: "Innstillinger",
  134. SubTitle: "Alle innstillingsalternativer",
  135. Danger: {
  136. Reset: {
  137. Title: "Tilbakestill alle innstillinger",
  138. SubTitle:
  139. "Tilbakestill alle innstillingsalternativer til standardverdier",
  140. Action: "Tilbakestill nå",
  141. Confirm: "Bekreft tilbakestilling av alle innstillinger?",
  142. },
  143. Clear: {
  144. Title: "Slett alle data",
  145. SubTitle: "Slett alle samtaler og innstillingsdata",
  146. Action: "Slett nå",
  147. Confirm: "Bekreft sletting av alle samtaler og innstillingsdata?",
  148. },
  149. },
  150. Lang: {
  151. Name: "Language", // ATTENTION: if you wanna add a new translation, please do not translate this value, leave it as `Language`
  152. All: "Alle språk",
  153. },
  154. Avatar: "Profilbilde",
  155. FontSize: {
  156. Title: "Skriftstørrelse",
  157. SubTitle: "Skriftstørrelse for samtaleinnhold",
  158. },
  159. FontFamily: {
  160. Title: "Chat-skrifttype",
  161. SubTitle:
  162. "Skrifttypen for chatinnhold, la stå tom for å bruke global standardskrifttype",
  163. Placeholder: "Skriftnavn",
  164. },
  165. InjectSystemPrompts: {
  166. Title: "Injiser systemprompter",
  167. SubTitle:
  168. "Tving inn et systemprompt som simulerer ChatGPT i starten av hver forespørsel",
  169. },
  170. InputTemplate: {
  171. Title: "Forhåndsbehandling av brukerinput",
  172. SubTitle:
  173. "Den nyeste meldingen fra brukeren vil bli fylt ut i denne malen",
  174. },
  175. Update: {
  176. Version: (x: string) => `Nåværende versjon: ${x}`,
  177. IsLatest: "Er den nyeste versjonen",
  178. CheckUpdate: "Sjekk oppdateringer",
  179. IsChecking: "Sjekker oppdateringer...",
  180. FoundUpdate: (x: string) => `Ny versjon oppdaget: ${x}`,
  181. GoToUpdate: "Gå til oppdatering",
  182. },
  183. SendKey: "Send-knapp",
  184. Theme: "Tema",
  185. TightBorder: "Ingen ramme-modus",
  186. SendPreviewBubble: {
  187. Title: "Forhåndsvisningsboble",
  188. SubTitle: "Forhåndsvis Markdown-innhold i en forhåndsvisningsboble",
  189. },
  190. AutoGenerateTitle: {
  191. Title: "Automatisk generere tittel",
  192. SubTitle: "Generer en passende tittel basert på samtaleinnholdet",
  193. },
  194. Sync: {
  195. CloudState: "Skydatasynkronisering",
  196. NotSyncYet: "Har ikke blitt synkronisert ennå",
  197. Success: "Synkronisering vellykket",
  198. Fail: "Synkronisering mislyktes",
  199. Config: {
  200. Modal: {
  201. Title: "Konfigurer sky-synkronisering",
  202. Check: "Sjekk tilgjengelighet",
  203. },
  204. SyncType: {
  205. Title: "Synkroniseringstype",
  206. SubTitle: "Velg ønsket synkroniseringsserver",
  207. },
  208. Proxy: {
  209. Title: "Aktiver proxy",
  210. SubTitle:
  211. "Når du synkroniserer i nettleseren, må proxy være aktivert for å unngå CORS-restriksjoner",
  212. },
  213. ProxyUrl: {
  214. Title: "Proxy-URL",
  215. SubTitle: "Kun for prosjektets innebygde CORS-proxy",
  216. },
  217. WebDav: {
  218. Endpoint: "WebDAV-adresse",
  219. UserName: "Brukernavn",
  220. Password: "Passord",
  221. },
  222. UpStash: {
  223. Endpoint: "UpStash Redis REST-URL",
  224. UserName: "Sikkerhetskopinavn",
  225. Password: "UpStash Redis REST-token",
  226. },
  227. },
  228. LocalState: "Lokal data",
  229. Overview: (overview: any) => {
  230. return `${overview.chat} samtaler, ${overview.message} meldinger, ${overview.prompt} oppfordringer, ${overview.mask} masker`;
  231. },
  232. ImportFailed: "Import mislyktes",
  233. },
  234. Mask: {
  235. Splash: {
  236. Title: "Maskestartside",
  237. SubTitle: "Vis maskestartside når du oppretter en ny samtale",
  238. },
  239. Builtin: {
  240. Title: "Skjul innebygde masker",
  241. SubTitle: "Skjul innebygde masker i alle maskelister",
  242. },
  243. },
  244. Prompt: {
  245. Disable: {
  246. Title: "Deaktiver automatisk fullføring av oppfordringer",
  247. SubTitle: "Skriv / i tekstboksen for å utløse automatisk fullføring",
  248. },
  249. List: "Egendefinerte oppfordringer",
  250. ListCount: (builtin: number, custom: number) =>
  251. `Innebygde ${builtin}, brukerdedefinerte ${custom}`,
  252. Edit: "Rediger",
  253. Modal: {
  254. Title: "Oppfordringsliste",
  255. Add: "Ny",
  256. Search: "Søk oppfordringer",
  257. },
  258. EditModal: {
  259. Title: "Rediger oppfordring",
  260. },
  261. },
  262. HistoryCount: {
  263. Title: "Antall historiske meldinger",
  264. SubTitle: "Antall historiske meldinger som sendes med hver forespørsel",
  265. },
  266. CompressThreshold: {
  267. Title: "Kompressterskel for historiske meldinger",
  268. SubTitle:
  269. "Når ukomprimerte historiske meldinger overskrider denne verdien, vil de bli komprimert",
  270. },
  271. Usage: {
  272. Title: "Saldoforespørsel",
  273. SubTitle(used: any, total: any) {
  274. return `Brukt denne måneden $${used}, total abonnementsbeløp $${total}`;
  275. },
  276. IsChecking: "Sjekker...",
  277. Check: "Sjekk på nytt",
  278. NoAccess: "Skriv inn API-nøkkel eller tilgangspassord for å se saldo",
  279. },
  280. Access: {
  281. AccessCode: {
  282. Title: "Adgangskode",
  283. SubTitle: "Administrator har aktivert kryptert tilgang",
  284. Placeholder: "Skriv inn tilgangskoden",
  285. },
  286. CustomEndpoint: {
  287. Title: "Egendefinert API",
  288. SubTitle: "Bruk egendefinerte Azure- eller OpenAI-tjenester",
  289. },
  290. Provider: {
  291. Title: "Modelltilbyder",
  292. SubTitle: "Bytt til forskjellige tilbydere",
  293. },
  294. OpenAI: {
  295. ApiKey: {
  296. Title: "API-nøkkel",
  297. SubTitle:
  298. "Bruk egendefinert OpenAI-nøkkel for å omgå passordtilgangsbegrensninger",
  299. Placeholder: "OpenAI API-nøkkel",
  300. },
  301. Endpoint: {
  302. Title: "API-adresse",
  303. SubTitle: "Må inkludere http(s):// utenom standardadresse",
  304. },
  305. },
  306. Azure: {
  307. ApiKey: {
  308. Title: "API-nøkkel",
  309. SubTitle:
  310. "Bruk egendefinert Azure-nøkkel for å omgå passordtilgangsbegrensninger",
  311. Placeholder: "Azure API-nøkkel",
  312. },
  313. Endpoint: {
  314. Title: "API-adresse",
  315. SubTitle: "Eksempel:",
  316. },
  317. ApiVerion: {
  318. Title: "API-versjon (azure api versjon)",
  319. SubTitle: "Velg en spesifikk delversjon",
  320. },
  321. },
  322. Anthropic: {
  323. ApiKey: {
  324. Title: "API-nøkkel",
  325. SubTitle:
  326. "Bruk egendefinert Anthropic-nøkkel for å omgå passordtilgangsbegrensninger",
  327. Placeholder: "Anthropic API-nøkkel",
  328. },
  329. Endpoint: {
  330. Title: "API-adresse",
  331. SubTitle: "Eksempel:",
  332. },
  333. ApiVerion: {
  334. Title: "API-versjon (claude api versjon)",
  335. SubTitle: "Velg en spesifikk API-versjon",
  336. },
  337. },
  338. Google: {
  339. ApiKey: {
  340. Title: "API-nøkkel",
  341. SubTitle: "Hent din API-nøkkel fra Google AI",
  342. Placeholder: "Skriv inn din Google AI Studio API-nøkkel",
  343. },
  344. Endpoint: {
  345. Title: "Endepunktadresse",
  346. SubTitle: "Eksempel:",
  347. },
  348. ApiVersion: {
  349. Title: "API-versjon (kun for gemini-pro)",
  350. SubTitle: "Velg en spesifikk API-versjon",
  351. },
  352. GoogleSafetySettings: {
  353. Title: "Google sikkerhetsfiltreringsnivå",
  354. SubTitle: "Sett innholdsfiltreringsnivå",
  355. },
  356. },
  357. Baidu: {
  358. ApiKey: {
  359. Title: "API-nøkkel",
  360. SubTitle: "Bruk egendefinert Baidu API-nøkkel",
  361. Placeholder: "Baidu API-nøkkel",
  362. },
  363. SecretKey: {
  364. Title: "Hemmelig nøkkel",
  365. SubTitle: "Bruk egendefinert Baidu hemmelig nøkkel",
  366. Placeholder: "Baidu hemmelig nøkkel",
  367. },
  368. Endpoint: {
  369. Title: "API-adresse",
  370. SubTitle:
  371. "Støtter ikke egendefinerte konfigurasjoner. Se .env-konfigurasjon.",
  372. },
  373. },
  374. ByteDance: {
  375. ApiKey: {
  376. Title: "API-nøkkel",
  377. SubTitle: "Bruk egendefinert ByteDance API-nøkkel",
  378. Placeholder: "ByteDance API-nøkkel",
  379. },
  380. Endpoint: {
  381. Title: "API-adresse",
  382. SubTitle: "Eksempel:",
  383. },
  384. },
  385. Alibaba: {
  386. ApiKey: {
  387. Title: "API-nøkkel",
  388. SubTitle: "Bruk egendefinert Alibaba Cloud API-nøkkel",
  389. Placeholder: "Alibaba Cloud API-nøkkel",
  390. },
  391. Endpoint: {
  392. Title: "API-adresse",
  393. SubTitle: "Eksempel:",
  394. },
  395. },
  396. CustomModel: {
  397. Title: "Egendefinert modellnavn",
  398. SubTitle: "Legg til egendefinerte modellalternativer, skill med komma",
  399. },
  400. },
  401. Model: "Modell",
  402. CompressModel: {
  403. Title: "Komprimeringsmodell",
  404. SubTitle: "Modell brukt for å komprimere historikken",
  405. },
  406. Temperature: {
  407. Title: "Tilfeldighet (temperature)",
  408. SubTitle: "Høyere verdi gir mer tilfeldige svar",
  409. },
  410. TopP: {
  411. Title: "Kjerneprøvetaking (top_p)",
  412. SubTitle:
  413. "Ligner på tilfeldighet, men endre ikke sammen med tilfeldighet",
  414. },
  415. MaxTokens: {
  416. Title: "Maksimalt antall tokens per svar (max_tokens)",
  417. SubTitle: "Maksimalt antall tokens brukt i en enkelt interaksjon",
  418. },
  419. PresencePenalty: {
  420. Title: "Emnens ferskhet (presence_penalty)",
  421. SubTitle:
  422. "Høyere verdi gir større sannsynlighet for å utvide til nye emner",
  423. },
  424. FrequencyPenalty: {
  425. Title: "Frekvensstraff (frequency_penalty)",
  426. SubTitle:
  427. "Høyere verdi gir større sannsynlighet for å redusere gjentakende ord",
  428. },
  429. },
  430. Store: {
  431. DefaultTopic: "Ny samtale",
  432. BotHello: "Hva kan jeg hjelpe deg med?",
  433. Error: "Noe gikk galt, prøv igjen senere",
  434. Prompt: {
  435. History: (content: string) =>
  436. "Dette er oppsummeringen av historiske samtaler som bakgrunn:" +
  437. content,
  438. Topic:
  439. 'Bruk fire til fem ord for å returnere en kort oppsummering av temaet, uten forklaring, uten tegnsetting, uten fyllord, uten ekstra tekst, uten fet skrift. Hvis det ikke er noe tema, returner bare "sladder".',
  440. Summarize:
  441. "Oppsummer samtalen kort som en kontekstuell prompt for fremtidige referanser, hold det innen 200 tegn",
  442. },
  443. },
  444. Copy: {
  445. Success: "Kopiert til utklippstavlen",
  446. Failed: "Kopiering mislyktes, vennligst gi tillatelse til utklippstavlen",
  447. },
  448. Download: {
  449. Success: "Innholdet er lastet ned til katalogen din.",
  450. Failed: "Nedlasting mislyktes.",
  451. },
  452. Context: {
  453. Toast: (x: any) => `Inneholder ${x} forhåndsinnstilte oppfordringer`,
  454. Edit: "Nåværende samtaleinnstillinger",
  455. Add: "Legg til en ny samtale",
  456. Clear: "Konteksten er tømt",
  457. Revert: "Gjenopprett konteksten",
  458. },
  459. Plugin: {
  460. Name: "Plugin",
  461. },
  462. FineTuned: {
  463. Sysmessage: "Du er en assistent",
  464. },
  465. SearchChat: {
  466. Name: "Søk",
  467. Page: {
  468. Title: "Søk i chatthistorikk",
  469. Search: "Skriv inn søkeord",
  470. NoResult: "Ingen resultater funnet",
  471. NoData: "Ingen data",
  472. Loading: "Laster inn",
  473. SubTitle: (count: number) => `Fant ${count} resultater`,
  474. },
  475. Item: {
  476. View: "Vis",
  477. },
  478. },
  479. Mask: {
  480. Name: "Maske",
  481. Page: {
  482. Title: "Forhåndsdefinerte rollemasker",
  483. SubTitle: (count: number) =>
  484. `${count} forhåndsdefinerte rolledefinisjoner`,
  485. Search: "Søk etter rollemasker",
  486. Create: "Opprett ny",
  487. },
  488. Item: {
  489. Info: (count: number) => `Inneholder ${count} forhåndsdefinerte samtaler`,
  490. Chat: "Samtale",
  491. View: "Vis",
  492. Edit: "Rediger",
  493. Delete: "Slett",
  494. DeleteConfirm: "Bekreft sletting?",
  495. },
  496. EditModal: {
  497. Title: (readonly: boolean) =>
  498. `Rediger forhåndsdefinert maske ${readonly ? "(kun lesing)" : ""}`,
  499. Download: "Last ned forhåndsdefinert",
  500. Clone: "Kopier forhåndsdefinert",
  501. },
  502. Config: {
  503. Avatar: "Rollebilde",
  504. Name: "Rolle navn",
  505. Sync: {
  506. Title: "Bruk globale innstillinger",
  507. SubTitle: "Bruker nåværende samtale globale modellinnstillinger",
  508. Confirm:
  509. "De tilpassede innstillingene for den nåværende samtalen vil bli overskrevet automatisk. Bekreft at du vil bruke globale innstillinger?",
  510. },
  511. HideContext: {
  512. Title: "Skjul forhåndsdefinerte samtaler",
  513. SubTitle:
  514. "Når skjult, vil forhåndsdefinerte samtaler ikke vises i chat-grensesnittet",
  515. },
  516. Share: {
  517. Title: "Del denne masken",
  518. SubTitle: "Generer en direkte lenke til denne masken",
  519. Action: "Kopier lenke",
  520. },
  521. },
  522. },
  523. NewChat: {
  524. Return: "Tilbake",
  525. Skip: "Start direkte",
  526. NotShow: "Vis ikke igjen",
  527. ConfirmNoShow:
  528. "Bekreft deaktivering? Du kan aktivere det igjen i innstillingene når som helst.",
  529. Title: "Velg en maske",
  530. SubTitle: "Start nå, og få tanker som kolliderer med sjelen bak masken",
  531. More: "Se alle",
  532. },
  533. URLCommand: {
  534. Code: "Oppdaget at lenken allerede inneholder tilgangskode. Ønsker du å fylle den ut automatisk?",
  535. Settings:
  536. "Oppdaget at lenken inneholder forhåndsinnstillinger. Ønsker du å fylle dem ut automatisk?",
  537. },
  538. UI: {
  539. Confirm: "Bekreft",
  540. Cancel: "Avbryt",
  541. Close: "Lukk",
  542. Create: "Opprett",
  543. Edit: "Rediger",
  544. Export: "Eksporter",
  545. Import: "Importer",
  546. Sync: "Synkroniser",
  547. Config: "Konfigurer",
  548. },
  549. Exporter: {
  550. Description: {
  551. Title: "Bare meldinger etter at konteksten er ryddet vil bli vist",
  552. },
  553. Model: "Modell",
  554. Messages: "Meldinger",
  555. Topic: "Emne",
  556. Time: "Tid",
  557. },
  558. };
  559. export default no;