Hello,
This is a general request to improve the translation system. As powerful as the translation system is, it suffers from a few limitations that can break stores very easily without merchants realizing.
Specifically, when you make a metafield definition translatable, all the fields become, de-facto, translatable, and are being returned to the translatable resources API (translatableResources - GraphQL Admin).
It is the same for theme settings. All text, rich text, text area… fields are automatically exposed as a translatable resource.
The issue is that many apps (including Shopify own Translate & Adapt app) have an automatic translation feature that will take all translatable resources and will attempt to translate them.
However, there are various cases where it falls apart, and where such a system will translate fields it should not.
There are two main use cases I am thinking of:
- In the theme, there are some settings that are kind of “advanced”, that requires the merchant to enter, for instance, a CSS selector (this can be frequent for app blocks, specifically).
- For metaobjects, a metaobject definition might contain some fields that are not meant to be translated, because they hold system values (such as flags, statuses…).
I suggest a more-granular approach, fully backward compatible with existing system:
For themes
Translatable fields could define a new “translatable” field that could be explicitly set to false by a theme developer/app developer:
{
"type": "text",
"id": "selector",
"label": "Selector",
"translatable": false
}
For metaobject definitions
For metaobject definitions, we should have the ability for a translatable metaobject definition to indicate that one or more field is not translatable, with a new translatable
property at the field level. If not defined, this would inherit the metaobject definition translatable property.
From a consumer perspective, the idea is that theme settings fields and metaobject fields that are not translatable are automatically not returned as a translatable resource. This would fix automagically such issues as apps would no longer receive those resources, hence removing any unwanted translations.
As AI translations is getting better and better, I expect merchants will rely more and more on automatic translations, so it is really important that Shopify gives a bit more flexibility on what can be translated or not.
Thanks!