diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index ec8f868..8ba26c7 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,20 +1,14 @@
-image: php
+image: framasoft/framadate-ci
stages:
- test
- deploy
- funky
-# install zip, git, composer on each build
-before_script:
- - apt-get update -yqq
- - apt-get install zip unzip git -yqq
-
# Run php-cs-fixer and phpunit on all branches
test:
stage: test
script:
- - curl --silent --show-error https://getcomposer.org/installer | php
- - php composer.phar install -o --no-interaction --no-progress --prefer-dist
+ - composer install -o --no-interaction --no-progress --prefer-dist
- mkdir tpl_c
- php vendor/bin/php-cs-fixer fix --verbose --dry-run
- vendor/bin/phpunit --bootstrap app/tests/bootstrap.php --debug app/tests
@@ -28,10 +22,8 @@ pages:
script:
- latesttag=$(git describe --tags)
- git checkout ${latesttag}
- - curl --silent --show-error https://getcomposer.org/installer | php
- - php composer.phar install -o --no-interaction --no-progress --prefer-dist --no-dev
- - php composer.phar dump-autoload --optimize --no-dev --classmap-authoritative
- - rm -rf composer.phar
+ - composer install -o --no-interaction --no-progress --prefer-dist --no-dev
+ - composer dump-autoload --optimize --no-dev --classmap-authoritative
- mkdir tpl_c
- mkdir framadate
- mv `ls -A | grep -v framadate` ./framadate
@@ -50,8 +42,7 @@ funky:
stage: funky
script:
- git checkout funky
- - curl --silent --show-error https://getcomposer.org/installer | php
- - php composer.phar install
+ - composer install
- mkdir tpl_c
- mkdir .public
- cp -r * .public
diff --git a/.po2json.sh b/.po2json.sh
index c39517e..2ff9045 100755
--- a/.po2json.sh
+++ b/.po2json.sh
@@ -1,7 +1,9 @@
#!/bin/bash
+po2json -i po/en.po -t locale/en.json --progress none -o po/default.json
+
for i in po/*.po
do
j=$(echo $i | cut -d '.' -f 1 | cut -d '/' -f 2)
po2json -i $i -t locale/en.json --progress none | ./.renest_json.pl > po/$j.json
+ mv po/$j.json locale/
done
-mv po/*.json locale/
diff --git a/.renest_json.pl b/.renest_json.pl
index 55bf8d1..2c72278 100755
--- a/.renest_json.pl
+++ b/.renest_json.pl
@@ -3,10 +3,20 @@ use strict;
use warnings;
use JSON;
-#use Hash::Merge::Simple qw(merge);
my $json = JSON->new->utf8->space_before(0)->space_after(1)->indent(4)->canonical(1);
+my $en_file = 'po/default.json';
+my $en;
+{
+ open my $fh, '<', $en_file or die;
+ local $/ = undef;
+ $en = <$fh>;
+ close $fh;
+}
+
+$en = $json->decode($en);
+
my $new_json = {};
my $old_json = '';
@@ -20,7 +30,11 @@ for my $key (keys %{$old_json}) {
my $real_key = substr($key, 0, $index++);
my $trad_key = substr($key, $index);
- $new_json->{$real_key}->{$trad_key} = $old_json->{$key} if $old_json->{$key};
+ if ($old_json->{$key}) {
+ $new_json->{$real_key}->{$trad_key} = $old_json->{$key};
+ } else {
+ $new_json->{$real_key}->{$trad_key} = $en->{$key};
+ }
}
print $json->encode($new_json);
diff --git a/INSTALL.md b/INSTALL.md
index 842db32..9fb9b3a 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -1,107 +1 @@
-# Pré-requis
-- Apache
-- MySQL ou PostgreSQL
-- PHP 5.6+
-- [Composer](https://getcomposer.org/)
-
-# Pré-installation
-
-## Composer
-
-Pour installer les dépendances nécessaires au bon fonctionnement du projet, vous devez lancer la commande suivante :
-
-```sh
- composer install
-```
-
-## Base de données
-
-Framadate fonctionne indépendemment de la base SQL utilisée.
-
-Cependant la base de donnée doit être créée au préalable,
-après avoir renseigné les paramètres de la base de données, créez la.
-
-### PostgreSQL
-
-```bash
- su - pgsql
- createdb framadate
-```
-
-Attention : Si vous créez la base de données avec l'utilisateur "pgsql",
-il vous faudra faire un "grant all on
Framasoft lives only by your donations.
Thank you in advance for your support https://soutenir.framasoft.org",
+ "For sending to the polled users": "Participant link",
+ "Notification of poll: %s": "Notification of poll: %s",
+ "Poll's participation: %s": "Poll participation: %s",
+ "Someone just change your poll available at the following link %s.": "Someone just changed your poll at the following link %1$s.",
+ "Someone just delete your poll %s.": "Someone just deleted your poll \"%s\".",
+ "Thanks for filling the poll at the link above": "Please fill in the poll at the link above",
+ "Thanks for your trust.": "شكرا لك على ثقتك.",
+ "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 to forward to the poll participants.",
+ "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 poll participants. You should keep it private.
You can modify your poll at the link above",
+ "You have changed the settings of your poll. \nYou can modify this poll with this link": "You have changed the settings of your poll.
You can modify this poll with this link",
+ "[ADMINISTRATOR] New settings for your poll": "[ADMINISTRATOR] New settings for your poll",
+ "filled a vote.\nYou can find your poll at the link": "added a vote.
You can visit your poll at the link",
+ "hast just created a poll called": "has just created a poll called",
+ "updated a vote.\nYou can find your poll at the link": "updated a vote.
You can visit your poll at the link",
+ "wrote a comment.\nYou can find your poll at the link": "wrote a comment.
You can visit your poll at the link"
+ },
+ "Maintenance": {
+ "Thank you for your understanding.": "نشكرك على تفهمك.",
+ "The application": "التطبيق",
+ "is currently under maintenance.": "حاليا تجرى عليها عملية صيانة."
+ },
+ "Password": {
+ "Password": "كلمة السر",
+ "Submit access": "Submit access",
+ "Wrong password": "كلمة السر خاطئة",
+ "You have to provide a password so you can participate to the poll.": "You have to provide a password so you can participate to the poll.",
+ "You have to provide a password to access the poll.": "You have to provide a password to access the poll."
+ },
+ "Poll results": {
+ "Addition": "العدد الإجمالي",
+ "Best choice": "Best choice",
+ "Best choices": "Best choices",
+ "Chart": "المنحنى البياني",
+ "Display the chart of the results": "عرض المنحنى البياني للنتائج",
+ "Edit the line: %s": "Edit line: %s",
+ "Remove the line:": "Remove line:",
+ "Save the choices": "Save choices",
+ "Scroll to the left": "Scroll to the left",
+ "Scroll to the right": "Scroll to the right",
+ "The best choice at this time is:": "The current best choice is:",
+ "The bests choices at this time are:": "The current best choices are:",
+ "Vote ifneedbe for": "Vote \"ifneedbe\" for",
+ "Vote no for": "Vote \"no\" for",
+ "Vote yes for": "Vote \"yes\" for",
+ "Votes of the poll": "الأصوات",
+ "polled user": "polled user",
+ "polled users": "polled users"
+ },
+ "PollInfo": {
+ "Admin link of the poll": "Admin link for the poll",
+ "Cancel the description edit": "Cancel the description edit",
+ "Cancel the email address edit": "Cancel the email address edit",
+ "Cancel the expiration date edit": "Cancel the expiration date edit",
+ "Cancel the name edit": "Cancel the name edit",
+ "Cancel the rules edit": "Cancel the rules edit",
+ "Cancel the title edit": "Cancel the title edit",
+ "Edit the description": "تعديل الوصف",
+ "Edit the email adress": "تعديل عنوان البريد الإلكتروني",
+ "Edit the expiration date": "تعديل تاريخ النهاية",
+ "Edit the name": "تعديل الإسم",
+ "Edit the poll rules": "Edit the poll rules",
+ "Edit the title": "تعديل العنوان",
+ "Email": "البريد الإلكتروني",
+ "Expiration date": "Expiry date",
+ "Export to CSV": "Export to CSV",
+ "Initiator of the poll": "Creator of the poll",
+ "No password": "No password",
+ "Only votes are protected": "Only votes are protected",
+ "Password protected": "Password protected",
+ "Poll rules": "Poll rules",
+ "Print": "طباعة",
+ "Public link of the poll": "Public link to the poll",
+ "Remove all the comments": "إزالة كافة التعليقات",
+ "Remove all the votes": "إزالة كافة التصويتات",
+ "Remove password": "Remove password",
+ "Remove the poll": "حذف إستطلاع الرأي",
+ "Results are hidden": "النتائج مخفية",
+ "Results are visible": "Results are visible",
+ "Rich editor": "Rich editor",
+ "Save the description": "حفظ الوصف",
+ "Save the email address": "حفظ عنوان البريد الإلكتروني",
+ "Save the new expiration date": "Save the new expiration date",
+ "Save the new name": "حفظ الإسم الجديد",
+ "Save the new rules": "حفظ القواعد الجديدة",
+ "Save the new title": "حفظ العنوان الجديد",
+ "Simple editor": "محرر بسيط",
+ "Title": "عنوان موضوع إستطلاع الرأي",
+ "Votes and comments are locked": "Votes and comments are locked",
+ "Votes protected by password": "Votes protected by password"
+ },
+ "Step 1": {
+ "All voters can modify any vote": "All voters can modify any vote",
+ "Customize the URL": "Customize the URL",
+ "Go to step 2": "الإنتقال إلى الخطوة 2",
+ "Limit the ammount of voters per option": "Limit the amount of voters per option",
+ "More informations here:": "المزيد من التفاصيل هنا :",
+ "Only the poll maker can see the poll's results": "Only the poll maker can see the poll results",
+ "Optional parameters": "Optional parameters",
+ "Password choice": "Choice",
+ "Password confirmation": "Confirmation",
+ "Permissions": "التصريحات",
+ "Poll creation (1 on 3)": "Poll creation (1 of 3)",
+ "Poll id": "رابط إستطلاع الرأي",
+ "Poll id rules": "The identifier can contain letters, numbers and dashes \"-\".",
+ "Poll id warning": "By defining an identifier that can facilitate access to the poll for unwanted people. It is recommended to protect it with a password.",
+ "Poll password": "كلمة السر",
+ "Poll title": "عنوان موضوع إستطلاع الرأي",
+ "Required fields cannot be left blank.": "لا يجب أن تترك الحقول فارغة.",
+ "The results are publicly visible": "The results are publicly visible",
+ "To make the description more attractive, you can use the Markdown format.": "To make the description more attractive, you can use the Markdown format.",
+ "To receive an email for each new comment": "Receive an email for each new comment",
+ "To receive an email for each new vote": "Receive an email for each new vote",
+ "Use a password to restrict access": "Use a password to restrict access",
+ "Value Max": "Value Max",
+ "ValueMax instructions": "voters per options ",
+ "Voters can modify their vote themselves": "Voters can modify their vote themselves",
+ "Votes cannot be modified": "Votes cannot be modified",
+ "You are in the poll creation section.": "You are in the poll creation section.",
+ "You can enable or disable the editor at will.": "You can enable or disable the editor at will."
+ },
+ "Step 2": {
+ "Back to step 1": "العودة إلى المرحلة 1",
+ "Go to step 3": "الإنتقال إلى الخطوة 3"
+ },
+ "Step 2 classic": {
+ "Add a choice": "إضافة خيار",
+ "Add a link or an image": "إضافة رابط أو صورة",
+ "Alternative text": "نص بديل",
+ "It's possible to propose links or images by using": "Links or images can be included using",
+ "Poll subjects (2 on 3)": "Poll options (2 of 3)",
+ "Remove a choice": "حذف خيار",
+ "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.",
+ "To make a generic poll you need to propose at least two choices between differents subjects.": "To create a poll you should provide at least two different choices.",
+ "URL of the image": "عنوان رابط الصورة",
+ "You can add or remove additional choices with the buttons": "بإمكانك إضافة أو حذف خيارات بالنقر على الأزرار",
+ "the Markdown syntax": "Markdown syntax"
+ },
+ "Step 2 date": {
+ "Add a day": "إضافة يوم",
+ "Add an hour": "إضافة مدة زمنية",
+ "Choose the dates of your poll": "إختر تواريخ إستطلاع الرأي",
+ "Copy hours of the first day": "Copy times from the first day",
+ "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 are free to suggest meeting times (e.g., \"8h\", \"8:30\", \"8h-10h\", \"evening\", etc.)",
+ "Poll dates (2 on 3)": "Poll dates (2 of 3)",
+ "Remove a day": "Remove a day",
+ "Remove all days": "Remove all days",
+ "Remove all hours": "Remove all times",
+ "Remove an hour": "Remove a time slot",
+ "Remove this day": "Remove this day",
+ "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 provide at least two choices (e.g., two time slots on one day or two days).",
+ "You can add or remove additionnal days and hours with the buttons": "You can add or remove additional days and times with the buttons"
+ },
+ "Step 3": {
+ "Archiving date:": "Expiry date:",
+ "Back to step 2": "Back to step 2",
+ "Confirm the creation of your poll": "Confirm the creation of your poll",
+ "Create the poll": "Create the poll",
+ "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 automatically be redirected to the poll's administration page.",
+ "Removal date and confirmation (3 on 3)": "Removal date and confirmation (3 of 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.": "Then you will receive two emails: one containing the link of your poll for sending to the participants, the other containing the link to the poll administration page.",
+ "You can set a closer archiving date for it.": "You can set a specific expiry date for the poll.",
+ "Your poll will automatically be archived": "Your poll will automatically be archived",
+ "Your poll will be automatically archived in %d days.": "Your poll will be automatically archived in %d days.",
+ "after the last date of your poll.": "after the last date of your poll."
+ },
+ "adminstuds": {
+ "Add a column": "إضافة عمود",
+ "All comments deleted": "تم حذف كافة التعليقات",
+ "All votes deleted": "تم حذف كافة الأصوات",
+ "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",
+ "Back to the poll": "العودة إلى إستطلاع الرأي",
+ "Choice added": "Choice added",
+ "Column removed": "تم حذف العمود",
+ "Column's adding": "Adding a column",
+ "Comment deleted": "تم حذف التعليق",
+ "Confirm removal of all comments of the poll": "Confirm removal of all comments",
+ "Confirm removal of all votes of the poll": "Confirm removal of all votes",
+ "Confirm removal of the column.": "Confirm removal of the column.",
+ "Confirm removal of the poll": "Confirm removal of your poll",
+ "Delete the poll": "حذف إستطلاع الرأي",
+ "Finally, you can change the informations of this poll like the title, the comments or your email address.": "Finally, you can change the properties of this poll such as the title, the comments or your email address.",
+ "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 time slot to an existing date, add that date here and choose a new time slot.",
+ "Keep comments": "الإحتفاظ بالتعليقات",
+ "Keep the comments": "الإحتفاظ بالتعليقات",
+ "Keep the poll": "الإحتفاظ باستطلاع الرأي",
+ "Keep the votes": "الإحتفاظ على الأصوات",
+ "Keep this poll": "Keep this poll",
+ "Keep votes": "Keep votes",
+ "Poll fully deleted": "تم حذف إستطلاع الرأي بالكامل",
+ "Poll saved": "تم حفظ إستطلاع الرأي",
+ "Remove the column": "حذف عمود",
+ "Remove the comments": "إزالة التعليقات",
+ "Remove the votes": "حذف الأصوات",
+ "Vote added": "Vote added",
+ "Vote deleted": "Vote deleted",
+ "Vote updated": "تم تحديث التصويت",
+ "You can add a new scheduling date to your poll.": "You can add a new scheduling date to your poll.",
+ "Your poll has been removed!": "Your poll has been removed!",
+ "and add a new column with": "and add a new column with",
+ "remove a column or a line with": "remove a column or a line with"
+ },
+ "studs": {
+ "Adding the vote succeeded": "Vote added",
+ "Deletion date:": "Deletion date:",
+ "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, make your choice, and submit it with the plus button at the end of the line.",
+ "POLL_LOCKED_WARNING": "The administrator 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 has expired, it will soon be deleted.",
+ "Update vote succeeded": "Vote updated",
+ "Your vote has been registered successfully, but be careful: regarding this poll options, you need to keep this personal link to edit your own vote:": "Your vote has been saved, but please note: you need to keep this personalised link to be able to edit your vote."
+ }
+}
diff --git a/locale/br.json b/locale/br.json
index 4d2b288..01ca765 100644
--- a/locale/br.json
+++ b/locale/br.json
@@ -123,7 +123,11 @@
"Enter a title": "Ret eo enankañ un titl!",
"Enter an email address": "Ret eo enankañ ur chomlec'h postel",
"Error!": "Fazi!",
+ "Failed to delete all comments": "Failed to delete all comments",
+ "Failed to delete all votes": "Failed to delete all votes",
"Failed to delete column": "C'hwitadenn war zilemel ar bann",
+ "Failed to delete the comment": "Failed to delete the comment",
+ "Failed to delete the poll": "Failed to delete the poll",
"Failed to delete the vote!": "C'hwitadenn en ur zilemel ar vouezh!",
"Failed to insert the comment!": "C'hwitadenn en ur enlakaat an evezhiadenn!",
"Failed to save poll": "C'hwitadenn war enrolladenn ar sontadeg",
@@ -176,6 +180,7 @@
"Day": "Devezh",
"Description": "Deskrivadur",
"Edit": "Modify",
+ "Framadate is an online service for planning an appointment or make a decision quickly and easily.": "Ur gwazerezh enlinenn evit prientiñ un emgav pe kemer un diviz a-stroll en un doare eeun hag aes eo Framadate. ",
"Home": "Degemer",
"Ifneedbe": "Marteze",
"Legend:": "Alc'hwez:",
@@ -323,6 +328,7 @@
"All voters can modify any vote": "An holl vouezhierien a c'hall kemmañ an holl vouezhioù",
"Customize the URL": "Personelaat an ere",
"Go to step 2": "Mont d'ar bazenn 2",
+ "Limit the ammount of voters per option": "Limit the amount of voters per option",
"More informations here:": "Titouroù ouzhpenn amañ:",
"Only the poll maker can see the poll's results": "N'eus nemet krouer ar sontadeg a c'hell gwelet an disoc'hoù",
"Optional parameters": "Arventennoù diret",
@@ -341,6 +347,8 @@
"To receive an email for each new comment": "Degemer ur postel evit pep evezhiadenn nevez",
"To receive an email for each new vote": "Degemer ur postel evit pep mouezh nevez",
"Use a password to restrict access": "Lakaat ur ger-tremen evit bevenniñ an haeziñ",
+ "Value Max": "Value Max",
+ "ValueMax instructions": "voters per options ",
"Voters can modify their vote themselves": "Pep mouezhier a c'hell kemmañ e vouezh",
"Votes cannot be modified": "N'hall ket ar mouezhioù bezañ kemmet",
"You are in the poll creation section.": "Dibabet ho peus krouiñ ur sontadeg nevez.",
diff --git a/locale/de.json b/locale/de.json
index cadcc27..281e4ad 100644
--- a/locale/de.json
+++ b/locale/de.json
@@ -3,11 +3,11 @@
"Define dates or subjects to choose": "Zeitpunkte oder andere Alternativen zur Auswahl stellen",
"Discuss and make a decision": "Besprechen und Entscheidungen treffen",
"Do you want to": "Wollen Sie sich",
- "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, der Ihnen bei der Absprache von Terminen oder der Entscheidungsfindung hilft. Es ist keinerlei Registrierung ist erforderlich. ",
- "Here is how it works:": "So geht es:",
+ "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, der Ihnen bei der Absprache von Terminen oder der Entscheidungsfindung hilft. Es ist keinerlei Registrierung erforderlich.",
+ "Here is how it works:": "So funktioniert es:",
"Make a poll": "Umfrage erstellen",
"Send the poll link to your friends or colleagues": "Link zur Umfrage an Ihre Freunde oder Kollegen schicken",
- "What is that?": "Was ist das?",
+ "What is that?": "Was ist Framadate?",
"view an example?": "ein Beispiel ansehen?"
},
"2nd section": {
@@ -15,7 +15,7 @@
"Framadate was initially based on ": "Framadate basierte zunächst auf ",
"It is governed by the": "Sie ist lizenziert unter der",
"The software": "Die Software",
- "This software needs javascript and cookies enabled. It is compatible with the following web browsers:": "Javascript und Cookie aktiviert sein, damit Framadate funktioniert. Die Software ist mit den folgenden Browsern kompatibel:",
+ "This software needs javascript and cookies enabled. It is compatible with the following web browsers:": "Javascript und Cookies müssen aktiviert sein, damit Framadate funktioniert. Die Software ist mit den folgenden Browsern kompatibel:",
"a software developed by the University of Strasbourg. Today, it is devevoped by the association Framasoft.": ", einer von der Universität von Straßburg entwickelten Software. Heute wird sie vom Verein Framasoft weiterentwickelt."
},
"3rd section": {
@@ -123,7 +123,11 @@
"Enter a title": "Titel eingeben",
"Enter an email address": "Geben Sie eine E-Mail Adresse ein",
"Error!": "Fehler!",
+ "Failed to delete all comments": "Alle kommentare konnten nicht gelöscht werden.",
+ "Failed to delete all votes": "Alle stimmen konnten nicht gelöscht werden.",
"Failed to delete column": "Löschen der Spalte fehlgeschlagen",
+ "Failed to delete the comment": "Der kommentar konnte nicht gelöscht werden.",
+ "Failed to delete the poll": "Die umfrage konnte nicht gelöscht werden.",
"Failed to delete the vote!": "Löschen der Wertung gescheitert!",
"Failed to insert the comment!": "Einfügen des Kommentars gescheitert!",
"Failed to save poll": "Speichern der Umfrage fehlgeschlagen",
@@ -176,6 +180,7 @@
"Day": "Tag",
"Description": "Beschreibung",
"Edit": "Bearbeiten",
+ "Framadate is an online service for planning an appointment or make a decision quickly and easily.": "Framadate ist ein Online-Dienst, der Ihnen bei der Absprache von Terminen oder der Entscheidungsfindung hilft.",
"Home": "Startseite",
"Ifneedbe": "Wenn notwendig",
"Legend:": "Legende:",
@@ -232,12 +237,12 @@
"For sending to the polled users": "Nachricht für die Teilnehmer",
"Notification of poll: %s": "Mitteilung bezüglich der Umfrage: %s",
"Poll's participation: %s": "Beteiligung an der Umfrage: %s",
- "Someone just change your poll available at the following link %s.": "Jemand hat gerade Ihre Umfrage auf %s geändert.",
+ "Someone just change your poll available at the following link %s.": "Jemand hat gerade Ihre Umfrage auf %1$s geändert.",
"Someone just delete your poll %s.": "Jemand hat gerade Ihre Umfrage auf %s gelöscht.",
"Thanks for filling the poll at the link above": "Danke, dass Sie die Umfrage unter dem obigen Link ausgefüllt haben",
"Thanks for your trust.": "Danke für Ihr Vertrauen.",
- "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 Nachricht an die Leute, die Sie zur Abstimmung bitten.
Schicken Sie sie an alle, die Sie zur Teilnahme aufrufen möchten.",
- "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 an die befragten Personen gesendet werden. Sie richtet sich einzig an den Autor der Umfrage. Sie können sie jetzt über den oben genannten Link abä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 Nachricht an die Leute, die Sie zur Abstimmung bitten.",
+ "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 an die befragten Personen gesendet werden. Sie sollten sie für sich behalten.
Sie können Ihre Umfrage über den oben genannten Link abändern",
"You have changed the settings of your poll. \nYou can modify this poll with this link": "Sie haben die Einstellungen Ihrer Umfrage verändert.
Sie können diese Umfrage über diesen Link ändern",
"[ADMINISTRATOR] New settings for your poll": "[ADMINISTRATOR] Neue Einstellungen für Ihre Umfrage ",
"filled a vote.\nYou can find your poll at the link": "hat abgestimmt.
Sie finden Ihre Umfrage über den Link",
@@ -323,6 +328,7 @@
"All voters can modify any vote": "Jeder Teilnehmer kann jede abgegebene Wertung ändern",
"Customize the URL": "Link anpassen",
"Go to step 2": "Weiter zum 2. Schritt",
+ "Limit the ammount of voters per option": "Begrenzung der anzahl der aähler pro option",
"More informations here:": "DE_Plus d'informations ici :",
"Only the poll maker can see the poll's results": "Einzig der Autor der Abstimmung kann die Ergebnisse einsehen",
"Optional parameters": "Optionale Einstellungen",
@@ -341,6 +347,8 @@
"To receive an email for each new comment": "Bei jedem neuen Kommentar eine E-Mail erhalten",
"To receive an email for each new vote": "Bei jeder neuen Wertung eine E-Mail erhalten",
"Use a password to restrict access": "Verwende ein Passwort um den Zugriff zu beschänken",
+ "Value Max": "Wert Max",
+ "ValueMax instructions": "wähler pro option ",
"Voters can modify their vote themselves": "Teilnehmer können ihre Wertungen verändern",
"Votes cannot be modified": "Wertungen können nicht verändert werden",
"You are in the poll creation section.": "Hier erstellen Sie die Umfrage",
diff --git a/locale/en.json b/locale/en.json
index 3689697..1d23cb8 100644
--- a/locale/en.json
+++ b/locale/en.json
@@ -180,6 +180,7 @@
"Day": "Day",
"Description": "Description",
"Edit": "Edit",
+ "Framadate is an online service for planning an appointment or make a decision quickly and easily.": "Framadate is an online service for planning an appointment or make a decision quickly and easily.",
"Home": "Home",
"Ifneedbe": "Ifneedbe",
"Legend:": "Legend:",
@@ -327,7 +328,7 @@
"All voters can modify any vote": "All voters can modify any vote",
"Customize the URL": "Customize the URL",
"Go to step 2": "Go to step 2",
- "Limit the ammount of voters per option": "Limit the ammount of voters per option",
+ "Limit the ammount of voters per option": "Limit the amount of voters per option",
"More informations here:": "More informations here:",
"Only the poll maker can see the poll's results": "Only the poll maker can see the poll results",
"Optional parameters": "Optional parameters",
diff --git a/locale/es.json b/locale/es.json
index 7e9c02b..c47caa9 100644
--- a/locale/es.json
+++ b/locale/es.json
@@ -123,7 +123,11 @@
"Enter a title": "Introducza un título",
"Enter an email address": "Introduzca un correo electrónico",
"Error!": "¡Error!",
+ "Failed to delete all comments": "No se han eliminado todos los comentarios",
+ "Failed to delete all votes": "No se han eliminado todos los votos",
"Failed to delete column": "Error al eliminar la columna",
+ "Failed to delete the comment": "No se ha podido eliminar el comentario",
+ "Failed to delete the poll": "No se borró la encuesta",
"Failed to delete the vote!": "Error al borrar el voto",
"Failed to insert the comment!": "Error al crear el comentario",
"Failed to save poll": "Error al guardar la encuesta",
@@ -176,6 +180,7 @@
"Day": "Día",
"Description": "Descripción",
"Edit": "Cambio",
+ "Framadate is an online service for planning an appointment or make a decision quickly and easily.": "Framadate es un servicio en línea que permite planificar un encuentro o tomar decisiones rapidamente y de manera sencilla.",
"Home": "Inicio",
"Ifneedbe": "En caso de ser necesario",
"Legend:": "Leyenda:",
@@ -323,6 +328,7 @@
"All voters can modify any vote": "Los votos pueden ser modificados por cualquiera",
"Customize the URL": "ES_Personnaliser le lien",
"Go to step 2": "Ir al paso número 2",
+ "Limit the ammount of voters per option": "Limitar el número de votantes por opción",
"More informations here:": "ES_Plus d'informations ici :",
"Only the poll maker can see the poll's results": "Solo el creador de la encuesta puede ver los resultados",
"Optional parameters": "ES_Paramètres optionnels",
@@ -341,6 +347,8 @@
"To receive an email for each new comment": "Recibir un correo electrónico para cada nuevo comentario",
"To receive an email for each new vote": "Recibir un correo electrónico para cada nuevo voto",
"Use a password to restrict access": "ES_Utiliser un mot de passe pour restreindre l'accès au sondage",
+ "Value Max": "Valor max",
+ "ValueMax instructions": "votantes por opciones ",
"Voters can modify their vote themselves": "Los votos peuden ser modificados por su autor",
"Votes cannot be modified": "Los votos no pueden ser modificados",
"You are in the poll creation section.": "Usted ha eligido crear una nueva encuesta",
diff --git a/locale/fr.json b/locale/fr.json
index 4eb501e..0e28bcd 100644
--- a/locale/fr.json
+++ b/locale/fr.json
@@ -180,6 +180,7 @@
"Day": "Jour",
"Description": "Description",
"Edit": "Modifier",
+ "Framadate is an online service for planning an appointment or make a decision quickly and easily.": "Framadate est un service en ligne permettant de planifier un rendez-vous ou prendre des décisions rapidement et simplement.",
"Home": "Accueil",
"Ifneedbe": "Si nécessaire",
"Legend:": "Légende :",
diff --git a/locale/fr_FR.json b/locale/fr_FR.json
index 4eb501e..0e28bcd 100644
--- a/locale/fr_FR.json
+++ b/locale/fr_FR.json
@@ -180,6 +180,7 @@
"Day": "Jour",
"Description": "Description",
"Edit": "Modifier",
+ "Framadate is an online service for planning an appointment or make a decision quickly and easily.": "Framadate est un service en ligne permettant de planifier un rendez-vous ou prendre des décisions rapidement et simplement.",
"Home": "Accueil",
"Ifneedbe": "Si nécessaire",
"Legend:": "Légende :",
diff --git a/locale/it.json b/locale/it.json
index c86e4ac..de4939f 100644
--- a/locale/it.json
+++ b/locale/it.json
@@ -123,8 +123,12 @@
"Enter a title": "È necessario inserire un titolo !",
"Enter an email address": "È necessario inserire un indirizzo e-mail!",
"Error!": "Errore!",
+ "Failed to delete all comments": "Impossibile eliminare tutti i commenti",
+ "Failed to delete all votes": "Impossibile eliminare tutti i voti",
"Failed to delete column": "Impossibile eliminare la colonna",
- "Failed to delete the vote!": "Failed to delete the vote!",
+ "Failed to delete the comment": "Impossibile cancellare il commento",
+ "Failed to delete the poll": "Impossibile cancellare il sondaggio",
+ "Failed to delete the vote!": "Impossibile cancellare il voto!",
"Failed to insert the comment!": "Errore nell'inserimento del commento !",
"Failed to save poll": "Errore nel salvataggio del sondaggio",
"Forbidden!": "Proibito!",
@@ -176,6 +180,7 @@
"Day": "giorni",
"Description": "Descrizione",
"Edit": "Modificare",
+ "Framadate is an online service for planning an appointment or make a decision quickly and easily.": "Framadate è un servizio online per pianificare un appuntamento o prendere una decisione velocemente e facilmente.",
"Home": "Home Page",
"Ifneedbe": "Se necessario",
"Legend:": "Legenda:",
@@ -323,6 +328,7 @@
"All voters can modify any vote": "Tutti i votanti possono cambiare tutti i voti",
"Customize the URL": "Personalizzare il link",
"Go to step 2": "Andare al punto 2",
+ "Limit the ammount of voters per option": "Limitare la quantità di elettori per opzione",
"More informations here:": "IT_Plus d'informations ici :",
"Only the poll maker can see the poll's results": "Solo il creatore sondaggio possono vedere i risultati",
"Optional parameters": "Parametri opzionali",
@@ -341,6 +347,8 @@
"To receive an email for each new comment": "Per ricevere una e-mail per ogni nuovo commento",
"To receive an email for each new vote": "Per ricevere un'email per ogni nuovo voto",
"Use a password to restrict access": "Utilizzare una passwor per limitare l'accesso al sondaggio",
+ "Value Max": "Value Max",
+ "ValueMax instructions": "elettori per opzione",
"Voters can modify their vote themselves": "I partecipanti possono modificare il loro voto in autonomia",
"Votes cannot be modified": "Nessun voto può essere modificato",
"You are in the poll creation section.": "Avete scelto di creare un nuovo sondaggio.",
diff --git a/locale/nl.json b/locale/nl.json
index b20d5a5..1c54aa5 100644
--- a/locale/nl.json
+++ b/locale/nl.json
@@ -123,7 +123,11 @@
"Enter a title": "Voer een titel in",
"Enter an email address": "Voer een emailadres in",
"Error!": "Fout!",
+ "Failed to delete all comments": "Failed to delete all comments",
+ "Failed to delete all votes": "Failed to delete all votes",
"Failed to delete column": "Kolom verwijderen mislukt",
+ "Failed to delete the comment": "Failed to delete the comment",
+ "Failed to delete the poll": "Failed to delete the poll",
"Failed to delete the vote!": "Het is niet gelukt de stem te verwijderen!",
"Failed to insert the comment!": "Het is niet gelukt om de opmerking in te voegen!",
"Failed to save poll": "Opslaan van de poll gefaald",
@@ -176,6 +180,7 @@
"Day": "dagen",
"Description": "Beschrijving",
"Edit": "Bewerk",
+ "Framadate is an online service for planning an appointment or make a decision quickly and easily.": "Framadate is een online service om snel en makkelijk een afspraak te plannen of een beslissing te nemen.",
"Home": "Home",
"Ifneedbe": "Indien nodig",
"Legend:": "Legenda:",
@@ -228,6 +233,7 @@
},
"Mail": {
"Author's message": "Bericht van de auteur",
+ "FOOTER": "\"The road is long, but the way is clear…\"
Framasoft lives only by your donations.
Thank you in advance for your support https://soutenir.framasoft.org",
"For sending to the polled users": "Link voor deelnemers",
"Notification of poll: %s": "Bericht van poll: %s",
"Poll's participation: %s": "Poll deelname: %s",
@@ -306,12 +312,14 @@
"Remove the poll": "Verwijder de poll",
"Results are hidden": "Resultaten zijn verborgen.",
"Results are visible": "Resultaten zijn zichtbaar.",
+ "Rich editor": "Rich editor",
"Save the description": "Beschrijving opslaan",
"Save the email address": "Emailadres opslaan",
"Save the new expiration date": "Nieuwe vervaldatum opslaan",
"Save the new name": "Nieuwe naam opslaan",
"Save the new rules": "Nieuwe regels opslaan",
"Save the new title": "Nieuwe titel opslaan",
+ "Simple editor": "Simple editor",
"Title": "Titel van de poll",
"Votes and comments are locked": "Stemmen en opmerkingen zijn uitgeschakeld",
"Votes protected by password": "Stemmen beveiligd met een wachtwoord"
@@ -320,6 +328,8 @@
"All voters can modify any vote": "Alle stemmers kunnen elke stem aanpassen",
"Customize the URL": "Link verpersoonlijken",
"Go to step 2": "Ga naar stap 2",
+ "Limit the ammount of voters per option": "Limit the amount of voters per option",
+ "More informations here:": "More informations here:",
"Only the poll maker can see the poll's results": "Alleen degene die de poll aangemaakt heeft kan de resultaten zien",
"Optional parameters": "Optionele parameters",
"Password choice": "Keuze",
@@ -333,12 +343,16 @@
"Poll title": "Poll titel",
"Required fields cannot be left blank.": "Verplichte velden kunnen niet leeg blijven.",
"The results are publicly visible": "De resultaten zijn zichtbaar zonder wachtwoord",
+ "To make the description more attractive, you can use the Markdown format.": "To make the description more attractive, you can use the Markdown format.",
"To receive an email for each new comment": "Ontvang een email bij elke nieuwe opmerking",
"To receive an email for each new vote": "Ontvang een email bij elke nieuwe stem",
"Use a password to restrict access": "Toegang tot poll beperken met een paswoord",
+ "Value Max": "Value Max",
+ "ValueMax instructions": "voters per options ",
"Voters can modify their vote themselves": "Stemmers kunnen hun eigen stem aanpassen",
"Votes cannot be modified": "Stemmen kunnen niet worden aangepast",
- "You are in the poll creation section.": "Je bent in het onderdeel poll aanmaken."
+ "You are in the poll creation section.": "Je bent in het onderdeel poll aanmaken.",
+ "You can enable or disable the editor at will.": "You can enable or disable the editor at will."
},
"Step 2": {
"Back to step 1": "Terug naar stap 1",
diff --git a/locale/oc.json b/locale/oc.json
index b66c3da..1b0f45a 100644
--- a/locale/oc.json
+++ b/locale/oc.json
@@ -60,9 +60,9 @@
"Check again": "Tornar verificar",
"Consider enabling the PHP extension OpenSSL for increased security.": "Mercés de pensar a activar l’extension PHP OpenSSL per milhorar la seguritat.",
"Consider setting the date.timezone in php.ini.": "Mercés de far cas a la definicion de date.timezone dins lo php.ini.",
- "Consider setting « session.cookie_httponly = 1 » inside your php.ini or add « php_value session.cookie_httponly 1 » to your .htaccess so that cookies can't be accessed through Javascript.": "Consider setting « session.cookie_httponly = 1 » inside your php.ini or add « php_value session.cookie_httponly 1 » to your .htaccess so that cookies can't be accessed through Javascript.",
+ "Consider setting « session.cookie_httponly = 1 » inside your php.ini or add « php_value session.cookie_httponly 1 » to your .htaccess so that cookies can't be accessed through Javascript.": "Agachatz de configurar « session.cookie_httponly = 1 » dins de vòstre php.ini o ajustatz « php_value session.cookie_httponly 1 » a vòstre .htaccess per empachar d’accedir als cookies amb lo Javascript.",
"Continue the installation": "Contunhar l’installacion",
- "Cookies are served from HTTP only.": "Cookies are served from HTTP only.",
+ "Cookies are served from HTTP only.": "Los cookies son pas que fornits en HTTP.",
"Installation checking": "Verificacions de l’installacion",
"OpenSSL extension loaded.": "L’extension PHP OpenSSL es cargada.",
"PHP Intl extension is enabled.": "L’extension PHP Intl es activada.",
@@ -180,6 +180,7 @@
"Day": "Jorn",
"Description": "Descripcion",
"Edit": "Modificar",
+ "Framadate is an online service for planning an appointment or make a decision quickly and easily.": "Framadate es un servici en linha que permet d’organizar un rendètz-vos o de prene de decisions rapidament e simplament.",
"Home": "Acuèlh",
"Ifneedbe": "Se cal",
"Legend:": "Legenda :",
@@ -311,14 +312,14 @@
"Remove the poll": "Suprimir lo sondatge",
"Results are hidden": "Los resultats son amagats",
"Results are visible": "Los resultats son visibles",
- "Rich editor": "Rich editor",
+ "Rich editor": "Editor avençat",
"Save the description": "Enregistrar la descripcion",
"Save the email address": "Enregistrar l’adreça",
"Save the new expiration date": "Enregistrar la data d’expiracion",
"Save the new name": "Enregistrar l’autor",
"Save the new rules": "Enregistrar las permissions novèlas",
"Save the new title": "Enregistrar lo novèl títol",
- "Simple editor": "Simple editor",
+ "Simple editor": "Editor simple",
"Title": "Títol del sondatge",
"Votes and comments are locked": "Los vòtes e comentaris son clavats",
"Votes protected by password": "Vòtes protegits per senhal"
@@ -327,7 +328,8 @@
"All voters can modify any vote": "Totes los votants pòdon modificar sos vòtes",
"Customize the URL": "Personalizar lo ligam",
"Go to step 2": "Anar a l’etapa 2",
- "More informations here:": "More informations here:",
+ "Limit the ammount of voters per option": "Limitar lo nombre de votants per opcion",
+ "More informations here:": "Mai d’informacion aquí :",
"Only the poll maker can see the poll's results": "Solament lo creator del sondatge pòt veire los resultats",
"Optional parameters": "Paramètres opcionals",
"Password choice": "Causida",
@@ -341,14 +343,16 @@
"Poll title": "Títol del sondatge",
"Required fields cannot be left blank.": "Mercés de garnir totes los formularis obligatòris, marcats amb una *.",
"The results are publicly visible": "Los resultats son visibles sens senhal",
- "To make the description more attractive, you can use the Markdown format.": "To make the description more attractive, you can use the Markdown format.",
+ "To make the description more attractive, you can use the Markdown format.": "Per dire de far venir la descripcion mai bèla, podètz utilizar la sintaxi Markdown.",
"To receive an email for each new comment": "Recebre un messatge per cada comentari",
"To receive an email for each new vote": "Recebre un messatge per cada participacion",
"Use a password to restrict access": "Emplegar un senhal per restrénher l’accès al sondatge",
+ "Value Max": "Valor maximala",
+ "ValueMax instructions": "votants per opcions",
"Voters can modify their vote themselves": "Cadun pòt modificar son pròpri vòte",
"Votes cannot be modified": "Cap de vòte pòt pas èsser modificat",
"You are in the poll creation section.": "Avètz causit de crear un sondatge novèl.",
- "You can enable or disable the editor at will.": "You can enable or disable the editor at will."
+ "You can enable or disable the editor at will.": "Podètz activar o desactivar l’editor coma volgatz."
},
"Step 2": {
"Back to step 1": "Tornar a l’etapa 1",
diff --git a/studs.php b/studs.php
index b9a30b2..f202c4a 100644
--- a/studs.php
+++ b/studs.php
@@ -57,7 +57,7 @@ $comments = [];
$logService = new LogService();
$pollService = new PollService($connect, $logService);
$inputService = new InputService();
-$mailService = new MailService($config['use_smtp']);
+$mailService = new MailService($config['use_smtp'], $config['smtp_options']);
$notificationService = new NotificationService($mailService);
$securityService = new SecurityService();
$sessionService = new SessionService();
@@ -168,7 +168,7 @@ if ($accessGranted) {
try {
$result = $pollService->addVote($poll_id, $name, $choices, $slots_hash);
if ($result) {
- if ($poll->editable === Editable::EDITABLE_BY_OWN) {
+ if (intval($poll->editable) === Editable::EDITABLE_BY_OWN) {
$editedVoteUniqueId = $result->uniqId;
$message = getMessageForOwnVoteEditableVote($sessionService, $smarty, $editedVoteUniqueId, $config['use_smtp'], $poll_id, $name);
} else {
diff --git a/tpl/page.tpl b/tpl/page.tpl
index e307e59..f04705d 100644
--- a/tpl/page.tpl
+++ b/tpl/page.tpl
@@ -23,8 +23,8 @@
- {if "en" != $locale}
-
+ {if 'en' != $locale}
+
{/if}
diff --git a/tpl/part/description_markdown.tpl b/tpl/part/description_markdown.tpl
index e2bb823..7a407df 100644
--- a/tpl/part/description_markdown.tpl
+++ b/tpl/part/description_markdown.tpl
@@ -26,9 +26,9 @@
{__('Step 1', 'More informations here:')} - http://{$locale}.wikipedia.org/wiki/Markdown + http://{$locale|locale_2_lang}.wikipedia.org/wiki/Markdown
- \ No newline at end of file + diff --git a/tpl/part/vote_table_classic.tpl b/tpl/part/vote_table_classic.tpl index 62d94e2..fd07e1d 100644 --- a/tpl/part/vote_table_classic.tpl +++ b/tpl/part/vote_table_classic.tpl @@ -101,7 +101,13 @@