Help:Sistem mesajı
Not: Bu sayfayı düzenlerken katkınızı CC0 altında yayınlamayı kabul edersiniz. Daha fazla bilgi için Kamu Malı Yardım Sayfalarına bakın. |
Sistem mesajı, davranışını kişiselleştirmek için kullanılabilecek düz metin (nowiki), vikimetin, CSS veya JavaScript parçacığıdır. MediaWiki ve her dilin görünümü ve yereldir. MediaWiki, hem çekirdek hem de uzantılar için, MediaWiki kullanıcı arayüzünün uluslararası hâle getirilmesine ve yerelleştirilmesine olanak tanıyan, arayüzün kullanıcıya bakan herhangi bir kısmı için mesajlar kullanır. MediaWiki uses messages for any user-facing part of the interface, allowing for internationalization and localization of the MediaWiki UI, for both core and extensions. MediaWiki'de kullanılan tüm mesajlar bir mesaj dosyası içinde tanımlanmıştır.
Vikide mesajları geçersiz kılma
Mesajlar, viki üzerinde düzenlenerek varsayılan değerlerinden geçersiz kılınabilir. Her mesajın MediaWiki ad alanında, mesaj anahtarının sayfanın adı olduğu bir viki sayfası vardır. Örneğin, "aboutsite" mesajı MediaWiki:aboutsite altında saklanır. Varsayılan olarak, kullanıcının "editinterface" iznine sahip olmadığı sürece, bu ad alanının düzenlenmesi kısıtlanmıştır. Tüm mesaj sayfalarının bir listesi Special:AllMessages sayfasında bulunabilir. Arayüz mesajlarını düzenlemek, normal bir viki sayfasını düzenlemek gibi, genellikle basittir, ancak varsayılan olarak hizmetlilere (ve arayüz hizmetlilere) atanan editinterface iznine sahip kullanıcılarla sınırlıdır.
Special:AllMessages tablosu iki sütun içeriyor: bağlantılı arayüz adı ve metin. Metin yukarıdaki varsayılan metni ve aşağıdaki özelleştirilmiş metni göstermek için yatay olarak bölünmüştür. Özel bir mesaj olmadığında, yalnızca varsayılan gösterilecektir. Bir mesajı özelleştirmek için sol sütundaki üst bağlantıya (mesajın adı) tıklayın. Düzenleme sayfası boş olduğundan, varsayılan metin kullanımdaysa bu bağlantı kırmızıdır.
Sol sütun hücrelerindeki alt bağlantılar, o mesaj için tartışma sayfalarına yönlendirir.
Vikideki mesajların geçersiz kılınması yalnızca aşağıdaki durumlarda önerilir:
- Mesajda mümkün olan en kısa sürede düzeltilmesi gereken ciddi bir hata var. Bu durumda, İngilizce ise kaynak kodunda, değilse translatewiki sitesindeki çeviride bu hatayı düzeltmeniz de önerilir. Düzeltme dağıtıldığında, yerel özelleştirmeye sahip sayfa silinmelidir.
- Yerel viki farklı terminoloji kullanıyorsa. Örneğin, birçok mesaj "page" kelimesini kullanır, ancak İngilizce Vikipedi bunun yerine genellikle "article" der.
- Yerel mesaj, örneğin bir küçük araç veya bir şablon için bazı benzersiz işlevler eklemeye çalışıyor. (Böyle bir durumda, kaynak mesajı değiştirmeyi düşünmeniz veya bu işlevi bir uzantıya yerleştirmeniz önerilir, böylece diğer vikiler, özelleştirmeleri elle kopyalamak zorunda kalmadan bundan rahatça yararlanabilecektir.)
Mesajları ve belgeleri bulma
Her mesajın MediaWiki tarafından nasıl kullanıldığı, mevcut değişkenler, kullanılan parametreler, sınırlamalar vb., mesaj belgelemesi yönergeleri uyarınca qqq sözde dilindeki tam belgeler dosyalarında açıklanır. Bazı arayüz mesajları için daha eski Category:Arayüz mesajları değerinde daha uzun açıklama sayfaları bulunabilir.
Aynı şekilde /en, /zu, /fr, .../qqq maddenin bir alt sayfasıdır ve doğrudan görüntülenebilir.
- İngilizce bir maddeyi görüntülemek için translatewiki:MediaWiki:Tog-hideminor/en deneyin,
- Aynı maddeyi Fransızca olarak görüntülemek için translatewiki:MediaWiki:Tog-hideminor/fr deneyin,
- İlişkili belgelerini (İngilizce) görüntülemek için translatewiki:MediaWiki:Tog-hideminor/qqq deneyin.
qqq
, isteğin language=
parametresinde bir dil olarak kabul edilir.MediaWiki sürümü: | ≥ 1.18 |
MediaWiki 1.18 ve sonraki sürümlerde, URL'ye ?uselang=qqx
veya URL zaten bir ?
karakteri (örnek) içeriyorsa, &uselang=qqx
ekleyerek yapılabilen özel sözde dil kodu qqx
içindeki bir vikiye göz atarak bir mesaj anahtarı bulabilirsiniz. Tüm mesajlar daha sonra mesaj anahtarları ile değiştirilecektir, böylece hangi mesajın sorumlu olduğunu belirleyebilirsiniz. Her zaman içerik dilinde olan mesajlar qqx kullanılarak gösterilmeyecektir.
All the messages will then be replaced by their message keys, so you can identify which message is responsible.
Messages that are always in the content language will not be shown using qqx.
Sayfanın örn. "Tercihler" özel sayfa sekmeyi uselang
parametresinden sonra eklemeniz gerekecek, ör. Special:Preferences?uselang=qqx#mw-prefsection-rendering
.
MediaWiki sürümü: | ≥ 1.38 Gerrit change 765385 |
Before MediaWiki 1.38, fallback message keys were not shown, which made it difficult to identify the source of some messages, notably the page navigation tabs. Since MediaWiki 1.38 fallback message keys are shown separated by slashes (/
).
MediaWiki sürümü: | ≥ 1.43 Gerrit change 1025837 |
Before MediaWiki 1.43, override message keys (using hooks like MessageCacheFetchOverrides ) were not shown either, which made it difficult to identify the source of messages overridden by extensions (such as WikimediaMessages ). Since MediaWiki 1.43 override message key is shown after an equals sign (=
).
Yerelleştirme dosya biçimi
MediaWiki'de kullanılan tüm mesajlar bir mesaj dosyası içinde tanımlanmıştır.
MediaWiki'de iki tür mesaj dosyası vardır: JSON ve PHP. Nisan 2014 itibariyle, temel MediaWiki ve bakımı yapılan uzantıların çoğu JSON biçimine taşındı. Tüm yeni geliştirmeler için JSON kullanmalısınız. JSON'a geçiş hakkında daha fazla bilgi için Requests for comment/Localisation format sayfasına bakın.
JSON
2013'ün sonlarından itibaren mesajlar için yeni bir dosya formatı tanıtıldı: JSON.
Bu, genel bir genel veri depolama biçimi olarak bilinen sade JSON'dur.
İçindeki her anahtar bir mesaj anahtarıdır ve değer mesaj metnidir.
Ayrıca, çeviri yazarları gibi çeviriyle ilgili bilgileri depolamak için özel @metadata
anahtarı kullanılır.
JSON kullanmak, yürütülebilir olmadığından yerelleştirme dosyalarını daha güvenli hâle getirir. Ayrıca, MediaWiki benzeri ön uç yerelleştirme yetenekleri sağlayan ve Project Milkshake kapsamında geliştirilen ve MediaWiki'ye daha az bağımlı olmak isteyen bazı uzantılar tarafından kullanılan JavaScript kitaplık olan jquery.i18n ile de uyumludur, örneğin VisualEditor ve UniversalLanguageSelector.
Daha geniş uluslararasılaştırma ve yerelleştirme araçları paketi "Project Milkshake" olarak adlandırıldığından, bazı kişiler bu biçimi "banana" olarak adlandırır.
Dosya konumu
MediaWiki çekirdeğinde, yerelleştirme dosyaları languages/i18n
dizinine yerleştirilir.
MediaWiki uzantıları genellikle kendi uzantılarını i18n/
bir alt dizine yerleştirir.
Bir proje içinde çok sayıda mesaj varsa, sürdürülebilirlik için bunları iki veya daha fazla güncel alt dizine bölmek istenebilir.
MediaWiki bağlamında, bu alt dizinleri listelemek için $wgMessagesDirs yapılandırma anahtarı kullanılır.
İşte MediaWiki için VisualEditor uzantısından bir örnek:
{
"MessagesDirs": {
"VisualEditor": [
"lib/ve/modules/ve/i18n",
"modules/ve-mw/i18n",
"modules/ve-wmf/i18n",
"lib/ve/lib/oojs-ui/i18n"
]
}
}
İngilizce "en" ileti dosyasına en.json
yeni iletiler eklersiniz ve bunları ileti belgeleme dosyasında "qqq" qqq.json
özel sözde dil koduyla belgelersiniz.
Ayrıca bakınız: Yeni mesajlar ekleme.
Meta veri
Şu anda dosyalarda aşağıdaki meta veri alanları kullanılmaktadır:
- authors
- İletilerin yazarlarının bir JSON listesi. İngilizce (en) ve mesaj belgeleri (qqq) için bunlar, mesaj dosyası düzenlendiğinde elle eklenir. Diğer tüm diller için bu, mesaj dosyası translatewiki.net üzerinden dışa aktarıldığında otomatik olarak eklenir. Mesaj belgeleri translatewiki.net üzerinde düzenlenebilir ve belge düzenleyiciler de qqq.json dosyasına otomatik olarak eklenir.
- message-documentation
- Bu, mesaj belgelerini depolamak için kullanılan sözde dil kodudur. MediaWiki için bu her zaman qqq kodudur. (Bu, bazı uzantılarda görünür, ancak gerçekte hiçbir şekilde işlenmez. Zorunlu değildir.)
Sözleşmeler
Satır sonları gibi özel karakterlerden kaçılır ("\n"
).
Farklı alfabelerdeki harfleri temsil eden Unicode karakterler, karakter kodları olarak değil, gerçek karakterler olarak saklanır, çünkü bu dosyalar bazen insanlar tarafından okunur ve bu, dosyaları daha küçük yapar ("誼"
ve "\u8ABC"
değil).
Her durumda, geliştiricilerin İngilizce dışındaki herhangi bir dilde mesajları düzenlemek için birkaç nedeni vardır, çünkü bunlar genellikle translatewiki.net aracılığıyla düzenlenir.
HTML kodu da kaçmaz, yani "<strong>Warning</strong>"
ve "\u003cstrong\u003eWarning\u003c/strong\u003e"
değil.
JSON dosyaları sekmeler kullanılarak girintilidir.
PHP
Daha eski yerelleştirme dosyası biçimi PHP'dir. Bu aslında tüm mesajları içeren bir PHP dizisidir. Çekirdek MediaWiki'de her dil, MediaWiki kaynak kodunun languages/message dizinindeki kendi dosyasında bulunur. Uzantılarda tüm diller ve mesaj belgeleri (qqq) aynı dosyadadır: ExtensionName.i18n.php, genellikle uzantının ana dizinindedir.
PHP'den JSON'a geçiş yapmak için generateJsonI18n.php betiğini kullanın. Mesajları JSON dosyalarına taşıyacak ve PHP dosyasının metnini JSON dosyalarına işaret eden bir altlık ile değiştirecektir. Bu kalıp kod, MediaWiki 1.19 ile geriye dönük uyumluluk için gereklidir. MediaWiki 1.19 uyumluluğu gerektirmeyen yeni uzantılarda kullanılmamaktadır.
Mesajları kullanma
MediaWiki, koddaki anahtarlarla kaynaklanan mesajların merkezi bir deposunu kullanır. Bu, örneğin kaynak dosyalardan çevrilebilir dizeleri çıkaran gettext üzerinden farklıdır. Anahtar tabanlı sistem, orijinal metinleri düzeltmek ve mesajlardaki değişiklikleri izlemek gibi bazı şeyleri kolaylaştırır. Dezavantajı, elbette, kullanılan mesajların listesi ve bu tuşlar için kaynak metinlerin listesinin senkronizasyondan çıkabilmesidir. Pratikte bu büyük bir sorun değil ve tek önemli sorun, bazen artık kullanılmayan ekstra mesajların hâlâ çeviri için kalmasıdır.
İleti anahtarlarını daha yönetilebilir ve daha kolay bulmak için grep ile de her zaman tam olarak yazın ve dinamik olarak oluşturmaya çok fazla güvenmeyin. Kodunuza daha iyi bir yapı kazandırdığını düşünüyorsanız, mesaj anahtarlarının bölümlerini birleştirebilirsiniz. Ancak bunu yalnızca kesinlikle birden fazla olasılık olduğunda yapın, [1] ve olası sonuç anahtarlarının bir listesini içeren bir yorum eklediğinizden emin olun. Örneğin:
// Burada kullanılabilecek mesajlar:
// * myextension-connection-success
// * myextension-connection-warning
// * myextension-connection-error
$text = wfMessage( 'myextension-connection-' . $status )->parse();
Ayrıca dinamik tanımlayıcılar için kodlama kurallarına bakın.
JavaScript'te bir mesaj kullanmak için, ResourceLoader modülünüzün tanımında, "messages"
özelliğinde listeleme yapmanız gerekir.
PHP ve JavaScript'te mesaj işlevlerinin ayrıntılı kullanımı Manual:Messages API sayfasındadır. Bu önemli bir belgelendirme sayfasıdır ve mesajları kullanan kod yazmadan önce okumalısınız.
Mesaj kaynakları
Kod, şu kaynaklardan gelen sistem mesajlarını arar:
- MediaWiki ad alanı. Bu, standart mesajlar uygun olmadığında veya istenmediğinde vikilerin tüm mesajlarını benimsemesine veya geçersiz kılmasına izin verir.
- MediaWiki:Mesaj-anahtarı varsayılan mesajdır,
- MediaWiki:Mesaj-anahtarı/dil-kodu, bir kullanıcı vikinin varsayılan dilinden başka bir dil seçtiğinde kullanılacak mesajdır.
- Mesaj dosyalarından:
- Çekirdek MediaWiki'nin kendisi ve şu anda bakımı yapılan çoğu uzantılar her dil için
zyx.json
adlı bir dosya kullanır, burada zyx dil için dil kodu bulunur. - Bazı eski uzantılar, genellikle
MyExtensionName.i18n.php
adlı tüm dillerdeki tüm mesajları tutan birleştirilmiş bir mesaj dosyası kullanır. - Birçok Wikimedia Vakfı vikisi, WikimediaMessages uzantısından bazı mesajlara erişerek, mesajları her MediaWiki kurulumuna dayatmadan WMF vikilerinde standart hâle getirmelerine olanak tanır.
- Birkaç uzantı diğer teknikleri kullanır.
- Çekirdek MediaWiki'nin kendisi ve şu anda bakımı yapılan çoğu uzantılar her dil için
Önbelleğe alma
Sistem mesajları, öncelikle her web isteğinde kullanıldığı için MediaWiki'nin en önemli bileşenlerinden biridir. PHP mesaj dosyaları, binlerce mesaj anahtarını ve değerini sakladıkları için büyüktür. Bu dosyayı (ve kullanıcının dili içerik dilinden farklıysa muhtemelen birden fazla dosyayı) yüklemek, büyük bir bellek ve performans maliyetine sahiptir. Bu performans etkisini azaltmak için agresif, katmanlı bir önbellek sistemi kullanılır.
MediaWiki, kodun anlaşılmasını biraz daha zorlaştıran yerleşik birçok önbelleğe alma mekanizmasına sahiptir. 1.16'dan beri, mesajları ya cdb dosyalarında ya da veritabanında önbelleğe alan yeni bir önbelleğe alma sistemi bulunmaktadır. Özelleştirilmiş mesajlar, yapılandırmaya bağlı olarak dosya sisteminde ve memcached (veya alternatif) içinde önbelleğe alınır.
Aşağıdaki tablo, ilgili ayarlara genel bir bakış sunar:
Önbellek depolama konumu | $wgLocalisationCacheConf | ||||
---|---|---|---|---|---|
'store' => 'db' |
'store' => 'detect' (varsayılan) |
'store' => 'files' |
'store' => 'array' (MW ≥ 1.26'dan beri deneysel) | ||
$wgCacheDirectory | = false (varsayılan) |
l10n cache table | l10n cache table | hata (tanımlanmamış yol) | hata (tanımlanmamış yol) |
= path | l10n cache table | yerel dosya sistemi (CDB) | yerel dosya sistemi (CDB) | yerel dosya sistemi (PHP dizisi) |
MediaWiki sürümleri: | 1.27.0 – 1.27.2 Gerrit #Id3e2d2 |
MediaWiki 1.27.0 ve 1.27.1'de, otomatik algılama, dosya arka ucunu tercih edecek şekilde değiştirildi.
'store' => 'detect'
(varsayılan) durumunda, dosya arka ucu $wgCacheDirectory yolu ile kullanılır.
Bu değer ayarlanmazsa (varsayılan), işletim sistemi tarafından belirlenen geçici bir dizin kullanılır.
Geçici bir dizin algılanamazsa, veritabanı arka ucu yedek olarak kullanılır.
Bu, paylaşılan ana bilgisayarlardaki dosya çakışması ve güvenlik sorunları nedeniyle 1.27.2 ve 1.28.0'dan geri alındı (T127127 ve T161453 sayfalarına bakın).
İşlev geri izleme
Önbelleğe alma katmanlarını daha iyi görsel olarak tasvir etmek için, burada bir mesaj alınırken hangi yöntemlerin çağrıldığına dair bir işlev geri izlemesi verilmiştir. Her katmanın açıklaması için aşağıdaki bölümlere bakın.
Message::fetchMessage()
MessageCache::get()
Language::getMessage()
LocalisationCache::getSubitem()
LCStore::get()
MessageCache
MessageCache
sınıfı, iletiler için önbelleğe almanın en üst düzeyidir.
Message sınıfından çağrılır ve bir mesajın son ham içeriğini döndürür.
Bu katman aşağıdaki mantığı işler:
- Veritabanında mesaj geçersiz kılmaları kontrol etme
- Aşırı yüklenen mesajları memcached olarak veya $wgMessageCacheType olarak ayarlanmış olan herhangi bir yerde önbelleğe alma
- Dil yedeği dizisinin geri kalanını çözümleme
Son mermi önemlidir.
Dil yedekleri, orijinalin istenen bir mesajı yoksa MediaWiki'nin başka bir dile geri dönmesine izin verir.
Sonraki bölümde bahsedildiği gibi, dil geri dönüş çözümlemesinin çoğu daha düşük bir düzeyde gerçekleşir.
Ancak, yalnızca MessageCache
katmanı, geçersiz kılınan mesajlar için veritabanını kontrol eder.
Böylece veritabanından geçersiz kılınan mesajların geri dönüş zincirine entegre edilmesi burada yapılır.
Veritabanı kullanılmıyorsa, bu katmanın tamamı devre dışı bırakılabilir.
LocalisationCache
LocalisationCache.php sayfasına bakın
LCStore
LCStore
sınıfı, yalnızca LocalisationCache sınıfı tarafından mesajları gerçekten önbelleğe almak ve almak için kullanılan bir arka uç uygulamasıdır.
MediaWiki'de genel önbelleğe alma için kullanılan BagOStuff
sınıfı gibi, bir dizi farklı önbellek türü vardır ($wgLocalisationCacheConf kullanılarak yapılandırılır):
- "db" (varsayılan) - Veritabanındaki mesajları önbelleğe alır
- "file" (
$wgCacheDirectory
ayarlanmışsa varsayılan) - Mesajları yerel bir dosyada önbelleğe almak için CDB kullanır - "accel" - Verileri depolamak için APC veya başka bir işlem kodu önbelleği kullanır
"file" seçeneği Wikimedia Vakfı tarafından kullanılır ve veritabanına gitmekten daha hızlı ve APC önbelleğinden daha güvenilir olduğu için, özellikle de APC, PHP 5.5 veya sonraki sürümleriyle uyumlu olmadığı için önerilir.
Yeni mesaj ekleme
Mesaj anahtarını seçme
Ayrıca bakınız: Manual:Coding conventions#System messages
Mesaj anahtarı küresel olarak benzersiz olmalıdır. Bu, çekirdek MediaWiki'yi ve tüm uzantıları ve görünümleri içerir.
Mesaj adlarında küçük harflere, sayılara ve kısa çizgilere sadık kalın; diğer karakterlerin çoğu daha az pratik veya hiç çalışmıyor. MediaWiki kuralına göre, ilk karakter büyük/küçük harfe duyarlı değildir ve diğer karakterler büyük/küçük harfe duyarlıdır.
Lütfen adlandırma için küresel veya yerel kuralları izleyin.
Uzantılar için standart bir önek, tercihen küçük harfle uzantı adı ve ardından bir tire (-
) kullanın.
İstisnalar şunlardır:
- API tarafından kullanılan mesajlar
- Bunlar
apihelp-
,apiwarn-
,apierror-
ile başlamalıdır. Bu önekten sonra uzantı önekini koyun. (Bu mesajların genellikle includes/i18/api altında ayrı bir dosyada olması gerektiğini unutmayın.) - Günlükle ilgili mesajlar
- Bunlar
logentry-
,log-name-
,log-description
ile başlamalıdır. - Kullanıcı hakları
- Special:ListGroupRights sayfasında görüntülenen hakkın adı anahtarı
right-
ile başlamalıdır. "Aşağıdaki nedenlerden dolayı $2 izniniz yok:" cümlesini tamamlayan eylemin adıaction-
ile başlamalıdır. - Revizyon etiketleri
- Revizyon etiketleri
tag-
ile başlamalıdır. - Özel sayfa başlıkları
- Özel sayfa başlıkları
special-
ile başlamalıdır. - Extension descriptions
- Extension descriptions must begin with the extension name and end with
-desc
.
They appear in the table on Special:Version, and their content must briefly explain what the extension does.
Gender
English messages almost never need different words that change because of a user's gender.
English only needs this in the third-person pronouns "he" and "she", but these are surprisingly rare in messages.
When this is necessary, use he
or they
.
However, many other languages need different words depending on the user's gender, not only for third-person pronouns, but also for other pronouns, as well as for verbs in different tenses (e.g. "created", "deleted"), nouns (e.g. "mentor", "administrator"), adjectives (e.g. "new"), etc. It is therefore often useful to use GENDER in English messages, even when there's only English word. This gives translators a hint that GENDER can be used in a message. It also avoids warnings on translatewiki about missing parameters when an optional username parameter is missing (this happens especially often in log entry messages).
Mesaj oluştururken dikkat edilmesi gereken diğer noktalar
- Mesaj için uygun işleme kullandığınızdan emin olun (ayrıştırma,
{{
-değiştirme, HTML için kaçış vb.) - 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
languages/i18n/en.json
ile eklenmelidir. - Mesajınız bir uzantıdaysa, onu uygun alt dizindeki
i18n/en.json
dosyasına veyaen.json
dosyasına ekleyin. Özellikle, çoğu son kullanıcı tarafından görülmeyen yalnızca geliştiriciler tarafından görülen API mesajları, genelliklei18n/api/en.json
gibi ayrı bir dosyadadır. Bir uzantının çok fazla mesajı varsa,i18n
altında alt dizinler oluşturabilirsiniz. Varsayılani18n/
dahil tüm mesaj dizinleri,MessagesDirs
içindekiextension.json
bölümünde veya $wgMessagesDirs değişkeninde listelenmelidir. - Bir ara verin ve mesajın ifadesini düşünün. Mümkün olduğunca açık mı? Yanlış anlaşılabilir mi? Mümkünse diğer geliştiricilerden veya yerelleştiricilerden yorum isteyin. Uluslararasılaştırma ipuçları bölümünü izleyin.
- Aynı dizindeki
qqq.json
dosyasına belgelendirme ekleyin. - Dosyadaki mesajların sırası kabaca projenizin özelliklerine uygun olmalıdır. Aynı özellikten gelen mesajları yan yana koyun. Bu, çevirmenlerin odaklanmalarına, verimli ve tutarlı olmalarına yardımcı olur.
- En temel ve en sık kullanılan olması beklenen mesajları dosyanın başına, daha nadir ve teknik olarak daha gelişmiş mesajları ise sonlara doğru koyun.
Çevrilmemesi gereken mesajlar
- Yoksayılan mesajlar, yalnızca İngilizce mesajlar dosyasında bulunması gereken mesajlardır. Yalnızca diğer mesajlara veya dilden bağımsız özelliklere atıfta bulundukları için çevrilmesi gerekmeyen mesajlardır, örneğin bir "
{{SITENAME}}
" mesajı. - İsteğe bağlı mesajlar yalnızca hedef dilde değiştirilirse çevrilebilir.
Bu tür mesajları işaretlemek için:
- sırasıyla
qqq
ileti belgelerindeki şablonu kullanın;{{notranslate}}
veya{{optional}}
;
- translatewiki.net üzerinde kullanılan Translate uzantısına, uygun şekilde listeleyen bir yama göndererek iletilerle ne yapacağını söyleyin (ayrıca tam yapılandırma belgelerine bakın):
- çekirdek için, groups/MediaWiki/MediaWiki.yaml içine mesaj anahtarlarını ekleyin
ignored:
altında veyaoptional:
altında;
- uzantılar için, groups/MediaWiki/mediawiki-extensions.txt içinde uzantının adının altına aşağıdaki gibi bir satır ekleyin
ignored = msg-key-1,msg-key-2
oroptional = msg-key-1,msg-key-2
.
- çekirdek için, groups/MediaWiki/MediaWiki.yaml içine mesaj anahtarlarını ekleyin
Mevcut mesajları kaldırma
en.json
ve qqq.json
dosyadan kaldırın.
Başka dillerle uğraşmayın.
translatewiki.net güncellemeleri bunları otomatik olarak halledecektir.
Ayrıca, mesajın translatewiki yapılandırmasında, örneğin isteğe bağlı veya en çok kullanılan mesajlar listesinde herhangi bir yerde görünüp görünmediğini kontrol edin (basit bir git grep yeterli olmalıdır). Gerekirse bu listelerden çıkarın.
Mevcut mesajları değiştirme
- Mesaj belgelendirmesini güncellemeyi düşünün.
- Eski çeviriler yeni anlama uygun değilse mesaj anahtarını değiştirin. Bu aynı zamanda mesaj işlemedeki değişiklikleri de içerir (ayrıştırma, kaçış, parametreler, vb.). Bir mesajın ifadesini teknik değişiklikler olmadan geliştirmek, genellikle bir anahtarı değiştirmek için bir neden değildir. translatewiki.net'te çeviriler, çevirmenler tarafından hedeflenebilmeleri için eski olarak işaretlenecektir. Bir mesaj anahtarının değiştirilmesi, i18n ekibiyle görüşmeyi veya bir destek talebinde bulunmayı gerektirmez. Ancak, özel durumlarınız veya sorularınız varsa, #translatewiki bağlan kanalıdan veya translatewiki.net adresindeki destek sayfasında sorun.
- Uzantı translatewiki.net tarafından destekleniyorsa, lütfen yalnızca İngilizce kaynak mesajını ve/veya anahtarı ve beraberindeki
qqq.json
girişini değiştirin. Gerekirse translatewiki.net ekibi çevirileri güncellemek, bunları eski olarak işaretlemek, dosyayı temizlemek veya mümkünse anahtarları yeniden adlandırmakla ilgilenecektir. Bu, yalnızca HTML etiketleri gibi diğer dillerde değiştirebileceğiniz ve bu dilleri konuşmadan değiştirebileceğiniz şeyleri değiştirdiğinizde de geçerlidir. Bu eylemlerin çoğu translatewiki.net'te gerçekleşecek ve Git'e yaklaşık bir günlük gecikmeyle ulaşacak.
Mesaj belgelendirmesi
Mesaj belgelendirmesi için bir sözde dil kodu qqq
vardır.
Ö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ı söyleyen, nasıl çevrileceğine dair ipuçları veren ve parametrelerini numaralandıran ve açıklayan, ilgili mesajlara bağlantı veren, ve benzeri.
translatewiki.net'te, bu ipuçları mesajları düzenlerken çevirmenlere gösterilir.
Programcılar her mesajı belgelemelidir.
Mesaj belgelendirmesi, yalnızca çevirmenler için değil, modülün tüm bakımcılar için önemli bir kaynaktır.
Yazılıma bir mesaj eklendiğinde, buna karşılık gelen bir qqq
> girişi de olmalıdır; bunu yapmayan revizyonlar, dokümantasyon eklenene kadar "V-1
" olarak işaretlenir.
qqq
dosyalarındaki belgelendirme, yalnızca yeni mesajlar eklenirken veya mevcut bir İngilizce mesajı, örneğin parametre ekleme veya çıkarma gibi bir belge değişikliği gerektiren bir şekilde değiştirirken doğrudan düzenlenmelidir.
Diğer durumlarda, belgelendirme genellikle translatewiki'de düzenlenmelidir.
Her belge dizisine, sanki bir çeviriymiş gibi https://translatewiki.net/wiki/MediaWiki:message-key/qqq adresinden erişilebilir.
Bu düzenlemeler, çevirilerle birlikte kaynak depolara dışa aktarılacaktır.
Belgelendirmede olması gereken faydalı bilgiler şunları içerir:
- Mesaj işleme (ayrıştırma, kaçış, düz metin).
- Örnek değerlerle parametre türü.
- Mesajın kullanıldığı yer (sayfalar, kullanıcı arayüzündeki konumlar).
- Mesajın kullanıldığı yerde nasıl kullanıldığı (bir sayfa başlığı, düğme metni, vb.).
- Bu mesajla birlikte başka hangi mesajlar kullanılıyor veya bu mesaj başka hangi mesajlara atıfta bulunuyor.
- İleti bağlamda görüldüğünde anlaşılabilecek, ancak ileti tek başına görüntülendiğinde (çeviri yapılırken durum böyledir) anlaşılamayan başka herhangi bir şey.
- Varsa, dilbilgisi hakkında notlar. Örneğin, İngilizce'de "open" hem fiil hem de sıfat olabilir. Diğer birçok dilde kelimeler farklıdır ve belge olmadan nasıl çevrileceğini tahmin etmek imkansızdır.
- "disabled", "open" veya "blocked" gibi şeyleri tanımlayan sıfatlar, neyi tanımladıklarını her zaman söylemelidir. Birçok dilde sıfatlar tanımladıkları ismin cinsiyetine sahip olmalıdır. Farklı türden şeylerin farklı sıfatlara ihtiyaç duyması da olabilir.
- Mesajın özel özellikleri varsa, örneğin bir sayfa adıysa veya doğrudan çeviri değil, kültüre veya projeye uyarlanmış olması gerekiyorsa.
- Mesajın diğer mesajın yanında, örneğin bir listede veya menüde görünüp görünmediği. Sözcüklerin üslubu veya gramer özellikleri muhtemelen yakındaki mesajlara benzer olmalıdır. Ayrıca, bir listedeki ögelerin, listenin başlığıyla uygun şekilde ilişkili olması gerekebilir.
- Mesajının, genel ad alanı adları, URL'ler veya etiketler gibi çevrilmemesi gereken bölümleri.
- "CTA" gibi kısaltmalar veya "şablon", "bastırma" veya "taslak" gibi belirli jargon gibi potansiyel olarak belirsiz kelimelerin açıklamaları. (İlk etapta bu tür kelimelerden kaçınmanın en iyisi olduğunu unutmayın!)
- Ekran görüntüleri çok faydalıdır. Kırpmayın – mesajın göründüğü tam ekran görüntüsü, tam bağlam sağlar ve birkaç mesajda yeniden kullanılabilir.
Diğer birkaç ipucu:
- Çevirmenlerin çoğu zaman mesajları yazılımı kullanmadan çevirdiğini unutmayın.
- Çoğu zaman, çevirmenler ne modülünüz ne de içindeki diğer mesajlar hakkında herhangi bir bağlam bilgisine sahip değildir.
- Tek başına yeniden ifade edilen bir mesaj çoğu durumda işe yaramaz.
- Tasarımcıların "hamburger", "nav" veya "comps" gibi jargonlarını kullanmayın.
- Modülünüzde kullanılan teknik terimlerin sözlük bir kısmını yazmayı düşünün. Bunu yaparsanız, mesajların belgelerinden ona bağlantı verin.
{{msg-mw|message key}}
kullanarak diğer mesajlara bağlantı verebilirsiniz.
Lütfen mesajların bir kısmı başka mesajlardan geliyorsa (bu önlenemiyorsa) veya bazı mesajlar birlikte veya aynı bağlamda gösteriliyorsa bunu yapın.
translatewiki.net, belgelendirme için bazı varsayılan şablonlar sağlar:
{{doc-action|[...]}}
-action-
mesajları için{{doc-right|[...]}}
-right-
mesajları için{{doc-group|[...]|[...]}}
- kullanıcı grupları etrafındaki mesajlar için (group
,member
,page
,js
vecss
){{doc-accesskey|[...]}}
-accesskey-
mesajları için
Daha fazla bilgi için şablon sayfalarına bakın.
Uluslararasılaşma ipuçları
Belgelendirmesine yanı sıra, çevirmenler geliştiricilerden işlerini daha kolay ve verimli hâle getirmek ve tüm diller için gerçek ve iyi bir yerelleştirmeye izin vermek için bazı ipuçlarını dikkate almalarını ister. Yalnızca İngilizce mesaj ekleme veya düzenleme bile olsa, tüm dillerin ihtiyaçlarının farkında olunmalıdır. Her mesaj 300'den fazla dile çevrilir ve bu mümkün olan en iyi şekilde yapılmalıdır. Bu ipuçlarının doğru uygulanması genellikle İngilizce olarak daha iyi mesajlar yazmanıza da yardımcı olacaktır.
Yerelleştirme#Yardım ve iletişim bilgisi, i18n ile ilgili deneyimli ve bilgili kişilerin yardımını bulabileceğiniz başlıca yerleri listeler.
Mesaj parametrelerini ve anahtarları doğru kullanın
Bu, mesajlarınız için doğru bir ifadenin ön koşuludur.
Mesajın yeniden kullanılmasından kaçının
Çevirmenler mesajın yeniden kullanılmasını önermezler. Bu, sezgisel görünebilir, çünkü kodu kopyalamak ve çoğaltmak genellikle kötü bir uygulamadır, ancak sistem mesajlarında buna sıklıkla ihtiyaç duyulur. İngilizce'de iki kavram aynı kelime ile ifade edilebilse de, bu onların her dilde aynı kelime ile ifade edilebileceği anlamına gelmez. "OK" iyi bir örnektir: İngilizce'de bu, genel bir düğme etiketi için kullanılır, ancak bazı dillerde düğme tarafından gerçekleştirilecek işlemle ilgili bir düğme etiketi kullanmayı tercih ederler. Başka bir örnek, pratikte herhangi bir sıfattır: "çoklu" gibi bir kelime birçok dilde cinsiyete göre 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 çok özdeş mesaj ekliyorsanız, lütfen içeriklerindeki farklılıkları açıklamak için mesaj belgelerini ekleyin. Çevirmenler için ekstra iş hakkında endişelenmeyin. Çeviri belleği, gerektiğinde farklı çevirilere sahip olma esnekliğini korurken bunlara çok yardımcı olur.
Parçalanmış veya "patchwork" mesajlarından kaçının
Dillerin değişen sözcük dizilimleri ve karmaşık gramer ve sözdizimsel kuralları vardır. "Lego" mesajlarını, yani birden fazla metin parçasından oluşan mesajları, muhtemelen bazı dolaylı yollarla ("dize bitiştirme" olarak da adlandırılır) çevirmek çok zordur.
Her mesajı eksiksiz bir ifade yapmak daha iyidir. Gerekirse, birkaç cümle genellikle bir metin bloğunda çok daha kolay bir şekilde birleştirilebilir. Birkaç dizeyi tek bir mesajda birleştirmek istediğinizde, bunları parametre olarak iletin, çünkü çevirmenler çeviri yaparken bunları dilleri için doğru şekilde sıralayabilirler.
Birbirinden alıntı yapan mesajlar
Kuralın bir istisnası, birbirine atıfta bulunan mesajlar olabilir: '"{{int:name}}" etiketli alana orijinal yazarın adını girin ve bittiğinde "{{int:proceed}}" seçeneğini tıklayın'. Bu, bir yazılım geliştiricisi veya viki operatörü daha sonra "name" veya "proceed" mesajlarını değiştirdiğinde mesajı tutarlı hâle getirir. int hack olmadan, geliştiriciler ve operatörler, birini değiştirdiklerinde, ayarlanması gereken tüm ilgili mesajların farkında olmak zorunda kalacaklardı.
Write messages in natural language
As much as possible, write messages in natural, human language. Try reading the message aloud and think: is this something that sounds like correct, grammatical English that humans speak? If it's complex, hard to pronounce, or in any way unnatural in English, it will be even harder for translators and for users in other languages.
Avoid punctuation that is too technical or bureaucratic or that can't be read aloud.
Slash (/
) should usually be replaced with or
.
And/or should be replaced with and
or or
.
Sentences with comma splice should be split into shorter sentences.
Belirli projelere özel terimler ve şablonlar kullanmayın
MediaWiki, Wikimedia hareketi içinde ve dışında çok çeşitli insanlar tarafından kullanılmaktadır. Başlangıçta bir ansiklopedi için yapılmış olsa da, şimdi çeşitli içerik türleri için kullanılıyor. Bu nedenle genel terimler kullanın. Örneğin, geliştirmekte olduğunuz özelliğin yalnızca sayfaların "maddeler" olarak adlandırıldığı bir sitede kullanılacağından kesinlikle emin değilseniz, "madde" gibi terimlerden kaçının ve bunun yerine "sayfa" kullanın. İngilizce Vikipedi topluluk sayfasının adı olan "köy çeşmesi" kullanmayın ve bunun yerine "topluluk tartışma sayfası" gibi genel bir terim kullanın.
Tüm vikilerde belirli bir şablonun var olduğunu varsaymayın. Şablonlar vikiler 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şturulursa çalışırlar. Mesajlarda şablon kullanmaktan tamamen kaçınmak en iyisidir. Bunları gerçekten kullanmanız gerekiyorsa, bunu mesaj belgelerinde ve uzantı kurulum talimatlarında açıkça belgelemelisiniz.
Cümlelerdeki tarihlerden ayrı zamanlar
Bazı diller, bir cümledeki diğer kelimelere dilbilgisi açısından bağlı olan bir tarih ve zaman arasına bir şey eklemek zorundadır. Böylece tarih/saati bir arada kullanamayacaklar. Diğerleri kombinasyonu uygun bulabilir, bu nedenle bu gibi durumlarda üç parametre değeri (date/time, date, time) sağlamak genellikle en iyi seçimdir ve her çeviride ilkini veya son ikisini gerektiği gibi kullanılmadan bırakın.
Mesajlarda {{SITENAME}}
kullanmaktan kaçının
{{SITENAME}}
birkaç dezavantaja sahiptir.
Herhangi bir şey olabilir (kısaltma, kelime, kısa ifade, vb.) ve dile bağlı olarak, her durumda {{GRAMMAR}}
kullanılması gerekebilir.
Ne olursa olsun, {{SITENAME}}
içeren her iletinin, kodunuzun yüklendiği her yeni viki için çoğu viki dilinde incelenmesi gerekir.
Çoğu durumda, bir dil için genel bir GRAMMAR
yapılandırması olmadığında, viki operatörlerinin {{SITENAME}}
çalışması için {{GRAMMAR}}
elde etmek için PHP kodunu eklemesi veya değiştirmesi gerekir.
Bu, diğerlerine göre hem daha fazla beceri hem de daha fazla anlayış gerektirir.
"Bu viki" gibi genel kaynakları sahip olmak daha uygundur.
Bu, kurulumların bu mesajları yerel olarak {{SITENAME}}
kullanacak şekilde değiştirmesini engellemez, ancak en azından bunu yapmak zorunda kalmazlar ve viki zaten çalışıp kullanılana kadar mesaj uyarlamasını erteleyebilirler.
Görsel yerleşim ve konumlara atıfta bulunmaktan kaçının
Neyin nerede oluşturulduğu, 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ıtılır, ancak her zaman değil ve bazı diller ve vikiler için tamamen değil. Elde taşınan cihazlar, dar pencereler vb., daha büyük ekranlarda yan yana görünecek şekilde birbirinin altında bloklar gösterebilir. Site ve kullanıcı tarafından yazılan JavaScript betikleri ve küçük araçları, parçaları gizleyebildiğinden ve yapabildiğinden veya öngörülemeyen şekillerde şeyleri hareket ettirebildiğinden, gerçek düzeni bilmenin güvenilir bir yolu yoktur.
Kullanıcı arayüzü dili sayfanın içerik dili olmayabileceğinden ve koşullara bağlı olarak düzen 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ı, görsel düzen kavramına bile sahip değildir. Bu nedenle, anlamsal düzen terimleri hâlâ kullanılabilse de ("formdaki önceki adımlar", vb.) durumların çoğunda görsel yerleşim konumlarına başvurmamalısınız.
MediaWiki, arayüzün mevcut 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'da yukarıdan aşağıya yazma için yaklaşan tarayıcı ve MediaWiki desteği,[2] en az sekiz olası düzen ile ekran düzenlerini daha da öngörülemez hâle getirecek (sol/sağ başlangıç konumu, üst/alt başlangıç konumu ve hangisi önce gerçekleşir).
Ekran renklerine atıfta bulunmaktan kaçının
Bir şeyin oluşturulduğu renk, görünümler, site ve kullanıcı tarafından yazılan JavaScript betikleri ve küçük araçlar ve erişilebilirlik veya teknolojik sınırlamalar nedeniyle yerel kullanıcı aracısı geçersiz kılma 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 yapmamalısınız. (Aynı nedenle, kullanıcıyı durum hakkında bilgilendirmek için bir mekanizma olarak tek başına renge güvenmemelisiniz.)
Avoid markup that doesn't need to be translated
<div>
etiketleri, yukarıdaki veya alttaki cetveller ve benzeri gibi çeviri gerektirmeyen HTML işaretlemesi genellikle iletilerin parçası olmamalıdır.
It's an unnecessary burden on translators, and is often accidentally altered or skipped in the translation process.
The translation interface has no syntax highlighting or validation, and mistakes are common.
Avoid complex wikitext markup as well. Wikitext is sometimes terser than writing the same thing in PHP, and it's tempting to write something like:
This is the [[{{MediaWiki:Validationpage}}|stable version]], [{{fullurl:{{#Special:Log}}|type=review&page={{FULLPAGENAMEE}}}} checked] on <i>$2</i>.
[{{fullurl:{{FULLPAGENAMEE}}|oldid=$1&diff=cur}} $3 pending {{PLURAL:$3|change|changes}}] {{PLURAL:$3|awaits|await}} review.
However, this is difficult for translators, especially when translating to right-to-left languages, because parts of the message must remain in English, resulting in text direction changing many times in one line:
هذه هي [[{{MediaWiki:Validationpage}}|النسخة المستقرة]]، [{{fullurl:{{#Special:Log}}|type=review&page={{FULLPAGENAMEE}}}} المفحوصة] في <i>$2</i>.
[{{fullurl:{{FULLPAGENAMEE}}|oldid=$1&diff=cur}} {{PLURAL:$3||تغيير واحد معلق|تغييران معلقان|$3 تغييرات معلقة|$3 تغييرا معلقا|$3 تغيير معلق}}] {{PLURAL:$3||ينتظر|ينتظران|تنتظر|ينتظر}} المراجعة.
It's best to pass any link targets as message parameters, and use only simple markup like [$1 Label]
and [[$1|Label]]
.
Mesajlar genellikle düşündüğünüzden daha uzundur!
Yabancı dildeki mesaj dosyalarına göz atarken, neredeyse hiçbir zaman Çince olanlardan daha kısa, nadiren İngilizce olanlardan daha kısa ve genellikle İngilizce olanlardan çok daha uzun mesajlar bulamazsınız.
Özellikle formlarda, giriş alanlarının önünde, İngilizce mesajlar kısa ve öz olma eğilimindedir. Bu genellikle çevirilerde tutulmaz. Diller, İngilizce'de bulunan teknik kelime dağarcığından yoksun olabilir ve bazı kavramları açıklamak için birden fazla kelime veya hatta tam cümleler gerektirebilir. Örneğin, "TSV file:" adlı kısa İngilizce mesajın bir dile tam anlamıyla şu şekilde ç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 verileri koleksiyonunu belirten bir ad yazın ve aralarındaki parmaklıklar, bir daktilo arabasını bir sonraki önceden tanımlanmış konuma kaydıran türden tek işaretlerdir. İşte başlıyoruz: _____ (teşekkür ederiz)
Bu, kuşkusuz, uç bir örnek, ancak özelliği alıyorsunuz. Bu cümleyi, her kelimenin kendine ait bir satırı kapladığı ve giriş alanının bir sonraki sütunda dikey olarak ortalandığı bir biçimde bir sütunda hayal edin. :-(
Farklı şeyleri veya kavramları belirtmek için çok yakın, benzer veya aynı kelimeleri kullanmaktan kaçının
Örneğin, sayfalar, söz konusu sayfanın geçmiş sürümlerini içeren (belirli bir tarih, saat ve düzenlemeye ait) daha eski revizyonlara sahip olabilir. Revizyon ve versiyon kelimeleri birbirinin yerine kullanılabilir. Versiyonlanmış sayfalar revize edildiğinde sorun çıkıyor ve revizyondan, yani revize etme sürecinden de söz ediliyor. "Revizyon"un iki eşanlamlısının farklı çevirileri olduğunda bu ciddi bir sorun teşkil etmeyebilir. Ancak buna güvenmeyin. O zaman, yanlış yorumlanmasını önlemek için "revizyon", "sürüm" olarak da bilinen kullanımından tamamen kaçınmak daha iyidir.
Temel kelimelerin öngörülemeyen çağrışımları olabilir veya hiç mevcut olmayabilir
MediaWiki'de çok özel kullanımları nedeniyle çevrilmesi zor olan bazı kelimeler var. Bazıları hiç çevrilmemesini bekleyebilirsiniz. Örneğin, birkaç dilde "bir şeyi kullanan kişi" ile ilgili "kullanıcı" kelimesi yoktur. Benzer şekilde, Kölsch'deki İngilizce "namespace" ve "apartment" kelimeleri aynı kelimeyi tercüme eder. Ayrıca, Kölsch'te, "use" yapılacak herhangi bir gönderme çok güçlü bir şekilde "abuse" anlamına geleceğinden, tek kelimeyle "corroborator and participant" derler. "Wiki çiftliği" terimi, "vikilerle dolu ahır" olarak çevrilir, çünkü tek ürünlü bir çiftlik, dilde bir çelişki olacağından ve anlaşılmadığından vb.
Gerektiğinde <code>
, <var>
ve <kbd>
etiketlerini kullanın
Teknik parametreler, değerler veya klavye girişleri hakkında konuşurken, <code>
, <var>
veya <kbd>
HTML etiketlerini kullanarak bunları uygun şekilde işaretleyin.
Böylece tipografik olarak normal metinden ayrılırlar.
Bu, kafa karışıklığını, hataları ve yanlış temsilleri önleyerek okuyuculara anlamlarını netleştirir.
İleti işleyicinizin bu tür işaretlemeye izin verdiğinden emin olun.
Semboller, iki nokta üst üste, parantez, vb. mesajların parçalarıdır
Birçok sembol de yerelleştirilebilir. Bazı yazımlarda, Latin alfabesinden farklı türde parantezler bulunur. Bazı dillerde bir etiket veya giriş isteminden sonra iki nokta üst üste işareti uygun olmayabilir. Bu sembollerin mesajlara dahil edilmesi, daha iyi ve daha az Anglo-merkezli çeviriler yapılmasına yardımcı olur ve ayrıca kod karmaşasını azaltır.
Örneğin, «Norveç», »İsveççe», »Danca«, „Almanca“ ve 「Japonca」 dillerinde kullanılan farklı tırnak işareti kuralları vardır.[3]
Bazı metni yerelleştirilmiş parantezler, parantezler veya tırnak işaretleri içine almanız gerekiyorsa, parentheses
($1) veya brackets
[$1] veya quotation-marks
"$1" gibi mesajlar kullanabilirsiniz:
wfMessage( 'parentheses' )->rawParams( /* text to go inside parentheses */ )->escaped()
wfMessage( 'brackets' )->rawParams( /* text to go inside brackets */ )->escaped()
wfMessage( 'quotation-marks' )->rawParams( /* text to go inside quotation marks */ )->escaped()
Sembollerin ve noktalama işaretlerinin çeviriden sağ çıkmasını beklemeyin
Sağdan sola yazılan diller (İngilizce'nin aksine) genellikle "sonraki" ve "önceki" bağlantılarla sunulan ok sembollerini değiştirir ve bunların bir mesaj metnine göre yerleşimleri de ters çevrilebilir veya çevrilmeyebilir. Üç nokta "vb." ya da kelimelere çevrilebilir. Soru işaretleri, ünlem işaretleri, iki nokta üst üste işareti, cümle sonundakiler dışında, hiç veya iki kez konulmayacaktır. Sonuç olarak, bunların hepsini her zaman mesajlarınızın metnine dahil edin ve asla programlı olarak eklemeye çalışmayın.
Tam durakları kullanın
Normal cümleleri noktalı olarak sonlandırın. Bu genellikle bir çevirmenin, farklı şekilde çevrilmesi gerekebilecek manşetler veya liste öğeleri olmadığını bilmesinin tek göstergesidir.
Anlamlı bağlantı çengelleri kullanın
Çengelin hedef sayfayı iyi tanımladığından emin olun. Her zaman sıradan ve genel kelimelerden kaçının. Örneğin, hedef sayfalar neredeyse hiçbir zaman "burayı tıklayın" ile ilgili olmadığı için, "Burayı tıklayın" kesinlikle gidilmez,[4]. Bunun yerine, "İsterseniz bir dosya yükleyebilirsiniz" gibi, kullanıcının bağlantıyı takip ederken ne elde edeceğini anlatan kesin eylem sözcükleri kullanın.
Ayrıca Kullanıcıların nereye gittiklerini tahmin etmelerine yardımcı olma ve gizemli et gezinitisi ve Buraya tıklayın bağlantısını bağlantı metni olarak kullanmamamızın ana nedenleri bakın.
Jargon ve argodan kaçının
Mesajlarda geliştirici ve uzman kullanıcı jargonundan kaçının. Mümkün olduğunca basit bir dil kullanmaya çalışın. Kullanıcıya bir şey olduğunu veya olmadığını bildirmek istediğinizde "başarılı", "başarılı şekilde", "başarısız", "hata meydana geldi" vb. Bu, geliştiricilerin her şeyi doğru veya yanlış olarak görme perspektifinden gelir, ancak kullanıcılar genellikle yalnızca gerçekte ne olduğunu veya olmadığını ve bu konuda ne yapmaları gerektiğini (eğer varsa) bilmek ister. Böyle:
- "Dosya başarıyla yeniden adlandırıldı" -> "Dosya yeniden adlandırıldı"
- "Dosya yeniden adlandırılamadı" -> "Bu ada sahip bir dosya zaten var. Lütfen farklı bir ad seçin."
Boşlukların ve satır sonlarının farkında olun
MediaWiki'nin yerelleştirilmiş mesajları genellikle viki içinde, canlı vikilerdeki viki işlemleri veya translatewiki.net üzerindeki çevirmenler tarafından düzenlenir. Özellikle mesajınızın başındaki veya sonundaki boşlukların editörleri nasıl etkileyeceğinin farkında olmalısınız:
- Mesajın sonundaki boşluklar ve satır sonları (yeni satırlar) vikimetin düzenleyici tarafından her zaman otomatik olarak kaldırılır. İletiniz, vikide düzenlendiğinde kaybolacağından boşluk veya satır sonu ile bitmemelidir.
- Başlangıçtaki boşluklar ve satır sonları otomatik olarak kaldırılmaz, ancak düzenleme sırasında yanlışlıkla kaldırılmaları muhtemeldir ve bundan kaçınılmalıdır.
Mesajınızı aktif metinle başlatın ve bitirin; Etrafında yeni bir satıra veya paragraf sonuna ihtiyacınız varsa, çevreleyen kodunuz onu döndürülen metne eklemekle ilgilenmelidir.
'Kelime ayırıcı' (çoğu dilde yalnızca bir boşluk karakterinden oluşur) gibi sonunda boşluk gerektiren bazı mesajlar vardır. Bu tür kullanım durumlarını desteklemek için, mesaj aksi takdirde vikimetin veya HTML biçimlendirmesine izin vermese bile, mesajlarda aşağıdaki HTML varlıklarına izin verilir ve gerçek karakterlere dönüştürülür:[5]
 
– alan
veya 
– ayrılmaz alan­
– esnek kısa çizgi
İlgili bir notta, önceden kaydetme dönüşümleri tarafından etkilenen diğer sözdizimi öğeleri de mesajlarda kullanılmamalıdır, çünkü bunlar mesaj vikide düzenlendiğinde dönüştürüleceklerdir.
Standart büyük harf kullanın
Büyük harf kullanımı, çevirmenlere tek sözcükler, liste veya menü ögeleri, ifadeler veya tam cümleler gibi neyi çevirdikleri konusunda ipuçları verir. Doğru (standart) büyük harf kullanımı, arama motorlarının sayfalarınızı değerlendirmesinde de rol oynayabilir. MediaWiki, arayüz mesajlarında cümle harfi (Hızlı kahverengi tilki tembel köpeğin üzerinden atlar) kullanır.
Çoğu yazı sisteminde büyük harf bulunmadığını ve bunlara sahip olanlardan bazılarının bunları İngilizce'den farklı şekilde kullandığını daima unutmayın.
Bu nedenle, vurgu için TÜMÜ BÜYÜK HARF kullanmayın.
Aşağıdakilere göre CSS veya HTML <em>
veya <strong>
kullanın:
Vurgu
Normal metinde, kalın yüz veya eğik ve benzeri vurgu mesaj metinlerinin bir parçası olmalıdır.
Vurgulama konusundaki yerel kurallar genellikle farklılık gösterir, özellikle bazı Asya alfabelerinin kendilerine ait olan kuralları vardır.
Çevirmenler vurguyu hedef dillerine ve alanlarına göre ayarlayabilmelidir.
Dil veya yazım bazında işaretlemeye izin vermek için kullanıcı arayüzünüzde "<em>
ve "<strong>
" kullanmayı deneyin.
İngiliz ve Avrupa stillerinin modern ekran düzenlerinde vurgu daha az kullanılır. Nasıl tercüme edileceğine dair değerli ipuçları verebileceğinden, bunu #Mesa belgelendirmenize yine de iletin. Vurgu, çevirmenlerin bilmesi koşuluyla, uygun olduğu şekilde diğer kültürel bağlamlarda kullanılabilir ve kullanılmalıdır.
Ayrıca bakınız
- Özelleştirme
- Manual:Yapılandırma ayarları
- Manual:Skins
- Manual:Messages API
- Yerelleştirme
- Manual:MediaWiki architecture and Localizing messages
- translatewiki:FAQ
Notlar
- ↑ Bazı linterler yalnızca bir öge içeren mesaj listelerini reddeder, örneğin: mediawiki/msg-doc 1 girişli geçerli belgeleri kabul etmez.
- ↑ http://dev.w3.org/csswg/css3-writing-modes/
- ↑ tr:Tırnak işareti
- ↑ http://www.w3.org/QA/Tips/noClickHere
- ↑ https://github.com/wikimedia/mediawiki/blob/REL1_34/includes/cache/MessageCache.php#L887