diff --git a/src/Jirafeau/a.php b/src/Jirafeau/a.php index 879c6d8..736b1fa 100644 --- a/src/Jirafeau/a.php +++ b/src/Jirafeau/a.php @@ -25,6 +25,7 @@ require (JIRAFEAU_ROOT . 'lib/lang.php'); define ('VAR_TOKENS', $cfg ['var_root'].'tokens/'); define ('VAR_TRACKS', $cfg ['var_root'].'tracks/'); +define ('VAR_LANG', $cfg ['var_root'].'lang/'); define ('VAR_PERIOD', $cfg ['var_root'].'period/'); define ('VAR_FAKE', $cfg ['var_root'].'fake/'); define ('VAR_ADMIN', $cfg ['var_root'].'admin/'); @@ -38,6 +39,7 @@ define ('TOKEN_USE_LIMIT', "-2 hours"); define ('TOKEN_LOGIN_LIMIT', "-15 minutes"); define ('TOKEN_LOGOUT_LIMIT', "-8 hours"); define ('DEFAULT_PERIOD', "month"); +define ('DEFAULT_LANG', "fr"); define ('E_BAD_ARCHIVE_NAME', 'Bad archive name format'); define ('E_CREATE_ZIP', "Impossible de créer l'archive."); @@ -72,7 +74,7 @@ define ('M_WELCOME', "
Informations concernant le compte : ___SENDER___ define ('M_INCONSISTENT_DATES', " (dates incohéantes avec ___FILENAME___ : ___DIRTIME___ != ___FILETIME___)"); -define ('A_ACTION', 'a'); // action : T_LOGIN, T_LOGOUT, A_RECORD+(on|off), A_PERIOD(minute|hour|day|week|month|quarter) +define ('A_ACTION', 'a'); // action : T_LOGIN, T_LOGOUT, A_RECORD+(on|off), A_LANG(fr|en|br), A_PERIOD(minute|hour|day|week|month|quarter) define ('A_GET', 'g'); // get archive define ('A_HASH', 'h'); // file to update or delete define ('A_OPEN_TOKEN', 'o'); // ask token @@ -81,6 +83,7 @@ define ('A_TOKEN', 't'); // session token define ('A_UPDATE', 'u'); // update perriod for file or archive define ('A_RECORD', 'r'); // get track status define ('A_PERIOD', 'p'); // get period status +define ('A_LANG', 'l'); // get lang status define ('A_DELETE', 'd'); // delete file ou archive + (sender+token) define ('T_BAD_PASW', 'bad_psw'); define ('T_CREATE', "create"); @@ -107,6 +110,7 @@ define ('T_ARCHIVE_TITLE', "archive_content"); define ('T_ARCHIVE_MIME', "text/kaz_email_archive"); +$langText = ['fr' => "Francais", 'br' => "Breton", 'en' => "english"]; $periodText = ['minute' => "minute", 'hour' => "heure", 'day' => "jour", 'week' => "semaine", 'month' => "mois"]; // XXX , 'quarter' => "trimestre"]; $periodButton = ['hour' => ["🕕", ">1 heure"], @@ -193,6 +197,29 @@ function isSenderTrack ($sender) { return $sender && file_exists (VAR_TRACKS.$sender); } +// ======================================== +function setSenderLang ($sender, $lang) { + if (!$sender) + return; + if (!file_exists (VAR_LANG)) + mkdir (VAR_LANG, 0755); + if (empty ($lang) || DEFAULT_LANG == $lang) { + rmSenderLang ($sender); + } else + file_put_contents (VAR_LANG.$sender, $lang.NL); +} +function rmSenderLang ($sender) { + if (!$sender) + return; + if (file_exists (VAR_LANG.$sender)) + unlink (VAR_LANG.$sender); +} +function getSenderLang ($sender) { + if ($sender && file_exists (VAR_LANG.$sender)) + return trim (file (VAR_LANG.$sender)[0]); + return DEFAULT_LANG; +} + // ======================================== function setSenderPeriod ($sender, $period) { if (!$sender) @@ -934,6 +961,10 @@ if (isset ($_REQUEST [A_ACTION])) { rmSenderTrack ($sender); $message .= "Votre suivi à été mise à jour."; break; + case preg_match ("/^".A_LANG."(".implode ("|", array_keys ($langText)).")$/i", $_REQUEST [A_ACTION], $matches): + setSenderLang ($sender, $matches [1]); + $message .= "Votre lang à été mise à jour."; + break; case preg_match ("/^".A_PERIOD."(".implode ("|", array_keys ($periodText)).")$/i", $_REQUEST [A_ACTION], $matches): setSenderPeriod ($sender, $matches [1]); $message .= "Votre période à été mise à jour."; diff --git a/src/Jirafeau/f.php b/src/Jirafeau/f.php index b6c1c7b..8e9ec5e 100644 --- a/src/Jirafeau/f.php +++ b/src/Jirafeau/f.php @@ -46,7 +46,7 @@ $link = jirafeau_get_link($link_name); if (count($link) == 0) { require(JIRAFEAU_ROOT.'lib/template/header.php'); echo '
' . t('FILE_404') . - '
'.t('FILE_NOT_AVAIL'). - '
'. - t('FILE_EXPIRED') . ' ' . - t('FILE_DELETED') . - '
' . t('FILE_404') . - '