diff --git a/app/locales/cn.ts b/app/locales/cn.ts index c6f5d67fa..89cd521b1 100644 --- a/app/locales/cn.ts +++ b/app/locales/cn.ts @@ -80,6 +80,7 @@ const cn = { de: "Deutsch", vi: "Vietnamese", ru: "Русский", + no: "Norsk", }, }, Avatar: "头像", diff --git a/app/locales/de.ts b/app/locales/de.ts index 7c0b94db6..0b303bfd9 100644 --- a/app/locales/de.ts +++ b/app/locales/de.ts @@ -83,6 +83,7 @@ const de: LocaleType = { de: "Deutsch", vi: "Vietnamese", ru: "Русский", + no: "Norsk", }, }, Avatar: "Avatar", diff --git a/app/locales/en.ts b/app/locales/en.ts index ba6482574..b5a9d7691 100644 --- a/app/locales/en.ts +++ b/app/locales/en.ts @@ -82,6 +82,7 @@ const en: LocaleType = { de: "Deutsch", vi: "Vietnamese", ru: "Русский", + no: "Norsk", }, }, Avatar: "Avatar", diff --git a/app/locales/es.ts b/app/locales/es.ts index 9997752e8..6430bb1e8 100644 --- a/app/locales/es.ts +++ b/app/locales/es.ts @@ -82,6 +82,7 @@ const es: LocaleType = { de: "Deutsch", vi: "Vietnamese", ru: "Русский", + no: "Norsk", }, }, Avatar: "Avatar", diff --git a/app/locales/index.ts b/app/locales/index.ts index 757c1719d..ca4c9adfa 100644 --- a/app/locales/index.ts +++ b/app/locales/index.ts @@ -8,6 +8,7 @@ import JP from "./jp"; import DE from "./de"; import VI from "./vi"; import RU from "./ru"; +import NO from "./no"; export type { LocaleType } from "./cn"; @@ -22,6 +23,7 @@ export const AllLangs = [ "de", "vi", "ru", + "no", ] as const; export type Lang = (typeof AllLangs)[number]; @@ -85,4 +87,5 @@ export default { de: DE, vi: VI, ru: RU, + no: NO, }[getLang()] as typeof CN; diff --git a/app/locales/it.ts b/app/locales/it.ts index ddb85c948..19c854a5f 100644 --- a/app/locales/it.ts +++ b/app/locales/it.ts @@ -82,6 +82,7 @@ const it: LocaleType = { de: "Deutsch", vi: "Vietnamese", ru: "Русский", + no: "Norsk", }, }, Avatar: "Avatar", diff --git a/app/locales/jp.ts b/app/locales/jp.ts index d34ee68a6..b954f6fce 100644 --- a/app/locales/jp.ts +++ b/app/locales/jp.ts @@ -82,6 +82,7 @@ const jp: LocaleType = { de: "Deutsch", vi: "Vietnamese", ru: "Русский", + no: "Norsk", }, }, Avatar: "アバター", diff --git a/app/locales/no.ts b/app/locales/no.ts new file mode 100644 index 000000000..77e650786 --- /dev/null +++ b/app/locales/no.ts @@ -0,0 +1,186 @@ +import { SubmitKey } from "../store/config"; +import type { LocaleType } from "./index"; + +const en: LocaleType = { + WIP: "Arbeid pågår ...", + Error: { + Unauthorized: + "Du har ikke tilgang. Vennlig oppgi tildelt adgangskode.", + }, + ChatItem: { + ChatItemCount: (count: number) => `${count} meldinger`, + }, + Chat: { + SubTitle: (count: number) => `${count} meldinger med ChatGPT`, + Actions: { + ChatList: "Gå til chatlisten", + CompressedHistory: "Komprimert historikk for instrukser", + Export: "Eksporter alle meldinger i markdown-format", + Copy: "Kopier", + Stop: "Stopp", + Retry: "Prøv igjen", + Delete: "Slett", + }, + Rename: "Gi nytt navn", + Typing: "Skriver …", + Input: (submitKey: string) => { + var inputHints = `${submitKey} for å sende`; + if (submitKey === String(SubmitKey.Enter)) { + inputHints += ", Shift + Enter for å omgi"; + } + return inputHints + ", / for å søke instrukser"; + }, + Send: "Send", + }, + Export: { + Title: "Alle meldinger", + Copy: "Kopiere alle", + Download: "Last ned", + MessageFromYou: "Melding fra deg", + MessageFromChatGPT: "Melding fra ChatGPT", + }, + Memory: { + Title: "Minneinstruks", + EmptyContent: "Ingen sålant.", + Send: "Send minne", + Copy: "Kopiere minne", + Reset: "Nulstill sesjon", + ResetConfirm: + "Om du nillstiller vil du slette hele historikken. Er du sikker på at du vil nullstille?", + }, + Home: { + NewChat: "Ny chat", + DeleteChat: "Bekreft for å slette det valgte dialogen", + DeleteToast: "Samtale slettet", + Revert: "Tilbakestill", + }, + Settings: { + Title: "Innstillinger", + SubTitle: "Alle innstillinger", + Actions: { + ClearAll: "Fjern alle data", + ResetAll: "Nullstill innstillinger", + Close: "Lukk", + ConfirmResetAll: { + Confirm: "Er du sikker på at du vil nullstille alle konfigurasjoner?", + }, + ConfirmClearAll: { + Confirm: "Er du sikker på at du vil fjern alle samtaler?", + }, + }, + Lang: { + Name: "Language", // ATTENTION: if you wanna add a new translation, please do not translate this value, leave it as `Language` + Options: { + cn: "简体中文", + en: "English", + tw: "繁體中文", + es: "Español", + it: "Italiano", + tr: "Türkçe", + jp: "日本語", + de: "Deutsch", + no: "Norsk", + }, + }, + Avatar: "Avatar", + FontSize: { + Title: "Fontstørrelsen", + SubTitle: "Juster fontstørrelsen for samtaleinnholdet.", + }, + Update: { + Version: (x: string) => `Versjon: ${x}`, + IsLatest: "Siste versjon", + CheckUpdate: "Se etter oppdatering", + IsChecking: "Ser etter oppdatering ...", + FoundUpdate: (x: string) => `Fant ny versjon: ${x}`, + GoToUpdate: "Oppdater", + }, + SendKey: "Send nøkkel", + Theme: "Tema", + TightBorder: "Stram innramming", + SendPreviewBubble: "Vis forhåndsvisningsboble", + Prompt: { + Disable: { + Title: "Skru av autofullfør", + SubTitle: "Skriv / for å trigge autofullfør", + }, + List: "Instruksliste", + ListCount: (builtin: number, custom: number) => + `${builtin} innebygde, ${custom} brukerdefinerte`, + Edit: "Endre", + Modal: { + Title: "Instruksliste", + Add: "Legg til", + Search: "Søk instrukser", + }, + }, + HistoryCount: { + Title: "Tall på tilhørende meldinger", + SubTitle: "Antall sendte meldinger tilknyttet hver spørring", + }, + CompressThreshold: { + Title: "Terskeverdi for komprimering av historikk", + SubTitle: + "Komprimer dersom ikke-komprimert lengde på meldinger overskrider denne verdien", + }, + Token: { + Title: "API Key", + SubTitle: "Bruk din egen API-nøkkel for å ignorere tilgangskoden begrensning", + Placeholder: "OpenAI API-nøkkel", + }, + Usage: { + Title: "Saldo for konto", + SubTitle(used: any, total: any) { + return `Brukt denne måneden $${used}, abonnement $${total}`; + }, + IsChecking: "Sjekker ...", + Check: "Sjekk", + NoAccess: "Skriv inn API-nøkkelen for å sjekke saldo", + }, + AccessCode: { + Title: "Tilgangskode", + SubTitle: "Tilgangskontroll på", + Placeholder: "Trenger tilgangskode", + }, + Model: "Model", + Temperature: { + Title: "Temperatur", + SubTitle: "Høyere verdi gir mer kreative svar", + }, + MaxTokens: { + Title: "Maks tokens", + SubTitle: "Maksimum lengde på tokens for instrukser og svar", + }, + PresencePenlty: { + Title: "Straff for tilstedeværelse", + SubTitle: + "Høyere verdi øker sjansen for ny tematikk", + }, + }, + Store: { + DefaultTopic: "Ny samtale", + BotHello: "Hei! Hva kan jeg hjelpe deg med i dag?", + Error: "Noe gikk galt, vennligst prøv igjen senere.", + Prompt: { + History: (content: string) => + "Dette er et sammendrag av chatthistorikken mellom AI-en og brukeren som en oppsummering: " + + content, + Topic: + "Vennligst lag en fire til fem ords tittel som oppsummerer samtalen vår uten innledning, punktsetting, anførselstegn, punktum, symboler eller tillegg tekst. Fjern innrammende anførselstegn.", + Summarize: + "Oppsummer diskusjonen vår kort i 200 ord eller mindre for å bruke som en oppfordring til fremtidig sammenheng.", + }, + ConfirmClearAll: "Bekreft for å slette alle samtaler og innstillinger?", + }, + Copy: { + Success: "Kopiert til utklippstavle", + Failed: "Kopiering feilet. Vennligst gi tilgang til utklippstavlen.", + }, + Context: { + Toast: (x: any) => `Med ${x} kontekstuelle instrukser`, + Edit: "Kontekstuelle -og minneinstrukser", + Add: "Legg til", + }, +}; + +export default no; \ No newline at end of file diff --git a/app/locales/tr.ts b/app/locales/tr.ts index 80d2bae71..338b9fa92 100644 --- a/app/locales/tr.ts +++ b/app/locales/tr.ts @@ -82,6 +82,7 @@ const tr: LocaleType = { de: "Deutsch", vi: "Vietnamese", ru: "Русский", + no: "Norsk", }, }, Avatar: "Avatar", diff --git a/app/locales/tw.ts b/app/locales/tw.ts index ba54e8356..92fcfd176 100644 --- a/app/locales/tw.ts +++ b/app/locales/tw.ts @@ -80,6 +80,7 @@ const tw: LocaleType = { de: "Deutsch", vi: "Vietnamese", ru: "Русский", + no: "Norsk", }, }, Avatar: "大頭貼",