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 mesajgetMessage()
öğ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ğeri | 2 TL'lik değer | 3 TL değeri |
---|---|---|---|
userName | userName 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"
}
}