Localisation/tr


 * Wikimedia Vakfı yerelleştirme ekibi için sayfasına bakın.
 * Bu vikideki sayfaları çevirisi için sayfasına bakın.

Bu sayfa MediaWiki'nin uluslararasılaştırma ve yerelleştirme (i18n ve L10n) sisteminin teknik bir tanımını verir ve kodlayıcıların farkında olmalıdır. Mantığımız, i18n sonradan düşünülmemeli: bu, yazılımınızın ilk aşamalarından ve aynı zamanda MediaWiki'nin temel değerlerinden birinin temel bileşenidir.

translatewiki.net
translatewiki.net, çekirdek uzantı ve görünüm mesajlarının viki için çevirisini destekler. Bu sayfadaki dosya düzenleme, Git, yamalar oluşturma vb. gibi tüm teknik özelliklerle hiçbir ilginiz yoksa, doğrudan translatewiki.net adresine gidin.

MediaWiki kullanıcı arayüzü mesajlarının tüm çevirisi, translatewiki.net adresinden geçmeli ve doğrudan koda bağlı olmamalıdır. Kaynak kodda sadece İngilizce mesajlar ve başlangıç belgelendirme yapılmalıdır.

Çekirdek MediaWiki ve uzantılar, kullanıcı arayüzünde görüntülenen herhangi bir metin için sistem mesajlarını kullanmalıdır. Bunun nasıl yapılacağına dair bir örnek için, lütfen bölümüne bakın. Uzantı iyi yazılmışsa, personeli bildirdikten sonra birkaç gün içinde muhtemelen  dahil edilir. Fark edilmediyse, iletişime geçin. Tercüme edilemeyecek kadar dengesizse, kodu not alın veya gerekiyorsa onlarla iletişime geçin.

Ayrıca bakınız Yerelleştirme sistemine genel bakış ve Ne ile yerelleştirilebilirler.

Mesajları bulma
, çevirmek istediğiniz belirli bir dizginin nasıl bulunacağını açıklar. Özellikle, ile tanıtılan  not alın.

i18n posta listesi
i18n listesine abone olabilirsiniz. Şu anda trafik az.

Kod yapısı
İlk önce, cinsinden bir Dil nesnesine sahipsiniz. Bu nesne, tüm yerelleştirilebilir yanı sıra, dile özgü diğer ayarları ve özel davranışları (büyük harf, küçük harf, tarih basma, biçimlendirme numaraları,,  vs.).

Nesne iki kaynaktan inşa edilmiştir: kendisinin alt sınıf sürümleri (sınıflar) ve Mesaj dosyaları (mesajlar).

Ayrıca MediaWiki ad alanı üzerinden metin girişini yapan MessageCache class var. Günümüzde çoğu uluslararasılaştırma, nesnelerle ve   olarak tanımlanan   kısayol işleviyle gerçekleştirilir. Eski kod hala yukarıda belirtilen Mesaj nesneleri lehine kabul edilmeyen eski  işlevlerini kullanıyor olabilir.

Genel kullanım (geliştiriciler için)
Ayrıca bakınız.

Dil nesneleri
Dil nesnesini almanın iki yolu vardır. Kullanıcı arayüzü ve içerik dili için sırasıyla ve  küreseli kullanabilirsiniz. İsteğe bağlı bir dil için  kullanarak,   dil koduyla değiştirerek bir nesne oluşturabilirsiniz. zaten bir dil nesnesiyse  kullanabilirsiniz. Kodların  listesinde.

Dile özgü işlevleri yapmak için en çok sayı, saat ve tarih biçimlendirmesini yapmak, aynı zamanda listeleri ve diğer şeyleri yapmak için Language nesneye ihtiyaç vardır. Birden fazla önbelleğe alma ve ile birleştirme katmanı var, ancak normal kullanımda ayrıntılar önemli değil.

Mesajları kullanma
MediaWiki, koddaki anahtarlarla başvurulan bir merkezi ileti deposunu kullanır. Bu, örneğin çevrilebilir dizeleri kaynak dosyalardan ayıklayan, örneğin  farklıdır. Anahtar tabanlı sistem, orijinal metinleri hassaslaştırma ve mesajlardaki değişiklikleri izleme gibi bazı şeyleri kolaylaştırır. Dezavantajı elbette, kullanılan mesajların ve bu anahtarlar için kaynak metinlerin listesinin senkronizasyondan çıkmasıdır. Uygulamada bu büyük bir sorun değildir ve tek önemli sorun, bazen kullanılmayan fazladan iletilerin hala çeviri için hazır kalmasıdır.

Mesaj tuşlarını daha kolay yönetilebilir ve kolay bulmak için grep ile de her zaman tamamen yazın ve dinamik olarak oluşturulmasına çok fazla güvenmeyin. Kodunuzun daha iyi bir yapı verdiğini düşünüyorsanız, mesaj tuşlarının bir kısmını birleştirebilir, ancak olası sonuç tuşlarının bir listesi ile yakınlarda bir yorum yapabilirsiniz. Örneğin:

PHP

JS

PHP ve JavaScript'teki mesaj işlevlerinin detaylı kullanımı üzerindedir.

Yeni mesaj ekleme
Ayrıca bakınız:

Mesaj anahtarını seçme
Ayrıca bakınız:

Mesaj anahtarı genel olarak benzersiz olmalıdır. Bu çekirdek MediaWiki'yi ve tüm uzantıları ve kaplamaları içerir.

Mesaj isimlerinde küçük harflere, rakamlara ve kısa çizgilere yapıştırın; diğer çoğu karakter daha az pratiktir veya hiç çalışmıyordur. MediaWiki sözleşmesine göre, ilk karakter büyük/küçük harfe duyarsızdır ve diğer karakterler büyük küçük harfe duyarlıdır.

Lütfen adlandırma için küresel veya yerel sözleşmeleri takip edin. Uzantılar için, standart bir ön ek, tercihen küçük harfli uzantı adı ve ardından kısa çizgi ("-") kullanın. İstisnalar:


 * API tarafından kullanılan mesajlar. Bunlar,  ,   ile başlamalıdır. Bu önekten sonra uzantı önekini koyun. (Bu mesajların, genellikle i18/api altında, ayrı bir dosyada olması gerektiğini unutmayın.)
 * Günlükle ilgili mesajlar. Bunlar,  ,   ile başlamalıdır.
 * Kullanıcı hakları. Special:ListGroupRights üzerinde görüntülenen sağ adın anahtarı  ile başlamalıdır. "" cümlesini tamamlayan işlemin adı   ile başlamalıdır
 * Revizyon etiketleri  ile başlamalıdır.
 * Özel sayfa başlıkları  ile başlamalıdır.

Mesaj oluştururken dikkat edilecek diğer şeyler

 * 1) İleti için uygun işleme kullandığınızdan emin olun (ayrıştırma,   değiştirme, HTML için kaçması vb.)
 * 2) Mesajınız çekirdeğin bir parçasıysa, Installer, EXIF etiketleri ve ApiHelp gibi bazı bileşenlerin kendi mesaj dosyaları olmasına rağmen, genellikle   ile eklenmelidir.
 * 3) İletiniz bir uzantı içindeyse, uygun alt dizindeki   veya   dosyasına ekleyin. Özellikle, çoğu geliştirici tarafından görülmeyen ve yalnızca geliştiriciler tarafından görülen API iletileri genellikle   gibi ayrı bir dosyada bulunur. Bir uzantıda çok fazla ileti varsa,   altında alt dizinler oluşturabilirsiniz. Varsayılan   dahil olmak üzere tüm ileti dizinlerinin   bölümünde   veya  değişkeninde listelenmesi gerekir.
 * 4) Bir ara verin ve mesajın metnini göz önünde bulundurun. Mümkün olduğunca net mi? Yanlış anlaşılabilir mi? Mümkünse diğer geliştiricilerin veya yerelleştiricilerin yorumlarını isteyin. #Uluslararasılaştırma ipuçlarını izleyin.
 * 5) Aynı dizine   ile belge ekleyin. Mesaj belgeleri hakkında daha fazla bilgi edinin.

Çevrilmemesi gereken mesajlar

 * 1) Yoksayılan mesajları yalnızca İngilizce mesajlar dosyasında bulunması gereken mesajlardır. Çevrilmesi gerekmeyen mesajlardır, çünkü yalnızca diğer mesajlara veya dilden bağımsız özelliklere kaynaklar, örn. " " mesajı.
 * 2) İsteğe bağlı mesajları yalnızca hedef dilde değiştirilirse çevrilebilir.

Bu tür mesajları işaretlemek için:


 * (isteğe bağlı olarak) sırasıyla  ileti belgelerindeki şablonu kullanın.
 * veya
 * (zorunlu) üzerinde kullanılan  uzantıya, uygun şekilde listeleyen bir yama göndererek mesajlarla ne yapılacağını söyleyin (ayrıca bakınız: ):
 * çekirdek için ile mesaj tuşlarını ekleyin
 * altında veya
 * altında;
 * uzantılar için içinde uzantının adının altına bir satır ekleyin.
 * or
 * or

Mevcut mesajları kaldırma
ve  üzerinden kaldırın. Diğer dillerle uğraşmayın. üzerinden başlayan güncellemeler bunları otomatik olarak ele alacaktır.

Mevcut mesajları değiştirme

 * 1) İleti belgelerini güncellemeyi düşünün (#Yeni mesaj ekleme bölümüne bakın).
 * 2) Eski çeviriler yeni anlam için uygun değilse mesaj tuşunu değiştirin. Bu aynı zamanda mesaj yönetimindeki değişiklikleri de (ayrıştırma, kaçma, parametreler vb.) içerir. Bir iletinin teknik değişiklik yapmadan ifade edilmesini iyileştirmek, genellikle bir anahtarın değiştirilmesi için bir neden değildir. translatewiki.net'te çeviriler, çevirmenler tarafından hedeflenebilmeleri için eski olarak işaretlenecektir. Bir mesaj anahtarını değiştirmek i18n ekibiyle tartışmayı veya bir destek isteği göndermeyi gerektirmez. Ancak, özel koşullarınız veya sorularınız varsa, [Irc://irc.freenode.org/mediawiki-i18n #mediawiki-i18n] veya destek sayfasında  altında sorun.
 * 3) Uzantı   tarafından destekleniyorsa, lütfen yalnızca İngilizce kaynak iletisini ve/veya anahtarını ve beraberindeki girişi   olarak değiştirin. Gerekirse, translatewiki.net ekibi çevirileri güncellemek, eski olarak işaretlemek, dosyayı temizlemek veya mümkün olan yerlerde anahtarları yeniden adlandırmakla ilgilenecektir. Bu, yalnızca bu dillerde tartışmadan diğer dillerde değiştirebileceğiniz HTML etiketleri gibi şeyleri değiştirdiğinizde de geçerlidir. Bu işlemlerin çoğu translatewiki.net olarak gerçekleşecek ve Git'e yaklaşık bir günlük gecikmeyle ulaşacak.

Ad alanlarını ve özel sayfa takma adlarını yerelleştirme
ve özel sayfa adları (yani "Special:RecentChanges" içindeki "RecentChanges") da çevrilebilir.

Ad alanları


Şu anda translatewiki.net'te ad alanı adı çevirileri yapmak devre dışı bırakıldı, bu yüzden bunu Gerrit'te kendiniz yapmanız veya başka birisinin yapmasını isteyen bir görev yapmanız gerekiyor.

Uzantınız tarafından tanıtılan özel ad alanlarının çevrilmesine izin vermek için, şuna benzer bir  dosya oluşturun:

Sonra ad alanı çeviri dosyasını  ile  içinde yükleyin

Şimdi, bir kullanıcı Fince (fi) vikisine MyExtension yüklediğinde, özel ad alanı sihirli bir şekilde Fince'ye çevrilecek ve kullanıcının bir şey yapmasına gerek yok!

Ayrıca, uzantınızın ad alanlarını sayfasına kaydetmeyi de unutmayın.

Özel sayfa takma adları
Güncel bilgiler için bakın. Aşağıdakiler geçerli görünmüyor.

Bu biçimde özel sayfa takma adları için yeni bir dosya oluşturun:

Sonra uzantının kurulum dosyasına şu şekilde yükleyin:

Özel sayfa kodunuz  veya   (Special:MyExtension sağlayan sınıfta) kullandığında, varsa yerelleştirilmiş takma ad kullanılır.

Mesaj parametreleri
Bazı mesajlar parametre alır. (Statik) mesaj metinlerinde,  ,  , … ile temsil edilirler ve çalışma zamanında değiştirilirler. Tipik parametre değerleri sayılardır ("3 revizyonu silinsin mi?" içindeki "3") veya kullanıcı adlarıdır ("Bob tarafından en son düzenlenmiş sayfa), sayfa adları, bağlantılar vb. veya bazen diğer mesajlardır. Bunlar keyfi karmaşıklığa sahip olabilirler.

Her belirli mesaj için tanımlanan parametre listesi MediaWiki'nin "languages/" klasöründe bulunan "qqq.json" özel dosyasına yerleştirilir, daha fazla bilgi için belgeye bakın.

PLURAL, GENDER ve GRAMMAR sihirli kelimeleriyle tüm kelimeleri kullanmak tercih edilir. Örneğin,,   daha iyi. Aramayı kolaylaştırır.

Mesajlardaki değiştirmeler…

 * Ayrıca bakınız: .

Parametre değerleri zaman zaman tam ifadeyi veya mesajlardaki dilbilgisel varyasyonları etkiler. "$1 (sub)page(s) of his/her userpage" gibi çirkin yapılara başvurmayız, çünkü bunlar kullanıcılar için fakirdir ve daha iyisini yapabiliriz. Bunun yerine çalışma zamanında bilinecek değerlere göre ayrıştırılan anahtarlar yapıyoruz. Statik ileti metni daha sonra, listedeki olası seçeneklerin her birini, önce anahtarın adı ve fark yaratan değere yapılan bir kaynak sağlar.

Bu, MediaWiki'de çağrılma biçimine benzer. Çeşitli anahtar tipleri mevcuttur. Bunlar yalnızca iletiler için tam ayrıştırma veya  dönüşüm yaparsanız çalışır.

…PLURAL üzerinden sayılarda

 * Ayrıca bakınız: .

MediaWiki, daha güzel görünen bir ürün sağlayan çoğulları destekler. Örneğin:

Belirli bir sayı için açık bir çoğul form varsa, aşağıdaki sözdizimi ile mümkündür

Tüm numaralarda PLURAL kullanımının farkında olun

 * Ayrıca bakınız: Plural

Mesaj metnine bir sayı eklenmesi gerektiğinde, her zaman 1'den büyük olsa bile bazı dillerin PLURAL kullanması gerektiğini unutmayın. Bunun nedeni, İngilizce dışındaki dillerde PLURAL'ın İngilizce ile karşılaştırılabilir çok farklı ve karmaşık ayrımlar yapabilmesidir: 1st, 2nd, 3rd, 4th, … 11th, 12th, 13th, … 21st, 22nd, 23rd, … vb.

"Hiçbir öğe sayılmadı", "bir öğe sayıldı", "daha fazla öğe sayıldı" gibi durumlar için üç farklı ileti sağlamaya çalışmayın. Aksine, bir mesajın hepsini almasına izin verin ve bunları kendi dillerinde olası sunum farklılıklarını doğru bir şekilde tedavi etmek için çevirmenlere ve PLURAL'a bırakın.

Mümkünse her zaman sayıyı parametre olarak ekleyin. İngilizce anlam ifade etmese bile, kaynak iletilere her zaman  sözdizimi ekleyin. Sözdizimi çevirmenleri kılavuzları.

Kesirli sayılar desteklenir, ancak çoğul kurallar tam olmayabilir.

Liste öğelerinin sayısını listeler hakkında konuşan iletilere parametre olarak iletin
Sadece tekil ve çoğul olduğunu varsaymayın. Birçok dilde kullanılan gerçek sayıya bağlı ikiden fazla form vardır ve okuyucuların görebileceği bir listede listelenenleri ifade ederken liste öğelerinin sayısına göre dilbilgisi kullanmaları gerekir. Bu nedenle, kodunuz bir liste hesapladığında, sayı İngilizce kullanılmasa bile başlıklara, girişlere, altbilgilere ve liste hakkındaki diğer iletilere parametre  olarak ekleyin. Görünmez listeler hakkında konuşmanın tarafsız bir yolu vardır, bu nedenle öğeleri önceden saymak zorunda kalmadan ekstra sayfalardaki listelere bağlantılara sahip olabilirsiniz.

…GENDER üzerinden kullanıcı adlarında

 * Ayrıca bakınız: .

Bir iletideki bir kullanıcıya kaynaklarsanız, iletiye parametre olarak kullanıcı adını iletin ve ileti belgelerine cinsiyetin desteklendiğini belirtin. Cinsiyet ihlallerine sahip diller için çevirilerde GENDER kullanılması muhtemelse, bunu İngilizce dil kaynak mesajına açıkça ekleyin.

Oturum açmış olan kullanıcıyı doğrudan adreslerseniz, kullanıcı adını parametre olarak boş bırakın:

Mesaja kullanıcı adını eklerseniz (örn. ""),  veya   gibi karakterlerin yorumlanmamasını sağlamak için önce   üzerinden geçirmeyi düşünün.

Kullanıcıların dilbilgisel cinsiyetleri var

 * Ayrıca bakınız Gender

Bir mesaj bir kullanıcı hakkında tartıştığında veya bir kullanıcıyla ilgili olduğunda veya doğrudan bir kullanıcıya hitap ettiğinde, kullanıcı adı mesaja parametre olarak iletilmelidir. Böylece, cinsiyete bağlı uygun gramer kullanmak zorunda olan ya da kullanmak isteyen diller bunu yapabilir. Bu, kullanıcı adının mesajda görünmesi amaçlanmadığında bile yapılmalıdır, örneğin, "inform the user on his/her talk page", daha iyi İngilizcesi olarak "inform the user on talk page" olur.

Bu, mesajların dilini "cinselleştirmeye" teşvik edildiğiniz anlamına gelmez: lütfen bu netlik ve hassasiyetle yapılabildiğinde cinsiyetten bağımsız bir dil kullanın.

…GRAMMAR üzerinden cümle içindeki bağlamı kullanma hakkında

 * Ayrıca bakınız: .

Aglütinatif diller için dilbilgisel dönüşümler de mevcuttur. Örneğin, dil dosyalarını siteden bağımsız hale getirmenin mutlak bir zorunluluk olduğu Fince için, yani Vikipedi kaynaklarını kaldırmaktır. Fince'de "about Wikipedia", "Tietoja Wikipediasta" olur ve "you can upload it to Wikipedia", "Voit tallentaa tiedoston Wikipediaan" olur. Son ekler, kelimenin nasıl kullanıldığına ve tabanda küçük değişiklikler yapıldığına bağlı olarak eklenir. İstisnaların uzun bir listesi var, ancak site adı gibi çevrilmesi gereken sadece birkaç kelime olduğundan, eklememiz gerekmedi.

MediaWiki'nin 20'den fazla dil için dilbilgisel dönüştürme işlevleri vardır. Bunlardan bazıları sadece Wikimedia site adları için sözlüklerdir, ancak diğerlerinde en yaygın durumlar dışında hepsi başarısız olacak basit algoritmalar vardır.

MediaWiki'nin keyfi dilbilgisi dönüşümünden önce bile, ay adları için nominatif/genetik bir ayrım vardı. Bu ayrım, ay adlarını cümle yerine koymak istiyorsanız bazı diller için gereklidir.

Parametrelerdeki ve mesajlardaki özel karakterleri filtreleme
Parametre dönüştürmesi ile ilgili diğer (çok daha basit) sorun HTML'den kaçmaktır. Çok daha basit olmasına rağmen, MediaWiki oldukça zayıf bir iş çıkarıyor.

Mesaj belgesi
İleti belgeleri için sahte bir kod  var. Özel kullanım için ayrılmış ISO 639 kodlarından biridir. Orada, her mesajın çevirisini tutmuyoruz, ancak her mesaj hakkında İngilizce cümleler topluyoruz: bize nerede kullanıldığını anlatmak, nasıl tercüme edileceği hakkında ipuçları vermek, parametrelerini numaralandırmak ve tanımlamak, ilgili mesajlara bağlantı vermek, ve bunun gibi. translatewiki.net'te, bu ipuçları mesajları düzenlediklerinde çevirmenlere gösterilir.

Programcılar her mesajı belgelemelidir. Mesaj belgesi sadece çevirmenler için değil, modülün tüm bakıcıları için önemli bir kaynaktır. Yazılıma her mesaj eklendiğinde, karşılık gelen bir  girişi de eklenmelidir; yapmayan revizyonlar belgelendirme eklenene kadar " " olarak işaretlenir.

dosyalarındaki belgeler, yalnızca yeni mesaj eklerken veya mevcut bir İngilizce mesajı belge değişikliği gerektiren bir şekilde değiştirirken, örneğin parametre ekleme veya kaldırma gibi doğrudan düzenlenmelidir. Diğer durumlarda, belgeler genellikle translatewiki'de düzenlenmelidir. Her belgelendirme dizesine https://translatewiki.net/wiki/MediaWiki: mesaj-anahtarı /qqq adresinden bir çeviri gibi erişilebilir. Bu düzenlemeler çevirilerle birlikte kaynak depolara aktarılacaktır.

Belgelerde bulunması gereken yararlı bilgiler şunları içerir:
 * 1) Mesaj işleme (ayrıştırma, kaçma, düz metin).
 * 2) Örnek değerlere sahip parametrelerin türü.
 * 3) Mesajın kullanıldığı yerler (sayfalar, kullanıcı arayüzünde ki konumlar).
 * 4) Mesajın kullanıldığı yerde nasıl kullanıldığı (sayfa başlığı, düğme metni, vb.).
 * 5) Bu mesajla birlikte başka hangi mesajların kullanıldığı veya bu mesajın hangi mesajlarla ilgili olduğu.
 * 6) Mesaj bağlamda görüldüğünde anlaşılabilen, ancak mesaj tek başına görüntülendiğinde anlaşılamayan her şey (tercüme edilirken olduğu gibi).
 * 7) Varsa, dilbilgisi ile ilgili notlar. Örneğin, İngilizce'de "open" hem bir fiil hem de bir sıfat olabilir. Diğer birçok dilde kelimeler farklıdır ve bunları belge olmadan nasıl tercüme edileceğini tahmin etmek imkansızdır.
 * 8) "disabled", "open" veya "blocked" gibi şeyleri tanımlayan sıfatlar, her zaman neyi tanımladıklarını söylemelidir. Birçok dilde sıfatların tanımladıkları ismin cinsiyeti olmalıdır. Farklı şeylerin farklı sıfatlara ihtiyacı da olabilir.
 * 9) İletinin özel bir özelliği varsa, örneğin, bir sayfa adı ise veya doğrudan bir çeviri olmaması, ancak kültüre veya projeye uyarlanması gerekiyorsa.
 * 10) Mesajın başka bir mesajın yanında, örneğin bir listede veya menüde görünüp görünmediği. Kelimelerin ifadeleri veya gramer özellikleri muhtemelen yakındaki mesajlara benzer olmalıdır. Ayrıca, listedeki öğelerin listenin başlığıyla düzgün bir şekilde ilişkili olması gerekebilir.
 * 11) İletinin, genel ad alanı adları, URL'ler veya etiketler gibi çevrilmesi gereken bölümleri.
 * 12) Potansiyel olarak belirsiz kelimelerin açıklamaları, örneğin "CTA" gibi kısaltmalar veya "template", "suppress" veya "stub" gibi belirli jargonlar. (Bu tür kelimeleri ilk etapta önlemek en iyisidir!)
 * 13) Ekran görüntüleri çok faydalıdır. Kırpmayın, mesajın göründüğü tam ekran görüntüsü tam bir bağlam sağlar ve birkaç mesajda tekrar kullanılabilir.

Birkaç ipucu daha:
 * Çok, çok sık çevirmenlerin yazılımı gerçekten kullanmadan mesajları çevirdiğini unutmayın.
 * Çoğu zaman, çevirmenlerin ne modülünüz ne de içindeki diğer mesajlar için herhangi bir bağlam bilgisi yoktur.
 * Çoğu durumda tek başına yeniden ifade edilen bir mesaj işe yaramaz.
 * Tasarımcıların jargonunu "nav" veya "comps" gibi kullanmayın.
 * Modülünüzde kullanılan teknik terimlerin bir terim yazmayı düşünün. Bunu yaparsanız, mesajlardan ona bağlayın.

kullanarak diğer iletilere bağlanabilirsiniz. Lütfen mesajların bir kısmı başka mesajlardan geliyorsa (bundan kaçınılamıyorsa) veya bazı mesajlar birlikte veya aynı bağlamda gösteriliyorsa yapın.

translatewiki.net, belgelendirme için bazı varsayılan şablonlar sağlar: Daha fazla bilgi için şablon sayfalarına bakın.
 * için  mesajları
 * için  mesajları
 * kullanıcı grupları etrafındaki mesajlar için (, ,  ,   ve  )
 * için  mesajları

Uluslararasılaşma ipuçları
Çevirmenler, belgelendirmede yanı sıra, çalışmalarını daha kolay ve daha verimli hale getirmek ve tüm diller için gerçek ve iyi bir yerelleştirmeye izin vermek için bazı ipuçlarını dikkate almayı istemektedir. Yalnızca İngilizce mesaj ekleseniz veya düzenleseniz bile, tüm dillerin ihtiyaçlarının farkında olunmalıdır. Her mesaj 300'den fazla dile çevrilmiştir ve bu mümkün olan en iyi şekilde yapılmalıdır. Bu ipuçlarının doğru uygulanması, daha iyi İngilizce mesajlar yazmanıza da yardımcı olacaktır.

Bunlar, i18n ile ilgili deneyimli ve bilgili kişilerin yardımını bulabileceğiniz ana yerler:
 * translatewiki.net destek sayfası.
 * https://freenode.net üzerindeki #mediawiki-i18n IRC kanalı.

Lütfen orada sorun!

Mesaj parametrelerini ve anahtarları uygun şekilde kullanın
Bu, mesajlarınız için doğru bir ifadenin önkoşuludur.

Mesajın yeniden kullanılmasını önle
Çevirmenler mesajın yeniden kullanılmasını engelliyor. Kodun kopyalanması ve çoğaltılması genellikle kötü bir uygulamadır, ancak sistem mesajlarında sıklıkla gereklidir. İki kavram İngilizce aynı sözcükle ifade edilebilse de, bu her dilde aynı sözcükle ifade edilebilecekleri anlamına gelmez. "OK" iyi bir örnektir: İngilizce'de genel bir düğme etiketi için kullanılır, ancak bazı dillerde düğmeyle gerçekleştirilecek işlemle ilgili bir düğme etiketi kullanmayı tercih ederler. Başka bir örnek pratikte herhangi bir sıfattır: birçok dilde cinsiyete göre "çoklu" gibi bir kelime değişir, bu yüzden onu birkaç farklı şeyi tanımlamak için tekrar kullanamazsınız ve birkaç ayrı mesaj oluşturmanız gerekir.

Birden fazla özdeş mesaj ekliyorsanız, lütfen bağlamlarındaki farklılıkları açıklamak için mesaj belgesini ekleyin. Çevirmenler için ekstra çalışma konusunda endişelenmeyin. Çeviri belleği, gerektiğinde farklı çevirilere sahip olma esnekliğini korurken bu konuda çok yardımcı olur.

Parçalanmış veya 'patchwork' mesajlardan kaçının
Diller farklı kelime sıralarına ve karmaşık dilbilgisel ve sözdizimsel kurallara sahiptir. "Lego" mesajlarını çevirmek çok zordur, yani birden fazla metin parçasından oluşan mesajlar, muhtemelen bazı dolaylı mesajlarla ("dize birleştirme" olarak da adlandırılır).

Her mesajı eksiksiz bir cümle haline getirmek daha iyidir. Gerekirse, birkaç cümle genellikle bir metin bloğunda çok daha kolay bir şekilde birleştirilebilir. Bir mesajda birden fazla dizeyi birleştirmek istediğinizde, çevirmenler çeviri yaparken kendi dilleri için doğru şekilde sırayla verebildiğinden, bunları parametre olarak iletin.

Birbirinden alıntı yapan mesajlar
Kuralın bir istisnası, birbirine atıfta bulunan mesajlar olabilir: '" " etiketli alana orijinal yazarın adını girin ve "  " düğmesine tıklayın". Bu, bir yazılım geliştiricisi veya viki operatörü daha sonra "adı" veya "işlendi" mesajlarını değiştirdiğinde mesajı tutarlı hale getirir. İnt-hack olmadan, geliştiriciler ve operatörler, değiştirilmeleri gerektiğinde ayarlanması gereken tüm ilgili mesajların farkında olmalıdırlar.

Belirli projelere özgü terim ve şablonları kullanmayın
MediaWiki, Wikimedia hareketi içinde ve dışında çok çeşitli insanlar tarafından kullanılır. Başlangıçta bir ansiklopedi için yapılmış olmasına rağmen, şimdi çeşitli içerik türleri için kullanılmaktadır. Bu nedenle, genel terimleri kullanın. Örneğin, "madde" gibi terimlerden kaçının ve geliştirdiğiniz özelliğin yalnızca sayfaların "madde" olarak adlandırıldığı bir sitede kullanılacağından kesinlikle emin olmadığınız sürece bunun yerine "sayfa" kullanın. İngilizce Vikipedi topluluk sayfasının adı olan "village pump" kullanmayın ve bunun yerine "community discussion page" gibi genel bir terim kullanmayın.

Tüm vikilerde belirli bir şablon bulunduğunu varsaymayın. Şablonlar viki için yereldir. Bu hem kaynak mesajlar hem de çevirileri için geçerlidir. Mesajlar şablon kullanıyorsa, yalnızca özelliğin dağıtıldığı her vikide bir şablon oluşturulduğunda çalışır. Mesajlardaki şablonları tamamen kullanmaktan kaçınmak en iyisidir. Bunları gerçekten kullanmanız gerekiyorsa, bunu mesaj belgelerinde ve uzantı kurulum talimatlarında açıkça belirtmeniz gerekir.

Cümlelerin tarihlerinden ayrı zamanlar
Bazı diller, bir cümledeki dilbilgisel olarak diğer kelimelere bağlı olan bir tarih ve saat arasına bir şey eklemelidir. Böylece tarih/saati birlikte kullanamazlar. Diğerleri kombinasyonu uygun bulabilir, bu nedenle bu gibi durumlarda üç parametre değeri (tarih/saat, tarih, saat) sağlamak genellikle en iyi seçimdir ve her bir çeviride gerektiği gibi ilk ya da son ikisini kullanılmadan bırakır.

Mesajlarda kullanmaktan kaçının
çeşitli dezavantajları vardır. Herhangi bir şey olabilir (kısaltma, kelime, kısa ifade, vb.) ve dile bağlı olarak, her bir olayda  kullanılmasını gerektirebilir. Ne olursa olsun,  olan her iletinin, kodunuzun yüklü olduğu her yeni viki için çoğu wiki dilinde incelenmesi gerekir. Çoğu durumda, bir dil için genel bir  yapılandırması olmadığında, viki operatörleri   ve   almak için PHP kodu eklemeli veya değiştirmelidir. Bu, hem aksi hem de daha fazla beceri ve daha fazla anlayış gerektirir. "Bu viki" gibi genel kaynaklarla sahip olmak daha uygundur. Bu, kurulumların yerel olarak  kullanmak için bu iletileri değiştirmesini engellemez, ancak en azından yapmak zorunda değildir ve ileti uyarlamasını erteleyebilir viki zaten çalışıyor ve kullanılıyor.

Görsel düzen ve konumlara kaynaklardan kaçının
Burada ortaya çıkan şey görünümlere bağlıdır. Çoğu zaman soldan sağa yazılan dillerin ekran düzenleri, sağdan sola yazılan diller için kullanılanlara kıyasla yansır, ancak her zaman değil ve bazı diller ve vikiler için tamamen değil. Elde taşınır cihazlar, dar pencereler ve benzerleri, daha büyük ekranlarda yan yana görünen blokların altında görünebilir. Site ve kullanıcı tarafından yazılan JavaScript betikleri ve küçük araçları, parçaları öngörülemeyen şekillerde saklayabildiğinden ve yapabildiğinden, gizlediğinden, gerçek düzeni bilmenin güvenilir bir yolu yoktur.

Kullanıcı arabirimi dili sayfanın içerik dili olmayabilir ve düzen, koşullara bağlı olarak ikisinin bir karışımı olabileceğinden, düzen bilgilerini içerik dillerine bağlamak yanlıştır. Akustik ekran okuyucular ve diğer yardımcı cihazlar gibi görsel olmayan kullanıcı aracılarının görsel yerleşim kavramı bile yoktur. Bu nedenle, anlamsal yerleşim terimleri hala kullanılabilmesine rağmen, vakaların çoğunda görsel yerleşim konumlarına kaynaklamamalısınız ("formdaki önceki adımlar", "vb.").

MediaWiki, arayüzün geçerli yönlülüğüne bağlı olarak farklı mesajların veya mesaj parçalarının gösterilmesini desteklemez (T30997 sayfasına bakın).

Doğu ve Kuzey Asya yukarıdan aşağıya yazma için tarayıcısı ve MediaWiki desteği, ekran düzenlerini daha da tahmin edilemez hale getirecek. en az sekiz olası düzen (sol/sağ başlangıç konumu, üst/alt başlangıç konumu ve hangisi önce gerçekleşir).

Ekran renklerine kaynak vermekten kaçının
Bir şeyin oluşturulduğu renk, kaplamalar, site ve kullanıcı tarafından yazılan JavaScript betikleri ve küçük araçları ve yerel kullanıcı aracısı erişilebilirlik veya teknolojik sınırlamalar nedeniyle fazla gezer gibi birçok faktöre bağlıdır. Akustik ekran okuyucular ve diğer yardımcı cihazlar gibi görsel olmayan kullanıcı aracılarının renk kavramı bile yoktur. Bu nedenle, ekran renklerine kaynaklamamalısınız. (Aynı nedenden ötürü, kullanıcıyı durumu bilgilendirmek için bir mekanizma olarak yalnızca renge güvenmemelisiniz.)

Her giriş alanından önce ve sonra mesaj öğeleri var

 * Bu önerilen bir kılavuzdur, MediaWiki geliştirmede standart haline gelmemiştir

İngilizce, iki nokta üst üste alanı boşluğu giriş alanı biçiminde bilgi isteminin etkin bir şekilde kullanılmasına izin verirken, diğer pek çok dil bunu yapmaz. İngilizcede bile "Distance (in metres): ___" yerine "Distance: ___ metres" kullanmak istersiniz. öğelerini bir kenara bırakarak, "Distance: ___ metres" desenini izleyen her bir girdi alanını düşünmelisiniz. Yani:
 * 2nd biri İngilizce ve diğer bazı dillerde boş olsa bile iki mesaj verin veya
 * girişlerin  parametreleri aracılığıyla yerleştirilmesine izin verin.

Mesajlarda çevrilmemiş HTML işaretlemesinden kaçının
'ler, üstündeki veya altındaki cetveller ve benzeri gibi çeviri gerektirmeyen HTML biçimlendirmeleri genellikle iletilerin bir parçası olmamalıdır. Gereksiz yere çevirmenleri yükler, mesaj dosyası boyutunu artırır ve çeviri sürecinde yanlışlıkla değiştirilme veya atlanma riski taşırlar. Genel olarak, mümkünse mesajlarda ham HTML'den kaçının.

Mesajlar genellikle düşündüğünüzden daha uzundur!
Yabancı dil mesaj dosyalarını gözden geçirerek, neredeyse hiç Çince mesajlardan daha kısa, İngilizce olanlardan daha kısa ve genellikle İngilizce olanlardan daha uzun mesajlar bulursunuz.

Özellikle formlarda, giriş alanlarının önünde, İngilizce mesajlar kısa ve kısa olma eğilimindedir. Bu genellikle çevirilerde tutulmaz. Özellikle teknik olmayan üçüncü dünya dilleri, yerel, orta ve antik diller yabancı veya teknik istekleri açıklamak için birden fazla kelime hatta tam cümleler gerektirir. Örneğin, kısa bir İngilizce mesajı olan "TSV file:" bir dile tam anlamıyla çevrilmesi gerekebilir:"Lütfen buraya, her biri bir dizi bilgi alanı olarak düzenlenmiş, söz konusu bilgi alanlarının çitle çevrildiği ve aralarındaki çitlerin tek olduğu sıralı olarak düzenlenmiş bir dizi daktilo satırından oluşan bir bilgisayar verisi topluluğunu gösteren bir ad yazın. Bir daktilo şaryosunu her biri önceden tanımlanmış bir sonraki konuma kaydırır. İşte başlıyoruz: _____ (teşekkür ederiz)" Kuşkusuz, bu aşırı bir örnek, ama özelliği elde edersiniz. Bu cümleyi, her kelimenin kendine ait bir satırı kapladığı ve giriş alanının sonraki sütunda dikey olarak ortalandığı bir formdaki bir sütunda düşünün. :-(

Farklı şeyleri veya kavramları göstermek için çok yakın, benzer veya özdeş kelimeler kullanmaktan kaçının
Örneğin, sayfalarda, söz konusu sayfanın geçmiş sürümlerini içeren daha eski revizyonlar (belirli bir tarih, saat ve düzenleme) olabilir. Revizyon ve sürüm kelimeleri birbirinin yerine kullanılabilir. Sürümlendirilimiş sayfalar revize edildiğinde bir problem ortaya çıkar ve yani revize etme işleminden de bahsedilir. "Revizyon" kelimesinin iki eşanlamlısı farklı çevirilere sahip olduğunda bu ciddi bir sorun teşkil etmeyebilir. Ancak buna güvenmeyin. "Revizyon", "sürüm"'ün tamamen kullanılmasından kaçınmak, daha sonra yanlış yorumlanmasını önlemek için daha iyidir.

Temel kelimeler öngörülemeyen çağrışımlara sahip olabilir veya hiç mevcut olmayabilir
MediaWiki'de çok özel kullanımları nedeniyle çevrilmesi zor bazı kelimeler var. Bazıları hiç çevrilemez olabilir. Örneğin, birkaç dilde "bir şey kullanan biri" ile ilgili "kullanıcı" kelimesi yoktur. Benzer şekilde, Kölsch'de "ad alanı" ve "apartman" kelimeleri aynı kelimeyi tercüme eder. Kölsch'e bağlı kalarak, tek kelimeyle "destekçi ve katılımcı" derler, çünkü "kullanım"'a yapılan herhangi bir atıf "kötüye kullanım" anlamına da gelir. "Viki çiftliği" terimi, "viki ile dolu karar" olarak çevrilir, çünkü tek mahsullü bir çiftlik, dilde bir çelişki olacaktır ve anlaşılamayan, vb..

Çevrilmemiş kelimeler beklenmesi

 * This is a suggested guideline, has not yet become standard in MediaWiki development

It is not uncommon that proper names, tag names, etc. and computerese in English are not translated, and instead taken as loan-words, or foreign words. In the latter case, some particularly-fastidious translators may mark such words as belonging to another language with HTML markup, such as  ….

You may want to consider ensuring that your message output handler passes such markup along unmolested, despite the obvious security risks.

Permit explanatory inline markup

 * This is a suggested guideline, has not yet become standard in MediaWiki development

Sometimes there are abbreviations, technical terms, or generally ambiguous words in target languages that may not be immediately understood by newcomers, but are obvious to experienced computer users. So as to avoid screen clutter of lengthy explanations without leaving newcomers stranded, translators may choose to add explanations as  annotations, shown by browsers when you move the mouse over them.

For example, the MediaWiki core message  about image rotation, which in English is simply " ", in Moroccan Arabic is translated as:

giving:
 * mḍwwer 90° ĜĜS

explaining the abbreviation for "counter clockwise" when needed.

You may want to consider ensuring that your message output handler passes such markup along unmolested, even if the original message does not use them.

Use, , and tags where needed
When talking about technical parameters, values, or keyboard inputs, mark them appropriately as such using the HTML tags,  , or. Thus they are typographically set off form the normal text. That clarifies their sense to readers, avoiding confusion, errors and mis-representations. Ensure that your message handler allows such markup.

Symbols, colons, brackets, etc. are parts of messages
Many symbols are localisable, too. Some scripts have other kinds of brackets than the Latin script has. A colon may not be appropriate after a label or input prompt in some languages. Having those symbols included in messages helps to make better and less Anglo-centric translations, and also reduces code clutter.

For example, there are different quotation mark conventions used in «Norwegian», »Swedish», »Danish«, „German“, and 「Japanese」.

If you need to wrap some text in localized parentheses, brackets, or quotation marks, you can use the   or    or    messages like so:

Do not expect symbols and punctuation to survive translation
Languages written from right to left (as opposed to English) usually swap arrow symbols being presented with "next" and "previous" links, and their placement relative to a message text may, or may not, be inverted as well. Ellipsis may be translated to "etc.", or to words. Question marks, exclamation marks, colons will be placed other than at the end of a sentence, not at all, or twice. As a consequence, always include all of those in the text of your messages, and never try to insert them programmatically.

Use full stops
Do terminate normal sentences with full stops. This is often the only indicator for a translator to know that they are not headlines or list items, which may need to be translated differently.

Wikitext of links
Link anchors can be put into messages in several technical ways:
 * 1) via wikitext: …   …,
 * 2) via wikitext: …  …, or
 * 3) the anchor text is a message in the MediaWiki namespace. Avoid it!

The latter is often hard or impossible to handle for translators, avoid fragmented or 'patchwork' messages here, too. Make sure that " " does not contain spaces.

Use meaningful link anchors
Take care with your wording. Link anchors play an important role in search engine assessment of pages – both the words linked, and the target anchor. Make sure that the anchor describes the target page well. Always avoid commonplace and generic words. For example, "Click here" is an absolute no-go, since target pages are almost never about "click here". Do not put that in sentences around links either, because "here" was not the place to click. Instead, Use precise action words telling what a user will get to when following the link, such as "You can upload a file if you wish."

See also Help users predict where they are going, and mystery meat navigation, and The main reasons why we shouldn't use click here as link text.

Avoid jargon and slang
Avoid developer and power user jargon in messages. Try to use a simple language whenever possible. Avoid saying "success", "successfully", "fail", "error occurred while", etc., when you want to notify the user that something happened or didn't happen. This comes from developers' seeing everything as true or false, but users usually just want to know what actually happened or didn't, and what they should do about it (if at all). So:
 * "The file was successfully renamed" -> "The file was renamed"
 * "File renaming failed" -> "There is a file with this name already. Please choose a different name."

One sentence per line

 * This is a suggested guideline, has not yet become standard in MediaWiki development

Try to have one sentence or similar block in one line. This helps to compare the messages in different languages, and may be used as an hint for segmentation and alignment in translation memories.

Be aware of whitespace and line breaks
MediaWiki's localised messages usually get edited within the wiki, either by wiki operations on live wikis, or by the translators on translatewiki.net. You should be aware of how whitespace, especially at the beginning or end of your message, will affect editors:


 * Spaces and line breaks (new lines) at the end of the message are always automatically removed by the wikitext editor. Your message must not end with a space or line break, as it will be lost when it's edited on the wiki.
 * Spaces and line breaks at the beginning are not automatically removed, but they are likely to be removed by accident during editing, and should be avoided.

Start and end your message with active text; if you need a newline or paragraph break around it, your surrounding code should deal with adding it to the returned text.

There are some messages which require a space at the end, such as 'word-separator' (which consists of just a space character in most languages). To support such use cases, the following HTML entities are allowed in messages and transformed to the actual characters, even if the message otherwise doesn't allow wikitext or HTML formatting:


 * – space
 * or  – non-breaking space
 * – soft hyphen

On a related note, any other syntax elements affected by pre-save transforms also must not be used in messages, as they will be transformed when the message is edited on the wiki.

Use standard capitalisation
Capitalisation gives hints to translators as to what they are translating, such as single words, list or menu items, phrases, or full sentences. Correct (standard) capitalisation may also play a role in search engines' assessment of your pages. MediaWiki uses sentence case (The quick brown fox jumps over the lazy dog) in interface messages.

Always remember that many writing systems don't have capital letters at all, and some of those that do have them, use them differently from English. Therefore, don't use ALL-CAPS for emphasis. Use CSS, or HTML  or   per below:

Vurgu
In normal text, emphasis like boldface or italics and similar should be part of message texts. Local conventions on emphasis often vary, especially some Asian scripts have their own. Translators must be able to adjust emphasis to their target languages and areas. Try to use " " and " " in your user interface to allow mark-up on a per language or per script basis.

In modern screen layouts of English and European styles, emphasis becomes less used. Do convey it in your message documentation still, as it may give valuable hints as to how to translate. Emphasis can and should be used in other cultural contexts as appropriate, provided that translators know about it.

Update of localisation
As mentioned above, translation happens on translatewiki.net and other systems are discouraged. Here's a high level overview of the localisation update workflow:
 * Developers.
 * Users translate the new or changed system messages on translatewiki.net.
 * Automated tools export these messages, build new versions of the message files, incorporating the added or updated messages, for both core and extensions, and commit them to git.
 * The wikis then can pull in the updated system messages from the git repository.

Wikimedia projects and any other wikis can benefit immediately and automatically from localisation work thanks to the extension. This compares the latest English messages to the English messages in production. If they are not the same, the production translations are updated and made available to users.

Once translations are in the version control system, the Wikimedia Foundation has a daily job that updates a checkout or clone of the extension repository. This was first established in September 2009.

Because changes on translatewiki.net are pushed to the code daily as well, this means that each change to a message can potentially be applied to all existing MediaWiki installations in a couple days without any manual intervention or traumatic code update.

As you can see this is a multi-step process. Over time, we have found out that many things can go wrong. If you think the process is broken, please make sure to report it on our Support page, or create a new bug in Phabricator. Always be sure to describe a precise observation.

Handling support requests

 * Main page: translatewiki:Translating:Localisation for developers.

Translators may have questions about some of the messages you create. Translatewiki.net provides a support request system that allows translators the ability to ask you, the project owner, questions regarding messages so that they can be better translated. This short tutorial guides you through the workflow of handling translatewiki.net support requests.

Mesaj kaynakları
Code looks up from these sources:


 * The MediaWiki namespace. This allows wikis to adopt, or override, all of their messages, when standard messages do not fit or are not desired (see #Old local translation system).
 * MediaWiki:Message-key is the default message,
 * MediaWiki:Message-key/language-code is the message to be used when a user has selected a language other than the wiki's default language.
 * From message files:
 * Core MediaWiki itself and most currently maintained extensions use a file per language, named, where zyx is the language code for the language.
 * Some older extensions use a combined message file holding all messages in all languages, usually named.
 * Many Wikimedia Foundation wikis access some messages from the extension, allowing them to standardise messages across WMF wikis without imposing them on every MediaWiki installation.
 * A few extensions use other techniques.

Caching
System messages are one of the more significant components of MediaWiki, primarily because it is used in every web request. The PHP message files are large, since they store thousands of message keys and values. Loading this file (and possibly multiple files, if the user's language is different from the content language) has a large memory and performance cost. An aggressive, layered caching system is used to reduce this performance impact.

MediaWiki has lots of caching mechanisms built in, which make the code somewhat more difficult to understand. Since 1.16 there is a new caching system, which caches messages either in. files or in the database. Customised messages are cached in the filesystem and in (or alternative), depending on the configuration.

The table below gives an overview of the settings involved:

In MediaWiki 1.27.0 and 1.27.1, the autodetection was changed to favor the file backend. In case  (the default), the file backend is used with the path from. If this value is not set (which is the default), a temporary directory determined by the operating system is used. If a temporary directory cannot be detected, the database backend is used as a fallback. This was reverted from 1.27.2 and 1.28.0 because of conflict of files on shared hosts and security issues (see T127127 and T161453).

Function backtrace
To better visually depict the layers of caching, here is a function backtrace of what methods are called when retrieving a message. See the below sections for an explanation of each layer.

MessageCache
The  class is the top level of caching for messages. It is called from the Message class and returns the final raw contents of a message. This layer handles the following logic: The last bullet is important. allow MediaWiki to fall back on another language if the original does not have a message being asked for. As mentioned in the next section, most of the language fallback resolution occurs at a lower level. However, only the  layer checks the database for overridden messages. Thus integrating overridden messages from the database into the fallback chain is done here. If not using the database, this entire layer can be disabled.
 * Checking for message overrides in the database
 * Caching over-ridden messages in, or whatever is set to
 * Resolving the remainder of the sequence

LocalisationCache
See

LCStore
The  class is merely a back-end implementation used by the LocalisationCache class for actually caching and retrieving messages. Like the  class, which is used for general caching in MediaWiki, there are a number of different cache types (configured using ): The "file" option is used by the Wikimedia Foundation, and is recommended because it is faster than going to the database and more reliable than the APC cache, especially since APC is incompatible with PHP versions 5.5 or later.
 * "db" (default) - Caches messages in the database
 * "file" (default if  is set) - Uses CDB to cache messages in a local file
 * "accel" - Uses APC or another opcode cache to store the data

Licence
Any edits made to the language must be licensed under the terms of the GNU General Public License to be included in the MediaWiki software. Other extensions may be under different licences.

Old local translation system
With MediaWiki 1.3.0, a new system was set up for localising MediaWiki. Instead of editing the language file and asking developers to apply the change, users could edit the interface strings directly from their wikis. This is the system in use as of August 2005. People can find the message they want to translate in Special:AllMessages and then edit the relevant string in the  namespace. Once edited, these changes are live. There was no more need to request an update, and wait for developers to check and update the file.

The system is great for Wikipedia projects; however a side effect is that the MediaWiki language files shipped with the software are no longer quite up-to-date, and it is harder for developers to keep the files on meta in sync with the real language files.

As the default language files do not provide enough translated material, we face two problems:
 * 1) New Wikimedia projects created in a language which has not been updated for a long time, need a total re-translation of the interface.
 * 2) Other users of MediaWiki (including Wikimedia projects in the same language) are left with untranslated interfaces. This is especially unfortunate for the smaller languages which don't have many translators.

This is not such a big issue anymore, because translatewiki.net is advertised prominently and used by almost all translations. Local translations still do happen sometimes but they're strongly discouraged. Local messages mostly have to be deleted, moving the relevant translations to translatewiki.net and leaving on the wiki only the site-specific customisation; there's a huge backlog especially in older projects, [//toolserver.org/~robin/?tool=cleanuplocalmsgs this tool] helps with cleanup.

Keeping messages centralised and in sync
English messages are very rarely out of sync with the code. Experience has shown that it's convenient to have all the English messages in the same place. Revising the English text can be done without reference to the code, just like translation can. Programmers sometimes make very poor choices for the default text.

What can be localised
So many things are localisable on MediaWiki that not all of them are directly available on translatewiki.net: see translatewiki:Translating:MediaWiki. If something requires a developer intervention on the code, you can request it on Phabricator, or ask at Support if you don't know what to do exactly.


 * Namespaces (both core and extensions', plus gender-dependent user namespaces)
 * Weekdays (and abbreviations)
 * Months (and abbreviations)
 * Bookstores for Special:BookSources
 * Skin names
 * Math names
 * (for compatibility with old MediaWiki databases)
 * Default user option overrides
 * Language names
 * Country names (via )
 * Currency names (via )
 * Timezones
 * Character encoding conversion via
 * UpperLowerCase first (needs casemaps for some)
 * UpperLowerCase
 * Uppercase words
 * Uppercase word breaks
 * Case folding
 * Strip punctuation for MySQL search (search optimisation)
 * Get first character
 * Alternate encoding
 * Recoding for edit (and then recode input)
 * Get first character
 * Alternate encoding
 * Recoding for edit (and then recode input)
 * Fallback languages (that is, other more closely related language(s) to use when a translation is not available, instead of the default fallback, which is English)
 * Directionality (left to right or right to left, RTL)
 * Direction mark character depending on RTL
 * Arrow depending on RTL
 * Languages where italics cannot be used
 * Number formatting (comma-ify, i.e. adding or not digits separators; transform digits; transform separators)
 * Truncate (multibyte)
 * Grammar conversions for inflected languages
 * Plural transformations
 * Formatting expiry times
 * Segmenting for diffs (Chinese)
 * Convert to variants of language (between different orthographies, or scripts)
 * Language specific user preference options
 * and link prefix, e.g.:  These are letters that can be glued after/before the closing/opening brackets of a wiki link, but appear rendered on the screen as if part of the link (that is, clickable and in the same colour). By default the link trail is "a-z"; you may want to add the accentuated or non-Latin letters used by your language to the list.
 * Language code (preferably used according to the latest RFC in standard BCP 47, currently RFC 5646, with its associated IANA database. Avoid deprecated, grandfathered and private-use codes: look at what they mean in standard ISO 639, and avoid codes assigned to collections/families of languages in ISO 639-5, and ISO 639 codes which were not imported in the IANA database for BCP 47)
 * Type of emphasising
 * The extension has a special page file per language,   for language code.

Neat functionality:


 * I18N
 * Roman numeral formatting

Namespace name aliases
Namespace name aliases are additional names which can be used to address existing namespaces. They are rarely needed, but not having them when they are, usually creates havoc in existing wikis.

You need namespace name aliases:


 * 1) When a language has variants, and these variants spell some namespaces differently, and you want editors to be able to use the variant spellings. Variants are selectable in the user preferences. Users always see their selected variant, except in wikitext, but when editing or searching, an arbitrary variant can be used.
 * 2) When an existing wiki's language, fall back language(s), or localisation is changed, with it are changed some namespace names. So as not to break the links already present in the wiki, that are using the old namespace names, you need to add each of the altered previous namespace names to its namespace name aliases, when, or before, the change is made.

The generic English namespace names are always present as namespace name aliases in all localisations, so you need not, and should not, add those.

Aliases can't be translated on translatewiki.net, but can be requested there or on bugzilla: see translatewiki:Translating:MediaWiki.

Bölgesel ayarlar
Some linguistic settings vary across geographies; MediaWiki doesn't have a concept of region, it only has languages and language variants.

These settings need to be set once as a language's default, then individual wikis can change them as they wish in their configuration.

Time and date formats
Time and dates are shown on special pages and alike. The default time and date format is used for signatures, so it should be the most used and most widely understood format for users of that language. Also anonymous users see the default format. Registered users can choose other formats in their preferences.

If you are familiar with PHP's time format, you can try to construct formats yourself. MediaWiki uses a similar format string, with some extra features. If you don't understand the previous sentence, that's OK. You can provide a list of examples for.

Old edit window toolbar buttons

 * Not to be confused with the much more common 's "advanced toolbar", which has similar features.

When a wiki page is being edited, and a user has allowed it in their Special:Preferences, a set of icons is displayed above the text area where one can edit. The toolbar buttons can be set but there are no messages for it. What we need is a set of properly sized  files. Plenty of samples can be found in commons:Category:ButtonToolbar, and there is an empty button image to start off from.

Missing
'''This section is missing about the changes in the i18n system related to extensions. The format was standardised and messages are automatically loaded.'''

See #Message sources.

Ayrıca bakınız

 * Resources
 * translatewiki.net – the MediaWiki localisation site
 * How to i18n your code - a presentation about i18n, l10n and m17n in general and about doing it in MediaWiki in particular.
 * (overview) and (how to use messages, for developers)
 * Statistics and issues
 * MediaWiki bug reports for Internationalisation
 * Other
 * How to start a new Wikipedia? Translate the interface
 * - installation and configuration of a small wiki-family (for administrators)
 * Do’s and Don’ts in software development before product localization – 12 brief points
 * Debian's Introduction to i18n
 * Unicode Technical Reports (also specifications by topic)
 * - installation and configuration of a small wiki-family (for administrators)
 * Do’s and Don’ts in software development before product localization – 12 brief points
 * Debian's Introduction to i18n
 * Unicode Technical Reports (also specifications by topic)
 * Unicode Technical Reports (also specifications by topic)