From 10b9797da7696babc092354c3a156ff1683e0e0d Mon Sep 17 00:00:00 2001 From: Marien Fressinaud Date: Sat, 27 Apr 2013 18:58:09 +0200 Subject: L'installateur gère désormais l'internationalisation et détecte la langue préférée de l'utilisateur (fix bug #38) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/install.php | 231 +++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 173 insertions(+), 58 deletions(-) (limited to 'public/install.php') diff --git a/public/install.php b/public/install.php index 7065e3a77..e83b74eb8 100644 --- a/public/install.php +++ b/public/install.php @@ -70,7 +70,66 @@ function writeArray ($f, $array) { } } +// gestion internationalisation +$translates = array (); +$actual = 'en'; +function initTranslate () { + global $translates; + global $actual; + + $l = getBetterLanguage ('en'); + if (isset ($_SESSION['language'])) { + $l = $_SESSION['language']; + } + $actual = $l; + + $file = APP_PATH . '/i18n/' . $actual . '.php'; + if (file_exists ($file)) { + $translates = include ($file); + } +} +function getBetterLanguage ($fallback) { + $available = availableLanguages (); + $accept = $_SERVER['HTTP_ACCEPT_LANGUAGE']; + $language = strtolower (substr ($accept, 0, 2)); + + if (isset ($available[$language])) { + return $language; + } else { + return $fallback; + } +} +function availableLanguages () { + return array ( + 'en' => 'English', + 'fr' => 'Français' + ); +} +function _t ($key) { + global $translates; + $translate = $key; + if (isset ($translates[$key])) { + $translate = $translates[$key]; + } + + $args = func_get_args (); + unset($args[0]); + + return vsprintf ($translate, $args); +} + /*** SAUVEGARDES ***/ +function saveLanguage () { + if (!empty ($_POST)) { + if (!isset ($_POST['language'])) { + return false; + } + + $_SESSION['language'] = $_POST['language']; + + header ('Location: index.php?step=1'); + } +} function saveStep2 () { if (!empty ($_POST)) { if (empty ($_POST['sel']) || @@ -95,6 +154,7 @@ function saveStep2 () { writeLine ($f, ' $_SESSION['language'], 'old_entries' => $_SESSION['old_entries'], 'mail_login' => $_SESSION['mail_login'] )); @@ -149,10 +209,13 @@ function deleteInstall () { /*** VÉRIFICATIONS ***/ function checkStep () { + $s0 = checkStep0 (); $s1 = checkStep1 (); $s2 = checkStep2 (); $s3 = checkStep3 (); - if (STEP > 1 && $s1['all'] != 'ok') { + if (STEP > 0 && $s0['all'] != 'ok') { + header ('Location: index.php?step=0'); + } elseif (STEP > 1 && $s1['all'] != 'ok') { header ('Location: index.php?step=1'); } elseif (STEP > 2 && $s2['all'] != 'ok') { header ('Location: index.php?step=2'); @@ -160,6 +223,16 @@ function checkStep () { header ('Location: index.php?step=3'); } } +function checkStep0 () { + $languages = availableLanguages (); + $language = isset ($_SESSION['language']) && + isset ($languages[$_SESSION['language']]); + + return array ( + 'language' => $language ? 'ok' : 'ko', + 'all' => $language ? 'ok' : 'ko' + ); +} function checkStep1 () { $php = version_compare (PHP_VERSION, '5.1.0') >= 0; $minz = file_exists (LIB_PATH . '/minz'); @@ -234,64 +307,98 @@ function checkBD () { } /*** AFFICHAGE ***/ +function printStep0 () { + global $actual; +?> + +

+ + +
+ +
+ +
+ +
+
+ +
+
+ + + + + +
+
+
+ - + -

Ok ! Votre version de PHP est la et est compatible avec FreshRSS

+

-

Arf ! Votre version de PHP est la . Vous devriez avoir au moins la version 5.1.0

+

-

Ok ! Vous disposez du framework Minz

+

-

Arf ! Vous ne disposez pas de la librairie Minz. Vous devriez exécuter le script build.sh ou bien la télécharger sur Github et installer dans le répertoire le contenu de son répertoire /lib.

+

-

Ok ! Vous disposez de cURL dans sa version

+

-

Arf ! Vous ne disposez pas de cURL

+

-

Ok ! Vous disposez de PDO et de son driver pour MySQL

+

-

Arf ! Vous ne disposez pas de PDO ou de son driver pour MySQL

+

-

Ok ! Les droits sur le répertoire de cache sont bons

+

-

Arf ! Veuillez vérifier les droits sur le répertoire . Le serveur HTTP doit être capable d'écrire dedans

+

-

Ok ! Les droits sur le répertoire des logs sont bons

+

-

Arf ! Veuillez vérifier les droits sur le répertoire . Le serveur HTTP doit être capable d'écrire dedans

+

-

Ok ! Les droits sur le répertoire de configuration sont bons

+

-

Arf ! Veuillez vérifier les droits sur le répertoire . Le serveur HTTP doit être capable d'écrire dedans

+

-

Ok ! Les droits sur le répertoire de data sont bons

+

-

Arf ! Veuillez vérifier les droits sur le répertoire . Le serveur HTTP doit être capable d'écrire dedans

+

- Passer à l'étape suivante + - Veuillez corriger les erreurs avant de passer à l'étape suivante. +

-

Ok ! La configuration générale a été enregistrée.

+

- Configuration générale +
- +
- Vous devriez changer cette valeur par n'importe quelle autre +
@@ -315,40 +422,40 @@ function printStep2 () { $url = substr ($_SERVER['PHP_SELF'], 0, -10); ?>
- +
- Laissez tel quel dans le doute +
- +
- +
- +
- mois +
- +
- - + +
- - + + - Passer à l'étape suivante +
@@ -359,34 +466,34 @@ function printStep2 () { function printStep3 () { ?> -

Ok ! La configuration de la base de données a été enregistrée.

+

- Configuration de la base de données +
- +
- +
- +
- +
@@ -394,10 +501,10 @@ function printStep3 () {
- - + + - Passer à l'étape suivante +
@@ -407,23 +514,27 @@ function printStep3 () { function printStep4 () { ?> -

Félicitations ! L'installation s'est bien passée. Il faut maintenant supprimer le fichier install.php pour pouvoir accéder à FreshRSS... ou simplement cliquer sur le bouton ci-dessous ;)

- Terminer l'installation +

+ -

Oups ! Quelque chose s'est mal passé, vous devriez supprimer le fichier à la main.

+

- Installation - FreshRSS + <?php echo _t ('freshrss_installation'); ?> @@ -451,25 +562,29 @@ case 5:
-

FreshRSS

-

Installation - étape

+

+

Date: Sat, 27 Apr 2013 19:00:54 +0200 Subject: Ajout du fichier fallback.css pour l'installateur --- public/install.php | 1 + 1 file changed, 1 insertion(+) (limited to 'public/install.php') diff --git a/public/install.php b/public/install.php index e83b74eb8..672bb4418 100644 --- a/public/install.php +++ b/public/install.php @@ -555,6 +555,7 @@ case 5: <?php echo _t ('freshrss_installation'); ?> + -- cgit v1.2.3