Eklentileri Yerelleştirmek

Eklentileri yerelleştirmek kolaydır.

Mesaj ekleme

addons-l10n/en/ altında, ADDONID.json adında bir dosya oluşturun; burada ADDONID, eklentinin kimliğidir (klasörün adıdır). Çevirmek istediğiniz mesajlarınızı buraya yazın:

{
  "ADDONID/meow": "Miyav",
  "ADDONID/cats": "{number, plural, one {1 cat} other {# cats}}",
  "ADDONID/eat": "Ben {food} yemek istiyorum!",
  "ADDONID/salmon": "somon",
  "ADDONID/sardine": "sardalya",
  "ADDONID/move-steps": {
    "string": "{number} adım git",
    "developer_comment": "Lütfen bunu Scratch'in resmî blok çevirisiyle eşleşecek şekilde çevirin."
  }
}

Yer tutucular

Bazen mesajların dinamik olarak oluşturulmuş şeylere sahip olması gerekir. Örneğin, kedilerin sayısı, veya giriş. Bunu halletmek için {placeholderName} gibi yer tutucular kullanabilirsiniz. Yer tutucu adı yalnızca harflerden oluşmalıdır (sayı içermemelidir).

Çoğul

Ya yer tutucu bir sayıysa? {placeholderName, plural, one {When There is onething} other {When There # Things}} gibi çoğullar kullanabiliriz. Yer tutucu 1 ise, “bir şey olduğunda” gösterilir, aksi takdirde “(yer tutucu) şeyler olduğunda” yazar.

Geliştirici yorumları

Transifex, bir tercüman belirli bir diziyi seçtiğinde geliştirici yorumu görüntüler. Bu yorumlar genellikle dizenin sadece belirli bir yerinin çevrilmesini istemek veya büyük ve küçük harfler arasında ayrım yapmayan diller için ek bilgi sağlamak için kullanılır.

Çevirileri kullanma

Userscript’in ilk satırını aşağıdaki gibi değiştirin:

export default async function ({ addon, console }) {

ile:

export default async function ({ addon, console, msg }) {

Eklenen msg, çevirileri almak için kullandığınız fonksiyondur. Örneğin, metin= "Miyav" artık metin = msg("miyav") olabilir. Eklenti ID’si ve eğik çizgi atlanır.

Yer tutucular

Yer tutucuya değer verebilirsiniz:

cat = msg("cats", {number: 1}) // "1 cat" yazısını gösterir
cats = msg("cats", {number: 3}) // "3 cats" yazısını gösterir
hungry = msg("eat", {food: "cod"}) // "I want to eat cod!" yazısını gösterir

Ayrıca mesajları “iç içe” yerleştirebilirsiniz:

hungry2 = msg("eat", {food: msg("salmon")}) // "I want to eat salmon!" yazısını gösterir

Güvenlik

Ham HTML yazıyorsanız, msg, daha güvenli sürümü olan safeMsg ile değiştirilmelidir.