# Localize Da

> Use when translating or localizing UI strings, marketing copy, documentation, or any source text into Danish (da). Enforces to genus (en/et) agreement, V2 word order with subordinate-clause inversion, double definiteness (det store hus), compound-word integrity (særskrivning is an error), universal du-form (De archaic), hybrid-compound verb rejection (frakoble not aflinke), comma rules, present-t…

- **Type:** Skill
- **Install:** `agentstack add skill-i18n-agent-i18nstack-localize-da`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [i18n-agent](https://agentstack.voostack.com/s/i18n-agent)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [i18n-agent](https://github.com/i18n-agent)
- **Source:** https://github.com/i18n-agent/i18nstack/tree/main/localize-da
- **Website:** https://i18nagent.ai

## Install

```sh
agentstack add skill-i18n-agent-i18nstack-localize-da
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Translate to Danish (da) — High-Fidelity Skill

## Scope & Variants

Danish is a **single standard target** — Modern Standard Danish (rigsdansk). No significant regional split for product UI:

| Locale | Notes |
|--------|-------|
| `da` / `da-DK` | Standard Danish (Denmark). Default. |
| `da-GL` | Greenlandic Danish — vocabulary essentially identical for software UI. |
| `da-FO` | Faroese Danish — same. |

Faroese (`fo`) and Greenlandic (`kl`) are **separate languages**, not Danish dialects — they have their own ISO codes. Don't confuse them with Danish.

**Practical reality:** Danish translation has **one target**. Treat `da` as the universal target.

### Danish vs Norwegian Bokmål — distinct languages, often confused

Danish and Norwegian Bokmål are mutually intelligible in writing (Bokmål was historically derived from Danish) but they are **separate languages**. AI translators sometimes mix them. Key distinguishing features of Danish vs Bokmål:

| English | Danish (da) ✓ | Norwegian Bokmål (nb) — do NOT use in da |
|---------|---------------|-------------------------------------------|
| I | jeg | jeg (same, but Danish pronounces "yai") |
| not | ikke | ikke (same) |
| what | hvad | hva |
| how | hvordan | hvordan (same) |
| we | vi | vi (same) |
| me | mig | meg |
| you (obj.) | dig | deg |
| city | by | by (same) |
| now | nu | nå |
| sweet / nice | sød | søt |
| white | hvid | hvit |
| black | sort | svart |
| open | åben (or åbn) | åpen (or åpne) |
| school | skole | skole (same) |
| from | fra | fra (same) |
| many | mange | mange (same) |
| use (v.) | bruge | bruke |
| do / does | gøre / gør | gjøre / gjør |
| something | noget | noe |
| have / had | har / havde | har / hadde |
| become | blive | bli |
| say / said | sige / sagde | si / sa |
| big | stor | stor (same) |

The **soft-d (ð-like sound, spelled `d`)** in many Danish words is the most distinctive feature: `mad` (food), `god` (good), `gade` (street). Norwegian Bokmål has hard-d or no-d in equivalent positions.

**If a Danish translation contains `meg / deg / nå / hva / søt / hvit / svart / åpen / noe / bli / si / sa` — it's accidentally Norwegian.**

---

## Register Auto-Detection (Apply Before Translating)

Modern Danish, like Swedish and Norwegian, abandoned the formal `De` form. **`De` is virtually extinct in modern Danish UI** — even banking and government use `du`. Reserve `De` for ceremonial address to royalty or in very archaic legal text.

Auto-detect from source:

| Source signal | Target register |
|---------------|-----------------|
| Casual / conversational (`Hey!`, contractions, emoji, marketing voice, social) | **Casual du** — direct verbs, contractions where natural, short sentences. Allow some loanwords (`email`, `link` are fine alongside Danish equivalents). |
| Neutral product UI / docs (DEFAULT) | **Neutral du** — du throughout, imperative buttons, present-tense status, native Danish vocabulary preferred but established loanwords OK. |
| Legal / banking / government / enterprise | **Formal du** — still `du` (NEVER `De` in modern UI), but use full forms (`skal` not `ska`), prefer impersonal passives, avoid colloquialisms. |

**Hard rule: NEVER use `De` in modern Danish UI.** It's archaic. Even formal Danish government communication uses `du`.

**Hard rule: source register matching for vocabulary** — if source is casual English (`stay`, `countless`, `ship`), do NOT elevate to literary Danish.

---

## Critical Hard Rules (Severity ≥ 2.0 — Auto-Fail If Wrong)

### 1. Compound words written as ONE word — særskrivning is wrong (severity 2.5)

Danish forms compounds by **concatenation**, exactly like Swedish/Norwegian. Separating a compound (`særskrivning` — sometimes called "Danglish") is the most-mocked Danish writing error.

| ✗ Wrong (split) | ✓ Correct (joined) | English |
|-----------------|---------------------|---------|
| `data base` | **`database`** | database |
| `bruger grænseflade` | **`brugergrænseflade`** | user interface |
| `pass ord` | **`password` (loanword)** or `adgangskode` | password |
| `e mail` | **`e-mail`** (hyphen OK for this) | email |
| `web side` | **`webside`** or **`hjemmeside`** | website |
| `lyse rød` | **`lyserød`** (= pink) vs `lys rød` (= a light red) | pink vs light red |
| `tag selvbillede` (split) | **`tag selvbillede`** ✓ (`tage` = take, `selvbillede` = selfie — these ARE two words) | take a selfie |
| `kør stol` | **`kørestol`** | wheelchair |

**Hyphens** appear only in:
- Acronym + Danish word: `IT-firma`, `25-årig`.
- Compounds with brand/foreign words: `Google-konto`, `iPhone-en`.
- `e-mail` is officially hyphenated (`email` increasingly accepted, but `e-mail` is the orthographic standard).

### 2. Hybrid-compound verb anti-pattern — REJECT (severity 2.5)

Danish prefixes (`af-`, `fra-`, `ud-`, `op-`, `ind-`) onto English roots create non-words. **Always** find the dictionary-attested native form.

| ✗ Wrong (hybrid) | ✓ Correct (native attested) | English |
|------------------|------------------------------|---------|
| `aflinke` / `aflinket` | **`frakoble`** / **`frakoblet`** | unlink / disconnected |
| `afsynce` | **`synkronisere`** / **`fjerne synkronisering`** | sync / desync |
| `delee` (as verb) | **`dele`** ✓ (dele exists) | share |
| `paire` | **`parre`** / **`forbinde`** | pair |
| `merge` (as Danish verb) | **`flette sammen`** / **`sammenflette`** | merge |
| `pushe` | **`skubbe`** / **`pushe`** (git context only, attested) | push |
| `downloade` | ✓ **`downloade`** is attested in Den Danske Ordbog | download (also `hente`) |
| `uploade` | ✓ **`uploade`** is attested | upload (also `lægge op`) |
| `installe` | **`installere`** | install |
| `cancele` | **`annullere`** | cancel |
| `deletee` | **`slette`** | delete |
| `updaee` | **`opdatere`** | update |

**Verification test:** if you used a Danish prefix + English-looking root, look it up in **Den Danske Ordbog** (https://ordnet.dk/ddo) or **Retskrivningsordbogen** (Danish official orthography). If not found, replace with the native verb.

A few English loans are attested and acceptable: `downloade`, `uploade`, `streame`, `chatte`, `mejle`, `googler`, `tweete`. Their **hybrid prefixed forms generally are NOT** (no `afmejle`, `udchatte`, etc.).

### 3. Two-gender system — en (common) vs et (neuter) (severity 2.0)

Danish has two genders: **common (en, ~75%)** and **neuter (et, ~25%)**. There's no reliable phonological rule — gender must be memorized.

**Common IT nouns and their genders:**

| en (common) | et (neuter) |
|-------------|-------------|
| en fil (file) | et system (system) |
| en mappe (folder) | et konto — WAIT: **en konto** is common in modern Danish (NOT et konto, despite some old usage) |
| en platform (platform) | et problem (problem) |
| en app (app) | et password (password) — also "et adgangskode" wait: **en adgangskode** (common) |
| en side (page) | et netværk (network) |
| en knap (button) | et dokument (document) |
| en indstilling (setting) | et navn (name) |
| en bruger (user) | et alternativ (option) |
| en flig / fane (tab) | et felt (field) |
| en søgning (search) | et tema (theme) |
| en webside (web page) | et kort (card) |
| en e-mail | et emne (subject/topic) |
| en kommentar (comment) | et resultat (result) |
| en notifikation (notification) | — |

**Indefinite article**: en/et before the noun.
**Definite (without adjective)**: suffix `-en` (common) or `-et` (neuter). `filen`, `systemet`.
**Definite (with adjective)**: free article `den/det` + adjective + noun in **plain form** — Danish uses **only the free article**, NOT a double-definiteness like Swedish.

### 4. Double-definiteness DIFFERENCE from Swedish (severity 2.0)

This is a critical Danish-specific rule. Unlike Swedish (which uses both article AND suffix), Danish uses **EITHER suffix OR free article — never both**:

| ✗ Wrong (over-marked, Swedish-style) | ✓ Correct (Danish) | English |
|--------------------------------------|---------------------|---------|
| den store filen | **den store fil** | the big file |
| det nye systemet | **det nye system** | the new system |
| de nye filerne | **de nye filer** | the new files |

**Pattern:**
- No adjective → use suffix only: `filen`, `systemet`, `filerne`.
- With adjective → use **free article + plain noun**: `den store fil`, `det nye system`, `de nye filer`.

This is the OPPOSITE pattern from Swedish (`den stora filen` — both article AND suffix). Don't confuse them.

### 5. V2 word order (verb in position 2 of main clauses) (severity 2.0)

Like all Scandinavian languages, Danish is strict V2: the finite verb takes position 2 of any declarative main clause, regardless of what fills position 1.

| ✗ Wrong | ✓ Correct |
|---------|-----------|
| I dag brugeren gemmer filen | **I dag gemmer brugeren filen** (Today saves the user the file) |
| Nu systemet indlæser data | **Nu indlæser systemet data** |
| Efter login du kan ændre... | **Efter login kan du ændre...** |
| Snart vi lancerer | **Snart lancerer vi** |

When an adverbial or object is fronted to position 1, the subject is **inverted** with the verb.

**V2 after subordinate clauses (main clause comes second):** the main clause after a subordinate clause still respects V2 — the subordinate clause counts as position 1.

| ✗ Wrong | ✓ Correct |
|---------|-----------|
| Hvis du klikker her, du vil se... | **Hvis du klikker her, vil du se...** |
| Når filen gemmes, du får besked | **Når filen gemmes, får du besked** |

### 6. Subordinate clause word order — subject before verb (severity 1.5)

In subordinate clauses (introduced by `at`, `som`, `fordi`, `når`, `om`, `mens`, `inden`, `efter at`), the **subject comes BEFORE the verb**, and adverbs like `ikke`, `altid`, `aldrig` go between subject and verb.

| Clause type | Word order | Example |
|-------------|-----------|---------|
| Main (V2) | Subj — Verb — Adv — Obj | `Brugeren gemmer ikke filen.` |
| Subordinate (SVx) | Subj — Adv — Verb — Obj | `…fordi brugeren ikke gemmer filen.` |

### 7. Negation placement (severity 1.5)

| Context | Pattern | Example |
|---------|---------|---------|
| Main clause | Verb + ikke | `Filen gemmes ikke.` (The file is not saved.) |
| Subordinate clause | ikke + Verb | `…fordi filen ikke gemmes.` |

### 8. Adjective agreement (severity 1.5)

Three forms: **base / -t / -e**.

| Subject | Form | Example |
|---------|------|---------|
| en-noun (common) indefinite sg. | base | en **stor** fil |
| et-noun (neuter) indefinite sg. | -t | et **stort** system |
| plural (indefinite) | -e | **store** filer |
| definite (sg./pl., either gender) | -e | den **store** fil, det **store** system, de **store** filer |

Irregular: `lille` (small) → `lille` (neuter same) / `små` (plural).

### 9. Comma rules — `eller` / `og` vs `men` / `for` (severity 1.0)

Same pattern as Swedish/Norwegian:

| Rule | Example |
|------|---------|
| **NO comma** before `og` (and) | Træk hertil **og** klik. |
| **NO comma** before `eller` (or) | Træk hertil **eller** klik. |
| **NO comma** before `eller` (or, second use) | Vælg fil **eller** mappe. |
| **Comma** before `men` (but) | Hurtig, **men** effektiv. |
| **Comma** before `for` (because) | Annulleret, **for** det fejlede. |
| **Comma** before `at` (subordinating "that") | Jeg ser, **at** filen er åben. |
| **Comma** before `når / hvis / fordi / hvorfor` | Gem, **når** du er klar. |
| **Comma** before relative `som / der` (with care — see below) | Filen, **som** er gemt, ... |

**Note on `som / der` (relative pronouns):** Danish has both **restrictive** (no comma, often `som` or `der`) and **non-restrictive** (with comma) relative clauses. For UI / product copy, the comma is usually omitted in short relative phrases. For prose, follow standard Danish punctuation (the so-called "new comma" vs "grammatical comma" rules — both are tolerated in modern Danish).

### 10. Special characters æ ø å — NEVER strip (severity 3.0)

Replacing `æ ø å` with `ae oe aa` (or worse, `a o a`) is a critical readability failure. These are letters, not diacritics. `Gem` vs `Gem` is fine but `Vælg` → `Vaelg` and `Søg` → `Soeg` are broken.

A Danish product UI with `Adgangskode` → `Adgangskode` ✓ but `Søg` → `Sog` ✗.

### 11. ICU plurals — one / other (severity 1.5)

Danish has two CLDR plural categories: `one` (n = 1) and `other` (everything else).

```icu
{count, plural,
  one {# fil}
  other {# filer}
}
```

---

## Pronouns and Possessives

### Personal pronouns

| English | Danish | Notes |
|---------|--------|-------|
| I | jeg | |
| you (sg.) | **du** | NEVER `De` for singular formal (archaic) |
| you (pl.) | I (capitalized when 2nd-person plural — yes, the pronoun is literally `I`) | Capitalization is fixed for unambiguity |
| he / she / they (sg.) | han / hun | |
| it (common) | den | |
| it (neuter) | det | |
| we | vi | |
| they | de (subject) / dem (object) | |
| me | mig | |
| you (obj. sg.) | dig | |
| us | os | |
| them | dem | |

### Possessive (agree with possessed noun's gender/number)

| Person | en-noun | et-noun | plural |
|--------|---------|---------|--------|
| min (my) | min fil | mit system | mine filer |
| din (your sg.) | din fil | dit system | dine filer |
| hans / hendes (his / her — invariable) | hans fil | hans system | hans filer |
| sin / sit / sine (reflexive — own) | sin fil | sit system | sine filer |
| vores (our — invariable) | vores fil | vores system | vores filer |
| jeres (your pl. — invariable) | jeres fil | jeres system | jeres filer |
| deres (their — invariable) | deres fil | deres system | deres filer |

**Reflexive `sin / sit / sine`** is required when the possessor is the subject of the same clause:
- `Hun gemmer sin fil.` (She saves her own file.) ← reflexive
- `Hun gemmer hendes fil.` (She saves [someone else's] file.) ← non-reflexive

---

## UI Conventions

### Buttons — imperative (preferred)

| English | ✓ Imperative |
|---------|--------------|
| Save | **Gem** |
| Cancel | **Annuller** |
| Delete | **Slet** |
| Send | **Send** |
| Edit | **Rediger** |
| Search | **Søg** |
| Confirm | **Bekræft** |
| Continue | **Fortsæt** |
| Submit | **Send** / **Indsend** |
| Sign in / Log in | **Log ind** |
| Sign out / Log out | **Log ud** |
| Sign up | **Opret konto** / **Tilmeld dig** |
| Next | **Næste** |
| Back | **Tilbage** |
| Done | **Færdig** |
| OK | **OK** |
| Close | **Luk** |
| Upload | **Upload** / **Læg op** |
| Download | **Download** / **Hent** |
| Refresh | **Opdater** |
| Settings | **Indstillinger** |
| Apply | **Anvend** |
| Reset | **Nulstil** |
| Select all | **Vælg alle** |
| Add more | **Tilføj flere** |

### Status messages — present tense + ellipsis

| English | ✓ Danish |
|---------|----------|
| Loading… | **Indlæser…** |
| Saving… | **Gemmer…** |
| Sending… | **Sender…** |
| Connecting… | **Forbinder…** |
| Processing… | **Behandler…** |
| Uploading… | **Uploader…** |
| Downloading… | **Downloader…** |
| Searching… | **Søger…** |
| Please wait | **Vent venligst** / **Vent et øjeblik** |

### Completion messages — concise

| English | ✓ Danish |
|---------|----------|
| Saved | **Gemt** / **Alt gemt** |
| Done | **Færdig** / **Klar** |
| Translation complete | **Oversættelse fuldført** |
| File uploaded | **Filen er uploadet** / **Fil uploadet** |
| Sent | **Sendt** |
| Payment successful | **Betalingen er gennemført** / **Betaling gennemført** |

### Empty states — concise, drop pronouns

| ✗ Verbose | ✓ Concise |
|-----------|-----------|
| Der blev ikke fundet nogen resultater | **Ingen resultater** |
| Du har endnu ikke nogen projekter | **Ingen projekter endnu** |
| Der er ikke noget at vise | **Intet at vise** |
| Ingen filer tilgængelige | **Ingen filer** |

### Drag-and-drop

- drag → **træk**
- drop → **slip** (NOT `drop` as English calque, though many Danes use it informally)
- release → **slip**
- Combined: **`Træk og slip filer her`** (Drag and drop files here).

### Quantity expressions

| ✗ Calque | ✓ Native |
|----------|----------|
| 25+ sprog

…

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [i18n-agent](https://github.com/i18n-agent)
- **Source:** [i18n-agent/i18nstack](https://github.com/i18n-agent/i18nstack)
- **License:** MIT
- **Homepage:** https://i18nagent.ai

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-i18n-agent-i18nstack-localize-da
- Seller: https://agentstack.voostack.com/s/i18n-agent
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
