<?php

/**
 * Turkish PHPMailer language file: refer to English translation for definitive list
 * @package PHPMailer
 * @author Elçin Özel
 * @author Can Yılmaz
 * @author Mehmet Benlioğlu
 * @author @yasinaydin
 * @author Ogün Karakuş
 */

$PHPMAILER_LANG['authenticate']         = 'SMTP Hatası: Oturum açılamadı.';
$PHPMAILER_LANG['connect_host']         = 'SMTP Hatası: SMTP sunucusuna bağlanılamadı.';
$PHPMAILER_LANG['data_not_accepted']    = 'SMTP Hatası: Veri kabul edilmedi.';
$PHPMAILER_LANG['empty_message']        = 'Mesajın içeriği boş';
$PHPMAILER_LANG['encoding']             = 'Bilinmeyen karakter kodlama: ';
$PHPMAILER_LANG['execute']              = 'Çalıştırılamadı: ';
$PHPMAILER_LANG['file_access']          = 'Dosyaya erişilemedi: ';
$PHPMAILER_LANG['file_open']            = 'Dosya Hatası: Dosya açılamadı: ';
$PHPMAILER_LANG['from_failed']          = 'Belirtilen adreslere gönderme başarısız: ';
$PHPMAILER_LANG['instantiate']          = 'Örnek e-posta fonksiyonu oluşturulamadı.';
$PHPMAILER_LANG['invalid_address']      = 'Geçersiz e-posta adresi: ';
$PHPMAILER_LANG['mailer_not_supported'] = ' e-posta kütüphanesi desteklenmiyor.';
$PHPMAILER_LANG['provide_address']      = 'En az bir alıcı e-posta adresi belirtmelisiniz.';
$PHPMAILER_LANG['recipients_failed']    = 'SMTP Hatası: Belirtilen alıcılara ulaşılamadı: ';
$PHPMAILER_LANG['signing']              = 'İmzalama hatası: ';
$PHPMAILER_LANG['smtp_connect_failed']  = 'SMTP connect() fonksiyonu başarısız.';
$PHPMAILER_LANG['smtp_error']           = 'SMTP sunucu hatası: ';
$PHPMAILER_LANG['variable_set']         = 'Değişken ayarlanamadı ya da sıfırlanamadı: ';
$PHPMAILER_LANG['extension_missing']    = 'Eklenti bulunamadı: ';
