Skip to content

Commit 3f61e3b

Browse files
authored
feat: i18n add da dk (#1139)
* feat: add da-DK * feat: add da-dk setting * feat: add da-DK translate * fix: i18n placeholder
1 parent ebb5a98 commit 3f61e3b

26 files changed

+1999
-4
lines changed

electron-builder-macx64.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,8 @@ electronLanguages:
5858
- fa
5959
- pt-BR
6060
- pt
61+
- da-DK
62+
- da
6163
mac:
6264
entitlementsInherit: build/entitlements.mac.plist
6365
extendInfo:

electron-builder.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,8 @@ electronLanguages:
5757
- fa
5858
- pt-BR
5959
- pt
60+
- da-DK
61+
- da
6062
win:
6163
executableName: DeepChat
6264
nsis:

src/main/presenter/configPresenter/index.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -685,7 +685,8 @@ export class ConfigPresenter implements IConfigPresenter {
685685
'ja-JP',
686686
'fr-FR',
687687
'fa-IR',
688-
'pt-BR'
688+
'pt-BR',
689+
'da-DK'
689690
]
690691

691692
// Exact match

src/renderer/settings/components/DisplaySettings.vue

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -339,7 +339,8 @@ const languageOptions = [
339339
{ value: 'ja-JP', label: '日本語' },
340340
{ value: 'fr-FR', label: 'Français' },
341341
{ value: 'fa-IR', label: 'فارسی (ایران)' },
342-
{ value: 'pt-BR', label: 'Português (Brasil)' }
342+
{ value: 'pt-BR', label: 'Português (Brasil)' },
343+
{ value: 'da-DK', label: 'Dansk' }
343344
]
344345
345346
watch(selectedLanguage, async (newValue) => {
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{
2+
"canaryChannel": "Intern testversion",
3+
"checkUpdateButton": "Tjek for opdateringer",
4+
"description": "DeepChat er en tværplatform AI-klient, der har til formål at gøre det nemmere for flere mennesker at bruge AI.",
5+
"deviceInfo": {
6+
"arch": "arkitektur",
7+
"cpuModel": "CPU-model",
8+
"osVersion": "Systemversion",
9+
"platform": "platform",
10+
"title": "Enhedsoplysninger",
11+
"totalMemory": "Total hukommelse"
12+
},
13+
"disclaimerButton": "Ansvarsfraskrivelse",
14+
"disclaimerTitle": "Brugsbetingelser erklæring",
15+
"stableChannel": "officiel version",
16+
"title": "DeepChat",
17+
"updateChannel": "Opdateringskanal",
18+
"website": "Besøg vores hjemmeside"
19+
}
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
{
2+
"class": "klasse",
3+
"classDiagram": "Klassediagram",
4+
"classDiagramOf": "{name}s klassediagram",
5+
"clickToOpen": "Klik for at åbne",
6+
"code": "kode",
7+
"codeSnippet": "kodeudsnit",
8+
"copy": "kopiér",
9+
"copyAsImage": "Kopier som billede",
10+
"copyFailed": "Kopiering mislykkedes",
11+
"copyFailedDesc": "Kan ikke kopiere indhold til udklipsholderen",
12+
"copyImageFailedDesc": "Kan ikke kopiere billede til udklipsholderen",
13+
"copyImageSuccessDesc": "Billedet er kopieret til udklipsholderen",
14+
"copySuccess": "Kopiering lykkedes",
15+
"copySuccessDesc": "Indholdet er kopieret til udklipsholderen",
16+
"desktop": "skrivebord",
17+
"erDiagram": "ER-diagram",
18+
"erDiagramOf": "ER-diagram for {name}",
19+
"export": "Eksportere",
20+
"flowchart": "flowchart",
21+
"flowchartOf": "{name}s flowdiagram",
22+
"function": "funktion",
23+
"ganttChart": "Gantt-diagram",
24+
"height": "højde",
25+
"htmlDocument": "HTML-dokument",
26+
"htmlPreviewTitle": "HTML-forhåndsvisning",
27+
"markdownDocument": "Markdown dokument",
28+
"mermaid": {
29+
"renderError": "Rendering mislykkedes: {message}"
30+
},
31+
"mermaidDiagram": "Mermaid diagrammer",
32+
"mobile": "mobiltelefon",
33+
"moduleImport": "Modulimport",
34+
"noSvgContent": "Ingen tilgængeligt SVG-indhold",
35+
"pieChart": "Cirkeldiagram",
36+
"pieChartOf": "{name}s cirkeldiagram",
37+
"preview": "Forhåndsvisning",
38+
"reactComponent": "React komponent",
39+
"responsive": "Responsiv",
40+
"sanitizingSvg": "Rensning af SVG-indhold...",
41+
"sequenceDiagram": "Sekvensdiagram",
42+
"sequenceDiagramBetween": "Sekvensdiagram mellem {participants}",
43+
"stateDiagram": "tilstandsgraf",
44+
"stateDiagramOf": "{name}s tilstandsgraf",
45+
"svgImage": "SVG-billede",
46+
"svgPreviewTitle": "SVG-forhåndsvisning",
47+
"svgSanitizationFailed": "SVG-indholdet bestod ikke sikkerhedsgodkendelsen",
48+
"tablet": "tablet",
49+
"unknownDocument": "Ukendt dokument",
50+
"variableDefinition": "{name} variabeldefinition",
51+
"width": "Bredde"
52+
}
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
{
2+
"features": {
3+
"artifactThinking": "artifact tænkning",
4+
"thoughtForSeconds": "Tænkte i {seconds} sekunder",
5+
"thoughtForSecondsLoading": "Tænker (sekund {seconds})",
6+
"webSearch": "Netværkssøgning"
7+
},
8+
"input": {
9+
"acpWorkdir": "arbejdskatalog",
10+
"acpWorkdirChange": "Gendan standard arbejdsmappe",
11+
"acpWorkdirCurrent": "Nuværende arbejdsmappe: {path}",
12+
"acpWorkdirSelect": "Vælg arbejdsmappe",
13+
"acpWorkdirTooltip": "Indstil ACP arbejdsmappe",
14+
"dropFiles": "Træk filer hertil",
15+
"fileSelect": "Vælg fil",
16+
"functionSwitch": "Funktionsafbryder",
17+
"historyPlaceholder": "(Udfyld med Tab)",
18+
"inputArea": "Indtastningsområde",
19+
"pasteFiles": "Understøtter kopiering og indsættelse af filer",
20+
"placeholder": "Spørg om noget? Du kan referere til værktøjer, filer, ressourcer osv. ved at bruge {'@'}.",
21+
"promptFilesAdded": "Prompt-filen er blevet tilføjet",
22+
"promptFilesAddedDesc": "{count} filer er blevet tilføjet successfully",
23+
"promptFilesError": "Filbehandlingsfejl",
24+
"promptFilesErrorDesc": "{count} filer kunne ikke behandles",
25+
"rateLimitQueue": "Kø {count}",
26+
"rateLimitQueueTooltip": "Der er {count} anmodninger i køen, med et interval på {interval} sekunder.",
27+
"rateLimitReadyTooltip": "Du kan sende en anmodning med et interval på {interval} sekunder.",
28+
"rateLimitWait": "Vent {seconds}s",
29+
"rateLimitWaitingTooltip": "Vent {seconds} sekunder, interval {interval} sekunder",
30+
"fileArea": "fil område"
31+
},
32+
"mcpUi": {
33+
"badge": "UI",
34+
"collapse": "Skjul",
35+
"expand": "udvide",
36+
"title": "MCP-brugergrænseflade"
37+
},
38+
"messages": {
39+
"rateLimitEstimated": "Forventet ventetid",
40+
"rateLimitImmediately": "med det samme",
41+
"rateLimitMinutes": "minut",
42+
"rateLimitQueue": "Køposition",
43+
"rateLimitQuickSettings": "Juster begrænsninger",
44+
"rateLimitSeconds": "sekund",
45+
"rateLimitSwitchProvider": "Skift tjenesteudbyder",
46+
"rateLimitTitle": "Anmodningsfrekvensbegrænsning",
47+
"rateLimitWaiting": "Anmodningsfrekvensbegrænsning, venter i kø...",
48+
"thinking": "Tænker..."
49+
},
50+
"navigation": {
51+
"assistantMessage": "Assistentens svar",
52+
"noMessages": "Ingen nyheder endnu",
53+
"noResults": "Ingen matchende besked fundet",
54+
"searchPlaceholder": "Søg beskeder...",
55+
"searchResults": "Fundet {count} resultater, i alt {total} beskeder",
56+
"title": "Beskednavigation",
57+
"totalMessages": "I alt {count} beskeder",
58+
"unknownMessage": "Ukendt besked",
59+
"userMessage": "Brugermeddelelse"
60+
},
61+
"notify": {
62+
"generationComplete": "Generering fuldført",
63+
"generationError": "Generering mislykkedes"
64+
},
65+
"rateLimit": {
66+
"queueTooltip": "Der er {count} anmodninger i køen, med et interval på {interval} sekunder.",
67+
"readyTooltip": "Du kan sende en anmodning med et interval på {interval} sekunder.",
68+
"waitingTooltip": "Vent {seconds} sekunder, interval {interval} sekunder"
69+
},
70+
"search": {
71+
"description": "Der blev fundet {0} relaterede resultater.",
72+
"error": "Søgning mislykkedes",
73+
"optimizing": "Udtrækker søgeintention...",
74+
"reading": "Søger og læser websider...",
75+
"results": "{0} websider fundet",
76+
"searching": "Søger...",
77+
"title": "Søgeresultater"
78+
},
79+
"toolCall": {
80+
"calling": "Værktøj i brug",
81+
"clickToView": "Klik for at se detaljer",
82+
"end": "Værktøjsopkald fuldført",
83+
"error": "Fejl ved kald af værktøj",
84+
"functionName": "Funktionsnavn",
85+
"params": "parameter",
86+
"response": "Værktøjsrespons",
87+
"responseData": "Svardata",
88+
"title": "Værktøjsopkald"
89+
}
90+
}
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
{
2+
"add": "tilføjet",
3+
"cancel": "Annuller",
4+
"clear": "ryd op",
5+
"close": "lukke",
6+
"collapse": "Skjul",
7+
"confirm": "bekræfte",
8+
"copied": "Kopieret",
9+
"copy": "kopiér",
10+
"copyCode": "kopier kode",
11+
"copyFailed": "Kopiering mislykkedes",
12+
"copyFailedDesc": "Kan ikke kopiere indhold til udklipsholderen",
13+
"copyImageSuccess": "Kopiering lykkedes",
14+
"copyImageSuccessDesc": "Billedet er kopieret til udklipsholderen",
15+
"copySuccess": "Kopiering lykkedes",
16+
"copySuccessDesc": "Indholdet er kopieret til udklipsholderen",
17+
"customProxyUrl": "Brugerdefineret proxyadresse",
18+
"customProxyUrlPlaceholder": "For eksempel: http://127.0.0.1:7890",
19+
"delete": "slet",
20+
"disclaimer": "Ansvarsfraskrivelse",
21+
"edit": "redigere",
22+
"enabled": "Aktiveret",
23+
"error": {
24+
"causeOfError": "Mulig årsag til fejl:",
25+
"cleanMessagesFailed": "Rydning af samtalemeddelelser mislykkedes",
26+
"createChatFailed": "Oprettelse af session mislykkedes",
27+
"deleteChatFailed": "Sletning af samtale mislykkedes",
28+
"error400": "Anmodningsfejl, parameter- eller kompatibilitetsproblem",
29+
"error403": "Adgang til denne model er forbudt, det kan skyldes utilstrækkelig saldo eller manglende adgangstilladelse.",
30+
"error404": "Anmodningsadressen findes ikke, det konfigurerede domænenavn eller modelnavn er forkert.",
31+
"error429": "Anmodningshastigheden er for hurtig, og adgangsfrekvensen er blevet begrænset af tjenesteudbyderen.",
32+
"error500": "Serveren har en fejl, den anmodede tjeneste er muligvis ustabil i øjeblikket, prøv venligst igen senere.",
33+
"error502": "Gateway-fejl, den anmodede tjeneste er muligvis ustabil i øjeblikket, prøv venligst igen senere.",
34+
"error503": "Tjenesten er utilgængelig, den anmodede tjeneste kan være ustabil i øjeblikket, prøv venligst igen senere.",
35+
"error504": "Anmodningen er udløbet, den anmodede tjeneste kan være ustabil i øjeblikket, eller der kan være fejl i netværksforbindelsen. Kontroller venligst proxy og andre netværksindstillinger, og prøv igen.",
36+
"invalidJson": "Ugyldig JSON-format",
37+
"maximumToolCallsReached": "Opnået maksimal antal værktøjsopkald",
38+
"noModelResponse": "Modellen returnerede ikke noget indhold, det kan være på grund af timeout.",
39+
"operationFailed": "Handling mislykkedes",
40+
"renameChatFailed": "Omdøbning af samtale mislykkedes",
41+
"requestFailed": "Anmodning mislykkedes...",
42+
"selectChatFailed": "Valg af samtale mislykkedes",
43+
"sessionInterrupted": "Samtalen blev afbrudt uventet, genereringen er ikke fuldført.",
44+
"userCanceledGeneration": "Brugeren annullerede genereringen",
45+
"error401": "Godkendelse mislykkedes, forkert API-nøgle eller domænenavn blev konfigureret"
46+
},
47+
"expand": "udvide",
48+
"export": "Eksportere",
49+
"format": "formatere",
50+
"image": "billede",
51+
"invalidProxyUrl": "Ugyldig proxyadresse, indtast venligst en gyldig http/https URL.",
52+
"languageSelect": "Vælg sprog",
53+
"languageSystem": "Følg systemet",
54+
"loading": "Indlæser...",
55+
"newChat": "Ny samtale",
56+
"newTab": "Ny fane",
57+
"newTopic": "nyt emne",
58+
"paste": "indsæt",
59+
"proxyMode": "Proxy-mønster",
60+
"proxyModeCustom": "Brugerdefineret proxy",
61+
"proxyModeNone": "Brug ikke proxy",
62+
"proxyModeSelect": "Vælg agenttilstand",
63+
"proxyModeSystem": "Systemagent",
64+
"reset": "Nulstil",
65+
"resetData": "Nulstil data",
66+
"resetDataConfirmDescription": "Dette vil gendanne alle data til standardindstillingerne. Denne handling kan ikke fortrydes.",
67+
"resetDataConfirmTitle": "Er du sikker på, at du vil nulstille alle data?",
68+
"save": "Gem",
69+
"saved": "Gemt",
70+
"saving": "Gemmer",
71+
"searchAssistantModel": "assistentmodel",
72+
"searchEngine": "søgemaskine",
73+
"searchEngineSelect": "Vælg søgemaskine",
74+
"searchPreview": "Søgeforhåndsvisning",
75+
"selectModel": "Vælg model",
76+
"testing": "Under test",
77+
"title": "Generelle indstillinger",
78+
"unknownError": "Ukendt fejl",
79+
"watermarkTip": "AI-genereret indhold, vær venlig at bruge det med forsigtighed.",
80+
"disabled": "Handicappet",
81+
"language": "sprog"
82+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
{
2+
"emojiPicker": {
3+
"activities": "aktivitet",
4+
"animals": "Dyr og natur",
5+
"flags": "flag",
6+
"food": "Mad og drikkevarer",
7+
"objects": "vare",
8+
"people": "Personer og kroppe",
9+
"search": "Søg efter emojis",
10+
"smileys": "Udtryk og følelser",
11+
"symbols": "symbol",
12+
"travel": "Rejser og steder"
13+
},
14+
"messageBlockAction": {
15+
"continue": "Fortsæt",
16+
"continued": "Fortsat"
17+
},
18+
"messageBlockPermissionRequest": {
19+
"allow": "tillade",
20+
"denied": "Adgang nægtet",
21+
"deny": "afvise",
22+
"description": {
23+
"all": "Tillad '{toolName}' på '{serverName}' at udføre læse- og skriveoperationer?",
24+
"read": "Tillad '{toolName}' på '{serverName}' at udføre læseoperationer?",
25+
"write": "Tillad '{toolName}' på '{serverName}' at udføre skrivehandlinger?"
26+
},
27+
"granted": "Tilladelser er givet",
28+
"rememberChoice": "Husk dette valg",
29+
"type": {
30+
"all": "Fuld adgangstilladelse",
31+
"read": "læsetilladelse",
32+
"write": "Skrivetilladelse"
33+
},
34+
"title": "Tilladelse påkrævet"
35+
},
36+
"promptParamsDialog": {
37+
"description": "Udfyld venligst følgende parametre, felter markeret med * er obligatoriske.",
38+
"required": "Denne parameter er påkrævet.",
39+
"title": "{name} parameterindstillinger"
40+
}
41+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"askAI": {
3+
"answer": "svar",
4+
"error": "AI-svar mislykkedes",
5+
"question": "problem",
6+
"title": "AI forespørgsel"
7+
},
8+
"copy": "kopiér",
9+
"cut": "Klip",
10+
"paste": "indsæt",
11+
"translate": {
12+
"error": "Oversættelse mislykkedes",
13+
"original": "Originaltekst",
14+
"title": "oversættelse",
15+
"translated": "Oversættelsesresultat"
16+
}
17+
}

0 commit comments

Comments
 (0)