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 "ad" ve "mesaj" alanları 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ı, ileti adıdır (__MSG__name___
veya getMessage("_name_")
'de gördüğünüz adla aynıdır).
Ad, yerelleştirilmiş mesaj 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)
- @
Ö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 harfe duyarlı değil) değerini 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!"
Dizene dolar işareti ($
) eklemek için $$
. For example, use the following code to specify
the message Amount (in $):
"message": "Amount (in $$)"
$USER$
gibi yer tutucular, yerine koyma dizelerine (i18n.getMessage işlevinin substitutions parametresi kullanılarak belirtilen dizeler) başvurmanın tercih edilen yolu olsa da doğrudan ileti içinde de yer değiştirme dizelerine başvurabilirsiniz. Örneğin, aşağıdaki mesajgetMessage()
içine iletilen ilk üç değiştirme dizesini ifade eder:"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üşünün. Kodunuzu yazdıktan bir hafta sonra$1
değerinin neyi ifade ettiğini muhtemelen unutursunuz ancak yer tutucularınızın neyi ifade ettiğ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ı sağlamayı amaçlayan mesajın açıklaması.
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. İ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 kısmının metnini tanımlamak için. Ö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 mesaj adıyla aynı karakterleri içerebilir.
"İçerik" öğesinin değeri, i18n.getMessage yönteminin substitutions parametresi kullanılarak belirtilen değiştirme dizelerini referans alabilecek bir dizedir. "İç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 parametresi | 1 ABD doları değerinde | 2 TL değerinde | 3 TL değerinde |
---|---|---|---|
userName | userName değeri | "" | "" |
["Cira", "Kathy"] | "Cira" | "Kathy" | "" |
"Örnek" öğe (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_site" yer tutucusunun değeri, "content" (içerik) alanından açık olduğu için "example" öğesi içermez.
"placeholders": {
"our_site": {
"content": "Example.com",
},
"user": {
"content": "$1",
"example": "Cira"
}
}