Commit 1658a50a authored by David's avatar David

- 4.0

    - Internationalisation : https://crwd.in/calcpvautonome
	- Traduction FR, EN
    - 3 graph avec les données PVGIS 5 "PERFORMANCE OF OFF-GRID PV SYSTEMS" (http://re.jrc.ec.europa.eu/pvg_tools/en/tools.html#SA)
    - BUG : suppression de la tension PV (aucunement util voir faux)
parent ab1799cd
dev
dev*
log_*
favicon.ico
.htaccess
......
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -5,32 +5,30 @@ echo '<table>';
switch ($_GET['data']) {
case 'pv':
echo '<tr>';
echo '<th>Type</th>';
echo '<th>Puissance maximum (Pmax)</th>';
echo '<th>Tension</th>';
echo '<th>Tension en circuit ouvert (Voc)</th>';
echo '<th>Courant de court circuit (Isc)</th>';
echo '<th>Estimation prix</th>';
echo '<th>'._('Type').'</th>';
echo '<th>'._('Max power (Pmax)').'</th>';
echo '<th>'._('Open circuit voltage (Voc)').'</th>';
echo '<th>'._('Short-circuit current (Isc)').'</th>';
echo '<th>'._('Estimate price').'</th>';
echo '</tr>';
foreach ($config_ini['pv'] as $pvModele => $valeur) {
echo '<tr>';
echo '<td>'.ucfirst($valeur['type']).'</td>';
echo '<td>'.$valeur['W'].' Wc</td>';
echo '<td>'.$valeur['V'].' V</td>';
echo '<td>'.$valeur['W'].' W</td>';
echo '<td>'.$valeur['Vdoc'].' V</td>';
echo '<td>'.$valeur['Isc'].' A</td>';
echo '<td>'.round($config_ini['prix']['pv_bas']*$valeur['W']).'
- '.round($config_ini['prix']['pv_haut']*$valeur['W']).' </td>';
- '.round($config_ini['prix']['pv_haut']*$valeur['W']).' &euro;</td>';
echo '</tr>';
}
break;
case 'batterie':
echo '<tr>';
echo '<th>Nom</th>';
echo '<th>Type</th>';
echo '<th>Capacité (C10)</th>';
echo '<th>Tension</th>';
echo '<th>Estimation prix</th>';
echo '<th>'._('Name').'</th>';
echo '<th>'._('Type').'</th>';
echo '<th>'._('Capacity (C10)').'</th>';
echo '<th>'._('Voltage').'</th>';
echo '<th>'._('Estimate price').'</th>';
echo '</tr>';
foreach ($config_ini['batterie'] as $modele => $valeur) {
echo '<tr>';
......@@ -39,18 +37,18 @@ switch ($_GET['data']) {
echo '<td>'.$valeur['Ah'].' Ah</td>';
echo '<td>'.$valeur['V'].' V</td>';
echo '<td>'.round($config_ini['prix']['bat_'.$valeur['type'].'_bas']*$valeur['Ah']*$valeur['V']).'
- '.round($config_ini['prix']['bat_'.$valeur['type'].'_haut']*$valeur['Ah']*$valeur['V']).' </td>';
- '.round($config_ini['prix']['bat_'.$valeur['type'].'_haut']*$valeur['Ah']*$valeur['V']).' &euro;</td>';
echo '</tr>';
}
break;
case 'regulateur':
echo '<tr>';
echo '<th>Nom</th>';
echo '<th>Tension pac batterie</th>';
echo '<th>Puissance PV max</th>';
echo '<th>Tension PV max</th>';
echo '<th>Courant PV max</th>';
echo '<th>Estimation prix</th>';
echo '<th>'._('Name').'</th>';
echo '<th>'._('Battery plant voltage').'</th>';
echo '<th>'._('Max panel power').'</th>';
echo '<th>'._('Max panel voltage').'</th>';
echo '<th>'._('Max panel current').'</th>';
echo '<th>'._('Estimate price').'</th>';
echo '</tr>';
foreach ($config_ini['regulateur'] as $modele => $valeur) {
echo '<tr>';
......@@ -59,17 +57,17 @@ switch ($_GET['data']) {
echo '<td>'.$valeur['PmaxPv'].' W</td>';
echo '<td>'.$valeur['VmaxPv'].' V</td>';
echo '<td>'.$valeur['ImaxPv'].' A</td>';
echo '<td>~'.$valeur['Prix'].' </td>';
echo '<td>~'.$valeur['Prix'].' &euro;</td>';
echo '</tr>';
}
break;
case 'convertisseur':
echo '<tr>';
echo '<th>Nom</th>';
echo '<th>Tension pac batterie</th>';
echo '<th>Puissance Max (à 25°C)</th>';
echo '<th>Puissance Pointe</th>';
echo '<th>Estimation prix</th>';
echo '<th>'._('Name').'</th>';
echo '<th>'._('Battery park voltage').'</th>';
echo '<th>'._('Max power (at 25 °C)').'</th>';
echo '<th>'._('Peak power').'</th>';
echo '<th>'._('Estimate price').'</th>';
echo '</tr>';
foreach ($config_ini['convertisseur'] as $modele => $valeur) {
echo '<tr>';
......@@ -78,19 +76,19 @@ switch ($_GET['data']) {
echo '<td>'.$valeur['Pmax'].' W</td>';
echo '<td>'.$valeur['Ppointe'].' W</td>';
echo '<td>'.round($config_ini['prix']['conv_bas']*$valeur['VA']).'
- '.round($config_ini['prix']['conv_haut']*$valeur['VA']).' </td>';
- '.round($config_ini['prix']['conv_haut']*$valeur['VA']).' &euro;</td>';
echo '</tr>';
}
break;
case 'cable':
echo '<tr>';
echo '<th>Section</th>';
echo '<th>Estimation prix</th>';
echo '<th>'._('Section').'</th>';
echo '<th>'._('Estimate price').'</th>';
echo '</tr>';
foreach ($config_ini['cablage'] as $modele => $valeur) {
echo '<tr>';
echo '<td>'.ucfirst($valeur['nom']).'</td>';
echo '<td>'.$valeur['prix'].' /m</td>';
echo '<td>'.$valeur['prix'].' &euro;/m</td>';
echo '</tr>';
}
break;
......
......@@ -4,7 +4,7 @@ Outil web pour aider à calculer/dimensionner son installation photovoltaïque e
### Démonstration
La démonstration se trouve ici : http://calcpvautonome.zici.fr/
La démonstration se trouve ici : http://calcpv.net
### Appel à l'entraide
......@@ -38,8 +38,8 @@ Pour les utilisateurs avancés :
#### Requis pour le fonctionnement / l'installation du
* PHP (5.6 minimum) + lib gd + GeoIP + CURL
* Lighttpd/Apache (ou autre serveur web, service d'hébergement mutualisé...)
* PHP (5.6 minimum) + lib gd + GeoIP + CURL + Gettext
* Apache/Nginx (ou autre serveur web, service d'hébergement mutualisé...)
#### Installation
......@@ -69,6 +69,11 @@ CalcConsommation :
### Changelog
- 4.0
- Internationalisation : https://crwd.in/calcpvautonome
- Traduction FR, EN
- 3 graph avec les données PVGIS 5 "PERFORMANCE OF OFF-GRID PV SYSTEMS" (http://re.jrc.ec.europa.eu/pvg_tools/en/tools.html#SA)
- BUG : suppression de la tension PV (aucunement util voir faux)
- 3.1
- Ajout d'un graph avec les données de rayonnement moyen quotidien
- 3.0
......
......@@ -4,11 +4,11 @@
; Valeur par défaut du formulaire
[formulaire]
; Url CalcConsommation
UrlCalcConsommation='http://calconso.zici.fr/'
UrlCalcConsommation='http://conso.calcpv.net/'
; Url CalcPvAutonome
UrlCalcPvAutonome='http://calcpvautonome.zici.fr/'
UrlCalcPvAutonome='http://calcpv.net/'
; Url Modèles
UrlModeles='http://calcpvautonome.zici.fr/?p=Modeles'
UrlModeles='http://calcpv.net/?p=Modeles'
; Niveau par défaut (1=Débutant 2=Eclaire, 3=Expert)
Ni=2
; Panneaux personnalisé, tension
......@@ -74,6 +74,10 @@ cachePath="./var"
cacheTime=518400
; URL PVGIS5 pour récupérer les data d'iradiation
urlDRcalc="http://re.jrc.ec.europa.eu/pvgis5/DRcalc.php"
; URL PVGIS5 pour récupérer les data off grid
urlSHScalc="http://re.jrc.ec.europa.eu/pvgis5/SHScalc.php"
; SHScalc cutoff http://re.jrc.ec.europa.eu/pvg_static/web_service.html#SA
cutoff=0
[equipement]
; Informations tiré de :
......@@ -189,14 +193,17 @@ bat_OPzS_bas=0.183
; 0.397 https://www.solaris-store.com/330-batterie-plomb-ouvert-classic-opzs-solar-190.html
; 0.246 https://www.solaris-store.com/1221-batteries-victron-plomb-ouvert-stationnaire-opzs-solar-2v-910ah.html
bat_OPzS_haut=0.397
; PV coût / Wc + coût de la structure 0,2 / Wc
; Le moins cher que j'ai trouvé avec le plus de puissance
; 206÷260 = 0,79 http://www.wattuneed.com/fr/panneaux-solaires-traditionnels/1347-panneau-solaire-benq-260wc-polycristallin-3170000184080.html
pv_bas=0.79
; 206÷260 = 0,79 http://www.wattuneed.com/fr/panneaux-solaires-traditionnels/1347-panneau-solaire-benq-26
0wc-polycristallin-3170000184080.html
; 0,45 selon http://lesmodules.blog4ever.com/
pv_bas=0.45
; Le plus cher que j'ai trouvé avec le moins de puissance
; 55/50 = 1,1 http://www.wattuneed.com/fr/panneaux-solaires-traditionnels/814-panneau-solaire-50wc-3170000258556.html
pv_haut=1.1
; 55/50 = 1,1 http://www.wattuneed.com/fr/panneaux-solaires-traditionnels/814-panneau-solaire-50wc-317000
0258556.html
; 1,2 selon http://lesmodules.blog4ever.com/
pv_haut=1.2
; http://www.myshop-solaire.com/convertisseur-phoenix-24v-230v-250va-pur-sinus-ve-direct-victron-energy-_r_371_i_1419.html
; 97€ ÷ 250 VA
conv_bas=0.388
......@@ -208,99 +215,80 @@ conv_haut=0.47
; Data exemple : http://www.myshop-solaire.com/myshop_images/divers/myshopenergy/panneaux_solaires/fiche-technique-panneau-monocristallin-bluesolar-victronenergy.pdf
[pv]
PV_Mono_30[W]=30
PV_Mono_30[V]=12
PV_Mono_30[Vdoc]=22,50
PV_Mono_30[Isc]=2
PV_Mono_30[type]="monocristalin"
PV_Mono_50[W]=50
PV_Mono_50[V]=12
PV_Mono_50[Vdoc]=22,20
PV_Mono_50[Isc]=3,16
PV_Mono_50[type]="monocristalin"
PV_Mono_80[W]=80
PV_Mono_80[V]=12
PV_Mono_80[Vdoc]=22,30
PV_Mono_80[Isc]=4,98
PV_Mono_80[type]="monocristalin"
PV_Mono_100[W]=100
PV_Mono_100[V]=12
PV_Mono_100[Vdoc]=22,40
PV_Mono_100[Isc]=6,53
PV_Mono_100[type]="monocristalin"
PV_Mono_130[W]=130
PV_Mono_130[V]=12
PV_Mono_130[Vdoc]=22,40
PV_Mono_130[Isc]=8,49
PV_Mono_130[type]="monocristalin"
PV_Mono_190[W]=190
PV_Mono_190[V]=24
PV_Mono_190[Vdoc]=43,2
PV_Mono_190[Isc]=5,98
PV_Mono_190[type]="monocristalin"
; http://www.elysun.fr/pdf/elysun_mono_sanyo_240w.pdf
PV_Mono_240[W]=240
PV_Mono_240[V]=24
PV_Mono_240[Vdoc]=43,6
PV_Mono_240[Isc]=7,37
PV_Mono_240[type]="monocristalin"
; http://www.hostingpics.net/viewer.php?id=446436PLAQUEARRIERE.jpg
PV_Mono_270[W]=270
PV_Mono_270[V]=24
PV_Mono_270[Vdoc]=43,5
PV_Mono_270[Isc]=8,21
PV_Mono_270[type]="monocristalin"
PV_Mono_300[W]=300
PV_Mono_300[V]=24
PV_Mono_300[Vdoc]=43,5
PV_Mono_300[Isc]=8,56
PV_Mono_300[type]="monocristalin"
PV_Poly_20[W]=20
PV_Poly_20[V]=12
PV_Poly_20[Vdoc]=22,5
PV_Poly_20[Isc]=1,23
PV_Poly_20[type]="polycristallin"
PV_Poly_30[W]=30
PV_Poly_30[V]=12
PV_Poly_30[Vdoc]=22,5
PV_Poly_30[Isc]=1,85
PV_Poly_30[type]="polycristallin"
PV_Poly_40[W]=40
PV_Poly_40[V]=12
PV_Poly_40[Vdoc]=22,5
PV_Poly_40[Isc]=1,85
PV_Poly_40[type]="polycristallin"
PV_Poly_50[W]=50
PV_Poly_50[V]=12
PV_Poly_50[Vdoc]=22,2
PV_Poly_50[Isc]=3,09
PV_Poly_50[type]="polycristallin"
PV_Poly_75[W]=75
PV_Poly_75[V]=12
PV_Poly_75[Vdoc]=22,2
PV_Poly_75[Isc]=4,64
PV_Poly_75[type]="polycristallin"
PV_Poly_80[W]=80
PV_Poly_80[V]=12
PV_Poly_80[Vdoc]=21,6
PV_Poly_80[Isc]=5,06
PV_Poly_80[type]="polycristallin"
PV_Poly_100[W]=100
PV_Poly_100[V]=12
PV_Poly_100[Vdoc]=21,6
PV_Poly_100[Isc]=6,32
PV_Poly_100[type]="polycristallin"
PV_Poly_140[W]=140
PV_Poly_140[V]=12
PV_Poly_140[Vdoc]=21,6
PV_Poly_140[Isc]=8,85
PV_Poly_140[type]="polycristallin"
PV_Poly_260[W]=260
PV_Poly_260[V]=24
PV_Poly_260[Vdoc]=37.8
PV_Poly_260[Isc]=8.73
PV_Poly_260[type]="polycristallin"
PV_Poly_290[W]=290
PV_Poly_290[V]=24
PV_Poly_290[Vdoc]=44,10
PV_Poly_290[Isc]=8,56
PV_Poly_290[type]="polycristallin"
......@@ -471,16 +459,11 @@ OPzS_6_963[nom]="OPzS 6V 683Ah"
OPzS_6_963[type]=OPzS
OPzS_6_963[V]=6
OPzS_6_963[Ah]=683
OPzS_6_1156[nom]="OPzS 6V 820Ah"
OPzS_6_1156[type]=OPzS
OPzS_6_1156[V]=6
OPzS_6_1156[Ah]=820
OPzS_6_1259[nom]="OPzS 6V 893Ah"
OPzS_6_1259[type]=OPzS
OPzS_6_1259[V]=6
OPzS_6_1259[Ah]=893
;;;;;;;;;;; Batterie solaire Lithium
; https://www.solaris-store.com/144-batterie-lithium
......
<?php $CalcPvAutonomeVersion='3.1'; ?>
<?php
$CalcPvAutonomeVersion='4.0';
include_once('./lib/Fonction.php');
$config_ini = parse_ini_file('./config.ini', true);
// Modification / détection de la langue
if (isset($_POST['langue'])) {
setcookie("langue",$_POST['langue'],strtotime( '+1 year' ));
$locale = langue2locale($_POST['langue']);
} elseif (isset($_COOKIE['langue'])) {
$locale = langue2locale($_COOKIE['langue']);
} else {
$locale = langue2locale(substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2));
}
$localeshort=substr($locale, 0, 2);
// Définition de la langue :
putenv("LC_ALL=$locale");
putenv("LC_LANG=$locale");
putenv("LC_LANGUAGE=$locale");
setlocale(LC_ALL, $locale);
bindtextdomain("messages", "./lang");
textdomain("messages");
// Définition du pays (selon l'IP
$country = @geoip_country_code_by_name(get_ip());
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>[CalcPvAutonome] Calculer/dimensionner son installation photovoltaïque isolé (autonome)</title>
<title>[CalcPvAutonome] <?= _('Caculate/size photovoltaic stand-alone (autonomous) set') ?></title>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<link href="./lib/style.css" media="screen" rel="stylesheet" type="text/css" />
<meta http-equiv="Pragma" content="no-cache">
......@@ -23,12 +49,22 @@
</head>
<body>
<div id="page-wrap">
<div id="langues">
<form name="ChoixDeLangue" class="formChoixDeLangue" method="post" action="#">
<input type="hidden" name="langue" value="">
<a href="javascript:choixLangue('fr');"><img class="drapeau<?php langActive($locale, 'fr') ?>" src="./lib/fr.png" alt="FR" /></a>
<a href="javascript:choixLangue('en');"><img class="drapeau<?php langActive($locale, 'en') ?>" src="./lib/en.png" alt="EN" /></a>
<a href="https://crwd.in/calcpvautonome"><img class="drapeau" src="./lib/trad.png" alt="Help to translate" /></a>
</form>
</div>
<?php
$footer=true;
if (isset($_GET['p']) && $_GET['p'] == 'CalcConsommation'
|| isset($_GET['p']) && $_GET['p'] == 'CalcConso'
|| $_SERVER['HTTP_HOST'] == 'conso.calcpv.net'
|| $_SERVER['HTTP_HOST'] == 'calconso.zici.fr'
|| $_SERVER['HTTP_HOST'] == 'calcconso.zici.fr') {
echo '<h1>Calculer ces besoins électriques journalier</h1>';
echo '<h1>'._('Caculate daily electric needs').'</h1>';
@include_once('./header.php');
include('./CalcConsommation.php');
@include_once('./bottom.php');
......@@ -36,7 +72,15 @@
include('./Modeles.php');
$footer=false;
} else {
echo '<h1>Calculer/dimensionner son installation photovoltaïque isolé (autonome)</h1>';
if ($localeshort == 'en' && !preg_match('#StandAlone.php$#',$_SERVER['REQUEST_URI'])) {
echo '<script type="text/javascript">document.location.href="./StandAlone.php";</script>';
}
if ($localeshort == 'fr' && !preg_match('#Autonome.php$#',$_SERVER['REQUEST_URI'])) {
echo '<script type="text/javascript">document.location.href="./Autonome.php";</script>';
}
echo '<h1>'._('Caculate/size photovoltaic stand-alone (autonomous) set').'</h1>';
@include_once('./header.php');
include('./CalcPvAutonome.php');
@include_once('./bottom.php');
......@@ -44,8 +88,17 @@
if ($footer == true) {
?>
<div id="footer">
<p class="footer_right">Par <a href="http://david.mercereau.info/">David Mercereau</a> (<a href="https://framagit.org/kepon/CalcPvAutonome">Dépôt GIT</a>)</p>
<p class="footer_left">CalcPvAutonome version <?= $CalcPvAutonomeVersion ?> est un logiciel libre sous <a href="https://fr.wikipedia.org/wiki/Beerware">Licence Beerware</a></p>
<?php if ($localeshort != 'fr') { ?>
<p class="footer_translator"><?= _('Thanks to') ?> :
<?php
if ($localeshort == 'en') {
echo 'nednet, coucou39, guillerette, mirrim, ppmt';
}
?>
<?= _('for this English <a target="_blank" href="https://crwd.in/calcpvautonome">translation</a>') ?></p>
<?php } ?>
<p class="footer_right"><?= _('By') ?> <a href="http://david.mercereau.info/">David Mercereau</a> (<a href="https://framagit.org/kepon/CalcPvAutonome"><?= _('Git repository') ?></a>)</p>
<p class="footer_left">CalcPvAutonome <?= _('version') ?> <?= $CalcPvAutonomeVersion ?> <?= _('is an open software licensed <a href="https://en.wikipedia.org/wiki/Beerware">Beerware</a>') ?></p>
</div>
<?php
}
......@@ -82,7 +135,10 @@ $(document).ready(function() {
$(this).children('div#tooltip').remove();
});
});
function choixLangue(value_langue) {
document.forms['ChoixDeLangue'].langue.value = value_langue;
document.forms['ChoixDeLangue'].submit();
}
</script>
</body>
</html>
This diff is collapsed.
This diff is collapsed.
1154 xgettext *.php -o lang/messages.pot --from-code=ISO-8859-15
1155 iconv --from-code=UTF-8 --to-code=ISO-8859-15 < lang/messages.pot > lang/messages_iso.pot
xgettext *.php -o lang/messages.pot --from-code="UTF-8"
msgmerge --no-wrap -N lang/fr/LC_MESSAGES/messages.po messages.pot > lang/fr/LC_MESSAGES/messages-new.po
vérifier la fin des fichiers mergé (le commenté), c'est ce qui n'est plus dans le .pot
https://maxime.sh/2012/06/utilisation-pratique-de-gettext-avec-php/
msgfmt lang/fr/LC_MESSAGES/messages.po -o lang/fr/LC_MESSAGES/messages.mo
......@@ -295,6 +295,42 @@ function get_ip() {
}
}
function pgvisGetSHScalc($FichierDataCsv, $raddatabase) {
// Documentation PVGIS :
// http://re.jrc.ec.europa.eu/pvg_static/web_service.html#SA
global $config_ini;
global $Pc;
global $Cap;
global $U;
// Vide le cache trop vieux
if (file_exists($FichierDataCsv) && filemtime($FichierDataCsv)+$config_ini['pvgis']['cacheTime'] < time()) {
debug('Le fichier de cache de PGVIS '.$FichierDataCsv.' est trop vieux, on le supprime !','p');
unlink($FichierDataCsv);
}
if (!file_exists($FichierDataCsv)) {
$url=$config_ini['pvgis']['urlSHScalc'].'?raddatabase='.$raddatabase.'&lat='.$_GET['lat'].'&lon='.$_GET['lon'].'&angle='.$_GET['inclinaison'].'&aspect='.$_GET['orientation'].'&peakpower='.convertNumber($Pc, 'print').'&batterysize='.convertNumber($Cap, 'print')*$U.'&cutoff='.$config_ini['pvgis']['cutoff'].'&consumptionday='.$_GET['Bj'].'&usehorizon=1outputformat=csv&browser=0';
debug('On télécharge les données depuis PGVIS avec l\'URL '.$url, 'p');
$fp = fopen($FichierDataCsv, 'w');
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_FILE, $fp);
$data = curl_exec($ch);
$curl_errno = curl_errno($ch);
$curl_error = curl_error($ch);
curl_close($ch);
fclose($fp);
if ($curl_errno > 0) {
debug('Erreur de téléchargement cURL Error ('.$curl_errno.'): '.$curl_error.'\n', 'p');
unlink($FichierDataCsv);
return false;
} else {
return true;
}
} else {
debug('On utilise le cache de PGVIS '.$FichierDataCsv, 'p');
return true;
}
}
function pgvisGetDRcalc($FichierDataCsv, $raddatabase) {
// Documentation PVGIS :
// http://re.jrc.ec.europa.eu/pvg_static/web_service.html#DR
......@@ -332,6 +368,56 @@ function pgvisGetDRcalc($FichierDataCsv, $raddatabase) {
}
}
function pgvisParseDataSHScalc($FichierDataCsv) {
$mois=0;
$debutCollecte=false;
$finCollecte=false;
$debutCollecteState=false;
$finCollecteState=false;
foreach(file($FichierDataCsv) as $line) {
//echo $line."\n";
$Datas = explode("\t\t", $line);
//print_r($Datas);
// Mois :
// Une ligne blanche signifie la fin des données
if ($debutCollecte==true && empty($Datas[1])) {
$finCollecte=true;
//echo "fin";
}
if ($debutCollecte==true && $finCollecte==false) {
//echo "collecte";
$mois++;
$SHScalc['DataMonth'][$mois]['Ed']=$Datas[1];
$SHScalc['DataMonth'][$mois]['El']=$Datas[2];
$SHScalc['DataMonth'][$mois]['Ff']=$Datas[3];
$SHScalc['DataMonth'][$mois]['Fe']=$Datas[4];
}
// on trouve 'time" c'est que c'est le début des données
if ($Datas[0] == 'Month') {
//echo "début de collecte";
$debutCollecte=true;
}
// % état charge :
// Une ligne blanche signifie la fin des données
if ($debutCollecteState==true && empty($Datas[1])) {
$finCollecteState=true;
//echo "fin";
}
if ($debutCollecteState==true && $finCollecteState==false) {
//echo "collecte";
$SHScalc['DataState'][$Datas[0]]=$Datas[1];
}
// on trouve 'time" c'est que c'est le début des données
if ($Datas[0] == 'Cs') {
//echo "début de collecte";
$debutCollecteState=true;
}
}
return $SHScalc;
}
function pgvisParseData($FichierDataCsv) {
$csv = array_map('str_getcsv', file($FichierDataCsv));
$mois=0;
......@@ -358,4 +444,32 @@ function pgvisParseData($FichierDataCsv) {
}
return $GlobalIradiation;
}
// Fonction de langue :
function langue2locale($langue) {
switch ($langue) {
case 'fr':
return 'fr_FR.utf8';
break;
/*
case 'es':
return 'es_ES.utf8';
break;
case 'pt':
return 'pt_PT.utf8';
break;
case 'eo':
return 'eo.utf8';
break;
*/
default:
return 'en_US.utf8';
}
}
// Juste pour afficher la langue active
function langActive($locale, $drapeau) {
if (substr($locale, 0, 2) == $drapeau) {
echo ' drapeauActif';
}
}
?>
lib/dl.png

1.09 KB

lib/en.png

1.12 KB

lib/fr.png

919 Bytes

......@@ -79,89 +79,6 @@ input {
}
}
/*
@media screen and (max-width: 800px) {
#primary {
width: 100%;
clear: both;
}
#secondary {
clear: both;
width: 100%;
}
}
@media screen and (max-width: 900px) {
#page {
width: 100%;
}
#front-page .content-page {
width: 50%;
padding: 0 3%;
}
#front-page .content-event {
width: 49%;
padding: 0 3%;
margin: 0px 0px 5px 5px;
float: right;
}
#front-page .content-newer-posts {
clear: both;
padding: 0 3%;
width: auto;
float: none;
}
header.site-header, footer.site-footer {
padding: 0 3%;
}
}
@media screen and (max-width: 600px) {
#headimg {
background-image: none !important;;
}
#login-in-header {
display: none;
}
#network {
width: 40px;
bottom: -25px;
right: 4px;
}
#front-page .content-page {
width: auto;
float: none;
}
#front-page .content-event {
width: auto;
float: none;
margin-left: 0px;
}
#front-page .content-newer-posts {
width: auto;
float: none;
}
}
@media screen and (max-width: 480px) {
header.site-header {
height: auto;
}
h1 {
font-size: 2em;
}
}
*/
/* Des trucs des formulaires */
.part.result {
......@@ -290,3 +207,37 @@ a.bulles {
background-color:#000;
padding:5px;
}
#donate {
color: #FF6000;
}
#langues {
position: fixed;
top: 0px;
right: 20px;
padding: 6px;
border: 1px solid #2F2F2F;
border-bottom-left-radius: 8px;
border-bottom-right-radius: 8px;
background: #333333;
-moz-box-shadow: 0 0 10px black;
-webkit-box-shadow: 0 0 10px black;
box-shadow: 0 0 10px black;
opacity: 0.70;
}
img.drapeau {
margin-right: 6px;
margin-left: 6px;
}
img.drapeauActif {
opacity: 0.50;
}
.formChoixDeLangue {
margin: 0;
padding: 0;
}
.pvgisSHScalc {
width: 70%;
}
lib/trad.png

324 Bytes

Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment