--- title: Schema locale files description: About schema locale files. source_url: html: >- https://shopify.dev/docs/storefronts/themes/architecture/locales/schema-locale-files md: >- https://shopify.dev/docs/storefronts/themes/architecture/locales/schema-locale-files.md --- ExpandOn this page * [Location](https://shopify.dev/docs/storefronts/themes/architecture/locales/schema-locale-files.md#location) * [Schema](https://shopify.dev/docs/storefronts/themes/architecture/locales/schema-locale-files.md#schema) * [Usage](https://shopify.dev/docs/storefronts/themes/architecture/locales/schema-locale-files.md#usage) # Schema locale files 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. ## Example ```json { "my_category": { "my_group": { "my_description": "translation text", ... }, ... }, ... } ``` 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: fsfszgaerga | Language | Format | | - | - | | English - Great Britain | `en-GB.schema.json` | | Spanish - Spain | `es-ES.schema.json` | | French - Canada | `fr-CA.schema.json` | | sadasd | | 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.{% if include.parent == 'schema' %}schema.{% endif %}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.{% if include.parent == 'schema' %}schema.{% endif %}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](https://shopify.dev/docs/storefronts/themes/architecture/sections/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: ```text t:translation_category.translation_group.translation_name ``` For example, to make the `name` attribute of the `product.liquid` section translatable, use the following: ## locales/en.default.schema.json ```json { "sections": { "product": { "name": "Product" } } } ``` ## sections/product.liquid ```liquid {% schema %} { "name": "t:sections.product.name", ... } {% endschema %} ``` *** * [Location](https://shopify.dev/docs/storefronts/themes/architecture/locales/schema-locale-files.md#location) * [Schema](https://shopify.dev/docs/storefronts/themes/architecture/locales/schema-locale-files.md#schema) * [Usage](https://shopify.dev/docs/storefronts/themes/architecture/locales/schema-locale-files.md#usage)