Yerelleştirme mesajı biçimleri

Uluslararası hale getirilmiş her uzantı veya uygulamanın, aşağıdakileri sağlayan messages.json adında en az bir dosyası vardır: yerel ayara özgü dizeler bulunur. Bu sayfada messages.json dosyalarının biçimi açıklanmaktadır. Daha fazla bilgi için nasıl uluslararasılaştıracağınızı ve yerelleştireceğinizi öğrenmek için Uluslararası hale getirme sayfasına bakın.

Alan özeti

Aşağıdaki kod, messages.json için desteklenen alanları göstermektedir. Yalnızca "name" ve "message" alanlarının doldurulması zorunludur.

{
  "name": {
    "message": "Message text, with optional placeholders.",
    "description": "Translator-aimed description of the message.",
    "placeholders": {
      "placeholder_name": {
        "content": "A string to be placed within the message.",
        "example": "Translator-aimed example of the placeholder string."
      },
      ...
    }
  },
  ...
}

Örnek

Aşağıda, "prompt_for_name", "hello" vemessages.json "güle güle":

{
  "prompt_for_name": {
    "message": "What's your name?",
    "description": "Ask for the user's name"
  },
  "hello": {
    "message": "Hello, $USER$",
    "description": "Greet the user",
    "placeholders": {
      "user": {
        "content": "$1",
        "example": "Cira"
      }
    }
  },
  "bye": {
    "message": "Goodbye, $USER$. Come back to $OUR_SITE$ soon!",
    "description": "Say goodbye to the user",
    "placeholders": {
      "our_site": {
        "content": "Example.com",
      },
      "user": {
        "content": "$1",
        "example": "Cira"
      }
    }
  }
}

Alan ayrıntıları

Bu bölümde, bir messages.json dosyasında görünebilecek her bir alan açıklanmaktadır. Nasıl iletiler dosyası kullanılır (örneğin, bir yerel ayar tüm iletileri tanımlamazsa ne olur?) Uluslararası hale getirme.

ad

Aslında, "ad" adlı bir alan yoktur. Bu alanın adı, mesajın adıdır; aynı __MSG__name___ veya getMessage("_name_") içinde gördüğünüz ad.

Ad, yerelleştirilmiş ileti metnini almanıza olanak tanıyan, büyük/küçük harfe duyarlı olmayan bir anahtardır. Ad, şu karakterleri ekleyin:

  • A'dan Z'ye
  • a-z
  • 0-9
  • _ (alt çizgi)
  • @
Not: "@@" ile başlayan adları tanımlamayın. Bu adlar, önceden tanımlanmış mesajlar için ayrılmıştır.

Aşağıda, Örnek bölümünden alınan üç ad örneği verilmiştir:

"prompt_for_name": {
  ...
},
"hello": {
  ...
},
"bye": {
  ...
}

Adların kullanılmasına ilişkin daha fazla örnek için Uluslararası hale getirme sayfasına bakın.

mesaj

Yer tutucular içerebilen bir dize biçiminde çevrilmiş ileti. Tekliflerinizi otomatikleştirmek ve optimize etmek için $_placeholder_name_$ (büyük/küçük harfe duyarlı değil): Belirli bir yer tutucuyu belirtir. Örneğin, şunları yapabilirsiniz: "our_sitemiz" adlı bir yer tutucuya başvuruda bulunma $our_site$, $OUR_SITE$ veya $oUR_sITe$ olarak.

Aşağıda, Örnek bölümünden alınan üç mesaj örneği verilmiştir:

"message": "What's your name?"
...
"message": "Hello, $USER$"
...
"message": "Goodbye, $USER$. Come back to $OUR_SITE$ soon!"

Dizeye dolar işareti ($) eklemek için $$. For example, use the following code to specify the message Amount (in $):

"message": "Amount (in $$)"
 kullanın.

Değişiklik dizelerine atıfta bulunmak için tercih edilen yöntem $USER$ gibi yer tutucular olsa da (i18n.getMessage'ın substitutions parametresi kullanılarak belirtilen dizeler) dizeleri doğrudan iletinin içinde kullanabilirsiniz. Örneğin, aşağıdaki mesaj örneğin, getMessage() işlevine aktarılan ilk üç değiştirme dizesi:

"message": "Params: $1, $2, $3"

Buna rağmen, $_n_ dizeleri yerine yer tutucuları kullanmaya devam etmenizi öneririz. kullanabilirsiniz. Yer tutucuları iyi değişken adları olarak düşünebilirsiniz. Ödevinizi yazdıktan bir hafta sonra kodunu yazarsanız büyük olasılıkla $1 ürününün ne anlama geldiğini unutursunuz, ancak yer tutucularınızın ne anlama geldiğini bilirsiniz. Yer tutucular ve değiştirme dizeleri hakkında daha fazla bilgi için yer tutucular bölümüne bakın.

açıklama

İsteğe bağlıdır. Çevirmene yardımcı olmak için bağlam veya ayrıntılar vermeyi amaçlayan mesajın açıklaması mümkün olan en iyi çeviriyi yapmanız gerekir.

Aşağıda, Örnek bölümünden alınan üç açıklama örneği verilmiştir:

"description": "Ask for the user's name"
...
"description": "Greet the user"
...
"description": "Say goodbye to the user"

yer tutucular

İsteğe bağlıdır. Mesaj içinde kullanılacak bir veya daha fazla alt dizeyi tanımlar. Merchant Center’ı kullanmanızın bir yer tutucu kullanabilirsiniz:

  • Mesajınızın çevrilmemesi gereken bir bölümünün metnini tanımlamak için kullanılır. Örnekler: HTML kodu, ticari marka adları, biçimlendirme belirteçleri.
  • getMessage() işlevine geçirilen bir değiştirme dizesine başvurmak için. Örnek: $1.

Her yer tutucunun bir adı, "içerik" öğesi ve isteğe bağlı bir "örnek" öğe. Yer tutucu adı büyük/küçük harfe duyarlı değildir ve ileti adıyla aynı karakterleri içerebilir.

"İçerik" öğenin değeri, i18n.getMessage yönteminin substitutions parametresini kullanın. "İçerik"in değeri öğe genellikle "Example.com" gibi bir şeydir veya "$1" yazın. yoksa boş bir dizeyle karşılaşırsınız. Aşağıdaki tabloda $_n_ dizelerinin dizelere nasıl karşılık geldiği gösterilmektedir substitutions parametresiyle belirtilir.

substitutions parametresi1 TL'nin değeri2 TL'lik değer3 TL'lik değer
userNameuserName değeri""""
["Cira", "Kathy"]"Cira""Kathy"""

"Örnek" öğe (isteğe bağlıdır, ancak kesinlikle önerilir), içeriğin nasıl yazıldığını göstererek son kullanıcıya görünür. Örneğin, bir tutara ilişkin yer tutucuda şöyle bir örnek bulunmalıdır: "$23.45"

Örnek bölümünden alınan aşağıdaki snippet'te bir "yer tutucular" öğe "our_sitemiz" adlı iki yer tutucu içerir ve "user". "our_sitemiz" yer tutucunun "example" değeri yok öğesi, çünkü değeri "content" (içerik) girin.

"placeholders": {
  "our_site": {
    "content": "Example.com",
  },
  "user": {
    "content": "$1",
    "example": "Cira"
  }
}