parent
33de97d84f
commit
cf77be13fe
@ -0,0 +1,29 @@
|
||||
import {InitOptions} from "i18next";
|
||||
// import all namespaces (for the default language, only)
|
||||
import emailEn from "../public/locales/en/email.json";
|
||||
import emailFr from "../public/locales/fr/email.json";
|
||||
import resourceEn from "../public/locales/en/resource.json";
|
||||
import resourceFr from "../public/locales/fr/resource.json";
|
||||
|
||||
|
||||
export const defaultNS = "email";
|
||||
|
||||
export const resources = {
|
||||
en: {
|
||||
email: emailEn,
|
||||
resource: resourceEn,
|
||||
},
|
||||
fr: {
|
||||
email: emailFr,
|
||||
resource: resourceFr,
|
||||
},
|
||||
} as const;
|
||||
|
||||
|
||||
export const i18n: InitOptions = {
|
||||
// https://www.i18next.com/overview/configuration-options#logging
|
||||
debug: process.env.NODE_ENV === 'development',
|
||||
ns: ["resource", "email"],
|
||||
resources,
|
||||
defaultNS: defaultNS,
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
{{#i18n 'email.hello'}}{{/i18n}}
|
||||
|
||||
{{#i18n 'email.admin.happy'}}{{/i18n}}
|
||||
|
||||
{{#i18n 'email.admin.why'}}{{/i18n}}
|
||||
|
||||
%recipient.title%
|
||||
|
||||
{{#i18n 'email.admin.linkAdmin' }}{{/i18n}}
|
||||
|
||||
%recipient.urlAdmin%
|
||||
|
||||
{{#i18n 'email.bye'}}{{/i18n}}
|
||||
|
||||
{{#i18n 'common.better-vote'}}{{/i18n}}
|
@ -1,218 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title></title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<style type="text/css">
|
||||
/* FONTS */
|
||||
@media screen {
|
||||
@font-face {
|
||||
font-family: 'Lato';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Lato Regular'), local('Lato-Regular'), url(https://fonts.gstatic.com/s/lato/v11/qIIYRU-oROkIk8vfvxw6QvesZW2xOQ-xsNqO47m55DA.woff) format('woff');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Lato';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: local('Lato Bold'), local('Lato-Bold'), url(https://fonts.gstatic.com/s/lato/v11/qdgUG4U09HnJwhYI-uK18wLUuEpTyoUstqEm5AMlJo4.woff) format('woff');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Lato';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local('Lato Italic'), local('Lato-Italic'), url(https://fonts.gstatic.com/s/lato/v11/RYyZNoeFgb0l7W3Vu1aSWOvvDin1pK8aKteLpeZ5c0A.woff) format('woff');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Lato';
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
src: local('Lato Bold Italic'), local('Lato-BoldItalic'), url(https://fonts.gstatic.com/s/lato/v11/HkF_qI1x_noxlxhrhMQYELO3LdcAZYWl9Si6vvxL-qU.woff) format('woff');
|
||||
}
|
||||
}
|
||||
|
||||
/* CLIENT-SPECIFIC STYLES */
|
||||
body, table, th, a { -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; }
|
||||
img { -ms-interpolation-mode: bicubic; border: 0; height: auto; line-height: 100%; outline: none; text-decoration: none;}
|
||||
|
||||
/* RESET STYLES */
|
||||
table { border-collapse: collapse !important; padding: 0 !important;}
|
||||
body { height: 100% !important; margin: 0 !important; padding: 0 !important; width: 100% !important; }
|
||||
|
||||
/* iOS BLUE LINKS */
|
||||
a[x-apple-data-detectors] {
|
||||
color: inherit !important;
|
||||
text-decoration: none !important;
|
||||
font-size: inherit !important;
|
||||
font-family: inherit !important;
|
||||
font-weight: inherit !important;
|
||||
line-height: inherit !important;
|
||||
}
|
||||
|
||||
/* MOBILE STYLES */
|
||||
@media screen and (max-width:600px){
|
||||
h1 {
|
||||
font-size: 32px !important;
|
||||
line-height: 32px !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* ANDROID CENTER FIX */
|
||||
div[style*="margin: 16px 0;"] { margin: 0 !important; }
|
||||
</style>
|
||||
</head>
|
||||
<body style="background-color: #f4f4f4; margin: 0 !important; padding: 0 !important;">
|
||||
|
||||
<!-- HIDDEN PREHEADER TEXT -->
|
||||
<div style="display: none; font-size: 1px; color: #fefefe; line-height: 1px; font-family: 'Lato', Helvetica, Arial, sans-serif; max-height: 0px; max-width: 0px; opacity: 0; overflow: hidden;">
|
||||
{{#i18n 'email.happy' }}We are happy to send you this email! You will be able to vote using majority judgment.{{/i18n}}
|
||||
</div>
|
||||
<table border="0" style="margin: 0px auto 0px auto; width: 100%;" aria-describedby="Email">
|
||||
<!-- LOGO -->
|
||||
<tr>
|
||||
<th scope="col" style="background-color:#efefff ;">
|
||||
<table border="0" style="margin: 0px auto 0px auto; width: 100%; max-width: 600px;" aria-describedby="Logo picture">
|
||||
<tr>
|
||||
<th scope="col" style="vertical-align: top; padding: 40px 10px 40px 10px;">
|
||||
<a href="https://mieuxvoter.fr/" target="_blank" rel="noopener noreferrer">
|
||||
<img alt="Logo" src="https://mieuxvoter.fr/wp-content/uploads/2019/10/mieuxvoter_logo.png" width="40" height="40" style="display: block; margin: 0px auto 0px auto; width: 50%; max-width: 250px; min-width: 40px; height: auto; font-family: 'Lato', Helvetica, Arial, sans-serif; color: #ffffff; font-size: 18px;" border="0">
|
||||
</a>
|
||||
</th>
|
||||
</tr>
|
||||
</table>
|
||||
</th>
|
||||
</tr>
|
||||
<!-- TITLE -->
|
||||
<tr>
|
||||
<th scope="col" style="background-color: #efefff; padding: 0px 10px 0px 10px;">
|
||||
<table border="0" style="margin: 0px auto 0px auto; width: 100%; max-width: 600px;" aria-describedby="email title">
|
||||
<tr>
|
||||
<th scope="col" style="vertical-align: top; background-color: #ffffff; padding: 40px 20px 20px 20px; border-radius: 4px 4px 0px 0px; color: #111111; font-family: 'Lato', Helvetica, Arial, sans-serif; font-size: 48px; font-weight: 400; letter-spacing: 4px; line-height: 48px;">
|
||||
<h1 style="font-size: 48px; font-weight: 400; margin: 0;">{{#i18n 'email.hello'}}Hi, there! 🙂{{/i18n}}</h1>
|
||||
</th>
|
||||
</tr>
|
||||
</table>
|
||||
</th>
|
||||
</tr>
|
||||
<!-- BLOCKS -->
|
||||
<tr>
|
||||
<th scope="col" style="background-color: #2a43a0; padding: 0px 10px 0px 10px;">
|
||||
<table border="0" style="margin: 0px auto 0px auto; width: 100%; max-width: 600px;" aria-describedby="email body">
|
||||
<!-- BLOCK SUBTITLE-->
|
||||
<tr>
|
||||
<th scope="col" style="background-color: #ffffff; padding: 20px 30px 40px 30px; color: #666666; font-family: 'Lato', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;" >
|
||||
<p style="margin: 0; text-align: left;">
|
||||
{{#i18n 'email.happy'}}We are happy to send you this email! You will be able to vote using majority judgment.{{/i18n}}
|
||||
</p>
|
||||
</th>
|
||||
</tr>
|
||||
<!-- BLOCK EXPLANATION-->
|
||||
<tr>
|
||||
<th scope="col" style="background-color: #ffffff; padding: 20px 30px 40px 30px; color: #666666; font-family: 'Lato', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;" >
|
||||
<p style="margin: 0; text-align: left;">
|
||||
{{#i18n 'email.why'}}This email was sent to you because your email address was entered to participate in the vote on the subject:{{/i18n}}
|
||||
|
||||
<strong>{{title}}</strong>
|
||||
</p>
|
||||
</th>
|
||||
</tr>
|
||||
<!-- BULLETPROOF BUTTON BLUE-->
|
||||
<tr>
|
||||
<th scope="col" style="background-color: #ffffff;">
|
||||
<table border="0" style="margin: 0px auto 0px auto; width: 100%;" aria-describedby="Blue bulletproof button">
|
||||
<tr>
|
||||
<th scope="col" style="background-color: #ffffff; padding: 20px 30px 60px 30px;">
|
||||
<table border="0" style="margin: 0px auto 0px auto; border-collapse: collapse;" aria-describedby="invitation url">
|
||||
<tr>
|
||||
<th scope="col" style="border-radius: 3px; background-color: #2a43a0;">
|
||||
<a href="%recipient.urlVote%" target="_blank" style="font-size: 20px; font-family: Helvetica, Arial, sans-serif; color: #ffffff; text-decoration: none; padding: 15px 25px; border-radius: 2px; border: 1px solid #2a43a0; display: inline-block;">
|
||||
{{#i18n 'common.vote' }}Vote!{{/i18n}}</a></th>
|
||||
</tr>
|
||||
</table>
|
||||
</th>
|
||||
</tr>
|
||||
</table>
|
||||
</th>
|
||||
</tr>
|
||||
<!-- BLOCK DOES NOT WORK -->
|
||||
<tr>
|
||||
<th scope="col" style="background-color: #ffffff; padding: 20px 30px 40px 30px; color: #666666; font-family: 'Lato', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;" >
|
||||
<p style="margin: 0; text-align: left;">
|
||||
{{#i18n 'email.copyLink' }}If that doesn't work, copy and paste the following link into your browser:{{/i18n}}
|
||||
|
||||
<a target="_blank" style="color: #2a43a0;">%recipient.urlVote%</a>
|
||||
</p>
|
||||
</th>
|
||||
</tr>
|
||||
<!-- BLOCK TEXT RESULT -->
|
||||
<tr>
|
||||
<th scope="col" style="background-color: #ffffff; padding: 20px 30px 20px 30px; color: #666666; font-family: 'Lato', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;" >
|
||||
<p style="margin: 0; text-align: left;">
|
||||
{{#i18n 'email.linkResult' }}The results will be available with the following link when the vote is finished:{{/i18n}}
|
||||
|
||||
<a target="_blank" style="color: #2a43a0;">%recipient.urlResult%</a>
|
||||
</p>
|
||||
</th>
|
||||
</tr>
|
||||
<!-- BLOCK THANKS -->
|
||||
<tr>
|
||||
<th scope="col" style="background-color: #ffffff; padding: 0px 30px 40px 30px; border-radius: 0px 0px 4px 4px; color: #666666; font-family: 'Lato', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;" >
|
||||
<p style="margin: 0; text-align: left;">{{#i18n 'email.bye'}}Good vote{{/i18n}},<br>{{#i18n 'common.mieuxvoter'}}Mieux Voter{{/i18n}}</p>
|
||||
</th>
|
||||
</tr>
|
||||
</table>
|
||||
</th>
|
||||
</tr>
|
||||
<!-- SUPPORT CALLOUT -->
|
||||
<tr>
|
||||
<th scope="col" style="background-color: #f4f4f4; padding: 30px 10px 0px 10px;">
|
||||
<table border="0" style="margin: 0px auto 0px auto; width: 100%; max-width: 600px;" aria-describedby="support callout">
|
||||
<!-- HEADLINE -->
|
||||
<tr>
|
||||
<th scope="col" style="background-color: #7d8ecf; padding: 30px 30px 30px 30px; border-radius: 4px 4px 4px 4px; color: #666666; font-family: 'Lato', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;" >
|
||||
<p style="margin: 0;"><strong>
|
||||
<a href="https://mieuxvoter.fr/index.php/decouvrir/" target="_blank" style="color: #FFFFFF;" rel="noopener noreferrer">
|
||||
{{#i18n 'email.aboutjm'}}Need any further information?{{/i18n}}
|
||||
</a></strong>
|
||||
</p>
|
||||
<p style="margin: 0;"> <strong>
|
||||
<a href="https://mieuxvoter.fr/index.php/decouvrir/" target="_blank" style="color: #111111;" rel="noopener noreferrer">
|
||||
{{#i18n 'common.helpus'}}Do you want to help us?{{/i18n}}
|
||||
</a></strong>
|
||||
</p>
|
||||
</th>
|
||||
</tr>
|
||||
</table>
|
||||
</th>
|
||||
</tr>
|
||||
<!-- FOOTER -->
|
||||
<tr>
|
||||
<th scope="col" style="background-color: #f4f4f4; padding: 0px 10px 0px 10px;">
|
||||
<table border="0" style="margin: 0px auto 0px auto; width: 100%; max-width: 600px;" aria-describedby="footer informations">
|
||||
<!-- EXPLAIN WHY -->
|
||||
</br>
|
||||
<tr>
|
||||
<th scope="col" style="background-color: #f4f4f4; padding: 0px 30px 30px 30px; color: #666666; font-family: 'Lato', Helvetica, Arial, sans-serif; font-size: 14px; font-weight: 400; line-height: 18px;" >
|
||||
<p style="margin: 0;">
|
||||
{{#i18n email.why }}You received this email because someone invited you to vote.{{/i18n}}
|
||||
</p>
|
||||
</th>
|
||||
</tr>
|
||||
<!-- ADDRESS -->
|
||||
<tr>
|
||||
<th scope="col" style="background-color: #f4f4f4; padding: 0px 30px 30px 30px; color: #666666; font-family: 'Lato', Helvetica, Arial, sans-serif; font-size: 14px; font-weight: 400; line-height: 18px;" >
|
||||
<p style="margin: 0;">{{#i18n mieuxvoter }}Mieux Voter{{/i18n}} - <a "mailto:app@mieuxvoter.fr">app@mieuxvoter.fr</a></p>
|
||||
</th>
|
||||
</tr>
|
||||
</table>
|
||||
</th>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
@ -1,19 +0,0 @@
|
||||
{{i18n 'email.hello'}}Hi there! 🙂{{i18n}}
|
||||
|
||||
{{i18n 'email.happy'}}We are happy to send you this email! You will be able to vote using majority judgment.{{i18n}}
|
||||
|
||||
{{i18n 'email.why'}}This email was sent to you because your email was filled out to participate in the vote on the subject:{{i18n}}
|
||||
|
||||
{{ title }}
|
||||
|
||||
{{i18n 'email.linkVote' }}The link for the vote is as follows:{{i18n}}
|
||||
|
||||
%recipient.urlVote%
|
||||
|
||||
{{i18n 'email.linkResult' }}The link that will give you the results when they are available is as follows:{{i18n}}
|
||||
|
||||
%recipient.urlResult%
|
||||
|
||||
{{i18n 'email.bye'}}Good vote{{i18n}}
|
||||
|
||||
{{i18n 'common.mieuxvoter'}}Mieux Voter{{i18n}}
|
@ -1,17 +0,0 @@
|
||||
Bonjour ! 🙂
|
||||
|
||||
Vous avez été invité·e à participer à l'élection suivante :
|
||||
|
||||
{{ title }}
|
||||
|
||||
Le lien pour voter est le suivant :
|
||||
|
||||
%recipient.urlVote%
|
||||
|
||||
A la fin de l'élection, vous pourrez accéder aux résultats en cliquant sur ce lien :
|
||||
|
||||
%recipient.urlResult%
|
||||
|
||||
Bon vote ! 🤗
|
||||
|
||||
Mieux Voter
|
@ -1,19 +1,19 @@
|
||||
{{#i18n 'email.hello'}}Hi there! 🙂{{/i18n}}
|
||||
{{#i18n 'email.hello'}}{{/i18n}}
|
||||
|
||||
{{#i18n 'email.happy'}}We are happy to send you this email! You will be able to vote using majority judgment.{{/i18n}}
|
||||
{{#i18n 'email.invite.happy'}}{{/i18n}}
|
||||
|
||||
{{#i18n 'email.why'}}This email was sent to you because your email was filled out to participate in the vote on the subject:{{/i18n}}
|
||||
{{#i18n 'email.invite.why'}}{{/i18n}}
|
||||
|
||||
%recipient.title%
|
||||
|
||||
{{#i18n 'email.linkVote' }}The link for the vote is as follows:{{/i18n}}
|
||||
{{#i18n 'email.invite.linkVote' }}{{/i18n}}
|
||||
|
||||
%recipient.urlVote%
|
||||
|
||||
{{#i18n 'email.linkResult' }}The link that will give you the results when they are available is as follows:{{/i18n}}
|
||||
{{#i18n 'email.invite.linkResult' }}{{/i18n}}
|
||||
|
||||
%recipient.urlResult%
|
||||
|
||||
{{#i18n 'email.bye'}}Good vote{{/i18n}}
|
||||
{{#i18n 'email.bye'}}{{/i18n}}
|
||||
|
||||
{{#i18n 'common.mieuxvoter'}}Mieux Voter{{/i18n}}
|
||||
{{#i18n 'common.better-vote'}}{{/i18n}}
|
||||
|
@ -0,0 +1,16 @@
|
||||
console.log(__dirname)
|
||||
|
||||
const send = async (event) => {
|
||||
/**
|
||||
* Send a mail using Mailgun
|
||||
*/
|
||||
return {
|
||||
statusCode: 405,
|
||||
body: __dirname,
|
||||
headers: {Allow: 'POST'},
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
exports.handler = send
|
||||
|
@ -0,0 +1,16 @@
|
||||
{
|
||||
"email.hello": "Hi there! 🙂",
|
||||
"email.invite.subject": "You are invited to vote",
|
||||
"email.invite.happy": "We are happy to send you this email! You will be able to vote using majority judgment.",
|
||||
"email.invite.why": "This email was sent to you because your email was filled out to participate in the vote on the subject:",
|
||||
"email.invite.linkVote": "The link for the vote is as follows:",
|
||||
"email.invite.linkResult": "The link that will give you the results when they are available is as follows:",
|
||||
"email.invite.bye": "Good bye",
|
||||
"email.admin.subject": "Manage your election",
|
||||
"email.admin.happy": "We are happy to send you this email! You have created a vote using majority judgment.",
|
||||
"email.admin.why": "This email was sent to you since you have asked us to send the admin link",
|
||||
"email.admin.linkAdmin": "The below admin link allows you to manage your election.",
|
||||
"email.bye": "Good bye",
|
||||
"email.copyLink": "If that doesn't work, copy and paste the following link into your browser:",
|
||||
"email.about-mj": "Need any further information?"
|
||||
}
|
@ -1,98 +1,100 @@
|
||||
{
|
||||
"home.motto": "Simple and free",
|
||||
"home.slogan": "Organize a vote with majority judgment",
|
||||
"logo.alt": "Logo of Better Vote",
|
||||
"home.writeQuestion": "Write here your question or describe your vote.",
|
||||
"home.start": "Start a vote",
|
||||
"home.noAds": "No advertising or ad cookies",
|
||||
"home.advantage-1-title": "Simple",
|
||||
"home.advantage-1-desc": "Create a vote in less than 1 minute!",
|
||||
"home.advantage-2-title": "Free",
|
||||
"home.advantage-2-desc": "Send invites without any limitations!",
|
||||
"home.advantage-3-title": "Respecting your privacy",
|
||||
"home.advantage-3-desc": "No personal data is recorded",
|
||||
"home.experience-title": "A democratic and intuitive voting experience",
|
||||
"home.experience-1-title": "Express your full opinion.",
|
||||
"home.experience-1-desc": "With majority judgment, each candidate is evaluated on a grid of mentions. Strategic voting has no use anymore.",
|
||||
"home.experience-2-title": "Get the best possible consensus.",
|
||||
"home.experience-2-desc": "The merit profile provides an accurate picture of the voters' opinions. The winner of the vote is the one with the best majority rating.",
|
||||
"home.experience-call-to-action": "Find out about the majority judgment",
|
||||
"home.alt-icon-ballot-box": "icon of a ballot box",
|
||||
"home.alt-icon-envelop": "icon of an envelop",
|
||||
"home.alt-icon-respect": "icon of hands holding each other",
|
||||
"home.alt-icon-ballot": "icon of a ballot",
|
||||
"menu.majority-judgment": "Majority judgment",
|
||||
"menu.whoarewe": "Who are we?",
|
||||
"menu.faq": "FAQ",
|
||||
"menu.news": "News",
|
||||
"menu.contact-us": "Contact us",
|
||||
"common.error": "Oh no... An error has occured...",
|
||||
"common.share": "Share the application Better Vote",
|
||||
"common.share-short": "Share the application",
|
||||
"common.save": "Save",
|
||||
"common.back-homepage": "Return to home page",
|
||||
"common.support-us": "Support us",
|
||||
"common.thumbnail": "Thumbnail",
|
||||
"common.name": "Name",
|
||||
"common.description": "Description",
|
||||
"common.cancel": "Cancel",
|
||||
"common.grades": "Grades",
|
||||
"common.invites": "invites",
|
||||
"common.days": "days",
|
||||
"common.send": "Send",
|
||||
"common.the-vote": "The vote",
|
||||
"common.the-params": "The parameters",
|
||||
"error.help": "Ask for our help",
|
||||
"error.at-least-2-candidates": "At least two candidates are required.",
|
||||
"error.no-title": "Please add a title to your election.",
|
||||
"grades.very-good": "Very good",
|
||||
"grades.good": "Good",
|
||||
"grades.passable": "Passable",
|
||||
"grades.inadequate": "Inadequate",
|
||||
"grades.mediocre": "Mediocre",
|
||||
"admin.date-limit": "Set a deadline for voting",
|
||||
"admin.step-candidate": "Candidates",
|
||||
"admin.step-params": "Parameters",
|
||||
"admin.step-confirm": "Confirm",
|
||||
"admin.add-candidates": "Add the candidates.",
|
||||
"admin.add-candidate": "Add a candidate",
|
||||
"admin.add-candidate-desc": "Add a picture, a name, and a description of the candidate.",
|
||||
"admin.add-grade": "Add a grade",
|
||||
"admin.add-grade-desc": "The name of the grade must be unique.",
|
||||
"admin.grade-name-placeholder": "Add the name of the grade",
|
||||
"admin.candidate-confirm-del": "You want to remove a candidate",
|
||||
"admin.candidate-confirm-back": "No, I keep it",
|
||||
"admin.candidate-confirm-ok": "Delete",
|
||||
"admin.candidate-name-placeholder": "Add the name or the title of the candidate.",
|
||||
"admin.candidate-desc-placeholder": "Add the description of the candidate.",
|
||||
"admin.candidates-submit": "Validate the candidates",
|
||||
"admin.candidates-back-step": "Back to candidates",
|
||||
"admin.modal-title": "Managing an election",
|
||||
"admin.modal-desc": "This link allows you to modify your election. Keep it carefully, or fill out this form to receive a copy by mail.",
|
||||
"admin.modal-disclaimer": "We do not store any mail. Thus, we will not send you any advertising content.",
|
||||
"admin.modal-email-placeholder": "Your mail address",
|
||||
"admin.params-submit": "Validate the parameters",
|
||||
"admin.params-title": "Your parameters",
|
||||
"admin.access-results": "Immediate access to the results",
|
||||
"admin.access-results-desc": "No one can access to the results as long as the vote is not closed.",
|
||||
"admin.limit-duration": "Limit the length of the vote",
|
||||
"admin.limit-duration-desc": "",
|
||||
"admin.photo": "Picture",
|
||||
"admin.optional": "optional",
|
||||
"admin.photo-import": "Import a picture",
|
||||
"admin.photo-type": "Supported type:",
|
||||
"admin.grades-desc": "You can choose to customize the name and the number of mentions. If in doubt, leave the grades as is.",
|
||||
"admin.ending-in": "In",
|
||||
"admin.until": "Until",
|
||||
"admin.private-title": "Private vote",
|
||||
"admin.private-desc": "Only participants who received an invite by email will be able to vote",
|
||||
"admin.private-tip": "You can copy-paste a list of emails from a spreadsheet.",
|
||||
"admin.private-placeholder": "Add here the emails of the participants.",
|
||||
"admin.confirm-question": "Question of your vote",
|
||||
"admin.confirm-candidates": "Candidates",
|
||||
"admin.confirm-submit": "Start the vote",
|
||||
"admin.confirm-title": "Confirm your vote",
|
||||
"admin.success-election": "The vote has been created with success!",
|
||||
"admin.success-emails": "The voting link has been sent by emails to the participants.",
|
||||
"admin.go-to-admin": "Manage the vote"
|
||||
"home.motto": "Simple and free",
|
||||
"home.slogan": "Organize a vote with majority judgment",
|
||||
"logo.alt": "Logo of Better Vote",
|
||||
"home.writeQuestion": "Write here your question or describe your vote.",
|
||||
"home.start": "Start a vote",
|
||||
"home.noAds": "No advertising or ad cookies",
|
||||
"home.advantage-1-title": "Simple",
|
||||
"home.advantage-1-desc": "Create a vote in less than 1 minute!",
|
||||
"home.advantage-2-title": "Free",
|
||||
"home.advantage-2-desc": "Send invites without any limitations!",
|
||||
"home.advantage-3-title": "Respecting your privacy",
|
||||
"home.advantage-3-desc": "No personal data is recorded",
|
||||
"home.experience-title": "A democratic and intuitive voting experience",
|
||||
"home.experience-1-title": "Express your full opinion.",
|
||||
"home.experience-1-desc": "With majority judgment, each candidate is evaluated on a grid of mentions. Strategic voting has no use anymore.",
|
||||
"home.experience-2-title": "Get the best possible consensus.",
|
||||
"home.experience-2-desc": "The merit profile provides an accurate picture of the voters' opinions. The winner of the vote is the one with the best majority rating.",
|
||||
"home.experience-call-to-action": "Find out about the majority judgment",
|
||||
"home.alt-icon-ballot-box": "icon of a ballot box",
|
||||
"home.alt-icon-envelop": "icon of an envelop",
|
||||
"home.alt-icon-respect": "icon of hands holding each other",
|
||||
"home.alt-icon-ballot": "icon of a ballot",
|
||||
"menu.majority-judgment": "Majority judgment",
|
||||
"menu.whoarewe": "Who are we?",
|
||||
"menu.faq": "FAQ",
|
||||
"menu.news": "News",
|
||||
"menu.contact-us": "Contact us",
|
||||
"common.error": "Oh no... An error has occured...",
|
||||
"common.better-vote": "Better Vote",
|
||||
"common.share": "Share the application Better Vote",
|
||||
"common.share-short": "Share the application",
|
||||
"common.save": "Save",
|
||||
"common.back-homepage": "Return to home page",
|
||||
"common.support-us": "Support us",
|
||||
"common.thumbnail": "Thumbnail",
|
||||
"common.name": "Name",
|
||||
"common.description": "Description",
|
||||
"common.cancel": "Cancel",
|
||||
"common.grades": "Grades",
|
||||
"common.invites": "invites",
|
||||
"common.days": "days",
|
||||
"common.send": "Send",
|
||||
"common.vote": "Vote",
|
||||
"common.the-vote": "The vote",
|
||||
"common.the-params": "The parameters",
|
||||
"error.help": "Ask for our help",
|
||||
"error.at-least-2-candidates": "At least two candidates are required.",
|
||||
"error.no-title": "Please add a title to your election.",
|
||||
"grades.very-good": "Very good",
|
||||
"grades.good": "Good",
|
||||
"grades.passable": "Passable",
|
||||
"grades.inadequate": "Inadequate",
|
||||
"grades.mediocre": "Mediocre",
|
||||
"admin.date-limit": "Set a deadline for voting",
|
||||
"admin.step-candidate": "Candidates",
|
||||
"admin.step-params": "Parameters",
|
||||
"admin.step-confirm": "Confirm",
|
||||
"admin.add-candidates": "Add the candidates.",
|
||||
"admin.add-candidate": "Add a candidate",
|
||||
"admin.add-candidate-desc": "Add a picture, a name, and a description of the candidate.",
|
||||
"admin.add-grade": "Add a grade",
|
||||
"admin.add-grade-desc": "The name of the grade must be unique.",
|
||||
"admin.grade-name-placeholder": "Add the name of the grade",
|
||||
"admin.candidate-confirm-del": "You want to remove a candidate",
|
||||
"admin.candidate-confirm-back": "No, I keep it",
|
||||
"admin.candidate-confirm-ok": "Delete",
|
||||
"admin.candidate-name-placeholder": "Add the name or the title of the candidate.",
|
||||
"admin.candidate-desc-placeholder": "Add the description of the candidate.",
|
||||
"admin.candidates-submit": "Validate the candidates",
|
||||
"admin.candidates-back-step": "Back to candidates",
|
||||
"admin.modal-title": "Managing an election",
|
||||
"admin.modal-desc": "This link allows you to modify your election. Keep it carefully, or fill out this form to receive a copy by mail.",
|
||||
"admin.modal-disclaimer": "We do not store any mail. Thus, we will not send you any advertising content.",
|
||||
"admin.modal-email-placeholder": "Your mail address",
|
||||
"admin.params-submit": "Validate the parameters",
|
||||
"admin.params-title": "Your parameters",
|
||||
"admin.access-results": "Immediate access to the results",
|
||||
"admin.access-results-desc": "No one can access to the results as long as the vote is not closed.",
|
||||
"admin.limit-duration": "Limit the length of the vote",
|
||||
"admin.limit-duration-desc": "",
|
||||
"admin.photo": "Picture",
|
||||
"admin.optional": "optional",
|
||||
"admin.photo-import": "Import a picture",
|
||||
"admin.photo-type": "Supported type:",
|
||||
"admin.grades-desc": "You can choose to customize the name and the number of mentions. If in doubt, leave the grades as is.",
|
||||
"admin.ending-in": "In",
|
||||
"admin.until": "Until",
|
||||
"admin.private-title": "Private vote",
|
||||
"admin.private-desc": "Only participants who received an invite by email will be able to vote",
|
||||
"admin.private-tip": "You can copy-paste a list of emails from a spreadsheet.",
|
||||
"admin.private-placeholder": "Add here the emails of the participants.",
|
||||
"admin.confirm-question": "Question of your vote",
|
||||
"admin.confirm-candidates": "Candidates",
|
||||
"admin.confirm-submit": "Start the vote",
|
||||
"admin.confirm-title": "Confirm your vote",
|
||||
"admin.success-election": "The vote has been created with success!",
|
||||
"admin.success-emails": "The voting link has been sent by emails to the participants.",
|
||||
"admin.go-to-admin": "Manage the vote"
|
||||
}
|
||||
|
@ -0,0 +1,15 @@
|
||||
{
|
||||
"email.hello": "Bonjour ! 🙂",
|
||||
"email.invite.subject": "Vous participez au vote en cours",
|
||||
"email.invite.happy": "Nous sommes très heureux de vous envoyer ce courriel ! Vous allez pouvoir voter en utilisant le jugement majoritaire.",
|
||||
"email.invite.why": "Ce courriel vous a été envoyé, car l'organisateur du vote vous a ajoutés dans la liste des participants. Le vote porte sur :",
|
||||
"email.invite.linkVote": "Le lien pour voter est ci-dessous",
|
||||
"email.invite.linkResult": "Le lien pour voir les résultats est ci-dessous. Conservez le bien !",
|
||||
"email.admin.subject": "Gérez votre élection",
|
||||
"email.admin.happy": "Nous sommes très heureux de vous envoyer ce courriel ! Vous venez de créer une élection avec le jugement majoritaire.",
|
||||
"email.admin.why": "Vous recevez ce courriel parce que vous nous avez chargé de vous transmettre le lien d'administration. Gardez le précieusement : un autre lien ne pourra leien ne pourra pas vous être partagé.",
|
||||
"email.admin.linkAdmin": "Ce lien ci-dessous vous permet de gérer votre élection.",
|
||||
"email.bye": "Au revoir !",
|
||||
"email.copyLink": "Si cela ne fonctionne pas, copiez-collez le lien suivant dans votre navigateur :",
|
||||
"email.about-mj": "Besoin de plus d'information ?"
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
{
|
||||
"recipients": {
|
||||
"app@mieuxvoter.fr": {
|
||||
"title": "Test",
|
||||
"urlAdmin": "foo"
|
||||
},
|
||||
"tech@mieuxvoter.fr": {
|
||||
"title": "Test",
|
||||
"urlAdmin": "foo"
|
||||
}
|
||||
},
|
||||
"action": "admin",
|
||||
"locale": "en"
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
{
|
||||
"recipients": {
|
||||
"app@mieuxvoter.fr": {
|
||||
"title": "Test",
|
||||
"urlAdmin": "foo"
|
||||
},
|
||||
"tech@mieuxvoter.fr": {
|
||||
"title": "Test",
|
||||
"urlAdmin": "foo"
|
||||
}
|
||||
},
|
||||
"action": "admin",
|
||||
"locale": "fr"
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
{
|
||||
"recipients": {
|
||||
"app@mieuxvoter.fr": {
|
||||
"title": "Test",
|
||||
"urlVote": "foo",
|
||||
"urlResult": "foo"
|
||||
},
|
||||
"tech@mieuxvoter.fr": {
|
||||
"title": "Test",
|
||||
"urlVote": "foo",
|
||||
"urlResult": "foo"
|
||||
}
|
||||
},
|
||||
"action": "invite",
|
||||
"locale": "en"
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
{
|
||||
"recipients": {
|
||||
"app@mieuxvoter.fr": {
|
||||
"title": "Test",
|
||||
"urlVote": "foo",
|
||||
"urlResult": "foo"
|
||||
},
|
||||
"tech@mieuxvoter.fr": {
|
||||
"title": "Test",
|
||||
"urlVote": "foo",
|
||||
"urlResult": "foo"
|
||||
}
|
||||
},
|
||||
"action": "invite",
|
||||
"locale": "fr"
|
||||
}
|
Loading…
Reference in new issue