> ## Documentation Index
> Fetch the complete documentation index at: https://hyperlocalise.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Config schema

> Concise reference for the hyperlocalise i18n config schema.

## Top-level keys

* `locales`
* `buckets`
* `groups`
* `llm`
* `storage` (required for `sync`)
* `cache` (optional)

## `locales`

* `source` (string, required)
* `targets` (string array, required)
* `fallbacks` (object, optional)

## `buckets`

* map of bucket name -> bucket definition
* `files` array with `from` and `to` templates

## `groups`

* map of group name -> group definition
* `targets` array
* `buckets` array

## `llm`

* `profiles` map of profile name -> provider/model/prompt
* optional `context_memory` object with `provider` and `model` for context-building overrides
* supported providers: `openai` | `azure_openai` | `anthropic` | `gemini` | `bedrock` | `lmstudio` | `groq` | `mistral` | `ollama`
* `rules` array with `priority`, `group`, `profile`

## `storage`

* `adapter`: `poeditor` | `lilt` | `lokalise` | `crowdin` | `phrase` | `smartling`
* `config`: adapter-specific fields

## `cache`

* `enabled` boolean
* `endpoint` string
* `project_key_env` string
* `timeout_seconds` integer

For examples, see [i18n config](/configuration/i18n-config).

## CSV workflow note

Use `buckets.*.files[].from` and `to` to point at `.csv` files when you run CSV-based localization flows.

* Per-locale files typically use `[locale]` in the `to` path.
* Shared CSV files can reuse the same `from` and `to` path.

## Fluent workflow note

Use `buckets.*.files[].from` and `to` to point at `.ftl` files for Mozilla Fluent localization flows.

* Per-locale files typically use `[locale]` in the `to` path, for example `locales/[locale]/messages.ftl`.
* Supported entries include messages, attributes, multiline values, and select/plural patterns represented as full values.
* Fluent terms are not supported and fail parsing instead of being rewritten.

## Java properties workflow note

Use `buckets.*.files[].from` and `to` to point at per-locale `.properties` resource bundles, for example `messages_{{source}}.properties` -> `messages_{{target}}.properties`.
