Multilang: EN and ES cultures support

This commit is contained in:
2015-06-28 13:37:22 +02:00
parent 6eef695f1b
commit 308ad362f4
4 changed files with 90 additions and 8 deletions

View File

@@ -6,6 +6,10 @@ include_once "ui.php";
include_once "console.php"; include_once "console.php";
include_once "scanner.php"; include_once "scanner.php";
include_once "multilang.php";
MultiLang::LoadFile("ui");
function RenderDocument($filePath){ function RenderDocument($filePath){
$render=""; $render="";
if($filePath!=null){ if($filePath!=null){
@@ -13,12 +17,12 @@ function RenderDocument($filePath){
$filePathFixed=htmlentities($filePath,ENT_HTML5, "UTF-8"); $filePathFixed=htmlentities($filePath,ENT_HTML5, "UTF-8");
$filenameFixed=htmlentities($filename,ENT_HTML5, "UTF-8"); $filenameFixed=htmlentities($filename,ENT_HTML5, "UTF-8");
$render.='<div><a href="'.$filePathFixed.'" class="button" download="'.$filenameFixed.'">'. $render.='<div><a href="'.$filePathFixed.'" class="button" download="'.$filenameFixed.'">'.
'Download</a></div>'."\n"; MultiLang::GetString("Download").'</a></div>'."\n";
$render.='<iframe src="'.$filePathFixed.'" '. $render.='<iframe src="'.$filePathFixed.'" '.
'class="previewDoc" ></iframe>'; 'class="previewDoc" ></iframe>';
}else{ }else{
$render.='<div><button class="button" disabled="disabled">'. $render.='<div><button class="button" disabled="disabled">'.
'Download</button></div>'."\n"; MultiLang::GetString("Download").'</button></div>'."\n";
$render.='<iframe src="about:blank" '. $render.='<iframe src="about:blank" '.
'class="previewDoc" ></iframe>'; 'class="previewDoc" ></iframe>';
} }
@@ -55,19 +59,19 @@ if(RequestParm("btnScan",false)){
// Render Form // Render Form
$formFields=""; $formFields="";
$formFields.=RenderFieldInfo("Scanner",$Scanner["ScanModel"]); $formFields.=RenderFieldInfo(MultiLang::GetString("Scanner"),$Scanner["ScanModel"]);
$formFields.=RenderFieldCombo("Resolution","ddlResolution",$Resolutions,$Resolution); $formFields.=RenderFieldCombo(MultiLang::GetString("Resolution"),"ddlResolution",$Resolutions,$Resolution);
$formFields.=RenderFieldCombo("Format","ddlFormat",$Formats,$Format); $formFields.=RenderFieldCombo(MultiLang::GetString("Format"),"ddlFormat",$Formats,$Format);
$formFields.=RenderFieldCombo("Size","ddlSize",$Sizes,$Size); $formFields.=RenderFieldCombo(MultiLang::GetString("Size"),"ddlSize",$Sizes,$Size);
//$formFields.=RenderFieldCheckText("Cropping","chkCrop",$Crop,"txtCropFuzz",$CropFuzz); //$formFields.=RenderFieldCheckText("Cropping","chkCrop",$Crop,"txtCropFuzz",$CropFuzz);
$formFields.=RenderFieldButton("","btnScan","Scan","var elem=document.getElementById('divLoadBack');elem.style.display='';"); $formFields.=RenderFieldButton("","btnScan",MultiLang::GetString("Scan"),"var elem=document.getElementById('divLoadBack');elem.style.display='';");
$formFields.=RenderHidden("hidScanDevice",$Scanner["ScanDevice"]); $formFields.=RenderHidden("hidScanDevice",$Scanner["ScanDevice"]);
$formFields.=RenderHidden("hidScanModel",$Scanner["ScanModel"]); $formFields.=RenderHidden("hidScanModel",$Scanner["ScanModel"]);
$columns=""; $columns="";
$columns.=renderDiv("divColLeft",$formFields); $columns.=renderDiv("divColLeft",$formFields);
$columns.=renderDiv("divColRight",RenderDocument($DestFile)); $columns.=renderDiv("divColRight",RenderDocument($DestFile));
$columns.=RenderCommandLog(); $columns.=RenderCommandLog();
$columns.=RenderDiv("divLoadBack",RenderDiv("divLoading","Loading","divLoading"),"divLoadBack","display:none;"); $columns.=RenderDiv("divLoadBack",RenderDiv("divLoading",MultiLang::GetString("Loading"),"divLoading"),"divLoadBack","display:none;");
echo RenderForm("frmMain",$columns); echo RenderForm("frmMain",$columns);

58
code/multilang.php Normal file
View File

@@ -0,0 +1,58 @@
<?php
######################################################
## Copyright (c) 2015 Valeriano Alfonso ##
######################################################
################################
# MultiLang
#
class MultiLang {
public static $defaultLang="en";
private static $literals=array();
public static function GetString($string){
if(!isset(self::$literals[$string])) { return $string; }
return self::$literals[$string];
}
private static function LoadFileLang($file,$lang){
$fullFilename="literals/".$file.".".$lang.".json";
if(file_exists($fullFilename)){
$fileContents=@file_get_contents($fullFilename);
$newLiterals=json_decode($fileContents,true);
if(is_array($newLiterals)){
self::$literals=array_merge(self::$literals,$newLiterals);
return true;
}
}
return false;
}
public static function LoadFile($file="text"){
$lang=self::GetUserLang();
if(!self::LoadFileLang($file,$lang)){
self::LoadFileLang($file,self::$defaultLang);
}
}
private static $lang=null;
public static function GetUserLang(){
if(self::$lang!=null){ return self::$lang; }
$lang = isset($_COOKIE['lang']) ? $_COOKIE['lang'] : "";
if ($lang == "") {
if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){
$lang = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
} else {
$lang = self::$defaultLang;
}
}
$lang = substr($lang, 0, 2);
self::$lang = $lang;
return $lang;
}
}
################################

10
literals/ui.en.json Normal file
View File

@@ -0,0 +1,10 @@
{
"Download": "Download",
"Scanner": "Scanner",
"Resolution": "Resolution",
"Format": "Format",
"Size": "Size",
"Scan": "Scan",
"Loading": "Loading",
"": ""
}

10
literals/ui.es.json Normal file
View File

@@ -0,0 +1,10 @@
{
"Download": "Descargar",
"Scanner": "Escaner",
"Resolution": "Resolucion",
"Format": "Formato",
"Size": "Tamaño",
"Scan": "Escanear",
"Loading": "Cargando",
"": ""
}