Blockly, kullanıcının diline göre yerelleştirilebilen blok tanımlarını destekler. Dize tabloları kullanılarak, JSON blok tanımındaki mesaj dizeleri girişleri, alanları ve etiketleri dilin sözlüğünü yansıtacak şekilde uyarlayabilir, kelime sıralaması ve yönü.
Bu durumların tümü aynı JSON blok tanımını paylaşır:
// Block for creating a list with one element repeated.
{
"type": "lists_repeat",
"message0": "%{BKY_LISTS_REPEAT_TITLE}",
"args0": [
{
"type": "input_value",
"name": "ITEM"
},
{
"type": "input_value",
"name": "NUM",
"check": "Number"
}
],
"output": "Array",
"colour": "%{BKY_LISTS_HUE}",
"tooltip": "%{BKY_LISTS_REPEAT_TOOLTIP}",
"helpUrl": "%{BKY_LISTS_REPEAT_HELPURL}"
}
Dize Tablosu
lists_repeat
örneği, birkaç "%{BKY_...}"
dizesi içerir. Her biri
bunlar, Blockly.Msg
dize tablosundaki bir dizeye başvurudur.
blok örneklendirildiğinde, Blockly dizeyi değerle değiştirmeyi dener.
Örneğin, %{BKY_LISTS_REPEAT_TITLE}
,
Blockly.Msg['LISTS_REPEAT_TITLE']
(varsa). Değer mevcut değilse
%{BKY_...}
gösterimi yerinde bırakılır ve Blockly uyarı gönderir
eksik olan çeviri için.
Örnekte gösterildiği gibi, notasyon birkaç yerde çalışır. Mesajlar
ve ipuçları, kullanıcının görebildiği dizelerin değiştirilmesine olanak tanır. Benzer şekilde,
alanları, öğe metni için de gösterim kullanabilir. Yardım URL'si şu şekilde yerelleştirilebilir:
Kullanıcının benzer şekilde yerelleştirilmiş bir sayfaya yönlendirilmesini sağlar. Son olarak da
colour
değeri, blok paletini merkezileştirmeye yardımcı olması için gösterimi kullanabilir.
JavaScript uygulaması kullanıyorsanız ve
yardımcı oluyorsa doğrudan referans kullanmak daha kolay olabilir. Örneğin,
örnek, Blockly.Msg['LISTS_REPEAT_TITLE']
veya
Blockly.Msg.LISTS_REPEAT_TITLE'
.
Dize tabloları, dile özgü .js
dosyalarından herhangi biri aracılığıyla yüklenir.
msg/js
uygun dosyayı web sayfanıza ekleyerek doğru blok çevirisini yükleyin.
JSON Mesaj İnterpolasyonu
message0
özelliği (ve message1
, message2
vb.) girişleri belirtir.
alanları ve etrafındaki etiket metnini gösterir. LISTS_REPEAT_TITLE
için
lists_repeat
bloku için, İngilizce değeri şöyle olur:
Blockly.Msg.LISTS_REPEAT_TITLE = 'create list with item %1 repeated %2 times';
%1
ve %2
olmak üzere iki interpolasyon işaretçisi, iki girişin konumlarını işaretler.
args0
dizisinde daha ayrıntılı bilgi verilmiştir. args1
şunlara karşılık gelir:
message1
dizesi. Bkz.
Özel yapı taşları oluşturma
kılavuzu inceleyin.
İnterpolasyon işaretçileri arasındaki metin, adsız hale getirilir etiket alanlarını kullanın. Bu, blok sırası ve nasıl okunduğuyla ilgili olarak:
// In Spanish
Blockly.Msg.LISTS_REPEAT_TITLE = "crear lista con el elemento %1 repetido %2 veces";
// In Korean
Blockly.Msg.LISTS_REPEAT_TITLE = "%1을 %2번 넣어, 리스트 생성";
Sağdan sola dillere çeviri yaparken ileti dizesi aynı olmalıdır ve Unicode yön komutlarını içermemelidir:
// In Arabic. Note how %2 is left of %1, since it read right to left.
Blockly.Msg.LISTS_REPEAT_TITLE = "إنشئ قائمة مع العنصر %1 %2 مرات";
Dize tablolarını yeniden oluşturma
Dize tablosu .js
dosyaları, build:langfiles
komut dosyasının bir parçasıdır. İlgili içeriği oluşturmak için kullanılan
komut dosyası, tanımlayıcı anahtarlarını ve İngilizce çevirileri
msg/messages.js
yeni bir en.json
oluşturun.
Ardından,
diğer JSON dosyaları,
yeniden oluşturacağından
JavaScript dize tabloları
yeni bir dil de dahil olmak üzere
en.js
.
İngilizce olmayan JSON dosyaları şuradaki iş ortaklarından gelir: TranslateWiki Bkz. üzerine notlar çeviri nasıl yardım edebileceğinizle ilgili ayrıntılar için.