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 |
|
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) |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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,deUse
NOT_EQUALSto exclude specific locales:locale NOT EQUALS enBy default, exports all non-primary locales
type: Filter by resource type (e.g.,
PRODUCT,COLLECTION,PAGE)Supports comma-separated values:
type=PRODUCT,COLLECTIONSee 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,unlistedExample:
product_status=activeto only export translations for active productsproduct_tag: Filter by product tag
Example:
product_tag=summerto only export translations for products tagged "summer"Supports partial matching
product_created_at: Filter by product creation date
Example:
product_created_at=2024-01-01to export translations for products created on that dateSupports date ranges with
GREATER_THANandLESS_THANrelations
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:
Select the Translations object type
Add filters:
locale=fr,esandtype=PRODUCTExport 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
