Yerelleştirme mesajı biçimleri

Her uluslararasılaştırılmış uzantı veya uygulamada, yerel ayara özgü dizeler sağlayan messages.json adlı en az bir dosya bulunur. Bu sayfada, messages.json dosyalarının biçimi açıklanmaktadır. Uluslararası hale getirme ve yerelleştirme hakkında bilgi edinmek için Uluslararası hale getirme sayfasına bakın.

Alan özeti

Aşağıdaki kodda, messages.json için desteklenen alanlar gösterilmektedir. 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" ve "bye" adlı üç mesajı tanımlayan bir messages.json dosyası verilmiştir:

{
  "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, messages.json dosyasında görünebilecek her alan açıklanmaktadır. messages dosyasının nasıl kullanıldığıyla ilgili ayrıntılar (ör. bir yerel ayar tüm mesajları tanımlamadığında ne olur?) için Uluslararasılaştırma başlıklı makaleyi inceleyin.

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 aşağıdaki karakterleri içerebilir:

  • 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.

Örnek bölümünden alınan üç ad örneğini aşağıda bulabilirsiniz:

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

Adların kullanımıyla ilgili daha fazla örnek için Uluslararasılaştırma sayfasına bakın.

mesaj

Çevrilmiş mesaj. Yer tutucular içerebilen bir dize biçimindedir. Belirli bir yer tutucuya başvurmak için $_placeholder_name_$ (büyük/küçük harf duyarlı değildir) kullanın. Örneğin, "our_site" adlı bir yer tutucuyu $our_site$, $OUR_SITE$ veya $oUR_sITe$ olarak referans alabilirsiniz.

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"

Bu örnekte gösterildiği gibi, mesajlarınızda $_n_ dizelerinin yerine yer tutucular kullanmaya devam etmenizi öneririz. 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. Çevirmenin mümkün olan en iyi çeviriyi yapmasına yardımcı olmak için bağlam veya ayrıntılar sağlamak amacıyla iletinin açıklaması.

Örnek bölümünden alınan üç açıklama örneğini aşağıda bulabilirsiniz:

"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. İleti içinde kullanılacak bir veya daha fazla alt dize tanımlar. Yer tutucu kullanmanın iki nedeni vardır:

  • Mesajınızın çevrilmemesi gereken bir bölümünün metnini tanımlamak için kullanılır. Örnekler: HTML kodu, ticari markalı adlar, biçimlendirme belirteci.
  • getMessage() içine iletilen bir değiştirme dizesini belirtmek için kullanılır. Örnek: $1.

Her yer tutucunun bir adı, bir "içerik" öğesi ve isteğe bağlı bir "örnek" öğesi vardır. 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" öğesinin değeri genellikle "Example.com" veya "$1" gibi bir şeydir. Var olmayan bir değiştirme dizesine atıfta bulunursanız boş bir dize alırsınız. Aşağıdaki tabloda, $_n_ dizelerinin substitutions parametresi tarafından belirtilen dizelere nasıl karşılık geldiği gösterilmektedir.

substitutions parametresi1 ABD doları değerinde2 ABD doları değerinde3 TL değerinde
userNameuserName değeri""""
["Cira", "Kathy"]"Cira""Kathy"""

"Örnek" öğesi (isteğe bağlıdır ancak önemle tavsiye edilir), içeriğin son kullanıcıya nasıl göründüğünü göstererek çevirmenlere yardımcı olur. Örneğin, dolar tutarı için bir yer tutucusunda "$23.45" gibi bir örnek olmalıdır.

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

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