Kemarin itu saya ngubek-ngubek cari tahu gimana caranya metafield Shopify bisa di translate. Sampai hampir putus asa.. ah kayaknya metafield ga bisa di translate ini.
Tapi akhirnya saya menemukan solusi untuk mentranslate metafield ke berbagai bahasa.
Berikut cara nya:
Kita akan membutuhkan API Storefront dan Admin API.
saya asumsikan suatu produk memiliki metafields dengan key “serving” berbahasa Inggris:
GraphQL product:
query GetProduct @inContext(language: UK){
product(id: "gid://shopify/Product/8082680013012") {
title
MetafieldServing: metafield(namespace: "global", key: "serving") {
id,
value
}
}
}
response:
{
"data": {
"product": {
"title": "Frankfurt mini sausages",
"MetafieldServing": {
"id": "gid://shopify/Metafield/28238001960859",
"value": "5 servings of 30 g"
}
}
}
Ambil id dari metafields “serving” tersebut, paste di query translatableResourcesByIds untuk mendapatkan digest nya.
GraphQL translatableResourcesByIds:
{
translatableResourcesByIds(first:10, resourceIds: "gid://shopify/Metafield/28238001960859") {
nodes {
resourceId
translatableContent {
key
value
digest
locale
}
}
}
}
response:
{
"data": {
"translatableResourcesByIds": {
"nodes": [
{
"resourceId": "gid://shopify/Metafield/28238001960859",
"translatableContent": [
{
"key": "value",
"value": "5 servings of 30 g",
"digest": "d4735e3a265e16eee03f59718b9b5d03019c07d8b6c66eec13ab3551f90da3a6",
"locale": "uk"
}
]
}
]
}
}
}
Langkah terakhir adalah menambahkan value untuk bahasa Prancis: “5 portions de 30 g” di translationsRegister dengan digest sebagai acuan nya.
mutation CreateTranslation($id: ID!, $translations: [TranslationInput!]!) {
translationsRegister(resourceId: $id, translations: $translations) {
userErrors {message field} translations {locale key value}
}
}
variable:
{
"id": "gid://shopify/Metafield/28238001960859",
"translations":
[ {
"key": "value",
"value": "5 portions de 30 g",
"locale": "fr",
"translatableContentDigest": "97984c6a46b7f67bd2d518f99d679a7e3acb2b338609f554a8059826380c9997"
}
]
}
Jika sukses, hasilnya akan seperti ini:
Terimakasih.