Schema locale files are JSON files with a `.schema.json` file extension. They host translation strings for various setting schema attributes so that content in the theme editor can be translated to the store's [active language](https://help.shopify.com/manual/online-store/themes/customizing-themes/language/translate-theme#choose-a-language-for-your-theme).
To learn which attributes can be translated, refer to [Content](#content).
## Location
Schema locale files are located in the `locales` directory of the theme:
```text
└── theme
...
├── config
└── locales
├── en.default.schema.json
├── es-ES.schema.json
...
```
## Schema
Schema locale files need to follow a specific [naming structure](#name-structure). They also follow a basic organizational structure:
- **Category**: The top-level category of your translations.
- **Group**: The second level grouping of translations within a category.
- **Description**: The third level, which represents the individual translations.
> Tip:
> When naming translation descriptions, try to be descriptive enough to give the translation context. For example, `blogs.article_comment.submit_button_text` gives more context than `blogs.article_comment.submit`.
### Name structure
Locale file naming must follow the standard [IETF language tag nomenclature](https://en.wikipedia.org/wiki/IETF_language_tag), where the first lowercase letter code represents the language, and the second uppercase letter code represents the region.
For example:
| Language | Format |
| --- | --- |
| English - Great Britain |`en-GB.schema.json` |
| Spanish - Spain | `es-ES.schema.json` |
| French - Canada | `fr-CA.schema.json` |
If a language isn’t region specific, you can use the 2-letter lowercase language representation.
For example:
| Language | Format |
| --- | --- |
| Finnish - All regions | `fi.schema.json` |
Additionally, you must designate a [default locale file](#the-default-locale-file).
#### The default locale file
You must designate a default locale file in the format of `*.default.schema.json`, where `*` is your selected language. This file contains the translations for the default language of the theme. Only one default file is permitted.
Most themes use `en.default.schema.json`, which sets the default locale of the theme to English.
### Content
Schema locale files allow you to create translations for the following setting attributes:
Parent |
Attribute |
All settings |
info
label
|
settings_schema.json
Section schema
block
|
name |
select |
group |
html
number
text
textarea
video_url
|
placeholder
|
range |
unit |
header
paragraph
|
content |
presets |
name
category
|
html
inline_richtext
liquid
richtext
text
textarea
url
video
video_url
|
default
|
## Usage
When working with schema locale files, you should familiarize yourself with [referencing schema translations](#reference-schema-translations).
### Reference schema translations
Schema translations can be accessed with code in the the following format:
```
t:translation_category.translation_group.translation_name
```
For example, to make the `name` attribute of the `product.liquid` section translatable, use the following: