Перевод через trt(
This commit is contained in:
@ -153,6 +153,8 @@
|
||||
}
|
||||
|
||||
//Функция для перевода текста без применения GetText
|
||||
/*
|
||||
закоментил так как есть в tools.php
|
||||
function trt($text)
|
||||
{
|
||||
global $db,$lng,$Schema;
|
||||
@ -182,12 +184,13 @@
|
||||
$result=str_replace("_", " ", $text);
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
}*/
|
||||
|
||||
//Перевод для строки в которой встречаются подстроки вида: trt('')
|
||||
function parseGT($text)
|
||||
{
|
||||
$result='';
|
||||
$pLen=4; //Длина преамбулы trt(
|
||||
$cut=0;
|
||||
$from = 0; // Позиция поиска для итерации
|
||||
while (true)
|
||||
@ -195,16 +198,17 @@
|
||||
$pos1 = strpos($text, 'trt(', $from);
|
||||
if($pos1 !== false)
|
||||
{
|
||||
$from = $pos1+3;
|
||||
$from = $pos1+$pLen+1;
|
||||
$pos2 = false;
|
||||
if($text[$pos1+2] == '"') $pos2 = strpos($text, '")', $from);
|
||||
if($text[$pos1+2] == '\'') $pos2 = strpos($text, '\')', $from);
|
||||
if($text[$pos1+$pLen] == '"') $pos2 = strpos($text, '")', $from);
|
||||
if($text[$pos1+$pLen] == '\'') $pos2 = strpos($text, '\')', $from);
|
||||
if($pos2 !== false)
|
||||
{
|
||||
$result.=substr($text, $cut, $pos1 - $cut );
|
||||
$result.=trt(substr($text, $pos1+3, $pos2 - $pos1 - 3 ));
|
||||
$toTranslate=substr($text, $pos1+$pLen+1, $pos2 - $pos1 - $pLen-1 );
|
||||
$result.=trt($toTranslate);
|
||||
$cut=$pos2+2;
|
||||
$from = $pos2 + 2;
|
||||
$from = $pos2 + $pLen;
|
||||
}
|
||||
}else break;
|
||||
}
|
||||
|
||||
@ -1,4 +1,24 @@
|
||||
//Copyright (C) Ivanov I.M. irigm@mail.ru
|
||||
/*jshint esversion: 6 */
|
||||
"use strict";
|
||||
|
||||
//Массив g_translations подгружается отдельно
|
||||
function trt(key)
|
||||
{
|
||||
if(key==null || key===undefined) return '';
|
||||
let val=g_translations[key];
|
||||
if(val==null || val===undefined)
|
||||
{
|
||||
for(let item in g_translations) {
|
||||
if(item.toLowerCase()==key.toLowerCase())
|
||||
{
|
||||
val=g_translations[item];
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(val==null || val===undefined) return key.replace(/_/g, ' ');
|
||||
else return val;
|
||||
}
|
||||
|
||||
//Расширить плитку чтобы она занимала всю штртну области
|
||||
function resizeDivTile(parent,minWidth)
|
||||
@ -529,15 +549,13 @@ function setIframeSrc(iframeNode, src)
|
||||
// браузер хранится в объекте browser
|
||||
function createIFrame(fname, fsrc, parent, debug)
|
||||
{
|
||||
var ifrstr = BrowserDetect.browser=='Explorer' ? '<iframe name="'+fname+'" src="'+src+'">' : 'iframe';
|
||||
var cframe = document.createElement(ifrstr);
|
||||
let ifrstr = BrowserDetect.browser=='Explorer' ? '<iframe name="'+fname+'" src="'+src+'">' : 'iframe';
|
||||
let cframe = document.createElement(ifrstr);
|
||||
|
||||
with(cframe){
|
||||
name = fname // это не для IE
|
||||
setAttribute("name", fname) // и это тоже, но вреда не будет
|
||||
id = fname // а это везде ок
|
||||
src = fsrc //Так ка setIframeSrc глючит если не задан родитель
|
||||
}
|
||||
cframe.name = fname // это не для IE
|
||||
cframe.setAttribute("name", fname) // и это тоже, но вреда не будет
|
||||
cframe.id = fname // а это везде ок
|
||||
cframe.src = fsrc //Так ка setIframeSrc глючит если не задан родитель
|
||||
|
||||
// можно добавлять сразу к document.body
|
||||
//document.body.appendChild(cframe);
|
||||
@ -558,27 +576,25 @@ function createIFrame(fname, fsrc, parent, debug)
|
||||
// прячем фрейм
|
||||
function hideIframe(iframeNode)
|
||||
{
|
||||
with(iframeNode.style) {
|
||||
if(BrowserDetect.browser!='Safari'){
|
||||
position = "absolute";
|
||||
}
|
||||
left = top = "0px";
|
||||
height = width = "1px";
|
||||
visibility = "hidden";
|
||||
if(BrowserDetect.browser!='Safari'){
|
||||
iframeNode.style.position = "absolute";
|
||||
}
|
||||
iframeNode.style.left = "0px";
|
||||
iframeNode.style.height = "1px";
|
||||
iframeNode.style.visibility = "hidden";
|
||||
}
|
||||
|
||||
//вернуть строку до заданных символов
|
||||
function BeforeFirst(str,sub)
|
||||
{
|
||||
var pos=str.indexOf(sub);
|
||||
let pos=str.indexOf(sub);
|
||||
if (pos==-1) return null;
|
||||
return str.substring(0, pos);
|
||||
}
|
||||
//вернуть строку до последнего найденого символа
|
||||
function BeforeLast(str,sub)
|
||||
{
|
||||
var pos=str.lastIndexOf(sub);
|
||||
let pos=str.lastIndexOf(sub);
|
||||
if (pos==-1) return null;
|
||||
return str.substring(0, pos);
|
||||
}
|
||||
@ -586,14 +602,14 @@ function BeforeLast(str,sub)
|
||||
//вернуть строку после заданных символов
|
||||
function AfterFirst(str,sub)
|
||||
{
|
||||
var pos=str.indexOf(sub);
|
||||
let pos=str.indexOf(sub);
|
||||
if (pos==-1) return null;
|
||||
return str.substring(pos+sub.length, str.length);
|
||||
}
|
||||
|
||||
function AfterLast(str,sub)
|
||||
{
|
||||
var pos=str.lastIndexOf(sub);
|
||||
let pos=str.lastIndexOf(sub);
|
||||
if (pos==-1) return null;
|
||||
return str.substring(pos+sub.length, str.length);
|
||||
}
|
||||
@ -601,9 +617,9 @@ function AfterLast(str,sub)
|
||||
//взять параметры из строки запроса (раздел по ? и &)
|
||||
function getParam(sParamName,win)
|
||||
{
|
||||
var Params = win.location.search.substring(1).split("&"); // отсекаем «?» и вносим переменные и их значения в массив
|
||||
var variable = "";
|
||||
for (var i = 0; i < Params.length; i++)
|
||||
let Params = win.location.search.substring(1).split("&"); // отсекаем «?» и вносим переменные и их значения в массив
|
||||
let variable = "";
|
||||
for (let i = 0; i < Params.length; i++)
|
||||
{
|
||||
if (Params[i].split("=")[0] == sParamName)
|
||||
{
|
||||
@ -870,7 +886,7 @@ function delChild(obj)
|
||||
{
|
||||
while(true)
|
||||
{
|
||||
c=obj.firstChild;
|
||||
let c=obj.firstChild;
|
||||
if(c!=null) obj.removeChild(c); else break;
|
||||
}
|
||||
}
|
||||
@ -1574,7 +1590,7 @@ class TSettings
|
||||
{ delete(this.mas[id]);
|
||||
};
|
||||
}
|
||||
Settings=new TSettings();
|
||||
var Settings=new TSettings();
|
||||
|
||||
|
||||
function isInt(value)
|
||||
|
||||
@ -1,5 +1,70 @@
|
||||
<?php
|
||||
|
||||
// Из файла file.js делаем file_v123456789.js добавив время
|
||||
function getScript($path)
|
||||
{
|
||||
if (file_exists($_SERVER['DOCUMENT_ROOT'].$path))
|
||||
{
|
||||
return '<script type="text/javascript" src="'.beforeLast($path,'.').'_v'.filectime($_SERVER['DOCUMENT_ROOT'].$path).'.'.afterLast($path,'.').'"></script>'."\n";
|
||||
}
|
||||
return '';
|
||||
}
|
||||
|
||||
//Функция для перевода текста без применения GetText
|
||||
function trt($text)
|
||||
{
|
||||
global $db;
|
||||
|
||||
$result='';
|
||||
$sql='select translation from main._translations where del=false and language_id=(select id from main._languages where short_name=\''.$_SESSION["LNG"].'\') and identifier=\''.$text.'\';';
|
||||
$res = NULL;
|
||||
try
|
||||
{
|
||||
$res = $db->query($sql);
|
||||
}catch (Exception $e)
|
||||
{
|
||||
echo $e->getMessage();
|
||||
}
|
||||
if($res!=NULL && $res->rowCount()>0)
|
||||
{
|
||||
while ($row = $res->fetch(PDO::FETCH_NUM))
|
||||
{
|
||||
$result=$row[0];
|
||||
}
|
||||
}else
|
||||
{
|
||||
$result=str_replace("_", " ", $text);
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
//Получить разрешения для текущего пользователя
|
||||
function getAccess($key)
|
||||
{
|
||||
global $db;
|
||||
|
||||
$result=false;
|
||||
if(isset($_SESSION['USER_ID']))
|
||||
$sql="select main.p_getaccess(".$_SESSION['USER_ID'].",'".$key."') as acc;";
|
||||
else
|
||||
$sql="select main.p_getaccess(0,'".$key."') as acc;";
|
||||
try
|
||||
{
|
||||
$res = $db->query($sql);
|
||||
}catch (Exception $e)
|
||||
{
|
||||
echo $e->getMessage();
|
||||
}
|
||||
if($res!=NULL && $res->rowCount()>0)
|
||||
{
|
||||
while ($row = $res->fetch(PDO::FETCH_NUM))
|
||||
{
|
||||
$result=$row[0];
|
||||
}
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
function delPHPExt($fName)
|
||||
{
|
||||
$pos = strrpos($fName, '.')+1;
|
||||
|
||||
Reference in New Issue
Block a user