> For the complete documentation index, see [llms.txt](https://docs.tempoweave.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.tempoweave.com/special-topics/language-translations.md).

# Language Translations

## Customizing Translations

*Available on Desktop. The mobile app uses the built-in translations.*

TempoWeave Studio ships in English, French, German, Spanish, Italian, Portuguese (Brazil and Portugal), Dutch, Ukrainian, Russian, Polish, Swedish, Danish, Norwegian, Finnish, Korean, Japanese, Simplified Chinese, and Traditional Chinese. Weaving words vary by region and by tradition, so if a term in your language is not the one you use, you can change it. Your wording lives in a small file of your own, outside the program, and it survives every update.

You never edit TempoWeave's own files. You write a short list of the words you want changed, and TempoWeave lays it over the built-in translation each time it starts.

<div align="left"><figure><img src="https://2959107664-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVqXhf7V7Tz3hzEGNlTxL%2Fuploads%2Fqy3QhH06d4U6fT8X5uSz%2Fimage.png?alt=media&#x26;token=ee872a2e-e4ef-4214-a64e-49894c52895d" alt="" width="563"><figcaption></figcaption></figure></div>

***

### Before you start

* **Use a plain text editor**, not a word processor. Word and Pages turn straight quotes into curly quotes, which the file format does not accept. On Windows use Notepad; on macOS use TextEdit after choosing Format → Make Plain Text.
* **Changes appear after a restart.** Translations load when TempoWeave starts, so save your file, quit TempoWeave completely, and open it again.
* **Only the words you list change.** Everything you leave out keeps the built-in translation.

***

### Contributing a whole language

If you have translated the entire file for a language TempoWeave does not ship yet, we would be glad to build it in so that it appears in the Language list on desktop and mobile. Start from `Reference/en.json`: copy it out of the Reference folder, rename it for the language's code (`uk.json` for Ukrainian; a regional variant carries the region, as in `pt-PT.json` or `zh-Hant.json`), replace the English values with yours, and send us that file, saved as UTF-8 with straight ASCII quotes around keys and values. We add it to the next release and credit you in Help → Credits if you wish.

If you are helping us tune a language we already ship, see [Sharing corrections with us](#sharing-corrections-with-us) below.

***

### Step by step

#### 1. Open your translations folder

Choose the language you want to customize in Settings and restart if you changed it. Then open **File (backstage) → Settings → Settings tab**, and in the **Language** section press **Customize Translations…**.

TempoWeave creates a folder for you and opens it. It contains:

| Item                                                                                                                                | What it is                                                                                                                                                                                                                                                                      |
| ----------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **`nl.json`** at the top of the folder (named for the language you have selected: `de.json`, `fr.json`, `pt-PT.json`, `en.json`, …) | **Your file. This is the only file you edit.** It starts almost empty and holds just the words you change. It is never overwritten. If you have pressed the button under more than one language you will see one small file per language; each applies to its own language.     |
| **`Reference/`** folder                                                                                                             | Read-only copies of the built-in translations, one per shipped language (`en.json`, `nl.json`, `fr.json`, `ja.json`, …), so you can look up keys and see how a word is translated today. **Rewritten every time you press the button**, so anything you type into them is lost. |

The two files with the same name are not the same thing: `nl.json` at the top level is your short list of changes; `Reference/nl.json` is the full built-in Dutch translation for looking things up. Keep your edits in the top-level file and they survive every update and every press of the button.

<div align="left"><figure><img src="https://2959107664-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVqXhf7V7Tz3hzEGNlTxL%2Fuploads%2FkoSkDCgZmjwpiWyrUr3V%2Fimage.png?alt=media&#x26;token=bc5a11d2-cde1-4c7c-9c4f-90f1876e35f1" alt="" width="375"><figcaption></figcaption></figure></div>

#### 2. Find the key for the word

Every piece of text in TempoWeave has a **key**, a short English name such as `Threading` or `TieUp`. Your file tells TempoWeave "for this key, show this wording instead."

Open `Reference/en.json` and search for the English text you see on screen. Each line looks like this:

```json
"Treadling": "Treadling",
```

The part before the colon is the key. The part after it is the text.

Searching the English file works even when your screen is in another language: find the English wording for the button or label, and the key beside it is the one you need. If you would rather search for the current translation, open the reference file for your language instead; the keys are the same.

> **Faster: read the keys off the screen.** Open `settings.json` (in the same folder as the Locales folder) in a plain text editor, set `"Language": "keys"`, and start TempoWeave. Every label now shows its key in square brackets, such as `[Treadling]`, so you can read the key straight off the button or menu you want to change. Set the language back in Settings when you are done. Anything that still reads as plain English in this mode does not come from the translation files at all; please tell us about it so we can fix it.

> **The same word can appear under several keys.** "Threading" is used as a menu heading, a dialog title, a column label, and in sentences. Each place has its own key. If you change one and the word still shows the old way somewhere else, search the reference file again and add the other keys too.

#### 3. Add the line to your file

Open your file, `nl.json` in this example. It looks like this when it is new:

```json
{
  "_comment": "Your own wording for TempoWeave (nl). ...",
  "_instructions": "...",
  "_example_Threading": "Remove the _example_ prefix from this key to make it active"
}
```

Add one line per word you want to change, inside the curly braces, with a comma between lines. Say a Dutch weaver prefers *rijgen* to *inrijgen* and wants the tie-up called *binding*:

```json
{
  "_comment": "Your own wording for TempoWeave (nl).",
  "Threading": "Rijging",
  "TieUp": "Binding",
  "TieUpShifted": "Binding verschoven."
}
```

Rules that matter:

* Every key and every wording sits inside straight double quotes: `"Threading": "Rijging"`.
* Lines are separated by commas. A comma after the very last line is fine.
* Lines starting with `_` are notes and are ignored. Delete the `_example_Threading` line, or rename it, once you know how the file works.
* If the built-in text contains something like `{0}`, keep it in your wording. That is where TempoWeave inserts a number or a name. `"{0} picks removed."` becomes `"{0} inslagen verwijderd."`, with the `{0}` still there.

#### 4. Save, quit, and reopen

Save the file, quit TempoWeave completely, and open it again. Your wording is now in place, in the ribbon, the menus, and the dialogs.

If nothing changed, TempoWeave will tell you why: a file that cannot be read produces a warning at startup naming the file and the line where the problem is. The usual causes are a missing quote, a missing comma between lines, or curly quotes from a word processor. Fix the line, save, and restart.

`[Screenshot: the startup warning toast for a file that could not be read]`

***

### Going back to the built-in translation

Delete your language file from the translations folder (or remove the lines you no longer want) and restart. The Reference folder can stay; it does nothing on its own.

The button in Settings reopens the folder any time. If your language file already exists it is left exactly as you wrote it; only the Reference copies are refreshed.

***

### Sharing corrections with us

If you find a translation that is wrong or awkward, please send it to us rather than keeping the fix to yourself. Every weaver in your language gets the correction in the next release, and we credit reviewers in Help → Credits if they wish. Send to <support@loftyfiber.com>.

**A few corrections.** Send us your own file, the small `nl.json` (named for your language) at the top of the translations folder. It already contains exactly the keys you changed and nothing else, so it is the perfect report. Attach it to an email, or paste its lines into the message.

**Reviewing a whole language.** Several weavers are kindly tuning the languages we added in October 2026. For that:

1. Press Customize Translations so the Reference folder is current.
2. **Copy `Reference/xx.json` out of the Reference folder** (to your Desktop, say) before you touch it. Files inside Reference are replaced the next time the button is pressed, so edits made there are lost.
3. Rename the copy, for example `ja-reviewed.json`, and change the wording after the colons. Leave the keys before the colons exactly as they are, keep every `{0}`-style placeholder, and leave a value alone when it is already right.
4. Send us the whole file when you are done, or in batches if that suits you; partial reviews are welcome.

If you would rather see your changes in the app while you work, put the lines you have changed into your top-level file as well; the reviewed copy is what you send us.

***

### Where the folder is

The Customize Translations button opens it for you, and the path is shown under the button in Settings. For reference:

{% tabs %}
{% tab title="Windows" %}
`C:\Users\<you>\AppData\Roaming\TempoWeave Studio\Locales`

AppData is a hidden folder. Paste the path into the Explorer address bar, or use the button in Settings.
{% endtab %}

{% tab title="macOS" %}
`~/Library/Application Support/TempoWeave Studio/Locales`

Library is hidden in Finder. Use the button in Settings, or in Finder choose Go → Go to Folder and paste the path.
{% endtab %}
{% endtabs %}

***

### Quick reference

| I want to…                           | Do this                                                                                                  |
| ------------------------------------ | -------------------------------------------------------------------------------------------------------- |
| Change one word                      | Find its key in `Reference/en.json`, add `"Key": "wording"` to your language file, restart               |
| See how a word is translated now     | Open the reference file for your language and search for the key                                         |
| Change a word everywhere it appears  | Search the reference file for every key with that wording and add each one                               |
| Undo everything                      | Delete your language file and restart                                                                    |
| Send us corrections                  | Email your top-level language file, or a copy of `Reference/xx.json` edited outside the Reference folder |
| Find out why a change did not appear | Read the warning at startup; check quotes and commas; confirm you restarted                              |
| Get the folder back on screen        | Settings → Language → Customize Translations…                                                            |
