CVE-2019-25096: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') (CWE-79)
value: A vulnerability has been found in soerennb eXtplorer up to 2.1.12 and classified as problematic. Affected by this vulnerability is an unknown functionality. The manipulation leads to cross site scripting. The attack can be launched remotely. Upgrading to version 2.1.13 is able to address this issue. The patch is named b8fcb888f4ff5e171c16797a4b075c6c6f50bf46. It is recommended to upgrade the affected component. The associated identifier of this vulnerability is VDB-217435.
CWE description: The product does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users.
CVSS v3 base score: 6.1
Published: 2023-01-05T08:15Z
Repository: https://github.com/soerennb/extplorer
Language: PHP
Files changed: CHANGELOG.txt, admin.extplorer.php, include/archive.php, include/chmod.php, include/functions.php, include/init.php, include/mkitem.php, include/result.class.php, include/search.php, languages/turkish.php, languages/turkish_mimes.php
Commit date: 2019-05-15 10:53:07 +0200
Commit message: - fixed various security issues reported by Mario Korth:
  * potential XSS
  * Arbitrary file read
  * Path traversal in listing directory contents
  * Path traversal in archive feature
- added new turkish translations

Diff: diff --git a/CHANGELOG.txt b/CHANGELOG.txt
index 77b613d..ef6e3c8 100755
--- a/CHANGELOG.txt
+++ b/CHANGELOG.txt
@@ -1,9 +1,18 @@
 ****************************
 Changelog for eXtplorer
 Version $Id: CHANGELOG.txt 249 2016-12-11 16:11:03Z soeren $
 ****************************
+
+--- version 2.1.13 ---
+- fixed various security issues reported by Mario Korth:
+  * potential XSS 
+  * Arbitrary file read
+  * Path traversal in listing directory contents
+  * Path traversal in archive feature
+- added new turkish translations 
+
 --- version 2.1.12 ---
 - fixed wrong version display
 - fixed empty language selector
 
 --- version 2.1.11 ---
diff --git a/admin.extplorer.php b/admin.extplorer.php
index 8ea03f8..fc80715 100755
--- a/admin.extplorer.php
+++ b/admin.extplorer.php
@@ -160,10 +160,14 @@ if( class_exists(strtolower($classname)) && is_callable(array($classname,'execac
 			$requestedDir = stripslashes(str_replace( '_RRR_', '/', extGetParam( $_REQUEST, 'node' )));
 			if( empty($requestedDir) || $requestedDir == 'ext_root') {
 				$requestedDir = $dir;
 			}
 			
+			if (!down_home(get_abs_dir($requestedDir))) {
+			    ext_Result::sendResult('', false, $requestedDir.": ".$GLOBALS["error_msg"]["abovehome"]);
+			    $requestedDir = '';
+			}
 			send_dircontents( $requestedDir, extGetParam($_REQUEST,'sendWhat','files') );
 			break;
 	case 'get_dir_selects':
 			echo get_dir_selects( $dir );
 			break;
diff --git a/include/archive.php b/include/archive.php
index 2f9c652..35ddf9c 100755
--- a/include/archive.php
+++ b/include/archive.php
@@ -97,11 +97,11 @@ class ext_Archive extends ext_Action {
 				}
 			}
 			if( $startfrom == 0 ) {
 				for($i=0;$i<$cnt;$i++) {
 
-					$selitem=stripslashes($GLOBALS['__POST']["selitems"][$i]);
+					$selitem=basename(stripslashes($GLOBALS['__POST']["selitems"][$i]));
 					if( $selitem == 'ext_root') { 
 						$selitem = '';
 					}
 					if( is_dir( utf8_decode($abs_dir ."/". $selitem ))) {
 						$items = extReadDirectory(utf8_decode($abs_dir ."/".  $selitem), '.', true, true );
@@ -191,11 +191,11 @@ class ext_Archive extends ext_Action {
 		"frame": true,
 		"items": [{
 			"xtype": "textfield",
 			"fieldLabel": "<?php echo ext_Lang::msg('archive_name', true ) ?>",
 			"name": "name",
-			"value": "<?php echo $GLOBALS['item'] . '.'. $default_archive_type ?>",
+			"value": "<?php echo htmlspecialchars($GLOBALS['item'], ENT_QUOTES) . '.'. $default_archive_type ?>",
 			"width": "200"
 		},
 		{
 			"xtype": "combo",
 			"fieldLabel": "<?php echo ext_Lang::msg('typeheader', true ) ?>",
diff --git a/include/chmod.php b/include/chmod.php
index 60648ee..acfd02b 100755
--- a/include/chmod.php
+++ b/include/chmod.php
@@ -80,11 +80,11 @@ class ext_Chmod extends ext_Action {
 				if( ext_isFTPMode() ) {
 					$mode = decoct(bindec($bin));
 				} else {
 					$mode = bindec($bin);
 				}
-				$item = $GLOBALS['__POST']["selitems"][$i];
+				$item = html_entity_decode($GLOBALS['__POST']["selitems"][$i], ENT_QUOTES);
 				if( ext_isFTPMode() ) {
 					$abs_item = get_item_info( $dir,$item);
 				} else {
 					$abs_item = get_abs_item($dir,$item);
 				}
@@ -149,11 +149,11 @@ class ext_Chmod extends ext_Action {
 		"id": "simpleform",
 		"width": "300",
 		"labelWidth": 125,
 		"url":"<?php echo basename( $GLOBALS['script_name']) ?>",
 		"dialogtitle": "<?php echo ext_Lang::msg('actperms') ?>",
-		"title" : "<?php echo $text  ?>",
+		"title" : "<?php echo htmlspecialchars($text,ENT_QUOTES)  ?>",
 		"frame": true,
 		"items": [{
 			"layout": "column",
 			"items": [{
 	<?php
@@ -210,12 +210,12 @@ class ext_Chmod extends ext_Action {
 				},
 				scope: form,
 				params: {
 					"option": "com_extplorer", 
 					"action": "chmod", 
-					"dir": "<?php echo stripslashes($GLOBALS['__POST']["dir"]) ?>", 
-					"selitems[]": ['<?php echo implode("','", $GLOBALS['__POST']["selitems"]) ?>'], 
+					"dir": "<?php echo stripslashes(htmlentities($GLOBALS['__POST']["dir"],ENT_QUOTES)) ?>", 
+					"selitems[]": ['<?php echo htmlentities(implode("','", $GLOBALS['__POST']["selitems"]),ENT_QUOTES) ?>'], 
 					confirm: 'true',
 					token: "<?php echo ext_getToken() ?>"
 				}
 			});
 		}
diff --git a/include/functions.php b/include/functions.php
index a44aa07..1a3571b 100755
--- a/include/functions.php
+++ b/include/functions.php
@@ -569,14 +569,17 @@ function down_home($abs_dir) {			// dir deeper than home?
 	if( ext_isFTPMode() ) {
 		return true;
 	}
 	$real_home = @realpath($GLOBALS["home_dir"]);
 	$real_dir = @realpath($abs_dir);
+	if( $real_dir == '' ) $real_dir = dirname( $abs_dir );
+	if( $real_home == '' ) $real_home = $_SERVER['DOCUMENT_ROOT'];
+	//echo 'NOW: $real_home = '.$real_home;
+	//echo ', $real_dir = '.$real_dir;
 
-	if($real_home===false || $real_dir===false) {
-		if(@stristr($abs_dir,"\\.\\.")) return false;
-	} else if(strcmp($real_home,@substr($real_dir,0,strlen($real_home)))) {
+	if(@stristr($abs_dir,"\\.\\.")) return false;
+	if(strcmp($real_home,@substr($real_dir,0,strlen($real_home)))) {
 		return false;
 	}
 	return true;
 }
 //------------------------------------------------------------------------------
diff --git a/include/init.php b/include/init.php
index 0ac8131..7297ef8 100755
--- a/include/init.php
+++ b/include/init.php
@@ -234,10 +234,11 @@ if ($dir == 'ext_root') {
 
 if (ext_isFTPMode() && $dir != '') {
 	$GLOBALS['FTPCONNECTION']->cd( $dir );
 }
 
+//echo "Down home: ".down_home( "/etc/passwd" );exit;
 $abs_dir=get_abs_dir($GLOBALS["dir"]);
 
 if (!file_exists($GLOBALS["home_dir"])) {
   if (!file_exists($GLOBALS["home_dir"].$GLOBALS["separator"])) {
 	if ($GLOBALS["require_login"]) {
@@ -255,11 +256,11 @@ if (!$GLOBALS['ext_conf']['symlink_allow_abovehome']) {
 		$dir = '';
 	}
 }
 
 if (!get_is_dir(utf8_decode($abs_dir)) && !get_is_dir($abs_dir.$GLOBALS["separator"])) {
-	ext_Result::sendResult('', false, '"'.$abs_dir.'" - '.$GLOBALS["error_msg"]["direxist"]);
+	ext_Result::sendResult('', false, '"'.htmlspecialchars($abs_dir,ENT_QUOTES).'" - '.$GLOBALS["error_msg"]["direxist"]);
 	$dir = '';
 }
 
 $_SESSION['ext_'.$GLOBALS['file_mode'].'dir'] = $dir;
 //------------------------------------------------------------------------------
diff --git a/include/mkitem.php b/include/mkitem.php
index 91a1b29..f4b262a 100755
--- a/include/mkitem.php
+++ b/include/mkitem.php
@@ -66,10 +66,13 @@ class ext_Mkitem extends ext_Action {
 				$err=$GLOBALS["error_msg"]["createfile"];
 			} elseif( $mktype == 'symlink' ) {
 				if( empty( $symlink_target )) {
 					ext_Result::sendResult( 'mkitem', false, 'Please provide a valid <strong>target</strong> for the symbolic link.');
 				}
+				if (!down_home(dirname($symlink_target))) {
+				    ext_Result::sendResult('', false, $symlink_target.": ".$GLOBALS["error_msg"]["abovehome"]);
+				}
 				if( !file_exists($symlink_target) || !is_readable($symlink_target)) {
 					ext_Result::sendResult( 'mkitem', false, 'The file you wanted to make a symbolic link to does not exist or is not accessible by PHP.');
 				}
 				$ok = symlink( $symlink_target, $new );
 				$err = 'The symbolic link could not be created.';
diff --git a/include/result.class.php b/include/result.class.php
index ae87106..acefded 100755
--- a/include/result.class.php
+++ b/include/result.class.php
@@ -124,11 +124,11 @@ class ext_Result {
 			if( ext_Result::count_messages() > 0 ) {
 				$messagetxt .= '<h3>'.$GLOBALS["error_msg"]["message"].':</h3>';
 
 				foreach ( $_SESSION['ext_message'] as $msgtype ) {
 					foreach ( $msgtype as $message ) {
-						$messagetxt .= $message .'<br/>';
+					    $messagetxt .= htmlspecialchars($message, ENT_QUOTES ) .'<br/>';
 					}
 					$messagetxt .= '<br /><hr /><br />';
 				}
 				ext_Result::empty_messages();
 
@@ -141,11 +141,11 @@ class ext_Result {
 			if( !empty( $_SESSION['ext_error'])) {
 				$messagetxt .= '<h3>'.$GLOBALS["error_msg"]["error"].':</h3>';
 
 				foreach ( $_SESSION['ext_error'] as $errortype ) {
 					foreach ( $errortype as $error ) {
-						$messagetxt .= $error .'<br/>';
+					    $messagetxt .=  htmlspecialchars($error, ENT_QUOTES ) .'<br/>';
 					}
 					$messagetxt .= '<br /><hr /><br />';
 				}
 				ext_Result::empty_errors();
 			}
diff --git a/include/search.php b/include/search.php
index f951d6f..2055f63 100755
--- a/include/search.php
+++ b/include/search.php
@@ -246,11 +246,11 @@ function get_result_array($list) {			// print table of found items
 		}
 		$array[$i]['last_mtime'] = ext_isFTPMode() ? $GLOBALS['ext_File']->filemtime($GLOBALS['home_dir'].'/'.$dir.'/'.$item) : filemtime($dir.'/'.$item);
 		$array[$i]['file_id'] = md5($s_dir.$s_item);
 		$array[$i]['dir'] = str_ireplace($GLOBALS['home_dir'], '', $dir );
 		$array[$i]['s_dir'] = empty($s_dir) ? '' : $s_dir;
-		$array[$i]['file'] = $s_item;
+		$array[$i]['file'] = htmlentities($s_item, ENT_QUOTES );
 		$array[$i]['link'] = $link;
 		$array[$i]['icon'] = _EXT_URL."/images/$img";
 	}
 	return $array;
 }
diff --git a/languages/turkish.php b/languages/turkish.php
index 48361ee..b65f7f3 100644
--- a/languages/turkish.php
+++ b/languages/turkish.php
@@ -1,21 +1,21 @@
-﻿<?php
+<?php
 
-// Turkish Language for eXtplorer (Translated by Sinan Ata, Tolga'(cumla.blogspot.com))
+// Turkish Language for eXtplorer v2.1.12 (Translated by Mehmet Taş)
 global $_VERSION;
 
 $GLOBALS["charset"] = "UTF-8";
 $GLOBALS["text_dir"] = "ltr"; // ('ltr' for left to right, 'rtl' for right to left)
 $GLOBALS["date_fmt"] = "Y/m/d H:i";
 $GLOBALS["error_msg"] = array(
 	// error
 	"error"			=> "Hata(lar)",
 	"message"		=> "Mesaj(lar)",
-	"back"			=> "Geri Gel",
+	"back"			=> "Geri Al",
 	
 	// root
-	"home"			=> "Ana klasör oluşturulmamış ayarlarınızı kontrol edin.",
+	"home"			=> "Ana klasör oluşturulmamış. Ayarlarınızı kontrol edin.",
 	"abovehome"		=> "Bu klasör ana klasörün üstünde olmamalıdır.",
 	"targetabovehome"	=> "Hedef klasör ana klasörün üstünde olmamalıdır.",
 	
 	// exist
 	"direxist"		=> "Bu klasör oluşturulamadı.",
@@ -37,11 +37,11 @@ $GLOBALS["error_msg"] = array(
 	"accessfunc"		=> "Bu fonksiyonu kullanmak için izinleriniz yetersiz.",
 	"accesstarget"		=> "Hedef klasöre ulaşmak için izinleriniz yetersiz.",
 	
 	// actions
 	"permread"		=> "İzin gösterimi başarısız.",
-	"permchange"		=> "İzin değiştirme başarısız. (sebebi dosya sahiplik sorunu olabilir)",
+	"permchange"		=> "İzin değiştirme başarısız. (Nedeni dosya sahiplik sorunu olabilir.)",
 	"openfile"		=> "Dosya açılması başarısız.",
 	"savefile"		=> "Dosya kaydı başarısız.",
 	"createfile"		=> "Dosya oluşturma başarısız.",
 	"createdir"		=> "Klasör oluşturma başarısız.",
 	"uploadfile"		=> "Dosya yüklemesi başarısız.",
@@ -54,11 +54,11 @@ $GLOBALS["error_msg"] = array(
 	"saveuser"		=> "Kullanıcı değişiklik kaydı başarısız.",
 	"searchnothing"		=> "Aramak için bir değer girmelisiniz.",
 	
 	// misc
 	"miscnofunc"		=> "Fonksiyon kullanılabilir.",
-	"miscfilesize"		=> "Dosya maksimum boyutu aştı.",
+	"miscfilesize"		=> "Dosya en büyük boyutu aştı.",
 	"miscfilepart"		=> "Dosyanın yalnızca bir kısmı yüklenebildi.",
 	"miscnoname"		=> "Bir isim girmelisiniz.",
 	"miscselitems"		=> "Hiçbir öğe(ler) seçmediniz.",
 	"miscdelitems"		=> " {0} ogeyi silmek istediginizden eminmisiniz?",
 	"miscdeluser"		=> "'{0}' kullanıcısını silmek istediğinizden eminmisiniz?",
@@ -67,39 +67,39 @@ $GLOBALS["error_msg"] = array(
 	"miscfieldmissed"	=> "Gerekli bir boşluğu atladınız.",
 	"miscnouserpass"	=> "Kullanıcı adı yada şifreniz yanlış.",
 	"miscselfremove"	=> "Kendinizi silemezsiniz.",
 	"miscuserexist"		=> "Kullanıcı zaten var.",
 	"miscnofinduser"	=> "Kullanıcı bulunamadı.",
-	"extract_noarchive" => "The File is no extractable Archive.",
+	"extract_noarchive" => "Dosya uygun arşivlenmemiş.",
 	"extract_unknowntype" => "Bilinmeyen arşiv türü",
 
-	'chmod_none_not_allowed' => 'Changing Permissions to <none> is not allowed',
-	'archive_dir_notexists' => 'The Save-To Directory you have specified does not exist.',
-	'archive_dir_unwritable' => 'Please specify a writable directory to save the archive to.',
-	'archive_creation_failed' => 'Failed saving the Archive File'
+	'chmod_none_not_allowed' => 'İzinleri <hiçbiri> olarak değiştirmek yasaktır',
+	'archive_dir_notexists' => 'Belirlediğiniz Kaydetme Dizini mevcut değil.',
+	'archive_dir_unwritable' => 'Arşiv kaydetmek için lütfen yazılabilir dizin belirtin.',
+	'archive_creation_failed' => 'Arşiv Dosyasını Kaydetme Başarısız'
 	
 );
 $GLOBALS["messages"] = array(
 	// links
 	"permlink"		=> "İzinleri Değiştir",
 	"editlink"		=> "Değiştir",
 	"downlink"		=> "İndir",
 	"uplink"		=> "Yukarı",
-	"homelink"		=> "Başa Dön",
+	"homelink"		=> "Anadizin",
 	"reloadlink"		=> "Yenile",
 	"copylink"		=> "Kopyala",
 	"movelink"		=> "Taşı",
 	"dellink"		=> "Sil",
-	"comprlink"		=> "Depola",
+	"comprlink"		=> "Sıkıştır",
 	"adminlink"		=> "Yönetici",
 	"logoutlink"		=> "Çıkış",
 	"uploadlink"		=> "Yükle",
 	"searchlink"		=> "Ara",
-	"extractlink"	=> "Extract Archive",
-	'chmodlink'		=> 'İzinleri (chmod) Değiştir (Klasör/Dosya(lar))', // new mic
+	"extractlink"	        => "Arşivi Çıkart",
+	'chmodlink'		=> 'İzinleri (Chmod) Değiştir', // new mic
 	'mossysinfolink'	=> 'eXtplorer Sistem Bilgisi (eXtplorer, Server, PHP, mySQL)', // new mic
-	'logolink'		=> 'eXtplorer Websitesine git (yeni pencerede)', // new mic
+	'logolink'		=> 'eXtplorer Websitesine Git (yeni pencerede)', // new mic
 	
 	// list
 	"nameheader"		=> "İsim",
 	"sizeheader"		=> "Boyut",
 	"typeheader"		=> "Tip",
@@ -125,11 +125,11 @@ $GLOBALS["messages"] = array(
 	"btnedit"		=> "Değiştir",
 	"btnremove"		=> "Kaldır",
 	
 	// user messages, new in eXtplorer 1.3.0
 	'renamelink'	=> 'Yeniden Adlandır',
-	'confirm_delete_file' => 'Bu dosyayı silmek istediğinize eminmisiniz? <br />%s',
+	'confirm_delete_file' => 'Bu dosyayı silmek istediğinizden emin misiniz? <br />%s',
 	'success_delete_file' => 'Öğe(ler) başarıyla silindi.',
 	'success_rename_file' => 'Dizin/dosya %s başarıyla yeniden adlandırıldı  %s.',
 	
 	// actions
 	"actdir"		=> "Klasör",
@@ -153,127 +153,130 @@ $GLOBALS["messages"] = array(
 	"miscfree"		=> "Serbest",
 	"miscusername"		=> "Kullanıcı Adı",
 	"miscpassword"		=> "Şifre",
 	"miscoldpass"		=> "Eski Şifre",
 	"miscnewpass"		=> "Yeni Şifre",
-	"miscconfpass"		=> "Şifreyi Onayla",
-	"miscconfnewpass"	=> "Yeni Şifeyi Onayla",
+	"miscconfpass"		=> "Şifreyi Onaylayın",
+	"miscconfnewpass"	=> "Yeni Şifeyi Onaylayın",
 	"miscchpass"		=> "Şifre Değiştir",
 	"mischomedir"		=> "Ana Klasör",
 	"mischomeurl"		=> "Baş URL",
-	"miscshowhidden"	=> "Gizli öğeleri Göster",
+	"miscshowhidden"	=> "Gizli Öğeleri Gösterin",
 	"mischidepattern"	=> "Resim Gizle",
 	"miscperms"		=> "İzinler",
 	"miscuseritems"		=> "(isim, ana klasör, gizli öğeleri göster, izinler, Aktif)",
-	"miscadduser"		=> "Kullanıcı ekle",
-	"miscedituser"		=> "'%s' kullanıcısını değiştir",
+	"miscadduser"		=> "Kullanıcı ekleyin",
+	"miscedituser"		=> "'%s' kullanıcısını değiştirin",
 	"miscactive"		=> "Aktif",
 	"misclang"		=> "Dil",
 	"miscnoresult"		=> "Hiç sonuç yok.",
-	"miscsubdirs"		=> "Alt kategorileri de ara",
+	"miscsubdirs"		=> "Alt kategorileri de arayın",
 	"miscpermnames"		=> array("Sadece bakılabilir","Modifiye","Şifre değiştir","Modifiye & Şifre Değiştir",
 					"Yönetici"),
 	"miscyesno"		=> array("Evet","Hayır","E","H"),
-	"miscchmod"		=> array("Sahip", "Grup", "Halk"),
+	"miscchmod"		=> array("Sahip", "Grup", "Genel"),
 
 	// from here all new by mic
 	'miscowner'			=> 'Sahip',
-	'miscownerdesc'		=> '<strong>Açıklama:</strong><br />User (UID) /<br />Group (GID)<br />Current rights:<br /><strong> %s ( %s ) </strong>/<br /><strong> %s ( %s )</strong>',
+	'miscownerdesc'		=> '<strong>Açıklama:</strong><br />Kullanıcı (UID) /<br />Grup (GID)<br />Mevcut Haklar:<br /><strong> %s ( %s ) </strong>/<br /><strong> %s ( %s )</strong>',
 
 	// sysinfo (new by mic)
 	'simamsysinfo'		=> "eXtplorer Sistem Bilgisi",
 	'sisysteminfo'		=> 'Sistem Bilgisi',
 	'sibuilton'			=> 'İşletim Sistemi',
 	'sidbversion'		=> 'Veritabanı Sürümü (MySQL)',
 	'siphpversion'		=> 'PHP Sürümü',
-	'siphpupdate'		=> 'Bilgi: <span style="color: red;">The PHP version you use is <strong>not</strong> actual!</span><br />To guarantee all functions and features of '.$_VERSION->PRODUCT.' and addons,<br />you should use as minimum <strong>PHP.Version 4.3</strong>!',
-	'siwebserver'		=> 'Webserver',
+	'siphpupdate'		=> 'Bilgi: <span style="color: red;">Kullandığınız PHP sürümü <strong>güncel değil!</strong></span><br />'.$_VERSION->PRODUCT.' tüm ekleriyle fonksiyonlarını ve özelliklerini garantilemek için <br />en düşük <strong>PHP sürümü 4.3</strong> kullanmalısınız!',
+	'siwebserver'		=> 'Web Sunucu',
 	'siwebsphpif'		=> 'WebServer - PHP Interface',
 	'simamboversion'	=> 'eXtplorer Sürümü',
 	'siuseragent'		=> 'Tarayıcı Sürümü',
 	'sirelevantsettings' => 'Önemli PHP Ayarları',
-	'sisafemode'		=> 'Safe Mode',
+	'sisafemode'		=> 'Güvenli Mod',
 	'sibasedir'			=> 'Open basedir',
 	'sidisplayerrors'	=> 'PHP Hataları',
-	'sishortopentags'	=> 'Short Open Tags',
-	'sifileuploads'		=> 'File Uploads',
+	'sishortopentags'	=> 'Kısa Açık Etiketler',
+	'sifileuploads'		=> 'Dosya Yüklemeleri',
 	'simagicquotes'		=> 'Magic Quotes',
-	'siregglobals'		=> 'Register Globals',
+	'siregglobals'		=> 'Genel Kayıtlar',
 	'sioutputbuf'		=> 'Output Buffer',
 	'sisesssavepath'	=> 'Session Savepath',
 	'sisessautostart'	=> 'Session auto start',
-	'sixmlenabled'		=> 'XML enabled',
-	'sizlibenabled'		=> 'ZLIB enabled',
-	'sidisabledfuncs'	=> 'Non enabled functions',
-	'sieditor'			=> 'WYSIWYG Editor',
-	'siconfigfile'		=> 'Config file',
+	'sixmlenabled'		=> 'XML Etkin',
+	'sizlibenabled'		=> 'ZLIB Etkin',
+	'sidisabledfuncs'	=> 'Etkin Olmayan İşlevler',
+	'sieditor'			=> 'WYSIWYG Editör',
+	'siconfigfile'		=> 'Yapılandırma Dosyası',
 	'siphpinfo'			=> 'PHP Bilgisi',
 	'siphpinformation'	=> 'PHP Information',
 	'sipermissions'		=> 'İzinler',
 	'sidirperms'		=> 'Dizin izinleri',
-	'sidirpermsmess'	=> 'To be shure that all functions and features of '.$_VERSION->PRODUCT.' are working correct, following folders should have permission to write [chmod 0777]',
-	'sionoff'			=> array( 'On', 'Off' ),
+	'sidirpermsmess'	=> 'Şu uygulamanın '.$_VERSION->PRODUCT.' tüm işlevleri ve özelliklerinin doğru çalıştığından emin olmak için, aşağıdaki klasörlerin yazma izinleri [chmod 0777] olmalıdır',
+	'sionoff'		=> array( 'Açık', 'Kapalı' ),
 	
-	'extract_warning' => "Gerçekten bu dosyayı çıkartmak istiyormusunuz? Buraya?\\nThis will overwrite existing files when not used carefully!",
-	'extract_success' => "Extraction was successful",
-	'extract_failure' => "Extraction failed",
-	
-	'overwrite_files' => 'Varolan dosyanın üzerine yaz?',
+	'extract_warning'	=> "Gerçekten bu dosyayı buraya çıkartmak istiyor musunuz?<br />Dikkatli kullanılmadığında varolan dosyaların üzerine yazılacak!",
+	'extract_success'	=> "Arşiv Çıkartma Başarılı",
+	'extract_failure'	=> "Arşiv Çıkartma Başarısız",
+        
+
+
+'overwrite_files' => 'Varolan dosyanın üzerine yaz?',
 	"viewlink"		=> "Göster",
 	"actview"		=> "Kaynak dosyasını göster",
 	
 	// added by Paulino Michelazzo (paulino@michelazzo.com.br) to fun_chmod.php file
-	'recurse_subdirs'	=> 'Alt klasörlerede uygula?',
+	'recurse_subdirs'	=> 'Alt Klasörlere Uygulansın mı?',
 	
 	// added by Paulino Michelazzo (paulino@michelazzo.com.br) to footer.php file
 	'check_version'	=> 'Son sürümü kontrol et',
 	
 	// added by Paulino Michelazzo (paulino@michelazzo.com.br) to fun_rename.php file
 	'rename_file'	=>	'Dizini yada dosyayı yenidien adlandır...',
 	'newname'		=>	'Yeni İsim',
 	
 	// added by Paulino Michelazzo (paulino@michelazzo.com.br) to fun_edit.php file
-	'returndir'	=>	'Kaydettikten sonra dizine geri dön?',
-	'line'		=> 	'Line',
-	'column'	=>	'Column',
-	'wordwrap'	=>	'Wordwrap: (IE only)',
-	'copyfile'	=>	'Copy file into this filename',
+	'returndir'	=>	'Kaydettikten sonra dizine geri dönülsün mü?',
+	'line'		=> 	'Satır',
+	'column'	=>	'Sütun',
+	'wordwrap'	=>	'Sözcük Kaydırma: (yalnız IE)',
+	'copyfile'	=>	'Dosyayı, bu dosya adına kopyalayın',
 	
 	// Bookmarks
 	'quick_jump' => 'Hızlı Atlama',
 	'already_bookmarked' => 'Bu dizin zaten yer imlerinde',
 	'bookmark_was_added' => 'Bu dizin yer imleri listesine eklendi.',
 	'not_a_bookmark' => 'Bu dizin yer imlerinde değil.',
 	'bookmark_was_removed' => 'Bu dizin yer imleri listesinden çıkartıldı.',
-	'bookmarkfile_not_writable' => "Failed to %s the bookmark.\n The Bookmark File '%s' \nis not writable.",
+	'bookmarkfile_not_writable' => "Yer imi % s konumuna getirilemedi. \n Yer İmi Dosyası '%s' \nis yazılabilir değil.",
 	
 	'lbl_add_bookmark' => 'Bu dizini yerimlerine ekle',
-	'lbl_remove_bookmark' => 'Bu dizini yer imleri listesinden çıkart',
+	'lbl_remove_bookmark' => 'Bu dizini yer imleri listesinden çıkar',
 	
 	'enter_alias_name' => 'Lütfen bu yer imi için takma ad girin',
 	
 	'normal_compression' => 'normal sıkıştırma',
-	'good_compression' => 'iyi sıkıştırma',
-	'best_compression' => 'en iyi sıkıştırma',
+	'good_compression' => 'İyi Sıkıştırma',
+	'best_compression' => 'En İyi Sıkıştırma',
 	'no_compression' => 'sıkıştırma yok',
 	
 	'creating_archive' => 'Arşiv dosyası oluştur...',
 	'processed_x_files' => 'Processed %s of %s Files',
 	
-	'ftp_header' => 'Local FTP Authentication',
-	'ftp_login_lbl' => 'Please enter the login credentials for the FTP server',
+	'ftp_header' => 'Yerel FTP Kimlik Doğrulama',
+	'ftp_login_lbl' => 'FTP Sunucusu Oturum Açma Kimlik Bilgilerini Giriniz',
+	
 	'ftp_login_name' => 'FTP Kullanıcı Adı',
 	'ftp_login_pass' => 'FTP Şifresi',
-	'ftp_hostname_port' => 'FTP Server Hostname and Port <br />(Port is optional)',
+	'ftp_hostname_port' => 'FTP Sunucusu',
 	'ftp_login_check' => 'FTP bağlantısı Kontrol ediliyor...',
-	'ftp_connection_failed' => "FTP servera bağlanılamadı. \nPlease check that the FTP server is running on your server.",
+	'ftp_connection_failed' => "FTP sunucusuna bağlanılamadı. \nFTP sunucusunun çalışıp çalışmadığını kontrol edin.",
 	'ftp_login_failed' => "FTP girişinde hata. Lütfen kullanıcı adı ve şifrenizi kontrol ederek tekrar deneyin.",
 		
-	'switch_file_mode' => 'Şimdiki mod: <strong>%s</strong>. Dilerseniz %s moduna geçebilirsiniz.',
-	'symlink_target' => 'Target of the Symbolic Link',
+	'switch_file_mode' => 'Şimdiki Mod: <strong>%s</strong>. Dilerseniz %s moduna geçebilirsiniz. <br/> Türkçe Çeviri: <a href="https://durualan.com" target="_blank" rel="noopener"><b>Mehmet TAŞ</b></a>',
+	'symlink_target' => 'Sembolik Bağlantı Hedefi',
 	
-	"permchange"		=> "CHMOD Success:",
+	"permchange"		=> "Yazma İzinleri Başarılı:",
 	"savefile"		=> "Dosya kaydedildi.",
 	"moveitem"		=> "Taşıma Tamamlandı.",
 	"copyitem"		=> "Kopyalama Tamamlandı.",
 	'archive_name' 	=> 'Arşiv dosyası ismi',
 	'archive_saveToDir' 	=> 'Arşivi bu dizine kaydet',
@@ -284,40 +287,40 @@ $GLOBALS["messages"] = array(
 	'newlink'	=> 'Yeni Dosya/Dizin',
 	'show_directories' => 'Dizinleri Göster',
 	'actlogin_success' => 'Giriş başarılı!',
 	'actlogin_failure' => 'Giriş hatalı, tekrar deneyin.',
 	'directory_tree' => 'Dizin Ağacı',
-	'browsing_directory' => 'Dizinlere Gözat',
-	'filter_grid' => 'Filtrele',
+	'browsing_directory' => 'Dizinlere Gözatın',
+	'filter_grid' => 'Filtreleyin',
 	'paging_page' => 'Sayfa',
 	'paging_of_X' => 'of {0}',
 	'paging_firstpage' => 'İlk Sayfa',
 	'paging_lastpage' => 'Son Sayfa',
 	'paging_nextpage' => 'Sonraki Sayfa',
 	'paging_prevpage' => 'Önceki Sayfa',
 	
 	'paging_info' => 'Gösterilen Öğeler {0} - {1} of {2}',
 	'paging_noitems' => 'Gösterilecek öğe yok',
 	'aboutlink' => 'Hakkında...',
-	'password_warning_title' => 'Important - Change your Password!',
-	'password_warning_text' => 'The user account you are logged in with (admin with password admin) corresponds to the default eXtplorer priviliged account. Your eXtplorer installation is open to intrusion and you should immediately fix this security hole!',
-	'change_password_success' => 'Your Password has been changed!',
-	'success' => 'Basarili',
+	'password_warning_title' => 'Önemli - Şifrenizi değiştirin!',
+	'password_warning_text' => 'Giriş yapmış olduğunuz kullanıcı hesabı, varsayılan eXtplorer tarafından ayrılan hesaba karşılık gelir. EXtplorer kurulumunuz izinsiz girişe açık ve bu güvenlik açığını hemen düzeltmelisiniz!',
+	'change_password_success' => 'Şifreniz değiştirildi!',
+	'success' => 'Başarılı',
 	'failure' => 'Hata',
-	'dialog_title' => 'Website Dialog',
+	'dialog_title' => 'Website Uyarısı',
 	'upload_processing' => 'Yükleniyor, lütfen bekleyin...',
 	'upload_completed' => 'Yükleme Başarılı!',
-	'acttransfer' => 'Başka Sunucudan Transfer Et',
+	'acttransfer' => 'Başka Sunucudan Transfer Edin',
 	'transfer_processing' => 'Sunucudan sunucuya transfer sürüyor, lütfen bekleyin...',
 	'transfer_completed' => 'Transfer tamamlandı!',
-	'max_file_size' => 'Maksimum Dosya Boyutu',
-	'max_post_size' => 'Maksimum Yükleme Sınırı',
+	'max_file_size' => 'En Büyük Dosya Boyutu',
+	'max_post_size' => 'En Büyük Yükleme Sınırı',
 	'done' => 'Tamam.',
 	'permissions_processing' => 'İzinler uygulanıyor, lütfen bekleyin...',
-	'archive_created' => 'The Archive File has been created!',
-	'save_processing' => 'Saving File...',
-	'current_user' => 'This script currently runs with the permissions of the following user:',
+	'archive_created' => 'Arşiv Dosyası Oluşturuldu!',
+	'save_processing' => 'Dosya Kaydediliyor...',
+	'current_user' => 'Bu uygulama şu anda aşağıdaki kullanıcıların izinleriyle çalışır:',
 	'your_version' => 'Sizin Sürümünüz',
 	'search_processing' => 'Aranıyor, lütfen bekleyin...',
 	'url_to_file' => 'Dosya adresi',
 	'file' => 'Dosya'
 
diff --git a/languages/turkish_mimes.php b/languages/turkish_mimes.php
index a8f0753..8911aa7 100644
--- a/languages/turkish_mimes.php
+++ b/languages/turkish_mimes.php
@@ -1,15 +1,15 @@
-﻿<?php
+<?php
 
-// Turkish Language for QuiX (Translated by Sinan Ata 'From Turkey'(cumla.blogspot.com))
+// Turkish Language for 2.1.12 (Translated by Mehmet Taş)
 
 $GLOBALS["mimes"]=array(
 	// dir, exe, file
 	"dir"	=> "Klasör",
 	"exe"	=> "Açılabilir Dosya",
 	"file"	=> "Dosya",
-	"symlink"	=> "Symbolic Link",
+	"symlink"=> "Simgesel Bağlantı",
 
 	// text
 	"text"	=> "Metin Dosyası",
 	
 	// programming

Vulnerable code: 					$selitem=stripslashes($GLOBALS['__POST']["selitems"][$i]);
			"value": "<?php echo $GLOBALS['item'] . '.'. $default_archive_type ?>",
				$item = $GLOBALS['__POST']["selitems"][$i];
		"title" : "<?php echo $text  ?>",
					"dir": "<?php echo stripslashes($GLOBALS['__POST']["dir"]) ?>", 
					"selitems[]": ['<?php echo implode("','", $GLOBALS['__POST']["selitems"]) ?>'], 
	if($real_home===false || $real_dir===false) {
		if(@stristr($abs_dir,"\\.\\.")) return false;
	} else if(strcmp($real_home,@substr($real_dir,0,strlen($real_home)))) {
	ext_Result::sendResult('', false, '"'.$abs_dir.'" - '.$GLOBALS["error_msg"]["direxist"]);
						$messagetxt .= $message .'<br/>';
						$messagetxt .= $error .'<br/>';
		$array[$i]['file'] = $s_item;
﻿<?php
// Turkish Language for eXtplorer (Translated by Sinan Ata, Tolga'(cumla.blogspot.com))
	"back"			=> "Geri Gel",
	"home"			=> "Ana klasör oluşturulmamış ayarlarınızı kontrol edin.",
	"permchange"		=> "İzin değiştirme başarısız. (sebebi dosya sahiplik sorunu olabilir)",
	"miscfilesize"		=> "Dosya maksimum boyutu aştı.",
	"extract_noarchive" => "The File is no extractable Archive.",
	'chmod_none_not_allowed' => 'Changing Permissions to <none> is not allowed',
	'archive_dir_notexists' => 'The Save-To Directory you have specified does not exist.',
	'archive_dir_unwritable' => 'Please specify a writable directory to save the archive to.',
	'archive_creation_failed' => 'Failed saving the Archive File'
	"homelink"		=> "Başa Dön",
	"comprlink"		=> "Depola",
	"extractlink"	=> "Extract Archive",
	'chmodlink'		=> 'İzinleri (chmod) Değiştir (Klasör/Dosya(lar))', // new mic
	'logolink'		=> 'eXtplorer Websitesine git (yeni pencerede)', // new mic
	'confirm_delete_file' => 'Bu dosyayı silmek istediğinize eminmisiniz? <br />%s',
	"miscconfpass"		=> "Şifreyi Onayla",
	"miscconfnewpass"	=> "Yeni Şifeyi Onayla",
	"miscshowhidden"	=> "Gizli öğeleri Göster",
	"miscadduser"		=> "Kullanıcı ekle",
	"miscedituser"		=> "'%s' kullanıcısını değiştir",
	"miscsubdirs"		=> "Alt kategorileri de ara",
	"miscchmod"		=> array("Sahip", "Grup", "Halk"),
	'miscownerdesc'		=> '<strong>Açıklama:</strong><br />User (UID) /<br />Group (GID)<br />Current rights:<br /><strong> %s ( %s ) </strong>/<br /><strong> %s ( %s )</strong>',
	'siphpupdate'		=> 'Bilgi: <span style="color: red;">The PHP version you use is <strong>not</strong> actual!</span><br />To guarantee all functions and features of '.$_VERSION->PRODUCT.' and addons,<br />you should use as minimum <strong>PHP.Version 4.3</strong>!',
	'siwebserver'		=> 'Webserver',
	'sisafemode'		=> 'Safe Mode',
	'sishortopentags'	=> 'Short Open Tags',
	'sifileuploads'		=> 'File Uploads',
	'siregglobals'		=> 'Register Globals',
	'sixmlenabled'		=> 'XML enabled',
	'sizlibenabled'		=> 'ZLIB enabled',
	'sidisabledfuncs'	=> 'Non enabled functions',
	'sieditor'			=> 'WYSIWYG Editor',
	'siconfigfile'		=> 'Config file',
	'sidirpermsmess'	=> 'To be shure that all functions and features of '.$_VERSION->PRODUCT.' are working correct, following folders should have permission to write [chmod 0777]',
	'sionoff'			=> array( 'On', 'Off' ),
	'extract_warning' => "Gerçekten bu dosyayı çıkartmak istiyormusunuz? Buraya?\\nThis will overwrite existing files when not used carefully!",
	'extract_success' => "Extraction was successful",
	'extract_failure' => "Extraction failed",
	
	'overwrite_files' => 'Varolan dosyanın üzerine yaz?',
	'recurse_subdirs'	=> 'Alt klasörlerede uygula?',
	'returndir'	=>	'Kaydettikten sonra dizine geri dön?',
	'line'		=> 	'Line',
	'column'	=>	'Column',
	'wordwrap'	=>	'Wordwrap: (IE only)',
	'copyfile'	=>	'Copy file into this filename',
	'bookmarkfile_not_writable' => "Failed to %s the bookmark.\n The Bookmark File '%s' \nis not writable.",
	'lbl_remove_bookmark' => 'Bu dizini yer imleri listesinden çıkart',
	'good_compression' => 'iyi sıkıştırma',
	'best_compression' => 'en iyi sıkıştırma',
	'ftp_header' => 'Local FTP Authentication',
	'ftp_login_lbl' => 'Please enter the login credentials for the FTP server',
	'ftp_hostname_port' => 'FTP Server Hostname and Port <br />(Port is optional)',
	'ftp_connection_failed' => "FTP servera bağlanılamadı. \nPlease check that the FTP server is running on your server.",
	'switch_file_mode' => 'Şimdiki mod: <strong>%s</strong>. Dilerseniz %s moduna geçebilirsiniz.',
	'symlink_target' => 'Target of the Symbolic Link',
	"permchange"		=> "CHMOD Success:",
	'browsing_directory' => 'Dizinlere Gözat',
	'filter_grid' => 'Filtrele',
	'password_warning_title' => 'Important - Change your Password!',
	'password_warning_text' => 'The user account you are logged in with (admin with password admin) corresponds to the default eXtplorer priviliged account. Your eXtplorer installation is open to intrusion and you should immediately fix this security hole!',
	'change_password_success' => 'Your Password has been changed!',
	'success' => 'Basarili',
	'dialog_title' => 'Website Dialog',
	'acttransfer' => 'Başka Sunucudan Transfer Et',
	'max_file_size' => 'Maksimum Dosya Boyutu',
	'max_post_size' => 'Maksimum Yükleme Sınırı',
	'archive_created' => 'The Archive File has been created!',
	'save_processing' => 'Saving File...',
	'current_user' => 'This script currently runs with the permissions of the following user:',
﻿<?php
// Turkish Language for QuiX (Translated by Sinan Ata 'From Turkey'(cumla.blogspot.com))
	"symlink"	=> "Symbolic Link",
Fixed code: 
--- version 2.1.13 ---
- fixed various security issues reported by Mario Korth:
  * potential XSS 
  * Arbitrary file read
  * Path traversal in listing directory contents
  * Path traversal in archive feature
- added new turkish translations 

			if (!down_home(get_abs_dir($requestedDir))) {
			    ext_Result::sendResult('', false, $requestedDir.": ".$GLOBALS["error_msg"]["abovehome"]);
			    $requestedDir = '';
			}
					$selitem=basename(stripslashes($GLOBALS['__POST']["selitems"][$i]));
			"value": "<?php echo htmlspecialchars($GLOBALS['item'], ENT_QUOTES) . '.'. $default_archive_type ?>",
				$item = html_entity_decode($GLOBALS['__POST']["selitems"][$i], ENT_QUOTES);
		"title" : "<?php echo htmlspecialchars($text,ENT_QUOTES)  ?>",
					"dir": "<?php echo stripslashes(htmlentities($GLOBALS['__POST']["dir"],ENT_QUOTES)) ?>", 
					"selitems[]": ['<?php echo htmlentities(implode("','", $GLOBALS['__POST']["selitems"]),ENT_QUOTES) ?>'], 
	if( $real_dir == '' ) $real_dir = dirname( $abs_dir );
	if( $real_home == '' ) $real_home = $_SERVER['DOCUMENT_ROOT'];
	//echo 'NOW: $real_home = '.$real_home;
	//echo ', $real_dir = '.$real_dir;
	if(@stristr($abs_dir,"\\.\\.")) return false;
	if(strcmp($real_home,@substr($real_dir,0,strlen($real_home)))) {
//echo "Down home: ".down_home( "/etc/passwd" );exit;
	ext_Result::sendResult('', false, '"'.htmlspecialchars($abs_dir,ENT_QUOTES).'" - '.$GLOBALS["error_msg"]["direxist"]);
				if (!down_home(dirname($symlink_target))) {
				    ext_Result::sendResult('', false, $symlink_target.": ".$GLOBALS["error_msg"]["abovehome"]);
				}
					    $messagetxt .= htmlspecialchars($message, ENT_QUOTES ) .'<br/>';
					    $messagetxt .=  htmlspecialchars($error, ENT_QUOTES ) .'<br/>';
		$array[$i]['file'] = htmlentities($s_item, ENT_QUOTES );
<?php
// Turkish Language for eXtplorer v2.1.12 (Translated by Mehmet Taş)
	"back"			=> "Geri Al",
	"home"			=> "Ana klasör oluşturulmamış. Ayarlarınızı kontrol edin.",
	"permchange"		=> "İzin değiştirme başarısız. (Nedeni dosya sahiplik sorunu olabilir.)",
	"miscfilesize"		=> "Dosya en büyük boyutu aştı.",
	"extract_noarchive" => "Dosya uygun arşivlenmemiş.",
	'chmod_none_not_allowed' => 'İzinleri <hiçbiri> olarak değiştirmek yasaktır',
	'archive_dir_notexists' => 'Belirlediğiniz Kaydetme Dizini mevcut değil.',
	'archive_dir_unwritable' => 'Arşiv kaydetmek için lütfen yazılabilir dizin belirtin.',
	'archive_creation_failed' => 'Arşiv Dosyasını Kaydetme Başarısız'
	"homelink"		=> "Anadizin",
	"comprlink"		=> "Sıkıştır",
	"extractlink"	        => "Arşivi Çıkart",
	'chmodlink'		=> 'İzinleri (Chmod) Değiştir', // new mic
	'logolink'		=> 'eXtplorer Websitesine Git (yeni pencerede)', // new mic
	'confirm_delete_file' => 'Bu dosyayı silmek istediğinizden emin misiniz? <br />%s',
	"miscconfpass"		=> "Şifreyi Onaylayın",
	"miscconfnewpass"	=> "Yeni Şifeyi Onaylayın",
	"miscshowhidden"	=> "Gizli Öğeleri Gösterin",
	"miscadduser"		=> "Kullanıcı ekleyin",
	"miscedituser"		=> "'%s' kullanıcısını değiştirin",
	"miscsubdirs"		=> "Alt kategorileri de arayın",
	"miscchmod"		=> array("Sahip", "Grup", "Genel"),
	'miscownerdesc'		=> '<strong>Açıklama:</strong><br />Kullanıcı (UID) /<br />Grup (GID)<br />Mevcut Haklar:<br /><strong> %s ( %s ) </strong>/<br /><strong> %s ( %s )</strong>',
	'siphpupdate'		=> 'Bilgi: <span style="color: red;">Kullandığınız PHP sürümü <strong>güncel değil!</strong></span><br />'.$_VERSION->PRODUCT.' tüm ekleriyle fonksiyonlarını ve özelliklerini garantilemek için <br />en düşük <strong>PHP sürümü 4.3</strong> kullanmalısınız!',
	'siwebserver'		=> 'Web Sunucu',
	'sisafemode'		=> 'Güvenli Mod',
	'sishortopentags'	=> 'Kısa Açık Etiketler',
	'sifileuploads'		=> 'Dosya Yüklemeleri',
	'siregglobals'		=> 'Genel Kayıtlar',
	'sixmlenabled'		=> 'XML Etkin',
	'sizlibenabled'		=> 'ZLIB Etkin',
	'sidisabledfuncs'	=> 'Etkin Olmayan İşlevler',
	'sieditor'			=> 'WYSIWYG Editör',
	'siconfigfile'		=> 'Yapılandırma Dosyası',
	'sidirpermsmess'	=> 'Şu uygulamanın '.$_VERSION->PRODUCT.' tüm işlevleri ve özelliklerinin doğru çalıştığından emin olmak için, aşağıdaki klasörlerin yazma izinleri [chmod 0777] olmalıdır',
	'sionoff'		=> array( 'Açık', 'Kapalı' ),
	'extract_warning'	=> "Gerçekten bu dosyayı buraya çıkartmak istiyor musunuz?<br />Dikkatli kullanılmadığında varolan dosyaların üzerine yazılacak!",
	'extract_success'	=> "Arşiv Çıkartma Başarılı",
	'extract_failure'	=> "Arşiv Çıkartma Başarısız",
        


'overwrite_files' => 'Varolan dosyanın üzerine yaz?',
	'recurse_subdirs'	=> 'Alt Klasörlere Uygulansın mı?',
	'returndir'	=>	'Kaydettikten sonra dizine geri dönülsün mü?',
	'line'		=> 	'Satır',
	'column'	=>	'Sütun',
	'wordwrap'	=>	'Sözcük Kaydırma: (yalnız IE)',
	'copyfile'	=>	'Dosyayı, bu dosya adına kopyalayın',
	'bookmarkfile_not_writable' => "Yer imi % s konumuna getirilemedi. \n Yer İmi Dosyası '%s' \nis yazılabilir değil.",
	'lbl_remove_bookmark' => 'Bu dizini yer imleri listesinden çıkar',
	'good_compression' => 'İyi Sıkıştırma',
	'best_compression' => 'En İyi Sıkıştırma',
	'ftp_header' => 'Yerel FTP Kimlik Doğrulama',
	'ftp_login_lbl' => 'FTP Sunucusu Oturum Açma Kimlik Bilgilerini Giriniz',
	
	'ftp_hostname_port' => 'FTP Sunucusu',
	'ftp_connection_failed' => "FTP sunucusuna bağlanılamadı. \nFTP sunucusunun çalışıp çalışmadığını kontrol edin.",
	'switch_file_mode' => 'Şimdiki Mod: <strong>%s</strong>. Dilerseniz %s moduna geçebilirsiniz. <br/> Türkçe Çeviri: <a href="https://durualan.com" target="_blank" rel="noopener"><b>Mehmet TAŞ</b></a>',
	'symlink_target' => 'Sembolik Bağlantı Hedefi',
	"permchange"		=> "Yazma İzinleri Başarılı:",
	'browsing_directory' => 'Dizinlere Gözatın',
	'filter_grid' => 'Filtreleyin',
	'password_warning_title' => 'Önemli - Şifrenizi değiştirin!',
	'password_warning_text' => 'Giriş yapmış olduğunuz kullanıcı hesabı, varsayılan eXtplorer tarafından ayrılan hesaba karşılık gelir. EXtplorer kurulumunuz izinsiz girişe açık ve bu güvenlik açığını hemen düzeltmelisiniz!',
	'change_password_success' => 'Şifreniz değiştirildi!',
	'success' => 'Başarılı',
	'dialog_title' => 'Website Uyarısı',
	'acttransfer' => 'Başka Sunucudan Transfer Edin',
	'max_file_size' => 'En Büyük Dosya Boyutu',
	'max_post_size' => 'En Büyük Yükleme Sınırı',
	'archive_created' => 'Arşiv Dosyası Oluşturuldu!',
	'save_processing' => 'Dosya Kaydediliyor...',
	'current_user' => 'Bu uygulama şu anda aşağıdaki kullanıcıların izinleriyle çalışır:',
<?php
// Turkish Language for 2.1.12 (Translated by Mehmet Taş)
	"symlink"=> "Simgesel Bağlantı",