Merge branch 'develop' into 'develop'

Quelques corrections de bugs

J'ai essayé de faire 1 commit (ou 2) par correction, pour essayer de rendre le truc lisible.

---

**Fixes :**
* Afficher un message sur infos_sondage.php si l'utilisateur n'autorise pas **les cookies**
* Afficher un message sur infos_sondage.php si l'utilisateur n'autorise pas **Javascript**
* Problème quand le nom de domaine commence par **admin**

**Technique :**
* Début de découpage de *core.js* en plusieurs *.js* se trouvant dans **js/app/**
* Début de rédaction du CHANGELOG pour la version 0.9

See merge request !37
This commit is contained in:
Olivier PEREZ 2015-03-26 13:59:37 +01:00
commit 3044de5ae3
66 changed files with 2302 additions and 3740 deletions

View File

@ -1,6 +1,19 @@
Les dernières améliorations d'OpenSondage
# Changelog de framadate
## Version 0.9 (... JosephK - OlivierPerez)
- Technique : Réorganisation des classes
- Technique : Découpage en MVC sur la majeur partie de framadate + Installation de Smarty
- Technique : Refonte de la partie données + Rempalcement de Adodb par PDO
- Amélioration : Refonte de l'administration
- Amélioration : Notification de l'utilisation si JAvascript ou les cookies sont désactivés
- Amélioration : Découpage en 2 options pour recevoir ou non les nouveaux vote et commentaires
- Amélioration : Utilisation de jetons CSRF sur certaines actions
- Fix : Purge en 2 étapes. 1. Verrouillage du sondage, 2. 60 jours plus tard suppression du sondage
- Fix : Correction de la date d'expiration qui devient nulle quand on ajoute une colonne
- Fix : clic/focus sur oui/non/si nécessaire → retour à gauche de la barre de scroll sur Chromium
- Fix : Correction sur le choix de la date
Changelog version 0.8 (juillet 2014 Pascal Chevrel - Armony Altinier - JosephK)
## Version 0.8 (juillet 2014 Pascal Chevrel - Armony Altinier - JosephK)
- Améliorations sur l'accessibilité
- Améliorations sur l'ergonomie
- Améliorations sur l'internationalisation (nombreuses phrases en français dans le code)
@ -17,7 +30,7 @@ Les dernières améliorations d'OpenSondage
- Restructuration
- Fix (partiel) bug modification du premier vote en tapant Entrée
Changelog version 0.7 (mars 2013)
## Version 0.7 (mars 2013)
- Fix : le sondage supprimé n'était pas forcément le sondage sélectionné (cfévrier)
- Fix : suppression de STUDS_DIR pour éviter toute confusion
- Fix : corrections l'en-tete et de l'encodage des e-mails (cfévrier)
@ -30,9 +43,8 @@ Les dernières améliorations d'OpenSondage
- Amélioration : possibilité de faire des liens directs vers les types de sondages à créer (pascalchevrel)
- Amélioration : meilleure intégration de la framanav (pyg)
- Amélioration : nombreuses modifications CSS pour un meilleur affichage (pyg)
Changelog des 22 et 23 juin (pyg@framasoft.net)
## Changelog des 22 et 23 juin (pyg@framasoft.net)
- très nombreuses modifications CSS
- ajout de buttons.css pour des boutons plus propres
- ajout de print.css pour une impression sans la classe "corps"
@ -47,24 +59,23 @@ Les dernières améliorations d'OpenSondage
- modification du titre en image
- ajout de htmlspecialchars_decode avec param ENT_QUOTES pour l'envoi des emails
Changelog du 21 juin 2011 (pyg@framasoft.net)
## Changelog du 21 juin 2011 (pyg@framasoft.net)
- très nombreuses modifications CSS
- modification adminstuds.php : ajout de classes aux formulaires et ajout de stripslashes à l'affichage (TODO: à généraliser)
- modification infos_sondages.php : simplification du tableau de choix, ajouts de CSS, ajouts de labels pour faciliter la selection
Changelog version 0.6.7 (mai 2011)
## Changelog version 0.6.7 (mai 2011)
- fork du projet STUdS (https://sourcesup.cru.fr/projects/studs/) de la version trunk du 15 mai 2011)
- reprise par Simon Leblanc
- nettoyage du code (indentation, cohérence de la convention de codage)
- suppression des warning php
- résolution d'une faille de sécurité par injection SQL
- résolution d'une faille de sécurité par injection mail
- correction dans le fichier de langue (merci à Julien Reitzel)
- possibilité de mettre un texte libre pour les horaires
- version Framasoft
- reprise par Simon Leblanc
- nettoyage du code (indentation, cohérence de la convention de codage)
- suppression des warning php
- résolution d'une faille de sécurité par injection SQL
- résolution d'une faille de sécurité par injection mail
- correction dans le fichier de langue (merci à Julien Reitzel)
- possibilité de mettre un texte libre pour les horaires
- version Framasoft
Les dernières améliorations de STUdS
# Les dernières améliorations de STUdS
Changelog version 0.6.6 (XXX 2011) :
- internationalisation avec gettext
- abstraction de la base de données avec ADOdb

View File

@ -25,4 +25,7 @@ $content = ob_get_clean();
$smarty->assign('title', _('Administration'));
$smarty->assign('logs', $content);
$smarty->assign('title', __('Admin\\Logs'));
$smarty->display('admin/logs.tpl');

View File

@ -19,7 +19,7 @@
use Framadate\Migration\From_0_0_to_0_8_Migration;
use Framadate\Migration\From_0_8_to_0_9_Migration;
use Framadate\Migration\From_0_9_to_0_9_1_Migration;
use Framadate\Migration\AddColumn_receiveNewComments_For_0_9;
use Framadate\Migration\Migration;
use Framadate\Utils;
@ -31,7 +31,7 @@ set_time_limit(300);
$migrations = [
new From_0_0_to_0_8_Migration(),
new From_0_8_to_0_9_Migration(),
new From_0_9_to_0_9_1_Migration()
new AddColumn_receiveNewComments_For_0_9()
];
// ---------------------------------------
@ -102,6 +102,6 @@ $smarty->assign('countSkipped', $countSkipped);
$smarty->assign('countTotal', $countTotal);
$smarty->assign('time', $total_time = round((microtime(true)-$_SERVER['REQUEST_TIME_FLOAT']), 4));
$smarty->assign('title', _('Migration'));
$smarty->assign('title', __('Admin\\Migration'));
$smarty->display('admin/migration.tpl');

View File

@ -75,4 +75,6 @@ $smarty->assign('pages', ceil($count / POLLS_PER_PAGE));
$smarty->assign('poll_to_delete', $poll_to_delete);
$smarty->assign('crsf', $securityService->getToken('admin'));
$smarty->assign('title', __('Admin\\Polls'));
$smarty->display('admin/polls.tpl');

View File

@ -53,4 +53,6 @@ if ($action === 'purge' && $securityService->checkCsrf('admin', $_POST['csrf']))
$smarty->assign('message', $message);
$smarty->assign('crsf', $securityService->getToken('admin'));
$smarty->assign('title', __('Admin\\Purge'));
$smarty->display('admin/purge.tpl');

View File

@ -52,7 +52,7 @@ if (!empty($_GET['poll']) && strlen($_GET['poll']) === 24) {
}
if (!$poll) {
$smarty->assign('error', _('This poll doesn\'t exist !'));
$smarty->assign('error', __('Error\\This poll doesn\'t exist !'));
$smarty->display('error.tpl');
exit;
}
@ -63,7 +63,7 @@ if (!$poll) {
if (isset($_POST['update_poll_info'])) {
$updated = false;
$field = $inputService->filterAllowedValues($_POST['update_poll_info'], ['title', 'admin_mail', 'comment', 'rules', 'expiration_date', 'name']);
$field = $inputService->filterAllowedValues($_POST['update_poll_info'], ['title', 'admin_mail', 'description', 'rules', 'expiration_date', 'name']);
// Update the right poll field
if ($field == 'title') {
@ -78,10 +78,10 @@ if (isset($_POST['update_poll_info'])) {
$poll->admin_mail = $admin_mail;
$updated = true;
}
} elseif ($field == 'comment') {
$comment = strip_tags($_POST['comment']);
if ($comment) {
$poll->comment = $comment;
} elseif ($field == 'description') {
$description = strip_tags($_POST['description']);
if ($description) {
$poll->description = $description;
$updated = true;
}
} elseif ($field == 'rules') {
@ -120,9 +120,9 @@ if (isset($_POST['update_poll_info'])) {
// Update poll in database
if ($updated && $adminPollService->updatePoll($poll)) {
$message = new Message('success', _('Poll saved.'));
$message = new Message('success', __('adminstuds\\Poll saved'));
} else {
$message = new Message('danger', _('Failed to save poll.'));
$message = new Message('danger', __('Error\\Failed to save poll'));
$poll = $pollService->findById($poll_id);
}
}
@ -145,19 +145,19 @@ if (!empty($_POST['save'])) { // Save edition of an old vote
$choices = $inputService->filterArray($_POST['choices'], FILTER_VALIDATE_REGEXP, ['options' => ['regexp' => CHOICE_REGEX]]);
if (empty($editedVote)) {
$message = new Message('danger', _('Something is going wrong...'));
$message = new Message('danger', __('Error\\Something is going wrong...'));
}
if (count($choices) != count($_POST['choices'])) {
$message = new Message('danger', _('There is a problem with your choices.'));
$message = new Message('danger', __('Error\\There is a problem with your choices'));
}
if ($message == null) {
// Update vote
$result = $pollService->updateVote($poll_id, $editedVote, $name, $choices);
if ($result) {
$message = new Message('success', _('Update vote successfully.'));
$message = new Message('success', __('adminstuds\\Vote updated'));
} else {
$message = new Message('danger', _('Update vote failed.'));
$message = new Message('danger', __('Error\\Update vote failed'));
}
}
} elseif (isset($_POST['save'])) { // Add a new vote
@ -165,19 +165,19 @@ if (!empty($_POST['save'])) { // Save edition of an old vote
$choices = $inputService->filterArray($_POST['choices'], FILTER_VALIDATE_REGEXP, ['options' => ['regexp' => CHOICE_REGEX]]);
if (empty($name)) {
$message = new Message('danger', _('The name is invalid.'));
$message = new Message('danger', __('Error\\The name is invalid'));
}
if (count($choices) != count($_POST['choices'])) {
$message = new Message('danger', _('There is a problem with your choices.'));
$message = new Message('danger', __('Error\\There is a problem with your choices'));
}
if ($message == null) {
// Add vote
$result = $pollService->addVote($poll_id, $name, $choices);
if ($result) {
$message = new Message('success', _('Update vote successfully.'));
$message = new Message('success', __('adminstuds\\Vote added'));
} else {
$message = new Message('danger', _('Update vote failed.'));
$message = new Message('danger', __('Error\\Adding vote failed'));
}
}
}
@ -189,9 +189,9 @@ if (!empty($_POST['save'])) { // Save edition of an old vote
if (!empty($_POST['delete_vote'])) {
$vote_id = filter_input(INPUT_POST, 'delete_vote', FILTER_VALIDATE_INT);
if ($adminPollService->deleteVote($poll_id, $vote_id)) {
$message = new Message('success', _('Vote delete.'));
$message = new Message('success', __('adminstuds\\Vote deleted'));
} else {
$message = new Message('danger', _('Failed to delete the vote.'));
$message = new Message('danger', __('Error\\Failed to delete the vote'));
}
}
@ -202,15 +202,15 @@ if (!empty($_POST['delete_vote'])) {
if (isset($_POST['remove_all_votes'])) {
$smarty->assign('poll_id', $poll_id);
$smarty->assign('admin_poll_id', $admin_poll_id);
$smarty->assign('title', _('Poll') . ' - ' . $poll->title);
$smarty->assign('title', __('Generic\\Poll') . ' - ' . $poll->title);
$smarty->display('confirm/delete_votes.tpl');
exit;
}
if (isset($_POST['confirm_remove_all_votes'])) {
if ($adminPollService->cleanVotes($poll_id)) {
$message = new Message('success', _('All votes deleted.'));
$message = new Message('success', __('adminstuds\\All votes deleted'));
} else {
$message = new Message('danger', _('Failed to delete all votes.'));
$message = new Message('danger', __('Error\\Failed to delete all votes'));
}
}
@ -223,16 +223,16 @@ if (isset($_POST['add_comment'])) {
$comment = strip_tags($_POST['comment']);
if (empty($name)) {
$message = new Message('danger', _('The name is invalid.'));
$message = new Message('danger', __('Error\\The name is invalid'));
}
if ($message == null) {
// Add comment
$result = $pollService->addComment($poll_id, $name, $comment);
if ($result) {
$message = new Message('success', _('Comment added.'));
$message = new Message('success', __('Comments\\Comment added'));
} else {
$message = new Message('danger', _('Comment failed.'));
$message = new Message('danger', __('Error\\Comment failed'));
}
}
@ -246,9 +246,9 @@ if (!empty($_POST['delete_comment'])) {
$comment_id = filter_input(INPUT_POST, 'delete_comment', FILTER_VALIDATE_INT);
if ($adminPollService->deleteComment($poll_id, $comment_id)) {
$message = new Message('success', _('Comment deleted.'));
$message = new Message('success', __('adminstuds\\Comment deleted'));
} else {
$message = new Message('danger', _('Failed to delete the comment.'));
$message = new Message('danger', __('Error\\Failed to delete the comment'));
}
}
@ -259,15 +259,15 @@ if (!empty($_POST['delete_comment'])) {
if (isset($_POST['remove_all_comments'])) {
$smarty->assign('poll_id', $poll_id);
$smarty->assign('admin_poll_id', $admin_poll_id);
$smarty->assign('title', _('Poll') . ' - ' . $poll->title);
$smarty->assign('title', __('Generic\\Poll') . ' - ' . $poll->title);
$smarty->display('confirm/delete_comments.tpl');
exit;
}
if (isset($_POST['confirm_remove_all_comments'])) {
if ($adminPollService->cleanComments($poll_id)) {
$message = new Message('success', _('All comments deleted.'));
$message = new Message('success', __('All comments deleted'));
} else {
$message = new Message('danger', _('Failed to delete all comments.'));
$message = new Message('danger', __('Error\\Failed to delete all comments'));
}
}
@ -278,19 +278,19 @@ if (isset($_POST['confirm_remove_all_comments'])) {
if (isset($_POST['delete_poll'])) {
$smarty->assign('poll_id', $poll_id);
$smarty->assign('admin_poll_id', $admin_poll_id);
$smarty->assign('title', _('Poll') . ' - ' . $poll->title);
$smarty->assign('title', __('Generic\\Poll') . ' - ' . $poll->title);
$smarty->display('confirm/delete_poll.tpl');
exit;
}
if (isset($_POST['confirm_delete_poll'])) {
if ($adminPollService->deleteEntirePoll($poll_id)) {
$message = new Message('success', _('Poll fully deleted.'));
$message = new Message('success', __('Generic\\Poll fully deleted'));
} else {
$message = new Message('danger', _('Failed to delete the poll.'));
$message = new Message('danger', __('Error\\Failed to delete the poll'));
}
$smarty->assign('poll_id', $poll_id);
$smarty->assign('admin_poll_id', $admin_poll_id);
$smarty->assign('title', _('Poll') . ' - ' . $poll->title);
$smarty->assign('title', __('Generic\\Poll') . ' - ' . $poll->title);
$smarty->assign('message', $message);
$smarty->display('poll_deleted.tpl');
exit;
@ -316,9 +316,9 @@ if (!empty($_POST['delete_column'])) {
}
if ($result) {
$message = new Message('success', _('Column deleted.'));
$message = new Message('success', __('Column deleted'));
} else {
$message = new Message('danger', _('Failed to delete the column.'));
$message = new Message('danger', __('Error\\Failed to delete the column'));
}
}
@ -330,7 +330,7 @@ if (isset($_POST['add_slot'])) {
$smarty->assign('poll_id', $poll_id);
$smarty->assign('admin_poll_id', $admin_poll_id);
$smarty->assign('format', $poll->format);
$smarty->assign('title', _('Poll') . ' - ' . $poll->title);
$smarty->assign('title', __('Generic\\Poll') . ' - ' . $poll->title);
$smarty->display('add_slot.tpl');
exit;
}
@ -347,9 +347,9 @@ if (isset($_POST['confirm_add_slot'])) {
}
if ($result) {
$message = new Message('success', _('Column added.'));
$message = new Message('success', __('adminstuds\\Choice added'));
} else {
$message = new Message('danger', _('Failed to add the column.'));
$message = new Message('danger', __('Error\\Failed to add the column'));
}
}
@ -363,7 +363,7 @@ $comments = $pollService->allCommentsByPollId($poll_id);
$smarty->assign('poll_id', $poll_id);
$smarty->assign('admin_poll_id', $admin_poll_id);
$smarty->assign('poll', $poll);
$smarty->assign('title', _('Poll') . ' - ' . $poll->title);
$smarty->assign('title', __('Generic\\Poll') . ' - ' . $poll->title);
$smarty->assign('expired', strtotime($poll->end_date) < time());
$smarty->assign('deletion_date', $poll->end_date + PURGE_DELAY * 86400);
$smarty->assign('slots', $poll->format === 'D' ? $pollService->splitSlots($slots) : $slots);

View File

@ -90,7 +90,7 @@ class FramaDB {
}
function updatePoll($poll) {
$prepared = $this->prepare('UPDATE `' . Utils::table('poll') . '` SET title=?, admin_name=?, admin_mail=?, description=?, end_date=FROM_UNIXTIME(?), active=?, editable=? WHERE id = ?');
$prepared = $this->prepare('UPDATE `' . Utils::table('poll') . '` SET title=?, admin_name=?, admin_mail=?, description=?, end_date=?, active=?, editable=? WHERE id = ?');
return $prepared->execute([$poll->title, $poll->admin_name, $poll->admin_mail, $poll->description, $poll->end_date, $poll->active, $poll->editable, $poll->id]);
}

View File

@ -1,14 +1,32 @@
<?php
/**
* This software is governed by the CeCILL-B license. If a copy of this license
* is not distributed with this file, you can obtain one at
* http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt
*
* Authors of STUdS (initial project): Guilhem BORGHESI (borghesi@unistra.fr) and Raphaël DROZ
* Authors of Framadate/OpenSondate: Framasoft (https://github.com/framasoft)
*
* =============================
*
* Ce logiciel est régi par la licence CeCILL-B. Si une copie de cette licence
* ne se trouve pas avec ce fichier vous pouvez l'obtenir sur
* http://www.cecill.info/licences/Licence_CeCILL-B_V1-fr.txt
*
* Auteurs de STUdS (projet initial) : Guilhem BORGHESI (borghesi@unistra.fr) et Raphaël DROZ
* Auteurs de Framadate/OpenSondage : Framasoft (https://github.com/framasoft)
*/
namespace Framadate\Migration;
use Framadate\Utils;
/**
* This class executes the aciton in database to migrate data from version 0.9 to 0.9.1.
* This migration adds the field receiveNewComments on the poll table.
*
* @package Framadate\Migration
* @version 0.9
*/
class From_0_9_to_0_9_1_Migration implements Migration {
class AddColumn_receiveNewComments_For_0_9 implements Migration {
function __construct() {
}
@ -19,7 +37,7 @@ class From_0_9_to_0_9_1_Migration implements Migration {
* @return string The description of the migration class
*/
function description() {
return "From 0.9 to 0.9.1";
return "Add column \"receiveNewComments\" for version 0.9";
}
/**

View File

@ -1,8 +1,31 @@
<?php
/**
* This software is governed by the CeCILL-B license. If a copy of this license
* is not distributed with this file, you can obtain one at
* http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt
*
* Authors of STUdS (initial project): Guilhem BORGHESI (borghesi@unistra.fr) and Raphaël DROZ
* Authors of Framadate/OpenSondate: Framasoft (https://github.com/framasoft)
*
* =============================
*
* Ce logiciel est régi par la licence CeCILL-B. Si une copie de cette licence
* ne se trouve pas avec ce fichier vous pouvez l'obtenir sur
* http://www.cecill.info/licences/Licence_CeCILL-B_V1-fr.txt
*
* Auteurs de STUdS (projet initial) : Guilhem BORGHESI (borghesi@unistra.fr) et Raphaël DROZ
* Auteurs de Framadate/OpenSondage : Framasoft (https://github.com/framasoft)
*/
namespace Framadate\Migration;
use Framadate\Utils;
/**
* Class From_0_0_to_0_8_Migration
*
* @package Framadate\Migration
* @version 0.8
*/
class From_0_0_to_0_8_Migration implements Migration {
function __construct() {

View File

@ -1,4 +1,21 @@
<?php
/**
* This software is governed by the CeCILL-B license. If a copy of this license
* is not distributed with this file, you can obtain one at
* http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt
*
* Authors of STUdS (initial project): Guilhem BORGHESI (borghesi@unistra.fr) and Raphaël DROZ
* Authors of Framadate/OpenSondate: Framasoft (https://github.com/framasoft)
*
* =============================
*
* Ce logiciel est régi par la licence CeCILL-B. Si une copie de cette licence
* ne se trouve pas avec ce fichier vous pouvez l'obtenir sur
* http://www.cecill.info/licences/Licence_CeCILL-B_V1-fr.txt
*
* Auteurs de STUdS (projet initial) : Guilhem BORGHESI (borghesi@unistra.fr) et Raphaël DROZ
* Auteurs de Framadate/OpenSondage : Framasoft (https://github.com/framasoft)
*/
namespace Framadate\Migration;
use Framadate\Utils;
@ -7,6 +24,7 @@ use Framadate\Utils;
* This class executes the aciton in database to migrate data from version 0.8 to 0.9.
*
* @package Framadate\Migration
* @version 0.9
*/
class From_0_8_to_0_9_Migration implements Migration {

View File

@ -1,4 +1,21 @@
<?php
/**
* This software is governed by the CeCILL-B license. If a copy of this license
* is not distributed with this file, you can obtain one at
* http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt
*
* Authors of STUdS (initial project): Guilhem BORGHESI (borghesi@unistra.fr) and Raphaël DROZ
* Authors of Framadate/OpenSondate: Framasoft (https://github.com/framasoft)
*
* =============================
*
* Ce logiciel est régi par la licence CeCILL-B. Si une copie de cette licence
* ne se trouve pas avec ce fichier vous pouvez l'obtenir sur
* http://www.cecill.info/licences/Licence_CeCILL-B_V1-fr.txt
*
* Auteurs de STUdS (projet initial) : Guilhem BORGHESI (borghesi@unistra.fr) et Raphaël DROZ
* Auteurs de Framadate/OpenSondage : Framasoft (https://github.com/framasoft)
*/
namespace Framadate\Migration;
interface Migration {

View File

@ -23,13 +23,14 @@ class Utils {
* @return string Server name
*/
public static function get_server_name() {
$scheme = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? 'https' : 'http';
$scheme = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on') ? 'https' : 'http';
$port = in_array($_SERVER['SERVER_PORT'], [80, 443]) ? '' : ':' . $_SERVER['SERVER_PORT'];
$dirname = dirname($_SERVER['SCRIPT_NAME']);
$dirname = $dirname === '\\' ? '/' : $dirname . '/';
$dirname = str_replace('/admin', '', $dirname);
$server_name = $_SERVER['SERVER_NAME'] . $port . $dirname;
return $scheme . '://' . str_replace('/admin', '', str_replace('//', '/', str_replace('///', '/', $server_name)));
return $scheme . '://' . preg_replace('#//+#', '/', $server_name);
}
public static function is_error($cerr) {

View File

@ -42,7 +42,7 @@ const MIGRATION_TABLE = 'framadate_migration';
const TABLENAME_PREFIX = 'fd_';
// Default Language using POSIX variant of BC P47 standard (choose in $ALLOWED_LANGUAGES)
const LANGUE = 'fr_FR';
const DEFAULT_LANGUAGE = 'fr_FR';
// List of supported languages, fake constant as arrays can be used as constants only in PHP >=5.6
$ALLOWED_LANGUAGES = [

View File

@ -18,7 +18,7 @@
*/
// FRAMADATE version
const VERSION = '0.9.1';
const VERSION = '0.9';
// Regex
const POLL_REGEX = '/^[a-z0-9]+$/';

View File

@ -17,62 +17,33 @@
* Auteurs de Framadate/OpenSondage : Framasoft (https://github.com/framasoft)
*/
// Sort languages
asort($ALLOWED_LANGUAGES);
// Prepare I18N instance
$i18n = \o80\i18n\I18N::instance();
$i18n->setDefaultLang(DEFAULT_LANGUAGE);
$i18n->setPath(__DIR__ . '/../../locale');
// Change langauge when user asked for it
if (isset($_POST['lang']) && is_string($_POST['lang']) && in_array($_POST['lang'], array_keys($ALLOWED_LANGUAGES))) {
$mlocale = $_POST['lang'];
$locale = $_POST['lang'];
$_SESSION['lang'] = $_POST['lang'];
} elseif (isset($_SESSION['lang']) && is_string($_SESSION['lang']) && in_array($_SESSION['lang'], array_keys($ALLOWED_LANGUAGES))) {
$mlocale = $_SESSION['lang'];
} elseif (!empty($_SESSION['lang'])) {
$locale = $_SESSION['lang'];
} else {
$mlocale = LANGUE;
// Replace config language by browser language if possible
foreach ($ALLOWED_LANGUAGES as $k => $v) {
if (substr($k, 0, 2) == substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2)) {
$mlocale = $k;
break;
}
}
$locale = DEFAULT_LANGUAGE;
}
/* Tell PHP which locale to use */
$domain = 'Studs';
$locale = $mlocale . '.utf8'; //unix format
if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') {
putenv("LC_ALL=$mlocale"); //Windows env. needed to switch between languages
switch ($mlocale) {
case 'fr_FR' :
$locale = "fra";
break; //$locale in windows locale format, needed to use php function that handle text : strftime()
case 'en_GB' :
$locale = "english";
break; //see http://msdn.microsoft.com/en-us/library/39cwe7zf%28v=vs.90%29.aspx
case 'de_DE' :
$locale = "deu";
break;
case 'es_ES' :
$locale = "esp";
break;
}
}
putenv('LANG=' . $locale);
setlocale(LC_ALL, $locale);
bindtextdomain($domain, ROOT_DIR . 'locale');
bind_textdomain_codeset($domain, 'UTF-8');
textdomain($domain);
/* <html lang="$html_lang"> */
$html_lang = substr($locale, 0, 2);
/* Date Format */
$date_format['txt_full'] = _('%A, den %e. %B %Y'); //summary in choix_date.php and removal date in choix_(date|autre).php
$date_format['txt_short'] = _('%A %e %B %Y'); // radio title
$date_format['txt_day'] = _('%a %e');
$date_format['txt_date'] = _('%Y-%m-%d');
$date_format['txt_year_month'] = _('%B %Y');
$date_format['txt_full'] = __('Date\\FULL'); //summary in choix_date.php and removal date in choix_(date|autre).php
$date_format['txt_short'] = __('Date\\SHORT'); // radio title
$date_format['txt_day'] = __('Date\\DAY');
$date_format['txt_date'] = __('Date\\DATE');
$date_format['txt_month_year'] = __('Date\\MONTH_YEAR');
if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') { //%e can't be used on Windows platform, use %#d instead
foreach ($date_format as $k => $v) {
$date_format[$k] = preg_replace('#(?<!%)((?:%%)*)%e#', '\1%#d', $v); //replace %e by %#d for windows

View File

@ -20,6 +20,7 @@ use Framadate\FramaDB;
// Autoloading of dependencies with Composer
require_once __DIR__ . '/../../vendor/autoload.php';
require_once __DIR__ . '/../../vendor/o80/i18n/src/shortcuts.php';
if (session_id() == '') {
session_start();

View File

@ -27,18 +27,18 @@ function bandeau_titre($titre)
$img = ( IMAGE_TITRE ) ? '<img src="'. Utils::get_server_name(). IMAGE_TITRE. '" alt="'.NOMAPPLICATION.'">' : '';
echo '
<header role="banner">';
if(count($ALLOWED_LANGUAGES)>1){
if(count($ALLOWED_LANGUAGES) > 1){
echo '<form method="post" action="" class="hidden-print">
<div class="input-group input-group-sm pull-right col-md-2 col-xs-4">
<select name="lang" class="form-control" title="'. _("Select the language") .'" >' . liste_lang() . '</select>
<select name="lang" class="form-control" title="'. __('Language selector\\Select the language') .'" >' . liste_lang() . '</select>
<span class="input-group-btn">
<button type="submit" class="btn btn-default btn-sm" title="'. _("Change the language") .'">OK</button>
<button type="submit" class="btn btn-default btn-sm" title="'. __('Language selector\\Change the language') .'">OK</button>
</span>
</div>
</form>';
}
echo '
<h1><a href="'.str_replace('/admin','', Utils::get_server_name()).'" title="'._("Home").' - '.NOMAPPLICATION.'">'.$img.'</a></h1>
<h1><a href="' . Utils::get_server_name() . '" title="' . __('Generic\\Home') . ' - ' . NOMAPPLICATION . '">' . $img . '</a></h1>
<h2 class="lead"><i>'. $titre .'</i></h2>
<hr class="trait" role="presentation" />
</header>
@ -48,7 +48,7 @@ function bandeau_titre($titre)
$tables = $connect->allTables();
$diff = array_diff([Utils::table('comment'), Utils::table('poll'), Utils::table('slot'), Utils::table('vote')], $tables);
if (0 != count($diff)) {
echo '<div class="alert alert-danger">'. _('Framadate is not properly installed, please check the "INSTALL" to setup the database before continuing.') .'</div>';
echo '<div class="alert alert-danger">'. __('Error\\Framadate is not properly installed, please check the "INSTALL" to setup the database before continuing.') .'</div>';
bandeau_pied();
die();
}
@ -72,7 +72,7 @@ function liste_lang()
return $str;
}
function bandeau_pied($admin=false)
function bandeau_pied()
{
echo '
</main>

View File

@ -41,13 +41,13 @@ if (file_exists('bandeaux_local.php')) {
// Step 1/4 : error if $_SESSION from info_sondage are not valid
if (empty($_SESSION['form']->title) || empty($_SESSION['form']->admin_name) || (($config['use_smtp']) ? empty($_SESSION['form']->admin_mail) : false)) {
Utils::print_header(_("Error!"));
bandeau_titre(_("Error!"));
Utils::print_header(__("Error!"));
bandeau_titre(__("Error!"));
echo '
<div class="alert alert-danger">
<h3>' . _('You haven\'t filled the first section of the poll creation.') . ' !</h3>
<p>' . _('Back to the homepage of') . ' <a href="' . Utils::get_server_name() . '"> ' . NOMAPPLICATION . '</a></p>
<h3>' . __('You haven\'t filled the first section of the poll creation.') . ' !</h3>
<p>' . __('Back to the homepage of') . ' <a href="' . Utils::get_server_name() . '"> ' . NOMAPPLICATION . '</a></p>
</div>' . "\n";
bandeau_pied();
@ -96,20 +96,20 @@ if (empty($_SESSION['form']->title) || empty($_SESSION['form']->admin_name) || (
// Send confirmation by mail if enabled
if ($config['use_smtp'] === true) {
$message = _("This is the message you have to send to the people you want to poll. \nNow, you have to send this message to everyone you want to poll.");
$message = __("This is the message you have to send to the people you want to poll. \nNow, you have to send this message to everyone you want to poll.");
$message .= "\n\n";
$message .= stripslashes(html_entity_decode($_SESSION['form']->admin_name, ENT_QUOTES, "UTF-8")) . ' ' . _('hast just created a poll called') . ' : "' . stripslashes(htmlspecialchars_decode($_SESSION['form']->title, ENT_QUOTES)) . "\".\n";
$message .= _('Thanks for filling the poll at the link above') . " :\n\n%s\n\n" . _('Thanks for your confidence.') . "\n" . NOMAPPLICATION;
$message .= stripslashes(html_entity_decode($_SESSION['form']->admin_name, ENT_QUOTES, "UTF-8")) . ' ' . __('hast just created a poll called') . ' : "' . stripslashes(htmlspecialchars_decode($_SESSION['form']->title, ENT_QUOTES)) . "\".\n";
$message .= __('Thanks for filling the poll at the link above') . " :\n\n%s\n\n" . __('Thanks for your confidence.') . "\n" . NOMAPPLICATION;
$message_admin = _("This message should NOT be sent to the polled people. It is private for the poll's creator.\n\nYou can now modify it at the link above");
$message_admin .= " :\n\n" . "%s \n\n" . _('Thanks for your confidence.') . "\n" . NOMAPPLICATION;
$message_admin = __("This message should NOT be sent to the polled people. It is private for the poll's creator.\n\nYou can now modify it at the link above");
$message_admin .= " :\n\n" . "%s \n\n" . __('Thanks for your confidence.') . "\n" . NOMAPPLICATION;
$message = sprintf($message, Utils::getUrlSondage($poll_id));
$message_admin = sprintf($message_admin, Utils::getUrlSondage($admin_poll_id, true));
if ($mailService->isValidEmail($_SESSION['form']->admin_mail)) {
$mailService->send($_SESSION['form']->admin_mail, '[' . NOMAPPLICATION . '][' . _('Author\'s message') . '] ' . _('Poll') . ' : ' . stripslashes(htmlspecialchars_decode($_SESSION['form']->title, ENT_QUOTES)), $message_admin);
$mailService->send($_SESSION['form']->admin_mail, '[' . NOMAPPLICATION . '][' . _('For sending to the polled users') . '] ' . _('Poll') . ' : ' . stripslashes(htmlspecialchars_decode($_SESSION['form']->title, ENT_QUOTES)), $message);
$mailService->send($_SESSION['form']->admin_mail, '[' . NOMAPPLICATION . '][' . __('Author\'s message') . '] ' . __('Poll') . ' : ' . stripslashes(htmlspecialchars_decode($_SESSION['form']->title, ENT_QUOTES)), $message_admin);
$mailService->send($_SESSION['form']->admin_mail, '[' . NOMAPPLICATION . '][' . __('For sending to the polled users') . '] ' . __('Poll') . ' : ' . stripslashes(htmlspecialchars_decode($_SESSION['form']->title, ENT_QUOTES)), $message);
}
}
@ -125,8 +125,8 @@ if (empty($_SESSION['form']->title) || empty($_SESSION['form']->admin_name) || (
} // Step 3/4 : Confirm poll creation and choose a removal date
else if (isset($_POST['fin_sondage_autre'])) {
Utils::print_header(_('Removal date and confirmation (3 on 3)'));
bandeau_titre(_('Removal date and confirmation (3 on 3)'));
Utils::print_header(__('Step 3\\Removal date and confirmation (3 on 3)'));
bandeau_titre(__('Step 3\\Removal date and confirmation (3 on 3)'));
// Store choices in $_SESSION
@ -153,17 +153,17 @@ if (empty($_SESSION['form']->title) || empty($_SESSION['form']->admin_name) || (
preg_match_all('/\[(.*?)\]\((.*?)\)/', $choice->getName(), $md_a); // Markdown [text](href)
if (isset($md_a_img[2][0]) && $md_a_img[2][0] != '' && isset($md_a_img[3][0]) && $md_a_img[3][0] != '') { // [![alt](src)](href)
$li_subject_text = (isset($md_a_img[1][0]) && $md_a_img[1][0] != '') ? stripslashes($md_a_img[1][0]) : _('Choice') . ' ' . ($i + 1);
$li_subject_text = (isset($md_a_img[1][0]) && $md_a_img[1][0] != '') ? stripslashes($md_a_img[1][0]) : __('Generic\\Choice') . ' ' . ($i + 1);
$li_subject_html = '<a href="' . $md_a_img[3][0] . '"><img src="' . $md_a_img[2][0] . '" class="img-responsive" alt="' . $li_subject_text . '" /></a>';
} elseif (isset($md_img[2][0]) && $md_img[2][0] != '') { // ![alt](src)
$li_subject_text = (isset($md_img[1][0]) && $md_img[1][0] != '') ? stripslashes($md_img[1][0]) : _('Choice') . ' ' . ($i + 1);
$li_subject_text = (isset($md_img[1][0]) && $md_img[1][0] != '') ? stripslashes($md_img[1][0]) : __('Generic\\Choice') . ' ' . ($i + 1);
$li_subject_html = '<img src="' . $md_img[2][0] . '" class="img-responsive" alt="' . $li_subject_text . '" />';
} elseif (isset($md_a[2][0]) && $md_a[2][0] != '') { // [text](href)
$li_subject_text = (isset($md_a[1][0]) && $md_a[1][0] != '') ? stripslashes($md_a[1][0]) : _('Choice') . ' ' . ($i + 1);
$li_subject_text = (isset($md_a[1][0]) && $md_a[1][0] != '') ? stripslashes($md_a[1][0]) : __('Generic\\Choice') . ' ' . ($i + 1);
$li_subject_html = '<a href="' . $md_a[2][0] . '">' . $li_subject_text . '</a>';
} else { // text only
@ -184,33 +184,33 @@ if (empty($_SESSION['form']->title) || empty($_SESSION['form']->admin_name) || (
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="well summary">
<h4>' . _('List of your choices') . '</h4>
<h4>' . __('Step 3\\List of your choices') . '</h4>
' . $summary . '
</div>
<div class="alert alert-info">
<p>' . _('Your poll will be automatically removed after') . ' ' . $config['default_poll_duration'] . ' ' . _('days') . '.<br />' . _('You can set a closer removal date for it.') . '</p>
<p>' . __('Step 3\\Your poll will be automatically removed after') . ' ' . $config['default_poll_duration'] . ' ' . __('Generic\\days') . '.<br />' . __('Step 3\\You can set a closer removal date for it.') . '</p>
<div class="form-group">
<label for="enddate" class="col-sm-5 control-label">' . _('Removal date (optional)') . '</label>
<label for="enddate" class="col-sm-5 control-label">' . __('Step 3\\Removal date:') . '</label>
<div class="col-sm-6">
<div class="input-group date">
<span class="input-group-addon"><i class="glyphicon glyphicon-calendar text-info"></i></span>
<input type="text" class="form-control" id="enddate" data-date-format="' . _('dd/mm/yyyy') . '" aria-describedby="dateformat" name="enddate" value="' . $end_date_str . '" size="10" maxlength="10" placeholder="' . _("dd/mm/yyyy") . '" />
<input type="text" class="form-control" id="enddate" data-date-format="' . __('Date\\dd/mm/yyyy') . '" aria-describedby="dateformat" name="enddate" value="' . $end_date_str . '" size="10" maxlength="10" placeholder="' . __("dd/mm/yyyy") . '" />
</div>
</div>
<span id="dateformat" class="sr-only">' . _('(dd/mm/yyyy)') . '</span>
<span id="dateformat" class="sr-only">' . __('Date\\dd/mm/yyyy') . '</span>
</div>
</div>
<div class="alert alert-warning">
<p>' . _('Once you have confirmed the creation of your poll, you will be automatically redirected on the administration page of your poll.') . '</p>';
<p>' . __('Step 3\\Once you have confirmed the creation of your poll, you will be automatically redirected on the administration page of your poll.') . '</p>';
if ($config['use_smtp'] == true) {
echo '
<p>' . _('Then, you will receive quickly two emails: one contening the link of your poll for sending it to the voters, the other contening the link to the administration page of your poll.') . '</p>';
<p>' . __('Step 3\\Then, you will receive quickly two emails: one contening the link of your poll for sending it to the voters, the other contening the link to the administration page of your poll.') . '</p>';
}
echo '
</div>
<p class="text-right">
<button class="btn btn-default" onclick="javascript:window.history.back();" title="' . _('Back to step 2') . '">' . _('Back') . '</button>
<button name="confirmecreation" value="confirmecreation" type="submit" class="btn btn-success">' . _('Create the poll') . '</button>
<button class="btn btn-default" onclick="javascript:window.history.back();" title="' . __('Step 3\\Back to step 2') . '">' . __('Generic\\Back') . '</button>
<button name="confirmecreation" value="confirmecreation" type="submit" class="btn btn-success">' . __('Step 3\\Create the poll') . '</button>
</p>
</div>
</div>
@ -220,8 +220,8 @@ if (empty($_SESSION['form']->title) || empty($_SESSION['form']->admin_name) || (
// Step 2/4 : Select choices of the poll
} else {
Utils::print_header(_('Poll subjects (2 on 3)'));
bandeau_titre(_('Poll subjects (2 on 3)'));
Utils::print_header(__('Step 2 classic\\Poll subjects (2 on 3)'));
bandeau_titre(__('Step 2 classic\\Poll subjects (2 on 3)'));
echo '
<form name="formulaire" action="' . Utils::get_server_name() . 'choix_autre.php" method="POST" class="form-horizontal" role="form">
@ -229,10 +229,10 @@ if (empty($_SESSION['form']->title) || empty($_SESSION['form']->admin_name) || (
<div class="col-md-8 col-md-offset-2">';
echo '
<div class="alert alert-info">
<p>' . _("To make a generic poll you need to propose at least two choices between differents subjects.") . '</p>
<p>' . _("You can add or remove additional choices with the buttons") . ' <span class="glyphicon glyphicon-minus text-info"></span><span class="sr-only">' . _("Remove") . '</span> <span class="glyphicon glyphicon-plus text-success"></span><span class="sr-only">' . _("Add") . '</span></p>';
<p>' . __('Step 2 classic\\To make a generic poll you need to propose at least two choices between differents subjects.') . '</p>
<p>' . __('Step 2 classic\\You can add or remove additional choices with the buttons') . ' <span class="glyphicon glyphicon-minus text-info"></span><span class="sr-only">' . __('Generic\\Remove') . '</span> <span class="glyphicon glyphicon-plus text-success"></span><span class="sr-only">' . __('Generic\\Add') . '</span></p>';
if ($config['user_can_add_img_or_link']) {
echo ' <p>' . _("It's possible to propose links or images by using ") . '<a href="http://' . $html_lang . '.wikipedia.org/wiki/Markdown">' . _("the Markdown syntax") . '</a>.</p>';
echo ' <p>' . __('Step 2 classic\\It\'s possible to propose links or images by using') . ' <a href="http://' . $html_lang . '.wikipedia.org/wiki/Markdown">' . __('Step 2 classic\\the Markdown syntax') . '</a>.</p>';
}
echo ' </div>' . "\n";
@ -243,11 +243,11 @@ if (empty($_SESSION['form']->title) || empty($_SESSION['form']->admin_name) || (
$choice = isset($choices[$i]) ? $choices[$i] : new Choice();
echo '
<div class="form-group choice-field">
<label for="choice' . $i . '" class="col-sm-2 control-label">' . _('Choice') . ' ' . ($i + 1) . '</label>
<label for="choice' . $i . '" class="col-sm-2 control-label">' . __('Generic\\Choice') . ' ' . ($i + 1) . '</label>
<div class="col-sm-10 input-group">
<input type="text" class="form-control" name="choices[]" size="40" value="' . $choice->getName() . '" id="choice' . $i . '" />';
if ($config['user_can_add_img_or_link']) {
echo '<span class="input-group-addon btn-link md-a-img" title="' . _('Add a link or an image') . ' - ' . _('Choice') . ' ' . ($i + 1) . '" ><span class="glyphicon glyphicon-picture"></span> <span class="glyphicon glyphicon-link"></span></span>';
echo '<span class="input-group-addon btn-link md-a-img" title="' . __('Step 2 classic\\Add a link or an image') . ' - ' . __('Generic\\Choice') . ' ' . ($i + 1) . '" ><span class="glyphicon glyphicon-picture"></span> <span class="glyphicon glyphicon-link"></span></span>';
}
echo '
</div>
@ -257,13 +257,13 @@ if (empty($_SESSION['form']->title) || empty($_SESSION['form']->admin_name) || (
echo '
<div class="col-md-4">
<div class="btn-group btn-group">
<button type="button" id="remove-a-choice" class="btn btn-default" title="' . _('Remove a choice') . '"><span class="glyphicon glyphicon-minus text-info"></span><span class="sr-only">' . _('Remove') . '</span></button>
<button type="button" id="add-a-choice" class="btn btn-default" title="' . _('Add a choice') . '"><span class="glyphicon glyphicon-plus text-success"></span><span class="sr-only">' . _('Add') . '</span></button>
<button type="button" id="remove-a-choice" class="btn btn-default" title="' . __('Step 2 classic\\Remove a choice') . '"><span class="glyphicon glyphicon-minus text-info"></span><span class="sr-only">' . __('Generic\\Remove') . '</span></button>
<button type="button" id="add-a-choice" class="btn btn-default" title="' . __('Step 2 classic\\Add a choice') . '"><span class="glyphicon glyphicon-plus text-success"></span><span class="sr-only">' . __('Generic\\Add') . '</span></button>
</div>
</div>
<div class="col-md-8 text-right">
<a class="btn btn-default" href="' . Utils::get_server_name() . 'infos_sondage.php?choix_sondage=autre" title="' . _('Back to step 1') . '">' . _('Back') . '</a>
<button name="fin_sondage_autre" value="' . _('Next') . '" type="submit" class="btn btn-success disabled" title="' . _('Go to step 3') . '">' . _('Next') . '</button>
<a class="btn btn-default" href="' . Utils::get_server_name() . 'infos_sondage.php?choix_sondage=autre" title="' . __('Step 2\\Back to step 1') . '">' . __('Generic\\Back') . '</a>
<button name="fin_sondage_autre" value="' . __('Generic\\Next') . '" type="submit" class="btn btn-success disabled" title="' . __('Step 2\\Go to step 3') . '">' . __('Generic\\Next') . '</button>
</div>
</div>
</div>
@ -271,32 +271,36 @@ if (empty($_SESSION['form']->title) || empty($_SESSION['form']->admin_name) || (
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">' . _('Close') . '</span></button>
<p class="modal-title" id="md-a-imgModalLabel">' . _("Add a link or an image") . '</p>
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">' . __('Generic\\Close') . '</span></button>
<p class="modal-title" id="md-a-imgModalLabel">' . __('Step 2 classic\\Add a link or an image') . '</p>
</div>
<div class="modal-body">
<p class="alert alert-info">' . _("These fields are optional. You can add a link, an image or both.") . '</p>
<p class="alert alert-info">' . __('Step 2 classic\\These fields are optional. You can add a link, an image or both.') . '</p>
<div class="form-group">
<label for="md-img"><span class="glyphicon glyphicon-picture"></span> ' . _('URL of the image') . '</label>
<label for="md-img"><span class="glyphicon glyphicon-picture"></span> ' . __('Step 2 classic\\URL of the image') . '</label>
<input id="md-img" type="text" placeholder="http://…" class="form-control" size="40" />
</div>
<div class="form-group">
<label for="md-a"><span class="glyphicon glyphicon-link"></span> ' . _('Link') . '</label>
<label for="md-a"><span class="glyphicon glyphicon-link"></span> ' . __('Generic\\Link') . '</label>
<input id="md-a" type="text" placeholder="http://…" class="form-control" size="40" />
</div>
<div class="form-group">
<label for="md-text">' . _('Alternative text') . '</label>
<label for="md-text">' . __('Step 2 classic\\Alternative text') . '</label>
<input id="md-text" type="text" class="form-control" size="40" />
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">' . _('Cancel') . '</button>
<button type="button" class="btn btn-primary">' . _('Add') . '</button>
<button type="button" class="btn btn-default" data-dismiss="modal">' . __('Generic\\Cancel') . '</button>
<button type="button" class="btn btn-primary">' . __('Generic\\Add') . '</button>
</div>
</div>
</div>
</div>
</form>' . "\n";
</form>
<script type="text/javascript" src="js/app/framadatepicker.js"></script>
<script type="text/javascript" src="js/app/classic_poll.js"></script>
' . "\n";
bandeau_pied();

View File

@ -43,13 +43,13 @@ if (is_readable('bandeaux_local.php')) {
// Step 1/4 : error if $_SESSION from info_sondage are not valid
if (!isset($_SESSION['form']->title) || !isset($_SESSION['form']->admin_name) || ($config['use_smtp'] && !isset($_SESSION['form']->admin_mail))) {
Utils::print_header ( _('Error!') );
bandeau_titre(_('Error!'));
Utils::print_header ( __('Error\\Error!') );
bandeau_titre(__('Error\\Error!'));
echo '
<div class="alert alter-danger">
<h3>' . _('You haven\'t filled the first section of the poll creation.') . ' !</h3>
<p>' . _('Back to the homepage of ') . ' ' . '<a href="' . Utils::get_server_name() . '">' . NOMAPPLICATION . '</a>.</p>
<h3>' . __('Error\\You haven\'t filled the first section of the poll creation.') . ' !</h3>
<p>' . __('Error\\Back to the homepage of') . ' ' . '<a href="' . Utils::get_server_name() . '">' . NOMAPPLICATION . '</a>.</p>
</div>';
@ -94,20 +94,20 @@ if (!isset($_SESSION['form']->title) || !isset($_SESSION['form']->admin_name) ||
// Send confirmation by mail if enabled
if ($config['use_smtp'] === true) {
$message = _("This is the message you have to send to the people you want to poll. \nNow, you have to send this message to everyone you want to poll.");
$message = __("Mail\\This is the message you have to send to the people you want to poll. \nNow, you have to send this message to everyone you want to poll.");
$message .= "\n\n";
$message .= stripslashes(html_entity_decode($_SESSION['form']->admin_name, ENT_QUOTES, 'UTF-8')) . ' ' . _("hast just created a poll called") . ' : "' . stripslashes(htmlspecialchars_decode($_SESSION['form']->title, ENT_QUOTES)) . "\".\n";
$message .= _('Thanks for filling the poll at the link above') . " :\n\n%s\n\n" . _('Thanks for your confidence.') . "\n" . NOMAPPLICATION;
$message .= stripslashes(html_entity_decode($_SESSION['form']->admin_name, ENT_QUOTES, 'UTF-8')) . ' ' . __('Mail\\hast just created a poll called') . ' : "' . stripslashes(htmlspecialchars_decode($_SESSION['form']->title, ENT_QUOTES)) . "\".\n";
$message .= __('Mail\\Thanks for filling the poll at the link above') . " :\n\n%s\n\n" . __('Mail\\Thanks for your confidence.') . "\n" . NOMAPPLICATION;
$message_admin = _("This message should NOT be sent to the polled people. It is private for the poll's creator.\n\nYou can now modify it at the link above");
$message_admin .= " :\n\n" . "%s \n\n" . _('Thanks for your confidence.') . "\n" . NOMAPPLICATION;
$message_admin = __("Mail\\This message should NOT be sent to the polled people. It is private for the poll's creator.\n\nYou can now modify it at the link above");
$message_admin .= " :\n\n" . "%s \n\n" . __('Mail\\Thanks for your confidence.') . "\n" . NOMAPPLICATION;
$message = sprintf($message, Utils::getUrlSondage($poll_id));
$message_admin = sprintf($message_admin, Utils::getUrlSondage($admin_poll_id, true));
if ($mailService->isValidEmail($_SESSION['form']->admin_mail)) {
$mailService->send($_SESSION['form']->admin_mail, '[' . NOMAPPLICATION . '][' . _('Author\'s message') . '] ' . _('Poll') . ' : ' . stripslashes(htmlspecialchars_decode($_SESSION['form']->title, ENT_QUOTES)), $message_admin);
$mailService->send($_SESSION['form']->admin_mail, '[' . NOMAPPLICATION . '][' . _('For sending to the polled users') . '] ' . _('Poll') . ' : ' . stripslashes(htmlspecialchars_decode($_SESSION['form']->title, ENT_QUOTES)), $message);
$mailService->send($_SESSION['form']->admin_mail, '[' . NOMAPPLICATION . '][' . __('Mail\\Author\'s message') . '] ' . __('Generic\\Poll') . ' : ' . stripslashes(htmlspecialchars_decode($_SESSION['form']->title, ENT_QUOTES)), $message_admin);
$mailService->send($_SESSION['form']->admin_mail, '[' . NOMAPPLICATION . '][' . __('Mail\\For sending to the polled users') . '] ' . __('Generic\\Poll') . ' : ' . stripslashes(htmlspecialchars_decode($_SESSION['form']->title, ENT_QUOTES)), $message);
}
}
@ -154,8 +154,8 @@ if (!isset($_SESSION['form']->title) || !isset($_SESSION['form']->admin_name) ||
// Step 3/4 : Confirm poll creation
if (!empty($_POST['choixheures']) && !isset($_SESSION['form']->totalchoixjour)) {
Utils::print_header ( _('Removal date and confirmation (3 on 3)') );
bandeau_titre(_('Removal date and confirmation (3 on 3)'));
Utils::print_header ( __('Step 3\\Removal date and confirmation (3 on 3)') );
bandeau_titre(__('Step 3\\Removal date and confirmation (3 on 3)'));
$_SESSION['form']->sortChoices();
$last_date = $_SESSION['form']->lastChoice()->getName();
@ -181,34 +181,34 @@ if (!isset($_SESSION['form']->title) || !isset($_SESSION['form']->admin_name) ||
<form name="formulaire" action="' . Utils::get_server_name() . 'choix_date.php" method="POST" class="form-horizontal" role="form">
<div class="row" id="selected-days">
<div class="col-md-8 col-md-offset-2">
<h3>'. _('Confirm the creation of your poll') .'</h3>
<h3>'. __('Step 3\\Confirm the creation of your poll') .'</h3>
<div class="well summary">
<h4>'. _('List of your choices').'</h4>
<h4>'. __('Step 3\\List of your choices').'</h4>
'. $summary .'
</div>
<div class="alert alert-info clearfix">
<p>' . _('Your poll will be automatically removed '). $config['default_poll_duration'] . ' ' . _('days') . ' ' ._('after the last date of your poll') . '.<br />' . _('You can set a closer removal date for it.') .'</p>
<p>' . __('Step 3\\Your poll will be automatically removed after') . ' ' . $config['default_poll_duration'] . ' ' . __('Generic\\days') . ' ' .__('Step 3\\after the last date of your poll:') . '<br />' . __('Step 3\\You can set a closer removal date for it.') .'</p>
<div class="form-group">
<label for="enddate" class="col-sm-5 control-label">'. _('Removal date') .'</label>
<label for="enddate" class="col-sm-5 control-label">'. __('Step 3\\Removal date:') .'</label>
<div class="col-sm-6">
<div class="input-group date">
<span class="input-group-addon"><i class="glyphicon glyphicon-calendar text-info"></i></span>
<input type="text" class="form-control" id="enddate" data-date-format="'. _('dd/mm/yyyy') .'" aria-describedby="dateformat" name="enddate" value="'.$end_date_str.'" size="10" maxlength="10" placeholder="'. _('dd/mm/yyyy') .'" />
<input type="text" class="form-control" id="enddate" data-date-format="'. __('Date\\dd/mm/yyyy') .'" aria-describedby="dateformat" name="enddate" value="'.$end_date_str.'" size="10" maxlength="10" placeholder="'. __('dd/mm/yyyy') .'" />
</div>
</div>
<span id="dateformat" class="sr-only">'. _("(dd/mm/yyyy)") .'</span>
<span id="dateformat" class="sr-only">('. __("Date\\dd/mm/yyyy") .')</span>
</div>
</div>
<div class="alert alert-warning">
<p>'. _('Once you have confirmed the creation of your poll, you will be automatically redirected on the administration page of your poll.'). '</p>';
<p>'. __('Step 3\\Once you have confirmed the creation of your poll, you will be automatically redirected on the administration page of your poll.'). '</p>';
if($config['use_smtp'] == true) {
echo '<p>' . _('Then, you will receive quickly two emails: one contening the link of your poll for sending it to the voters, the other contening the link to the administration page of your poll.') .'</p>';
echo '<p>' . __('Step 3\\Then, you will receive quickly two emails: one contening the link of your poll for sending it to the voters, the other contening the link to the administration page of your poll.') .'</p>';
}
echo '
</div>
<p class="text-right">
<button class="btn btn-default" onclick="javascript:window.history.back();" title="'. _('Back to step 2') . '">'. _('Back') . '</button>
<button name="confirmation" value="confirmation" type="submit" class="btn btn-success">'. _('Create the poll') . '</button>
<button class="btn btn-default" onclick="javascript:window.history.back();" title="'. __('Step 3\\Back to step 2') . '">'. __('Generic\\Back') . '</button>
<button name="confirmation" value="confirmation" type="submit" class="btn btn-success">'. __('Step 3\\Create the poll') . '</button>
</p>
</div>
</div>
@ -218,77 +218,82 @@ if (!isset($_SESSION['form']->title) || !isset($_SESSION['form']->admin_name) ||
// Step 2/4 : Select dates of the poll
} else {
Utils::print_header ( _('Poll dates (2 on 3)') );
bandeau_titre(_('Poll dates (2 on 3)'));
Utils::print_header(__('Step 2 date\\Poll dates (2 on 3)'));
bandeau_titre(__('Step 2 date\\Poll dates (2 on 3)'));
echo '
<form name="formulaire" action="' . Utils::get_server_name() . 'choix_date.php" method="POST" class="form-horizontal" role="form">
<div class="row" id="selected-days">
<div class="col-md-10 col-md-offset-1">
<h3>'. _('Choose the dates of your poll') .'</h3>
<h3>'. __('Step 2 date\\Choose the dates of your poll') .'</h3>
<div class="alert alert-info">
<p>'. _('To schedule an event you need to propose at least two choices (two hours for one day or two days).').'</p>
<p>'. _('You can add or remove additionnal days and hours with the buttons') .' <span class="glyphicon glyphicon-minus text-info"></span><span class="sr-only">'. _('Remove') .'</span> <span class="glyphicon glyphicon-plus text-success"></span><span class="sr-only">'. _('Add') .'</span></p>
<p>'. _('For each selected day, you can choose, or not, meeting hours (e.g.: "8h", "8:30", "8h-10h", "evening", etc.)').'</p>
<p>'. __('Step 2 date\\To schedule an event you need to propose at least two choices (two hours for one day or two days).').'</p>
<p>'. __('Step 2 date\\You can add or remove additionnal days and hours with the buttons') .' <span class="glyphicon glyphicon-minus text-info"></span><span class="sr-only">'. __('Remove') .'</span> <span class="glyphicon glyphicon-plus text-success"></span><span class="sr-only">'. __('Add') .'</span></p>
<p>'. __('Step 2 date\\For each selected day, you can choose, or not, meeting hours (e.g.: "8h", "8:30", "8h-10h", "evening", etc.)').'</p>
</div>';
// Fields days : 3 by default
$nb_days = (isset($_SESSION['totalchoixjour'])) ? count($_SESSION['totalchoixjour']) : 3;
for ($i=0;$i<$nb_days;$i++) {
for ($i = 0; $i < $nb_days; $i++) {
$day_value = isset($_SESSION['totalchoixjour'][$i]) ? strftime('%d/%m/%Y', $_SESSION['totalchoixjour'][$i]) : '';
echo '
<fieldset>
<div class="form-group">
<legend>
<label class="sr-only" for="day'.$i.'">'. _('Day') .' '. ($i+1) .'</label>
<label class="sr-only" for="day'.$i.'">'. __('Generic\\Day') .' '. ($i+1) .'</label>
<div class="input-group date col-xs-7">
<span class="input-group-addon"><i class="glyphicon glyphicon-calendar text-info"></i></span>
<input type="text" class="form-control" id="day'.$i.'" title="'. _("Day") .' '. ($i+1) .'" data-date-format="'. _('dd/mm/yyyy') .'" aria-describedby="dateformat'.$i.'" name="days[]" value="'.$day_value.'" size="10" maxlength="10" placeholder="'. _("dd/mm/yyyy") .'" />
<input type="text" class="form-control" id="day'.$i.'" title="'. __('Generic\\Day') .' '. ($i+1) .'" data-date-format="'. __('Date\\dd/mm/yyyy') .'" aria-describedby="dateformat'.$i.'" name="days[]" value="'.$day_value.'" size="10" maxlength="10" placeholder="'. __('Date\\dd/mm/yyyy') .'" />
</div>
<span id="dateformat'.$i.'" class="sr-only">'. _('(dd/mm/yyyy)') .'</span>
<span id="dateformat'.$i.'" class="sr-only">('. __('Date\\dd/mm/yyyy') .')</span>
</legend>'."\n";
// Fields hours : 3 by default
for ($j=0;$j<max(count(isset($_SESSION['horaires'.$i]) ? $_SESSION['horaires'.$i] : 0),3);$j++) {
$moments = isset($_SESSION['horaires' . $i]) ? $_SESSION['horaires' . $i] : [];
for ($j = 0; $j < max(count($moments), 3); $j++) {
$hour_value = isset($_SESSION['horaires'.$i][$j]) ? $_SESSION['horaires'.$i][$j] : '';
echo '
<div class="col-sm-2">
<label for="d'.$i.'-h'.$j.'" class="sr-only control-label">'. _('Time') .' '. ($j+1) .'</label>
<input type="text" class="form-control hours" title="'.$day_value.' - '. _('Time') .' '. ($j+1) .'" placeholder="'. _('Time') .' '. ($j+1) .'" id="d'.$i.'-h'.$j.'" name="horaires'.$i.'[]" value="'.$hour_value.'" />
<label for="d'.$i.'-h'.$j.'" class="sr-only control-label">'. __('Generic\\Time') .' '. ($j+1) .'</label>
<input type="text" class="form-control hours" title="'.$day_value.' - '. __('Generic\\Time') .' '. ($j+1) .'" placeholder="'. __('Generic\\Time') .' '. ($j+1) .'" id="d'.$i.'-h'.$j.'" name="horaires'.$i.'[]" value="'.$hour_value.'" />
</div>'."\n";
}
echo '
<div class="col-sm-2"><div class="btn-group btn-group-xs" style="margin-top: 5px;">
<button type="button" title="'. _("Remove an hour") .'" class="remove-an-hour btn btn-default"><span class="glyphicon glyphicon-minus text-info"></span><span class="sr-only">'. _("Remove an hour") .'</span></button>
<button type="button" title="'. _("Add an hour") .'" class="add-an-hour btn btn-default"><span class="glyphicon glyphicon-plus text-success"></span><span class="sr-only">'. _("Add an hour") .'</span></button>
<button type="button" title="'. __('Step 2 date\\Remove an hour') .'" class="remove-an-hour btn btn-default"><span class="glyphicon glyphicon-minus text-info"></span><span class="sr-only">'. __("Remove an hour") .'</span></button>
<button type="button" title="'. __('Step 2 date\\Add an hour') .'" class="add-an-hour btn btn-default"><span class="glyphicon glyphicon-plus text-success"></span><span class="sr-only">'. __("Add an hour") .'</span></button>
</div></div>
</div>
</fieldset>';
}
echo '
<div class="col-md-4">
<button type="button" id="copyhours" class="btn btn-default disabled" title="'. _('Copy hours of the first day') .'"><span class="glyphicon glyphicon-sort-by-attributes-alt text-info"></span><span class="sr-only">'. _("Copy hours of the first day") .'</span></button>
<button type="button" id="copyhours" class="btn btn-default disabled" title="'. __('Step 2 date\\Copy hours of the first day') .'"><span class="glyphicon glyphicon-sort-by-attributes-alt text-info"></span><span class="sr-only">'. __('Step 2 date\\Copy hours of the first day') .'</span></button>
<div class="btn-group btn-group">
<button type="button" id="remove-a-day" class="btn btn-default disabled" title="'. _('Remove a day') .'"><span class="glyphicon glyphicon-minus text-info"></span><span class="sr-only">'. _("Remove a day") .'</span></button>
<button type="button" id="add-a-day" class="btn btn-default" title="'. _('Add a day') .'"><span class="glyphicon glyphicon-plus text-success"></span><span class="sr-only">'. _("Add a day") .'</span></button>
<button type="button" id="remove-a-day" class="btn btn-default disabled" title="'. __('Step 2 date\\Remove a day') .'"><span class="glyphicon glyphicon-minus text-info"></span><span class="sr-only">'. __('Step 2 date\\Remove a day') .'</span></button>
<button type="button" id="add-a-day" class="btn btn-default" title="'. __('Step 2 date\\Add a day') .'"><span class="glyphicon glyphicon-plus text-success"></span><span class="sr-only">'. __('Step 2 date\\Add a day') .'</span></button>
</div>
</div>
<div class="col-md-8 text-right">
<div class="btn-group">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
<span class="glyphicon glyphicon-remove text-danger"></span> '. _('Remove') . ' <span class="caret"></span>
<span class="glyphicon glyphicon-remove text-danger"></span> '. __('Generic\\Remove') . ' <span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu">
<li><a id="resetdays" href="javascript:void(0)">'. _('Remove all days') .'</a></li>
<li><a id="resethours" href="javascript:void(0)">'. _('Remove all hours') .'</a></li>
<li><a id="resetdays" href="javascript:void(0)">'. __('Step 2 date\\Remove all days') .'</a></li>
<li><a id="resethours" href="javascript:void(0)">'. __('Step 2 date\\Remove all hours') .'</a></li>
</ul>
</div>
<a class="btn btn-default" href="'.Utils::get_server_name().'infos_sondage.php?choix_sondage=date" title="'. _('Back to step 1') . '">'. _('Back') . '</a>
<button name="choixheures" value="'. _('Next') .'" type="submit" class="btn btn-success disabled" title="'. _('Go to step 3') . '">'. _("Next") .'</button>
<a class="btn btn-default" href="'.Utils::get_server_name().'infos_sondage.php?choix_sondage=date" title="'. __('Step 2\\Back to step 1') . '">'. __('Generic\\Back') . '</a>
<button name="choixheures" value="'. __('Generic\\Next') .'" type="submit" class="btn btn-success disabled" title="'. __('Step 2\\Go to step 3') . '">'. __('Generic\\Next') .'</button>
</div>
</div>
</div>
</form>'."\n";
</form>
<script type="text/javascript" src="js/app/framadatepicker.js"></script>
<script type="text/javascript" src="js/app/date_poll.js"></script>
'."\n";
bandeau_pied();

View File

@ -10,7 +10,8 @@
"type": "project",
"require": {
"smarty/smarty": "3.1.21"
"smarty/smarty": "3.1.21",
"o80/i18n": "dev-develop"
},
"autoload": {

52
composer.lock generated
View File

@ -4,8 +4,54 @@
"Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
"hash": "4bf9a3fa30eb400c9ed140dd2d6fa266",
"hash": "4771fa2616869cff821e2bf1daa6245c",
"packages": [
{
"name": "o80/i18n",
"version": "dev-develop",
"source": {
"type": "git",
"url": "https://github.com/olivierperez/o80-i18n.git",
"reference": "45335ac7a2d24d8ed85861f737758c15cd4f52f6"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/olivierperez/o80-i18n/zipball/45335ac7a2d24d8ed85861f737758c15cd4f52f6",
"reference": "45335ac7a2d24d8ed85861f737758c15cd4f52f6",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"require-dev": {
"phpunit/phpunit": "^4.5"
},
"type": "library",
"autoload": {
"psr-4": {
"o80\\": "src/o80"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"Apache License 2.0"
],
"authors": [
{
"name": "Olivier Perez",
"email": "olivier@olivierperez.fr",
"homepage": "http://github.com/olivierperez"
}
],
"description": "Easy library to manage i18n with PHP.",
"homepage": "https://github.com/olivierperez/o80-i18n",
"keywords": [
"i18n",
"internationalization",
"php"
],
"time": "2015-03-21 22:37:40"
},
{
"name": "smarty/smarty",
"version": "v3.1.21",
@ -65,7 +111,9 @@
"packages-dev": [],
"aliases": [],
"minimum-stability": "stable",
"stability-flags": [],
"stability-flags": {
"o80/i18n": 20
},
"prefer-stable": false,
"prefer-lowest": false,
"platform": [],

View File

@ -14,7 +14,10 @@
* Auteurs de STUdS (projet initial) : Guilhem BORGHESI (borghesi@unistra.fr) et Raphaël DROZ
* Auteurs d'OpenSondage : Framasoft (https://github.com/framasoft)
*/
@font-face {
font-family: "DejaVu Sans";
src: url('../fonts/DejaVuSans.ttf');
}
body {
font-family: "DejaVu Sans", Verdana, Geneva, sans-serif;
color:#333;

View File

@ -0,0 +1,97 @@
Fonts are (c) Bitstream (see below). DejaVu changes are in public domain.
Glyphs imported from Arev fonts are (c) Tavmjong Bah (see below)
Bitstream Vera Fonts Copyright
------------------------------
Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is
a trademark of Bitstream, Inc.
Permission is hereby granted, free of charge, to any person obtaining a copy
of the fonts accompanying this license ("Fonts") and associated
documentation files (the "Font Software"), to reproduce and distribute the
Font Software, including without limitation the rights to use, copy, merge,
publish, distribute, and/or sell copies of the Font Software, and to permit
persons to whom the Font Software is furnished to do so, subject to the
following conditions:
The above copyright and trademark notices and this permission notice shall
be included in all copies of one or more of the Font Software typefaces.
The Font Software may be modified, altered, or added to, and in particular
the designs of glyphs or characters in the Fonts may be modified and
additional glyphs or characters may be added to the Fonts, only if the fonts
are renamed to names not containing either the words "Bitstream" or the word
"Vera".
This License becomes null and void to the extent applicable to Fonts or Font
Software that has been modified and is distributed under the "Bitstream
Vera" names.
The Font Software may be sold as part of a larger software package but no
copy of one or more of the Font Software typefaces may be sold by itself.
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT,
TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME
FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING
ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE
FONT SOFTWARE.
Except as contained in this notice, the names of Gnome, the Gnome
Foundation, and Bitstream Inc., shall not be used in advertising or
otherwise to promote the sale, use or other dealings in this Font Software
without prior written authorization from the Gnome Foundation or Bitstream
Inc., respectively. For further information, contact: fonts at gnome dot
org.
Arev Fonts Copyright
------------------------------
Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved.
Permission is hereby granted, free of charge, to any person obtaining
a copy of the fonts accompanying this license ("Fonts") and
associated documentation files (the "Font Software"), to reproduce
and distribute the modifications to the Bitstream Vera Font Software,
including without limitation the rights to use, copy, merge, publish,
distribute, and/or sell copies of the Font Software, and to permit
persons to whom the Font Software is furnished to do so, subject to
the following conditions:
The above copyright and trademark notices and this permission notice
shall be included in all copies of one or more of the Font Software
typefaces.
The Font Software may be modified, altered, or added to, and in
particular the designs of glyphs or characters in the Fonts may be
modified and additional glyphs or characters may be added to the
Fonts, only if the fonts are renamed to names not containing either
the words "Tavmjong Bah" or the word "Arev".
This License becomes null and void to the extent applicable to Fonts
or Font Software that has been modified and is distributed under the
"Tavmjong Bah Arev" names.
The Font Software may be sold as part of a larger software package but
no copy of one or more of the Font Software typefaces may be sold by
itself.
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL
TAVMJONG BAH BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.
Except as contained in this notice, the name of Tavmjong Bah shall not
be used in advertising or otherwise to promote the sale, use or other
dealings in this Font Software without prior written authorization
from Tavmjong Bah. For further information, contact: tavmjong @ free
. fr.

BIN
fonts/DejaVuSans-Bold.ttf Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
fonts/DejaVuSans.ttf Normal file

Binary file not shown.

View File

@ -27,22 +27,22 @@ if (is_readable('bandeaux_local.php')) {
}
// affichage de la page
Utils::print_header( _("Home") );
bandeau_titre(_("Make your polls"));
Utils::print_header( __('Generic\\Home') );
bandeau_titre(__('Generic\\Make your polls'));
echo '
<div class="row">
<div class="col-md-6 text-center">
<p class="home-choice"><a href="'.Utils::get_server_name().'infos_sondage.php?choix_sondage=date" class="opacity" role="button">
<img class="img-responsive center-block" src="'.Utils::get_server_name().'images/date.png" alt="" />
<br /><span class="btn btn-primary btn-lg"><span class="glyphicon glyphicon-calendar"></span>
'. _('Schedule an event') . '</span>
'. __('Homepage\\Schedule an event') . '</span>
</a></p>
</div>
<div class="col-md-6 text-center">
<p class="home-choice"><a href="'.Utils::get_server_name().'infos_sondage.php?choix_sondage=autre" class="opacity" role="button">
<img alt="" class="img-responsive center-block" src="'.Utils::get_server_name().'images/classic.png" />
<br /><span class="btn btn-info btn-lg"><span class="glyphicon glyphicon-stats"></span>
'. _('Make a classic poll') . '</span>
'. __('Homepage\\Make a classic poll') . '</span>
</a></p>
</div>
</div>
@ -54,26 +54,26 @@ echo '
}
if($config['show_what_is_that'] == true){
echo '<div class="col-md-'.$colmd.'">
<h3>'. _('What is that?') . '</h3>
<h3>'. __('1st section\\What is that?') . '</h3>
<p class="text-center" role="presentation"><span class="glyphicon glyphicon-question-sign" style="font-size:50px"></span></p>
<p>'. _('Framadate is an online service for planning an appointment or make a decision quickly and easily. No registration is required.') .'</p>
<p>'. _('Here is how it works:') . '</p>
<p>'. __('1st section\\Framadate is an online service for planning an appointment or make a decision quickly and easily. No registration is required.') .'</p>
<p>'. __('1st section\\Here is how it works:') . '</p>
<ol>
<li>'. _('Make a poll') . '</li>
<li>'. _('Define dates or subjects to choose') . '</li>
<li>'. _('Send the poll link to your friends or colleagues') . '</li>
<li>'. _('Discuss and make a decision') . '</li>
<li>'. __('1st section\\Make a poll') . '</li>
<li>'. __('1st section\\Define dates or subjects to choose') . '</li>
<li>'. __('1st section\\Send the poll link to your friends or colleagues') . '</li>
<li>'. __('1st section\\Discuss and make a decision') . '</li>
</ol>
<p>'. _('Do you want to ') . '<a href="' . Utils::getUrlSondage('aqg259dth55iuhwm').'">'. _("view an example?") .'</a></p>
<p>'. __('1st section\\Do you want to ') . '<a href="' . Utils::getUrlSondage('aqg259dth55iuhwm').'">'. __('1st section\\view an example?') .'</a></p>
</div>';
}
if($config['show_the_software'] == true){
echo '<div class="col-md-'.$colmd.'">
<h3>'. _('The software') .'</h3>
<h3>'. __('2nd section\\The software') .'</h3>
<p class="text-center" role="presentation"><span class="glyphicon glyphicon-cloud" style="font-size:50px"></span></p>
<p>'. _('Framadate was initially based on '). '<a href="https://sourcesup.cru.fr/projects/studs/">Studs</a>'. _(' a software developed by the University of Strasbourg. Today, it is devevoped by the association Framasoft') .'.</p>
<p>'. _('This software needs javascript and cookies enabled. It is compatible with the following web browsers:') .'</p>
<p>'. __('2nd section\\Framadate was initially based on '). '<a href="https://sourcesup.cru.fr/projects/studs/">Studs</a>'. __('2nd section\\ a software developed by the University of Strasbourg. Today, it is devevoped by the association Framasoft') .'.</p>
<p>'. __('2nd section\\This software needs javascript and cookies enabled. It is compatible with the following web browsers:') .'</p>
<ul>
<li>Microsoft Internet Explorer 9+</li>
<li>Google Chrome 19+</li>
@ -81,17 +81,17 @@ echo '
<li>Safari 5+</li>
<li>Opera 11+</li>
</ul>
<p>'. _('It is governed by the ').'<a href="http://www.cecill.info">'. _('CeCILL-B license').'</a>.</p>
<p>'. __('2nd section\\It is governed by the ').'<a href="http://www.cecill.info">'. __('2nd section\\CeCILL-B license').'</a>.</p>
</div>';
}
if($config['show_cultivate_your_garden'] == true){
echo '<div class="col-md-'.$colmd.'">
<h3>'. _('Cultivate your garden') .'</h3>
<h3>'. __('3rd section\\Cultivate your garden') .'</h3>
<p class="text-center" role="presentation"><span class="glyphicon glyphicon-tree-deciduous" style="font-size:50px"></span></p>
<p>'. _('To participate in the software development, suggest improvements or simply download it, please visit ') .'<a href="https://git.framasoft.org/framasoft/framadate">'._('the development site').'</a>.</p>
<p>'. __('3rd section\\To participate in the software development, suggest improvements or simply download it, please visit ') .'<a href="https://git.framasoft.org/framasoft/framadate">'.__('3rd section\\the development site').'</a>.</p>
<br />
<p>'. _('If you want to install the software for your own use and thus increase your independence, we help you on:') .'</p>
<p>'. __('3rd section\\If you want to install the software for your own use and thus increase your independence, we help you on:') .'</p>
<p class="text-center"><a href="http://framacloud.org/cultiver-son-jardin/installation-de-framadate/" class="btn btn-success"><span class="glyphicon glyphicon-tree-deciduous"></span> framacloud.org</a></p>
</div>';
}

View File

@ -110,14 +110,14 @@ if (!empty($_POST['poursuivre'])) {
} else {
// Title Erreur !
Utils::print_header( _('Error!').' - '._('Poll creation (1 on 3)') );
Utils::print_header( __('Generic\\Error!').' - '.__('Step 1\\Poll creation (1 on 3)') );
}
} else {
// Title OK (formulaire pas encore rempli)
Utils::print_header( _('Poll creation (1 on 3)') );
Utils::print_header( __('Step 1\\Poll creation (1 on 3)') );
}
bandeau_titre( _('Poll creation (1 on 3)') );
bandeau_titre( __('Step 1\\Poll creation (1 on 3)') );
/*
* Préparation des messages d'erreur
@ -150,37 +150,37 @@ if (!empty($_POST['poursuivre'])) {
if (empty($_POST['title'])) {
$errors['title']['aria'] = 'aria-describeby="poll_title_error" ';
$errors['title']['class'] = ' has-error';
$errors['title']['msg'] = '<div class="alert alert-danger" ><p id="poll_title_error">' . _('Enter a title') . '</p></div>';
$errors['title']['msg'] = '<div class="alert alert-danger" ><p id="poll_title_error">' . __('Error\\Enter a title') . '</p></div>';
} elseif ($error_on_title) {
$errors['title']['aria'] = 'aria-describeby="poll_title_error" ';
$errors['title']['class'] = ' has-error';
$errors['title']['msg'] = '<div class="alert alert-danger"><p id="poll_title_error">' . _('Something is wrong with the format') . '</p></div>';
$errors['title']['msg'] = '<div class="alert alert-danger"><p id="poll_title_error">' . __('Error\\Something is wrong with the format') . '</p></div>';
}
if ($error_on_description) {
$errors['description']['aria'] = 'aria-describeby="poll_comment_error" ';
$errors['description']['class'] = ' has-error';
$errors['description']['msg'] = '<div class="alert alert-danger"><p id="poll_comment_error">' . _('Something is wrong with the format') . '</p></div>';
$errors['description']['msg'] = '<div class="alert alert-danger"><p id="poll_comment_error">' . __('Error\\Something is wrong with the format') . '</p></div>';
}
if (empty($_POST['name'])) {
$errors['name']['aria'] = 'aria-describeby="poll_name_error" ';
$errors['name']['class'] = ' has-error';
$errors['name']['msg'] = '<div class="alert alert-danger"><p id="poll_name_error">' . _('Enter a name') . '</p></div>';
$errors['name']['msg'] = '<div class="alert alert-danger"><p id="poll_name_error">' . __('Error\\Enter a name') . '</p></div>';
} elseif ($error_on_name) {
$errors['name']['aria'] = 'aria-describeby="poll_name_error" ';
$errors['name']['class'] = ' has-error';
$errors['name']['msg'] = '<div class="alert alert-danger"><p id="poll_name_error">' . _('Something is wrong with the format') . '</p></div>';
$errors['name']['msg'] = '<div class="alert alert-danger"><p id="poll_name_error">' . __('Error\\Something is wrong with the format') . '</p></div>';
}
if (empty($_POST['mail'])) {
$errors['email']['aria'] = 'aria-describeby="poll_name_error" ';
$errors['email']['class'] = ' has-error';
$errors['email']['msg'] = '<div class="alert alert-danger"><p id="poll_email_error">' . _('Enter an email address') . '</p></div>';
$errors['email']['msg'] = '<div class="alert alert-danger"><p id="poll_email_error">' . __('Error\\Enter an email address') . '</p></div>';
} elseif ($error_on_mail) {
$errors['email']['aria'] = 'aria-describeby="poll_email_error" ';
$errors['email']['class'] = ' has-error';
$errors['email']['msg'] = '<div class="alert alert-danger"><p id="poll_email_error">' . _('The address is not correct! You should enter a valid email address (like r.stallman@outlock.com) in order to receive the link to your poll.') . '</p></div>';
$errors['email']['msg'] = '<div class="alert alert-danger"><p id="poll_email_error">' . __('Error\\The address is not correct! You should enter a valid email address (like r.stallman@outlock.com) in order to receive the link to your poll.') . '</p></div>';
}
}
/*
@ -215,30 +215,30 @@ if ($_SESSION['form']->receiveNewComments) {
// Display form
echo '
<div class="row">
<div class="row" style="display:none" id="form-block">
<div class="col-md-8 col-md-offset-2" >
<form name="formulaire" id="formulaire" action="' . Utils::get_server_name() . 'infos_sondage.php" method="POST" class="form-horizontal" role="form">
<div class="alert alert-info">
<p>'. _('You are in the poll creation section.').' <br /> '._('Required fields cannot be left blank.') .'</p>
<p>'. __('Step 1\\You are in the poll creation section.').' <br /> '.__('Step 1\\Required fields cannot be left blank.') .'</p>
</div>
<div class="form-group'.$errors['title']['class'].'">
<label for="poll_title" class="col-sm-4 control-label">' . _('Poll title') . ' *</label>
<label for="poll_title" class="col-sm-4 control-label">' . __('Step 1\\Poll title') . ' *</label>
<div class="col-sm-8">
<input id="poll_title" type="text" name="title" class="form-control" '.$errors['title']['aria'].' value="'. fromPostOrEmpty('title') .'" />
</div>
</div>
'.$errors['title']['msg'].'
<div class="form-group'.$errors['description']['class'].'">
<label for="poll_comments" class="col-sm-4 control-label">'. _('Description') .'</label>
<label for="poll_comments" class="col-sm-4 control-label">'. __('Generic\\Description') .'</label>
<div class="col-sm-8">
<textarea id="poll_comments" name="description" class="form-control" '.$errors['description']['aria'].' rows="5">'. fromPostOrEmpty('description') .'</textarea>
</div>
</div>
'.$errors['description']['msg'].'
<div class="form-group'.$errors['name']['class'].'">
<label for="yourname" class="col-sm-4 control-label">'. _('Your name') .' *</label>
<label for="yourname" class="col-sm-4 control-label">'. __('Generic\\Your name') .' *</label>
<div class="col-sm-8">
'.$input_name.'
</div>
@ -247,7 +247,7 @@ echo '
if ($config['use_smtp']==true) {
echo '
<div class="form-group'.$errors['email']['class'].'">
<label for="email" class="col-sm-4 control-label">'. _('Your email address') .' *<br /><span class="small">'. _('(in the format name@mail.com)') .'</span></label>
<label for="email" class="col-sm-4 control-label">'. __('Generic\\Your email address') .' *<br /><span class="small">'. __('Generic\\(in the format name@mail.com)') .'</span></label>
<div class="col-sm-8">
'.$input_email.'
</div>
@ -259,7 +259,7 @@ echo '
<div class="col-sm-offset-4 col-sm-8">
<div class="checkbox">
<label>
<input type=checkbox name="editable" '.$editable.' id="editable">'. _('Voters can modify their vote themselves.') .'
<input type=checkbox name="editable" '.$editable.' id="editable">'. __('Step 1\\Voters can modify their vote themselves.') .'
</label>
</div>
</div>
@ -269,7 +269,7 @@ if ($config['use_smtp']==true) {
<div class="col-sm-offset-4 col-sm-8">
<div class="checkbox">
<label>
<input type=checkbox name="receiveNewVotes" '.$receiveNewVotes.' id="receiveNewVotes">'. _('To receive an email for each new vote.') .'
<input type=checkbox name="receiveNewVotes" '.$receiveNewVotes.' id="receiveNewVotes">'. __('Step 1\\To receive an email for each new vote.') .'
</label>
</div>
</div>
@ -278,7 +278,7 @@ if ($config['use_smtp']==true) {
<div class="col-sm-offset-4 col-sm-8">
<div class="checkbox">
<label>
<input type=checkbox name="receiveNewComments" '.$receiveNewComments.' id="receiveNewComments">'. _('To receive an email for each new comment.') .'
<input type=checkbox name="receiveNewComments" '.$receiveNewComments.' id="receiveNewComments">'. __('Step 1\\To receive an email for each new comment.') .'
</label>
</div>
</div>
@ -287,13 +287,51 @@ if ($config['use_smtp']==true) {
echo '
<p class="text-right">
<input type="hidden" name="choix_sondage" value="'. $choix_sondage .'"/>
<button name="poursuivre" value="'. $choix_sondage .'" type="submit" class="btn btn-success" title="'. _('Go to step 2') . '">'. _('Next') . '</button>
<button name="poursuivre" value="'. $choix_sondage .'" type="submit" class="btn btn-success" title="'. __('Step 1\\Go to step 2') . '">'. __('Generic\\Next') . '</button>
</p>
<script type="text/javascript">document.formulaire.title.focus();</script>
</form>
</div>
</div>';
</div>
<noscript>
<div class="alert alert-danger">'.
__('Step 1\\Javascript is disabled on your browser. Its activation is required to create a poll.')
.'</div>
</noscript>
<div id="cookie-warning" class="alert alert-danger" style="display:none">'.
__('Step 1\\Cookies are disabled on your browser. Theirs activation is required to create a poll.')
.'</div>
';
echo '
<script>
// Check Javascript is enabled, if it is it will execute this script
(function() {
// Check cookies are enabled too
var cookieEnabled = function() {
var cookieEnabled = navigator.cookieEnabled;
// if not IE4+ nor NS6+
if (!cookieEnabled && typeof navigator.cookieEnabled === "undefined"){
document.cookie = "testcookie"
cookieEnabled = document.cookie.indexOf("testcookie") != -1;
}
return cookieEnabled;
}
if (cookieEnabled()) {
// Show the form block
document.getElementById("form-block").setAttribute("style", "");
} else {
// Show the warning about cookies
document.getElementById("cookie-warning").setAttribute("style", "");
}
})();
</script>
';
bandeau_pied();

106
js/app/classic_poll.js Normal file
View File

@ -0,0 +1,106 @@
/**
* This software is governed by the CeCILL-B license. If a copy of this license
* is not distributed with this file, you can obtain one at
* http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt
*
* Authors of STUdS (initial project): Guilhem BORGHESI (borghesi@unistra.fr) and Raphaël DROZ
* Authors of Framadate/OpenSondate: Framasoft (https://github.com/framasoft)
*
* =============================
*
* Ce logiciel est régi par la licence CeCILL-B. Si une copie de cette licence
* ne se trouve pas avec ce fichier vous pouvez l'obtenir sur
* http://www.cecill.info/licences/Licence_CeCILL-B_V1-fr.txt
*
* Auteurs de STUdS (projet initial) : Guilhem BORGHESI (borghesi@unistra.fr) et Raphaël DROZ
* Auteurs de Framadate/OpenSondage : Framasoft (https://github.com/framasoft)
*/
(function () {
// 2 choices filled and you can submit
var submitChoicesAvalaible = function () {
var nb_filled_choices = 0;
$('.choice-field input').each(function () {
if ($(this).val() != '') {
nb_filled_choices++;
}
});
if (nb_filled_choices >= 1) {
$('button[name="fin_sondage_autre"]').removeClass('disabled');
} else {
$('button[name="fin_sondage_autre"]').addClass('disabled');
}
};
// Button "Add a choice"
$('#add-a-choice').on('click', function () {
var nb_choices = $('.choice-field').length;
var last_choice = $('.choice-field:last');
var new_choice = last_choice.html();
// label
var last_choice_label = last_choice.children('label').text();
var choice_text = last_choice_label.substring(0, last_choice_label.indexOf(' '));
// for and id
var re_id_choice = new RegExp('"choice' + (nb_choices - 1) + '"', 'g');
var new_choice_html = new_choice.replace(re_id_choice, '"choice' + nb_choices + '"')
.replace(last_choice_label, choice_text + ' ' + (nb_choices + 1))
.replace(/value="(.*?)"/g, 'value=""');
last_choice.after('<div class="form-group choice-field">' + new_choice_html + '</div>');
$('#choice' + nb_choices).focus();
$('#remove-a-choice').removeClass('disabled');
});
// Button "Remove a choice"
$('#remove-a-choice').on('click', function () {
$('.choice-field:last').remove();
var nb_choices = $('.choice-field').length;
$('#choice' + (nb_choices - 1)).focus();
if (nb_choices == 1) {
$('#remove-a-choice').addClass('disabled');
}
submitChoicesAvalaible();
});
$(document).on('keyup, change', '.choice-field input', function () {
submitChoicesAvalaible();
});
submitChoicesAvalaible();
// Button to build markdown from: link + image-url + text
var md_a_imgModal = $('#md-a-imgModal');
var md_text = $('#md-text');
var md_img = $('#md-img');
var md_val = $('#md-a');
$(document).on('click', '.md-a-img', function () {
md_a_imgModal.modal('show');
md_a_imgModal.find('.btn-primary').attr('value', $(this).prev().attr('id'));
$('#md-a-imgModalLabel').text($(this).attr('title'));
});
md_a_imgModal.find('.btn-primary').on('click', function () {
if (md_img.val() != '' && md_val.val() != '') {
$('#' + $(this).val()).val('[![' + md_text.val() + '](' + md_img.val() + ')](' + md_val.val() + ')');
} else if (md_img.val() != '') {
$('#' + $(this).val()).val('![' + md_text.val() + '](' + md_img.val() + ')');
} else if (md_val.val() != '') {
$('#' + $(this).val()).val('[' + md_text.val() + '](' + md_val.val() + ')');
} else {
$('#' + $(this).val()).val(md_text.val());
}
md_a_imgModal.modal('hide');
md_img.val('');
md_val.val('');
md_text.val('');
submitChoicesAvalaible();
});
})();

203
js/app/date_poll.js Normal file
View File

@ -0,0 +1,203 @@
/**
* This software is governed by the CeCILL-B license. If a copy of this license
* is not distributed with this file, you can obtain one at
* http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt
*
* Authors of STUdS (initial project): Guilhem BORGHESI (borghesi@unistra.fr) and Raphaël DROZ
* Authors of Framadate/OpenSondate: Framasoft (https://github.com/framasoft)
*
* =============================
*
* Ce logiciel est régi par la licence CeCILL-B. Si une copie de cette licence
* ne se trouve pas avec ce fichier vous pouvez l'obtenir sur
* http://www.cecill.info/licences/Licence_CeCILL-B_V1-fr.txt
*
* Auteurs de STUdS (projet initial) : Guilhem BORGHESI (borghesi@unistra.fr) et Raphaël DROZ
* Auteurs de Framadate/OpenSondage : Framasoft (https://github.com/framasoft)
*/
(function () {
// Global variables
var $selected_days = $('#selected-days');
var $removeaday_and_copyhours = $('#remove-a-day, #copyhours');
// at least 1 day and 1 hour filled and you can submit
var submitDaysAvalaible = function () {
var nb_filled_days = 0;
var nb_filled_hours = 0;
$selected_days.find('fieldset legend input').each(function () {
if ($(this).val() != '') {
nb_filled_days++;
}
});
$selected_days.find('.hours').each(function () {
if ($(this).val() != '') {
nb_filled_hours++;
}
});
if (nb_filled_days >= 1 && nb_filled_hours >= 1) {
$('button[name="choixheures"]').removeClass('disabled');
} else {
$('button[name="choixheures"]').addClass('disabled');
}
};
// Button "Remove all hours"
$(document).on('click', '#resethours', function () {
$selected_days.find('fieldset').each(function () {
$(this).find('.hours:gt(2)').parent().remove();
});
$('#d0-h0').focus();
$selected_days.find('fieldset .hours').attr('value', '');
});
// Button "Remove all days"
$('#resetdays').on('click', function () {
$selected_days.find('fieldset:gt(0)').remove();
$('#day0').focus();
$removeaday_and_copyhours.addClass('disabled');
});
// Button "Copy hours of the first day"
$('#copyhours').on('click', function () {
var first_day_hours = $selected_days.find('fieldset:eq(0) .hours').map(function () {
return $(this).val();
});
$selected_days.find('fieldset:gt(0)').each(function () {
for (var i = 0; i < first_day_hours.length; i++) {
$(this).find('.hours:eq(' + i + ')').val(first_day_hours[i]); // fill hours
}
});
$('#d0-h0').focus();
});
// Buttons "Add an hour"
$(document).on('click', '.add-an-hour', function () {
var last_hour = $(this).parent('div').parent('div').prev();
// for and id
var di_hj = last_hour.children('.hours').attr('id').split('-');
var di = parseInt(di_hj[0].replace('d', ''));
var hj = parseInt(di_hj[1].replace('h', ''));
// label, title and placeholder
var last_hour_label = last_hour.children('.hours').attr('placeholder');
var hour_text = last_hour_label.substring(0, last_hour_label.indexOf(' '));
// RegEx for multiple replace
var re_label = new RegExp(last_hour_label, 'g');
var re_id = new RegExp('"d' + di + '-h' + hj + '"', 'g');
// HTML code of the new hour
var new_hour_html =
'<div class="col-sm-2">' +
last_hour.html().replace(re_label, hour_text + ' ' + (hj + 2))
.replace(re_id, '"d' + di + '-h' + (hj + 1) + '"')
.replace(/value="(.*?)"/g, 'value=""') +
'</div>';
// After 11 + button is disable
if (hj < 10) {
last_hour.after(new_hour_html);
$('#d' + di + '-h' + (hj + 1)).focus();
$(this).prev('.remove-an-hour').removeClass('disabled');
if (hj == 9) {
$(this).addClass('disabled');
}
}
});
// Buttons "Remove an hour"
$(document).on('click', '.remove-an-hour', function () {
var last_hour = $(this).parent('div').parent('div').prev();
// for and id
var di_hj = last_hour.children('.hours').attr('id').split('-');
var di = parseInt(di_hj[0].replace('d', ''));
var hj = parseInt(di_hj[1].replace('h', ''));
// The first hour must not be removed
if (hj > 0) {
last_hour.remove();
$('#d' + di + '-h' + (hj - 1)).focus();
$(this).next('.add-an-hour').removeClass('disabled');
if (hj == 1) {
$(this).addClass('disabled');
}
}
submitDaysAvalaible();
});
// Button "Add a day"
$('#add-a-day').on('click', function () {
var nb_days = $selected_days.find('fieldset').length;
var last_day = $selected_days.find('fieldset:last');
var last_day_title = last_day.find('legend input').attr('title');
var re_id_hours = new RegExp('"d' + (nb_days - 1) + '-h', 'g');
var re_name_hours = new RegExp('name="horaires' + (nb_days - 1), 'g');
var new_day_html = last_day.html().replace(re_id_hours, '"d' + nb_days + '-h')
.replace('id="day' + (nb_days - 1) + '"', 'id="day' + nb_days + '"')
.replace('for="day' + (nb_days - 1) + '"', 'for="day' + nb_days + '"')
.replace(re_name_hours, 'name="horaires' + nb_days)
.replace(/value="(.*?)"/g, 'value=""')
.replace(/hours" title="(.*?)"/g, 'hours" title="" p')
.replace('title="' + last_day_title + '"', 'title="' + last_day_title.substring(0, last_day_title.indexOf(' ')) + ' ' + (nb_days + 1) + '"');
last_day.after('<fieldset>' + new_day_html + '</fieldset>');
$('#day' + (nb_days)).focus();
$removeaday_and_copyhours.removeClass('disabled');
});
// Button "Remove a day"
$('#remove-a-day').on('click', function () {
$selected_days.find('fieldset:last').remove();
var nb_days = $selected_days.find('fieldset').length;
$('#day' + (nb_days - 1)).focus();
if (nb_days == 1) {
$removeaday_and_copyhours.addClass('disabled');
}
submitDaysAvalaible();
});
// Title update on hours and buttons -/+ hours
$(document).on('change', '.input-group.date input', function () {
// Define title on hours fields using the value of the new date
$selected_days.find('.hours').each(function () {
$(this).attr('title', $(this).parents('fieldset').find('legend input').val() + ' - ' + $(this).attr('placeholder'));
});
// Define title on buttons that add/remove hours using the value of the new date
$('#selected-days .add-an-hour, #selected-days .remove-an-hour').each(function () {
var title = $(this).attr('title');
if (title.indexOf('-') > 0) {
title = title.substring(title.indexOf('-') + 2, title.length);
}
$(this).attr('title', $(this).parents('fieldset').find('legend input').val() + ' - ' + title);
});
});
$(document).on('keyup, change', '.hours, #selected-days fieldset legend input', function () {
submitDaysAvalaible();
});
submitDaysAvalaible();
// 2 days and you can remove a day or copy hours
if ($selected_days.find('fieldset').length > 1) {
$removeaday_and_copyhours.removeClass('disabled');
}
})();

85
js/app/framadatepicker.js Normal file
View File

@ -0,0 +1,85 @@
/**
* This software is governed by the CeCILL-B license. If a copy of this license
* is not distributed with this file, you can obtain one at
* http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt
*
* Authors of STUdS (initial project): Guilhem BORGHESI (borghesi@unistra.fr) and Raphaël DROZ
* Authors of Framadate/OpenSondate: Framasoft (https://github.com/framasoft)
*
* =============================
*
* Ce logiciel est régi par la licence CeCILL-B. Si une copie de cette licence
* ne se trouve pas avec ce fichier vous pouvez l'obtenir sur
* http://www.cecill.info/licences/Licence_CeCILL-B_V1-fr.txt
*
* Auteurs de STUdS (projet initial) : Guilhem BORGHESI (borghesi@unistra.fr) et Raphaël DROZ
* Auteurs de Framadate/OpenSondage : Framasoft (https://github.com/framasoft)
*/
$(document).ready(function() {
var init_datepicker = function () {
$('.input-group.date').datepicker({
format: "dd/mm/yyyy",
todayBtn: "linked",
orientation: "top left",
autoclose: true,
language: lang,
todayHighlight: true,
beforeShowDay: function (date) {
var $selected_days = [];
$('#selected-days').find('input[id^="day"]').each(function () {
if ($(this).val() != '') {
$selected_days.push($(this).val());
}
});
for (var i = 0; i < $selected_days.length; i++) {
var $selected_date = $selected_days[i].split('/');
if (date.getFullYear() == $selected_date[2] && (date.getMonth() + 1) == $selected_date[1] && date.getDate() == $selected_date[0]) {
return {
classes: 'disabled selected'
};
}
}
}
});
};
// Complete the date fields when use partialy fill it (eg: 15/01 could become 15/01/2016)
var leftPad = function(text, pad) {
return text ? pad.substring(0, pad.length - text.length) + text : text;
};
$(document).on('change', '.input-group.date input', function () {
// Complete field if needed
var val = $(this).val();
var capture = /([0-9]+)(?:\/([0-9]+))?/.exec(val);
if (capture) {
var inputDay = leftPad(capture[1], "00"); // 5->05, 15->15
var inputMonth = leftPad(capture[2], "00"); // 3->03, 11->11
var inputDate = null;
var now = new Date();
if (inputMonth) {
inputDate = new Date(now.getFullYear() + '-' + inputMonth + '-' + inputDay);
// If new date is before now, add 1 year
if (inputDate < now) {
inputDate.setFullYear(now.getFullYear() + 1);
}
} else {
inputDate = new Date(now.getFullYear() + '-' + leftPad("" + (now.getMonth() + 1), "00") + '-' + inputDay);
// If new date is before now, add 1 month
if (inputDate < now) {
inputDate.setMonth(now.getMonth() + 1);
}
}
$(this).val(inputDate.toLocaleFormat("%d/%m/%Y"));
}
});
});

View File

@ -1,42 +1,13 @@
$(document).ready(function() {
var lang = $('html').attr('lang');
// Datepicker
var framadatepicker = function() {
$('.input-group.date').datepicker({
format: "dd/mm/yyyy",
todayBtn: "linked",
orientation: "top left",
autoclose: true,
language: lang,
todayHighlight: true,
beforeShowDay: function (date){
var $selected_days = new Array();
$('#selected-days input[id^="day"]').each(function() {
if($(this).val()!='') {
$selected_days.push($(this).val());
}
});
for(i = 0; i < $selected_days.length; i++){
var $selected_date = $selected_days[i].split('/');
if (date.getFullYear() == $selected_date[2] && (date.getMonth()+1) == $selected_date[1] && date.getDate() == $selected_date[0]){
return {
classes: 'disabled selected'
};
}
}
}
});
};
window.lang = $('html').attr('lang');
var datepickerfocus = false; // a11y : datepicker not display on focus until there is one click on the button
$(document).on('click','.input-group.date .input-group-addon', function() {
datepickerfocus = true;
// Re-init datepicker config before displaying
$(this).parent().datepicker(framadatepicker());
$(this).parent().datepicker(init_datepicker());
$(this).parent().datepicker('show');
// Trick to refresh calendar
@ -48,261 +19,10 @@ $(document).ready(function() {
$(document).on('focus','.input-group.date input', function() {
if(datepickerfocus) {
$(this).parent('.input-group.date').datepicker(framadatepicker());
$(this).parent('.input-group.date').datepicker(init_datepicker());
$(this).parent('.input-group.date').datepicker('show');
}
});
/**
* choix_date.php
**/
// Button "Remove all hours"
$(document).on('click','#resethours', function() {
$('#selected-days fieldset').each(function() {
$(this).find('.hours:gt(2)').parent().remove();
});
$('#d0-h0').focus();
$('#selected-days fieldset .hours').attr('value','');
});
// Button "Remove all days"
$('#resetdays').on('click', function() {
$('#selected-days fieldset:gt(0)').remove();
$('#day0').focus();
$('#remove-a-day, #copyhours').addClass('disabled');
});
// Button "Copy hours of the first day"
$('#copyhours').on('click', function() {
var first_day_hours = $('#selected-days fieldset:eq(0) .hours').map(function() {
return $(this).val();
});
$('#selected-days fieldset:gt(0)').each(function() {
for ($i = 0; $i < first_day_hours.length; $i++) {
$(this).find('.hours:eq('+$i+')').val(first_day_hours[$i]); // fill hours
}
});
$('#d0-h0').focus();
});
// Buttons "Add an hour"
$(document).on('click','.add-an-hour', function() {
var last_hour = $(this).parent('div').parent('div').prev();
// for and id
var di_hj = last_hour.children('.hours').attr('id').split('-');
var di = parseInt(di_hj[0].replace('d','')); var hj = parseInt(di_hj[1].replace('h',''));
// label, title and placeholder
var last_hour_label = last_hour.children('.hours').attr('placeholder');
var hour_text = last_hour_label.substring(0, last_hour_label.indexOf(' '));
// RegEx for multiple replace
var re_label = new RegExp(last_hour_label, 'g');
var re_id = new RegExp('"d'+di+'-h'+hj+'"', 'g');
// HTML code of the new hour
var new_hour_html =
'<div class="col-sm-2">'+
last_hour.html().replace(re_label, hour_text+' '+(hj+2))
.replace(re_id,'"d'+di+'-h'+(hj+1)+'"')
.replace(/value="(.*?)"/g, 'value=""')+
'</div>';
// After 11 + button is disable
if (hj<10) {
last_hour.after(new_hour_html);
$('#d'+di+'-h'+(hj+1)).focus();
$(this).prev('.remove-an-hour').removeClass('disabled');
if (hj==9) {
$(this).addClass('disabled');
}
};
});
// Buttons "Remove an hour"
$(document).on('click', '.remove-an-hour', function() {
var last_hour = $(this).parent('div').parent('div').prev();
// for and id
var di_hj = last_hour.children('.hours').attr('id').split('-');
var di = parseInt(di_hj[0].replace('d','')); var hj = parseInt(di_hj[1].replace('h',''));
// The first hour must not be removed
if (hj>0) {
last_hour.remove();
$('#d'+di+'-h'+(hj-1)).focus();
$(this).next('.add-an-hour').removeClass('disabled');
if (hj==1) {
$(this).addClass('disabled');
}
};
SubmitDaysAvalaible();
});
// Button "Add a day"
$('#add-a-day').on('click', function() {
var nb_days = $('#selected-days fieldset').length;
var last_day = $('#selected-days fieldset:last');
var last_day_title = last_day.find('legend input').attr('title');
var re_id_hours = new RegExp('"d'+(nb_days-1)+'-h', 'g');
var re_name_hours = new RegExp('name="horaires'+(nb_days-1), 'g');
var new_day_html = last_day.html().replace(re_id_hours, '"d'+nb_days+'-h')
.replace('id="day'+(nb_days-1)+'"', 'id="day'+nb_days+'"')
.replace('for="day'+(nb_days-1)+'"', 'for="day'+nb_days+'"')
.replace(re_name_hours, 'name="horaires'+nb_days)
.replace(/value="(.*?)"/g, 'value=""')
.replace(/hours" title="(.*?)"/g, 'hours" title="" p')
.replace('title="'+last_day_title+'"', 'title="'+last_day_title.substring(0, last_day_title.indexOf(' '))+' '+(nb_days+1)+'"');
last_day.after('<fieldset>'+new_day_html+'</fieldset>');
$('#day'+(nb_days)).focus();
$('#remove-a-day, #copyhours').removeClass('disabled');
});
// Button "Remove a day"
$('#remove-a-day').on('click', function() {
$('#selected-days fieldset:last').remove();
var nb_days = $('#selected-days fieldset').length;
$('#day'+(nb_days-1)).focus();
if ( nb_days == 1) {
$('#remove-a-day, #copyhours').addClass('disabled');
};
SubmitDaysAvalaible();
});
// Title update on hours and buttons -/+ hours
$(document).on('change','#selected-days legend input', function() {
$('#selected-days .hours').each(function () {
$(this).attr('title', $(this).parents('fieldset').find('legend input').val()+' - '+$(this).attr('placeholder'));
});
$('#selected-days .add-an-hour, #selected-days .remove-an-hour').each(function () {
var old_title = $(this).attr('title');
if(old_title.indexOf('-')>0) {
old_title = old_title.substring(old_title.indexOf('-')+2,old_title.length);
}
$(this).attr('title', $(this).parents('fieldset').find('legend input').val()+' - '+old_title);
});
});
// 1 day and 2 hours or 2 days and you can submit
function SubmitDaysAvalaible() {
var nb_filled_days = 0;
var nb_filled_hours = 0;
$('#selected-days fieldset legend input').each(function() {
if($(this).val()!='') {
nb_filled_days++;
}
});
$('#selected-days .hours').each(function() {
if($(this).val()!='') {
nb_filled_hours++;
}
});
if (nb_filled_days>1) {
$('button[name="choixheures"]').removeClass('disabled');
} else if (nb_filled_hours>1 && nb_filled_days==1) {
$('button[name="choixheures"]').removeClass('disabled');
} else {
$('button[name="choixheures"]').addClass('disabled');
}
}
$(document).on('keyup, change','.hours, #selected-days fieldset legend input', function() {
SubmitDaysAvalaible();
});
SubmitDaysAvalaible();
// 2 days and you can remove a day or copy hours
if($('#selected-days fieldset').length>1) {
$('#remove-a-day, #copyhours').removeClass('disabled');
}
/**
* choix_autre.php
**/
// Button "Add a choice"
$('#add-a-choice').on('click', function() {
var nb_choices = $('.choice-field').length;
var last_choice = $('.choice-field:last');
var new_choice = last_choice.html();
// label
var last_choice_label = last_choice.children('label').text();
var choice_text = last_choice_label.substring(0, last_choice_label.indexOf(' '));
// for and id
var re_id_choice = new RegExp('"choice'+(nb_choices-1)+'"', 'g');
var last_choice_label = last_choice.children('label').text();
var new_choice_html = new_choice.replace(re_id_choice, '"choice'+nb_choices+'"')
.replace(last_choice_label, choice_text+' '+(nb_choices+1))
.replace(/value="(.*?)"/g, 'value=""');
last_choice.after('<div class="form-group choice-field">'+new_choice_html+'</div>');
$('#choice'+nb_choices).focus();
$('#remove-a-choice').removeClass('disabled');
});
// Button "Remove a choice"
$('#remove-a-choice').on('click', function() {
$('.choice-field:last').remove();
var nb_choices = $('.choice-field').length;
$('#choice'+(nb_choices-1)).focus();
if (nb_choices == 2) {
$('#remove-a-choice').addClass('disabled');
};
SubmitChoicesAvalaible();
});
// 2 choices filled and you can submit
function SubmitChoicesAvalaible() {
var nb_filled_choices = 0;
$('.choice-field input').each(function() {
if($(this).val()!='') {
nb_filled_choices++;
}
});
if(nb_filled_choices>1) {
$('button[name="fin_sondage_autre"]').removeClass('disabled');
} else {
$('button[name="fin_sondage_autre"]').addClass('disabled');
}
}
$(document).on('keyup, change','.choice-field input', function() {
SubmitChoicesAvalaible();
});
SubmitChoicesAvalaible();
$(document).on('click', '.md-a-img', function() {
$('#md-a-imgModal').modal('show');
$('#md-a-imgModal .btn-primary').attr('value',$(this).prev().attr('id'));
$('#md-a-imgModalLabel').text($(this).attr('title'));
});
$('#md-a-imgModal .btn-primary').on('click', function() {
if($('#md-img').val()!='' && $('#md-a').val()!='') {
$('#'+$(this).val()).val('[!['+$('#md-text').val()+']('+$('#md-img').val()+')]('+$('#md-a').val()+')');
} else if ($('#md-img').val()!='') {
$('#'+$(this).val()).val('!['+$('#md-text').val()+']('+$('#md-img').val()+')');
} else if ($('#md-a').val()!='') {
$('#'+$(this).val()).val('['+$('#md-text').val()+']('+$('#md-a').val()+')');
} else {
$('#'+$(this).val()).val($('#md-text').val());
}
$('#md-a-imgModal').modal('hide');
$('#md-img').val(''); $('#md-a').val('');$('#md-text').val('');
SubmitChoicesAvalaible();
});
/**
* adminstuds.php

298
locale/de.json Normal file
View File

@ -0,0 +1,298 @@
{
"Generic": {
"Make your polls": "Eigene Umfragen erstellen",
"Home": "Heimat",
"Poll": "Umfrage",
"Save": "Speichern",
"Cancel": "Abbrechen",
"Add": "Hinzufügen",
"Remove": "Entfernen",
"Validate": "Bestätigen",
"Edit": "Bearbeiten",
"Next": "Weiter",
"Back": "Zurück",
"Close": "Schließen",
"Your name": "Ihr Name",
"Your email address": "Ihre E-Mail-Adresse",
"(in the format name@mail.com)": "(Format: name@mail.com)",
"Description": "Beschreibung",
"Back to the homepage of": "Zurück zur Homepage von ",
"days": "Tage",
"months": "Monate",
"Day": "Tag",
"Time": "Uhrzeit",
"with": "mit",
"vote": "Stimme",
"votes": "Stimmen",
"for": "für",
"Yes": "Ja",
"Ifneedbe": "Wenn notwendig",
"No": "Nein",
"Legend:": "Legende:",
"Date": "Datum",
"Classic": "Klassiker",
"Page generated in": "Seite generiert in",
"seconds": "Sekunden",
"Choice": "Wahl",
"Link": "Link"
},
"Date": {
"dd/mm/yyyy": "jj/mm/aaaa",
"%A, den %e. %B %Y": "%A %e %B %Y",
"FULL": "%A, den %e. %B %Y",
"SHORT": "%A %e %B %Y",
"DAY": "%a %e",
"DATE": "%Y-%m-%d",
"MONTH_YEAR": "%B %Y"
},
"Language selector": {
"Select the language": "Sprache wählen",
"Change the language": "Sprache wechseln"
},
"Homepage": {
"Schedule an event": "Termin finden",
"Make a classic poll": "Klassische Umfrage"
},
"1st section": {
"What is that?": "Was ist das?",
"Framadate is an online service for planning an appointment or make a decision quickly and easily. No registration is required.": "Framadate ist ein Online-Dienst, das Ihnen hilft, Termine zu finden oder Entscheidungen schnell und einfach zu treffen. Keine Registrierung ist erforderlich. ",
"Here is how it works:": "So geht es:",
"Make a poll": "Umfrage erstellen",
"Define dates or subjects to choose": "Datum- oder Auswahlmöglichkeiten definieren",
"Send the poll link to your friends or colleagues": "Link zur Umfrage an Ihre Freunde oder Kollegen schicken",
"Discuss and make a decision": "Besprechen und Entscheidung treffen",
"Do you want to ": "Wollen Sie sich ",
"view an example?": "einen Beispiel ansehen?"
},
"2nd section": {
"The software": "Die Software",
"Framadate was initially based on ": "Framadate war am Anfang auf ",
" a software developed by the University of Strasbourg. Today, it is devevoped by the association Framasoft": " basiert, eine von der Straßburg-Universität entwickelte Software. Heutzutage wird sie von der Framasoft-Vereinigung entwickelt.",
"This software needs javascript and cookies enabled. It is compatible with the following web browsers:": "Für diese Software müssen Javascript und Cookie aktiviert sein. Sie ist mit den folgenden Browsers kompatibel:",
"It is governed by the ": "Sie ist lizenziert unter der ",
"CeCILL-B license": "CeCILL-B Lizenz"
},
"3rd section": {
"Cultivate your garden": "Bestellen Sie ihren Garten",
"To participate in the software development, suggest improvements or simply download it, please visit ": "Um zur Software-Entwicklung teilzunehmen, Verbesserungen vorzuschlagen oder um sie herunterzuladen, gehen Sie auf ",
"the development site": "die Entwicklung-Seite",
"If you want to install the software for your own use and thus increase your independence, we help you on:": "Wenn Sie die Software für Ihre eigene Nutzung installieren möchten und Ihre Eigenständigkeit erhöhen, helfen wir Sie auf:"
},
"PollInfo": {
"Remove the poll": "Umfrage löschen",
"Remove all the comments": "Alle Kommentare löschen",
"Remove all the votes": "Alle Stimmungen löschen",
"Print": "Drucken",
"Export to CSV": "CSV-Export",
"Title": "Titel",
"Edit the title": "Titel bearbeiten",
"Save the new title": "Den neuen Titel speichern",
"Cancel the title edit": "Änderung des Titels abbrechen",
"Initiator of the poll": "Ersteller der Umfrage",
"Edit the name": "Bearbeiten Sie den Namen",
"Save the new name": "Speichern Sie den neuen Namen",
"Cancel the name edit": "Brechen Sie den Namen bearbeiten",
"Email": "E-Mail-Adresse",
"Edit the email adress": "E-Mail-Adresse ändern",
"Save the email address": "Speichern Sie die E-Mail-Adresse",
"Cancel the email address edit": "Brechen Sie die E-Mail-Adresse bearbeiten",
"Edit the description": "Beschreibung bearbeiten",
"Save the description": "Beschreibung speichern",
"Cancel the description edit": "Änderung der Beschreibung verwerfen",
"Public link of the poll": "Öffentlicher Link zur Umfrage",
"Admin link of the poll": "Administrator-Link der Umfrage",
"Expiration date": "Verfallsdatum",
"Edit the expiration date": "Bearbeiten Sie das Ablaufdatum",
"Save the new expiration date": "Speichern Sie das neue Ablaufdatum",
"Cancel the expiration date edit": "Deaktivieren Sie die Ablaufdatum bearbeiten",
"Poll rules": "Regeln der Umfrage",
"Edit the poll rules": "Regeln der Umfrage bearbeiten",
"Votes and comments are locked": "Abstimmungen und Kommentare sind gesperrt",
"Votes and comments are open": "Abstimmungen und Kommentare sind möglich",
"Votes are editable": "Die Abstimmungen können geändert werden",
"Save the new rules": "Neue Regeln speichern",
"Cancel the rules edit": "Neue Regeln nicht speichern",
"The name is invalid.": "Der Name ist ungültig."
},
"Poll results": {
"Votes of the poll": "Abstimmungen der Umfrage ",
"Edit the line:": "Zeile bearbeiten:",
"Remove the line:": "Zeile entfernen:",
"Vote no for": "Nein stimmen für",
"Vote yes for": "Abstimmung ja für",
"Vote ifneedbe for": "Vote falls für sein",
"Save the choices": "Wahl speichern",
"Addition": "Hinzufügen",
"Best choice": "Bste Option",
"Best choices": "Besten Optionen",
"The best choice at this time is:": "Die beste Option ist derzeit:",
"The bests choices at this time are:": "Die beste Optionen sind derzeit:",
"Scroll to the left": "Links scrollen",
"Scroll to the right": "Rechts scrollen"
},
"Comments": {
"Comments of polled people": "Kommentare von Teilnehmer",
"Remove the comment": "Kommentar entfernen",
"Add a comment to the poll": "Add a comment to the poll",
"Your comment": "Ihr Kommentar",
"Send the comment": "Kommentar senden",
"anonyme": "anonym",
"Comment added": "Kommentar hinzugefügt"
},
"studs": {
"If you want to vote in this poll, you have to give your name, choose the values that fit best for you and validate with the plus button at the end of the line.": "Wenn Sie bei dieser Umfrage abstimmen möchten, müssen Sie ihren Namen angeben. Wählen Sie die Optionen, die für Sie am besten passen und bestätigen Sie diese über den Plus-Button am Ende der Zeile.",
"POLL_LOCKED_WARNING": "Die Administration gesperrt diese Umfrage. Bewertungen und Kommentare werden eingefroren, es ist nicht mehr möglich, teilzunehmen",
"The poll is expired, it will be deleted soon.": "Die Umfrage ist abgelaufen, es wird bald gelöscht werden.",
"Deletion date:": "Löschdatum:"
},
"adminstuds": {
"As poll administrator, you can change all the lines of this poll with this button": "Als Administrator der Umfrage, können Sie alle Zeilen der Umfrage über diesen Button ändern",
"remove a column or a line with": "Zeile oder Spalte entfernen mit",
"and add a new column with": "und neue Spalte hinzufügen mit",
"Finally, you can change the informations of this poll like the title, the comments or your email address.": "Sie können auch die Informationen dieser Umfrage wie Titel, Kommentare oder E-Mail-Adresse ändern.",
"Column's adding": "Spalte hinzufügen",
"You can add a new scheduling date to your poll.": "Sie können zur Umfrage ein neues Datum hinzufügen.",
"If you just want to add a new hour to an existant date, put the same date and choose a new hour.": "Wenn Sie nur eine neue Uhrzeiteit zu einem existierenden Datum hinzufügen wollen, wählen Sie das selbe Datum und wählen Sie eine neue Zeit aus.",
"Confirm removal of the poll": "Bestätigen Sie die Löschung ihrer Umfrage",
"Delete the poll": "Löschen Sie die Umfrage",
"Keep the poll": "Halten Sie die Umfrage",
"Your poll has been removed!": "Ihre Umfrage wurde gelöscht!",
"Poll saved": "Umfrage gespeichert",
"Vote added": "vote hinzugefügt",
"Vote updated": "vote aktualisiert",
"Vote deleted": "vote gelöscht",
"All votes deleted": "Alle Stimmen werden gelöscht",
"Back to the poll": "Zurück zur Umfrage",
"Add a column": "Spalte hinzufügen",
"Remove the column": "Spalte entfernen",
"Choice added": "Auswahl aufgenommen",
"Confirm removal of all votes of the poll": "Entfernung aller Stimmen der Umfrage bestätigen",
"Keep the votes": "Halten Sie die Stimmen",
"Remove the votes": "Entfernen Sie die Stimmen",
"Confirm removal of all comments of the poll": "Entfernen aller Kommentare der Umfrage bestätigen",
"Keep the comments": "Halten Sie die Kommentare",
"Remove the comments": "Entfernen Sie die Kommentare",
"The poll has been deleted": "Die Umfrage wurde gelöscht",
"Keep votes": "Halten Stimmen",
"Keep comments": "Halten Sie Kommentare",
"Keep this poll": "Halten Sie diese Umfrage"
},
"Step 1": {
"Poll creation (1 on 3)": "Umfrage erstellen (1 von 3)",
"You are in the poll creation section.": "Sie können hier Umfragen erstellen",
"Required fields cannot be left blank.": "Mit * markierte Felder müssen ausgefüllt sein.",
"Poll title": "Umfragetitel",
"Voters can modify their vote themselves.": "Teilnehmer können ihre Antworten verändern",
"To receive an email for each new vote.": "Bei jeder neuen Abstimmung eine E-Mail erhalten.",
"To receive an email for each new comment.": "Um eine E-Mail für jede neue Kommentar zu empfangen.",
"Go to step 2": "Weiter zum 2. Schritt"
},
"Step 2": {
"Back to step 1": "Zurück zum 1. Schritt",
"Go to step 3": "Weiter zum 3. Schritt"
},
"Step 2 date": {
"Poll dates (2 on 3)": "Umfragedaten (2 von 3)",
"Choose the dates of your poll": "Wählen Sie Terminmöglichkeiten für Ihre Umfrage",
"To schedule an event you need to propose at least two choices (two hours for one day or two days).": "Um eine Umfrage für einen Termin zu erstellen, müssen Sie mindestens zwei Auswahlmöglichkeiten angeben (zwei verschiedene Zeiten an einem Tag oder zwei Tage).",
"You can add or remove additionnal days and hours with the buttons": "Sie können weitere Tage und Uhrzeiten über diesen Button hinzufügen oder entfernen",
"For each selected day, you can choose, or not, meeting hours (e.g.: \"8h\", \"8:30\", \"8h-10h\", \"evening\", etc.)": "TRANSLATE_ For each selected day, you can choose, or not, meeting hours (e.g.: \"8h\", \"8:30\", \"8h-10h\", \"evening\", etc.)",
"Remove an hour": "Eine Uhrzeit entfernen",
"Add an hour": "Eine Uhrzeit hinzufügen",
"Copy hours of the first day": "Uhrzeiten des ersten Tags kopieren",
"Remove a day": "Einen Tag entfernen",
"Add a day": "Einen Tag hinzufügen",
"Remove all days": "Alle Tage entfernen",
"Remove all hours": "Alle Uhrzeiten entfernen"
},
"Step 2 classic": {
"Poll subjects (2 on 3)": "Umfragethemen (2 von 3)",
"To make a generic poll you need to propose at least two choices between differents subjects.": "Um eine allgemeine Umfrage zu erstellen, benötigen Sie mindestens zwei Auswahlmöglichkeiten zwischen verschiedenen Themen.",
"You can add or remove additional choices with the buttons": "Sie können über den Button zusätzliche Auswahlmöglichkeiten hinzufügen oder entfernen",
"It's possible to propose links or images by using": "Es besteht die Möglichkeit, Links oder Bilder vorszuschlagen mit ",
"the Markdown syntax": "Markdown",
"Add a link or an image": "Link oder Bild hinzufügen",
"These fields are optional. You can add a link, an image or both.": "Diese Felder sind optional. Sie können einen Link, ein Bild oder beide hinzufügen.",
"URL of the image": "URL des Bilds",
"Alternative text": "Alternativer Text",
"Remove a choice": "Eine Auswahlmöglichkeit entfernen",
"Add a choice": "Eine Auswahlmöglichkeit hinzufügen"
},
"Step 3": {
"Back to step 2": "Zurück zum 2. Schritt",
"Removal date and confirmation (3 on 3)": "Löschdatum und Bestätigung (3 von 3)",
"Confirm the creation of your poll": "Bestätigen Sie die Erstellung ihrer Umfrage",
"List of your choices": "Liste Ihrer Auswahlmöglichkeiten",
"Once you have confirmed the creation of your poll, you will be automatically redirected on the administration page of your poll.": "Wenn Sie die Erstellung ihrer Umfrage bestätigt haben, werden sie automatisch zur Administrationsseite ihrer Umfrage weitergeleitet.",
"Then, you will receive quickly two emails: one contening the link of your poll for sending it to the voters, the other contening the link to the administration page of your poll.": "Danach werden Sie zwei E-Mails erhalten: die Eine enthält den Link zur Umfrage für die Teilnehmer, die Andere enthält den Link zur Administrationsseite ihrer Umfrage.",
"Create the poll": "Umfrage erstellen",
"Your poll will be automatically removed after": "Ihre Umfrage wird automatisch nach entfernt werden",
"after the last date of your poll:": "nach dem letzten Tag Ihrer Umfrage:",
"You can set a closer removal date for it.": "Sie können auch ein anderes Löschdatum festlegen.",
"Removal date:": "Löschdatum:"
},
"Admin": {
"Back to administration": "Zurück zur Verwaltung",
"Polls": "Umfragen",
"Migration": "Migration",
"Purge": "Säuberung",
"Logs": "Verlauf",
"Poll ID": "Umfrage-ID",
"Format": "Format",
"Title": "Titel",
"Author": "Autor",
"Email": "E-Mail-Adresse",
"Expiration date": "Verfallsdatum",
"Users": "Nutzer",
"Actions": "Aktionen",
"See the poll": "Umfrage sehen",
"Change the poll": "Umfrage ändern",
"Deleted the poll": "Gelöschte die Umfrage",
"Summary": "Zusammenfassung",
"Success": "Erfolg",
"Fail": "scheitern",
"Nothing": "Nichts",
"Succeeded:": "Erfolgreich:",
"Failed:": "fehlgeschlagen:",
"Skipped:": "übersprungene:",
"Pages:": "Seiten:",
"Confirm removal of the poll": "Bestätigen Sie die Löschung ihrer Umfrage",
"polls in the database at this time": "Umfragen derzeit in der Datenbank",
"Purge the polls": "TRANSLATE_ Purge the polls"
},
"Mail": {
"Poll's participation": "Beteiligung an der Umfrage",
"filled a vote.\nYou can find your poll at the link": "füllte eine Stimme.\nSie können Ihre Umfrage unter dem Link zu finden",
"updated a vote.\nYou can find your poll at the link": "eine Abstimmung regelmäßig aktualisiert.\nSie können Ihre Umfrage unter dem Link zu finden",
"wrote a comment.\nYou can find your poll at the link": "hat einen Kommentar. Sie können Ihre Umfrage unter dem Link zu finden",
"Thanks for your confidence.": "Danke für Ihr Vertrauen.",
"\n--\n\n« La route est longue, mais la voie est libre… »\nFramasoft ne vit que par vos dons (déductibles des impôts).\nMerci d'avance pour votre soutien http://soutenir.framasoft.org.": "",
"[ADMINISTRATOR] New settings for your poll": "[ADMINISTRATOR] Neue Einstellungen für Ihre Umfrage ",
"You have changed the settings of your poll. \nYou can modify this poll with this link": "Sie haben die Einstellungen Ihrer Umfrage verändert.\nSie können diese Umfrage mit diesem Link ändern",
"This is the message you have to send to the people you want to poll. \nNow, you have to send this message to everyone you want to poll.": "Dies ist die Botschaft, die Sie zu den Menschen, die Sie abfragen möchten senden.\nNun haben Sie diese Nachricht an alle, die Sie abfragen möchten senden.",
"hast just created a poll called": " hat eine Umfrage erstellt - Name folgt: ",
"Thanks for filling the poll at the link above": "Danke, dass Sie die Umfrage unter dem obrigen Link ausgefüllt haben",
"This message should NOT be sent to the polled people. It is private for the poll's creator.\n\nYou can now modify it at the link above": "Diese Meldung sollte nicht auf die befragten Personen gesendet werden. Es ist privat für die Umfrage Schöpfer.\n\nSie können nun ändern sie unter dem Link oben",
"Author's message": "Nachricht vom Autor ",
"For sending to the polled users": "Nachricht für die Teilnehmer"
},
"Error": {
"Error!": "Fehler!",
"Enter a title": "Titel eingeben",
"Something is wrong with the format": "Something is wrong with the format",
"Enter an email address": "Sie müssen eine E-Mail-Adresse eingeben",
"The address is not correct! You should enter a valid email address (like r.stallman@outlock.com) in order to receive the link to your poll.": "Die Adresse ist nicht korrekt! Sie sollten eine funktionierende E-Mail-Adresse angeben, um den Link zu ihrer Umfrage zu erhalten",
"You haven't filled the first section of the poll creation.": "Sie haben den ersten Teil der Umfrageerstellung nicht ausgefüllt.",
"Javascript is disabled on your browser. Its activation is required to create a poll.": "Javascript ist in Ihrem Browser deaktiviert. Seine Aktivierung ist erforderlich, um eine Umfrage zu erstellen.",
"Cookies are disabled on your browser. Theirs activation is required to create a poll.": "Cookies werden auf Ihrem Browser deaktiviert. Deren Aktivierung ist erforderlich, um eine Umfrage zu erstellen.",
"This poll doesn't exist !": "Diese Umfrage existiert nicht!",
"Enter a name": "Geben Sie einen Namen ein",
"The name you've chosen already exist in this poll!": "Der von Ihnen eingegebenen Name existiert bereits in dieser Umfrage",
"Enter a name and a comment!": "Geben Sie einen Namen und ein Kommentar ein!",
"Failed to insert the comment!": "Einfügen des Kommentars gescheitert!",
"Framadate is not properly installed, please check the \"INSTALL\" to setup the database before continuing.": "Framadate ist nicht richtig installiert, überprüfen Sie bitte die Schaltfläche \"INSTALL\", um das Setup der Datenbank, bevor Sie fortfahren.",
"Failed to save poll": "Fehlgeschlagen Umfrage sparen",
"Update vote failed": "Update vote failed",
"Adding vote failed": "Adding vote failed"
}
}

Binary file not shown.

View File

@ -1,715 +0,0 @@
msgid ""
msgstr ""
"Project-Id-Version: Framadate 0.8\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-10-23 20:52+0100\n"
"PO-Revision-Date: 2014-10-23 20:52+0100\n"
"Last-Translator: Jonathan Brielmaier\n"
"Language-Team: Jonathan Brielmaier\n"
"Language: German\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: German\n"
"X-Poedit-Country: GERMANY\n"
"X-Poedit-SourceCharset: utf-8\n"
"X-Poedit-KeywordsList: _\n"
"X-Poedit-Basepath: /var/www/studs\n"
"X-Poedit-SearchPath-0: .\n"
########### Generic ###########
msgid "Make your polls"
msgstr "Eigene Umfragen erstellen"
msgid "Home"
msgstr "Home"
msgid "Poll"
msgstr "Umfrage"
msgid "Save"
msgstr "Speichern"
msgid "Cancel"
msgstr "Abbrechen"
msgid "Add"
msgstr "Hinzufügen"
msgid "Remove"
msgstr "Entfernen"
msgid "Validate"
msgstr "Bestätigen"
msgid "Edit"
msgstr "Bearbeiten"
msgid "Next"
msgstr "Weiter"
msgid "Back"
msgstr "Zurück"
msgid "Close"
msgstr "Schließen"
msgid "Your name"
msgstr "Ihr Name"
msgid "Your email address"
msgstr "Ihre E-Mail Adresse"
msgid "(in the format name@mail.com)"
msgstr "(Format: name@mail.com)"
msgid "Description"
msgstr "Beschreibung"
msgid "Back to the homepage of"
msgstr "Zurück zur Homepage von "
msgid "Error!"
msgstr "Fehler!"
msgid "(dd/mm/yyyy)"
msgstr "(tt/mm/jjjj)"
msgid "dd/mm/yyyy"
msgstr "tt/mm/jjjj"
msgid "%A, den %e. %B %Y"
msgstr "%A %e %B %Y"
msgid "Expiration's date"
msgstr "Verfallsdatum"
########### Language selector ###########
msgid "Change the language"
msgstr "Sprache wechseln"
msgid "Select the language"
msgstr "Sprache wählen"
############ Homepage ############
msgid "Schedule an event"
msgstr "Termin finden"
msgid "Make a classic poll"
msgstr "Klassische Umfrage"
# 1st section
msgid "What is that?"
msgstr "Was ist das?"
msgid "Framadate is an online service for planning an appointment or make a decision quickly and easily. No registration is required."
msgstr "Framadate ist ein Online-Dienst, das Ihnen hilft, Termine zu finden oder Entscheidungen schnell und einfach zu treffen. Keine Registrierung ist erforderlich. "
msgid "Here is how it works:"
msgstr "So geht es:"
msgid "Make a poll"
msgstr "Umfrage erstellen"
msgid "Define dates or subjects to choose"
msgstr "Datum- oder Auswahlmöglichkeiten definieren"
msgid "Send the poll link to your friends or colleagues"
msgstr "Link zur Umfrage an Ihre Freunde oder Kollegen schicken"
msgid "Discuss and make a decision"
msgstr "Besprechen und Entscheidung treffen"
msgid "Do you want to "
msgstr "Wollen Sie sich "
msgid "view an example?"
msgstr "einen Beispiel ansehen?"
# 2nd section
msgid "The software"
msgstr "Die Software"
msgid "Framadate was initially based on "
msgstr "Framadate war am Anfang auf "
msgid " a software developed by the University of Strasbourg. Today, it is devevoped by the association Framasoft"
msgstr " basiert, eine von der Straßburg-Universität entwickelte Software. Heutzutage wird sie von der Framasoft-Vereinigung entwickelt."
msgid "This software needs javascript and cookies enabled. It is compatible with the following web browsers:"
msgstr "Für diese Software müssen Javascript und Cookie aktiviert sein. Sie ist mit den folgenden Browsers kompatibel:"
msgid "It is governed by the "
msgstr "Sie ist lizenziert unter der "
msgid "CeCILL-B license"
msgstr "CeCILL-B Lizenz"
# 3rd section
msgid "Cultivate your garden"
msgstr "Bestellen Sie ihren Garten"
msgid "To participate in the software development, suggest improvements or simply download it, please visit "
msgstr "Um zur Software-Entwicklung teilzunehmen, Verbesserungen vorzuschlagen oder um sie herunterzuladen, gehen Sie auf "
msgid "the development site"
msgstr "die Entwicklung-Seite"
msgid "If you want to install the software for your own use and thus increase your independence, we help you on:"
msgstr "Wenn Sie die Software für Ihre eigene Nutzung installieren möchten und Ihre Eigenständigkeit erhöhen, helfen wir Sie auf:"
############## Poll ##############
msgid "Poll administration"
msgstr "Umfrage-Verwaltung"
msgid "Legend:"
msgstr "Legende:"
# Jumbotron adminstuds.php (+ studs.php)
msgid "Back to the poll"
msgstr "Zurück zur Umfrage"
msgid "Print"
msgstr "Drucken"
msgid "Export to CSV"
msgstr "CSV-Export"
msgid "Remove the poll"
msgstr "Umfrage löschen"
msgid "Title of the poll"
msgstr "Titel der Umfrage"
msgid "Edit the title"
msgstr "Titel bearbeiten"
msgid "Save the new title"
msgstr "Den neuen Titel speichern"
msgid "Cancel the title edit"
msgstr "Änderung des Titels abbrechen"
msgid "Initiator of the poll"
msgstr "Ersteller der Umfrage"
msgid "Email"
msgstr "E-Mail Adresse"
msgid "Edit the email adress"
msgstr "E-Mail Adresse ändern"
msgid "Save the adress email"
msgstr "E-Mail Adresse speichern"
msgid "Cancel the adress email edit"
msgstr "Änderung der E-Mail Adresse abbrechen"
msgid "Edit the description"
msgstr "Beschreibung bearbeiten"
msgid "Save the description"
msgstr "Beschreibung speichern"
msgid "Cancel the description edit"
msgstr "Änderung der Beschreibung verwerfen"
msgid "Public link of the poll"
msgstr "Öffentlicher Link zur Umfrage"
msgid "Admin link of the poll"
msgstr "Administrator-Link der Umfrage"
msgid "Poll rules"
msgstr "Regeln der Umfrage"
msgid "Edit the poll rules"
msgstr "Regeln der Umfrage bearbeiten"
msgid "Votes and comments are locked"
msgstr "Abstimmungen und Kommentare sind gesperrt"
msgid "Votes and comments are open"
msgstr "Abstimmungen und Kommentare sind möglich"
msgid "Votes are editable"
msgstr "Die Abstimmungen können geändert werden"
msgid "Save the new rules"
msgstr "Neue Regeln speichern"
msgid "Cancel the rules edit"
msgstr "Neue Regeln nicht speichern"
# Help text adminstuds.php
msgid "As poll administrator, you can change all the lines of this poll with this button"
msgstr "Als Administrator der Umfrage, können Sie alle Zeilen der Umfrage über diesen Button ändern"
msgid "remove a column or a line with"
msgstr "Zeile oder Spalte entfernen mit"
msgid "and add a new column with"
msgstr "und neue Spalte hinzufügen mit"
msgid "Finally, you can change the informations of this poll like the title, the comments or your email address."
msgstr "Sie können auch die Informationen dieser Umfrage wie Titel, Kommentare oder E-Mail Adresse ändern."
# Help text studs.php
msgid "If you want to vote in this poll, you have to give your name, choose the values that fit best for you and validate with the plus button at the end of the line."
msgstr "Wenn Sie bei dieser Umfrage abstimmen möchten, müssen Sie ihren Namen angeben. Wählen Sie die Optionen, die für Sie am besten passen und bestätigen Sie diese über den Plus-Button am Ende der Zeile."
# Poll results
msgid "Votes of the poll "
msgstr "Abstimmungen der Umfrage "
msgid "Remove the column"
msgstr "Spalte entfernen"
msgid "Add a column"
msgstr "Spalte hinzufügen"
msgid "Edit the line:"
msgstr "Zeile bearbeiten:"
msgid "Remove the line:"
msgstr "Zeile entfernen:"
msgid "Yes"
msgstr "Ja"
msgid "Ifneedbe"
msgstr "Wenn notwendig"
msgid ", ifneedbe"
msgstr ", wenn notwendig"
msgid "No"
msgstr "Nein"
msgid "Vote \"no\" for "
msgstr "Stimme « nein » für "
msgid "Vote \"yes\" for "
msgstr "Stimme « ja » für "
msgid "Vote \"ifneedbe\" for "
msgstr "Stimme « Wenn notwendig » für "
msgid "Save the choices"
msgstr "Wahl speichern"
msgid "Addition"
msgstr "Hinzufügen"
msgid "Best choice"
msgstr "Bste Option"
msgid "Best choices"
msgstr "Besten Optionen"
msgid "The best choice at this time is:"
msgstr "Die beste Option ist derzeit:"
msgid "The bests choices at this time are:"
msgstr "Die beste Optionen sind derzeit:"
msgid "with"
msgstr "mit"
msgid "vote"
msgstr "Stimme"
msgid "votes"
msgstr "Stimmen"
msgid "for"
msgstr "für"
msgid "Remove all the votes"
msgstr "Alle Stimmungen löschen"
msgid "Scroll to the left"
msgstr "Links scrollen"
msgid "Scroll to the right"
msgstr "Rechts scrollen"
# Comments
msgid "Comments of polled people"
msgstr "Kommentare von Teilnehmer"
msgid "Remove the comment"
msgstr "Kommentar entfernen"
msgid "Add a comment in the poll"
msgstr "Kommentar zur Umfrage hinzufügen"
msgid "Your comment"
msgstr "Ihr Kommentar"
msgid "Send the comment"
msgstr "Kommentar senden"
msgid "anonyme"
msgstr "anonym"
msgid "Remove all the comments"
msgstr "Alle Kommentare löschen"
# Add a colum adminstuds.php
msgid "Column's adding"
msgstr "Spalte hinzufügen"
msgid "You can add a new scheduling date to your poll."
msgstr "Sie können zur Umfrage ein neues Datum hinzufügen."
msgid "If you just want to add a new hour to an existant date, put the same date and choose a new hour."
msgstr "Wenn Sie nur eine neue Uhrzeiteit zu einem existierenden Datum hinzufügen wollen, wählen Sie das selbe Datum und wählen Sie eine neue Zeit aus."
# Remove poll adminstuds.php
msgid "Confirm removal of your poll"
msgstr "Löschen der Umfrage bestätigen"
msgid "Remove this poll!"
msgstr "Diese Umfrage löschen!"
msgid "Keep this poll!"
msgstr "Diese Umfrage nicht löschen!"
msgid "Your poll has been removed!"
msgstr "Ihre Umfrage wurde gelöscht!"
# Errors adminstuds.php/studs
msgid "This poll doesn't exist !"
msgstr "Diese Umfrage existiert nicht!"
msgid "Enter a name"
msgstr "Geben Sie einen Namen ein"
msgid "The name you've chosen already exist in this poll!"
msgstr "Der von Ihnen eingegebenen Name existiert bereits in dieser Umfrage"
msgid "Enter a name and a comment!"
msgstr "Geben Sie einen Namen und ein Kommentar ein!"
msgid "Failed to insert the comment!"
msgstr "Einfügen des Kommentars gescheitert!"
msgid "Characters \" ' < et > are not permitted"
msgstr "Die Zeichen \" ' < und > sind nicht erlaubt !"
msgid "The date is not correct !"
msgstr "Das Datum ist nicht korrekt!"
########### Step 1 ###########
# Step 1 info_sondage.php
msgid "Poll creation (1 on 3)"
msgstr "Umfrage erstellen (1 von 3)"
msgid "Framadate is not properly installed, please check the 'INSTALL' to setup the database before continuing."
msgstr "Framadate ist nicht richtig installiert, lesen Sie 'INSTALL' um die Datenbank aufzusetzen bevor es weiter geht."
msgid "You are in the poll creation section."
msgstr "Sie können hier Umfragen erstellen"
msgid "Required fields cannot be left blank."
msgstr "Mit * markierte Felder müssen ausgefüllt sein."
msgid "Poll title"
msgstr "Umfragetitel"
msgid "Voters can modify their vote themselves."
msgstr "Teilnehmer können ihre Antworten verändern"
msgid "To receive an email for each new vote."
msgstr "Bei jeder neuen Abstimmung eine E-Mail erhalten."
msgid "Go to step 2"
msgstr "Weiter zum 2. Schritt"
# Errors info_sondage.php
msgid "Enter a title"
msgstr "Titel eingeben"
msgid "Something is wrong with the format"
msgstr "Something is wrong with the format"
msgid "Enter an email address"
msgstr "Sie müssen eine E-Mail Adresse eingeben"
msgid "The address is not correct! You should enter a valid email address (like r.stallman@outlock.com) in order to receive the link to your poll."
msgstr "Die Adresse ist nicht korrekt! Sie sollten eine funktionierende E-Mail Adresse angeben, um den Link zu ihrer Umfrage zu erhalten"
# Error choix_date.php/choix_autre.php
msgid "You haven't filled the first section of the poll creation."
msgstr "Sie haben den ersten Teil der Umfrageerstellung nicht ausgefüllt."
msgid "Back to step 1"
msgstr "Zurück zum 1. Schritt"
########### Step 2 ###########
# Step 2 choix_date.php
msgid "Poll dates (2 on 3)"
msgstr "Umfragedaten (2 von 3)"
msgid "Choose the dates of your poll"
msgstr "Wählen Sie Terminmöglichkeiten für Ihre Umfrage"
msgid "To schedule an event you need to propose at least two choices (two hours for one day or two days)."
msgstr "Um eine Umfrage für einen Termin zu erstellen, müssen Sie mindestens zwei Auswahlmöglichkeiten angeben (zwei verschiedene Zeiten an einem Tag oder zwei Tage)."
msgid "You can add or remove additionnal days and hours with the buttons"
msgstr "Sie können weitere Tage und Uhrzeiten über diesen Button hinzufügen oder entfernen"
msgid "For each selected day, you can choose, or not, meeting hours (e.g.: \"8h\", \"8:30\", \"8h-10h\", \"evening\", etc.)"
msgstr "Sie können (müssen aber nicht), für jeden ausgewählten Tage, Zeiten für den Termin (z.B. \"8h\", \"8:30\", \"8-10Uhr\", \"Abends\", etc.) angeben."
msgid "Day"
msgstr "Tag"
msgid "Time"
msgstr "Uhrzeit"
msgid "Remove an hour"
msgstr "Eine Uhrzeit entfernen"
msgid "Add an hour"
msgstr "Eine Uhrzeit hinzufügen"
msgid "Copy hours of the first day"
msgstr "Uhrzeiten des ersten Tags kopieren"
msgid "Remove a day"
msgstr "Einen Tag entfernen"
msgid "Add a day"
msgstr "Einen Tag hinzufügen"
msgid "Remove all days"
msgstr "Alle Tage entfernen"
msgid "Remove all hours"
msgstr "Alle Uhrzeiten entfernen"
# Step 2 choix_autre.php
msgid "Poll subjects (2 on 3)"
msgstr "Umfragethemen (2 von 3)"
msgid "To make a generic poll you need to propose at least two choices between differents subjects."
msgstr "Um eine allgemeine Umfrage zu erstellen, benötigen Sie mindestens zwei Auswahlmöglichkeiten zwischen verschiedenen Themen."
msgid "You can add or remove additional choices with the buttons"
msgstr "Sie können über den Button zusätzliche Auswahlmöglichkeiten hinzufügen oder entfernen"
msgid "It's possible to propose links or images by using "
msgstr "Es besteht die Möglichkeit, Links oder Bilder vorszuschlagen mit "
msgid "the Markdown syntax"
msgstr "Markdown"
msgid "Choice"
msgstr "Wahl"
msgid "Add a link or an image"
msgstr "Link oder Bild hinzufügen"
msgid "These fields are optional. You can add a link, an image or both."
msgstr "Diese Felder sind optional. Sie können einen Link, ein Bild oder beide hinzufügen."
msgid "URL of the image"
msgstr "URL des Bilds"
msgid "Link"
msgstr "Link"
msgid "Alternative text"
msgstr "Alternativer Text"
msgid "Remove a choice"
msgstr "Eine Auswahlmöglichkeit entfernen"
msgid "Add a choice"
msgstr "Eine Auswahlmöglichkeit hinzufügen"
msgid "Back to step 2"
msgstr "Zurück zum 2. Schritt"
msgid "Go to step 3"
msgstr "Weiter zum 3. Schritt"
########### Step 3 ###########
msgid "Removal date and confirmation (3 on 3)"
msgstr "Löschdatum und Bestätigung (3 von 3)"
msgid "Confirm the creation of your poll"
msgstr "Bestätigen Sie die Erstellung ihrer Umfrage"
msgid "List of your choices"
msgstr "Liste Ihrer Auswahlmöglichkeiten"
msgid "Once you have confirmed the creation of your poll, you will be automatically redirected on the administration page of your poll."
msgstr "Wenn Sie die Erstellung ihrer Umfrage bestätigt haben, werden sie automatisch zur Administrationsseite ihrer Umfrage weitergeleitet."
msgid "Then, you will receive quickly two emails: one contening the link of your poll for sending it to the voters, the other contening the link to the administration page of your poll."
msgstr "Danach werden Sie zwei E-Mails erhalten: die Eine enthält den Link zur Umfrage für die Teilnehmer, die Andere enthält den Link zur Administrationsseite ihrer Umfrage."
msgid "Create the poll"
msgstr "Umfrage erstellen"
# Step 3 choix_date.php
msgid "Your poll will expire automatically 2 days after the last date of your poll."
msgstr "Ihre Umfrage wird automatisch zwei Tage nach dem letzten Datum ihrer Umfrage auslaufen."
msgid "Removal date:"
msgstr "Löschdatum:"
# Step 3 choix_autre.php
msgid "Your poll will be automatically removed after 6 months."
msgstr "Ihre Umfrage wird automatisch nach 6 Monaten gelöscht."
msgid "You can set a closer removal date for it."
msgstr "Sie können auch ein anderes Löschdatum festlegen."
msgid "Removal date (optional)"
msgstr "Löschdatum (optional)"
############# Admin #############
msgid "Polls administrator"
msgstr "Umfrageadministrator"
msgid "Confirm removal of the poll "
msgstr "Bestätigen Sie die Löschung ihrer Umfrage"
msgid "polls in the database at this time"
msgstr "Umfragen derzeit in der Datenbank"
msgid "Poll ID"
msgstr "Umfrage-ID"
msgid "Format"
msgstr "Format"
msgid "Title"
msgstr "Titel"
msgid "Author"
msgstr "Autor"
msgid "Users"
msgstr "Nutzer"
msgid "Actions"
msgstr "Aktionen"
msgid "See the poll"
msgstr "Umfrage sehen"
msgid "Change the poll"
msgstr "Umfrage ändern"
msgid "Logs"
msgstr "Verlauf"
msgid "Summary"
msgstr "Zusammenfassung"
msgid "Success"
msgstr "Erfolg"
msgid "Fail"
msgstr "scheitern"
msgid "Nothing"
msgstr "Nichts"
msgid "Succeeded:"
msgstr "Erfolgreich:"
msgid "Failed:"
msgstr "fehlgeschlagen:"
msgid "Skipped:"
msgstr "übersprungene:"
msgid "Pages:"
msgstr "Seiten:"
########### Mails ###########
# Mails studs.php
msgid "Poll's participation"
msgstr "Beteiligung an der Umfrage"
msgid ""
"filled a vote.\n"
"You can find your poll at the link"
msgstr ""
"hat eine Zeile ausgefüllt.\n"
"Sie finden Ihre Umfrage unter dem folgenden Link:"
msgid ""
"updated a vote.\n"
"You can find your poll at the link"
msgstr ""
"updated a vote.\n"
"Sie finden Ihre Umfrage unter dem folgenden Link:"
msgid ""
"wrote a comment.\n"
"You can find your poll at the link"
msgstr ""
"wrote a comment.\n"
"Sie finden Ihre Umfrage unter dem folgenden Link:"
msgid "Thanks for your confidence."
msgstr "Danke für Ihr Vertrauen."
msgid "\n"
"--\n\n"
"« La route est longue, mais la voie est libre… »\n"
"Framasoft ne vit que par vos dons (déductibles des impôts).\n"
"Merci d'avance pour votre soutien http://soutenir.framasoft.org."
msgstr "\n"
"\n"
"\n"
"\n"
" "
# Mails adminstuds.php
msgid "[ADMINISTRATOR] New settings for your poll"
msgstr "[ADMINISTRATOR] Neue Einstellungen für Ihre Umfrage "
msgid ""
"You have changed the settings of your poll. \n"
"You can modify this poll with this link"
msgstr ""
"Sie haben die Einstellungen Ihrer Umfrage geändert. \n"
"Sie können Ihre Umfrage unter diesem Link ändern"
# Mails creation_sondage.php
msgid ""
"This is the message you have to send to the people you want to poll. \n"
"Now, you have to send this message to everyone you want to poll."
msgstr ""
"Dies ist die Nachricht, die Sie an die Personen, die Sie zur Umfrage einladen möchten, schicken sollen. \n"
"Schicken Sie jetzt bitte diese Nachricht an alle Personen, die Sie zur Umfrage einladen möchten."
msgid "hast just created a poll called"
msgstr " hat eine Umfrage erstellt - Name folgt: "
msgid "Thanks for filling the poll at the link above"
msgstr "Danke, dass Sie die Umfrage unter dem obrigen Link ausgefüllt haben"
msgid ""
"This message should NOT be sent to the polled people. It is private for the poll's creator.\n"
"\n"
"You can now modify it at the link above"
msgstr ""
"Diese Nachricht sollte NICHT an die befragten Personen gesendet werden. Sie nur für den Autor der Umfrage gemeint.\n"
"\n"
"Sie können die Umfrage unter dem oberen Link bearbeiten "
msgid "Author's message"
msgstr "Nachricht vom Autor "
msgid "For sending to the polled users"
msgstr "Nachricht für die Teilnehmer"

299
locale/en.json Normal file
View File

@ -0,0 +1,299 @@
{
"Generic": {
"Make your polls": "Make your polls",
"Home": "Home",
"Poll": "Poll",
"Save": "Save",
"Cancel": "Cancel",
"Add": "Add",
"Remove": "Remove",
"Validate": "Validate",
"Edit": "Edit",
"Next": "Next",
"Back": "Back",
"Close": "Close",
"Your name": "Your name",
"Your email address": "Your email address",
"(in the format name@mail.com)": "(in the format name@mail.com)",
"Description": "Description",
"Back to the homepage of": "Back to the homepage of",
"days": "days",
"months": "months",
"Day": "Day",
"Time": "Time",
"with": "with",
"vote": "vote",
"votes": "votes",
"for": "for",
"Yes": "Yes",
"Ifneedbe": "Ifneedbe",
"No": "No",
"Legend:": "Legend:",
"Date": "Date",
"Classic": "Classic",
"Page generated in": "Page generated in",
"seconds": "seconds",
"Choice": "Choice",
"Link": "Link"
},
"Date" : {
"dd/mm/yyyy": "jj/mm/aaaa",
"%A, den %e. %B %Y": "%A %e %B %Y",
"FULL": "%A, den %e. %B %Y",
"SHORT": "%A %e %B %Y",
"DAY": "%a %e",
"DATE": "%Y-%m-%d",
"MONTH_YEAR": "%B %Y"
},
"Language selector": {
"Select the language": "Select the language",
"Change the language": "Change the language"
},
"Homepage": {
"Schedule an event": "Schedule an event",
"Make a classic poll": "Make a classic poll"
},
"1st section": {
"What is that?": "What is that?",
"Framadate is an online service for planning an appointment or make a decision quickly and easily. No registration is required.": "Framadate is an online service for planning an appointment or make a decision quickly and easily. No registration is required.",
"Here is how it works:": "Here is how it works:",
"Make a poll": "Make a poll",
"Define dates or subjects to choose": "Define dates or subjects to choose",
"Send the poll link to your friends or colleagues": "Send the poll link to your friends or colleagues",
"Discuss and make a decision": "Discuss and make a decision",
"Do you want to ": "Do you want to ",
"view an example?": "view an example?"
},
"2nd section": {
"The software": "The software",
"Framadate was initially based on ": "Framadate was initially based on ",
" a software developed by the University of Strasbourg. Today, it is devevoped by the association Framasoft": " a software developed by the University of Strasbourg. Today, it is devevoped by the association Framasoft",
"This software needs javascript and cookies enabled. It is compatible with the following web browsers:": "This software needs javascript and cookies enabled. It is compatible with the following web browsers:",
"It is governed by the ": "It is governed by the ",
"CeCILL-B license": "CeCILL-B license"
},
"3rd section": {
"Cultivate your garden": "Cultivate your garden",
"To participate in the software development, suggest improvements or simply download it, please visit ": "To participate in the software development, suggest improvements or simply download it, please visit ",
"the development site": "the development site",
"If you want to install the software for your own use and thus increase your independence, we help you on:": "If you want to install the software for your own use and thus increase your independence, we help you on:"
},
"PollInfo": {
"Remove the poll": "Remove the poll",
"Remove all the comments": "Remove all the comments",
"Remove all the votes": "Remove all the votes",
"Print": "Print",
"Export to CSV": "Export to CSV",
"Remove the poll": "Remove the poll",
"Title": "Title of the poll",
"Edit the title": "Edit the title",
"Save the new title": "Save the new title",
"Cancel the title edit": "Cancel the title edit",
"Initiator of the poll": "Initiator of the poll",
"Edit the name": "Edit the name",
"Save the new name": "Save the new name",
"Cancel the name edit": "Cancel the name edit",
"Email": "Email",
"Edit the email adress": "Edit the email adress",
"Save the email address": "Save the email address",
"Cancel the email address edit": "Cancel the email address edit",
"Edit the description": "Edit the description",
"Save the description": "Save the description",
"Cancel the description edit": "Cancel the description edit",
"Public link of the poll": "Public link of the poll",
"Admin link of the poll": "Admin link of the poll",
"Expiration date": "Expiration's date",
"Edit the expiration date": "Edit the expiration's date",
"Save the new expiration date": "Save the new expiration's date",
"Cancel the expiration date edit": "Cancel the expiration's date edit",
"Poll rules": "Poll rules",
"Edit the poll rules": "Edit the poll rules",
"Votes and comments are locked": "Votes and comments are locked",
"Votes and comments are open": "Votes and comments are open",
"Votes are editable": "Votes are editable",
"Save the new rules": "Save the new rules",
"Cancel the rules edit": "Cancel the rules edit",
"The name is invalid.": "The name is invalid."
},
"Poll results": {
"Votes of the poll": "Votes of the poll",
"Edit the line:": "Edit the line:",
"Remove the line:": "Remove the line:",
"Vote no for": "Vote \"no\" for",
"Vote yes for": "Vote \"yes\" for",
"Vote ifneedbe for": "Vote \"ifneedbe\" for",
"Save the choices": "Save the choices",
"Addition": "Addition",
"Best choice": "Best choices",
"Best choices": "Best choices",
"The best choice at this time is:": "The best choice at this time is:",
"The bests choices at this time are:": "The bests choices at this time are:",
"Scroll to the left": "Scroll to the left",
"Scroll to the right": "Scroll to the right"
},
"Comments": {
"Comments of polled people": "Comments of polled people",
"Remove the comment": "Remove the comment",
"Add a comment to the poll": "Add a comment to the poll",
"Your comment": "Your comment",
"Send the comment": "Send the comment",
"anonyme": "anonyme",
"Comment added": "Comment added"
},
"studs": {
"If you want to vote in this poll, you have to give your name, choose the values that fit best for you and validate with the plus button at the end of the line.": "If you want to vote in this poll, you have to give your name, choose the values that fit best for you and validate with the plus button at the end of the line.",
"POLL_LOCKED_WARNING": "The administration locked this poll. Votes and comments are frozen, it is no longer possible to participate",
"The poll is expired, it will be deleted soon.": "The poll is expired, it will be deleted soon.",
"Deletion date:": "Deletion date:"
},
"adminstuds": {
"As poll administrator, you can change all the lines of this poll with this button": "As poll administrator, you can change all the lines of this poll with this button",
"remove a column or a line with": "remove a column or a line with",
"and add a new column with": "and add a new column with",
"Finally, you can change the informations of this poll like the title, the comments or your email address.": "Finally, you can change the informations of this poll like the title, the comments or your email address.",
"Column's adding": "Column's adding",
"You can add a new scheduling date to your poll.": "You can add a new scheduling date to your poll.",
"If you just want to add a new hour to an existant date, put the same date and choose a new hour.": "If you just want to add a new hour to an existant date, put the same date and choose a new hour.",
"Confirm removal of the poll": "Confirm removal of your poll",
"Delete the poll": "Delete the poll",
"Keep the poll": "Keep the poll",
"Your poll has been removed!": "Your poll has been removed!",
"Poll saved": "Poll saved",
"Vote added": "Vote added",
"Vote updated": "Vote updated",
"Vote deleted": "Vote deleted",
"All votes deleted": "All votes deleted",
"Back to the poll": "Back to the poll",
"Add a column": "Add a column",
"Remove the column": "Remove the column",
"Choice added": "Choice added",
"Confirm removal of all votes of the poll": "Confirm removal of all votes of the poll",
"Keep the votes": "Keep the votes",
"Remove the votes": "Remove the votes",
"Confirm removal of all comments of the poll": "Confirm removal of all comments of the poll",
"Keep the comments": "Keep the comments",
"Remove the comments": "Remove the comments",
"The poll has been deleted": "The poll has been deleted",
"Keep votes": "Keep votes",
"Keep comments": "Keep comments",
"Keep this poll": "Keep this poll"
},
"Step 1": {
"Poll creation (1 on 3)": "Poll creation (1 on 3)",
"You are in the poll creation section.": "You are in the poll creation section.",
"Required fields cannot be left blank.": "Required fields cannot be left blank.",
"Poll title": "Poll title",
"Voters can modify their vote themselves.": "Voters can modify their vote themselves.",
"To receive an email for each new vote.": "To receive an email for each new vote.",
"To receive an email for each new comment.": "To receive an email for each new comment.",
"Go to step 2": "Go to step 2"
},
"Step 2": {
"Back to step 1": "Revenir à létape 1",
"Go to step 3": "Aller à létape 3"
},
"Step 2 date": {
"Poll dates (2 on 3)": "Poll dates (2 on 3)",
"Choose the dates of your poll": "Choose the dates of your poll",
"To schedule an event you need to propose at least two choices (two hours for one day or two days).": "To schedule an event you need to propose at least two choices (two hours for one day or two days).",
"You can add or remove additionnal days and hours with the buttons": "You can add or remove additionnal days and hours with the buttons",
"For each selected day, you can choose, or not, meeting hours (e.g.: \"8h\", \"8:30\", \"8h-10h\", \"evening\", etc.)": "For each selected day, you can choose, or not, meeting hours (e.g.: \"8h\", \"8:30\", \"8h-10h\", \"evening\", etc.)",
"Remove an hour": "Remove an hour",
"Add an hour": "Add an hour",
"Copy hours of the first day": "Copy hours of the first day",
"Remove a day": "Remove a day",
"Add a day": "Add a day",
"Remove all days": "Remove all days",
"Remove all hours": "Remove all hours"
},
"Step 2 classic": {
"Poll subjects (2 on 3)": "Poll subjects (2 on 3)",
"To make a generic poll you need to propose at least two choices between differents subjects.": "To make a generic poll you need to propose at least two choices between differents subjects.",
"You can add or remove additional choices with the buttons": "You can add or remove additional choices with the buttons",
"It's possible to propose links or images by using": "It's possible to propose links or images by using",
"the Markdown syntax": "the Markdown syntax",
"Add a link or an image": "Add a link or an image",
"These fields are optional. You can add a link, an image or both.": "These fields are optional. You can add a link, an image or both.",
"URL of the image": "URL of the image",
"Alternative text": "Alternative text",
"Remove a choice": "Remove a choice",
"Add a choice": "Add a choice"
},
"Step 3": {
"Back to step 2": "Back to step 2",
"Removal date and confirmation (3 on 3)": "Removal date and confirmation (3 on 3)",
"Confirm the creation of your poll": "Confirm the creation of your poll",
"List of your choices": "List of your choices",
"Once you have confirmed the creation of your poll, you will be automatically redirected on the administration page of your poll.": "Once you have confirmed the creation of your poll, you will be automatically redirected on the administration page of your poll.",
"Then, you will receive quickly two emails: one contening the link of your poll for sending it to the voters, the other contening the link to the administration page of your poll.": "Then, you will receive quickly two emails: one contening the link of your poll for sending it to the voters, the other contening the link to the administration page of your poll.",
"Create the poll": "Create the poll",
"Your poll will be automatically removed after": "Your poll will be automatically removed after",
"after the last date of your poll:": "after the last date of your poll:",
"You can set a closer removal date for it.": "You can set a closer removal date for it.",
"Removal date:": "Removal date:"
},
"Admin": {
"Back to administration": "Back to administration",
"Polls": "Polls",
"Migration": "Migration",
"Purge": "Purge",
"Logs": "Logs",
"Poll ID": "Poll ID",
"Format": "Format",
"Title": "Title",
"Author": "Author",
"Email": "Courriel",
"Expiration date": "Date d'expiration",
"Users": "Users",
"Actions": "Actions",
"See the poll": "See the poll",
"Change the poll": "Change the poll",
"Deleted the poll": "Deleted the poll",
"Summary": "Summary",
"Success": "Success",
"Fail": "Fail",
"Nothing": "Nothing",
"Succeeded:": "Succeeded:",
"Failed:": "Failed:",
"Skipped:": "Skipped:",
"Pages:": "Pages:",
"Confirm removal of the poll": "Confirm removal of the poll ",
"polls in the database at this time": "polls in the database at this time",
"Purge the polls": "Purge the polls"
},
"Mail" : {
"Poll's participation": "Poll's participation",
"filled a vote.\nYou can find your poll at the link": "filled a vote.\nYou can find your poll at the link",
"updated a vote.\nYou can find your poll at the link": "updated a vote.\nYou can find your poll at the link",
"wrote a comment.\nYou can find your poll at the link": "wrote a comment.\nYou can find your poll at the link",
"Thanks for your confidence.": "Thanks for your confidence.",
"\n--\n\n« La route est longue, mais la voie est libre… »\nFramasoft ne vit que par vos dons (déductibles des impôts).\nMerci d'avance pour votre soutien http://soutenir.framasoft.org.": "\n\n\n\n",
"[ADMINISTRATOR] New settings for your poll": "[ADMINISTRATOR] New settings for your poll",
"You have changed the settings of your poll. \nYou can modify this poll with this link": "You have changed the settings of your poll. \nYou can modify this poll with this link",
"This is the message you have to send to the people you want to poll. \nNow, you have to send this message to everyone you want to poll.":"This is the message you have to send to the people you want to poll. \nNow, you have to send this message to everyone you want to poll.",
"hast just created a poll called": "has just created a poll called",
"Thanks for filling the poll at the link above": "Thanks for filling the poll at the link above",
"This message should NOT be sent to the polled people. It is private for the poll's creator.\n\nYou can now modify it at the link above": "This message should NOT be sent to the polled people. It is private for the poll's creator.\n\nYou can now modify it at the link above",
"Author's message": "Author's message",
"For sending to the polled users": "For sending to the polled users"
},
"Error": {
"Error!": "Error!",
"Enter a title": "Enter a title",
"Something is wrong with the format": "Something is wrong with the format",
"Enter an email address": "Enter an email address",
"The address is not correct! You should enter a valid email address (like r.stallman@outlock.com) in order to receive the link to your poll.": "The address is not correct! You should enter a valid email address (like r.stallman@outlock.com) in order to receive the link to your poll.",
"You haven't filled the first section of the poll creation.": "You haven't filled the first section of the poll creation.",
"Javascript is disabled on your browser. Its activation is required to create a poll.": "Javascript is disabled on your browser. Its activation is required to create a poll.",
"Cookies are disabled on your browser. Theirs activation is required to create a poll.": "Cookies are disabled on your browser. Theirs activation is required to create a poll.",
"This poll doesn't exist !": "This poll doesn't exist !",
"Enter a name": "Enter a name",
"The name you've chosen already exist in this poll!": "The name you've chosen already exist in this poll!",
"Enter a name and a comment!": "Enter a name and a comment!",
"Failed to insert the comment!": "Failed to insert the comment!",
"Framadate is not properly installed, please check the \"INSTALL\" to setup the database before continuing.": "Framadate is not properly installed, please check the 'INSTALL' to setup the database before continuing.",
"Failed to save poll": "Failed to save poll",
"Update vote failed": "Update vote failed",
"Adding vote failed": "Adding vote failed"
}
}

Binary file not shown.

View File

@ -1,752 +0,0 @@
msgid ""
msgstr ""
"Project-Id-Version: Framadate 0.8\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-10-23 20:52+0100\n"
"PO-Revision-Date: 2014-11-11 20:12+0100\n"
"Last-Translator: JosephK\n"
"Language-Team: JosephK\n"
"Language: English\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: English\n"
"X-Poedit-Country: UNITED KINGDOM\n"
"X-Poedit-SourceCharset: utf-8\n"
"X-Poedit-KeywordsList: _\n"
"X-Poedit-Basepath: /var/www/studs\n"
"X-Poedit-SearchPath-0: .\n"
########### Generic ###########
msgid "Make your polls"
msgstr "Make your polls"
msgid "Home"
msgstr "Home"
msgid "Poll"
msgstr "Poll"
msgid "Save"
msgstr "Save"
msgid "Cancel"
msgstr "Cancel"
msgid "Add"
msgstr "Add"
msgid "Remove"
msgstr "Remove"
msgid "Validate"
msgstr "Validate"
msgid "Edit"
msgstr "Edit"
msgid "Next"
msgstr "Next"
msgid "Back"
msgstr "Back"
msgid "Close"
msgstr "Close"
msgid "Your name"
msgstr "Your name"
msgid "Your email address"
msgstr "Your email address"
msgid "(in the format name@mail.com)"
msgstr "(in the format name@mail.com)"
msgid "Description"
msgstr "Description"
msgid "Back to the homepage of"
msgstr "Back to the homepage of"
msgid "Error!"
msgstr "Error!"
msgid "(dd/mm/yyyy)"
msgstr "(dd/mm/yyyy)"
msgid "dd/mm/yyyy"
msgstr "dd/mm/yyyy"
msgid "%A, den %e. %B %Y"
msgstr "%A, den %e. %B %Y"
msgid "days"
msgstr "days"
msgid "months"
msgstr "months"
########### Language selector ###########
msgid "Change the language"
msgstr "Change the language"
msgid "Select the language"
msgstr "Select the language"
############ Homepage ############
msgid "Schedule an event"
msgstr "Schedule an event"
msgid "Make a classic poll"
msgstr "Make a classic poll"
# 1st section
msgid "What is that?"
msgstr "What is that?"
msgid "Framadate is an online service for planning an appointment or make a decision quickly and easily. No registration is required."
msgstr "Framadate is an online service for planning an appointment or make a decision quickly and easily. No registration is required."
msgid "Here is how it works:"
msgstr "Here is how it works:"
msgid "Make a poll"
msgstr "Make a poll"
msgid "Define dates or subjects to choose"
msgstr "Define dates or subjects to choose"
msgid "Send the poll link to your friends or colleagues"
msgstr "Send the poll link to your friends or colleagues"
msgid "Discuss and make a decision"
msgstr "Discuss and make a decision"
msgid "Do you want to "
msgstr "Do you want to "
msgid "view an example?"
msgstr "view an example?"
# 2nd section
msgid "The software"
msgstr "The software"
msgid "Framadate was initially based on "
msgstr "Framadate was initially based on "
msgid " a software developed by the University of Strasbourg. Today, it is devevoped by the association Framasoft"
msgstr " a software developed by the University of Strasbourg. Today, it is devevoped by the association Framasoft"
msgid "This software needs javascript and cookies enabled. It is compatible with the following web browsers:"
msgstr "This software needs javascript and cookies enabled. It is compatible with the following web browsers:"
msgid "It is governed by the "
msgstr "It is governed by the "
msgid "CeCILL-B license"
msgstr "CeCILL-B license"
# 3rd section
msgid "Cultivate your garden"
msgstr "Cultivate your garden"
msgid "To participate in the software development, suggest improvements or simply download it, please visit "
msgstr "To participate in the software development, suggest improvements or simply download it, please visit "
msgid "the development site"
msgstr "the development site"
msgid "If you want to install the software for your own use and thus increase your independence, we help you on:"
msgstr "If you want to install the software for your own use and thus increase your independence, we help you on:"
############## Poll ##############
msgid "Poll administration"
msgstr "Poll administration"
msgid "Legend:"
msgstr "Legend:"
# Jumbotron adminstuds.php (+ studs.php)
msgid "Back to the poll"
msgstr "Back to the poll"
msgid "Print"
msgstr "Print"
msgid "Export to CSV"
msgstr "Export to CSV"
msgid "Remove the poll"
msgstr "Remove the poll"
msgid "Title of the poll"
msgstr "Title of the poll"
msgid "Edit the title"
msgstr "Edit the title"
msgid "Save the new title"
msgstr "Save the new title"
msgid "Cancel the title edit"
msgstr "Cancel the title edit"
msgid "Initiator of the poll"
msgstr "Initiator of the poll"
msgid "Edit the name"
msgstr "Edit the name"
msgid "Save the new name"
msgstr "Save the new name"
msgid "Cancel the name edit"
msgstr "Cancel the name edit"
msgid "Email"
msgstr "Email"
msgid "Edit the email adress"
msgstr "Edit the email adress"
msgid "Save the email address"
msgstr "Save the email address"
msgid "Cancel the email address edit"
msgstr "Cancel the email address edit"
msgid "Edit the description"
msgstr "Edit the description"
msgid "Save the description"
msgstr "Save the description"
msgid "Cancel the description edit"
msgstr "Cancel the description edit"
msgid "Public link of the poll"
msgstr "Public link of the poll"
msgid "Admin link of the poll"
msgstr "Admin link of the poll"
msgid "Expiration's date"
msgstr "Expiration's date"
msgid "Edit the expiration's date"
msgstr "Edit the expiration's date"
msgid "Save the new expiration's date"
msgstr "Save the new expiration's date"
msgid "Cancel the expiration's date edit"
msgstr "Cancel the expiration's date edit"
msgid "Poll rules"
msgstr "Poll rules"
msgid "Edit the poll rules"
msgstr "Edit the poll rules"
msgid "Votes and comments are locked"
msgstr "Votes and comments are locked"
msgid "Votes and comments are open"
msgstr "Votes and comments are open"
msgid "Votes are editable"
msgstr "Votes are editable"
msgid "Save the new rules"
msgstr "Save the new rules"
msgid "Cancel the rules edit"
msgstr "Cancel the rules edit"
msgid "The name is invalid."
msgstr "Le nom n'est pas valide."
# Help text adminstuds.php
msgid "As poll administrator, you can change all the lines of this poll with this button"
msgstr "As poll administrator, you can change all the lines of this poll with this button"
msgid "remove a column or a line with"
msgstr "remove a column or a line with"
msgid "and add a new column with"
msgstr "and add a new column with"
msgid "Finally, you can change the informations of this poll like the title, the comments or your email address."
msgstr "Finally, you can change the informations of this poll like the title, the comments or your email address."
# Help text studs.php
msgid "If you want to vote in this poll, you have to give your name, choose the values that fit best for you and validate with the plus button at the end of the line."
msgstr "If you want to vote in this poll, you have to give your name, choose the values that fit best for you and validate with the plus button at the end of the line."
# Poll results
msgid "Votes of the poll "
msgstr "Votes of the poll "
msgid "Remove the column"
msgstr "Remove the column"
msgid "Add a column"
msgstr "Add a column"
msgid "Edit the line:"
msgstr "Edit the line:"
msgid "Remove the line:"
msgstr "Remove the line:"
msgid "Yes"
msgstr "Yes"
msgid "Ifneedbe"
msgstr "Ifneedbe"
msgid ", ifneedbe"
msgstr ", ifneedbe"
msgid "No"
msgstr "No"
msgid "Vote \"no\" for "
msgstr "Vote \"no\" for "
msgid "Vote \"yes\" for "
msgstr "Vote \"yes\" for "
msgid "Vote \"ifneedbe\" for "
msgstr "Vote \"ifneedbe\" for "
msgid "Save the choices"
msgstr "Save the choices"
msgid "Addition"
msgstr "Addition"
msgid "Best choice"
msgstr "Best choices"
msgid "Best choices"
msgstr "Best choices"
msgid "The best choice at this time is:"
msgstr "The best choice at this time is:"
msgid "The bests choices at this time are:"
msgstr "The bests choices at this time are:"
msgid "with"
msgstr "with"
msgid "vote"
msgstr "vote"
msgid "votes"
msgstr "votes"
msgid "for"
msgstr "for"
msgid "Remove all the votes"
msgstr "Remove all the votes"
msgid "Scroll to the left"
msgstr "Scroll to the left"
msgid "Scroll to the right"
msgstr "Scroll to the right"
# Comments
msgid "Comments of polled people"
msgstr "Comments of polled people"
msgid "Remove the comment"
msgstr "Remove the comment"
msgid "Add a comment in the poll"
msgstr "Add a comment in the poll"
msgid "Your comment"
msgstr "Your comment"
msgid "Send the comment"
msgstr "Send the comment"
msgid "anonyme"
msgstr "anonyme"
msgid "Remove all the comments"
msgstr "Remove all the comments"
# Add a colum adminstuds.php
msgid "Column's adding"
msgstr "Column's adding"
msgid "You can add a new scheduling date to your poll."
msgstr "You can add a new scheduling date to your poll."
msgid "If you just want to add a new hour to an existant date, put the same date and choose a new hour."
msgstr "If you just want to add a new hour to an existant date, put the same date and choose a new hour."
# Remove poll adminstuds.php
msgid "Confirm removal of your poll"
msgstr "Confirm removal of your poll"
msgid "Remove this poll!"
msgstr "Remove this poll!"
msgid "Keep this poll!"
msgstr "Keep this poll!"
msgid "Your poll has been removed!"
msgstr "Your poll has been removed!"
# Errors adminstuds.php/studs
msgid "This poll doesn't exist !"
msgstr "This poll doesn't exist !"
msgid "Enter a name"
msgstr "Enter a name"
msgid "The name you've chosen already exist in this poll!"
msgstr "The name you've chosen already exist in this poll!"
msgid "Enter a name and a comment!"
msgstr "Enter a name and a comment!"
msgid "Failed to insert the comment!"
msgstr "Failed to insert the comment!"
msgid "Characters \" ' < et > are not permitted"
msgstr "Characters \" ' < et > are not permitted"
msgid "The date is not correct !"
msgstr "The date is not correct !"
########### Step 1 ###########
# Step 1 info_sondage.php
msgid "Poll creation (1 on 3)"
msgstr "Poll creation (1 on 3)"
msgid "Framadate is not properly installed, please check the 'INSTALL' to setup the database before continuing."
msgstr "Framadate is not properly installed, please check the 'INSTALL' to setup the database before continuing."
msgid "You are in the poll creation section."
msgstr "You are in the poll creation section."
msgid "Required fields cannot be left blank."
msgstr "Required fields cannot be left blank."
msgid "Poll title"
msgstr "Poll title"
msgid "Voters can modify their vote themselves."
msgstr "Voters can modify their vote themselves."
msgid "To receive an email for each new vote."
msgstr "To receive an email for each new vote."
msgid "Go to step 2"
msgstr "Go to step 2"
# Errors info_sondage.php
msgid "Enter a title"
msgstr "Enter a title"
msgid "Something is wrong with the format"
msgstr "Something is wrong with the format"
msgid "Enter an email address"
msgstr "Enter an email address"
msgid "The address is not correct! You should enter a valid email address (like r.stallman@outlock.com) in order to receive the link to your poll."
msgstr "The address is not correct! You should enter a valid email address (like r.stallman@outlock.com) in order to receive the link to your poll."
# Error choix_date.php/choix_autre.php
msgid "You haven't filled the first section of the poll creation."
msgstr "You haven't filled the first section of the poll creation."
msgid "Back to step 1"
msgstr "Back to step 1"
########### Step 2 ###########
# Step 2 choix_date.php
msgid "Poll dates (2 on 3)"
msgstr "Poll dates (2 on 3)"
msgid "Choose the dates of your poll"
msgstr "Choose the dates of your poll"
msgid "To schedule an event you need to propose at least two choices (two hours for one day or two days)."
msgstr "To schedule an event you need to propose at least two choices (two hours for one day or two days)."
msgid "You can add or remove additionnal days and hours with the buttons"
msgstr "You can add or remove additionnal days and hours with the buttons"
msgid "For each selected day, you can choose, or not, meeting hours (e.g.: \"8h\", \"8:30\", \"8h-10h\", \"evening\", etc.)"
msgstr "For each selected day, you can choose, or not, meeting hours (e.g.: \"8h\", \"8:30\", \"8h-10h\", \"evening\", etc.)"
msgid "Day"
msgstr "Day"
msgid "Time"
msgstr "Time"
msgid "Remove an hour"
msgstr "Remove an hour"
msgid "Add an hour"
msgstr "Add an hour"
msgid "Copy hours of the first day"
msgstr "Copy hours of the first day"
msgid "Remove a day"
msgstr "Remove a day"
msgid "Add a day"
msgstr "Add a day"
msgid "Remove all days"
msgstr "Remove all days"
msgid "Remove all hours"
msgstr "Remove all hours"
# Step 2 choix_autre.php
msgid "Poll subjects (2 on 3)"
msgstr "Poll subjects (2 on 3)"
msgid "To make a generic poll you need to propose at least two choices between differents subjects."
msgstr "To make a generic poll you need to propose at least two choices between differents subjects."
msgid "You can add or remove additional choices with the buttons"
msgstr "You can add or remove additional choices with the buttons"
msgid "It's possible to propose links or images by using "
msgstr "It's possible to propose links or images by using "
msgid "the Markdown syntax"
msgstr "the Markdown syntax"
msgid "Choice"
msgstr "Choice"
msgid "Add a link or an image"
msgstr "Add a link or an image"
msgid "These fields are optional. You can add a link, an image or both."
msgstr "These fields are optional. You can add a link, an image or both."
msgid "URL of the image"
msgstr "URL of the image"
msgid "Link"
msgstr "Link"
msgid "Alternative text"
msgstr "Alternative text"
msgid "Remove a choice"
msgstr "Remove a choice"
msgid "Add a choice"
msgstr "Add a choice"
msgid "Back to step 2"
msgstr "Back to step 2"
msgid "Go to step 3"
msgstr "Go to step 3"
########### Step 3 ###########
msgid "Removal date and confirmation (3 on 3)"
msgstr "Removal date and confirmation (3 on 3)"
msgid "Confirm the creation of your poll"
msgstr "Confirm the creation of your poll"
msgid "List of your choices"
msgstr "List of your choices"
msgid "Once you have confirmed the creation of your poll, you will be automatically redirected on the administration page of your poll."
msgstr "Once you have confirmed the creation of your poll, you will be automatically redirected on the administration page of your poll."
msgid "Then, you will receive quickly two emails: one contening the link of your poll for sending it to the voters, the other contening the link to the administration page of your poll."
msgstr "Then, you will receive quickly two emails: one contening the link of your poll for sending it to the voters, the other contening the link to the administration page of your poll."
msgid "Create the poll"
msgstr "Create the poll"
# Step 3 choix_date.php
msgid "Your poll will be automatically removed "
msgstr "Your poll will be automatically removed "
msgid " after the last date of your poll:"
msgstr " after the last date of your poll:"
msgid "Removal date:"
msgstr "Removal date:"
# Step 3 choix_autre.php
msgid "Your poll will be automatically removed after"
msgstr "Your poll will be automatically removed after"
msgid "You can set a closer removal date for it."
msgstr "You can set a closer removal date for it."
msgid "Removal date (optional)"
msgstr "Removal date (optional)"
############# Admin #############
msgid "Polls"
msgstr "Polls"
msgid "Migration"
msgstr "Migration"
msgid "Confirm removal of the poll "
msgstr "Confirm removal of the poll "
msgid "polls in the database at this time"
msgstr "polls in the database at this time"
msgid "Poll ID"
msgstr "Poll ID"
msgid "Format"
msgstr "Format"
msgid "Title"
msgstr "Title"
msgid "Author"
msgstr "Author"
msgid "Users"
msgstr "Users"
msgid "Actions"
msgstr "Actions"
msgid "See the poll"
msgstr "See the poll"
msgid "Change the poll"
msgstr "Change the poll"
msgid "Logs"
msgstr "Logs"
msgid "Summary"
msgstr "Summary"
msgid "Success"
msgstr "Success"
msgid "Fail"
msgstr "Fail"
msgid "Nothing"
msgstr "Nothing"
msgid "Succeeded:"
msgstr "Succeeded:"
msgid "Failed:"
msgstr "Failed:"
msgid "Skipped:"
msgstr "Skipped:"
msgid "Pages:"
msgstr "Pages:"
########### Mails ###########
# Mails studs.php
msgid "Poll's participation"
msgstr "Poll's participation"
msgid ""
"filled a vote.\n"
"You can find your poll at the link"
msgstr ""
"filled a vote.\n"
"You can find your poll at the link"
msgid ""
"updated a vote.\n"
"You can find your poll at the link"
msgstr ""
"updated a vote.\n"
"You can find your poll at the link"
msgid ""
"wrote a comment.\n"
"You can find your poll at the link"
msgstr ""
"wrote a comment.\n"
"You can find your poll at the link"
msgid "Thanks for your confidence."
msgstr "Thanks for your confidence."
msgid ""
"\n"
"--\n"
"\n"
 La route est longue, mais la voie est libre… »\n"
"Framasoft ne vit que par vos dons (déductibles des impôts).\n"
"Merci d'avance pour votre soutien http://soutenir.framasoft.org."
msgstr ""
"\n"
"\n"
"\n"
"\n"
" "
# Mails adminstuds.php
msgid "[ADMINISTRATOR] New settings for your poll"
msgstr "[ADMINISTRATOR] New settings for your poll"
msgid ""
"You have changed the settings of your poll. \n"
"You can modify this poll with this link"
msgstr ""
"You have changed the settings of your poll. \n"
"You can modify this poll with this link"
# Mails creation_sondage.php
msgid ""
"This is the message you have to send to the people you want to poll. \n"
"Now, you have to send this message to everyone you want to poll."
msgstr ""
"This is the message you have to send to the people you want to poll. \n"
"Now, you have to send this message to everyone you want to poll."
msgid "hast just created a poll called"
msgstr "has just created a poll called"
msgid "Thanks for filling the poll at the link above"
msgstr "Thanks for filling the poll at the link above"
msgid ""
"This message should NOT be sent to the polled people. It is private for the poll's creator.\n"
"\n"
"You can now modify it at the link above"
msgstr ""
"This message should NOT be sent to the polled people. It is private for the poll's creator.\n"
"\n"
"You can now modify it at the link above"
msgid "Author's message"
msgstr "Author's message"
msgid "For sending to the polled users"
msgstr "For sending to the polled users"

298
locale/es.json Normal file
View File

@ -0,0 +1,298 @@
{
"Generic": {
"Make your polls": "Encuestas para la universidad",
"Home": "Inicio",
"Poll": "ES_Sondage",
"Save": "ES_Enregistrer",
"Cancel": "Cancelar",
"Add": "Añadir",
"Remove": "ES_Effacer",
"Validate": "ES_Valider",
"Edit": "Cambio",
"Next": "Seguir",
"Back": "ES_Précédent",
"Close": "ES_Fermer",
"Your name": "Su nombre",
"Your email address": "Su dirección electrónica ",
"(in the format name@mail.com)": "ES_(au format nom@mail.com)",
"Description": "ES_Description",
"Back to the homepage of": "Retroceder al inicio de",
"days": "ES_jours",
"months": "ES_mois",
"Day": "ES_Jour",
"Time": "Horario",
"with": "ES_avec",
"vote": "voto",
"votes": "votos",
"for": "por",
"Yes": "ES_Oui",
"Ifneedbe": "ES_Si nécessaire",
"No": "ES_Non",
"Legend:": "ES_Légende :",
"Date": "ES_Date",
"Classic": "ES_Classique",
"Page generated in": "ES_Page générée en",
"seconds": "ES_secondes",
"Choice": "Opciòn",
"Link": "ES_Lien"
},
"Date": {
"dd/mm/yyyy": "ES_jj/mm/aaaa",
"%A, den %e. %B %Y": "%A %e de %B %Y",
"FULL": "ES_%A, den %e. %B %Y",
"SHORT": "ES_%A %e %B %Y",
"DAY": "ES_%a %e",
"DATE": "ES_%Y-%m-%d",
"MONTH_YEAR": "ES_%B %Y"
},
"Language selector": {
"Select the language": "ES_Choisir la langue",
"Change the language": "ES_Changer la langue"
},
"Homepage": {
"Schedule an event": "Encuesta para planificar un evento",
"Make a classic poll": "ES_Créer un sondage classique"
},
"1st section": {
"What is that?": "ES_Prise en main",
"Framadate is an online service for planning an appointment or make a decision quickly and easily. No registration is required.": "ES_Framadate est un service en ligne permettant de planifier un rendez-vous ou prendre des décisions rapidement et simplement. Aucune inscription préalable nest nécessaire.",
"Here is how it works:": "ES_Voici comment ça fonctionne :",
"Make a poll": "Crear una encuesta",
"Define dates or subjects to choose": "ES_Déterminez les dates ou les sujets à choisir",
"Send the poll link to your friends or colleagues": "ES_Envoyez le lien du sondage à vos amis ou collègues",
"Discuss and make a decision": "ES_Discutez et prenez votre décision",
"Do you want to ": "ES_Voulez-vous ",
"view an example?": "ES_voir un exemple ?"
},
"2nd section": {
"The software": "ES_Le logiciel",
"Framadate was initially based on ": "ES_Framadate est initialement basé sur ",
" a software developed by the University of Strasbourg. Today, it is devevoped by the association Framasoft": "ES_ un logiciel développé par l'Université de Strasbourg. Aujourd'hui, son développement est assuré par lassociation Framasoft",
"This software needs javascript and cookies enabled. It is compatible with the following web browsers:": "ES_Ce logiciel requiert lactivation du javascript et des cookies. Il est compatible avec les navigateurs web suivants :",
"It is governed by the ": "ES_Il est régi par la ",
"CeCILL-B license": "ES_licence CeCILL-B"
},
"3rd section": {
"Cultivate your garden": "ES_Cultivez votre jardin",
"To participate in the software development, suggest improvements or simply download it, please visit ": "ES_Pour participer au développement du logiciel, proposer des améliorations ou simplement le télécharger, rendez-vous sur ",
"the development site": "ES_le site de développement",
"If you want to install the software for your own use and thus increase your independence, we help you on:": "ES_Si vous souhaitez installer ce logiciel pour votre propre usage et ainsi gagner en autonomie, nous vous aidons sur :"
},
"PollInfo": {
"Remove the poll": "Borrada de encuesta",
"Remove all the comments": "ES_Supprimer tous les commentaires",
"Remove all the votes": "ES_Supprimer tous les votes",
"Print": "ES_Imprimer",
"Export to CSV": "ES_Export en CSV",
"Title": "ES_Titre du sondage",
"Edit the title": "ES_Modifier le titre",
"Save the new title": "ES_Enregistrer le nouveau titre",
"Cancel the title edit": "ES_Annuler le changement de titre",
"Initiator of the poll": "Autor dela encuesta",
"Edit the name": "ES_Modification de l'auteur",
"Save the new name": "ES_Enregistrer l'auteur",
"Cancel the name edit": "ES_Annuler le changement d'auteur",
"Email": "ES_Courriel",
"Edit the email adress": "ES_Modifier le courriel",
"Save the email address": "ES_Enregistrer le courriel",
"Cancel the email address edit": "ES_Annuler le changement de courriel",
"Edit the description": "ES_Modifier la description",
"Save the description": "ES_Enregistrer la description",
"Cancel the description edit": "ES_Annuler le changement de description",
"Public link of the poll": "ES_Lien public du sondage",
"Admin link of the poll": "ES_Lien d'administration du sondage",
"Expiration date": "ES_Date d'expiration",
"Edit the expiration date": "ES_Modifier la date d'expiration",
"Save the new expiration date": "ES_Enregistrer la date d'expiration",
"Cancel the expiration date edit": "ES_Annuler le changement de date d'expiration",
"Poll rules": "ES_Permissions du sondage",
"Edit the poll rules": "ES_Modifier les permissions du sondage",
"Votes and comments are locked": "ES_Les votes et commentaires sont verrouillés",
"Votes and comments are open": "ES_Les votes et commentaires sont ouverts",
"Votes are editable": "ES_Les votes sont modifiables",
"Save the new rules": "ES_Enregistrer les nouvelles permissions",
"Cancel the rules edit": "ES_Annuler le changement de permissions",
"The name is invalid.": "ES_Le nom n'est pas valide."
},
"Poll results": {
"Votes of the poll": "ES_Votes du sondage",
"Edit the line:": "ES_Modifier la ligne :",
"Remove the line:": "ES_Supprimer la ligne :",
"Vote no for": "ES_Voter « non » pour",
"Vote yes for": "ES_Voter « oui » pour",
"Vote ifneedbe for": "ES_Voter « Si nécessaire » pour",
"Save the choices": "ES_Enregister les choix",
"Addition": "Suma",
"Best choice": "ES_Meilleur choix",
"Best choices": "ES_Meilleurs choix",
"The best choice at this time is:": "ES_Le meilleur choix pour l'instant est :",
"The bests choices at this time are:": "ES_Les meilleurs choix pour l'instant sont :",
"Scroll to the left": "ES_Faire défiler à gauche",
"Scroll to the right": "ES_Faire défiler à droite"
},
"Comments": {
"Comments of polled people": "ES_Commentaires de sondés",
"Remove the comment": "ES_Supprimer le commentaire",
"Add a comment to the poll": "ES_Ajouter un commentaire au sondage",
"Your comment": "ES_Votre commentaire",
"Send the comment": "ES_Envoyer le commentaire",
"anonyme": "ES_anonyme",
"Comment added": "ES_Commentaire ajouté"
},
"studs": {
"If you want to vote in this poll, you have to give your name, choose the values that fit best for you and validate with the plus button at the end of the line.": "Para participar a esta encuesta, introduzca su nombre, elige todas las valores que son apriopriadas y validar su seleccion con el botón verde a la fin de línea.",
"POLL_LOCKED_WARNING": "ES_L'administrateur a verrouillé ce sondage. Les votes et commentaires sont gelés, il n'est plus possible de participer",
"The poll is expired, it will be deleted soon.": "ES_Le sondage a expiré, il sera bientôt supprimé.",
"Deletion date:": "ES_Date de suppression :"
},
"adminstuds": {
"As poll administrator, you can change all the lines of this poll with this button": "En calidad de administrador, Usted puede cambiar todas la líneas de este encuesta con este botón",
"remove a column or a line with": "ES_effacer une colonne ou une ligne avec",
"and add a new column with": "ES_et si vous avez oublié de saisir un choix, vous pouvez rajouter une colonne en cliquant sur",
"Finally, you can change the informations of this poll like the title, the comments or your email address.": "Para acabar, Usted puede cambiar las informaciones relativas a su encuesta como el titulo, los comentarios o ademas su dirección electrónica.",
"Column's adding": "Añadido de columna",
"You can add a new scheduling date to your poll.": "ES_Vous pouvez ajouter une date à votre sondage.",
"If you just want to add a new hour to an existant date, put the same date and choose a new hour.": "ES_Si vous voulez juste ajouter un horaire à une date existante, mettez la même date et choisissez un autre horaire. Il sera intégré normalement au sondage existant.",
"Confirm removal of the poll": "Confirmar el borrado dela encuesta",
"Delete the poll": "ES_Je supprime le sondage",
"Keep the poll": "ES_Je garde le sondage",
"Your poll has been removed!": "Su encuesta ha sido borrado!",
"Poll saved": "ES_Sondage sauvegardé",
"Vote added": "ES_Vote ajouté",
"Vote updated": "ES_Vote mis à jour",
"Vote deleted": "ES_Vote supprimé",
"All votes deleted": "ES_Tous les votes ont été supprimés",
"Back to the poll": "ES_Retour au sondage",
"Add a column": "ES_Ajouter une colonne",
"Remove the column": "ES_Effacer la colonne",
"Choice added": "ES_Choix ajouté",
"Confirm removal of all votes of the poll": "ES_Confirmer la suppression de tous les votes de ce sondage",
"Keep the votes": "ES_Garder les votes",
"Remove the votes": "ES_Supprimer les votes",
"Confirm removal of all comments of the poll": "ES_Confirmer la suppression de tous les commentaires de ce sondage",
"Keep the comments": "ES_Garder les commentaires",
"Remove the comments": "ES_Supprimer les commentaires",
"The poll has been deleted": "ES_Le sondage a été supprimé",
"Keep votes": "ES_Garder les votes",
"Keep comments": "ES_Garder les commentaires",
"Keep this poll": "Dejar este encuesta!"
},
"Step 1": {
"Poll creation (1 on 3)": "ES_Création de sondage (1 sur 3)",
"You are in the poll creation section.": "Usted ha eligiendo de crear une nueva encuesta!",
"Required fields cannot be left blank.": "Gracias por completar los campos con una *.",
"Poll title": "ES_Titre du sondage",
"Voters can modify their vote themselves.": " Los encuentados pueden cambiar su línea ellos mismos.",
"To receive an email for each new vote.": " Usted quiere recibir un correo electónico cada vez que alguien participe a la encuesta.",
"To receive an email for each new comment.": "ES_Recevoir un courriel à chaque commentaire.",
"Go to step 2": "ES_Aller à l'étape 2"
},
"Step 2": {
"Back to step 1": "ES_Revenir à létape 1",
"Go to step 3": "ES_Aller à létape 3"
},
"Step 2 date": {
"Poll dates (2 on 3)": "ES_Choix des dates (2 sur 3)",
"Choose the dates of your poll": "ES_Choisissez les dates de votre sondage",
"To schedule an event you need to propose at least two choices (two hours for one day or two days).": "ES_Pour créer un sondage spécial dates vous devez proposer au moins deux choix (deux horaires pour une même journée ou deux jours).",
"You can add or remove additionnal days and hours with the buttons": "ES_Vous pouvez ajouter ou supprimer des jours et horaires supplémentaires avec les boutons",
"For each selected day, you can choose, or not, meeting hours (e.g.: \"8h\", \"8:30\", \"8h-10h\", \"evening\", etc.)": "ES_Pour chacun des jours sélectionnés, vous avez la possibilité de choisir ou non, des heures de réunion (par exemple : \"8h\", \"8:30\", \"8h-10h\", \"soir\", etc.)",
"Remove an hour": "ES_Supprimer le dernier horaire",
"Add an hour": "ES_Ajouter un horaire",
"Copy hours of the first day": "ES_Reporter les horaires du premier jour sur les autres jours",
"Remove a day": "ES_Supprimer le dernier jour",
"Add a day": "ES_Ajouter un jour",
"Remove all days": "ES_Effacer tous les jours",
"Remove all hours": "Borrar todos los horarios"
},
"Step 2 classic": {
"Poll subjects (2 on 3)": "ES_Choix des sujets (2 sur 3)",
"To make a generic poll you need to propose at least two choices between differents subjects.": "ES_Pour créer un sondage classique, vous devez proposer au moins deux choix différents.",
"You can add or remove additional choices with the buttons": "ES_Vous pouvez ajouter ou supprimer des choix supplémentaires avec les boutons",
"It's possible to propose links or images by using": "ES_Il est possible dinsérer des liens ou des images en utilisant ",
"the Markdown syntax": "ES_la syntaxe Markdown",
"Add a link or an image": "ES_Ajouter un lien ou une image",
"These fields are optional. You can add a link, an image or both.": "ES_Ces champs sont facultatifs. Vous pouvez ajouter un lien, une image ou les deux.",
"URL of the image": "ES_URL de l'image",
"Alternative text": "ES_Texte alternatif",
"Remove a choice": "ES_Supprimer le dernier choix",
"Add a choice": "ES_Ajouter un choix"
},
"Step 3": {
"Back to step 2": "ES_Revenir à létape 2",
"Removal date and confirmation (3 on 3)": "ES_Date d'expiration et confirmation (3 sur 3)",
"Confirm the creation of your poll": "ES_Confirmez la création de votre sondage",
"List of your choices": "ES_Liste de vos choix",
"Once you have confirmed the creation of your poll, you will be automatically redirected on the administration page of your poll.": "ES_Une fois que vous aurez confirmé la création du sondage, vous serez redirigé automatiquement vers la page d'administration de votre sondage.",
"Then, you will receive quickly two emails: one contening the link of your poll for sending it to the voters, the other contening the link to the administration page of your poll.": "ES_En même temps, vous recevrez deux courriels : l'un contenant le lien vers votre sondage pour le faire suivre aux futurs sondés, l'autre contenant le lien vers la page d'administraion du sondage.",
"Create the poll": "Crear la encuesta",
"Your poll will be automatically removed after": "ES_Votre sondage sera automatiquement effacé après",
"after the last date of your poll:": "ES_après la date la plus tardive :",
"You can set a closer removal date for it.": "ES_Vous pouvez décider d'une date de suppression plus proche.",
"Removal date:": "ES_Date de suppression :"
},
"Admin": {
"Back to administration": "ES_Retour à l'administration",
"Polls": "ES_Sondages",
"Migration": "ES_Migration",
"Purge": "ES_Purge",
"Logs": "Histórico",
"Poll ID": "ES_ID sondage",
"Format": "ES_Format",
"Title": "ES_Titre",
"Author": "ES_Auteur",
"Email": "ES_Courriel",
"Expiration date": "ES_Date d'expiration",
"Users": "ES_Utilisateurs",
"Actions": "Acciones",
"See the poll": "Ver la encuesta",
"Change the poll": "Cambiar la encuesta",
"Deleted the poll": "ES_Supprimer le sondage",
"Summary": "ES_Résumé",
"Success": "ES_Réussite",
"Fail": "ES_Échèc",
"Nothing": "ES_Rien",
"Succeeded:": "ES_Réussit:",
"Failed:": "ES_Échoué:",
"Skipped:": "ES_Passé:",
"Pages:": "ES_Pages :",
"Confirm removal of the poll": "Confirmar el borrado dela encuesta",
"polls in the database at this time": "encuestas en la basa por el momento",
"Purge the polls": "ES_Purger les sondages"
},
"Mail": {
"Poll's participation": "ES_Participation au sondage",
"filled a vote.\nYou can find your poll at the link": "ES_vient de voter.\nVous pouvez retrouver votre sondage avec le lien suivant",
"updated a vote.\nYou can find your poll at the link": "ES_vient de mettre à jour un vote.\nVous pouvez retrouver votre sondage avec le lien suivant",
"wrote a comment.\nYou can find your poll at the link": "ES_vient de rédiger un commentaire.\nVous pouvez retrouver votre sondage avec le lien suivant",
"Thanks for your confidence.": "ES_Merci de votre confiance.",
"\n--\n\n« La route est longue, mais la voie est libre… »\nFramasoft ne vit que par vos dons (déductibles des impôts).\nMerci d'avance pour votre soutien http://soutenir.framasoft.org.": "ES_\n--\n\n« La route est longue, mais la voie est libre… »\nFramasoft ne vit que par vos dons (déductibles des impôts).\nMerci d'avance pour votre soutien http://soutenir.framasoft.org.",
"[ADMINISTRATOR] New settings for your poll": "ES_[ADMINISTRATEUR] Changement de configuration du sondage",
"You have changed the settings of your poll. \nYou can modify this poll with this link": "ES_Vous avez modifié la configuration de votre sondage. \nVous pouvez modifier ce sondage avec le lien suivant",
"This is the message you have to send to the people you want to poll. \nNow, you have to send this message to everyone you want to poll.": "ES_Ceci est le message qui doit être envoyé aux sondés. \nVous pouvez maintenant transmettre ce message à toutes les personnes susceptibles de participer au vote.",
"hast just created a poll called": "ES_ vient de créer un sondage intitulé ",
"Thanks for filling the poll at the link above": "ES_Merci de bien vouloir participer au sondage à l'adresse suivante",
"This message should NOT be sent to the polled people. It is private for the poll's creator.\n\nYou can now modify it at the link above": "ES_Ce message ne doit PAS être diffusé aux sondés. Il est réservé à l'auteur du sondage.\n\nVous pouvez modifier ce sondage à l'adresse suivante ",
"Author's message": "Reservado al autor",
"For sending to the polled users": "ES_Pour diffusion aux sondés"
},
"Error": {
"Error!": "Error!",
"Enter a title": "Introducza un título",
"Something is wrong with the format": "Something is wrong with the format",
"Enter an email address": "Introduzca una dirección electrónica",
"The address is not correct! You should enter a valid email address (like r.stallman@outlock.com) in order to receive the link to your poll.": "ES_L'adresse saisie n'est pas correcte ! Il faut une adresse électronique valide (par exemple r.stallman@outlock.com) pour recevoir le lien vers le sondage.",
"You haven't filled the first section of the poll creation.": "Usted no habia llenado la primera pagina dela encuesta",
"Javascript is disabled on your browser. Its activation is required to create a poll.": "ES_Javascript est désactivé sur votre navigateur. Son activation est requise pour la création d'un sondage.",
"Cookies are disabled on your browser. Theirs activation is required to create a poll.": "ES_Les cookies sont désactivés sur votre navigateur. Leur activation est requise pour la création d'un sondage.",
"This poll doesn't exist !": "Este encuesta no existe!",
"Enter a name": "Introduzca un nombre",
"The name you've chosen already exist in this poll!": "El nombre entrado existe ya!",
"Enter a name and a comment!": "Introduzca su nombre y un comentario!",
"Failed to insert the comment!": "ES_Échec à l'insertion du commentaire !",
"Framadate is not properly installed, please check the \"INSTALL\" to setup the database before continuing.": "ES_Framadate n'est pas installé correctement, lisez le fichier INSTALL pour configurer la base de données avant de continuer.",
"Failed to save poll": "ES_Echèc de la sauvegarde du sondage",
"Update vote failed": "ES_Mise à jour du vote échoué",
"Adding vote failed": "ES_Ajout d'un vote échoué"
}
}

Binary file not shown.

View File

@ -1,799 +0,0 @@
msgid ""
msgstr ""
"Project-Id-Version: Studs 0.6.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2010-06-05 21:37+0100\n"
"PO-Revision-Date: 2010-06-05 21:38+0100\n"
"Last-Translator: Raphaël Droz <raphael.droz@gmail.com>\n"
"Language-Team: Guilhem Borghesi, Raphaël Droz\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: ES\n"
"X-Poedit-Country: SPAIN\n"
"X-Poedit-SourceCharset: utf-8\n"
"X-Poedit-KeywordsList: _\n"
"X-Poedit-Basepath: /var/www/studs\n"
"X-Poedit-SearchPath-0: .\n"
#: bandeaux.php:59
msgid "Make your polls"
msgstr "Encuestas para la universidad"
#: bandeaux.php:62
msgid "Poll dates (2 on 2)"
msgstr "Elecci&oacute;n de d&iacute;s (2 de 2)"
#: bandeaux.php:65
msgid "Poll subjects (2 on 2)"
msgstr "Elecci&oacute;n de temas (2 de 2)"
#: bandeaux.php:68
msgid "Polls administrator"
msgstr "Administrador de la base"
#: bandeaux.php:71
msgid "Contact us"
msgstr "Cont&aacute;ctenos"
#: bandeaux.php:77
msgid "Error!"
msgstr "Error!"
#: bandeaux.php:80
#: bandeaux.php:98
msgid "About"
msgstr "Informaciones generales"
#: bandeaux.php:94
#: bandeaux.php:108
#: bandeaux.php:119
msgid "Home"
msgstr "Inicio"
#: bandeaux.php:95
msgid "Example"
msgstr "Ejemplo"
#: bandeaux.php:96
msgid "Contact"
msgstr "Cont&aacute;ctenos"
#: bandeaux.php:99
msgid "Admin"
msgstr "Admin"
#: bandeaux.php:109
msgid "Logs"
msgstr "Hist&oacute;rico"
#: bandeaux.php:110
msgid "Cleaning"
msgstr "Limpieza"
#: bandeaux.php:129
#: bandeaux.php:135
msgid "Universit&eacute; de Strasbourg. Creation: Guilhem BORGHESI. 2008-2009"
msgstr "Universit&eacute; de Strasbourg. Creaci&oacute;n: Guilhem BORGHESI. 2008-2009"
#: creation_sondage.php:89
msgid "For sending to the polled users"
msgstr "Para enviar a los encuestados"
#: creation_sondage.php:89
#: creation_sondage.php:90
msgid "Poll"
msgstr "Encuesta"
#: creation_sondage.php:89
msgid ""
"This is the message you have to send to the people you want to poll. \n"
"Now, you have to send this message to everyone you want to poll."
msgstr "Eso es el mensaje que debe estar enviado ahora a los encuestados."
#: creation_sondage.php:89
msgid "hast just created a poll called"
msgstr "ha creado una encuesta titulado"
#: creation_sondage.php:89
msgid "Thanks for filling the poll at the link above"
msgstr "Gracias de llenar esta encuesta al enlace siguiente"
#: creation_sondage.php:89
#: creation_sondage.php:92
msgid "Thanks for your confidence"
msgstr "Gracias por su confianza"
#: creation_sondage.php:90
msgid "Author's message"
msgstr "Reservado al autor"
#: creation_sondage.php:91
msgid ""
"This message should NOT be sent to the polled people. It is private for the poll's creator.\n"
"\n"
"You can now modify it at the link above"
msgstr ""
"Este mensaje no debe estar enviado a los encuestados. Esta reservado al autor dela encuesta.\n"
"\n"
"Usted puede editar esta encuesta al enlace siguiente"
#: choix_date.php:63
#: choix_autre.php:62
msgid "You haven't filled the first section of the poll creation."
msgstr "Usted no habia llenado la primera pagina dela encuesta"
#: choix_date.php:64
#: contacts.php:77
#: studs.php:88
#: choix_autre.php:63
#: adminstuds.php:79
#: adminstuds.php:1044
msgid "Back to the homepage of"
msgstr "Retroceder al inicio de"
#: choix_date.php:220
msgid "Select your dates amoung the free days (green). The selected days are in blue."
msgstr "Seleccionar sus fechas entre los d&iacute;as disponibles que aparecen en verde. Cuando son seleccionados los d&iacute;as aparecen en azul."
msgid "You can unselect a day previously selected by clicking again on it."
msgstr "Usted puede egalemente borrar d&iacute;as en seleccionarlos de nuevo."
#: choix_date.php:233
msgid "monday"
msgstr "lunes"
#: choix_date.php:233
msgid "tuesday"
msgstr "martes"
#: choix_date.php:233
msgid "wednesday"
msgstr "mi&eacute;coles"
#: choix_date.php:233
msgid "thursday"
msgstr "jueves"
#: choix_date.php:233
msgid "friday"
msgstr "vienes"
#: choix_date.php:233
msgid "saturday"
msgstr "s&aacute;bado"
#: choix_date.php:233
msgid "sunday"
msgstr "domingo"
#: choix_date.php:485
msgid "Selected days"
msgstr "D&iacute;as seleccionados"
#: choix_date.php:487
msgid "For each selected day, you can choose, or not, meeting hours (e.g.: \"8h\", \"8:30\", \"8h-10h\", \"evening\", etc.)"
msgstr "Para alg&uacute;n d&iacute;a que hab&iacute;a seleccionado, Usted puede escoger, o no, de horas de reuni&oacute;n (e.g.: \"8h\", \"8:30\", \"8h-10h\", etc.)"
#: choix_date.php:494
msgid "Time"
msgstr "Horario"
#: choix_date.php:522
msgid "Bad format!"
msgstr "Formato incorrecto !"
#: choix_date.php:531
msgid "Remove all days"
msgstr "Borrar todos los d&iacute;as"
#: choix_date.php:531
msgid "Copy hours of the first day"
msgstr "Copiar los horarios del primer d&iacute;a"
#: choix_date.php:531
msgid "Remove all hours"
msgstr "Borrar todos los horarios"
#: choix_date.php:533
#: choix_autre.php:167
msgid "Next"
msgstr "Seguir"
#: choix_date.php:537
msgid "Enter more choices for the voters"
msgstr "Introduzca m&aacute;s posibilidades por la encuesta!"
#: choix_date.php:549
msgid "Your poll will expire automatically 2 days after the last date of your poll."
msgstr "Su encuesta ser&aacute; automaticamente borrado 2 d&iacute;as desp&uacute;es de la &uacute;ltima fecha."
#: choix_date.php:549
msgid "Removal date"
msgstr "Fecha de borrado"
#: choix_date.php:552
#: choix_autre.php:196
msgid "Once you have confirmed the creation of your poll, you will be automatically redirected on the page of your poll."
msgstr "Cuando Usted confirmar&agrave; la creacion de su encuesta, Usted ser&agrave; automaticamente redigiriendo a la pagina de su encuesta."
msgid "Then, you will receive quickly an email contening the link to your poll for sending it to the voters."
msgstr "Alora, Usted recibir&agrave; rapidamente uno correo electrinico conteniendo el enlace de su encuesta para darlo a los encuestados."
#: choix_date.php:558
msgid "Back to hours"
msgstr "Retroceder a los horarios"
#: choix_date.php:559
#: choix_autre.php:201
msgid "Create the poll"
msgstr "Crear la encuesta"
#: infos_sondage.php:119
msgid "Poll creation (1 on 2)"
msgstr "Creaci&oacute;n de encuesta (1 de 2)"
#: infos_sondage.php:123
msgid "You are in the poll creation section."
msgstr "Usted ha eligiendo de crear une nueva encuesta!"
msgid "Required fields cannot be left blank."
msgstr "Gracias por completar los campos con una *."
#: infos_sondage.php:128
msgid "Poll title *: "
msgstr "T&iacute;tulo dela encuesta *: "
#: infos_sondage.php:130
msgid "Enter a title"
msgstr "Introducza un t&iacute;tulo"
#: infos_sondage.php:133
#: infos_sondage.php:138
#: infos_sondage.php:150
msgid "Something is wrong with the format"
msgstr "Something is wrong with the format"
#: infos_sondage.php:136
msgid "Comments: "
msgstr "Comentarios : "
#: infos_sondage.php:141
msgid "Your name*: "
msgstr "Su nombre *: "
#: infos_sondage.php:147
#: contacts.php:119
msgid "Enter a name"
msgstr "Introduzca un nombre"
#: infos_sondage.php:153
msgid "Your e-mail address *: "
msgstr "Su direcci&oacute;n electr&oacute;nica *: "
#: infos_sondage.php:159
msgid "Enter an email address"
msgstr "Introduzca una direcci&oacute;n electr&oacute;nica"
#: infos_sondage.php:162
msgid "The address is not correct! (You should enter a valid email address in order to receive the link to your poll)"
msgstr "La direcci&oacute;n electr&oacute;nica no est&aacute; correcta! (Introduzca una direcci&oacute;n electr&oacute;nica valida para recibir el enlace de su encuesta)"
#: infos_sondage.php:173
msgid "The fields marked with * are required!"
msgstr "Los campos con una * estan obligatorios!"
#: infos_sondage.php:179
msgid " Voters can modify their vote themselves."
msgstr " Los encuentados pueden cambiar su l&iacute;nea ellos mismos."
#: infos_sondage.php:181
msgid " To receive an email for each new vote."
msgstr " Usted quiere recibir un correo elect&oacute;nico cada vez que alguien participe a la encuesta."
#: infos_sondage.php:185
msgid "Schedule an event"
msgstr "Encuesta para planificar un evento"
#: infos_sondage.php:187
msgid "Make a choice"
msgstr "Encuesta para otras cosas"
#: infos_sondage.php:188
#: index.php:73
msgid "Make a poll"
msgstr "Crear una encuesta"
#: contacts.php:56
msgid "[CONTACT] You have sent a question "
msgstr "[CONTACT] Envia de pregunta "
#: contacts.php:56
msgid "You have a question from a user "
msgstr "Hay une pregunta de usuario de "
#: contacts.php:56
msgid "User"
msgstr "Usuario"
#: contacts.php:56
msgid "User's email address"
msgstr "Direcci&oacute;n electr&oacute;nica del usuario"
#: contacts.php:56
msgid "Message"
msgstr "Mensaje"
#: contacts.php:59
msgid "[COPY] Someone has sent a question "
msgstr "[COPIA] Envia de pregunta "
#: contacts.php:59
msgid "Here is a copy of your question"
msgstr "Eso es una copia de su pregunta"
#: contacts.php:59
msgid "We're going to answer your question shortly."
msgstr "Nos tomaremos en cuenta vuestro mensaje rapidamente."
#: contacts.php:59
#: studs.php:171
#: studs.php:211
#: adminstuds.php:273
#: adminstuds.php:379
#: adminstuds.php:500
#: adminstuds.php:510
#: adminstuds.php:522
#: adminstuds.php:1022
msgid "Thanks for your confidence."
msgstr "Gracias por su confianza."
#: contacts.php:76
msgid "Your message has been sent!"
msgstr "Su mensaje ha sido buen expedido!"
#: contacts.php:113
msgid "If you have questions, you can send a message here."
msgstr "Para todas preguntas, Usted puede dejar un mensaje con este pagina."
#: contacts.php:115
msgid "Your name"
msgstr "Su nombre"
#: contacts.php:123
msgid "Your email address "
msgstr "Su direcci&oacute;n electr&oacute;nica "
#: contacts.php:129
msgid "Question"
msgstr "Pregunta"
#: contacts.php:138
msgid "Send your question"
msgstr "Enviar su pregunta"
#: studs.php:87
#: adminstuds.php:78
msgid "This poll doesn't exist !"
msgstr "Este encuesta no existe!"
#: studs.php:118
msgid "anonyme"
msgstr ""
#: studs.php:171
#: studs.php:211
msgid "Poll's participation"
msgstr "Participaci&oacute;n a la encuesta"
#: studs.php:171
#: studs.php:211
msgid ""
"filled a vote.\n"
"You can find your poll at the link"
msgstr ""
"acaba de llenar una l&iacute;nea.\n"
"Usted puede retroceder a su encuesta con el enlace siguiente"
msgid ""
"updated a vote.\n"
"You can find your poll at the link"
msgstr ""
"updated a vote.\n"
"Usted puede retroceder a su encuesta con el enlace siguiente"
msgid ""
"wrote a comment.\n"
"You can find your poll at the link"
msgstr ""
"wrote a comment.\n"
"Usted puede retroceder a su encuesta con el enlace siguiente"
#: studs.php:246
#: adminstuds.php:567
msgid "Initiator of the poll"
msgstr "Autor dela encuesta"
#: studs.php:250
#: studs.php:540
#: adminstuds.php:571
#: adminstuds.php:964
msgid "Comments"
msgstr "Comentarios"
#: studs.php:261
msgid "If you want to vote in this poll, you have to give your name, choose the values that fit best for you and validate with the plus button at the end of the line."
msgstr "Para participar a esta encuesta, introduzca su nombre, elige todas las valores que son apriopriadas y validar su seleccion con el bot&oacute;n verde a la fin de l&iacute;nea."
#: studs.php:445
#: adminstuds.php:806
msgid "Addition"
msgstr "Suma"
#: studs.php:473
#: adminstuds.php:836
msgid "Enter a name !"
msgstr "Introduzca un nombre!"
#: studs.php:476
#: adminstuds.php:841
msgid "The name you've chosen already exist in this poll!"
msgstr "El nombre entrado existe ya!"
#: studs.php:479
#: adminstuds.php:846
msgid "Characters \" ' < et > are not permitted"
msgstr "Los caracteres \" ' < y > no estan autorizados!"
#: studs.php:503
#: studs.php:505
#: adminstuds.php:876
#: adminstuds.php:878
msgid "for"
msgstr "por"
#: studs.php:505
#: studs.php:511
msgid "%A, den %e. %B %Y"
msgstr "%A %e de %B %Y"
#: studs.php:522
#: adminstuds.php:899
msgid "vote"
msgstr "voto"
#: studs.php:524
#: adminstuds.php:901
msgid "votes"
msgstr "votos"
#: studs.php:528
#: adminstuds.php:905
msgid "The best choice at this time is"
msgstr "El mejor elecci&oacute;n por el momento esta"
#: studs.php:528
#: studs.php:531
#: adminstuds.php:905
#: adminstuds.php:908
msgid "with"
msgstr "con"
#: studs.php:531
#: adminstuds.php:908
msgid "The bests choices at this time are"
msgstr "Los mejores elecciones por el momento estan"
#: studs.php:548
#: adminstuds.php:974
msgid "Enter a name and a comment!"
msgstr "Introduzca su nombre y un comentario!"
#: studs.php:552
#: adminstuds.php:978
msgid "Add a comment in the poll"
msgstr "Dejar un comentario en la encuesta"
#: studs.php:555
#: adminstuds.php:979
msgid "Name"
msgstr "Su nombre"
#: studs.php:563
msgid "Export: Spreadsheet"
msgstr "Exportar : Hoja de c&aacute;lculo"
#: studs.php:565
msgid "Agenda"
msgstr "Agenda"
#: index.php:70
msgid "What is it about?"
msgstr "&iquest;Por qu&eacute; esto?"
#: index.php:71
msgid "Making polls to schedule meetings or events, quickly and easily. <br> You can also run polls to determine what will be your next meeting place, the meeting topic or anything like the country you would like to visit during your next holidays."
msgstr "Hacer encuestas para planificar un evento como una reun&iacute;on de trabajo o una sortida al cine. Sirve de definir la mejora fecha por todos. <br>Usted puede tambi&eacute;n utilizarlo para espicificar su preferencia entre pel&iacute;culas, destinos de viaje o cualquier otra selecci&oacute;n."
#: choix_autre.php:144
msgid "Your poll aim is to make a choice between different subjects.<br>Enter the subjects to vote for:"
msgstr "Usted ha eligiendo de crear une nueva encuesta!<br>Introducza las differentes opciones :"
#: choix_autre.php:150
msgid "Choice"
msgstr "Opci&ograve;n"
#: choix_autre.php:162
msgid "5 choices more"
msgstr "Para a&ntilde;adir 5 campos de texto"
#: choix_autre.php:177
msgid "Enter at least one choice"
msgstr "Introduzca por lo menos un campo!"
#: choix_autre.php:182
msgid "Characters \" < and > are not permitted"
msgstr "Los caracteres \" < y > no estan autorizados!"
#: choix_autre.php:191
msgid "Your poll will be automatically removed after 6 months.<br> You can set a closer removal date for it."
msgstr "Su encuesta ser&aacute; automaticamente borrado dentro de 6 meses.<br> Mientras, usted puede cambiar este fecha aqu&iacute;."
#: choix_autre.php:193
msgid "Removal date (optional)"
msgstr "Fecha de fin (opcional)"
#: choix_autre.php:193
msgid "(DD/MM/YYYY)"
msgstr "(DD/MM/AAAA)"
#: adminstuds.php:114
msgid "Column's adding"
msgstr "A&ntilde;adido de columna"
#: adminstuds.php:117
msgid "Add a new column"
msgstr "Para a&ntilde;adir una columna"
#: adminstuds.php:121
msgid "You can add a new scheduling date to your poll.<br> If you just want to add a new hour to an existant date, put the same date and choose a new hour."
msgstr "Usted puede a&ntilde;adir una fecha por su encuesta. Si la fecha existe ya y que usted vuele solamente a&ntilde;adire un horario,<br> pone la fecha entera con el nuevo horario o el nuevo hueco y fuera normalemente a&ntilde;ado a la encuesta."
#: adminstuds.php:122
msgid "Add a date"
msgstr "Para a&ntilde;adir una fecha"
#: adminstuds.php:143
msgid "Add a start hour (optional)"
msgstr "Para a&ntilde;adir un horario de principio (optional)"
#: adminstuds.php:157
msgid "Add a end hour (optional)"
msgstr "Para a&ntilde;adir un horario de fin (optional)"
#: adminstuds.php:273
#: adminstuds.php:378
msgid "[ADMINISTRATOR] New column for your poll"
msgstr "[ADMINISTRADOR] A&ntilde;ado de una nueva columna a la encuesta"
#: adminstuds.php:273
#: adminstuds.php:379
msgid ""
"You have added a new column in your poll. \n"
"You can inform the voters of this change with this link"
msgstr ""
"Usted ha a&ntilde;ado una nueva columna en su encuesta. \n"
"Usted puede informar sus usuarios de este cambio con el enlace siguiente"
#: adminstuds.php:498
msgid "[ADMINISTRATOR] New title for your poll"
msgstr "[ADMINISTRADOR] Cambio del titulo dela encuesta"
#: adminstuds.php:499
msgid ""
"You have changed the title of your poll. \n"
"You can modify this poll with this link"
msgstr ""
"Usted ha a&ntilde;ado el titulo de su encuesta. \n"
"Usted puede cambiar su encuesta al enlace siguiente"
#: adminstuds.php:510
msgid "[ADMINISTRATOR] New comments for your poll"
msgstr "[ADMINISTRADOR] Cambio des los comentarios dela encuesta"
#: adminstuds.php:510
msgid ""
"You have changed the comments of your poll. \n"
"You can modify this poll with this link"
msgstr ""
"Usted ha cambiado los commentarios de su encuesta. \n"
"Usted puede cambiar su encuesta al enlace siguiente"
#: adminstuds.php:520
msgid "[ADMINISTRATOR] New email address for your poll"
msgstr "[ADMINISTRADOR] Cambio de su Direcci&oacute;n electr&oacute;nica"
#: adminstuds.php:521
msgid ""
"You have changed your email address in your poll. \n"
"You can modify this poll with this link"
msgstr ""
"Usted ha cambiado su direcci&oacute;n elestr&oacute;nica. \n"
"Usted puede cambiar su encuesta al enlace siguiente"
#: adminstuds.php:582
msgid "As poll administrator, you can change all the lines of this poll with this button"
msgstr "En calidad de administrador, Usted puede cambiar todas la l&iacute;neas de este encuesta con este botón"
msgid "Edit"
msgstr "Cambio"
msgid "You can, as well, remove a column or a line."
msgstr "Usted puede tambi&eacute;n borrar una columna o una l&iacute;nea con "
msgid "Cancel"
msgstr "Cancelar"
msgid "You can also add a new column with "
msgstr "Usted puede a&ntilde;adir une nueva columna con "
msgid "Add"
msgstr "Añadir"
msgid "Finally, you can change the informations of this poll like the title, the comments or your email address."
msgstr "Para acabar, Usted puede cambiar las informaciones relativas a su encuesta como el titulo, los comentarios o ademas su direcci&oacute;n electr&oacute;nica."
#: adminstuds.php:851
msgid "The date is not correct !"
msgstr "La fecha no esta correcta!"
#: adminstuds.php:916
msgid "Poll's management"
msgstr "Administraci&oacute;n de su encuesta"
#: adminstuds.php:921
msgid "Change the title"
msgstr "Cambiar el titulo dela encuesta"
#: adminstuds.php:928
msgid "Generate the convocation letter (.PDF), choose the place to meet and validate"
msgstr "Producir la letra de convocaci&oacute;n (en PDF), elige un lugar de reuni&oacute;n y valida"
#: adminstuds.php:939
msgid "Enter a meeting place!"
msgstr "Introduzca un lugar de reuni&oacute;n !"
#: adminstuds.php:944
msgid "Enter a new title!"
msgstr "Introduzca un nuevo titulo!"
#: adminstuds.php:948
msgid "Change the comments"
msgstr "Cambiar los commentarios dela encuesta"
#: adminstuds.php:952
msgid "Change your email address"
msgstr "Cambiar su direcci&oacute;n eletr&oacute;nica"
#: adminstuds.php:956
msgid "Enter a new email address!"
msgstr "Introduzca una nuva direcci&oacute;n eletr&oacute;nica!"
#: adminstuds.php:985
msgid "Remove your poll"
msgstr "Borrar su encuesta"
#: adminstuds.php:985
msgid "Remove the poll"
msgstr "Borrada de encuesta"
#: adminstuds.php:988
msgid "Confirm removal of your poll"
msgstr "Confirmar la borrada de su encuesta"
#: adminstuds.php:988
msgid "Remove this poll!"
msgstr "Borrar este encuesta!"
#: adminstuds.php:989
msgid "Keep this poll!"
msgstr "Dejar este encuesta!"
#: adminstuds.php:1022
msgid "[ADMINISTRATOR] Removing of your poll"
msgstr "[ADMINISTRADOR] Borrada de su encuesta"
#: adminstuds.php:1022
msgid ""
"You have removed your poll. \n"
"You can make new polls with this link"
msgstr ""
"Usted ha sido la borrada de su encuesta. \n"
"Usted puede hacer nuevas encuestas al enlace siguiente"
#: adminstuds.php:1043
msgid "Your poll has been removed!"
msgstr "Su encuesta ha sido borrado!"
#: admin/index.php:82
msgid "Confirm removal of the poll "
msgstr "Confirmar el borrado dela encuesta"
#: admin/index.php:112
msgid "polls in the database at this time"
msgstr "encuestas en la basa por el momento"
#: admin/index.php:117
msgid "Poll ID"
msgstr "ID encuesta"
#: admin/index.php:117
msgid "Format"
msgstr "Formato"
#: admin/index.php:117
msgid "Title"
msgstr "Titulo"
#: admin/index.php:117
msgid "Author"
msgstr "Autor"
#: admin/index.php:117
msgid "Expiration's date"
msgstr "Fecha de fin"
#: admin/index.php:117
msgid "Users"
msgstr "Usuarios"
#: admin/index.php:117
msgid "Actions"
msgstr "Acciones"
#: admin/index.php:140
msgid "See the poll"
msgstr "Ver la encuesta"
#: admin/index.php:141
msgid "Change the poll"
msgstr "Cambiar la encuesta"
#~ msgid "january"
#~ msgstr "enero"
#~ msgid "february"
#~ msgstr "febrero"
#~ msgid "march"
#~ msgstr "marzo"
#~ msgid "april"
#~ msgstr "abril"
#~ msgid "may"
#~ msgstr "mayo"
#~ msgid "june"
#~ msgstr "junio"
#~ msgid "july"
#~ msgstr "julio"
#~ msgid "august"
#~ msgstr "agosto"
#~ msgid "september"
#~ msgstr "septiembre"
#~ msgid "october"
#~ msgstr "octubre"
#~ msgid "november"
#~ msgstr "noviembre"
#~ msgid "december"
#~ msgstr "diciembre"
#~ msgid "Sources"
#~ msgstr "Fuentes"
#~ msgid "Back"
#~ msgstr "Retroceder"
#~ msgid ""
#~ "Here are the <a href=\"http://sourcesup.cru.fr/frs/?"
#~ "group_id=621\">sources</a> of "
#~ msgstr ""
#~ "Las <a href=\"http://sourcesup.cru.fr/frs/?group_id=621\">fuentes</a> de "

298
locale/fr.json Normal file
View File

@ -0,0 +1,298 @@
{
"Generic": {
"Make your polls": "Organiser des rendez-vous simplement, librement.",
"Home": "Accueil",
"Poll": "Sondage",
"Save": "Enregistrer",
"Cancel": "Annuler",
"Add": "Ajouter",
"Remove": "Effacer",
"Validate": "Valider",
"Edit": "Modifier",
"Next": "Continuer",
"Back": "Précédent",
"Close": "Fermer",
"Your name": "Votre nom",
"Your email address": "Votre courriel",
"(in the format name@mail.com)": "(au format nom@mail.com)",
"Description": "Description",
"Back to the homepage of": "Retourner à la page d'accueil de",
"days": "jours",
"months": "mois",
"Day": "Jour",
"Time": "Horaire",
"with": "avec",
"vote": "vote",
"votes": "votes",
"for": "à",
"Yes": "Oui",
"Ifneedbe": "Si nécessaire",
"No": "Non",
"Legend:": "Légende :",
"Date": "Date",
"Classic": "Classique",
"Page generated in": "Page générée en",
"seconds": "secondes",
"Choice": "Choix",
"Link": "Lien"
},
"Date": {
"dd/mm/yyyy": "jj/mm/aaaa",
"%A, den %e. %B %Y": "%A %e %B %Y",
"FULL": "%A, den %e. %B %Y",
"SHORT": "%A %e %B %Y",
"DAY": "%a %e",
"DATE": "%Y-%m-%d",
"MONTH_YEAR": "%B %Y"
},
"Language selector": {
"Select the language": "Choisir la langue",
"Change the language": "Changer la langue"
},
"Homepage": {
"Schedule an event": "Créer un sondage spécial dates",
"Make a classic poll": "Créer un sondage classique"
},
"1st section": {
"What is that?": "Prise en main",
"Framadate is an online service for planning an appointment or make a decision quickly and easily. No registration is required.": "Framadate est un service en ligne permettant de planifier un rendez-vous ou prendre des décisions rapidement et simplement. Aucune inscription préalable nest nécessaire.",
"Here is how it works:": "Voici comment ça fonctionne :",
"Make a poll": "Créez un sondage",
"Define dates or subjects to choose": "Déterminez les dates ou les sujets à choisir",
"Send the poll link to your friends or colleagues": "Envoyez le lien du sondage à vos amis ou collègues",
"Discuss and make a decision": "Discutez et prenez votre décision",
"Do you want to ": "Voulez-vous ",
"view an example?": "voir un exemple ?"
},
"2nd section": {
"The software": "Le logiciel",
"Framadate was initially based on ": "Framadate est initialement basé sur ",
" a software developed by the University of Strasbourg. Today, it is devevoped by the association Framasoft": " un logiciel développé par l'Université de Strasbourg. Aujourd'hui, son développement est assuré par lassociation Framasoft",
"This software needs javascript and cookies enabled. It is compatible with the following web browsers:": "Ce logiciel requiert lactivation du javascript et des cookies. Il est compatible avec les navigateurs web suivants :",
"It is governed by the ": "Il est régi par la ",
"CeCILL-B license": "licence CeCILL-B"
},
"3rd section": {
"Cultivate your garden": "Cultivez votre jardin",
"To participate in the software development, suggest improvements or simply download it, please visit ": "Pour participer au développement du logiciel, proposer des améliorations ou simplement le télécharger, rendez-vous sur ",
"the development site": "le site de développement",
"If you want to install the software for your own use and thus increase your independence, we help you on:": "Si vous souhaitez installer ce logiciel pour votre propre usage et ainsi gagner en autonomie, nous vous aidons sur :"
},
"PollInfo": {
"Remove the poll": "Supprimer le sondage",
"Remove all the comments": "Supprimer tous les commentaires",
"Remove all the votes": "Supprimer tous les votes",
"Print": "Imprimer",
"Export to CSV": "Export en CSV",
"Title": "Titre du sondage",
"Edit the title": "Modifier le titre",
"Save the new title": "Enregistrer le nouveau titre",
"Cancel the title edit": "Annuler le changement de titre",
"Initiator of the poll": "Auteur du sondage",
"Edit the name": "Modification de l'auteur",
"Save the new name": "Enregistrer l'auteur",
"Cancel the name edit": "Annuler le changement d'auteur",
"Email": "Courriel",
"Edit the email adress": "Modifier le courriel",
"Save the email address": "Enregistrer le courriel",
"Cancel the email address edit": "Annuler le changement de courriel",
"Edit the description": "Modifier la description",
"Save the description": "Enregistrer la description",
"Cancel the description edit": "Annuler le changement de description",
"Public link of the poll": "Lien public du sondage",
"Admin link of the poll": "Lien d'administration du sondage",
"Expiration date": "Date d'expiration",
"Edit the expiration date": "Modifier la date d'expiration",
"Save the new expiration date": "Enregistrer la date d'expiration",
"Cancel the expiration date edit": "Annuler le changement de date d'expiration",
"Poll rules": "Permissions du sondage",
"Edit the poll rules": "Modifier les permissions du sondage",
"Votes and comments are locked": "Les votes et commentaires sont verrouillés",
"Votes and comments are open": "Les votes et commentaires sont ouverts",
"Votes are editable": "Les votes sont modifiables",
"Save the new rules": "Enregistrer les nouvelles permissions",
"Cancel the rules edit": "Annuler le changement de permissions",
"The name is invalid.": "Le nom n'est pas valide."
},
"Poll results": {
"Votes of the poll": "Votes du sondage",
"Edit the line:": "Modifier la ligne :",
"Remove the line:": "Supprimer la ligne :",
"Vote no for": "Voter « non » pour",
"Vote yes for": "Voter « oui » pour",
"Vote ifneedbe for": "Voter « Si nécessaire » pour",
"Save the choices": "Enregister les choix",
"Addition": "Somme",
"Best choice": "Meilleur choix",
"Best choices": "Meilleurs choix",
"The best choice at this time is:": "Le meilleur choix pour l'instant est :",
"The bests choices at this time are:": "Les meilleurs choix pour l'instant sont :",
"Scroll to the left": "Faire défiler à gauche",
"Scroll to the right": "Faire défiler à droite"
},
"Comments": {
"Comments of polled people": "Commentaires de sondés",
"Remove the comment": "Supprimer le commentaire",
"Add a comment to the poll": "Ajouter un commentaire au sondage",
"Your comment": "Votre commentaire",
"Send the comment": "Envoyer le commentaire",
"anonyme": "anonyme",
"Comment added": "Commentaire ajouté"
},
"studs": {
"If you want to vote in this poll, you have to give your name, choose the values that fit best for you and validate with the plus button at the end of the line.": "Pour participer à ce sondage, veuillez entrer votre nom, choisir toutes les valeurs qui vous conviennent et valider votre choix avec le bouton en bout de ligne.",
"POLL_LOCKED_WARNING": "L'administrateur a verrouillé ce sondage. Les votes et commentaires sont gelés, il n'est plus possible de participer",
"The poll is expired, it will be deleted soon.": "Le sondage a expiré, il sera bientôt supprimé.",
"Deletion date:": "Date de suppression :"
},
"adminstuds": {
"As poll administrator, you can change all the lines of this poll with this button": "En tant qu'administrateur, vous pouvez modifier toutes les lignes de ce sondage avec ce bouton",
"remove a column or a line with": "effacer une colonne ou une ligne avec",
"and add a new column with": "et si vous avez oublié de saisir un choix, vous pouvez rajouter une colonne en cliquant sur",
"Finally, you can change the informations of this poll like the title, the comments or your email address.": "Vous pouvez enfin également modifier les informations relatives à ce sondage comme le titre, les commentaires ou encore votre courriel.",
"Column's adding": "Ajout de colonne",
"You can add a new scheduling date to your poll.": "Vous pouvez ajouter une date à votre sondage.",
"If you just want to add a new hour to an existant date, put the same date and choose a new hour.": "Si vous voulez juste ajouter un horaire à une date existante, mettez la même date et choisissez un autre horaire. Il sera intégré normalement au sondage existant.",
"Confirm removal of the poll": "Confirmer la suppression du sondage",
"Delete the poll": "Je supprime le sondage",
"Keep the poll": "Je garde le sondage",
"Your poll has been removed!": "Votre sondage a été supprimé !",
"Poll saved": "Sondage sauvegardé",
"Vote added": "Vote ajouté",
"Vote updated": "Vote mis à jour",
"Vote deleted": "Vote supprimé",
"All votes deleted": "Tous les votes ont été supprimés",
"Back to the poll": "Retour au sondage",
"Add a column": "Ajouter une colonne",
"Remove the column": "Effacer la colonne",
"Choice added": "Choix ajouté",
"Confirm removal of all votes of the poll": "Confirmer la suppression de tous les votes de ce sondage",
"Keep the votes": "Garder les votes",
"Remove the votes": "Supprimer les votes",
"Confirm removal of all comments of the poll": "Confirmer la suppression de tous les commentaires de ce sondage",
"Keep the comments": "Garder les commentaires",
"Remove the comments": "Supprimer les commentaires",
"The poll has been deleted": "Le sondage a été supprimé",
"Keep votes": "Garder les votes",
"Keep comments": "Garder les commentaires",
"Keep this poll": "Garder ce sondage"
},
"Step 1": {
"Poll creation (1 on 3)": "Création de sondage (1 sur 3)",
"You are in the poll creation section.": "Vous avez choisi de créer un nouveau sondage.",
"Required fields cannot be left blank.": "Merci de remplir les champs obligatoires, marqués d'une *.",
"Poll title": "Titre du sondage",
"Voters can modify their vote themselves.": "Vous souhaitez que les sondés puissent modifier leur ligne eux-mêmes.",
"To receive an email for each new vote.": "Recevoir un courriel à chaque participation d'un sondé.",
"To receive an email for each new comment.": "Recevoir un courriel à chaque commentaire.",
"Go to step 2": "Aller à l'étape 2"
},
"Step 2": {
"Back to step 1": "Revenir à létape 1",
"Go to step 3": "Aller à létape 3"
},
"Step 2 date": {
"Poll dates (2 on 3)": "Choix des dates (2 sur 3)",
"Choose the dates of your poll": "Choisissez les dates de votre sondage",
"To schedule an event you need to propose at least two choices (two hours for one day or two days).": "Pour créer un sondage spécial dates vous devez proposer au moins deux choix (deux horaires pour une même journée ou deux jours).",
"You can add or remove additionnal days and hours with the buttons": "Vous pouvez ajouter ou supprimer des jours et horaires supplémentaires avec les boutons",
"For each selected day, you can choose, or not, meeting hours (e.g.: \"8h\", \"8:30\", \"8h-10h\", \"evening\", etc.)": "Pour chacun des jours sélectionnés, vous avez la possibilité de choisir ou non, des heures de réunion (par exemple : \"8h\", \"8:30\", \"8h-10h\", \"soir\", etc.)",
"Remove an hour": "Supprimer le dernier horaire",
"Add an hour": "Ajouter un horaire",
"Copy hours of the first day": "Reporter les horaires du premier jour sur les autres jours",
"Remove a day": "Supprimer le dernier jour",
"Add a day": "Ajouter un jour",
"Remove all days": "Effacer tous les jours",
"Remove all hours": "Effacer tous les horaires"
},
"Step 2 classic": {
"Poll subjects (2 on 3)": "Choix des sujets (2 sur 3)",
"To make a generic poll you need to propose at least two choices between differents subjects.": "Pour créer un sondage classique, vous devez proposer au moins deux choix différents.",
"You can add or remove additional choices with the buttons": "Vous pouvez ajouter ou supprimer des choix supplémentaires avec les boutons",
"It's possible to propose links or images by using": "Il est possible dinsérer des liens ou des images en utilisant ",
"the Markdown syntax": "la syntaxe Markdown",
"Add a link or an image": "Ajouter un lien ou une image",
"These fields are optional. You can add a link, an image or both.": "Ces champs sont facultatifs. Vous pouvez ajouter un lien, une image ou les deux.",
"URL of the image": "URL de l'image",
"Alternative text": "Texte alternatif",
"Remove a choice": "Supprimer le dernier choix",
"Add a choice": "Ajouter un choix"
},
"Step 3": {
"Back to step 2": "Revenir à létape 2",
"Removal date and confirmation (3 on 3)": "Date d'expiration et confirmation (3 sur 3)",
"Confirm the creation of your poll": "Confirmez la création de votre sondage",
"List of your choices": "Liste de vos choix",
"Once you have confirmed the creation of your poll, you will be automatically redirected on the administration page of your poll.": "Une fois que vous aurez confirmé la création du sondage, vous serez redirigé automatiquement vers la page d'administration de votre sondage.",
"Then, you will receive quickly two emails: one contening the link of your poll for sending it to the voters, the other contening the link to the administration page of your poll.": "En même temps, vous recevrez deux courriels : l'un contenant le lien vers votre sondage pour le faire suivre aux futurs sondés, l'autre contenant le lien vers la page d'administraion du sondage.",
"Create the poll": "Créer le sondage",
"Your poll will be automatically removed after": "Votre sondage sera automatiquement effacé après",
"after the last date of your poll:": "après la date la plus tardive :",
"You can set a closer removal date for it.": "Vous pouvez décider d'une date de suppression plus proche.",
"Removal date:": "Date de suppression :"
},
"Admin": {
"Back to administration": "Retour à l'administration",
"Polls": "Sondages",
"Migration": "Migration",
"Purge": "Purge",
"Logs": "Historique",
"Poll ID": "ID sondage",
"Format": "Format",
"Title": "Titre",
"Author": "Auteur",
"Email": "Courriel",
"Expiration date": "Date d'expiration",
"Users": "Utilisateurs",
"Actions": "Actions",
"See the poll": "Voir le sondage",
"Change the poll": "Modifier le sondage",
"Deleted the poll": "Supprimer le sondage",
"Summary": "Résumé",
"Success": "Réussite",
"Fail": "Échèc",
"Nothing": "Rien",
"Succeeded:": "Réussit:",
"Failed:": "Échoué:",
"Skipped:": "Passé:",
"Pages:": "Pages :",
"Confirm removal of the poll": "Confirmer la suppression du sondage",
"polls in the database at this time": "sondages dans la base actuellement",
"Purge the polls": "Purger les sondages"
},
"Mail": {
"Poll's participation": "Participation au sondage",
"filled a vote.\nYou can find your poll at the link": "vient de voter.\nVous pouvez retrouver votre sondage avec le lien suivant",
"updated a vote.\nYou can find your poll at the link": "vient de mettre à jour un vote.\nVous pouvez retrouver votre sondage avec le lien suivant",
"wrote a comment.\nYou can find your poll at the link": "vient de rédiger un commentaire.\nVous pouvez retrouver votre sondage avec le lien suivant",
"Thanks for your confidence.": "Merci de votre confiance.",
"\n--\n\n« La route est longue, mais la voie est libre… »\nFramasoft ne vit que par vos dons (déductibles des impôts).\nMerci d'avance pour votre soutien http://soutenir.framasoft.org.": "\n--\n\n« La route est longue, mais la voie est libre… »\nFramasoft ne vit que par vos dons (déductibles des impôts).\nMerci d'avance pour votre soutien http://soutenir.framasoft.org.",
"[ADMINISTRATOR] New settings for your poll": "[ADMINISTRATEUR] Changement de configuration du sondage",
"You have changed the settings of your poll. \nYou can modify this poll with this link": "Vous avez modifié la configuration de votre sondage. \nVous pouvez modifier ce sondage avec le lien suivant",
"This is the message you have to send to the people you want to poll. \nNow, you have to send this message to everyone you want to poll.": "Ceci est le message qui doit être envoyé aux sondés. \nVous pouvez maintenant transmettre ce message à toutes les personnes susceptibles de participer au vote.",
"hast just created a poll called": " vient de créer un sondage intitulé ",
"Thanks for filling the poll at the link above": "Merci de bien vouloir participer au sondage à l'adresse suivante",
"This message should NOT be sent to the polled people. It is private for the poll's creator.\n\nYou can now modify it at the link above": "Ce message ne doit PAS être diffusé aux sondés. Il est réservé à l'auteur du sondage.\n\nVous pouvez modifier ce sondage à l'adresse suivante ",
"Author's message": "Réservé à l'auteur",
"For sending to the polled users": "Pour diffusion aux sondés"
},
"Error": {
"Error!": "Erreur !",
"Enter a title": "Il faut saisir un titre !",
"Something is wrong with the format": "Quelque chose ne va pas avec le format",
"Enter an email address": "Il faut saisir une adresse électronique !",
"The address is not correct! You should enter a valid email address (like r.stallman@outlock.com) in order to receive the link to your poll.": "L'adresse saisie n'est pas correcte ! Il faut une adresse électronique valide (par exemple r.stallman@outlock.com) pour recevoir le lien vers le sondage.",
"You haven't filled the first section of the poll creation.": "Vous n'avez pas renseigné la première page du sondage",
"Javascript is disabled on your browser. Its activation is required to create a poll.": "Javascript est désactivé sur votre navigateur. Son activation est requise pour la création d'un sondage.",
"Cookies are disabled on your browser. Theirs activation is required to create a poll.": "Les cookies sont désactivés sur votre navigateur. Leur activation est requise pour la création d'un sondage.",
"This poll doesn't exist !": "Ce sondage n'existe pas !",
"Enter a name": "Vous n'avez pas saisi de nom !",
"The name you've chosen already exist in this poll!": "Le nom que vous avez choisi existe déjà !",
"Enter a name and a comment!": "Merci de remplir les deux champs !",
"Failed to insert the comment!": "Échec à l'insertion du commentaire !",
"Framadate is not properly installed, please check the \"INSTALL\" to setup the database before continuing.": "Framadate n'est pas installé correctement, lisez le fichier INSTALL pour configurer la base de données avant de continuer.",
"Failed to save poll": "Echèc de la sauvegarde du sondage",
"Update vote failed": "Mise à jour du vote échoué",
"Adding vote failed": "Ajout d'un vote échoué"
}
}

Binary file not shown.

View File

@ -1,748 +0,0 @@
msgid ""
msgstr ""
"Project-Id-Version: Framadate 0.8\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-10-23 20:52+0100\n"
"PO-Revision-Date: 2014-11-11 13:19+0100\n"
"Last-Translator: JosephK\n"
"Language-Team: JosephK\n"
"Language: French\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: French\n"
"X-Poedit-Country: FRANCE\n"
"X-Poedit-SourceCharset: utf-8\n"
"X-Poedit-KeywordsList: _\n"
"X-Poedit-Basepath: /var/www/studs\n"
"X-Poedit-SearchPath-0: .\n"
########### Generic ###########
msgid "Make your polls"
msgstr "Organiser des rendez-vous simplement, librement."
msgid "Home"
msgstr "Accueil"
msgid "Poll"
msgstr "Sondage"
msgid "Save"
msgstr "Enregistrer"
msgid "Cancel"
msgstr "Annuler"
msgid "Add"
msgstr "Ajouter"
msgid "Remove"
msgstr "Effacer"
msgid "Validate"
msgstr "Valider"
msgid "Edit"
msgstr "Modifier"
msgid "Next"
msgstr "Continuer"
msgid "Back"
msgstr "Précédent"
msgid "Close"
msgstr "Fermer"
msgid "Your name"
msgstr "Votre nom"
msgid "Your email address"
msgstr "Votre courriel"
msgid "(in the format name@mail.com)"
msgstr "(au format nom@mail.com)"
msgid "Description"
msgstr "Description"
msgid "Back to the homepage of"
msgstr "Retourner à la page d'accueil de"
msgid "Error!"
msgstr "Erreur !"
msgid "(dd/mm/yyyy)"
msgstr "(jj/mm/aaaa)"
msgid "dd/mm/yyyy"
msgstr "jj/mm/aaaa"
msgid "%A, den %e. %B %Y"
msgstr "%A %e %B %Y"
msgid "days"
msgstr "jours"
msgid "months"
msgstr "mois"
########### Language selector ###########
msgid "Change the language"
msgstr "Changer la langue"
msgid "Select the language"
msgstr "Choisir la langue"
############ Homepage ############
msgid "Schedule an event"
msgstr "Créer un sondage spécial dates"
msgid "Make a classic poll"
msgstr "Créer un sondage classique"
# 1st section
msgid "What is that?"
msgstr "Prise en main"
msgid "Framadate is an online service for planning an appointment or make a decision quickly and easily. No registration is required."
msgstr "Framadate est un service en ligne permettant de planifier un rendez-vous ou prendre des décisions rapidement et simplement. Aucune inscription préalable nest nécessaire."
msgid "Here is how it works:"
msgstr "Voici comment ça fonctionne :"
msgid "Make a poll"
msgstr "Créez un sondage"
msgid "Define dates or subjects to choose"
msgstr "Déterminez les dates ou les sujets à choisir"
msgid "Send the poll link to your friends or colleagues"
msgstr "Envoyez le lien du sondage à vos amis ou collègues"
msgid "Discuss and make a decision"
msgstr "Discutez et prenez votre décision"
msgid "Do you want to "
msgstr "Voulez-vous "
msgid "view an example?"
msgstr "voir un exemple ?"
# 2nd section
msgid "The software"
msgstr "Le logiciel"
msgid "Framadate was initially based on "
msgstr "Framadate est initialement basé sur "
msgid " a software developed by the University of Strasbourg. Today, it is devevoped by the association Framasoft"
msgstr " un logiciel développé par l'Université de Strasbourg. Aujourd'hui, son développement est assuré par lassociation Framasoft"
msgid "This software needs javascript and cookies enabled. It is compatible with the following web browsers:"
msgstr "Ce logiciel requiert lactivation du javascript et des cookies. Il est compatible avec les navigateurs web suivants :"
msgid "It is governed by the "
msgstr "Il est régi par la "
msgid "CeCILL-B license"
msgstr "licence CeCILL-B"
# 3rd section
msgid "Cultivate your garden"
msgstr "Cultivez votre jardin"
msgid "To participate in the software development, suggest improvements or simply download it, please visit "
msgstr "Pour participer au développement du logiciel, proposer des améliorations ou simplement le télécharger, rendez-vous sur "
msgid "the development site"
msgstr "le site de développement"
msgid "If you want to install the software for your own use and thus increase your independence, we help you on:"
msgstr "Si vous souhaitez installer ce logiciel pour votre propre usage et ainsi gagner en autonomie, nous vous aidons sur :"
############## Poll ##############
msgid "Poll administration"
msgstr "Administration du sondage"
msgid "Legend:"
msgstr "Légende :"
# Jumbotron adminstuds.php (+ studs.php)
msgid "Back to the poll"
msgstr "Retour au sondage"
msgid "Print"
msgstr "Imprimer"
msgid "Export to CSV"
msgstr "Export en CSV"
msgid "Remove the poll"
msgstr "Supprimer le sondage"
msgid "Title of the poll"
msgstr "Titre du sondage"
msgid "Edit the title"
msgstr "Modifier le titre"
msgid "Save the new title"
msgstr "Enregistrer le nouveau titre"
msgid "Cancel the title edit"
msgstr "Annuler le changement de titre"
msgid "Initiator of the poll"
msgstr "Auteur du sondage"
msgid "Edit the name"
msgstr "Modification de l'auteur"
msgid "Save the new name"
msgstr "Enregistrer l'auteur"
msgid "Cancel the name edit"
msgstr "Annuler le changement d'auteur"
msgid "Email"
msgstr "Courriel"
msgid "Edit the email adress"
msgstr "Modifier le courriel"
msgid "Save the email address"
msgstr "Enregistrer le courriel"
msgid "Cancel the email address edit"
msgstr "Annuler le changement de courriel"
msgid "Edit the description"
msgstr "Modifier la description"
msgid "Save the description"
msgstr "Enregistrer la description"
msgid "Cancel the description edit"
msgstr "Annuler le changement de description"
msgid "Public link of the poll"
msgstr "Lien public du sondage"
msgid "Admin link of the poll"
msgstr "Lien d'administration du sondage"
msgid "Expiration's date"
msgstr "Date d'expiration"
msgid "Edit the expiration's date"
msgstr "Modifier la date d'expiration"
msgid "Save the new expiration's date"
msgstr "Enregistrer la date d'expiration"
msgid "Cancel the expiration's date edit"
msgstr "Annuler le changement de date d'expiration"
msgid "Poll rules"
msgstr "Permissions du sondage"
msgid "Edit the poll rules"
msgstr "Modifier les permissions du sondage"
msgid "Votes and comments are locked"
msgstr "Les votes et commentaires sont verrouillés"
msgid "Votes and comments are open"
msgstr "Les votes et commentaires sont ouverts"
msgid "Votes are editable"
msgstr "Les votes sont modifiables"
msgid "Save the new rules"
msgstr "Enregistrer les nouvelles permissions"
msgid "Cancel the rules edit"
msgstr "Annuler le changement de permissions"
msgid "The name is invalid."
msgstr "Le nom n'est pas valide."
# Help text adminstuds.php
msgid "As poll administrator, you can change all the lines of this poll with this button"
msgstr "En tant qu'administrateur, vous pouvez modifier toutes les lignes de ce sondage avec ce bouton"
msgid "remove a column or a line with"
msgstr "effacer une colonne ou une ligne avec"
msgid "and add a new column with"
msgstr "et si vous avez oublié de saisir un choix, vous pouvez rajouter une colonne en cliquant sur"
msgid "Finally, you can change the informations of this poll like the title, the comments or your email address."
msgstr "Vous pouvez enfin également modifier les informations relatives à ce sondage comme le titre, les commentaires ou encore votre courriel."
# Help text studs.php
msgid "If you want to vote in this poll, you have to give your name, choose the values that fit best for you and validate with the plus button at the end of the line."
msgstr "Pour participer à ce sondage, veuillez entrer votre nom, choisir toutes les valeurs qui vous conviennent et valider votre choix avec le bouton en bout de ligne."
# Poll results
msgid "Votes of the poll "
msgstr "Votes du sondage "
msgid "Remove the column"
msgstr "Effacer la colonne"
msgid "Add a column"
msgstr "Ajouter une colonne"
msgid "Edit the line:"
msgstr "Modifier la ligne :"
msgid "Remove the line:"
msgstr "Supprimer la ligne :"
msgid "Yes"
msgstr "Oui"
msgid "Ifneedbe"
msgstr "Si nécessaire"
msgid ", ifneedbe"
msgstr ", si nécessaire"
msgid "No"
msgstr "Non"
msgid "Vote \"no\" for "
msgstr "Voter « non » pour "
msgid "Vote \"yes\" for "
msgstr "Voter « oui » pour "
msgid "Vote \"ifneedbe\" for "
msgstr "Voter « Si nécessaire » pour "
msgid "Save the choices"
msgstr "Enregister les choix"
msgid "Addition"
msgstr "Somme"
msgid "Best choice"
msgstr "Meilleur choix"
msgid "Best choices"
msgstr "Meilleurs choix"
msgid "The best choice at this time is:"
msgstr "Le meilleur choix pour l'instant est :"
msgid "The bests choices at this time are:"
msgstr "Les meilleurs choix pour l'instant sont :"
msgid "with"
msgstr "avec"
msgid "vote"
msgstr "vote"
msgid "votes"
msgstr "votes"
msgid "for"
msgstr "à"
msgid "Remove all the votes"
msgstr "Supprimer tous les votes"
msgid "Scroll to the left"
msgstr "Faire défiler à gauche"
msgid "Scroll to the right"
msgstr "Faire défiler à droite"
# Comments
msgid "Comments of polled people"
msgstr "Commentaires de sondés"
msgid "Remove the comment"
msgstr "Supprimer le commentaire"
msgid "Add a comment in the poll"
msgstr "Ajouter un commentaire au sondage"
msgid "Your comment"
msgstr "Votre commentaire"
msgid "Send the comment"
msgstr "Envoyer le commentaire"
msgid "anonyme"
msgstr "anonyme"
msgid "Remove all the comments"
msgstr "Supprimer tous les commentaires"
# Add a colum adminstuds.php
msgid "Column's adding"
msgstr "Ajout de colonne"
msgid "You can add a new scheduling date to your poll."
msgstr "Vous pouvez ajouter une date à votre sondage."
msgid "If you just want to add a new hour to an existant date, put the same date and choose a new hour."
msgstr "Si vous voulez juste ajouter un horaire à une date existante, mettez la même date et choisissez un autre horaire. Il sera intégré normalement au sondage existant."
# Remove poll adminstuds.php
msgid "Confirm removal of your poll"
msgstr "Confirmer la suppression de votre sondage"
msgid "Remove this poll!"
msgstr "Je supprime ce sondage !"
msgid "Keep this poll!"
msgstr "Je garde ce sondage !"
msgid "Your poll has been removed!"
msgstr "Votre sondage a été supprimé !"
# Errors adminstuds.php/studs
msgid "This poll doesn't exist !"
msgstr "Ce sondage n'existe pas !"
msgid "Enter a name"
msgstr "Vous n'avez pas saisi de nom !"
msgid "The name you've chosen already exist in this poll!"
msgstr "Le nom que vous avez choisi existe déjà !"
msgid "Enter a name and a comment!"
msgstr "Merci de remplir les deux champs !"
msgid "Failed to insert the comment!"
msgstr "Échec à l'insertion du commentaire !"
msgid "Characters \" ' < et > are not permitted"
msgstr "Les caractères \" ' < et > ne sont pas autorisés !"
msgid "The date is not correct !"
msgstr "La date choisie n'est pas correcte !"
########### Step 1 ###########
# Step 1 info_sondage.php
msgid "Poll creation (1 on 3)"
msgstr "Création de sondage (1 sur 3)"
msgid "Framadate is not properly installed, please check the 'INSTALL' to setup the database before continuing."
msgstr "Framadate n'est pas installé correctement, lisez le fichier INSTALL pour configurer la base de données avant de continuer."
msgid "You are in the poll creation section."
msgstr "Vous avez choisi de créer un nouveau sondage."
msgid "Required fields cannot be left blank."
msgstr "Merci de remplir les champs obligatoires, marqués d'une *."
msgid "Poll title"
msgstr "Titre du sondage"
msgid "Voters can modify their vote themselves."
msgstr "Vous souhaitez que les sondés puissent modifier leur ligne eux-mêmes."
msgid "To receive an email for each new vote."
msgstr "Vous souhaitez recevoir un courriel à chaque participation d'un sondé."
msgid "Go to step 2"
msgstr "Aller à l'étape 2"
# Errors info_sondage.php
msgid "Enter a title"
msgstr "Il faut saisir un titre !"
msgid "Something is wrong with the format"
msgstr "Quelque chose ne va pas avec le format"
msgid "Enter an email address"
msgstr "Il faut saisir une adresse électronique !"
msgid "The address is not correct! You should enter a valid email address (like r.stallman@outlock.com) in order to receive the link to your poll."
msgstr "L'adresse saisie n'est pas correcte ! Il faut une adresse électronique valide (par exemple r.stallman@outlock.com) pour recevoir le lien vers le sondage."
# Error choix_date.php/choix_autre.php
msgid "You haven't filled the first section of the poll creation."
msgstr "Vous n'avez pas renseigné la première page du sondage"
msgid "Back to step 1"
msgstr "Revenir à létape 1"
########### Step 2 ###########
# Step 2 choix_date.php
msgid "Poll dates (2 on 3)"
msgstr "Choix des dates (2 sur 3)"
msgid "Choose the dates of your poll"
msgstr "Choisissez les dates de votre sondage"
msgid "To schedule an event you need to propose at least two choices (two hours for one day or two days)."
msgstr "Pour créer un sondage spécial dates vous devez proposer au moins deux choix (deux horaires pour une même journée ou deux jours)."
msgid "You can add or remove additionnal days and hours with the buttons"
msgstr "Vous pouvez ajouter ou supprimer des jours et horaires supplémentaires avec les boutons"
msgid "For each selected day, you can choose, or not, meeting hours (e.g.: \"8h\", \"8:30\", \"8h-10h\", \"evening\", etc.)"
msgstr "Pour chacun des jours sélectionnés, vous avez la possibilité de choisir ou non, des heures de réunion (par exemple : \"8h\", \"8:30\", \"8h-10h\", \"soir\", etc.)"
msgid "Day"
msgstr "Jour"
msgid "Time"
msgstr "Horaire"
msgid "Remove an hour"
msgstr "Supprimer le dernier horaire"
msgid "Add an hour"
msgstr "Ajouter un horaire"
msgid "Copy hours of the first day"
msgstr "Reporter les horaires du premier jour sur les autres jours"
msgid "Remove a day"
msgstr "Supprimer le dernier jour"
msgid "Add a day"
msgstr "Ajouter un jour"
msgid "Remove all days"
msgstr "Effacer tous les jours"
msgid "Remove all hours"
msgstr "Effacer tous les horaires"
# Step 2 choix_autre.php
msgid "Poll subjects (2 on 3)"
msgstr "Choix des sujets (2 sur 3)"
msgid "To make a generic poll you need to propose at least two choices between differents subjects."
msgstr "Pour créer un sondage classique, vous devez proposer au moins deux choix différents."
msgid "You can add or remove additional choices with the buttons"
msgstr "Vous pouvez ajouter ou supprimer des choix supplémentaires avec les boutons"
msgid "It's possible to propose links or images by using "
msgstr "Il est possible dinsérer des liens ou des images en utilisant "
msgid "the Markdown syntax"
msgstr "la syntaxe Markdown"
msgid "Choice"
msgstr "Choix"
msgid "Add a link or an image"
msgstr "Ajouter un lien ou une image"
msgid "These fields are optional. You can add a link, an image or both."
msgstr "Ces champs sont facultatifs. Vous pouvez ajouter un lien, une image ou les deux."
msgid "URL of the image"
msgstr "URL de l'image"
msgid "Link"
msgstr "Lien"
msgid "Alternative text"
msgstr "Texte alternatif"
msgid "Remove a choice"
msgstr "Supprimer le dernier choix"
msgid "Add a choice"
msgstr "Ajouter un choix"
msgid "Back to step 2"
msgstr "Revenir à létape 2"
msgid "Go to step 3"
msgstr "Aller à létape 3"
########### Step 3 ###########
msgid "Removal date and confirmation (3 on 3)"
msgstr "Date d'expiration et confirmation (3 sur 3)"
msgid "Confirm the creation of your poll"
msgstr "Confirmez la création de votre sondage"
msgid "List of your choices"
msgstr "Liste de vos choix"
msgid "Once you have confirmed the creation of your poll, you will be automatically redirected on the administration page of your poll."
msgstr "Une fois que vous aurez confirmé la création du sondage, vous serez redirigé automatiquement vers la page d'administration de votre sondage."
msgid "Then, you will receive quickly two emails: one contening the link of your poll for sending it to the voters, the other contening the link to the administration page of your poll."
msgstr "En même temps, vous recevrez deux courriels : l'un contenant le lien vers votre sondage pour le faire suivre aux futurs sondés, l'autre contenant le lien vers la page d'administraion du sondage."
msgid "Create the poll"
msgstr "Créer le sondage"
# Step 3 choix_date.php
msgid "Your poll will be automatically removed "
msgstr "Votre sondage sera automatiquement effacé "
msgid " after the last date of your poll:"
msgstr " après la date la plus tardive :"
msgid "Removal date:"
msgstr "Date de suppression :"
# Step 3 choix_autre.php
msgid "Your poll will be automatically removed after"
msgstr "Votre sondage sera automatiquement effacé dans"
msgid "You can set a closer removal date for it."
msgstr "Vous pouvez décider d'une date de suppression plus proche."
msgid "Removal date (optional)"
msgstr "Date de fin (facultative)"
############# Admin #############
msgid "Polls"
msgstr "Sondages"
msgid "Migration"
msgstr "Migration"
msgid "Confirm removal of the poll "
msgstr "Confirmer la suppression du sondage "
msgid "polls in the database at this time"
msgstr "sondages dans la base actuellement"
msgid "Poll ID"
msgstr "ID sondage"
msgid "Format"
msgstr "Format"
msgid "Title"
msgstr "Titre"
msgid "Author"
msgstr "Auteur"
msgid "Users"
msgstr "Utilisateurs"
msgid "Actions"
msgstr "Actions"
msgid "See the poll"
msgstr "Voir le sondage"
msgid "Change the poll"
msgstr "Modifier le sondage"
msgid "Logs"
msgstr "Historique"
msgid "Summary"
msgstr "Résumé"
msgid "Success"
msgstr "Réussite"
msgid "Fail"
msgstr "Échèc"
msgid "Nothing"
msgstr "Rien"
msgid "Succeeded:"
msgstr "Réussit:"
msgid "Failed:"
msgstr "Échoué:"
msgid "Skipped:"
msgstr "Passé:"
msgid "Pages:"
msgstr "Pages :"
########### Mails ###########
# Mails studs.php
msgid "Poll's participation"
msgstr "Participation au sondage"
msgid ""
"filled a vote.\n"
"You can find your poll at the link"
msgstr ""
"vient de voter.\n"
"Vous pouvez retrouver votre sondage avec le lien suivant"
msgid ""
"updated a vote.\n"
"You can find your poll at the link"
msgstr ""
"vient de mettre à jour un vote.\n"
"Vous pouvez retrouver votre sondage avec le lien suivant"
msgid ""
"vient de rédiger un commentaire.\n"
"You can find your poll at the link"
msgstr ""
"wrote a comment.\n"
"Vous pouvez retrouver votre sondage avec le lien suivant"
msgid "Thanks for your confidence."
msgstr "Merci de votre confiance."
msgid "\n"
"--\n\n"
 La route est longue, mais la voie est libre… »\n"
"Framasoft ne vit que par vos dons (déductibles des impôts).\n"
"Merci d'avance pour votre soutien http://soutenir.framasoft.org."
msgstr "\n"
"--\n\n"
 La route est longue, mais la voie est libre… »\n"
"Framasoft ne vit que par vos dons (déductibles des impôts).\n"
"Merci d'avance pour votre soutien http://soutenir.framasoft.org."
# Mails adminstuds.php
msgid "[ADMINISTRATOR] New settings for your poll"
msgstr "[ADMINISTRATEUR] Changement de configuration du sondage"
msgid ""
"You have changed the settings of your poll. \n"
"You can modify this poll with this link"
msgstr ""
"Vous avez modifié la configuration de votre sondage. \n"
"Vous pouvez modifier ce sondage avec le lien suivant"
# Mails creation_sondage.php
msgid ""
"This is the message you have to send to the people you want to poll. \n"
"Now, you have to send this message to everyone you want to poll."
msgstr ""
"Ceci est le message qui doit être envoyé aux sondés. \n"
"Vous pouvez maintenant transmettre ce message à toutes les personnes susceptibles de participer au vote."
msgid "hast just created a poll called"
msgstr " vient de créer un sondage intitulé "
msgid "Thanks for filling the poll at the link above"
msgstr "Merci de bien vouloir participer au sondage à l'adresse suivante"
msgid ""
"This message should NOT be sent to the polled people. It is private for the poll's creator.\n"
"\n"
"You can now modify it at the link above"
msgstr ""
"Ce message ne doit PAS être diffusé aux sondés. Il est réservé à l'auteur du sondage.\n"
"\n"
"Vous pouvez modifier ce sondage à l'adresse suivante "
msgid "Author's message"
msgstr "Réservé à l'auteur"
msgid "For sending to the polled users"
msgstr "Pour diffusion aux sondés"

View File

@ -189,12 +189,11 @@ $slots = $pollService->allSlotsByPollId($poll_id);
$votes = $pollService->allVotesByPollId($poll_id);
$comments = $pollService->allCommentsByPollId($poll_id);
// Assign data to template
$smarty->assign('poll_id', $poll_id);
$smarty->assign('poll', $poll);
$smarty->assign('title', _('Poll') . ' - ' . $poll->title);
$smarty->assign('expired', $poll->end_date < time());
$smarty->assign('expired', strtotime($poll->end_date) < time());
$smarty->assign('deletion_date', $poll->end_date + PURGE_DELAY * 86400);
$smarty->assign('slots', $poll->format === 'D' ? $pollService->splitSlots($slots) : $slots);
$smarty->assign('votes', $pollService->splitVotes($votes));

View File

@ -3,37 +3,38 @@
{block name=main}
<form action="{$admin_poll_id|poll_url:true}" method="POST">
<div class="alert alert-info text-center">
<h2>{_('Column\'s adding')}</h2>
<h2>{__('adminstuds\\Column\'s adding')}</h2>
{if $format === 'D'}
<div class="form-group">
<label for="newdate" class="col-md-4">{_('Day')}</label>
<label for="newdate" class="col-md-4">{__('Generic\\Day')}</label>
<div class="col-md-8">
<div class="input-group date">
<span class="input-group-addon"><i class="glyphicon glyphicon-calendar"></i></span>
<input type="text" id="newdate" data-date-format="{_('dd/mm/yyyy')}" aria-describedby="dateformat" name="newdate" class="form-control" placeholder="{_('dd/mm/yyyy')}" />
<input type="text" id="newdate" data-date-format="{__('Date\\dd/mm/yyyy')}" aria-describedby="dateformat" name="newdate" class="form-control" placeholder="{__('Date\\dd/mm/yyyy')}" />
</div>
<span id="dateformat" class="sr-only">{_('(dd/mm/yyyy)')}</span>
<span id="dateformat" class="sr-only">({__('Date\\dd/mm/yyyy')})</span>
</div>
</div>
<div class="form-group">
<label for="newmoment" class="col-md-4">{_('Time')}</label>
<label for="newmoment" class="col-md-4">{__('Generic\\Time')}</label>
<div class="col-md-8">
<input type="text" id="newmoment" name="newmoment" class="form-control" />
</div>
</div>
{else}
<div class="form-group">
<label for="choice" class="col-md-4">{_('Choice')}</label>
<label for="choice" class="col-md-4">{__('Generic\\Choice')}</label>
<div class="col-md-8">
<input type="text" id="choice" name="choice" class="form-control" />
</div>
</div>
{/if}
<div class="form-group">
<button class="btn btn-default" type="submit" name="back">{_('Back to the poll')}</button>
<button type="submit" name="confirm_add_slot" class="btn btn-success">{_('Add a column')}</button>
<button class="btn btn-default" type="submit" name="back">{__('adminstuds\\Back to the poll')}</button>
<button type="submit" name="confirm_add_slot" class="btn btn-success">{__('adminstuds\\Add a column')}</button>
</div>
</div>
</form>
<script type="text/javascript" src="js/app/framadatepicker.js"></script>
{/block}

View File

@ -3,7 +3,7 @@
{block 'main'}
<div class="row">
<div class="col-xs-12">
<a href="{'admin'|resource}">{_('Back to administration')}</a>
<a href="{'admin'|resource}">{__('Admin\\Back to administration')}</a>
</div>
</div>
{block 'admin_main'}{/block}

View File

@ -3,17 +3,17 @@
{block 'main'}
<div class="row">
<div class="col-md-6 col-xs-12">
<a href="./polls.php"><h2>{_('Polls')}</h2></a>
<a href="./polls.php"><h2>{__('Admin\\Polls')}</h2></a>
</div>
<div class="col-md-6 col-xs-12">
<a href="./migration.php"><h2>{_('Migration')}</h2></a>
<a href="./migration.php"><h2>{__('Admin\\Migration')}</h2></a>
</div>
<div class="col-md-6 col-xs-12">
<a href="./purge.php"><h2>{_('Purge')}</h2></a>
<a href="./purge.php"><h2>{__('Admin\\Purge')}</h2></a>
</div>
{if $logsAreReadable}
<div class="col-md-6 col-xs-12">
<a href="./logs.php"><h2>{_('Logs')}</h2></a>
<a href="./logs.php"><h2>{__('Admin\\Logs')}</h2></a>
</div>
{/if}
</div>

View File

@ -3,37 +3,37 @@
{block 'admin_main'}
<div class="row">
<div class="col-xs-12 col-md-4">
<h2>{_('Summary')}</h2>
{_('Succeeded:')} <span class="label label-warning">{$countSucceeded|html} / {$countTotal|html}</span>
<h2>{__('Admin\\Summary')}</h2>
{__('Admin\\Succeeded:')} <span class="label label-warning">{$countSucceeded|html} / {$countTotal|html}</span>
<br/>
{_('Failed:')} <span class="label label-danger">{$countFailed|html} / {$countTotal|html}</span>
{__('Admin\\Failed:')} <span class="label label-danger">{$countFailed|html} / {$countTotal|html}</span>
<br/>
{_('Skipped:')} <span class="label label-info">{$countSkipped|html} / {$countTotal|html}</span>
{__('Admin\\Skipped:')} <span class="label label-info">{$countSkipped|html} / {$countTotal|html}</span>
</div>
<div class="col-xs-12 col-md-4">
<h2>{_('Success')}</h2>
<h2>{__('Admin\\Success')}</h2>
<ul>
{foreach $success as $s}
<li>{$s|html}</li>
{foreachelse}
<li>{_('Nothing')}</li>
<li>{__('Admin\\Nothing')}</li>
{/foreach}
</ul>
</div>
<div class="col-xs-12 col-md-4">
<h2>{_('Fail')}</h2>
<h2>{__('Admin\\Fail')}</h2>
<ul>
{foreach $fail as $f}
<li>{$f|html}</li>
{foreachelse}
<li>{_('Nothing')}</li>
<li>{__('Admin\\Nothing')}</li>
{/foreach}
</ul>
</div>
<div class="col-xs-12 well well-sm">
{_('Page generated in')} {$time} {_('secondes')}
{__('Generic\\Page generated in')} {$time} {__('Generic\\seconds')}
</div>
</div>
{/block}

View File

@ -5,41 +5,41 @@
<input type="hidden" name="csrf" value="{$crsf}"/>
{if $poll_to_delete}
<div class="alert alert-warning text-center">
<h3>{_("Confirm removal of the poll ")}"{$poll_to_delete->id|html}"</h3>
<h3>{__('adminstuds\\Confirm removal of the poll')} "{$poll_to_delete->id|html}"</h3>
<p>
<button class="btn btn-default" type="submit" value="1"
name="annullesuppression">{_('Keep this poll!')}</button>
name="annullesuppression">{__('adminstuds\\Keep the poll')}</button>
<button type="submit" name="delete_confirm" value="{$poll_to_delete->id|html}"
class="btn btn-danger">{_('Remove this poll!')}</button>
class="btn btn-danger">{__('adminstuds\\Delete the poll')}</button>
</p>
</div>
{/if}
<div class="panel panel-default">
<div class="panel-heading">
{$polls|count} / {$count} {_('polls in the database at this time')}
{$polls|count} / {$count} {__('Admin\\polls in the database at this time')}
</div>
<table class="table table-bordered table-polls">
<tr align="center">
<th scope="col"></th>
<th scope="col">{_('Title')}</th>
<th scope="col">{_('Author')}</th>
<th scope="col">{_('Email')}</th>
<th scope="col">{_('Expiration\'s date')}</th>
<th scope="col">{_('Users')}</th>
<th scope="col">{_('Poll ID')}</th>
<th scope="col" colspan="3">{_('Actions')}</th>
<th scope="col">{__('Admin\\Title')}</th>
<th scope="col">{__('Admin\\Author')}</th>
<th scope="col">{__('Admin\\Email')}</th>
<th scope="col">{__('Admin\\Expiration date')}</th>
<th scope="col">{__('Admin\\Users')}</th>
<th scope="col">{__('Admin\\Poll ID')}</th>
<th scope="col" colspan="3">{__('Admin\\Actions')}</th>
</tr>
{foreach $polls as $poll}
<tr align="center">
<td class="cell-format">
{if $poll->format === 'D'}
<span class="glyphicon glyphicon-calendar" aria-hidden="true" title="{_('Date')}"></span><span class="sr-only">{_('Date')}</span>
<span class="glyphicon glyphicon-calendar" aria-hidden="true" title="{__('Generic\\Date')}"></span><span class="sr-only">{__('Generic\\Date')}</span>
{else}
<span class="glyphicon glyphicon-list-alt" aria-hidden="true" title="{_('Classic')}"></span><span class="sr-only">{_('Classic')}</span>
<span class="glyphicon glyphicon-list-alt" aria-hidden="true" title="{__('Generic\\Classic')}"></span><span class="sr-only">{__('Generic\\Classic')}</span>
{/if}
</td>
<td>{$poll->title|html}</td>
@ -53,20 +53,20 @@
{/if}
<td>{$poll->votes|html}</td>
<td>{$poll->id|html}</td>
<td><a href="{$poll->id|poll_url|html}" class="btn btn-link" title="{_('See the poll')}"><span class="glyphicon glyphicon-eye-open"></span><span class="sr-only">{_('See the poll')}</span></a></td>
<td><a href="{$poll->admin_id|poll_url:true|html}" class="btn btn-link" title="{_('Change the poll')}"><span class="glyphicon glyphicon-pencil"></span><span class="sr-only">{_('Change the poll')}</span></a></td>
<td><button type="submit" name="delete_poll" value="{$poll->id|html}" class="btn btn-link" title="{_('Remove the poll')}"><span class="glyphicon glyphicon-trash text-danger"></span><span class="sr-only">{_('Remove the poll')}</span></td>
<td><a href="{$poll->id|poll_url|html}" class="btn btn-link" title="{__('Admin\\See the poll')}"><span class="glyphicon glyphicon-eye-open"></span><span class="sr-only">{__('Admin\\See the poll')}</span></a></td>
<td><a href="{$poll->admin_id|poll_url:true|html}" class="btn btn-link" title="{__('Admin\\Change the poll')}"><span class="glyphicon glyphicon-pencil"></span><span class="sr-only">{__('Admin\\Change the poll')}</span></a></td>
<td><button type="submit" name="delete_poll" value="{$poll->id|html}" class="btn btn-link" title="{__('Admin\\Deleted the poll')}"><span class="glyphicon glyphicon-trash text-danger"></span><span class="sr-only">{__('Admin\\Deleted the poll')}</span></td>
</tr>
{/foreach}
</table>
<div class="panel-heading">
{_('Pages:')}
{__('Admin\\Pages:')}
{for $p=1 to $pages}
{if $p===$page}
<a href="{$SERVER_URL}{$SCRIPT_NAME}?page={$p}" class="btn btn-danger" disabled="disabled">{$p}</a>
<a href="{$SERVER_URL}admin/polls.php?page={$p}" class="btn btn-danger" disabled="disabled">{$p}</a>
{else}
<a href="{$SERVER_URL}{$SCRIPT_NAME}?page={$p}" class="btn btn-info">{$p}</a>
<a href="{$SERVER_URL}admin/polls.php?page={$p}" class="btn btn-info">{$p}</a>
{/if}
{/for}
</div>

View File

@ -7,7 +7,7 @@
<form action="" method="POST">
<input type="hidden" name="csrf" value="{$crsf}"/>
<div class="text-center">
<button type="submit" name="action" value="purge" class="btn btn-warning">{_('Purge all polls')} <span class="glyphicon glyphicon-trash text-danger"></span><span class="sr-only">{_('Purge all polls')}</span></button>
<button type="submit" name="action" value="purge" class="btn btn-warning">{__('Admin\\Purge the polls')} <span class="glyphicon glyphicon-trash text-danger"></span></button>
</div>
</form>
{/block}

View File

@ -3,9 +3,9 @@
{block name=main}
<form action="{$admin_poll_id|poll_url:true|html}" method="POST">
<div class="alert alert-danger text-center">
<h2>{_('Confirm removal of all comments of the poll')}</h2>
<p><button class="btn btn-default" type="submit" name="cancel">{_('Keep comments')}</button>
<button type="submit" name="confirm_remove_all_comments" class="btn btn-danger">{_('Remove all comments!')}</button></p>
<h2>{__('adminstuds\\Confirm removal of all comments of the poll')}</h2>
<p><button class="btn btn-default" type="submit" name="cancel">{__('adminstuds\\Keep the comments')}</button>
<button type="submit" name="confirm_remove_all_comments" class="btn btn-danger">{__('adminstuds\\Remove the comments')}</button></p>
</div>
</form>
{/block}

View File

@ -3,9 +3,9 @@
{block name=main}
<form action="{$admin_poll_id|poll_url:true|html}" method="POST">
<div class="alert alert-danger text-center">
<h2>{_('Confirm removal of your poll')}</h2>
<p><button class="btn btn-default" type="submit" name="cancel">{_('Keep this poll')}</button>
<button type="submit" name="confirm_delete_poll" class="btn btn-danger">{_('Remove this poll!')}</button></p>
<h2>{__('adminstuds\\Confirm removal of the poll')}</h2>
<p><button class="btn btn-default" type="submit" name="cancel">{__('adminstuds\\Keep the poll')}</button>
<button type="submit" name="confirm_delete_poll" class="btn btn-danger">{__('PollInfo\\Remove the poll')}</button></p>
</div>
</form>
{/block}

View File

@ -3,9 +3,9 @@
{block name=main}
<form action="{$admin_poll_id|poll_url:true|html}" method="POST">
<div class="alert alert-danger text-center">
<h2>{_('Confirm removal of all votes of the poll')}</h2>
<p><button class="btn btn-default" type="submit" name="cancel">{_('Keep votes')}</button>
<button type="submit" name="confirm_remove_all_votes" class="btn btn-danger">{_('Remove all votes!')}</button></p>
<h2>{__('adminstuds\\Confirm removal of all votes of the poll')}</h2>
<p><button class="btn btn-default" type="submit" name="cancel">{__('adminstuds\\Keep votes')}</button>
<button type="submit" name="confirm_remove_all_votes" class="btn btn-danger">{__('adminstuds\\Remove the votes')}</button></p>
</div>
</form>
{/block}

View File

@ -1,8 +1,8 @@
{extends file='page.tpl'}
{block name=main}
<div class="alert alert-warning">
<div class="alert alert-warning text-center">
<h2>{$error|html}</h2>
<p>{_('Back to the homepage of')} <a href="{$SERVER_URL|html}">{$APPLICATION_NAME|html}</a></p>
<p>{__('Generic\\Back to the homepage of')} <a href="{$SERVER_URL|html}">{$APPLICATION_NAME|html}</a></p>
</div>
{/block}

View File

@ -2,19 +2,19 @@
{if count($langs)>1}
<form method="post" action="" class="hidden-print">
<div class="input-group input-group-sm pull-right col-md-2 col-xs-4">
<select name="lang" class="form-control" title="{_("Select the language")}" >
<select name="lang" class="form-control" title="{__('Language selector\\Select the language')}" >
{foreach $langs as $lang_key=>$lang_value}
<option lang="{substr($lang_key, 0, 2)}" {if substr($lang_key, 0, 2)==$html_lang}selected{/if} value="{$lang_key|html}">{$lang_value|html}</option>
{/foreach}
</select>
<span class="input-group-btn">
<button type="submit" class="btn btn-default btn-sm" title="{_("Change the language")}">OK</button>
<button type="submit" class="btn btn-default btn-sm" title="{__('Language selector\\Change the language')}">OK</button>
</span>
</div>
</form>
{/if}
<h1><a href="{$SERVER_URL|html}" title="{_("Home")} - {$APPLICATION_NAME|html}"><img src="{$TITLE_IMAGE|resource}" alt="{$APPLICATION_NAME|html}"/></a></h1>
<h1><a href="{$SERVER_URL|html}" title="{__('Generic\\Home')} - {$APPLICATION_NAME|html}"><img src="{$TITLE_IMAGE|resource}" alt="{$APPLICATION_NAME|html}"/></a></h1>
{if !empty($title)}<h2 class="lead"><i>{$title|html}</i></h2>{/if}
<hr class="trait" role="presentation" />
</header>

View File

@ -4,11 +4,11 @@
{* Comment list *}
{if $comments|count > 0}
<h3>{_("Comments of polled people")}</h3>
<h3>{__('Comments\\Comments of polled people')}</h3>
{foreach $comments as $comment}
<div class="comment">
{if $admin && !$expired}
<button type="submit" name="delete_comment" value="{$comment->id|html}" class="btn btn-link" title="{_('Remove the comment')}"><span class="glyphicon glyphicon-remove text-danger"></span><span class="sr-only">{_('Remove')}</span></button>
<button type="submit" name="delete_comment" value="{$comment->id|html}" class="btn btn-link" title="{__('Comments\\Remove the comment')}"><span class="glyphicon glyphicon-remove text-danger"></span><span class="sr-only">{__('Generic\\Remove')}</span></button>
{/if}
<b>{$comment->name|html}</b>&nbsp;
<span class="comment">{nl2br($comment->comment|html)}</span>
@ -20,17 +20,17 @@
{if $active && !$expired}
<div class="hidden-print alert alert-info">
<div class="col-md-6 col-md-offset-3">
<fieldset id="add-comment"><legend>{_("Add a comment to the poll")}</legend>
<fieldset id="add-comment"><legend>{__('Comments\\Add a comment to the poll')}</legend>
<div class="form-group">
<label for="name" class="control-label">{_("Your name")}</label>
<label for="name" class="control-label">{__('Generic\\Your name')}</label>
<input type="text" name="name" id="name" class="form-control" />
</div>
<div class="form-group">
<label for="comment" class="control-label">{_("Your comment")}</label>
<label for="comment" class="control-label">{__('Comments\\Your comment')}</label>
<textarea name="comment" id="comment" class="form-control" rows="2" cols="40"></textarea>
</div>
<div class="pull-right">
<input type="submit" name="add_comment" value="{_("Send the comment")}" class="btn btn-success">
<input type="submit" name="add_comment" value="{__('Comments\\Send the comment')}" class="btn btn-success">
</div>
</fieldset>
</div>

View File

@ -1,11 +1,11 @@
{if $active}
<div class="alert alert-info">
<p>{_("If you want to vote in this poll, you have to give your name, choose the values that fit best for you and validate with the plus button at the end of the line.")}</p>
<p aria-hidden="true"><b>{_('Legend:')}</b> <span class="glyphicon glyphicon-ok"></span> = {_('Yes')}, <b>(<span class="glyphicon glyphicon-ok"></span>)</b> = {_('Ifneedbe')}, <span class="glyphicon glyphicon-ban-circle"></span> = {_('No')}</p>
<p>{__('studs\\If you want to vote in this poll, you have to give your name, choose the values that fit best for you and validate with the plus button at the end of the line.')}</p>
<p aria-hidden="true"><b>{__('Generic\\Legend:')}</b> <span class="glyphicon glyphicon-ok"></span> = {__('Generic\\Yes')}, <b>(<span class="glyphicon glyphicon-ok"></span>)</b> = {__('Generic\\Ifneedbe')}, <span class="glyphicon glyphicon-ban-circle"></span> = {_('No')}</p>
</div>
{else}
<div class="alert alert-danger">
<p>{_("The administrator locked this poll, votes and comments are frozen, it's not possible to participate anymore.")}</p>
<p aria-hidden="true"><b>{_('Legend:')}</b> <span class="glyphicon glyphicon-ok"></span> = {_('Yes')}, <b>(<span class="glyphicon glyphicon-ok"></span>)</b> = {_('Ifneedbe')}, <span class="glyphicon glyphicon-ban-circle"></span> = {_('No')}</p>
<p>{__('studs\\POLL_LOCKED_WARNING')}</p>
<p aria-hidden="true"><b>{__('Generic\\Legend:')}</b> <span class="glyphicon glyphicon-ok"></span> = {__('Generic\\Yes')}, <b>(<span class="glyphicon glyphicon-ok"></span>)</b> = {__('Generic\\Ifneedbe')}, <span class="glyphicon glyphicon-ban-circle"></span> = {_('No')}</p>
</div>
{/if}

View File

@ -1,7 +1,7 @@
<div class="alert alert-info">
<p>{_('As poll administrator, you can change all the lines of this poll with this button')} <span class="glyphicon glyphicon-pencil"></span><span class="sr-only">{_('Edit')}</span>,
{_('remove a column or a line with')} <span class="glyphicon glyphicon-remove text-danger"></span><span class="sr-only">{_('Remove')}</span>
{_('and add a new column with')} <span class="glyphicon glyphicon-plus text-success"></span><span class="sr-only">{_('Add a column')}</span>.</p>
<p>{_('Finally, you can change the informations of this poll like the title, the comments or your email address.')}</p>
<p aria-hidden="true"><strong>{_('Legend:')}</strong> <span class="glyphicon glyphicon-ok"></span> = {_('Yes')}, <b>(<span class="glyphicon glyphicon-ok"></span>)</b> = {_('Ifneedbe')}, <span class="glyphicon glyphicon-ban-circle"></span> = {_('No')}</p>
<p>{__('adminstuds\\As poll administrator, you can change all the lines of this poll with this button')} <span class="glyphicon glyphicon-pencil"></span><span class="sr-only">{_('Edit')}</span>,
{__('adminstuds\\remove a column or a line with')} <span class="glyphicon glyphicon-remove text-danger"></span><span class="sr-only">{_('Remove')}</span>
{__('adminstuds\\and add a new column with')} <span class="glyphicon glyphicon-plus text-success"></span><span class="sr-only">{_('Add a column')}</span>.</p>
<p>{__('adminstuds\\Finally, you can change the informations of this poll like the title, the comments or your email address.')}</p>
<p aria-hidden="true"><strong>{__('Generic\\Legend:')}</strong> <span class="glyphicon glyphicon-ok"></span> = {__('Generic\\Yes')}, <b>(<span class="glyphicon glyphicon-ok"></span>)</b> = {__('Generic\\Ifneedbe')}, <span class="glyphicon glyphicon-ban-circle"></span> = {__('Generic\\No')}</p>
</div>

View File

@ -4,15 +4,15 @@
<div class="jumbotron{if $admin} bg-danger{/if}">
<div class="row">
<div id="title-form" class="col-md-7">
<h3>{$poll->title|html}{if $admin && !$expired} <button class="btn btn-link btn-sm btn-edit" title="{_('Edit the title')}"><span class="glyphicon glyphicon-pencil"></span><span class="sr-only">{_('Edit')}</span></button>{/if}</h3>
<h3>{$poll->title|html}{if $admin && !$expired} <button class="btn btn-link btn-sm btn-edit" title="{__('PollInfo\\Edit the title')}"><span class="glyphicon glyphicon-pencil"></span><span class="sr-only">{__('Generic\\Edit')}</span></button>{/if}</h3>
{if $admin && !$expired}
<div class="hidden js-title">
<label class="sr-only" for="newtitle">{_('Title')}</label>
<label class="sr-only" for="newtitle">{__('PollInfo\\Title')}</label>
<div class="input-group">
<input type="text" class="form-control" id="newtitle" name="title" size="40" value="{$poll->title|html}" />
<span class="input-group-btn">
<button type="submit" class="btn btn-success" name="update_poll_info" value="title" title="{_('Save the new title')}"><span class="glyphicon glyphicon-ok"></span><span class="sr-only">{_('Save')}</span></button>
<button class="btn btn-link btn-cancel" title="{_('Cancel the title edit')}"><span class="glyphicon glyphicon-remove"></span><span class="sr-only">{_('Cancel')}</span></button>
<button type="submit" class="btn btn-success" name="update_poll_info" value="title" title="{__('PollInfo\\Save the new title')}"><span class="glyphicon glyphicon-ok"></span><span class="sr-only">{__('Generic\\Save')}</span></button>
<button class="btn btn-link btn-cancel" title="{__('PollInfo\\Cancel the title edit')}"><span class="glyphicon glyphicon-remove"></span><span class="sr-only">{__('Generic\\Cancel')}</span></button>
</span>
</div>
</div>
@ -20,17 +20,17 @@
</div>
<div class="col-md-5 hidden-print">
<div class="btn-group pull-right">
<button onclick="print(); return false;" class="btn btn-default"><span class="glyphicon glyphicon-print"></span> {_('Print')}</button>
<a href="{$SERVER_URL|html}exportcsv.php?poll={$poll_id|html}" class="btn btn-default"><span class="glyphicon glyphicon-download-alt"></span> {_('Export to CSV')}</a>
<button onclick="print(); return false;" class="btn btn-default"><span class="glyphicon glyphicon-print"></span> {__('PollInfo\\Print')}</button>
<a href="{$SERVER_URL|html}exportcsv.php?poll={$poll_id|html}" class="btn btn-default"><span class="glyphicon glyphicon-download-alt"></span> {__('PollInfo\\Export to CSV')}</a>
{if $admin && !$expired}
<button type="button" class="btn btn-danger dropdown-toggle" data-toggle="dropdown">
<span class="glyphicon glyphicon-trash"></span> <span class="sr-only">{_("Remove")}</span> <span class="caret"></span>
<span class="glyphicon glyphicon-trash"></span> <span class="sr-only">{__('Generic\\Remove')}</span> <span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu">
<li><button class="btn btn-link" type="submit" name="remove_all_votes">{_('Remove all the votes') }</button></li>
<li><button class="btn btn-link" type="submit" name="remove_all_comments">{_('Remove all the comments')}</button></li>
<li><button class="btn btn-link" type="submit" name="remove_all_votes">{__('PollInfo\\Remove all the votes') }</button></li>
<li><button class="btn btn-link" type="submit" name="remove_all_comments">{__('PollInfo\\Remove all the comments')}</button></li>
<li class="divider" role="presentation"></li>
<li><button class="btn btn-link" type="submit" name="delete_poll">{_('Remove the poll')}</button></li>
<li><button class="btn btn-link" type="submit" name="delete_poll">{__('PollInfo\\Remove the poll')}</button></li>
</ul>
{/if}
</div>
@ -38,16 +38,16 @@
</div>
<div class="row">
<div id="name-form" class="form-group col-md-5">
<h4 class="control-label">{_('Initiator of the poll')}</h4>
<p class="form-control-static">{$poll->admin_name|html}{if $admin && !$expired} <button class="btn btn-link btn-sm btn-edit" title="{_('Edit the initiator')}"><span class="glyphicon glyphicon-pencil"></span><span class="sr-only">{_('Edit')}</span></button>{/if}</p>
<h4 class="control-label">{__('PollInfo\\Initiator of the poll')}</h4>
<p class="form-control-static">{$poll->admin_name|html}{if $admin && !$expired} <button class="btn btn-link btn-sm btn-edit" title="{__('PollInfo\\Edit the name')}"><span class="glyphicon glyphicon-pencil"></span><span class="sr-only">{__('Generic\\Edit')}</span></button>{/if}</p>
{if $admin && !$expired}
<div class="hidden js-name">
<label class="sr-only" for="newname">{_('Initiator of the poll')}</label>
<label class="sr-only" for="newname">{__('PollInfo\\Initiator of the poll')}</label>
<div class="input-group">
<input type="text" class="form-control" id="newname" name="name" size="40" value="{$poll->admin_name|html}" />
<span class="input-group-btn">
<button type="submit" class="btn btn-success" name="update_poll_info" value="name" title="{_('Save the new name')}"><span class="glyphicon glyphicon-ok"></span><span class="sr-only">{_('Save')}</span></button>
<button class="btn btn-link btn-cancel" title="{_('Cancel the name edit')}"><span class="glyphicon glyphicon-remove"></span><span class="sr-only">{_('Cancel')}</span></button>
<button type="submit" class="btn btn-success" name="update_poll_info" value="name" title="{__('PollInfo\\Save the new name')}"><span class="glyphicon glyphicon-ok"></span><span class="sr-only">{__('Generic\\Save')}</span></button>
<button class="btn btn-link btn-cancel" title="{__('PollInfo\\Cancel the name edit')}"><span class="glyphicon glyphicon-remove"></span><span class="sr-only">{__('Generic\\Cancel')}</span></button>
</span>
</div>
</div>
@ -58,15 +58,15 @@
{if $admin}
<div class="form-group col-md-5">
<div id="email-form">
<p>{$poll->admin_mail|html}{if !$expired} <button class="btn btn-link btn-sm btn-edit" title="{_('Edit the email adress')}"><span class="glyphicon glyphicon-pencil"></span><span class="sr-only">{_('Edit')}</span></button>{/if}</p>
<p>{$poll->admin_mail|html}{if !$expired} <button class="btn btn-link btn-sm btn-edit" title="{__('PollInfo\\Edit the email adress')}"><span class="glyphicon glyphicon-pencil"></span><span class="sr-only">{__('Generic\\Edit')}</span></button>{/if}</p>
{if !$expired}
<div class="hidden js-email">
<label class="sr-only" for="admin_mail">{_('Email adress')}</label>
<label class="sr-only" for="admin_mail">{__('PollInfo\\Email')}</label>
<div class="input-group">
<input type="text" class="form-control" id="admin_mail" name="admin_mail" size="40" value="{$poll->admin_mail|html}" />
<span class="input-group-btn">
<button type="submit" name="update_poll_info" value="admin_mail" class="btn btn-success" title="{_('Save the email address')}"><span class="glyphicon glyphicon-ok"></span><span class="sr-only">{_('Save')}</span></button>
<button class="btn btn-link btn-cancel" title="{_('Cancel the email address edit')}"><span class="glyphicon glyphicon-remove"></span><span class="sr-only">{_('Cancel')}</span></button>
<button type="submit" name="update_poll_info" value="admin_mail" class="btn btn-success" title="{__('PollInfo\\Save the email address')}"><span class="glyphicon glyphicon-ok"></span><span class="sr-only">{__('Generic\\Save')}</span></button>
<button class="btn btn-link btn-cancel" title="{__('PollInfo\\Cancel the email address edit')}"><span class="glyphicon glyphicon-remove"></span><span class="sr-only">{__('Generic\\Cancel')}</span></button>
</span>
</div>
</div>
@ -75,14 +75,14 @@
</div>
{/if}
<div class="form-group col-md-7" id="description-form">
<h4 class="control-label">{_("Description")}{if $admin && !$expired} <button class="btn btn-link btn-sm btn-edit" title="{_('Edit the description')}"><span class="glyphicon glyphicon-pencil"></span><span class="sr-only">{_('Edit')}</span></button>{/if}</h4>
<h4 class="control-label">{__('Generic\\Description')}{if $admin && !$expired} <button class="btn btn-link btn-sm btn-edit" title="{__('PollInfo\\Edit the description')}"><span class="glyphicon glyphicon-pencil"></span><span class="sr-only">{__('Generic\\Edit')}</span></button>{/if}</h4>
<p class="form-control-static well">{$poll->description|html}</p>
{if $admin && !$expired}
<div class="hidden js-desc text-right">
<label class="sr-only" for="newdescription">{_('Description')}</label>
<textarea class="form-control" id="newdescription" name="comment" rows="2" cols="40">{$poll->description|html}</textarea>
<button type="submit" id="btn-new-desc" name="update_poll_info" value="comment" class="btn btn-sm btn-success" title="{_('Save the description')}"><span class="glyphicon glyphicon-ok"></span><span class="sr-only">{_('Save')}</span></button>
<button class="btn btn-default btn-sm btn-cancel" title="{_('Cancel the description edit')}"><span class="glyphicon glyphicon-remove"></span><span class="sr-only">{_('Cancel')}</span></button>
<label class="sr-only" for="newdescription">{__('Generic\\Description')}</label>
<textarea class="form-control" id="newdescription" name="description" rows="2" cols="40">{$poll->description|html}</textarea>
<button type="submit" id="btn-new-desc" name="update_poll_info" value="description" class="btn btn-sm btn-success" title="{__('PollInfo\\Save the description')}"><span class="glyphicon glyphicon-ok"></span><span class="sr-only">{__('Generic\\Save')}</span></button>
<button class="btn btn-default btn-sm btn-cancel" title="{__('PollInfo\\Cancel the description edit')}"><span class="glyphicon glyphicon-remove"></span><span class="sr-only">{__('Generic\\Cancel')}</span></button>
</div>
{/if}
</div>
@ -90,25 +90,25 @@
<div class="row">
<div class="form-group form-group {if $admin}col-md-4{else}col-md-6{/if}">
<label for="public-link"><a class="public-link" href="{$poll_id|poll_url|html}">{_('Public link of the poll')} <span class="btn-link glyphicon glyphicon-link"></span></a></label>
<label for="public-link"><a class="public-link" href="{$poll_id|poll_url|html}">{__('PollInfo\\Public link of the poll')} <span class="btn-link glyphicon glyphicon-link"></span></a></label>
<input class="form-control" id="public-link" type="text" readonly="readonly" value="{$poll_id|poll_url}" />
</div>
{if $admin}
<div class="form-group col-md-4">
<label for="admin-link"><a class="admin-link" href="{$admin_poll_id|poll_url:true|html}">{_('Admin link of the poll')} <span class="btn-link glyphicon glyphicon-link"></span></a></label>
<label for="admin-link"><a class="admin-link" href="{$admin_poll_id|poll_url:true|html}">{__('PollInfo\\Admin link of the poll')} <span class="btn-link glyphicon glyphicon-link"></span></a></label>
<input class="form-control" id="admin-link" type="text" readonly="readonly" value="{$admin_poll_id|poll_url:true|html}" />
</div>
<div id="expiration-form" class="form-group col-md-4">
<h4 class="control-label">{_('Expiration\'s date')}</h4>
<p>{$poll->end_date|date_format:$date_format['txt_date']|html}{if !$expired} <button class="btn btn-link btn-sm btn-edit" title="{_('Edit the expiration\'s date')}"><span class="glyphicon glyphicon-pencil"></span><span class="sr-only">{_('Edit')}</span></button>{/if}</p>
<h4 class="control-label">{__('PollInfo\\Expiration date')}</h4>
<p>{$poll->end_date|date_format:$date_format['txt_date']|html}{if !$expired} <button class="btn btn-link btn-sm btn-edit" title="{__('PollInfo\\Edit the expiration date')}"><span class="glyphicon glyphicon-pencil"></span><span class="sr-only">{__('Generic\\Edit')}</span></button>{/if}</p>
{if !$expired}
<div class="hidden js-expiration">
<label class="sr-only" for="newexpirationdate">{_('Expiration\'s date')}</label>
<label class="sr-only" for="newexpirationdate">{__('PollInfo\\Expiration date')}</label>
<div class="input-group">
<input type="text" class="form-control" id="newexpirationdate" name="expiration_date" size="40" value="{$poll->end_date|date_format:$date_format['txt_date']|html}" />
<span class="input-group-btn">
<button type="submit" class="btn btn-success" name="update_poll_info" value="expiration_date" title="{_('Save the new expiration date')}"><span class="glyphicon glyphicon-ok"></span><span class="sr-only">{_('Save')}</span></button>
<button class="btn btn-link btn-cancel" title="{_('Cancel the expiration date edit')}"><span class="glyphicon glyphicon-remove"></span><span class="sr-only">{_('Cancel')}</span></button>
<button type="submit" class="btn btn-success" name="update_poll_info" value="expiration_date" title="{__('PollInfo\\Save the new expiration date')}"><span class="glyphicon glyphicon-ok"></span><span class="sr-only">{__('Generic\\Save')}</span></button>
<button class="btn btn-link btn-cancel" title="{__('PollInfo\\Cancel the expiration date edit')}"><span class="glyphicon glyphicon-remove"></span><span class="sr-only">{__('Generic\\Cancel')}</span></button>
</span>
</div>
</div>
@ -124,30 +124,30 @@
{if $poll->editable}
{$rule_id = 2}
{$rule_icon = '<span class="glyphicon glyphicon-edit"></span>'}
{$rule_txt = _('Votes are editable')}
{$rule_txt = __('PollInfo\\Votes are editable')}
{else}
{$rule_id = 1}
{$rule_icon = '<span class="glyphicon glyphicon-check"></span>'}
{$rule_txt = _('Votes and comments are open')}
{$rule_txt = __('PollInfo\\Votes and comments are open')}
{/if}
{else}
{$rule_id = 0}
{$rule_icon = '<span class="glyphicon glyphicon-lock"></span>'}
{$rule_txt = _('Votes and comments are locked')}
{$rule_txt = __('PollInfo\\Votes and comments are locked')}
{/if}
<p class="">{$rule_icon} {$rule_txt|html}{if !$expired} <button class="btn btn-link btn-sm btn-edit" title="{_('Edit the poll rules')}"><span class="glyphicon glyphicon-pencil"></span><span class="sr-only">{_('Edit')}</span></button>{/if}</p>
<p class="">{$rule_icon} {$rule_txt|html}{if !$expired} <button class="btn btn-link btn-sm btn-edit" title="{__('PollInfo\\Edit the poll rules')}"><span class="glyphicon glyphicon-pencil"></span><span class="sr-only">{__('Generic\\Edit')}</span></button>{/if}</p>
{if !$expired}
<div class="hidden js-poll-rules">
<label class="sr-only" for="rules">{_('Poll rules')}</label>
<label class="sr-only" for="rules">{__('PollInfo\\Poll rules')}</label>
<div class="input-group">
<select class="form-control" id="rules" name="rules">
<option value="0"{if $rule_id==0} selected="selected"{/if}>{_("Votes and comments are locked")}</option>
<option value="1"{if $rule_id==1} selected="selected"{/if}>{_("Votes and comments are open")}</option>
<option value="2"{if $rule_id==2} selected="selected"{/if}>{_("Votes are editable")}</option>
<option value="0"{if $rule_id==0} selected="selected"{/if}>{__('PollInfo\\Votes and comments are locked')}</option>
<option value="1"{if $rule_id==1} selected="selected"{/if}>{__('PollInfo\\Votes and comments are open')}</option>
<option value="2"{if $rule_id==2} selected="selected"{/if}>{__('PollInfo\\Votes are editable')}</option>
</select>
<span class="input-group-btn">
<button type="submit" name="update_poll_info" value="rules" class="btn btn-success" title="{_('Save the new rules')}"><span class="glyphicon glyphicon-ok"></span><span class="sr-only">{_('Save')}</span></button>
<button class="btn btn-link btn-cancel" title="{_('Cancel the rules edit')}"><span class="glyphicon glyphicon-remove"></span><span class="sr-only">{_('Cancel')}</span></button>
<button type="submit" name="update_poll_info" value="rules" class="btn btn-success" title="{__('PollInfo\\Save the new rules')}"><span class="glyphicon glyphicon-ok"></span><span class="sr-only">{__('Generic\\Save')}</span></button>
<button class="btn btn-link btn-cancel" title="{__('PollInfo\\Cancel the rules edit')}"><span class="glyphicon glyphicon-remove"></span><span class="sr-only">{__('Generic\\Cancel')}</span></button>
</span>
</div>
</div>

View File

@ -2,23 +2,23 @@
{$best_choices = [0]}
{/if}
<h3>{_('Votes of the poll')}</h3>
<h3>{__('Poll results\\Votes of the poll')}</h3>
<div id="tableContainer" class="tableContainer">
<form action="" method="POST">
<table class="results">
<caption class="sr-only">{_('Votes of the poll')} {$poll->title|html}</caption>
<caption class="sr-only">{__('Poll results\\Votes of the poll')} {$poll->title|html}</caption>
<thead>
{if $admin && !$expired}
<tr class="hidden-print">
<th role="presentation"></th>
{foreach $slots as $id=>$slot}
<td headers="C{$id}">
<button type="submit" name="delete_column" value="{$slot->title|html}" class="btn btn-link btn-sm" title="{_('Remove the column')} {$slot->title|html}"><span class="glyphicon glyphicon-remove text-danger"></span><span class="sr-only">{_('Remove')}</span></button>
<button type="submit" name="delete_column" value="{$slot->title|html}" class="btn btn-link btn-sm" title="{__('adminstuds\\Remove the column')} {$slot->title|html}"><span class="glyphicon glyphicon-remove text-danger"></span><span class="sr-only">{__('Genric\\Remove')}</span></button>
</td>
{/foreach}
<td>
<button type="submit" name="add_slot" class="btn btn-link btn-sm" title="{_('Add a column')}"><span class="glyphicon glyphicon-plus text-success"></span><span class="sr-only">{_('Add a column')}</span></button>
<button type="submit" name="add_slot" class="btn btn-link btn-sm" title="{__('adminstuds\\Add a column')}"><span class="glyphicon glyphicon-plus text-success"></span><span class="sr-only">{__('Poll results\\Add a column')}</span></button>
</td>
</tr>
{/if}
@ -40,7 +40,7 @@
<td class="bg-info" style="padding:5px">
<div class="input-group input-group-sm">
<span class="input-group-addon"><span class="glyphicon glyphicon-user"></span></span>
<input type="text" id="name" name="name" value="{$vote->name|html}" class="form-control" title="{_('Your name')}" placeholder="{_('Your name')}" />
<input type="text" id="name" name="name" value="{$vote->name|html}" class="form-control" title="{__('Genric\\Your name')}" placeholder="{__('Genric\\Your name')}" />
</div>
</td>
@ -50,26 +50,26 @@
<ul class="list-unstyled choice">
<li class="yes">
<input type="radio" id="y-choice-{$id}" name="choices[{$id}]" value="2" {if $choice==2}checked {/if}/>
<label class="btn btn-default btn-xs" for="y-choice-{$id}" title="{_('Vote yes for ')} . $radio_title[$id] . '">{* TODO Replace $radio_title *}
<span class="glyphicon glyphicon-ok"></span><span class="sr-only">{_('Yes')}</span>
<label class="btn btn-default btn-xs" for="y-choice-{$id}" title="{__('Poll results\\Vote yes for')} {$slots[$id]->title|html}">
<span class="glyphicon glyphicon-ok"></span><span class="sr-only">{__('Genric\\Yes')}</span>
</label>
</li>
<li class="ifneedbe">
<input type="radio" id="i-choice-{$id}" name="choices[{$id}]" value="1" {if $choice==1}checked {/if}/>
<label class="btn btn-default btn-xs" for="i-choice-{$id}" title="{_('Vote ifneedbe for ')} . $radio_title[$id] . '">{* TODO Replace $radio_title *}
(<span class="glyphicon glyphicon-ok"></span>)<span class="sr-only">{_('Ifneedbe')}</span>
<label class="btn btn-default btn-xs" for="i-choice-{$id}" title="{__('Poll results\\Vote ifneedbe for')} {$slots[$id]->title|html}">
(<span class="glyphicon glyphicon-ok"></span>)<span class="sr-only">{__('Genric\\Ifneedbe')}</span>
</label>
</li>
<li class="no">
<input type="radio" id="n-choice-{$id}" name="choices[{$id}]" value="0" {if $choice==0}checked {/if}/>
<label class="btn btn-default btn-xs" for="n-choice-{$id}" title="{_('Vote no for ')} . $radio_title[$id] . '">{* TODO Replace $radio_title *}
<span class="glyphicon glyphicon-ban-circle"></span><span class="sr-only">{_('No')}</span>
<label class="btn btn-default btn-xs" for="n-choice-{$id}" title="{__('Poll results\\Vote no for')} {$slots[$id]->title|html}">
<span class="glyphicon glyphicon-ban-circle"></span><span class="sr-only">{__('Genric\\No')}</span>
</label>
</li>
</ul>
</td>
{/foreach}
<td style="padding:5px"><button type="submit" class="btn btn-success btn-xs" name="save" value="{$vote->id|html}" title="{_('Save the choices')} {$vote->name|html}">{_('Save')}</button></td>
<td style="padding:5px"><button type="submit" class="btn btn-success btn-xs" name="save" value="{$vote->id|html}" title="{__('Poll results\\Save the choices')} {$vote->name|html}">{__('Generic\\Save')}</button></td>
{else}
{* Voted line *}
@ -79,23 +79,23 @@
{foreach $vote->choices as $id=>$choice}
{if $choice==2}
<td class="bg-success text-success" headers="C{$id}"><span class="glyphicon glyphicon-ok"></span><span class="sr-only">{_('Yes')}</span></td>
<td class="bg-success text-success" headers="C{$id}"><span class="glyphicon glyphicon-ok"></span><span class="sr-only">{__('Generic\\Yes')}</span></td>
{elseif $choice==1}
<td class="bg-warning text-warning" headers="C{$id}">(<span class="glyphicon glyphicon-ok"></span>)<span class="sr-only">{_('Ifneedbe')}</span></td>
<td class="bg-warning text-warning" headers="C{$id}">(<span class="glyphicon glyphicon-ok"></span>)<span class="sr-only">{__('Generic\\Ifneedbe')}</span></td>
{else}
<td class="bg-danger" headers="C{$id}"><span class="sr-only">{_('No')}</span></td>
<td class="bg-danger" headers="C{$id}"><span class="sr-only">{__('Generic\\No')}</span></td>
{/if}
{/foreach}
{if $active && $poll->editable && !$expired}
<td>
<button type="submit" class="btn btn-link btn-sm" name="edit_vote" value="{$vote->id|html}" title="{_('Edit the line:')} {$vote->name|html}">
<span class="glyphicon glyphicon-pencil"></span><span class="sr-only">{_('Edit')}</span>
<button type="submit" class="btn btn-link btn-sm" name="edit_vote" value="{$vote->id|html}" title="{__('Poll results\\Edit the line:')} {$vote->name|html}">
<span class="glyphicon glyphicon-pencil"></span><span class="sr-only">{__('Generic\\Edit')}</span>
</button>
{if $admin}
<button type="submit" class="btn btn-link btn-sm" name="delete_vote" value="{$vote->id|html}" title="{_('Remove the line:')} {$vote->name|html}">
<span class="glyphicon glyphicon-remove text-danger"></span><span class="sr-only">{_('Remove')}</span>
<button type="submit" class="btn btn-link btn-sm" name="delete_vote" value="{$vote->id|html}" title="{__('Poll results\\Remove the line:')} {$vote->name|html}">
<span class="glyphicon glyphicon-remove text-danger"></span><span class="sr-only">{__('Generic\\Remove')}</span>
</button>
{/if}
</td>
@ -113,7 +113,7 @@
<td class="bg-info" style="padding:5px">
<div class="input-group input-group-sm">
<span class="input-group-addon"><span class="glyphicon glyphicon-user"></span></span>
<input type="text" id="name" name="name" class="form-control" title="{_('Your name')}" placeholder="{_('Your name')}" />
<input type="text" id="name" name="name" class="form-control" title="{__('Generic\\Your name')}" placeholder="{__('Generic\\Your name')}" />
</div>
</td>
{foreach $slots as $id=>$slot}
@ -121,26 +121,26 @@
<ul class="list-unstyled choice">
<li class="yes">
<input type="radio" id="y-choice-{$id}" name="choices[{$id}]" value="2" />
<label class="btn btn-default btn-xs" for="y-choice-{$id}" title="{_('Vote yes for')} {$slot->title|html}">
<span class="glyphicon glyphicon-ok"></span><span class="sr-only">{_('Yes')}</span>
<label class="btn btn-default btn-xs" for="y-choice-{$id}" title="{__('Poll results\\Vote yes for')} {$slot->title|html}">
<span class="glyphicon glyphicon-ok"></span><span class="sr-only">{__('Generic\\Yes')}</span>
</label>
</li>
<li class="ifneedbe">
<input type="radio" id="i-choice-{$id}" name="choices[{$id}]" value="1" />
<label class="btn btn-default btn-xs" for="i-choice-{$id}" title="{_('Vote ifneedbe for')} {$slot->title|html}">
(<span class="glyphicon glyphicon-ok"></span>)<span class="sr-only">{_('Ifneedbe')}</span>
<label class="btn btn-default btn-xs" for="i-choice-{$id}" title="{__('Poll results\\Vote ifneedbe for')} {$slot->title|html}">
(<span class="glyphicon glyphicon-ok"></span>)<span class="sr-only">{__('Generic\\Ifneedbe')}</span>
</label>
</li>
<li class="no">
<input type="radio" id="n-choice-{$id}" name="choices[{$id}]" value="0" checked/>
<label class="btn btn-default btn-xs" for="n-choice-{$id}" title="{_('Vote no for')} {$slot->title|html}">
<span class="glyphicon glyphicon-ban-circle"></span><span class="sr-only">{_('No')}</span>
<label class="btn btn-default btn-xs" for="n-choice-{$id}" title="{__('Poll results\\Vote no for')} {$slot->title|html}">
<span class="glyphicon glyphicon-ban-circle"></span><span class="sr-only">{__('Generic\\No')}</span>
</label>
</li>
</ul>
</td>
{/foreach}
<td><button type="submit" class="btn btn-success btn-md" name="save" title="{_('Save the choices')}">{_('Save')}</button></td>
<td><button type="submit" class="btn btn-success btn-md" name="save" title="{__('Poll results\\Save the choices')}">{__('Generic\\Save')}</button></td>
</tr>
{/if}
@ -149,13 +149,15 @@
{$max = max($best_choices)}
{if $max > 0}
<tr id="addition">
<td>{_("Addition")}</td>
<td>{__('Poll results\\Addition')}</td>
{foreach $best_choices as $best_choice}
{if $max == $best_choice}
{$count_bests = $count_bests +1}
<td><span class="glyphicon glyphicon-star text-warning"></span>{$best_choice|html}</td>
{else}
{elseif $best_choice > 0}
<td>{$best_choice|html}</td>
{else}
<td></td>
{/if}
{/foreach}
</tr>
@ -171,13 +173,13 @@
{if $max > 0}
<div class="row">
{if $count_bests == 1}
<div class="col-sm-12"><h3>{_("Best choice")}</h3></div>
<div class="col-sm-12"><h3>{__('Poll results\\Best choice')}</h3></div>
<div class="col-sm-6 col-sm-offset-3 alert alert-success">
<p><span class="glyphicon glyphicon-star text-warning"></span>{_('The best choice at this time is:')}</p>
<p><span class="glyphicon glyphicon-star text-warning"></span>{__('Poll results\\The best choice at this time is:')}</p>
{elseif $count_bests > 1}
<div class="col-sm-12"><h3>{_("Best choices")}</h3></div>
<div class="col-sm-12"><h3>{__('Poll results\\Best choices')}</h3></div>
<div class="col-sm-6 col-sm-offset-3 alert alert-success">
<p><span class="glyphicon glyphicon-star text-warning"></span>{_('The bests choices at this time are:')}</p>
<p><span class="glyphicon glyphicon-star text-warning"></span>{__('Poll results\\The bests choices at this time are:')}</p>
{/if}
@ -190,7 +192,7 @@
{$i = $i+1}
{/foreach}
</ul>
<p>{_('with')} <b>{$max|html}</b> {if $max==1}{_('vote')}{else}{_('votes')}{/if}.</p>
<p>{__('Generic\\with')} <b>{$max|html}</b> {if $max==1}{__('Generic\\vote')}{else}{__('Generic\\votes')}{/if}.</p>
</div>
</div>
{/if}

View File

@ -2,12 +2,12 @@
{$best_choices = [0]}
{/if}
<h3>{_('Votes of the poll')}</h3>
<h3>{__('Poll results\\Votes of the poll')}</h3>
<div id="tableContainer" class="tableContainer">
<form action="" method="POST">
<table class="results">
<caption class="sr-only">{_('Votes of the poll')} {$poll->title|html}</caption>
<caption class="sr-only">{__('Poll results\\Votes of the poll')} {$poll->title|html}</caption>
<thead>
{if $admin && !$expired}
<tr class="hidden-print">
@ -16,13 +16,13 @@
{foreach $slots as $slot}
{foreach $slot->moments as $id=>$moment}
<td headers="M{$slot@key} D{$headersDCount} H{$headersDCount}">
<button type="submit" name="delete_column" value="{$slot->day|html}@{$moment|html}" class="btn btn-link btn-sm" title="{_('Remove the column')} {$slot->day|date_format:$date_format.txt_short|html} - {$moment|html}"><span class="glyphicon glyphicon-remove text-danger"></span><span class="sr-only">{_('Remove')}</span></button>
<button type="submit" name="delete_column" value="{$slot->day|html}@{$moment|html}" class="btn btn-link btn-sm" title="{__('adminstuds\\Remove the column')} {$slot->day|date_format:$date_format.txt_short|html} - {$moment|html}"><span class="glyphicon glyphicon-remove text-danger"></span><span class="sr-only">{__('Generic\\Remove')}</span></button>
</td>
{$headersDCount = $headersDCount+1}
{/foreach}
{/foreach}
<td>
<button type="submit" name="add_slot" class="btn btn-link btn-sm" title="{_('Add a column')}"><span class="glyphicon glyphicon-plus text-success"></span><span class="sr-only">{_("Add a column")}</span></button>
<button type="submit" name="add_slot" class="btn btn-link btn-sm" title="{__('adminstuds\\Add a column')}"><span class="glyphicon glyphicon-plus text-success"></span><span class="sr-only">{__('Poll results\\Add a column')}</span></button>
</td>
</tr>
{/if}
@ -31,7 +31,7 @@
{$count_same = 0}
{$previous = 0}
{foreach $slots as $id=>$slot}
{$display = $slot->day|date_format:$date_format.txt_year_month|html}
{$display = $slot->day|date_format:$date_format.txt_month_year|html}
{if $previous !== 0 && $previous != $display}
<th colspan="{$count_same}" class="bg-primary month" id="M{$id}">{$previous}</th>
{$count_same = 0}
@ -64,11 +64,13 @@
<tr>
<th role="presentation"></th>
{$headersDCount=0}
{$slots_raw = array()}
{foreach $slots as $slot}
{foreach $slot->moments as $id=>$moment}
<th colspan="1" class="bg-info" id="H{$headersDCount}">{$moment|html}</th>
{append var='headersH' value=$headersDCount}
{$headersDCount = $headersDCount+1}
{$slots_raw[] = $slot->day|date_format:$date_format.txt_full|cat:' - '|cat:$moment}
{/foreach}
{/foreach}
<th></th>
@ -84,7 +86,7 @@
<td class="bg-info" style="padding:5px">
<div class="input-group input-group-sm">
<span class="input-group-addon"><span class="glyphicon glyphicon-user"></span></span>
<input type="text" id="name" name="name" value="{$vote->name|html}" class="form-control" title="{_('Your name')}" placeholder="{_('Your name')}" />
<input type="text" id="name" name="name" value="{$vote->name|html}" class="form-control" title="{__('Generic\\Your name')}" placeholder="{__('Generic\\Your name')}" />
</div>
</td>
@ -94,26 +96,26 @@
<ul class="list-unstyled choice">
<li class="yes">
<input type="radio" id="y-choice-{$k}" name="choices[{$k}]" value="2" {if $choice==2}checked {/if}/>
<label class="btn btn-default btn-xs" for="y-choice-{$k}" title="{_('Vote yes for ')} . $radio_title[$k] . '">{* TODO Replace $radio_title *}
<span class="glyphicon glyphicon-ok"></span><span class="sr-only">{_('Yes')}</span>
<label class="btn btn-default btn-xs" for="y-choice-{$k}" title="{__('Poll results\\Vote yes for')|html} {$slots_raw[$k]}">
<span class="glyphicon glyphicon-ok"></span><span class="sr-only">{__('Generic\\Yes')}</span>
</label>
</li>
<li class="ifneedbe">
<input type="radio" id="i-choice-{$k}" name="choices[{$k}]" value="1" {if $choice==1}checked {/if}/>
<label class="btn btn-default btn-xs" for="i-choice-{$k}" title="{_('Vote ifneedbe for ')} . $radio_title[$k] . '">{* TODO Replace $radio_title *}
(<span class="glyphicon glyphicon-ok"></span>)<span class="sr-only">{_('Ifneedbe')}</span>
<label class="btn btn-default btn-xs" for="i-choice-{$k}" title="{__('Poll results\\Vote ifneedbe for')|html} {$slots_raw[$k]}">
(<span class="glyphicon glyphicon-ok"></span>)<span class="sr-only">{__('Generic\\Ifneedbe')}</span>
</label>
</li>
<li class="no">
<input type="radio" id="n-choice-{$k}" name="choices[{$k}]" value="0" {if $choice==0}checked {/if}/>
<label class="btn btn-default btn-xs" for="n-choice-{$k}" title="{_('Vote no for ')} . $radio_title[$k] . '">{* TODO Replace $radio_title *}
<span class="glyphicon glyphicon-ban-circle"></span><span class="sr-only">{_('No')}</span>
<label class="btn btn-default btn-xs" for="n-choice-{$k}" title="{__('Poll results\\Vote no for')|html} {$slots_raw[$k]}">
<span class="glyphicon glyphicon-ban-circle"></span><span class="sr-only">{__('Generic\\No')}</span>
</label>
</li>
</ul>
</td>
{/foreach}
<td style="padding:5px"><button type="submit" class="btn btn-success btn-xs" name="save" value="{$vote->id|html}" title="{_('Save the choices')} {$vote->name|html}">{_('Save')}</button></td>
<td style="padding:5px"><button type="submit" class="btn btn-success btn-xs" name="save" value="{$vote->id|html}" title="{__('Poll results\\Save the choices')} {$vote->name|html}">{__('Generic\\Save')}</button></td>
{else}
{* Voted line *}
@ -123,23 +125,23 @@
{foreach $vote->choices as $k=>$choice}
{if $choice==2}
<td class="bg-success text-success" headers="M{$headersM[$k]} D{$headersD[$k]} H{$k}"><span class="glyphicon glyphicon-ok"></span><span class="sr-only">{_('Yes')}</span></td>
<td class="bg-success text-success" headers="M{$headersM[$k]} D{$headersD[$k]} H{$k}"><span class="glyphicon glyphicon-ok"></span><span class="sr-only">{__('Generic\\Yes')}</span></td>
{elseif $choice==1}
<td class="bg-warning text-warning" headers="M{$headersM[$k]} D{$headersD[$k]} H{$k}">(<span class="glyphicon glyphicon-ok"></span>)<span class="sr-only">{_('Ifneedbe')}</span></td>
<td class="bg-warning text-warning" headers="M{$headersM[$k]} D{$headersD[$k]} H{$k}">(<span class="glyphicon glyphicon-ok"></span>)<span class="sr-only">{__('Generic\\Ifneedbe')}</span></td>
{else}
<td class="bg-danger" headers="M{$headersM[$k]} D{$headersD[$k]} H{$k}"><span class="sr-only">{_('No')}</span></td>
<td class="bg-danger" headers="M{$headersM[$k]} D{$headersD[$k]} H{$k}"><span class="sr-only">{__('Generic\\No')}</span></td>
{/if}
{/foreach}
{if $active && $poll->editable && !$expired}
<td>
<button type="submit" class="btn btn-link btn-sm" name="edit_vote" value="{$vote->id|html}" title="{_('Edit the line:')} {$vote->name|html}">
<span class="glyphicon glyphicon-pencil"></span><span class="sr-only">{_('Edit')}</span>
<button type="submit" class="btn btn-link btn-sm" name="edit_vote" value="{$vote->id|html}" title="{__('Poll results\\Edit the line:')} {$vote->name|html}">
<span class="glyphicon glyphicon-pencil"></span><span class="sr-only">{__('Generic\\Edit')}</span>
</button>
{if $admin}
<button type="submit" class="btn btn-link btn-sm" name="delete_vote" value="{$vote->id|html}" title="{_('Remove the line:')} {$vote->name|html}">
<span class="glyphicon glyphicon-remove text-danger"></span><span class="sr-only">{_('Remove')}</span>
<button type="submit" class="btn btn-link btn-sm" name="delete_vote" value="{$vote->id|html}" title="{__('Poll results\\Remove the line:')} {$vote->name|html}">
<span class="glyphicon glyphicon-remove text-danger"></span><span class="sr-only">{__('Generic\\Remove')}</span>
</button>
{/if}
</td>
@ -157,7 +159,7 @@
<td class="bg-info" style="padding:5px">
<div class="input-group input-group-sm">
<span class="input-group-addon"><span class="glyphicon glyphicon-user"></span></span>
<input type="text" id="name" name="name" class="form-control" title="{_('Your name')}" placeholder="{_('Your name')}" />
<input type="text" id="name" name="name" class="form-control" title="{__('Generic\\Your name')}" placeholder="{__('Generic\\Your name')}" />
</div>
</td>
{$i = 0}
@ -167,20 +169,20 @@
<ul class="list-unstyled choice">
<li class="yes">
<input type="radio" id="y-choice-{$i}" name="choices[{$i}]" value="2" />
<label class="btn btn-default btn-xs" for="y-choice-{$i}" title="{_('Vote yes for')} {$slot->day|date_format:$date_format.txt_short|html} - {$moment|html}">
<span class="glyphicon glyphicon-ok"></span><span class="sr-only">{_('Yes')}</span>
<label class="btn btn-default btn-xs" for="y-choice-{$i}" title="{__('Poll results\\Vote yes for')|html} {$slot->day|date_format:$date_format.txt_short|html} - {$moment|html}">
<span class="glyphicon glyphicon-ok"></span><span class="sr-only">{__('Generic\\Yes')}</span>
</label>
</li>
<li class="ifneedbe">
<input type="radio" id="i-choice-{$i}" name="choices[{$i}]" value="1" />
<label class="btn btn-default btn-xs" for="i-choice-{$i}" title="{_('Vote ifneedbe for')} {$slot->day|date_format:$date_format.txt_short|html} - {$moment|html}">
(<span class="glyphicon glyphicon-ok"></span>)<span class="sr-only">{_('Ifneedbe')}</span>
<label class="btn btn-default btn-xs" for="i-choice-{$i}" title="{__('Poll results\\Vote ifneedbe for')|html} {$slot->day|date_format:$date_format.txt_short|html} - {$moment|html}">
(<span class="glyphicon glyphicon-ok"></span>)<span class="sr-only">{__('Generic\\Ifneedbe')}</span>
</label>
</li>
<li class="no">
<input type="radio" id="n-choice-{$i}" name="choices[{$i}]" value="0" checked/>
<label class="btn btn-default btn-xs" for="n-choice-{$i}" title="{_('Vote no for')} {$slot->day|date_format:$date_format.txt_short|html} - {$moment|html}">
<span class="glyphicon glyphicon-ban-circle"></span><span class="sr-only">{_('No')}</span>
<label class="btn btn-default btn-xs" for="n-choice-{$i}" title="{__('Poll results\\Vote no for')|html} {$slot->day|date_format:$date_format.txt_short|html} - {$moment|html}">
<span class="glyphicon glyphicon-ban-circle"></span><span class="sr-only">{__('Generic\\No')}</span>
</label>
</li>
</ul>
@ -188,7 +190,7 @@
{$i = $i+1}
{/foreach}
{/foreach}
<td><button type="submit" class="btn btn-success btn-md" name="save" title="{_('Save the choices')}">{_('Save')}</button></td>
<td><button type="submit" class="btn btn-success btn-md" name="save" title="{__('Poll results\\Save the choices')}">{__('Generic\\Save')}</button></td>
</tr>
{/if}
@ -197,13 +199,15 @@
{$max = max($best_choices)}
{if $max > 0}
<tr id="addition">
<td>{_("Addition")}</td>
<td>{__('Poll results\\Addition')}</td>
{foreach $best_choices as $best_moment}
{if $max == $best_moment}
{$count_bests = $count_bests +1}
<td><i class="glyphicon glyphicon-star text-warning"></i>{$best_moment|html}</td>
{else}
{elseif $best_moment > 0}
<td>{$best_moment|html}</td>
{else}
<td></td>
{/if}
{/foreach}
</tr>
@ -219,13 +223,13 @@
{if $max > 0}
<div class="row">
{if $count_bests == 1}
<div class="col-sm-12"><h3>{_('Best choice')}</h3></div>
<div class="col-sm-12"><h3>{__('Poll results\\Best choice')}</h3></div>
<div class="col-sm-6 col-sm-offset-3 alert alert-success">
<p><span class="glyphicon glyphicon-star text-warning"></span>{_('The best choice at this time is:')}</p>
<p><span class="glyphicon glyphicon-star text-warning"></span>{__('Poll results\\The best choice at this time is:')}</p>
{elseif $count_bests > 1}
<div class="col-sm-12"><h3>{_('Best choices')}</h3></div>
<div class="col-sm-12"><h3>{__('Poll results\\Best choices')}</h3></div>
<div class="col-sm-6 col-sm-offset-3 alert alert-success">
<p><span class="glyphicon glyphicon-star text-warning"></span>{_('The bests choices at this time are:')}</p>
<p><span class="glyphicon glyphicon-star text-warning"></span>{__('Poll results\\The bests choices at this time are:')}</p>
{/if}
@ -240,7 +244,7 @@
{/foreach}
{/foreach}
</ul>
<p>{_('with')} <b>{$max|html}</b> {if $max==1}{_('vote')}{else}{_('votes')}{/if}.</p>
<p>{__('Generic\\with')} <b>{$max|html}</b> {if $max==1}{__('Generic\\vote')}{else}{__('Generic\\votes')}{/if}.</p>
</div>
</div>
{/if}

View File

@ -2,7 +2,7 @@
{block name=main}
<div class="alert alert-success text-center">
<h2>{_("Your poll has been removed!")}</h2>
<p>{_('Back to the homepage of')} <a href="{$SERVER_URL|html}">{$APPLICATION_NAME|html}</a></p>
<h2>{__('adminstuds\\The poll has been deleted')}</h2>
<p>{__('Generic\\Back to the homepage of')} <a href="{$SERVER_URL|html}">{$APPLICATION_NAME|html}</a></p>
</div>
{/block}

View File

@ -13,8 +13,8 @@
{* Information about voting *}
{if $expired}
<div class="alert alert-danger">
<p>{_('The poll is expired, it will be deleted soon.')}</p>
<p>{_('Deletion date:')} {$deletion_date|date_format:$date_format['txt_short']|html}</p>
<p>{__('studs\\The poll is expired, it will be deleted soon.')}</p>
<p>{__('studs\\Deletion date:')} {$deletion_date|date_format:$date_format['txt_short']|html}</p>
</div>
{else}
{if $admin}
@ -28,10 +28,10 @@
<div class="hidden row scroll-buttons" aria-hidden="true">
<div class="btn-group pull-right">
<button class="btn btn-sm btn-link scroll-left" title="{_('Scroll to the left')}">
<button class="btn btn-sm btn-link scroll-left" title="{__('Poll results\\Scroll to the left')}">
<span class="glyphicon glyphicon-chevron-left"></span>
</button>
<button class="btn btn-sm btn-link scroll-right" title="{_('Scroll to the right')}">
<button class="btn btn-sm btn-link scroll-right" title="{__('Poll results\\Scroll to the right')}">
<span class="glyphicon glyphicon-chevron-right"></span>
</button>
</div>