Blockly çekirdeğine, kullanıcı tarafından görülebilen yeni dizeler gerektiren bir özellik eklerseniz bu dizeleri Blockly.Msg
dosyasına eklemeniz gerekir. Böylece dizeler Translatewiki tarafından çevrilebilir. (Kendi uygulamanıza yerelleştirme jetonları ekleme hakkında bilgi için Yerelleştirme bölümüne bakın.)
- Yeni dizeyi uygun bir ad ve açıklamayla birlikte
msg/messages.js
dosyasına ekleyin. - Çevirinizi
npm run messages
vemsg/json/en.js
dosyalarına otomatik olarak eklemek içinnpm run messages
komutunu çalıştırın.msg/json/qqq.json
Bu adım, bazı durumlardamsg/json/constants.js
veyamsg/json/synonyms.js
simgesini de değiştirebilir. - Otomatik olarak oluşturulan dosyaların doğruluğunu kontrol edin. Komut dosyasının,
qqq.json
bölümünün başında@metadata
bölümünü kaldırabileceğini unutmayın. Bu durumda, yeni dizeninizin eklenmesi ancak@metadata
karakterinin kaldırılmaması için bu değişikliği dikkatlice geri almanız gerekir. - Özellik kodunuzda, yeni dizeye
Blockly.Msg['MY_NEW_MESSAGE']
ile referans verin. msg
dosyalarındaki tüm değişiklikleri özellik kodunuzla birlikte işleyin.
Örneğin, bu kodu msg/messages.js
öğesine eklerseniz:
/** @type {string} */
/// This is a hint to translators about the context for the message.
Blockly.Msg.MY_NEW_MESSAGE = 'This is a string that users will see!';
Ardından npm run messages
komutunu çalıştırın. msg/en.json
içinde aşağıdaki değişiklikleri görmeniz gerekir:
// ...
"MY_NEW_MESSAGE": "This is a message that users will see!",
// ...
ve msg/qqq.json
içinde:
// ...
"MY_NEW_MESSAGE": "This is a hint to translators about the context for the message.",
// ...
Ardından, Blockly.Msg['MY_NEW_MESSAGE']
ile koddaki bu dizeye başvurabilirsiniz.
Çeviri ipuçları
msg/messages.js
içindeki üç eğik çizgili yorum, çeviri sırasında TranslateWiki kullanıcılarına ek bilgi olarak gösterilir. Mesajın kullanıcılara nerede gösterileceği hakkında bilgi verin. Mesaj parametre içeriyorsa (ör. %1
) parametrelerinin ne anlama geldiğini açıklayın.
Parametreleri açıklayan ve daha fazla bilgiye bağlantı veren iyi bir çeviri ipucu örneğini aşağıda bulabilirsiniz.
/** @type {string} */
/// block text - Repeatedly counts a variable (%1)
/// starting with a (usually lower) number in a range (%2),
/// ending with a (usually higher) number in a range (%3), and counting the
/// iterations by a number of steps (%4). As in
/// [https://github.com/google/blockly/wiki/Loops#count-with
/// https://github.com/google/blockly/wiki/Loops#count-with].
Blockly.Msg.CONTROLS_FOR_TITLE = 'count with %1 from %2 to %3 by %4';
Bağlam türleri
İpuçlarının çoğunda, mesajın bağlamını açıklamak için bir önek kullanılır. Yaygın önekler şunlardır:
- metni engelle
- düğme metni
- içerik menüsü
- açılır menü
- matematik
- kısa ileti bildirimi
- ipucu
İletiniz bu bağlamlardan birinde görünüyorsa uygun öneki kullanın.
Eş anlamlılar
Bazen bir ileti anahtarının değiştirilmesi gerekir ancak çevirilerin değiştirilmesi gerekmez. Bu durumda, eski mesajı yeni mesajın eş anlamlısı olarak ayarlayabilirsiniz. Örneğin:
/** @type {string} */
Blockly.Msg.CONTROLS_FOR_INPUT_DO = Blockly.Msg.CONTROLS_REPEAT_INPUT_DO;
İsteğe bağlı mesajlar
Bazı ileti dizelerinin, belirli durumlar (ör. özel isimler veya semboller) dışında çevrilmesi gerekmez. Blockly'de yardım URL'leri genellikle isteğe bağlı olarak işaretlenir.
Diller yalnızca en az %25 oranında tamamlanmışsa Blockly deposuna eklenir. Bu nedenle, çevrilmesi gerekmeyen mesajları isteğe bağlı olarak işaretlemek, bu dillerin isteğe bağlı çevirileri tamamlamasına gerek kalmadan eşiği karşılamasına yardımcı olur.
/** @type {string} */
/// {{Optional}} math - The symbol for the binary operation addition.
Blockly.Msg.MATH_ADDITION_SYMBOL = '+';
Çevrilmeyen öğeler
Varsayılan blok kategorileri için kullanılan renkler {{notranslate}}
ile işaretlenir. Bu renklerin yerelleştirilmesi amaçlanmamıştır ancak geliştiricilerin varsayılan kategorilerdeki blokların renklerini kolayca değiştirebilmesi için yerelleştirme sisteminde yer alır. Yeni engelleme kategorileri eklerseniz {{notranslate}}
yönergesini kullanın. Çevrilmemesi gerektiğini düşündüğünüz farklı bir mesaj türü eklerseniz yerelleştirme sisteminin dize için doğru yer olup olmadığını değerlendirin.
/** @type {string} */
/// {{Notranslate}} Hue value for all logic blocks.
Blockly.Msg.LOGIC_HUE = '210';