WordPress – Tema Türkçeleştirme nasıl yapılır?

guclusat

Tanınmış Üye
Süper Moderatör
WordPress 2.3.1 güncellemesi yaptığınızı yani WordPress’in 2.3.1 sürümünün Türkçe versiyonunu kullandığımızı varsayıyorum. Öncelikli işimiz kendimize uygun bir tema seçmek. WordPress 2.3 ile gelen bazı özellikler (etiket bulutu başta olmak üzere) temaların da temelde değişmelerine yol açtı. O yüzden WordPress 2.3 ve sonrasını kullanıyorsak bu sürüme uygun temaları seçmemiz gerekiyor. WordPress 2.3 ve üzeri sürümler için uygun temaları “Tema Uyumluluk” listesinden bulabilirsiniz. Öncelikli işimiz kendimize uygun bir tema seçmek demiştik. Tema Uyumluluk listesini açıyoruz. A-Z arası (Compatible WordPress 2.3 Themes) ilk bölüm WordPress 2.3 ve üzeri için tam uyumlu. 2. kısımdaki listede ise bazı sorunlar olmasına rağmen çalışan temaları göstermekte. Biz sorun çıkmasın diye ilk kısımdan seçiyoruz.
tema-turkcelestirme-12.jpg
Liste üzerinde seçip te yeni pencerede açtığınız her sayfada bir deneme linki bir de indirme linki olacaktır. Temayı deneyip beğenirseniz indirme linklerinden temayı indiriyoruz. Ben Türkçeleştirme işlemini anlatmak için Blog Oh! Blog – WordPress Big Blue temasını seçtim ve indirdim. Sıkıştırılmış dosyayı açtığımda aşağıdaki resimdeki dosyalar çıktı.
tema-turkcelestirme-2.jpg
İndirdiğimiz tema klasörünü bir FTP programı yardımıyla WordPress kurulu olan dizinimizde wp-content / themes klasörüne yüklüyoruz. İşin ilk kısmı tamamlandı. WordPress 2.3.1 temamızı seçtik, beğendik, indirdik, sıkıştırılmış dosyayı açtık, klasörü WordPress kurulu olan sitemizin tema dizininine yükledik. Daha sonra WordPress’in yönetici paneline giriş yapıyoruz ve yönetim panelinden görünüm sekmesine tıklatıp temalarımıza göz atıyoruz. Yeni yüklediğimiz İngilizce temamızın o listede olması gerekiyor. Onun üzerine tıklayarak aktif hale getiriyoruz.
tema-turkcelestirme-4.jpg
Aktif hale getirdikten sonra sayfamızı bir kez açıp İngilizce olsa da çalışıp çalışmadığına hataların olup olmadığına bakıyoruz. Eğer hata görünmüyorsa temamızı Türkçeleştirme işlemine geçebiliriz. Bunun için Görünüm sekmesindeki Tema Editörü yazan sekmeye tıklıyoruz. Karşımıza aşağıdaki gibi bir pencere gelecek.
Yeni açılan pencerede sağ taraftaki listedeki dosyalar temamızın dosyaları. Normal bir temada olması gereken dosyalar; Stil Sayfası, Arama Sonuçları, Arşiv, Tekil Yazı, Fonksiyonlar, Arşivler, Yorumlar, Yan Menü, Sayfa Şablonu, Ana İndeks Şablonu, Üst Kısım ve Alt Kısım’dan oluşur. Stil Sayfası üzerinden henüz bir değişiklik yapmamız gerekmiyor. O yüzden sağ taraftaki listede Stil Sayfası yazan yerden hemen sonraki dosyayla işe başlıyoruz.
Tema Türkçeleştirirken dikkat etmemiz gereken şeyleri şöyle sıralayabiliriz. Tema dosyaları içerisinde bulunan kod dizilimlerini bozmak yanlış yerlerde yanlış noktalama işaretleri kullanmak sistemin bozulmasına yol açabilir. Böyle bir durumda sayfanızı açtığınızda garip hatalar alırsınız. O yüzden her sayfayı Türkçeleştirip kaydettiğinizde sayfanızın çalışıp çalışmadığını kontrol ediniz.
<?php ile başlayan yerlere fazla dikkat etmeniz gerekir. <?php ile ?>Arasında kalan yerlerde yapacağınız değişikliklerde kullanacağınız noktalama işaretleri sistemi bozabilir.
Eğer bir sorunla karşılaşırsanız bilgisayarınızda yüklü olan temanın orijinalindeki dosyaları hatanın olduğu dosya ile değiştirebilirsiniz. Bunun için hatalar hangi sayfada değişiklik yaptığınızda ortaya çıktıysa o dosyanın orijinalindeki karşılığını tema klasörüne geri kopyalamanız gerekir. Bunun için şu isimlere karşılık gelen dosyaları bilmeniz gerekir.
Stil Sayfası : style.css – Sayfanızdaki renklerin, resimlerin, yazı stillerinin neler olduğunu belirten şablon dosyası.
Arama Sonuçları : search.php – WordPress üzerinde arama yaptığınızda gelecek sonuç dosyası.
Archives : archives.php – Günlük, haftalık, aylık gibi süreli arşivlerin, yazar arşivlerinin olduğu dosya.
Tekil Yazı : single.php – Bir yazının başlığına tıkladığınızda karşınıza gelecek tek yazı dosyası.
Fonksiyonlar : functions.php – WordPress ile ilgili fonksiyonların olduğu dosya (genelde bunu kurcalamazsınız)
Arşivler : archive.php – Tekil Arşiv dosyası.
Yorumlar : comments.php – Yorumların olduğu dosya.
Yan Menü : sidebar.php – Yan menülerin çalıştığı dosya
Sayfa Şablonu : page.php – Sayfa adı verilen özel oluşturulmuş içeriğin bulunduğu dosya.
Arama : searchform.php – Arama kutucuğunun bulunduğu dosya.
Ana İndeks Şablonu : index.php – WordPress sayfanız ilk açıldığında karşılaşılan dosya.
Alt kısım : footer.php – Sayfanın en alt kısmındaki genelde bilgi amaçlı kullanılan sayfanın dosyası.
Üst kısım : header.php – Sayfanın en üst kısmındaki gerekli kodların bulunduğu dosya.
WordPress’in çalışma prensibi basittir. Yukarıda sıraladığımız dosyalar her zaman sabittir. Ve içerilerindeki döngüler sayesinde veri tabanından aldığı içeriği yukarıdaki bu dosyaların arasına, içerisine serpiştirerek bize bir bütün olarak sunar. Tema Türkçeleştirirken veya düzenlerken dikkat etmemiz gereken bu döngülere zarar vermemektir. Döngüler çoğunlukla php kod dizilimiyle yazıldığı için az çok ta olsa php dilinden anlamakta yarar var. Neyse dönelim Türkçeleştirme işlemine.
Stil sayfası sadece yazı fontu, rengi, başlık resmi gibi görsel öğelerin bilgilerini içerdiği için Türkçeleştirmede çok ta gerekli değil. O yüzden arama sonuçlarından başlıyoruz. ya da sizde sıralama nasılsa o şekilde başlıyoruz. Temalar genelde birbirine benzediği için kullanılan kodlamada aşağı yukarı aynı olacaktır. Ama tekrar söyleyeyim her değişiklik yapıp kaydettiğinizde sayfanızı deneyin ve hata verirse hatanın olduğu dosyayı gerekli dizine tekrar kopyalayın.
Arama Sonuçları – search.php
<h2 class=”pagetitle”>Search Results</h2> veya <h1 class=”pagetitle”>Search Results</h1> gibi h1,h2,h3 ile imlenmiş yazılar genelde başlık olarak nitelendirilmektedir. Ve arasında kalan yazılar olduğu gibi görüntülenir. O yüzden istediğimiz gibi değiştirebiliriz. “Search Results” yazan yere “Arama Sonuçları” yazabiliriz.Hemen biraz altında yani sayfa başlığını yazdıktan sonra sayfa içeriğini oluşturacak döngü gelir.
<h3 id=”post-<?php the_ID(); ?>”><a href=”<?php the_permalink() ?>” rel=”bookmark” title=”Permanent Link to <?php the_title(); ?>“><?php the_title(); ?></a></h3> gibi…
Şimdi az önce bahsettiğim h1,h2,h3 konusunda olduğu gibi bu döngüde de başlık olarak imlenmiş yazımız. Ama çok daha karmaşık. Çünkü 2 kere dikkat etmemiz gereken <?php ?> ler oldukça fazla var. Paniklemiyoruz. bizim değiştirmemiz gereken yer title etiketi sadece.. title etiketi şu demek oluyor. Bir bağlantının üzerine geldiğinizde hani küçük bir kutucuk açılır ve o bağlantı hakkında bize kısa bir bilgi verir ya. O bilgi title etiketi ile sağlanır. Örneğin sayfanızda “WordPress Tema Türkçeleştirme” başlıklı bir yazı var. Başlığın üzerine geldiğinizde “WordPress Tema Türkçeleştirme için kalıcı bağlantı” yazar… bahsettiğim title etiketi bunu sağlıyor. Nasıl mı? şimdi yukarıdaki örnekte title=”Permanent Link to <?php the_title(); ?>“> kısmı var. “Permanent Link” bizde tam karşılığı olmasa da “Kalıcı Bağlantı” olarak çevrilmiş. Şimdi title=”Kalıcı Bağlantı to <?php the_title(); ?>”> olursa yazdığımız, sayfamızda başlığın üzerine geldiğimizde “Kalıcı Bağlantı to WordPress Tema Türkçeleştirme” yazacak. O yüzden ne yapıyoruz title=”Permanent Link to <?php the_title(); ?>“> olan yeri title=”<?php the_title(); ?> için kalıcı bağlantı“> olarak değiştiriyoruz. Sonuç olarak sayfamız üzerinde başlığın üzerine geldiğimizde karşımıza “WordPress Tema Türkçeleştirme için kalıcı bağlantı” olarak gelecek. Tırnaklara ve yerlerine çok dikkat edin.
<p class=”postmetadata”>Posted in <?php the_category(‘, ‘)?> | <?php edit_post_link(‘Edit‘, ”, ‘ | ‘); ?> <?php comments_popup_link(‘No Comments »’, ‘1 Comment »’, ‘% Comments »’); ?></p>​
yazan kısıma geldik. Buradaki yazı ise her yazımızın altında çıkan “şu kategoride yazılmış, şu kadar yorum almış” vs. bilgisi.. Burada Türkçeleştirmemiz gereken yerler şöyle,
<p class=”postmetadata”><?php the_category(‘, ‘) ?> Kategorisinde yazılmış | <?php edit_post_link(‘Düzenle‘, ”, ‘ | ‘); ?> <?php comments_popup_link(‘Yorum Yok »’, ‘1 Yorum »’, ‘% Yorum »’); ?></p>​
yine tırnaklara dikkat ediyoruz. yine değiştirirken Posted in <?php the_category(‘, ‘) ?> kısmında anlam bütünlüğünü korumak için <?php the_category(‘, ‘) ?> Kategorisinde yazılmış dedik.
Devam ediyoruz.
<div class=”navigation”>
<div class=”alignleft”><?php next_posts_link(‘« Previous Entries‘) ?></div>
<div class=”alignright”><?php previous_posts_link(‘Next Entries »’) ?></div>
</div>​
bölümünü şu şekilde değiştiriyoruz.
<div class=”navigation”>
<div class=”alignleft”><?php next_posts_link(‘« Önceki Yazılar‘) ?></div>
<div class=”alignright”><?php previous_posts_link(‘Sonraki Yazılar »’) ?></div>
</div>​
tırnaklara yine dikkat.
<div class=”entry”>
<h2 class=”center”>No posts found. Try a different search?</h2>
</div>​
kısmını ise
<div class=”entry”>
<h2 class=”center”>Sonuç bulunamadı. Farklı bir arama deneyiniz</h2>
</div>​
şeklinde değiştiriyoruz. Üç aşağı beş yukarı arama sonuç sayfasını bu şekilde Türkçeleştirebilirsiniz. Değiştirme tamamlandıktan sonra aşağıdaki “Dosyayı Güncelle” butonuna tıklıyoruz. Ve sayfa güncellendikten sonra sitemizi deniyoruz.
Archives – archives.php
Bu dosya için yapacağımız çok fazla değişiklik yok.
<h2>Archives by Month:</h2> yerine <h2>Aylık Arşiv</h2>
<h2>Archives by Subject:</h2> yerine <h2>Konuya Göre Arşiv:</h2> yazabiliriz.
kaydedip sayfamızı deniyoruz.
Tekil Yazı – single.php
En karışık yerlerden biri olarak görünebilir. Ama yine tırnak işaretlerine ve kodlara dikkat ederek yaparsak bir sorun çıkmaz.
<div id=”content”>​
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<div class=”entry”>
<div class=”post” id=”post-<?php the_ID(); ?>”>
<h2><a href=”<?php echo get_permalink() ?>” rel=”bookmark” title=”Permanent Link: <?php the_title(); ?>“><?php the_title(); ?></a></h2>
<small><?php the_time(‘F jS, Y’) ?> | by <?php the_author() ?> | <?php if(function_exists(‘the_views’)) { the_views(); } ?></small>​
<?php the_content(‘<p class=”serif”>Read the rest of this entry »</p>’); ?>​
<?php wp_link_pages(array(‘before’ => ‘<p><strong>Pages:</strong> ‘, ‘after’ => ‘</p>’, ‘next_or_number’ => ‘number’)); ?>​
<?php if ( function_exists(‘the_tags’) ) {
the_tags(‘<p>Tags: ‘, ‘, ‘, ‘</p>’); } ?>​
</div>​
olan orijinal kodu şu şekilde değiştiriyoruz.
<div id=”content”>​
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<div class=”entry”>
<div class=”post” id=”post-<?php the_ID(); ?>”>
<h2><a href=”<?php echo get_permalink() ?>” rel=”bookmark” title=”<?php the_title(); ?> için kalıcı bağlantı“><?php the_title(); ?></a></h2>
<small><?php the_time(‘j F Y’) ?> tarihinde | <?php the_author() ?> tarafından yazılmış | <?php if(function_exists(‘the_views’)) { the_views(); } ?></small>​
<?php the_content(‘<p class=”serif”>Okumaya devam et »</p>’); ?>​
<?php wp_link_pages(array(‘before’ => ‘<p><strong>Sayfalar:</strong> ‘, ‘after’ => ‘</p>’, ‘next_or_number’ => ‘number’)); ?>​
<?php if ( function_exists(‘the_tags’) ) {
the_tags(‘<p>Etiketler: ‘, ‘, ‘, ‘</p>’); } ?>​
</div>​
Dikkat ederseniz <?php the_time(‘F jS, Y’) ?> yazan yeri <?php the_time(‘j F Y’) ?> olarak değiştirdik. Bunun nedeni Aralık 3rd, 2007 yerine 3 Aralık 2007 yazması için değiştirdik. Son olarak ta
<p>Sorry, no posts matched your criteria.</p>​
yazan yeri​
<p>Üzgünüm ama aramanızla eşleşen bir yazı bulunmuyor</p>​
olarak değiştiriyoruz.​
Dosyayı güncelleyip yine test ediyoruz.
Fonksiyonlar - functions.php
dosyasıyla karmaşık bir tema seçmediysek işimiz genelde olmuyor.
Arşivler - archive.php
Arşivler dosyasını Türkçeleştirmek için;
<div id=”content”>​
<?php if (have_posts()) : ?>​
<?php $post = $posts[0]; // Hack. Set $post so that the_date() works. ?>
<?php /* If this is a category archive */ if (is_category()) { ?>
<h2 class=”pagetitle”>Archive for the ‘<?php single_cat_title(); ?>’ Category</h2>​
<?php /* If this is a daily archive */ } elseif (is_day()) { ?>
<h2 class=”pagetitle”>Archive for <?php the_time(‘F jS, Y’); ?></h2>​
<?php /* If this is a monthly archive */ } elseif (is_month()) { ?>
<h2 class=”pagetitle”>Archive for <?php the_time(‘F, Y’); ?></h2>​
<?php /* If this is a yearly archive */ } elseif (is_year()) { ?>
<h2 class=”pagetitle”>Archive for <?php the_time(‘Y’); ?></h2>​
<?php /* If this is an author archive */ } elseif (is_author()) { ?>
<h2 class=”pagetitle”>Author Archive</h2>​
<?php /* If this is a paged archive */ } elseif (isset($_GET['paged']) && !empty($_GET['paged'])) { ?>
<h2 class=”pagetitle”>Blog Archives</h2>​
<?php } ?>​
<?php while (have_posts()) : the_post(); ?>
<div class=”entry”>
<h3 id=”post-<?php the_ID(); ?>”><a href=”<?php the_permalink() ?>” rel=”bookmark” title=”Permanent Link to <?php the_title(); ?>“><?php the_title(); ?></a></h3>
<small><?php the_time(‘l, F jS, Y’) ?> <?php if(function_exists(‘the_views’)) { the_views(); } ?></small>​
<br /><br /><?php the_content_rss(”, TRUE, ”, 50); ?><br /><br />​
<p class=”postmetadata”>Posted in <?php the_category(‘, ‘) ?> | <?php edit_post_link(‘Edit‘, ”, ‘ | ‘); ?> <?php comments_popup_link(‘No Comments »’, ‘1 Comment »’, ‘% Comments »’); ?></p>​
</div>​
<?php endwhile; ?>​
<div class=”navigation”>
<div class=”alignleft”><?php next_posts_link(‘« Previous Entries‘) ?></div>
<div class=”alignright”><?php previous_posts_link(‘Next Entries »’) ?></div>
</div>​
<?php else : ?>
<div class=”entry”>
<h2 class=”center”>Not Found</h2>
</div>​
olarak yazılmış orijinal kodu
<div id=”content”>​
<?php if (have_posts()) : ?>​
<?php $post = $posts[0]; // Hack. Set $post so that the_date() works. ?>
<?php /* If this is a category archive */ if (is_category()) { ?>
<h2 class=”pagetitle”>‘<?php single_cat_title(); ?>’ Kategorisi Arşivi</h2>​
<?php /* If this is a daily archive */ } elseif (is_day()) { ?>
<h2 class=”pagetitle”><?php the_time(‘j F Y’); ?> Arşivi</h2>​
<?php /* If this is a monthly archive */ } elseif (is_month()) { ?>
<h2 class=”pagetitle”><?php the_time(‘F, Y’); ?> Arşivi</h2>​
<?php /* If this is a yearly archive */ } elseif (is_year()) { ?>
<h2 class=”pagetitle”><?php the_time(‘Y’); ?> Arşivi</h2>​
<?php /* If this is an author archive */ } elseif (is_author()) { ?>
<h2 class=”pagetitle”>Yazar Arşivi</h2>​
<?php /* If this is a paged archive */ } elseif (isset($_GET['paged']) && !empty($_GET['paged'])) { ?>
<h2 class=”pagetitle”>Blog Arşivi</h2>​
<?php } ?>​
<?php while (have_posts()) : the_post(); ?>
<div class=”entry”>
<h3 id=”post-<?php the_ID(); ?>”><a href=”<?php the_permalink() ?>” rel=”bookmark” title=”<?php the_title(); ?> için kalıcı bağlantı“><?php the_title(); ?></a></h3>
<small><?php the_time(‘j F Y’) ?> <?php if(function_exists(‘the_views’)) { the_views(); } ?></small>​
<br /><br /><?php the_content_rss(”, TRUE, ”, 50); ?><br /><br />​
<p class=”postmetadata”><?php the_category(‘, ‘) ?> kategorisinde yazılmış | <?php edit_post_link(‘Düzenle‘, ”, ‘ | ‘); ?> <?php comments_popup_link(‘Yorum Yok »’, ‘1 Yorum »’, ‘% Yorum »’); ?></p>​
</div>​
<?php endwhile; ?>​
<div class=”navigation”>
<div class=”alignleft”><?php next_posts_link(‘« Önceki Yazılar‘) ?></div>
<div class=”alignright”><?php previous_posts_link(‘Sonraki Yazılar »’) ?></div>
</div>​
<?php else : ?>
<div class=”entry”>
<h2 class=”center”>Bulunamadı</h2>
</div>​
şeklinde değiştiriyoruz. yine tırnak, çift tırnak gibi noktalama işaretlerine dikkat ederek.
Dosyayı güncelleyip deniyoruz.
 
Yorumlar – comments.php
Yorumlar tema dosyasını Türkçeleştirmek için;
<?php // Do not delete these lines
if (‘comments.php’ == basename($_SERVER['SCRIPT_FILENAME']))
die (‘Please do not load this page directly. Thanks!‘);​
if (!empty($post->post_password)) { // if there’s a password
if ($_COOKIE['wp-postpass_' . COOKIEHASH] != $post->post_password) { // and it doesn’t match the cookie
?>​
<p class=”nocomments”>This post is password protected. Enter the password to view comments.<p>​
<?php
return;
}
}​
/* This variable is for alternating comment background */
$oddcomment = ‘odd’;
?>​
<!– You can start editing here. –>​
<div class=”boxcomments”>​
<?php if ($comments) : ?>​
<?php​
/* Count the totals */
$numPingBacks = 0;
$numComments = 0;​
/* Loop through comments to count these totals */
foreach ($comments as $comment) {
if (get_comment_type() != “comment”) { $numPingBacks++; }
else { $numComments++; }
}​
?>​
<?php​
/* This is a loop for printing comments */
if ($numComments != 0) : ?>​
<ol class=”commentlist”>​
<li class=”commenthead”><h2 id=”comments”><?php comments_number(‘No Responses’, ‘One Response’, ‘% Responses’ );?> to “<?php the_title(); ?>”</h2></li>​
<?php foreach ($comments as $comment) : ?>
<?php if (get_comment_type()==”comment”) : ?>​
<li class=”<?php if ( $comment->comment_author_email == get_the_author_email() ) echo ‘mycomment’; else echo $oddcomment; ?>” id=”comment-<?php comment_ID() ?>”>​
<p style=”margin-bottom:5px;”>By <strong><?php comment_author_link() ?></strong> on <a href=”#comment-<?php comment_ID() ?>” title=”"><?php comment_date(‘M j, Y’) ?></a> | <a href=”#respond” mce_href=”#respond”>Reply</a><?php edit_comment_link(‘Edit‘,’ | ‘,”); ?></p>
<?php if ($comment->comment_approved == ’0′) : ?>
<em>Your comment is awaiting moderation.</em>
<?php endif; ?>
<?php comment_text() ?>
</li>​
<?php /* Changes every other comment to a different class */
if (‘alt’ == $oddcomment) $oddcomment = ”;
else $oddcomment = ‘odd’;
?>​
<?php endif; endforeach; ?>​
</ol>​
<?php endif; ?>​
<?php​
/* This is a loop for printing trackbacks if there are any */
if ($numPingBacks != 0) : ?>​
<ol class=”tblist”>​
<li style=”background:transparent;padding-left:0;”><h2 id=”trackbacks”><?php _e($numPingBacks); ?> Trackback(s)</h2></li>​
<?php foreach ($comments as $comment) : ?>
<?php if (get_comment_type()!=”comment”) : ?>​
<li id=”comment-<?php comment_ID() ?>”>
<?php comment_date(‘M j, Y’) ?>: <?php comment_author_link() ?>
<?php if ($comment->comment_approved == ’0′) : ?>
<em>Your comment is awaiting moderation.</em>
<?php endif; ?>
</li>​
<?php if(‘odd’==$thiscomment) { $thiscomment = ‘even’; } else { $thiscomment = ‘odd’; } ?>​
<?php endif; endforeach; ?>​
</ol>​
<?php endif; ?>​
<?php else :​
/* No comments at all means a simple message instead */
?>​
<?php endif; ?>​
<?php if (comments_open()) : ?>​
<?php if (get_option(‘comment_registration’) && !$user_ID ) : ?>
<p id=”comments-blocked”>You must be <a href=”<?php echo get_option(‘siteurl’); ?>/wp-login.php?redirect_to=
<?php the_permalink(); ?>”>logged in</a> to post a comment.
</p>
<?php else : ?>​
<form action=”<?php echo get_option(‘siteurl’); ?>/wp-comments-post.php” method=”post” id=”commentform”>​
<h3 id=”respond”>Post a Comment</h3>​
<?php if ($user_ID) : ?>​
<p>You are logged in as <a href=”<?php echo get_option(‘siteurl’); ?>/wp-admin/profile.php”>
<?php echo $user_identity; ?></a>. To logout, <a href=”<?php echo get_option(‘siteurl’); ?>/wp-login.php?action=logout” title=”Log out of this account”>click here</a>.
</p>​
<?php else : ?>​
<p><label for=”author”>Name<?php if ($req) _e(‘ (required)’); ?></label>
<input type=”text” name=”author” id=”author” value=”<?php echo $comment_author; ?>” size=”22″ tabindex=”1″ /></p>​
<p><label for=”email”>E-mail (will not be published)<?php if ($req) _e(‘ (required)’); ?></label>
<input type=”text” name=”email” id=”email” value=”<?php echo $comment_author_email; ?>” tabindex=”2″ size=”22″ /></p>​
<p><label for=”url”>Website</label>
<input type=”text” name=”url” id=”url” value=”<?php echo $comment_author_url; ?>” size=”22″ tabindex=”3″ /></p>​
<?php endif; ?>​
<p><textarea name=”comment” id=”comment” cols=”5″ rows=”10″ tabindex=”4″></textarea></p>​
<p><input name=”submit” type=”submit” id=”submit” tabindex=”5″ value=”Submit Comment” />
<input type=”hidden” name=”comment_post_ID” value=”<?php echo $id; ?>” /></p>​
<?php do_action(‘comment_form’, $post->ID); ?>​
</form>​
<?php endif; // If registration required and not logged in ?>​
<?php else : // Comments are closed ?>
<p id=”comments-closed”>Sorry, comments for this entry are closed at this time.</p>
<?php endif; ?></div>​
olarak yazılmış kodu aşağıdaki şekilde değiştiriyoruz.
<?php // Do not delete these lines
if (‘comments.php’ == basename($_SERVER['SCRIPT_FILENAME']))
die (‘Bu sayfayı doğrudan yüklemeyiniz!‘);​
if (!empty($post->post_password)) { // if there’s a password
if ($_COOKIE['wp-postpass_' . COOKIEHASH] != $post->post_password) { // and it doesn’t match the cookie
?>​
<p class=”nocomments”>Bu yazı parola korumalıdır. Yorumları görebilmek için şifreyi girmeniz gerekmektedir..<p>​
<?php
return;
}
}​
/* This variable is for alternating comment background */
$oddcomment = ‘odd’;
?>​
<!– You can start editing here. –>​
<div class=”boxcomments”>​
<?php if ($comments) : ?>​
<?php​
/* Count the totals */
$numPingBacks = 0;
$numComments = 0;​
/* Loop through comments to count these totals */
foreach ($comments as $comment) {
if (get_comment_type() != “comment”) { $numPingBacks++; }
else { $numComments++; }
}​
?>​
<?php​
/* This is a loop for printing comments */
if ($numComments != 0) : ?>​
<ol class=”commentlist”>​
<li class=”commenthead”><h2 id=”comments”>“<?php the_title(); ?>” için yapılmış <?php comments_number(‘yorum yok’, ’1 yorum’, ‘% yorum’ );?></h2></li>​
<?php foreach ($comments as $comment) : ?>
<?php if (get_comment_type()==”comment”) : ?>​
<li class=”<?php if ( $comment->comment_author_email == get_the_author_email() ) echo ‘mycomment’; else echo $oddcomment; ?>” id=”comment-<?php comment_ID() ?>”>​
<p style=”margin-bottom:5px;”><strong><?php comment_author_link() ?></strong> tarafından <a href=”#comment-<?php comment_ID() ?>” title=”"><?php comment_date(‘M j, Y’) ?></a> tarihinde yapılmış yorum. | <a href=”#respond” mce_href=”#respond”>Yanıtla</a><?php edit_comment_link(‘Düzenle’,’ | ‘,”); ?></p>
<?php if ($comment->comment_approved == ’0′) : ?>
<em>Yorumunuz Onay Bekliyor.</em>
<?php endif; ?>
<?php comment_text() ?>
</li>​
<?php /* Changes every other comment to a different class */
if (‘alt’ == $oddcomment) $oddcomment = ”;
else $oddcomment = ‘odd’;
?>​
<?php endif; endforeach; ?>​
</ol>​
<?php endif; ?>​
<?php​
/* This is a loop for printing trackbacks if there are any */
if ($numPingBacks != 0) : ?>​
<ol class=”tblist”>​
<li style=”background:transparent;padding-left:0;”><h2 id=”trackbacks”><?php _e($numPingBacks); ?> Geri izlemeler</h2></li>​
<?php foreach ($comments as $comment) : ?>
<?php if (get_comment_type()!=”comment”) : ?>​
<li id=”comment-<?php comment_ID() ?>”>
<?php comment_date(‘M j, Y’) ?>: <?php comment_author_link() ?>
<?php if ($comment->comment_approved == ’0′) : ?>
<em>Yorumunuz Onay Bekliyor.</em>
<?php endif; ?>
</li>​
<?php if(‘odd’==$thiscomment) { $thiscomment = ‘even’; } else { $thiscomment = ‘odd’; } ?>​
<?php endif; endforeach; ?>​
</ol>​
<?php endif; ?>​
<?php else :​
/* No comments at all means a simple message instead */
?>​
<?php endif; ?>​
<?php if (comments_open()) : ?>​
<?php if (get_option(‘comment_registration’) && !$user_ID ) : ?>
<p id=”comments-blocked”>Yorum yazabilmek için <a href=”<?php echo get_option(‘siteurl’); ?>/wp-login.php?redirect_to=<?php the_permalink(); ?>”>giriş</a> yapmanız gerekiyor.</p>
<?php else : ?>​
<form action=”<?php echo get_option(‘siteurl’); ?>/wp-comments-post.php” method=”post” id=”commentform”>​
<h3 id=”respond”>Yorum Ekle</h3>​
<?php if ($user_ID) : ?>​
<p><a href=”<?php echo get_option(‘siteurl’); ?>/wp-admin/profile.php”>
<?php echo $user_identity; ?></a> olarak giriş yapılmış. Çıkış yapmak için <a href=”<?php echo get_option(‘siteurl’); ?>/wp-login.php?action=logout” title=”Bu hesaptan çıkış yap”>buraya</a> tıklayın.
</p>​
<?php else : ?>​
<p><label for=”author”>Ad<?php if ($req) _e(‘ (gerekli)’); ?></label>
<input type=”text” name=”author” id=”author” value=”<?php echo $comment_author; ?>” size=”22″ tabindex=”1″ /></p>​
<p><label for=”email”>E-post (yayınlanmayacak)<?php if ($req) _e(‘ (gerekli)’); ?></label>
<input type=”text” name=”email” id=”email” value=”<?php echo $comment_author_email; ?>” tabindex=”2″ size=”22″ /></p>​
<p><label for=”url”>Site</label>
<input type=”text” name=”url” id=”url” value=”<?php echo $comment_author_url; ?>” size=”22″ tabindex=”3″ /></p>​
<?php endif; ?>​
<p><textarea name=”comment” id=”comment” cols=”5″ rows=”10″ tabindex=”4″></textarea></p>​
<p><input name=”submit” type=”submit” id=”submit” tabindex=”5″ value=”Yorumu Gönder” />
<input type=”hidden” name=”comment_post_ID” value=”<?php echo $id; ?>” /></p>​
<?php do_action(‘comment_form’, $post->ID); ?>​
</form>​
<?php endif; // If registration required and not logged in ?>​
<?php else : // Comments are closed ?>
<p id=”comments-closed”>Üzgünüm, bu yazıya yorumlar kapalı.</p>
<?php endif; ?></div>​
yorumlar sayfasını da Türkçeleştirdikten sonra dosyayı güncelleyip sayfamızda hata olup olmadığını deniyoruz.
Yan Menü – sidebar.php
Sidebar dosyalarını çevirmenize gerek yok. Nasıl olsa sürükle bırak yöntemiyle eklediğiniz “Widget” ların başlıklarını Türkçe yazabiliyorsunuz.
Sayfa Şablonu – page.php
eklediğiniz arşiv, iletişim, hakkında vs. gibi sayfaların şablonu oluyor. Standart bir page.php aşağıdaki şekildedir.
<?php get_header(); ?>​
<div id=”content”>
<div class=”entry”>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<div class=”post” id=”post-<?php the_ID(); ?>”>
<h2><?php the_title(); ?></h2>​
<?php the_content(‘<p class=”serif”>Read the rest of this page »</p>’); ?>​
<?php wp_link_pages(array(‘before’ => ‘<p><strong>Pages:</strong> ‘, ‘after’ => ‘</p>’, ‘next_or_number’ => ‘number’)); ?>​
</div>
</div>
<?php endwhile; endif; ?>
<?php edit_post_link(Edit this entry.’, ‘<p>’, ‘</p>’); ?>
</div>​
<?php get_sidebar(); ?>​
<?php get_footer(); ?>​
değiştirmemiz gereken yerler
<?php the_content(‘<p class=”serif”>Read the rest of this page »</p>’); ?>​
<?php the_content(‘<p class=”serif”>Devamı »</p>’); ?>​
<?php wp_link_pages(array(‘before’ => ‘<p><strong>Pages:</strong> ‘, ‘after’ => ‘</p>’, ‘next_or_number’ => ‘number’)); ?>​
<?php wp_link_pages(array(‘before’ => ‘<p><strong>Sayfalar:</strong> ‘, ‘after’ => ‘</p>’, ‘next_or_number’ => ‘number’)); ?>​
<?php edit_post_link(‘Edit this entry.‘, ‘<p>’, ‘</p>’); ?>​
<?php edit_post_link(‘Bu yazıyı düzenle.‘, ‘<p>’, ‘</p>’); ?>​
şeklinde olacaktır. page.php dosyasının son hali şu şekilde olacaktır.
<?php get_header(); ?>​
<div id=”content”>
<div class=”entry”>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<div class=”post” id=”post-<?php the_ID(); ?>”>
<h2><?php the_title(); ?></h2>​
<?php the_content(‘<p class=”serif”>Devamı »</p>’); ?>​
<?php wp_link_pages(array(‘before’ => ‘<p><strong>Sayfalar:</strong> ‘, ‘after’ => ‘</p>’, ‘next_or_number’ => ‘number’)); ?>​
</div>
</div>
<?php endwhile; endif; ?>
<?php edit_post_link(‘Bu yazıyı düzenle.‘, ‘<p>’, ‘</p>’); ?>
</div>​
<?php get_sidebar(); ?>​
<?php get_footer(); ?>​
WordPress Temamızın sayfa şablonu da Türkçeleşti. Sıra geldi searchform.php Arama dosyasına.
Arama – searchform.php
Çok fazla değişkenlik göstermeyen bu şablon dosyasında sadece değiştirmemiz gereken yerler şunlar;
<form method=”get” id=”searchform” action=”<?php bloginfo(‘url’); ?>/”>
<div><input type=”text” value=”<?php the_search_query(); ?>” name=”s” id=”s” />
<input type=”submit” id=”searchsubmit” value=”Search” />
</div>
</form>​
değiştirdikten sonra şu hali alacak;
<form method=”get” id=”searchform” action=”<?php bloginfo(‘url’); ?>/”>
<div><input type=”text” value=”<?php the_search_query(); ?>” name=”s” id=”s” />
<input type=”submit” id=”searchsubmit” value=”Ara” />
</div>
</form>​
Yine güncelleyip deniyoruz. Hemen ardından sıra “Ana İndeks Şablonu”nda.
Ana İndeks Şablonu – index.php
Çok fazla değişkenlik gösterebilir. Ama paniklemenize gerek yok. Değiştirilecek yerleri kendiniz bile tahmin edebilirsiniz artık.Tema dosyasının orijinali şu şekilde karşımıza gelmiş olsun;
<?php get_header(); ?>​
<div id=”content”>​
<?php if (have_posts()) : ?>​
<?php while (have_posts()) : the_post(); ?>
<div class=”entry”>
<div id=”post-<?php the_ID(); ?>”>
<h2><a href=”<?php the_permalink() ?>” rel=”bookmark” title=”Permanent Link to <?php the_title(); ?>“><?php the_title(); ?></a></h2>
<small><?php the_time(‘F jS, Y’) ?> <!– by <?php the_author() ?> –></small>​
<?php the_content(‘Read the rest of this entry »’); ?>​
<?php if ( function_exists(‘the_tags’) ) { the_tags(‘<p>Tags: ‘, ‘, ‘, ‘</p>’); } ?>
<p class=”postmetadata”>Posted in <?php the_category(‘, ‘) ?> | <?php edit_post_link(‘Edit‘, ”, ‘ | ‘); ?> <?php comments_popup_link(‘No Comments »’, ‘1 Comment »’, ‘% Comments »’); ?></p>​
</div></div>​
<?php endwhile; ?>​
<div class=”navigation”>
<div class=”alignleft”><?php next_posts_link(‘« Previous Entries‘) ?></div>
<div class=”alignright”><?php previous_posts_link(‘Next Entries »’) ?></div>
</div>​
<?php else : ?>
<div class=”entry”>
<h2>Not Found</h2>
Sorry, but you are looking for something that isn’t here.
</div>​
<?php endif; ?>​
</div>​
<?php get_sidebar(); ?>​
<?php get_footer(); ?>
değişiklik yaptıktan sonra şu hali alacak.
<?php get_header(); ?>​
<div id=”content”>​
<?php if (have_posts()) : ?>​
<?php while (have_posts()) : the_post(); ?>
<div class=”entry”>
<div id=”post-<?php the_ID(); ?>”>
<h2><a href=”<?php the_permalink() ?>” rel=”bookmark” title=”<?php the_title(); ?> için kalıcı bağlantı“><?php the_title(); ?></a></h2>
<small><?php the_time(‘j F Y’) ?></small>​
<?php the_content(‘Yazının devamı »’); ?>​
<?php if ( function_exists(‘the_tags’) ) { the_tags(‘<p>Etiketler: ‘, ‘, ‘, ‘</p>’); } ?>
<p class=”postmetadata”><?php the_category(‘, ‘) ?> kategorisinde yazılmış | <?php edit_post_link(‘Düzenle‘, ”, ‘ | ‘); ?> <?php comments_popup_link(‘Yorum Yok »’, ‘1 Yorum »’, ‘% Yorum »’); ?></p>​
</div></div>​
<?php endwhile; ?>​
<div class=”navigation”>
<div class=”alignleft”><?php next_posts_link(‘« Önceki Yazılar‘) ?></div>
<div class=”alignright”><?php previous_posts_link(‘Sonraki Yazılar »’) ?></div>
</div>​
<?php else : ?>
<div class=”entry”>
<h2>Bulunamadı</h2>
Üzgünüm ama aradığınız şey bulunamadı..
</div>​
<?php endif; ?>​
</div>​
<?php get_sidebar(); ?>​
<?php get_footer(); ?>​
Hepsi bu kadar. Yine dosyayı güncelleyip temanın hata verip vermeyeceğini deniyoruz.
Alt Kısım - footer.php
Sayfanın en altında yer alan bölümü oluşturan bu kısma “Alt kısım” veya “Footer” adı veriliyor. Bu bölgedeki değişikliği istediğiniz gibi yapabilirsiniz. Dikkat etmeniz gereken yine kod dizilimine ve döngüye zarar vermemek. Benim Türkçeleştirmek için seçtiğim temada alt kısım aşağıdaki gibi.
</div>
</div>
<div id=”eof”></div>
<div id=”footer”>
<div class=”footer”><?php bloginfo(‘name’); ?> is proudly powered by <a href=”http://wordpress.org/” mce_href=”http://wordpress.org/”>WordPress</a> <a href=”<?php bloginfo(‘rss2_url’); ?>”>Entries (RSS)</a> and <a href=”<?php bloginfo(‘comments_rss2_url’); ?>”>Comments (RSS)</a>. Theme by <a href=”http://www.blogohblog.com” mce_href=”http://www.blogohblog.com”>Bob</a>
<!– <?php echo get_num_queries(); ?> queries. <?php timer_stop(1); ?> seconds. –><?php wp_footer(); ?></div>
</div></body>
</html>​
ben bunu
</div>
</div>
<div id=”eof”></div>
<div id=”footer”>
<div class=”footer”><?php bloginfo(‘name’); ?> <a href=”http://wordpress.org/” mce_href=”http://wordpress.org/”>WordPress</a> üzerine kurulmuştur. Yazılar için <a href=”<?php bloginfo(‘rss2_url’); ?>”>RSS</a>, yorumlar için <a href=”<?php bloginfo(‘comments_rss2_url’); ?>”>RSS</a>. Tema <a href=”http://www.blogohblog.com” mce_href=”http://www.blogohblog.com”>Bob</a> tarafından tasarlanmıştır.
<!– <?php echo get_num_queries(); ?> queries. <?php timer_stop(1); ?> seconds. –><?php wp_footer(); ?></div>
</div></body>
</html>​
Şeklinde değiştiriyorum. Bu şablon dosyasını da güncelleyip kaydettikten sonra yine sayfamızın düzgün çalışıp çalışmadığını deniyoruz.
Üst kısım – header.php
Üst kısım üzerinde yapacağımız çok fazla değişiklik bulunmuyor. Ama yine de eğer varsa
<li><a href=”<?php bloginfo(‘url’); ?>”>Home</a></li>
yazan yeri
<li><a href=”<?php bloginfo(‘url’); ?>”>Anasayfa</a></li>
olarak değiştiriyoruz. Temanıza göre çeşitlilik gösterebilir üst kısım, Türkçeleştirmek için gerekli yerler varsa kendi hayal gücünüzü kullanarak bu işi yapabilirsiniz.
Bu dosyayı da kaydettikten sonra son bir kez sayfamızın çalışıp çalışmadığını deniyoruz.
Olası Karşılaşılacak Hatalar
Parse error: syntax error, unexpected T_STRING in /home/wwwvesaire/public_html/wp-content/themes/temaismi/index.php on line 26
Gibi bir hata alabilirsiniz.Sayfanızı denerken böyle bir hata aldığınızda hemen paniklemeyin. Yaptığınız hatanın nerede olduğu size bildiriliyor. ve diyor ki;
WordPress wp-content themes klasöründeki düzenlediğiniz temanın index.php dosyasının 26. satırında bir hata var… Ne yapıyoruz? Admin panelimiz açık olduğu için index.php yani anasayfa şablonu üzerinde 26. satırın 5-10 satır civarına göz atıp Türkçeleştirdiğimiz yerde bir tırnak unutup unutmadığımıza, yanlışlıkla silip silmediğimize göz atıyoruz. Eğer hatayı bulamamışsak bilgisayarımıza çok önce kaydettiğimiz temanın orijinal dosyasında yazanları olduğu gibi hatanın olduğu dosya içerisine yapıştırıyoruz. Yani yukarıdaki örnekte bize index.php de hata olduğunu söylüyorsa, yönetim panelinde tema üzerinde değişiklik yaptığımız Görünüm/Tema Editörü kısmında sağ taraftaki listeden index.php yi seçip içerisini bilgisayarımızdaki index.php dosyasının içerisindekilerle değiştiriyoruz. Eğer hata bize;
Parse error: syntax error, unexpected T_STRING in /home/wwwvesaire/public_html/wp-content/themes/temaismi/comments.php on line 11
şeklinde gelseydi bu durumda comments.php yani yorumlar şablonu üzerinde değişiklik yapmamız gerekecekti.
Bunun dışında karşılaşabileceğiniz bir hata bulunmuyor. Türkçeleştirme işlemini Yönetim Paneli/Görünüm/Tema Editörü aracılığıyla yaparsanız karakter problemi yaşamazsınız. Bu değişiklikleri bilgisayarınızda yapıp gerekli klasöre atarak yapacaksanız Türkçe karakterler bozulacaktır hatta sistemin işleyişini bile bozacaktır. Çünkü WordPress’iniz UTF8 karakter kodlamasını işleyecektir.Ama yine de “ben değişiklikleri dosyaları not defteriyle tek tek açıp yapacağım” derseniz; Türkçe karakterler yerine aşağıdaki şekilde yazılanları kullanmanız gerekecektir.
ö : Ö
ü : ü
ı : ı
ÅŸ : ş
Ö : ö
ç : ç
ÄŸ : ğ
yani Ö yerine ö kullanmanız gerekecektir. ö yerine ise Ö gibi. Eğer tüm Tema Türkçeleştirme işlemlerini düzgün yaptıysanız temanız sorunsuz çalışacaktır. Yine de unutmayın hatalar yaparak, deneme yanılma yoluyla öğrenmeniz çok çabuk olacaktır. Bir kalemde bunları yazabildim. Eğer merak ettiğiniz, takıldığınız, hatayla karşılaştığınız bir konu olursa buradan sorabilirsiniz. Birlikte cevap bulabiliriz… Umarım bu açıklama yardımcı olur.
 
Geri
Yukarı