new translation mechanism: WIP

This commit is contained in:
olevole
2025-01-05 14:19:13 +03:00
parent 7cf9062b3a
commit 48b86d6a56
16 changed files with 88 additions and 89 deletions

View File

@@ -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']
];

View File

@@ -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);

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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;">

View File

@@ -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;">

View 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>

View 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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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){

View File

@@ -1,6 +1,6 @@
<?php
if(isset($clonos->uri_chunks[1])){
include('helpers.php');
include($clonos->realpath_page.'helpers.php');
return;
}

View File

@@ -1 +1 @@
24.12
25.01