GTranslate Hatalarına Son: WordPress İçin Özel Çeviri Sözlüğü Eklentisi (Kod Paylaşımı)

Otomatik çeviri araçları (GTranslate vb.) sitemizi onlarca dile saniyeler içinde çevirse de, bazen marka isimlerimizi veya sektörel terimlerimizi tanımayarak saçma sonuçlar verebiliyor. “Apple” kelimesini “Elma” olarak çevirmesi SEO ve marka algısı için bir kabus olabilir.

Çözüm:
Bugün sizlere, INFO Bilişim olarak geliştirdiğimiz ve hiçbir ek ücret ödemeden (GTranslate Ücretsiz Sürümde bile) kullanabileceğiniz bir eklentiyi paylaşıyoruz. Bu eklenti sayesinde:

Admin panelinden “Şu kelimeyi, şu dilde, şununla değiştir” diyebileceksiniz.

JSON formatıyla onlarca kelimeyi tek seferde yönetebileceksiniz.

Marka adınızı tüm dillerde koruyabileceksiniz.

Nasıl Kullanılır?

  • /wp-content/plugins/ klasörüne gtranslate-dictionary adında bir klasör açın.
  • İçine gtranslate-dictionary.php dosyasını oluşturup aşağıda paylaştığımız kodları yapıştırın.
  • WordPress panelinden eklentiyi etkinleştirin ve sol menüdeki GT Sözlük sekmesine gidin.
<?php
/**
* Plugin Name: GTranslate Custom Dictionary Pro
* Plugin URI: https://infobilisim.com
* Description: GTranslate hatalarını düzeltmek için sekme yapılı profesyonel sözlük yönetimi.
* Version: 2.0
* Author: Vedat Aydar - INFO Bilişim
* Author URI: https://infobilisim.com
*/

if ( ! defined( 'ABSPATH' ) ) exit;

// 1. Admin Menüsü
add_action('admin_menu', function() {
add_menu_page(
'GTranslate Sözlük',
'GT Sözlük',
'manage_options',
'gt-dictionary',
'gt_dict_page_html',
'dashicons-translation',
30
);
});

// 2. Admin Paneli Sekmeli Arayüz
function gt_dict_page_html() {
$active_tab = isset($_GET['tab']) ? $_GET['tab'] : 'settings';

if (isset($_POST['gt_save_dict'])) {
if (check_admin_referer('gt_dict_save_action', 'gt_dict_nonce')) {
update_option('gt_custom_dict', wp_unslash($_POST['gt_dict_json']));
echo '<div class="updated"><p>Sözlük başarıyla güncellendi!</p></div>';
}
}

$current_dict = get_option('gt_custom_dict', '{"en": {"Citizen": "Yurttaş", "Solution": "Çözüm Ortağı"}}');
?>
<div class="wrap">
<h1>GTranslate Özel Sözlük Yönetimi</h1>
<p>Geliştirici: <strong>Vedat Aydar</strong> | <a href="https://infobilisim.com" target="_blank">INFO Bilişim</a></p>

<h2 class="nav-tab-wrapper">
<a href="?page=gt-dictionary&tab=settings" class="nav-tab <?php echo $active_tab == 'settings' ? 'nav-tab-active' : ''; ?>">Sözlük Ayarları</a>
<a href="?page=gt-dictionary&tab=info" class="nav-tab <?php echo $active_tab == 'info' ? 'nav-tab-active' : ''; ?>">Nasıl Kullanılır?</a>
<a href="?page=gt-dictionary&tab=support" class="nav-tab <?php echo $active_tab == 'support' ? 'nav-tab-active' : ''; ?>">☕ Destek Ol</a>
</h2>

<div style="margin-top: 20px;">
<?php if ($active_tab == 'settings'): ?>
<form method="post">
<?php wp_nonce_field('gt_dict_save_action', 'gt_dict_nonce'); ?>
<p>Düzenlemek istediğiniz kelimeleri aşağıya JSON formatında girin:</p>
<textarea name="gt_dict_json" style="width:100%; height:400px; font-family:monospace; background:#1d2327; color:#72aee6; padding:15px; border-radius:5px;"><?php echo esc_textarea($current_dict); ?></textarea>
<?php submit_button('Değişiklikleri Kaydet', 'primary', 'gt_save_dict'); ?>
</form>

<?php elseif ($active_tab == 'info'): ?>
<div class="card" style="max-width: 100%;">
<h3>JSON Formatı Hakkında Bilgi</h3>
<p>Sözlüğü doğru çalıştırmak için aşağıdaki yapıyı bozmamalısınız:</p>
<pre style="background: #f0f0f1; padding: 15px; border-left: 4px solid #2271b1;">
{
"en": {
"Hatalı Kelime": "Doğru Kelime",
"İkinci Kelime": "Onun Karşılığı"
},
"de": {
"Falsches Wort": "Richtiges Wort"
}
}</pre>
<ul>
<li><strong>Diller:</strong> "en", "de", "tr" gibi dil kodları kullanın.</li>
<li><strong>Virgül:</strong> Her satır sonuna virgül koyun, ancak o dildeki <u>en son</u> satıra koymayın.</li>
<li><strong>Büyük/Küçük Harf:</strong> GTranslate kelimeyi nasıl çeviriyorsa o haliyle yazın.</li>
</ul>
</div>

<?php elseif ($active_tab == 'support'): ?>
<div class="card" style="text-align: center; padding: 40px;">
<span class="dashicons dashicons-coffee" style="font-size: 50px; width: 50px; height: 50px; color: #6f4e37;"></span>
<h2>Bir Kahve Ismarla?</h2>
<p>Bu eklentiyi beğendiyseniz ve gelişimine destek olmak isterseniz bana bir kahve ısmarlayabilirsiniz.</p>
<p style="margin: 25px 0;">
<a href="https://www.buymeacoffee.com/vedataydar" target="_blank" style="background: #FFDD00; color: #000000; padding: 12px 25px; text-decoration: none; font-weight: bold; border-radius: 5px; font-size: 18px;">
☕ Buy Me a Coffee
</a>
</p>
<hr>
<p>Web sitemiz: <a href="https://infobilisim.com" target="_blank">infobilisim.com</a></p>
</div>
<?php endif; ?>
</div>
</div>
<?php
}

// 3. Frontend Çeviri Mantığı (Geliştirilmiş)
add_action('wp_footer', function() {
$dict = get_option('gt_custom_dict', '{}');
?>
<script>
(function() {
const dictionary = <?php echo $dict; ?>;
function applyCustomTranslations() {
const currentLang = document.documentElement.lang.split('-')[0] || 'en';
const rules = dictionary[currentLang];
if (!rules) return;

const walker = document.createTreeWalker(document.body, NodeFilter.SHOW_TEXT, null, false);
let node;
while (node = walker.nextNode()) {
let text = node.nodeValue;
let replaced = false;
for (const [wrong, right] of Object.entries(rules)) {
if (text.includes(wrong)) {
const regex = new RegExp(wrong.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), 'g');
text = text.replace(regex, right);
replaced = true;
}
}
if (replaced) node.nodeValue = text;
}
}
window.addEventListener('load', () => {
setTimeout(applyCustomTranslations, 1200);
let checkCount = 0;
const interval = setInterval(() => {
applyCustomTranslations();
if (++checkCount > 10) clearInterval(interval);
}, 2000);
});
})();
</script>
<?php
});

Sonuç:
Artık otomatik çevirinin yaptığı hataları manuel olarak, kodlarla uğraşmadan panelden düzeltebilirsiniz!

Kodlar Kodlayana, Kahveler Bana! ☕

Burada paylaştığım içerikler projelerinde işine yaradıysa veya sana zaman kazandırdıysa, bir kahve ısmarlayarak desteğini gösterebilirsin. Bu destek, daha fazla içerik üretmem için motive edici olacaktır.

☕ Bana Bir Kahve Ismarla

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

7 Mart 2026

WooCommerce Kuponlarında Para Birimine Özel Alt Limit Nasıl Belirlenir?

Uluslararası satış yapan ve WooCommerce altyapısını kullanan e-ticaret sitelerinde sıkça karşılaştığımız çok can sıkıcı bir problem var: Kupon kodlarında para birimine özel, net alt limitler belirleyememek. […]
21 Şubat 2026

Kullanıcı Adlarınız İfşa Olmasın: WordPress Yazar Sayfalarını Gizleme Rehberi

WordPress Güvenliği: Yazar (Author) Arşivlerini Neden ve Nasıl Kapatmalısınız? WordPress, dünyanın en popüler içerik yönetim sistemi olmasının getirdiği avantajların yanında, kötü niyetli yazılımların ve siber saldırganların […]
16 Şubat 2026

WordPress Güvenliğini Artırın: Kod ile Zorunlu Güçlü Şifre Politikası Oluşturma

WordPress sitelerin hacklenmesinin en büyük nedenlerinden biri, tahmin edilmesi kolay ve zayıf şifrelerdir. Kullanıcılarınıza “Güçlü şifre kullanın” demek maalesef her zaman yeterli olmaz; bunu sistemsel olarak […]