no.ts 17 KB

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