Initial translation
This commit is contained in:
parent
790685e7c4
commit
20688e43b8
|
@ -481,12 +481,68 @@ class user{
|
|||
}
|
||||
}
|
||||
|
||||
class translations{
|
||||
public $loaded_languages = ["en"];
|
||||
public $default_language = "en";
|
||||
public $language = "en";
|
||||
public $client_languages = ["en"];
|
||||
public $loaded_translations = [];
|
||||
public $filename = "";
|
||||
|
||||
public function client_languages() {
|
||||
$client_languages = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
|
||||
if(strpos($client_languages, ';') == false){
|
||||
if(strpos($client_languages, '-') !== false){
|
||||
return [substr($client_languages, 0, 5)];
|
||||
} else {
|
||||
return [substr($client_languages, 0, 2)];
|
||||
}
|
||||
} else {
|
||||
$client_languages = explode(",", $client_languages);
|
||||
$tmp_languages = [];
|
||||
foreach($client_languages as $key=>$language){
|
||||
if(strpos($language, ';') == false){
|
||||
$tmp_languages[$language] = 1;
|
||||
} else {
|
||||
$tmp_languages[explode(";q=",$language)[0]] = (float) explode(";q=",$language)[1];
|
||||
}
|
||||
}
|
||||
arsort($tmp_languages);
|
||||
return array_keys($tmp_languages);
|
||||
}
|
||||
}
|
||||
|
||||
public function __construct(){
|
||||
$this->client_languages = $this->client_languages();
|
||||
foreach($this->client_languages as $language){
|
||||
if(in_array($language, $this->loaded_languages)){
|
||||
$this->language = $language;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function translate($string){
|
||||
try {
|
||||
$this->filename = "translations/".$this->language."/".pathinfo(array_reverse(debug_backtrace())[0]['file'])['basename'];
|
||||
if (!file_exists($this->filename))
|
||||
throw new Exception ('file does not exist');
|
||||
$this->loaded_translations = require($this->filename);
|
||||
if (!in_array($string, $this->loaded_translations))
|
||||
throw new Exception ('string does not exist');
|
||||
return $this->loaded_translations[$string];
|
||||
} catch (\Exception $e) {
|
||||
return $string;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function init_class(){
|
||||
global $user, $tools, $database;
|
||||
if(!isset($user) && !isset($tools) && !isset($database)){
|
||||
global $tools, $database, $user, $translations;
|
||||
if(!isset($tools) && !isset($database) && !isset($translations)){
|
||||
$database = new database();
|
||||
$tools = new tools($database->getOption("check_cf_ip"));
|
||||
$user = new user($database, $tools);
|
||||
$translations = new translations();
|
||||
}
|
||||
//if($user->requireRole(Role::DEVELOPER)){
|
||||
Debugger::enable(Debugger::DEVELOPMENT, __DIR__ . '/error-log');
|
||||
|
|
|
@ -24,10 +24,10 @@ $("#err").delay(5000).fadeOut(300);
|
|||
<div class="container text-center" id="modulogin">
|
||||
<form method="post">
|
||||
<img alt="VVF" src="{{ urlsoftware }}/risorse/images/logo.png" class="img-resposive"><br><br><br>
|
||||
<input type="text" name="name" placeholder="name" required autocomplete="username" autofocus><br><br>
|
||||
<input type="password" name="password" placeholder="Password" required autocomplete="current-password"><br><br>
|
||||
<input type="checkbox" name="connesso" value='1' id="connesso" hidden checked><label hidden for='connesso'>Rimani Connesso</label><br>
|
||||
<input type="submit" name="login" class="btn btn-lg btn-success" value="Accedi">
|
||||
<input type="text" name="name" placeholder="{{ 'username'|t }}" required autocomplete="username" autofocus><br><br>
|
||||
<input type="password" name="password" placeholder="{{ 'password'|t }}" required autocomplete="current-password"><br><br>
|
||||
<input type="checkbox" name="connesso" value='1' id="connesso" hidden checked><label hidden for='connesso'>{{ 'Stay connected'|t }}</label><br>
|
||||
<input type="submit" name="login" class="btn btn-lg btn-success" value="{{ 'Login'|t }}">
|
||||
</form>
|
||||
</div>
|
||||
<br><br>
|
||||
|
|
|
@ -3,10 +3,10 @@
|
|||
{% block content %}
|
||||
<br>
|
||||
<div class="text-center">
|
||||
<p>Sei avaible in caso di allerta?</p>
|
||||
<button class="btn btn-lg btn-success " onclick="Attivo('{{ user.id }}')">Attivo</button>
|
||||
<p>{{ 'Are you avaible in case of alert?'|t }}</p>
|
||||
<button class="btn btn-lg btn-success " onclick="Attivo('{{ user.id }}')">{{ 'Active'|t }}</button>
|
||||
|
||||
<button class="btn btn-lg btn-danger" style="background-color: red" onclick="NonAttivo('{{ user.id }}')">Non Attivo</button>
|
||||
<button class="btn btn-lg btn-danger" style="background-color: red" onclick="NonAttivo('{{ user.id }}')">{{ 'Not Active'|t }}</button>
|
||||
</div>
|
||||
<script defer>
|
||||
function Attivo(id){
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
<?php
|
||||
// Translated by: Name Surname (github, email or another social profile url/username)
|
||||
|
||||
return [
|
||||
"username" => "username",
|
||||
"password" => "password",
|
||||
"Stay connected" => "Stay connected",
|
||||
"Login" => "Login"
|
||||
];
|
|
@ -0,0 +1,8 @@
|
|||
<?php
|
||||
// Translated by: Name Surname (github, email or another social profile url/username)
|
||||
|
||||
return [
|
||||
"Are you avaible in case of alert?" => "Are you avaible in case of alert?",
|
||||
"Active" => "Active",
|
||||
"Not Active" => "Not Active"
|
||||
];
|
|
@ -7,9 +7,14 @@ try {
|
|||
} catch (Exception $e) {
|
||||
$loader = new \Twig\Loader\FilesystemLoader('../templates');
|
||||
}
|
||||
$filter = new \Twig\TwigFilter('t', function ($string) {
|
||||
global $translations;
|
||||
return $translations->translate($string);
|
||||
});
|
||||
$twig = new \Twig\Environment($loader, [
|
||||
//'cache' => 'compilation'
|
||||
]);
|
||||
$twig->addFilter($filter);
|
||||
$template = NULL;
|
||||
function loadtemplate($templatename, $data, $requirelogin=true){
|
||||
global $database, $user, $twig, $template;
|
||||
|
|
Loading…
Reference in New Issue