Yerelleştirme mesajı biçimleri

Uluslararasılaştırılmış her uzantı, yerel ayara özel dizeler sağlayan messages.json adlı en az bir dosyaya sahiptir. Bu sayfada messages.json dosyalarının biçimi açıklanmaktadır. Uluslararasılaştırma ve yerelleştirme hakkında bilgi edinmek 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ı gereklidir.

messages.json:

{
  "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

"prompt_for_name", "merhaba" ve "bye" adlı üç mesajı tanımlayan bir messages.json dosyasını burada görebilirsiniz:

messages.json:

{
  "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 tüm alanlar açıklanmaktadır. Mesajlar dosyasının nasıl kullanıldığıyla ilgili ayrıntılar (örneğin, bir yerel ayar tüm mesajları tanımlamadığında ne olduğu) için Uluslararası hale getirme bölümüne bakın.

ad

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

Ad, yerelleştirilmiş ileti metnini almanızı sağlayan 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)
  • @

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

messages.json:

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

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

mesaj

placeholders içerebilen bir dize biçimindeki çevrilmiş ileti. Belirli bir yer tutucuya başvuruda bulunmak için $_placeholder_name_$ (büyük/küçük harfe duyarlı değil) değerini kullanın. Örneğin, "sitemiz" adlı bir yer tutucudan $our_site$, $OUR_SITE$ veya $oUR_sITe$ olarak yararlanabilirsiniz.

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

messages.json:

"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 $):

messages.json:

"message": "Amount (in $$)"
 işlevini kullanın

$USER$ gibi yer tutucular, değiştirme dizelerine (i18n.getMessage'ın değiştirmeler parametresi kullanılarak belirtilen dizeler) başvuruda bulunmak için tercih edilen yöntem olsa da, değiştirme dizelerine doğrudan mesajın içinden de başvurabilirsiniz. Örneğin, aşağıdaki mesaj getMessage() öğesine geçirilen ilk üç değiştirme dizesine referansta bulunur:

messages.json:

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

Buna rağmen, mesajlarınızda $_n_ dizeleri yerine yer tutucular kullanmaya devam etmenizi öneririz. Yer tutucuları iyi değişken adları olarak düşünebilirsiniz. Kodunuzu yazdıktan bir hafta sonra, muhtemelen $1 teriminin 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 placeholders bölümüne bakın.

açıklama

İsteğe bağlı. Çevirmenin mümkün olan en iyi çeviriyi yapmasına yardımcı olmak için bağlam veya ayrıntılar sunmayı amaçlayan mesajın açıklamasıdır.

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

messages.json:

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

placeholders

İsteğe bağlı. İleti içinde kullanılacak bir veya daha fazla alt dize tanımlar. Yer tutucu kullanmak istemenizin iki nedeni olabilir:

  • İletinizin çevrilmemesi gereken bir bölümünü tanımlamak için. Örnekler: HTML kodu, ticari markalı adlar, biçimlendirme belirleyiciler.
  • getMessage() dizesine geçirilen bir değiştirme dizesine başvuruda bulunmak için. Örnek: $1.

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

"content" öğesinin değeri, i18n.getMessage yönteminin substitutions parametresi kullanılarak belirtilen değiştirme dizelerine referans verebilen bir dizedir. "İçerik" öğesinin değeri genelde "Example.com" veya "$1" gibidir. Var olmayan bir değiştirme dizesine başvurursanız boş bir dize elde edersiniz. Aşağıdaki tabloda, $_n_ dizelerinin substitutions parametresi tarafından belirtilen dizelere nasıl karşılık geldiği gösterilmektedir.

substitutions parametresi$1 değeri2 TL'lik değer3 TL değeri
userNameuserName değeri""""
["Cira", "Kathy"]"Cira""Kathy"""

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

Örnek bölümünden alınan aşağıdaki snippet, "our_site" ve "user" adlı iki yer tutucu içeren bir "yer tutucular" öğesini göstermektedir. Değeri "content" alanından açıkça görülebildiği için "our_site" yer tutucusunda "example" öğesi yoktur.

messages.json:

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