Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>Anno Translation ToolNew to Visual Studio Code? Get it now.
Anno Translation Tool

Anno Translation Tool

Taludas

|
27 installs
| (0) | Free
Use DeepL to translate your Anno 117 or Anno 1800 mod's English-language XML file into all the other languages used by the game.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Anno Translation Tool

Translate Anno 117 and Anno 1800 mod localization files from English into all supported in-game languages using the DeepL API — directly inside Visual Studio Code. The file format (<LineId> for Anno 117, <GUID> for Anno 1800) is detected automatically — no configuration needed.

Features

  • Translates all <Text> leaf nodes and raw <ModOp> text content in texts_english.xml
  • Generates one output file per language in the same folder (texts_german.xml, texts_french.xml, …)
  • Output file names and the language list match whichever game the source file belongs to (auto-detected — see File format):
    • Anno 117 (11 languages): texts_brazilian.xml (PT-BR), texts_french.xml (FR), texts_german.xml (DE), texts_italian.xml (IT), texts_japanese.xml (JA), texts_korean.xml (KO), texts_polish.xml (PL), texts_russian.xml (RU), texts_simplified_chinese.xml (ZH-HANS), texts_spanish.xml (ES), texts_traditional_chinese.xml (ZH-HANT)
    • Anno 1800 (10 languages, no Brazilian Portuguese): texts_chinese.xml (ZH-HANS), texts_french.xml (FR), texts_german.xml (DE), texts_italian.xml (IT), texts_japanese.xml (JA), texts_korean.xml (KO), texts_polish.xml (PL), texts_russian.xml (RU), texts_spanish.xml (ES), texts_taiwanese.xml (ZH-HANT)
  • All unique strings are collected and sent to DeepL in a single batch per language — fast and quota-efficient
  • In-session translation cache avoids redundant API calls on repeated runs
  • XML structure, whitespace, and indentation are preserved 1:1
  • <LineId> numbers are never sent to DeepL
  • Progress notifications while translating
  • Hotkey support (default Ctrl+Alt+T)

Requirements

  • Visual Studio Code v1.80 or higher
  • A DeepL API key (free tier is sufficient). Sign up at deepl.com/pro#developer.

Usage

  1. Open texts_english.xml in the editor (it must be the active tab).
  2. Press Ctrl+Alt+T or open the Command Palette (Ctrl+Shift+P) and run Translate texts_english.xml.
  3. If no API key is saved in settings you will be prompted to enter it once.
  4. Follow the prompts (see below) and watch the progress notification while the extension works.
  5. The translated language files are written to the same folder as texts_english.xml.

Overwrite prompts

When language files already exist, the extension asks two questions in sequence:

Step 1 — Overwrite existing files?

Choice Result
Yes Existing files will be updated (see Step 2)
No Existing files are left untouched; only missing language files are created

Step 2 — How to handle existing translations? (only shown when Step 1 = Yes)

Choice Result
Re-translate all entries Full retranslation of every entry in texts_english.xml; existing files are overwritten
Keep existing translations, only translate new entries Existing translations are preserved; only entries whose <LineId> is absent from the language file are translated and appended

The incremental mode ("only translate new entries") is the recommended choice when you add new text entries to an existing mod — it is faster, uses less DeepL quota, and leaves your previously reviewed translations intact.

Tip: Pressing Escape on either prompt cancels the operation cleanly.

Configuration

Open Settings → Extensions → Anno Translation Tool Settings to configure:

Setting Type Default Description
anno117translator.deepLApiKey string "" Your personal DeepL API key
anno117translator.batchDelay number 250 Delay in ms after each DeepL request (increase if you hit rate limits)
anno117translator.overwriteExisting boolean false Skip the overwrite prompt and always overwrite existing files (full retranslation)

Tip: overwriteExisting: true bypasses both prompts and retranslates everything. Use this for a clean rebuild of all language files.

File format

Both the Anno 117 and Anno 1800 mod localization formats are supported and auto-detected — no setting to switch:

<!-- Anno 117 -->
<ModOps>
    <ModOp Add="//TextExport/Texts">
        <Text>
            <LineId>1000001</LineId>
            <Text>English text to translate</Text>
        </Text>
    </ModOp>
</ModOps>
<!-- Anno 1800 -->
<ModOps>
    <ModOp Type="add" Path="/TextExport/Texts">
        <Text>
            <GUID>1000001</GUID>
            <Text>English text to translate</Text>
        </Text>
    </ModOp>
</ModOps>

Each <Text> entry is identified by its <LineId> (Anno 117) or <GUID> (Anno 1800) — both are recognized automatically, including within the same file. The incremental translation mode uses this ID to detect which entries are new. Entries without an ID (raw <ModOp> text content) are identified by the GUID and Path attributes of their parent <ModOp>.

License

MIT — free to use, modify, and distribute for personal or community projects.

Release Notes

1.2.0

  • New: Anno 1800 localization files are now supported alongside Anno 117. The <GUID>-based entry format used by Anno 1800 is auto-detected next to Anno 117's <LineId> format — no configuration required.
  • New: Output file names and the language list now match the detected game — Anno 1800 uses texts_chinese.xml/texts_taiwanese.xml instead of texts_simplified_chinese.xml/texts_traditional_chinese.xml and ships no texts_brazilian.xml, matching the real Anno 1800 loca folder.
  • Changed: Notification and progress messages now say "Anno Translation Tool" instead of "Anno 117" to reflect dual-game support.

1.1.0

  • New: Two-step overwrite prompt — first choose whether to overwrite existing files, then choose between a full retranslation and an incremental update (translate only new entries).
  • New: Incremental translation mode — detects entries missing from an existing language file by <LineId>, translates only those, and inserts them at the correct position inside the file with matching indentation.
  • Fixed: <LineId> numbers were incorrectly sent to DeepL for translation.
  • Fixed: Whitespace and indentation in raw <ModOp> text blocks are now preserved exactly as in the source file.
  • Fixed: All text strings are now collected in a single DeepL batch per language instead of one API call per <Text> block, significantly reducing translation time and API usage.
  • Fixed: Pressing Escape on any prompt now cancels the operation cleanly.

1.0.0

Initial release.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft