PHP Belgeleri NASIL çevrilir?
PHP Belgelelerinin yapısı ve daha pek çok şey hakkında fikir edinmek için http://doc.php.net/tutorial/ adresindeki belgeyi okuyun.
Bizim çalışacağımız modülün ismi: doc-tr
Yani, çalışma dizininiz için komut satırından vereceğiniz komut: svn co http://svn.php.net/repository/phpdoc/modules/doc-tr
Bu komut doc-tr diye bir dizin açacak ve altına SVN deposundan bu modüle ait dosyaları indirecektir. Bundan sonra doc-tr dizininden bahsederken "çalışma dizini" diyeceğiz. Bunu yaptıktan sonra yeni bir çeviriye başlamaya karar vermeden önce çalışma dizininizde daima
svn update
komutunu vermelisiniz. Bu komut çalışma dizininizi son haline getirir. Onun için bir çeviriyi güncelliyorsanız bu komutu vermeyin. Yoksa çevirdikleriniz heba olabilir. tr/ dizininde sadece çevrilmiş ve çevirisi sürmekte olan dosyalar vardır. Yani çevireceğiniz dosya tr/ altında varsa başka bir dosya seçmeniz gerekecek. Çevireceğiniz dosyayı en/ dizini altından seçip tr/ altındaki yerine kopyalayacaksınız. Örneğin, 'doc-tr/en/reference/apache/book.xml' dosyasını gözünüze kestirdiniz diyelim. Yapacağınız, çalışma dizininizin içinde
cp en/reference/apache/book.xml tr/reference/apache/book.xml
komutunu vermeye eşdeğer bir işlem olacak.
SVN deposuyla çalışmak için masaüstü uygulamaları da var. Windows kullananlar için (GPL) http://www.tortoisesvn.net/ öneririm. Linux kullananlar için seçenek çok. KDE kullananlar için kdesvn'yi önerebilirim. RapidSVN'de fena değil ama kdesvn baha daha kullanışlı geldi. Masaüstü uygulamalar ilk update'i kendiliğinden yapıyormuş gibi görünebilir, buna aldanmayın. Yaptığı işlem çalışma dizininizi güncellemez sadece bilgi amaçlıdır. Sizi ilgilendiren değişiklikler olduğunu görüyorsanız bunları çalışma dizininize yansıtmak için update işlemini yinelemeniz gerekir.
Ama hemen çeviriye girişmeyeceksiniz. Bazı önişlemler var.
** Bundan sonrası SVN hesabı bulunanları da ilgilendiriyor. **
Dosyanın ilk satırı genelde şuna benzer bir girdi içerir:
<?xml version="1.0" encoding="utf-8"?>
Bu satıra "XML başlığı" diyelim.
Burada "utf-8", çeviri yaparken kullanacağınız karakter kodlamasıdır. Linux kullanıyorsanız, öntanımlı ayarları değiştirmediyseniz karakter kodlamanız UTF-8'dir. Windows kullanıyorsanız, muhtemelen CP1254'tür. Karakter kodlaması olarak UTF-8 kullanmayanlar iconv, recode gibi araçlarla karakter kodlamasını UTF-8'e çevirecekler. Şüphesiz bu amaçla PHP'yi de kullanabilirler ;-)
XML başlığının altında bulunan SVN sürüm satırına dokunmuyoruz. O satırı SVN günceller. O satır bundan sonra yaptığınız çevirinin sürümünü içerecek. O satırın altına şöyle bir satır ekleyin:
<!-- EN-Revision: 123456 Maintainer: flarecaster Status: ready -->
Bu satıra "güncelleme satırı" diyelim. '123456' özgün belgenin sürüm numarası,'flarecaster' çevirmenin translation.xml dosyasında yazan kullanıcı adı (nick), sonuncusu ise dosyanın durumunu gösterecek. Çeviriye başlarken oraya "wip", tamamlandığında "ready" yazacaksınız.
Böylece özgün belgenin sürüm numarası değiştiğinde en/ dizini altındaki dosya için
svn diff -r<EN-revision> <en/dizin/dosya>
komutuyla eski ve yeni sürümler arasındaki farkı kolayca görebilecek, tüm dosyayı yeni baştan çevirircesine elden geçirmekten kurtulacağız. Yani, çeviriyi güncellemek kolaylaşacak. Tabii, çeviriyi yapan güncelleyecek ;-)
Güncelleme sırasında 123456 yerine özgün belgenin yeni sürüm numarasını yazmayı unutmuyoruz.
Bu iki satır sayesinde çeviri istatistikleri oluşturuluyor:
http://doc.php.net/revcheck.php?p=translators&lang=trGüncelleme satırının altında bazı dosyalarda
<!-- CREDITS: cumhuronat, tpug, antimon, flarecaster -->
gibi satırlar göreceksiniz. Bu kişiler o belgenin çevirisiyle evvelce ilgilenmiş kişilerdir. Onları böyle bir satırla hatırlamış oluyoruz.
Sıra geldi çeviride dikkat edilecek hususlara...
XML dosyalarla çalışırken dosyanın sekme karakterini (09) içermemesi gerekir.
Eğer metin düzenleyiciniz yapabiliyorsa sekmeleri boşluklara çevirmeyi etkin
kılın, yapamıyorsa bunu yapabilen bir metin düzenleyici bulun. Bulamıyorsanız,
sekme yerine boşluk tuşuna basın. Zaten çalışacağınız XML dosyaların
girintileri 1 karakter uzunlukta.
78 sütundan daha geniş satırlar kullanmayın. Uzun satırlar farkları komut satırından görmek istediğinizde işinizi kolaylaştırmayacaktır.
Dosyalar '<para>This extension requires PHP 5.</para>' şeklinde HTML'ye benzer etiketler arasında bir takım metinler içerir. Bu etiketler XML belgenin yapı taşları olduğundan onları çevirmeyeceğiz. Bazı etiketlerin HTML etiketlerindeki gibi öznitelikleri vardır, onlara da dokunmuyoruz. Yani, yukarıdaki metni <para>Bu eklenti PHP 5 gerektirir.</para> şeklinde çevireceğiz.
Ayrıca dosyalarda bazen & ile başlayıp ; ile biten bazı sözcüklere rastlayacaksınız. Onları cümlenin bir parçası haline getireceksiniz. Örneğin, <para>You must enable the <literal>foo</literal> setting in &php.ini;</para> yerine <para><literal>foo</literal> ayarını &php.ini; içinde yapmış olmalısınız.</para> yazacaksınız. Ancak bazı durumlarda bunu yapamayabiliriz. Değişken içindeki metin parçası cümle içinde kulanıldığında bir yerde doğruyken başka bir yerde imla hatasına yol açabilir. Böyle bir durumdan şüphe duyarsanız mevcut HTML belgeye bakıp ne yapacağınıza kendiniz karar vermelisiniz. XML belgeyle ilişkili HTML belgeye, genellikle, XML belgenin kök etiketindeki xml:id değerinin sonuna .html veya .php getirerek ulaşabilirsiniz.
Tırnak karakteri yerine ' kullanılmışsa siz de onu kullanın. Sizin cümle içinde tek tırnak imi kullanmanız gerekirse zor gelmeyecekse yine ' kullanın. Böylece `' gibi farklı tırnak imleri yerine tek bir tırnak imi kullanmış oluruz. Ayrıca XML belgelerin HTML veya PHP'ye dönüştürülmesi sırasında olası bir tırnak ayırma hatasını da önlemiş oluruz. Bu durum belgelerin kılavuz sayfaları üretilirken bilhassa önem kazanmaktadır. Kılavuz (man) sayfalarında ' iminden başkası (' olur, kendileri) görüntülenmez. Yani ' yerine başka bir tırnak imi kullanmışsanız kılavuz sayfasında o tırnağı bulamayabilirsiniz.
Çeviri bittikten sonra güncelleme satırındaki 'wip' dizgesini 'ready' yapmayı unutmayın.
Linux kullananların çeviriyi kate üzerinde yapmasını öneririm. XML dosyaları renklendirdiğinden çeviri daha kolay olur. Ayrıca XML dosyanın geçerliliğini de kate'e sınatabilirsiniz. Bazı etiketleri yanlışlıkla silerseniz, depoya hatalı dosya teslim etmekten kurtulabilirsiniz.
Ama siz siz olun buna da fazla güvenmeyin. Çünkü kate DTD ile ilgili hatalara siz zorlamadıkça bakmaz. Son olarak dosyayı teslim etmeden önce doc-tr/doc-base dizininde şu komutunu kullanın:
$ php configure.php --with-lang=tr
Belgenizde kate'in saptayamadığı bir hata varsa bu komut size bilgi verir. Komut hata vermemişse ve bir SVN hesabınız varsa dosyayı depoya gönderebilirsiniz, SVN hesabınız yoksa dosyayı ekip liderine göndermelisiniz. Verdiği hatayı nasıl gidereceğinizi bilmiyorsanız listedekilere sorunuz. (Burada artık esr'nin ünlü belgesinden söz etmeyelim.) Hatalı dosyayı bana gönderebilirsiniz ama ASLA ve ASLA depoya teslim etmeyin. Bunu yaparsanız, site derlenemez ve dilimizi yine desteklenmeyen diller arasında buluruz. Unutmayın sizler bir programlama dilinin belgesini çeviriyorsunuz. Hele SVN hesabı olanlardan böyle hatalar hiç beklenmiyor. Bu bakımdan böyle bir durumun süreklilik kazanması halinde PHP ekibi hakkımızda ne karar verirse haklıdır.
*********************
Aşağıda İngilizce terimlerin bu çeviride kullandığımız Türkçe karşılıkları yazılmıştır.
AMACIMIZ AYNI TERİMLERİ KULLANMAK, OKUYUCU FARKLI TERİMLERLE KAVRAM KARGAŞASI
İÇİNDE BIRAKMAMAKTIR.
================================================
_ Altçizgi imi & Ve imi Abstract Metin için "Özet" ifadeler için "soyut" veya "mutlak" Argument Değiştirge Array Dizi Associative Array İlişkisel Dizi Attribute Öznitelik Authentication Kimlik doğrulama Authorization Yetkilendirme Automatically Özdevinimli olarak Backslash Ters bölü Binary Programsa kastedilen "çalıştırılabilir", kendisi bir veri türü ise çevrilmez, veri türünü niteliyorsa "ikil", bir işleci niteliyorsa "iki terimli". Bitwise Bitsel Boolean Kendisi veri türü ise çevrilmez. Türü niteliyorsa "mantıksal" Built-in Yerleşik Callback Geriçağırım Class Sınıf Compile Derleme Configuration Yapılandırma Constants Sabitler (Değişmezler değil!) Control Structure Denetim Yapısı Default Öntanımlı Detail Ayrıntı (lütfen "detay" diye çevirmeyin) Digest Özet Directive Yönerge double quote çift tırnak " Dynamically Devingen olarak Escape Escape tuşu için çevrilmez. Escape character Önceleme karakteri Exception İstisna Executable Çalıştırılabilir Extention Eklenti Float Gerçek sayı, kayan noktalı sayı Form Form Function İşlev Idle Boşakoşum Include dahil etme Index (diziler için) indis Initialize İlklendirmek Instantiate Örnekleme (sınıfın nesnel bir örneğini oluşturma) Interpreter Yorumlayıcı integer tamsayı Label Yafta Matrix Dizey Method Yöntem mixed karışık Module Modül Multithread Çok evreli Multibyte Çok baytlı Object Nesne Operand Terim Operator İşleç Original Özgün Outputs Çıktılar Override Geçersiz kılmak Parameter Değiştirge Parse error Çözümleme hatası Parser Çözümleyici Pass into İçe aktarmak Pointer Fare oku sözkonusu ise "imleç", C tarzı ise "gösterici" Predefined Önceden tanımlanmış Procedure Yordam Protocol Protokol Ouery string Sorgu dizgesi Reference gönderim, atıf yapmak Regular expression Düzenli ifade Resource Özkaynak root user root kullanıcı (Linux'ta en yetkili kullanıcı root'dur). Runtime Çalışma anı Scalar Sayıl Scope Etki Alanı Serialize Dizgileştirme Server Sunucu single quote tek tırnak ' Slash Bölü imi Static Duruk Statement Deyim String Dizge Script Betik Scripting Kodlama, kod yazma Ternary Üç terimli Thread Evre Tag İmlenim dilleri (*ML) için "etiket" Type "Tür" veya "veri türü" Unary Tek terimli Unserialize Nesneleştirme Validation Geçerlilik Variable Değişken Vector Yöney Web Server HTTP Sunucusu Widget Gereç Version.Revision.Patch Biz bunun tamamına ve parçalarına sürüm numarası diyoruz. Bu kılavuzun okuyucusu için sürüm numarasını oluşturan parçaların isimlerinin bir önemi olmayacaktır. ================================================