# `.fvlang` — Foldervas Language Pack — v1

Translate the entire Foldervas UI with one JSON file — no code, no build.
Import it from Settings → Application; share it with anyone.

- **Version:** 1 · **Status:** stable · **License:** CC BY 4.0
- HTML version: <https://foldervas.com/spec/language/>
- Related: [`.foldervas` file format](https://foldervas.com/spec/foldervas.md) ·
  [`.fvtheme` themes](https://foldervas.com/spec/theme/fvtheme.md)

## 1. Shape

```json
{
  "format": "fvlang",
  "version": 1,
  "code": "eo",
  "name": "Esperanto",
  "strings": {
    "nodeType.note": "Noto",
    "fs.saveAs": "Konservi kiel…",
    "backup.lastBackup": "Lasta kopio: {when}"
  }
}
```

- `code` — short lowercase identifier (`[a-z-]`, ≤ 12 chars). Importing a pack
  with the same code replaces it.
- `name` — the language's *native* name, shown in the language picker.
- `strings` — message key → translated text. **Every key is optional**:
  anything you don't translate falls back to English, so a partial pack is
  perfectly usable.

## 2. Rules for translators

- Keep placeholders exactly as-is: `{n}`, `{name}`, `{when}`… They are
  replaced at runtime; renaming them breaks the message.
- Keep embedded newlines (`\n`) and symbols (·, →, ↳, ☐, ☑) where the source
  has them.
- Don't translate product and format names: Foldervas, Markdown, JSON, kanban,
  `.foldervas`, `.fvbackup`.
- Unknown keys are ignored (a pack written for a newer app version still
  imports).

## 3. Getting the full key list

Settings → Application → **"Export translation template…"** writes a complete
`.fvlang` with **every key** and the English text as starting values.
Translate the values, change `code` and `name`, and import it back. That
template is always in sync with your app version — no need to chase a key
list on the web.

Built-in languages (Español, English, Euskara, Català, Galego, Français,
Deutsch, Italiano, Português) ship with the app; language packs let you add
anything else — or override a built-in string you'd phrase differently.

---

Published under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/).
