Skip to main content

Translation Fields

Export translations for products, collections, pages, and other Shopify resources.

Updated today

Important: This feature is currently export-only and is a work in progress. You can export translations from your store, and the exported format is compatible with Shopify's native translation import in the admin. However, we've added extra columns to make it easier to identify what's being translated.

We welcome your feedback! If you have any suggestions for improving this feature, please contact us.

Overview

The translations export creates a spreadsheet with one row per translatable field per locale. Each row shows:

  • The resource being translated (type, ID, handle)

  • The parent resource (for nested items like product options or metafields)

  • The specific field being translated

  • The default content (in your store's primary language)

  • The translated content (in the target locale)

Shopify Compatibility

The exported translation files are compatible with Shopify's native translation import functionality in the admin. You can export translations from Altera, edit them in your spreadsheet software, and import them directly into Shopify.

Additional Columns for Context

To make translations easier to work with, we've added several helper columns that aren't part of Shopify's standard format:

  • ID: The full Shopify Global ID (GID) of the resource (e.g., gid://shopify/Product/8079393226938)

  • Handle: The handle of the resource being translated (e.g., premium-cotton-tee)

  • Parent Type: The type of the parent resource (for nested items)

  • Parent ID: The full GID of the parent resource

  • Parent Handle: The handle of the parent resource

These additional columns make it much easier to identify what you're translating, especially when working with nested resources like product options or metafields. For example, when translating a metafield, you can see the namespace and key in the Handle column and the parent resource's handle in the Parent Handle column.

Note: The Type and Identification columns are part of Shopify's standard translation format and are required for importing translations back into Shopify.

Translatable Resource Types

The following resource types can be translated:

  • ARTICLE: Blog articles

  • BLOG: Blog information

  • COLLECTION: Product collections

  • DELIVERY_METHOD_DEFINITION: Shipping methods

  • EMAIL_TEMPLATE: Transactional email templates

  • FILTER: Collection filters

  • LINK: Navigation menu links

  • MEDIA_IMAGE: Media file alt text

  • MENU: Navigation menus

  • METAFIELD: Custom metafields

  • METAOBJECT: Metaobject content

  • ONLINE_STORE_THEME: Theme customizations

  • PAGE: Store pages

  • PAYMENT_GATEWAY: Payment method names

  • PRODUCT: Product details

  • PRODUCT_OPTION: Product option names (Size, Color, etc.)

  • PRODUCT_OPTION_VALUE: Product option values (Small, Blue, etc.)

  • SELLING_PLAN: Subscription plan details

  • SELLING_PLAN_GROUP: Subscription plan groups

  • SHOP: Store information

  • SHOP_POLICY: Store policies

Fields

Type

Description

Example Value

Resource type

PRODUCT

The type of Shopify resource being translated. See Translatable Resource Types for a complete list of supported types.

This column is part of Shopify's standard translation format.

ID

Description

Example Value

Shopify Global ID (GID)

gid://shopify/Product/8079393226938

The full Shopify Global ID (GID) for the resource. This includes the resource type and numeric ID in a URI format.

This is an Altera-specific field that provides the complete resource identifier.

Identification

Description

Example Value

Shopify resource numeric ID

8079393226938

The numeric ID portion of the resource's Shopify Global ID (GID). This is extracted from the full GID format (e.g., gid://shopify/Product/8079393226938).

This column is part of Shopify's standard translation format and is required for importing translations back into Shopify.

Handle

Description

Example Value

Resource handle

premium-cotton-tee

The URL-friendly handle for the resource. This is an Altera-specific field that makes it easier to identify what you're translating. Not all resource types have handles.

Parent Type

Description

Example Value

Parent resource type

PRODUCT

For nested resources (like product options or metafields), this shows the type of the parent resource. For top-level resources, this will match the Type field.

This is an Altera-specific field that provides additional context about the resource hierarchy.

Parent ID

Description

Example Value

Parent resource GID

gid://shopify/Product/8079393226938

For nested resources, this shows the full GID of the parent resource. For top-level resources, this will match the ID field.

This is an Altera-specific field that provides additional context about the resource hierarchy.

Parent Handle

Description

Example Value

Parent resource handle

premium-cotton-tee

For nested resources, this shows the handle of the parent resource. For example, when translating a product option, this shows the product's handle.

This is an Altera-specific field that makes it easier to understand the context of what you're translating.

Field

Description

Example Value

Translatable field key

title

The specific field being translated. Common field keys include:

  • title: Resource title or name

  • body_html: HTML description or content

  • meta_title: SEO title

  • meta_description: SEO description

  • option1.name: Product option name (Size, Color, etc.)

  • alt_text: Image alt text

The available fields vary by resource type. For example, products have fields like title and body_html, while metafields have a single value field.

Locale

Description

Example Value

Target language locale

fr

The language code for the translation. This uses ISO 639-1 two-letter language codes, optionally followed by a region code (e.g., en, fr, es, pt-BR, zh-CN).

The available locales are determined by which languages you've enabled in your Shopify admin under Settings > Languages.

Default content

Description

Example Value

Original content in primary language

Premium Cotton T-Shirt

The original content in your store's primary language. This is the content that should be translated into the target locale.

For fields like product descriptions, this contains the HTML content. For plain text fields, it contains the plain text.

Translated content

Description

Example Value

Translated content in target locale

T-Shirt en Coton Premium

The translated content for the target locale. If no translation exists yet, this field will be empty.

For rich text fields, this should contain the translated HTML. For plain text fields, it should contain the translated plain text.

Export Filters

You can use these filters to limit which translations are exported:

  • locale: Filter by language code (e.g., fr, es, de)

  • Supports comma-separated values: locale=fr,es,de

  • Use NOT_EQUALS to exclude specific locales: locale NOT EQUALS en

  • By default, exports all non-primary locales

  • type: Filter by resource type (e.g., PRODUCT, COLLECTION, PAGE)

  • Supports comma-separated values: type=PRODUCT,COLLECTION

  • See Translatable Resource Types for valid values

  • By default, exports all translatable resource types

Product-Level Filters

When exporting product translations (including PRODUCT, PRODUCT_OPTION, and PRODUCT_OPTION_VALUE types), you can filter by product attributes:

  • product_status: Filter by product status

  • Options: active, draft, archived, unlisted

  • Example: product_status=active to only export translations for active products

  • product_tag: Filter by product tag

  • Example: product_tag=summer to only export translations for products tagged "summer"

  • Supports partial matching

  • product_created_at: Filter by product creation date

  • Example: product_created_at=2024-01-01 to export translations for products created on that date

  • Supports date ranges with GREATER_THAN and LESS_THAN relations

Note: Product-level filters only apply to PRODUCT, PRODUCT_OPTION, and PRODUCT_OPTION_VALUE resource types. Other resource types (like COLLECTION, PAGE, etc.) will pass through unfiltered when product-level filters are applied.

Example Use Cases

Exporting Product Translations

Export all product translations for French and Spanish:

  1. Select the Translations object type

  2. Add filters: locale=fr,es and type=PRODUCT

  3. Export the file

Identifying Nested Resources

When working with nested resources like product options, the parent columns help you understand the context:

Type

ID

Identification

Handle

Parent Type

Parent ID

Parent Handle

Field

Locale

Default content

Translated content

PRODUCT_OPTION

gid://shopify/ProductOption/123

123

-

PRODUCT

gid://shopify/Product/456

cotton-tee

name

fr

Size

Taille

This makes it clear that you're translating the "Size" option name for the "cotton-tee" product.

Working with Metafields

For metafield translations, the Handle column shows the metafield namespace and key:

Type

ID

Identification

Handle

Parent Type

Parent ID

Parent Handle

Field

Locale

Default content

Translated content

METAFIELD

gid://shopify/Metafield/789

789

custom.care_instructions

PRODUCT

gid://shopify/Product/456

cotton-tee

value

fr

Machine wash cold

Laver ร  froid

This shows you're translating the custom.care_instructions metafield for the "cotton-tee" product.

Limitations and Future Plans

Current Limitations

  • Export only: Translation import is not yet supported

  • No filtering by field: You cannot yet filter to export only specific fields (e.g., only titles, not descriptions)

  • Product filters only: Resource-level filtering is currently only available for products. Other resource types (collections, pages, etc.) cannot yet be filtered by their attributes.

Planned Features

We're actively working on this feature and plan to add:

  • Import support to create and update translations

  • Resource-level filtering for additional types (collections, pages, etc.)

If you have suggestions or feature requests, please contact us

Did this answer your question?