mirror of
				https://github.com/optim-enterprises-bv/control-pane.git
				synced 2025-10-30 09:32:27 +00:00 
			
		
		
		
	new translation mechanism: WIP
This commit is contained in:
		| @@ -25,6 +25,10 @@ class ClonOS { | ||||
| 	public $media_import=''; | ||||
| 	public $json_req=false; | ||||
| 	public $sys_vars=array(); | ||||
| 	public $config=false; | ||||
| 	public $mode=''; | ||||
| 	public $form=''; | ||||
| 	 | ||||
| 	private $_locale; | ||||
| 	private $_post=false; | ||||
| 	private $_db=null; | ||||
| @@ -46,16 +50,19 @@ class ClonOS { | ||||
| 		'username'=>'guest', | ||||
| 		'unregistered'=>true, | ||||
| 	); | ||||
| 	private $_vars=array(); | ||||
| 	private $_translate=false; | ||||
| 	private $_db_tasks=null; | ||||
| /* | ||||
| 	public $projectId=0; | ||||
| 	public $jailId=0; | ||||
| 	public $moduleId=0; | ||||
| 	public $helper=''; | ||||
| 	public $mode=''; | ||||
| 	public $form=''; | ||||
| 	 | ||||
| 	private $_vars=array(); | ||||
| 	private $_db_tasks=null; | ||||
| 	 | ||||
|  | ||||
| 	 | ||||
| 	 | ||||
| 	private $_db_jails=null; | ||||
| */ | ||||
|  | ||||
| @@ -368,10 +375,12 @@ class ClonOS { | ||||
| 		 | ||||
| 		 | ||||
| 		//$back_file= | ||||
| 		$rowCount=0; | ||||
| 		if(isset($dbres['rowCount'])) $rowCount=$dbres['rowCount']; | ||||
| 		 | ||||
| 		return [ | ||||
| 			'error'=>false, | ||||
| 			'rowCount'=>$dbres['rowCount'], | ||||
| 			'rowCount'=>$rowCount, | ||||
| 			'phraseID'=>$form['phraseID'], | ||||
| 			'phrase'=>$form['translText'] | ||||
| 		]; | ||||
|   | ||||
| @@ -107,7 +107,7 @@ class Translate | ||||
| 	 | ||||
| 	public function translate($path,$page,$file_name) | ||||
| 	{ | ||||
| 		$translate_cache='_translate.cache'; | ||||
| 		$translate_cache=ClonOS::TRANSLATE_CACHE_NAME;	//'_translate.cache'; | ||||
| 		$backup_dir='back'; | ||||
| 		switch($path) | ||||
| 		{ | ||||
| @@ -206,7 +206,11 @@ class Translate | ||||
| 											// если оригинальный текст изменился, то обновляем его в базе | ||||
| 											# временно отключил, пока наполняется основная база. Потом нужно вернуть обратно | ||||
| 											/* | ||||
| 											$dbres1=$db->update('update lang_en set text=? where id=? and type=?',[[$text,PDO::PARAM_STR],[$id,PDO::PARAM_INT],[$path,PDO::PARAM_STR]]); | ||||
| 											$dbres1=$db->update('update lang_en set text=? where id=? and type=?',[ | ||||
| 												[$text,PDO::PARAM_STR], | ||||
| 												[$id,PDO::PARAM_INT], | ||||
| 												[$path,PDO::PARAM_STR] | ||||
| 											]); | ||||
| 											if(isset($dbres1['rowCount'])) | ||||
| 											{ | ||||
| 												if($dbres1['rowCount']>0) | ||||
| @@ -304,7 +308,7 @@ UPDATE SQLITE_SEQUENCE SET seq = 0 WHERE name = 'lang_en' | ||||
| 			$sql="select en_id,text from lang_other where lang=? and en_id in ({$ids_txt})"; | ||||
| 			$res=$db->select($sql,[[$this->language,PDO::PARAM_STR]]); | ||||
| //			$res=$db->select("select en_id,text from lang_other where lang=? and en_id in (?)",[[$this->language,PDO::PARAM_STR],[[$ids_arr]]]); | ||||
| 			if($res['error']) | ||||
| 			if(isset($res['error']) && $res['error']) | ||||
| 			{ | ||||
| 				echo 'db error'; | ||||
| 				exit; | ||||
| @@ -323,7 +327,9 @@ UPDATE SQLITE_SEQUENCE SET seq = 0 WHERE name = 'lang_en' | ||||
| 			 | ||||
| 			$txt=preg_replace("#title='<span.+>([^\']+)</span>'#U","$1",$txt); | ||||
| 			 | ||||
| 			$txt=preg_replace("#(<option[^>]+>)<span[^>]+>(.*)</span>#U","$1$2",$txt); | ||||
| 			#$txt=preg_replace("#(<option[^>]+>)<span[^>]+>(.*)</span>#U","$1$2",$txt); | ||||
| 			$txt=preg_replace("#(<option[^>]+>)<span[^>]+>(.*)</span>(</option>)#U","$1$2$3",$txt); | ||||
| 			 | ||||
| 			 | ||||
| 			# чистим кнопки от лишних тэгов | ||||
| 			$txt=preg_replace('#<input type="button" value="(<span[^>]+)>(.*?)</span>"#U','<input type="button" value="$2"',$txt); | ||||
|   | ||||
| @@ -5,9 +5,9 @@ err_messages.add({ | ||||
| </script> | ||||
| <dialog id="bhyve-clone" class="window-box new"> | ||||
| 	<h1> | ||||
| 		<span class="new"><span id="trlt-255">Clone Virtual Machine</span></span> | ||||
| 		<span class="new"><span id="trlt-255">Клонирование виртуальной машины</span></span> | ||||
| 	</h1> | ||||
| 	<h2><span id="trlt-256">Cloned Virtual Machine Settings</span></h2> | ||||
| 	<h2><span id="trlt-256">Настройки клонирования ВМ</span></h2> | ||||
| 	<form class="win" method="post" id="bhyveCloneSettings" onsubmit="return false;"> | ||||
| 		<div class="window-content"> | ||||
| 			<p> | ||||
|   | ||||
| @@ -11,7 +11,7 @@ err_messages.add({ | ||||
| <dialog id="bhyve-new" class="window-box"> | ||||
| 	<h1> | ||||
| 		<span class="new"><span id="trlt-95">Создание виртуальной машины</span></span> | ||||
| 		<span class="edit"><span id="trlt-242">Edit Virtual Machine</span></span> | ||||
| 		<span class="edit"><span id="trlt-242">Правка виртуальной машины</span></span> | ||||
| 	</h1> | ||||
| 	<h2><span id="trlt-97">Настройки</span></h2> | ||||
| 	<form class="win" method="post" id="bhyveSettings" onsubmit="return false;"> | ||||
| @@ -75,8 +75,8 @@ err_messages.add({ | ||||
| 				<input type="text" name="vm_vnc_port" value="" placeholder="0" maxlength="5" /> | ||||
| 			</p> | ||||
| 			<p> | ||||
| 				<span class="field-name"><span id="trlt-247">VNC Password</span>:</span> | ||||
| 				<input type="password" name="vm_vnc_password" value="" placeholder="3-20 symbols" pattern=".{3,20}" maxlength="20"></input> <small>— <span id="trlt-248">use to log in VNC console</span></small> | ||||
| 				<span class="field-name"><span id="trlt-247">Пароль VNC</span>:</span> | ||||
| 				<input type="password" name="vm_vnc_password" value="" placeholder="3-20 symbols" pattern=".{3,20}" maxlength="20"></input> <small>— <span id="trlt-248">используется для входа в VNC консоль</span></small> | ||||
| 			</p> | ||||
| <!--			<p> | ||||
| 				<span class="field-name"><span id="trlt-249">CD-ROM ISO</span>:</span> | ||||
|   | ||||
| @@ -5,16 +5,16 @@ err_messages.add({ | ||||
| </script> | ||||
| <dialog id="bhyve-rename" class="window-box new"> | ||||
| 	<h1> | ||||
| 		<span class="new"><span id="trlt-257">Rename virtual machine</span></span> | ||||
| 		<span class="new"><span id="trlt-257">Переименование виртуальной машины</span></span> | ||||
| 	</h1> | ||||
| 	<h2><span id="trlt-258">Renamed Virtual Machine Settings</span></h2> | ||||
| 	<h2><span id="trlt-258">Переименование ВМ</span></h2> | ||||
| 	<form class="win" method="post" id="bhyveRenameSettings" onsubmit="return false;"> | ||||
| 		<div class="window-content"> | ||||
| 			<p class="warning" style="width:400px;"> | ||||
| 				<span id="trlt-120"><strong>ВНИМАНИЕ!</strong> Контейнер запущен. Переименование работает только при выключенном окружении, поэтому данный контейнер предварительно будет остановлен!</span> | ||||
| 			</p> | ||||
| 			<p> | ||||
| 				<span class="field-name"><span id="trlt-259">VM name</span>:</span> | ||||
| 				<span class="field-name"><span id="trlt-259">Имя виртуальной машины</span>:</span> | ||||
| 				<input type="text" name="jname" value="" pattern="[^0-9]{1}[a-zA-Z0-9]{2,}" required="required" class="edit-disable" /> | ||||
| 			</p> | ||||
| 		</div> | ||||
|   | ||||
| @@ -7,9 +7,9 @@ err_messages.add({ | ||||
| </script> | ||||
| <dialog id="jail-clone" class="window-box new"> | ||||
| 	<h1> | ||||
| 		<span class="new"><span id="trlt-211">Clone jail</span></span> | ||||
| 		<span class="new"><span id="trlt-211">Клонирование контейнера</span></span> | ||||
| 	</h1> | ||||
| 	<h2><span id="trlt-212">Cloned Jail Settings</span></h2> | ||||
| 	<h2><span id="trlt-212">Настройки клонирования</span></h2> | ||||
| 	<form class="win" method="post" id="jailCloneSettings" onsubmit="return false;"> | ||||
| 		<div class="window-content"> | ||||
| 			<p class="warning" style="width:400px;"> | ||||
|   | ||||
| @@ -7,9 +7,9 @@ err_messages.add({ | ||||
| </script> | ||||
| <dialog id="jail-rename" class="window-box new"> | ||||
| 	<h1> | ||||
| 		<span class="new"><span id="trlt-214">Rename jail</span></span> | ||||
| 		<span class="new"><span id="trlt-214">Переименование контейнера</span></span> | ||||
| 	</h1> | ||||
| 	<h2><span id="trlt-215">Renamed Jail Settings</span></h2> | ||||
| 	<h2><span id="trlt-215">Настройки переименования</span></h2> | ||||
| 	<form class="win" method="post" id="jailRenameSettings" onsubmit="return false;"> | ||||
| 		<div class="window-content"> | ||||
| 			<p class="warning" style="width:400px;"> | ||||
|   | ||||
							
								
								
									
										13
									
								
								public/dialogs/back/1734129887.helpers-add.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								public/dialogs/back/1734129887.helpers-add.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | ||||
| <dialog id="helpers-add" class="window-box new"> | ||||
| 	<h1> | ||||
| 		<span class="new"><translate>Helpers add</translate></span> | ||||
| 	</h1> | ||||
| 	<h2><translate>Select helpers for install</translate></h2> | ||||
| 	<form class="win" method="post" id="helpersAddSettings" onsubmit="return false;"> | ||||
| 		<div class="window-content"></div> | ||||
| 	</form> | ||||
| 	<div class="buttons"> | ||||
| 		<input type="button" value="<translate>Add</translate>" class="new button ok-but" /> | ||||
| 		<input type="button" value="<translate>Cancel</translate>" class="button red cancel-but" /> | ||||
| 	</div> | ||||
| </dialog> | ||||
							
								
								
									
										28
									
								
								public/dialogs/back/1734559212.translate.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								public/dialogs/back/1734559212.translate.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,28 @@ | ||||
| <dialog id="translates" class="window-box new"> | ||||
| 	<h1> | ||||
| 		<translate id="376">Translate</translate> | ||||
| 	</h1> | ||||
| 	<h2><translate id="377">Translate phrase</translate></h2> | ||||
| 	<form class="win" method="post" id="translate" onsubmit="return false;"> | ||||
| 		<div class="window-content"> | ||||
| 			<p> | ||||
| 				Вы можете поучаствовать в переводе интерфейса на свой язык. | ||||
| 			</p> | ||||
| 			<p> | ||||
| 				<span class="field-name"><translate id="378">Original phrase</translate>:</span> | ||||
| 				<textarea id="origPhrase" disabled="disabled" name="origText"></textarea> | ||||
| 			</p> | ||||
| 			<p class="new"> | ||||
| 				<span class="field-name"><translate id="379">Translated phrase</translate>:</span> | ||||
| 				<textarea id="translPhrase" name="translText"></textarea> | ||||
| 			</p> | ||||
| 		</div> | ||||
| 		<input type="hidden" name="phraseID" id="trlt-phID" /> | ||||
| 		<input type="hidden" name="type" id="trlt-type" /> | ||||
| 		<input type="hidden" name="dialog" id="trlt-dlgname" /> | ||||
| 	</form> | ||||
| 	<div class="buttons"> | ||||
| 		<input type="button" value="<translate>Save</translate>" class="new button ok-but" /> | ||||
| 		<input type="button" value="<translate>Cancel</translate>" class="button red cancel-but" /> | ||||
| 	</div> | ||||
| </dialog> | ||||
| @@ -6,7 +6,7 @@ src_table_pattern='<?php $res=$this->getTableChunk('baseslist','tbody'); echo st | ||||
| </script> | ||||
| <dialog id="getrepo" class="window-box"> | ||||
| 	<h1><translate id="324">Compile FreeBSD</translate></h1> | ||||
| 	<h2><translate id="328">Compile from bases</translate></h2> | ||||
| 	<h2><translate id="328">Fetch from repository</translate></h2> | ||||
| 	<form class="win" method="post" id="repoSettings" onsubmit="return false;"> | ||||
| 		<div class="window-content"> | ||||
| 			<p> | ||||
|   | ||||
| @@ -1,13 +1,13 @@ | ||||
| <dialog id="helpers-add" class="window-box new"> | ||||
| 	<h1> | ||||
| 		<span class="new"><translate>Helpers add</translate></span> | ||||
| 		<span class="new"><translate id="108">Helpers add</translate></span> | ||||
| 	</h1> | ||||
| 	<h2><translate>Select helpers for install</translate></h2> | ||||
| 	<h2><translate id="109">Select helpers for install</translate></h2> | ||||
| 	<form class="win" method="post" id="helpersAddSettings" onsubmit="return false;"> | ||||
| 		<div class="window-content"></div> | ||||
| 	</form> | ||||
| 	<div class="buttons"> | ||||
| 		<input type="button" value="<translate>Add</translate>" class="new button ok-but" /> | ||||
| 		<input type="button" value="<translate>Cancel</translate>" class="button red cancel-but" /> | ||||
| 		<input type="button" value="<translate id="114">Add</translate>" class="new button ok-but" /> | ||||
| 		<input type="button" value="<translate id="73">Cancel</translate>" class="button red cancel-but" /> | ||||
| 	</div> | ||||
| </dialog> | ||||
|   | ||||
| @@ -22,7 +22,7 @@ | ||||
| 		<input type="hidden" name="dialog" id="trlt-dlgname" /> | ||||
| 	</form> | ||||
| 	<div class="buttons"> | ||||
| 		<input type="button" value="Save" class="new button ok-but" /> | ||||
| 		<input type="button" value="Cancel" class="button red cancel-but" /> | ||||
| 		<input type="button" value="<translate id="74">Save</translate>" class="new button ok-but" /> | ||||
| 		<input type="button" value="<translate id="73">Cancel</translate>" class="button red cancel-but" /> | ||||
| 	</div> | ||||
| </dialog> | ||||
| @@ -1,57 +0,0 @@ | ||||
| <script type="text/javascript"> | ||||
| err_messages.add({ | ||||
| 	'username':'<translate id="265">CHANGE THIS TEXT!!! Can not be empty. Name must begin with a letter / a-z / and not have any special symbols: -,.=%</translate>', | ||||
| 	'first_name':'<translate id="266">TYPE THIS TEXT!!!</translate>', | ||||
| 	'last_name':'<translate id="266">TYPE THIS TEXT!!!</translate>', | ||||
| }); | ||||
| </script> | ||||
| <dialog id="users-new" class="window-box new"> | ||||
| 	<h1> | ||||
| 		<span class="new"><translate id="366">Add new user</translate></span> | ||||
| 		<span class="edit"><translate id="367">Edit user info</translate></span> | ||||
| 	</h1> | ||||
| 	<h2><translate id="368">User Settings</translate></h2> | ||||
| 	<form class="win" method="post" id="userSettings" onsubmit="return false;"> | ||||
| 		<div class="window-content"> | ||||
| 			<p> | ||||
| 				<span class="field-name"><translate id="369">User name</translate>:</span> | ||||
| 				<input type="text" name="username" value="" pattern="[^0-9]{1}[a-zA-Z0-9]{2,}" required="required" class="edit-enable" /> | ||||
| 			</p> | ||||
| 			<p class="new"> | ||||
| 				<span class="field-name"><translate id="370">User password</translate>:</span> | ||||
| 				<input type="password" name="password" value="" placeholder="3-20 symbols" pattern=".{3,20}" maxlength="20" class="edit-disable"></input> | ||||
| 			</p> | ||||
| 			<p class="new"> | ||||
| 				<span class="field-name"><translate id="371">User password (again)</translate>:</span> | ||||
| 				<input type="password" name="password1" value="" placeholder="3-20 symbols" pattern=".{3,20}" maxlength="20" class="edit-disable"></input> | ||||
| 			</p> | ||||
| 			<fieldset class="edit full"> | ||||
| 				<legend><input type="checkbox" id="letsedit-1" class="letsedit" /><label for="letsedit-1"> <translate id="372">Change the password</translate>:</label></legend> | ||||
| 				<p> | ||||
| 					<span class="field-name"><translate id="370">User password</translate>:</span> | ||||
| 					<input type="password" name="password" value="" placeholder="3-20 symbols" pattern=".{3,20}" maxlength="20" disabled></input> | ||||
| 				</p> | ||||
| 				<p> | ||||
| 					<span class="field-name"><translate id="371">User password (again)</translate>:</span> | ||||
| 					<input type="password" name="password1" value="" placeholder="3-20 symbols" pattern=".{3,20}" maxlength="20" disabled></input> | ||||
| 				</p> | ||||
| 			</fieldset> | ||||
| 			<p> | ||||
| 				<span class="field-name"><translate id="373">First name</translate>:</span> | ||||
| 				<input type="text" name="first_name" value="" pattern="[^0-9]{1}[a-zA-Z0-9]{2,}" required="required" class="edit-enable" /> | ||||
| 			</p> | ||||
| 			<p> | ||||
| 				<span class="field-name"><translate id="374">Last name</translate>:</span> | ||||
| 				<input type="text" name="last_name" value="" pattern="[^0-9]{1}[a-zA-Z0-9]{2,}" required="required" class="edit-enable" /> | ||||
| 			</p> | ||||
| 			<p> | ||||
| 				<input type="checkbox" name="actuser" id="actuser" /><label for="actuser"> <translate id="375">Activate user</translate></label> | ||||
| 			</p> | ||||
| 		</div> | ||||
| 	</form> | ||||
| 	<div class="buttons"> | ||||
| 		<input type="button" value="<translate id="114">Add</translate>" class="new button ok-but" /> | ||||
| 		<input type="button" value="<translate id="74">Save</translate>" class="edit button ok-but" /> | ||||
| 		<input type="button" value="<translate id="73">Cancel</translate>" class="button red cancel-but" /> | ||||
| 	</div> | ||||
| </dialog> | ||||
| @@ -50,8 +50,8 @@ foreach($images as $item){ | ||||
| 			$size = filesize($filename); | ||||
| 		} | ||||
| 		$filesize = $this->fileSizeConvert($size, 1024, true); | ||||
| 		$query = "select count(*) as busy from taskd where status<2 and jname='".$item['jname']."'"; | ||||
| 		$busy = $this->_db_tasks->selectOne($query, []); | ||||
| 		$query = "select count(*) as busy from taskd where status<2 and jname=?"; | ||||
| 		$busy = $this->_db_tasks->selectOne($query, [$item['jname'],PDO::PARAM_STR]); | ||||
| 		$jstatus = ''; | ||||
| 		$jbusy = ''; | ||||
| 		if($busy['busy'] == 1){ | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| <?php | ||||
| if(isset($clonos->uri_chunks[1])){ | ||||
| 	include('helpers.php'); | ||||
| 	include($clonos->realpath_page.'helpers.php'); | ||||
| 	return; | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 olevole
					olevole