text translation on admin success component

This commit is contained in:
Tykayn 2022-02-03 09:32:52 +01:00 committed by tykayn
parent 920066a4a0
commit a43c92fa23
4 changed files with 73 additions and 53 deletions

View File

@ -16,11 +16,10 @@
</strong> </strong>
» »
<span *ngIf="!pollService.admin_key"> <span *ngIf="!pollService.admin_key">
n'a pas été créé :( {{ 'success.not_created' | translate }} :(
<br /> <br />
<button class="button is-primary" [routerLink]="['/administration/step/7']"> <button class="button is-primary" [routerLink]="['/administration/step/7']">
Revenir en arrière {{ 'success.go_back' | translate }}
</button> </button>
</span> </span>
<span *ngIf="pollService.admin_key"> <span *ngIf="pollService.admin_key">
@ -29,18 +28,18 @@
</h1> </h1>
<p> <p>
L'événement "<strong class="poll-title"> {{ pollService.form.value.title }} </strong>" est créé. L'événement "<strong class="poll-title"> {{ pollService.form.value.title }} </strong>" est créé.
Vous pouvez inviter vos contacts à y participer en partageant le lien ci-dessous. {{ 'success.share' | translate }}
</p> </p>
<div class="columns"> <div class="columns">
<div class="column"> <div class="column">
<label for="public_share_link"> <label for="public_share_link">
Lien de partage public {{ 'success.link' | translate }}
</label> </label>
<input type="text" [value]="pollService.getParticipationUrl()" id="public_share_link" /> <input type="text" [value]="pollService.getParticipationUrl()" id="public_share_link" />
</div> </div>
<div class="column"> <div class="column">
<button class="is-parimary button"> <button class="is-parimary button" (click)="copyText(pollService.getParticipationUrl())">
Copier {{ 'success.copy' | translate }}
</button> </button>
</div> </div>
</div> </div>
@ -49,9 +48,11 @@
</div> </div>
</section> </section>
<div class="box-well"> <div class="box-well">
<h3 class="title is-3">Consultez dès maintenant votre sondage</h3> <h3 class="title is-3">
{{ 'success.label' | translate }}
</h3>
<button class="button is-primary" routerLink="{{ pollService.getAdministrationUrlFromForm() }}"> <button class="button is-primary" routerLink="{{ pollService.getAdministrationUrlFromForm() }}">
Voir mon sondage {{ 'success.action' | translate }}
</button> </button>
</div> </div>
<hr /> <hr />
@ -65,17 +66,13 @@
<div class="no-admin-key padded has-background-danger" *ngIf="!pollService.admin_key"> <div class="no-admin-key padded has-background-danger" *ngIf="!pollService.admin_key">
Pas de clé d'administration, l'enregistrement du sondage a échoué. vérifiez vos paramètres Pas de clé d'administration, l'enregistrement du sondage a échoué. vérifiez vos paramètres
réseau. réseau.
{{ 'success.network_error' | translate }}
</div> </div>
<div class="admin-ok" *ngIf="pollService.admin_key"> <div class="admin-ok" *ngIf="pollService.admin_key">
<h2 class="title is-2"> <h2 class="title is-2">
<i class="fa fa-gears"></i> <i class="fa fa-gears"></i>
{{ 'resume.admins' | translate }} {{ 'resume.admins' | translate }}
</h2> </h2>
<p>
Voici les liens daccès au sondage, conservez-les soigneusement ! (Si vous les perdez
vous pourrez toujours les recevoir par email)
</p>
<div> <div>
Pour accéder au sondage et à tous ses paramètres : Pour accéder au sondage et à tous ses paramètres :
<br /> <br />
@ -124,7 +121,7 @@
</a> </a>
</p> </p>
<br /> <br />
<app-copy-text [textToCopy]="pollService.getParticipationUrlFromForm()"></app-copy-text>
<br /> <br />
</div> </div>
</div> </div>

View File

@ -1,9 +1,12 @@
import { Component, Input, OnInit } from '@angular/core'; import { Component, Input } from '@angular/core';
import { PollService } from '../../../core/services/poll.service'; import { PollService } from '../../../core/services/poll.service';
import { Poll } from '../../../core/models/poll.model'; import { Poll } from '../../../core/models/poll.model';
import { environment } from 'src/environments/environment'; import { environment } from 'src/environments/environment';
import { Title } from '@angular/platform-browser'; import { Title } from '@angular/platform-browser';
import { DateUtilitiesService } from '../../../core/services/date.utilities.service'; import { DateUtilitiesService } from '../../../core/services/date.utilities.service';
import { ClipboardService } from 'ngx-clipboard';
import { ToastService } from '../../../core/services/toast.service';
import { TranslateService } from '@ngx-translate/core';
@Component({ @Component({
selector: 'app-success', selector: 'app-success',
@ -16,7 +19,15 @@ export class SuccessComponent {
window: any = window; window: any = window;
environment = environment; environment = environment;
today: Date = new Date(); today: Date = new Date();
constructor(public pollService: PollService, private dateUtils: DateUtilitiesService, private titleService: Title) {
constructor(
public pollService: PollService,
private dateUtils: DateUtilitiesService,
private _clipboardService: ClipboardService,
private toastService: ToastService,
private translate: TranslateService,
private titleService: Title
) {
this.titleService.setTitle( this.titleService.setTitle(
environment.appTitle + ' - 🎉 succès de création de sondage - ' + this.pollService.form.value.title environment.appTitle + ' - 🎉 succès de création de sondage - ' + this.pollService.form.value.title
); );
@ -30,7 +41,12 @@ export class SuccessComponent {
alert('todo'); alert('todo');
} }
getExpiracyDateFromPoll(poll: Poll): Date { /**
return this.dateUtils.addDaysToDate(poll.default_expiracy_days_from_now, new Date()); * copy public url of new poll
* @param participationUrl
*/
copyText(participationUrl: string) {
this._clipboardService.copyFromContent(participationUrl);
this.toastService.display(this.translate.get('success.copy_message') + ` ${participationUrl}`);
} }
} }

View File

@ -78,60 +78,60 @@
"interval_button": "Add these", "interval_button": "Add these",
"interval_button_dates": "dates", "interval_button_dates": "dates",
"errors": { "errors": {
"missing" : "Input at least one day" "missing": "Input at least one day"
} }
}, },
"hours": { "hours": {
"title" : "Choisissez les horaires", "title": "Choisissez les horaires",
"element": "Time span", "element": "Time span",
"apply_same" : "Apply the same time spans to all dates", "apply_same": "Apply the same time spans to all dates",
"add" : "Add time span", "add": "Add time span",
"modal": { "modal": {
"title" : "Choisissez les horaires ou options à appliquer à toutes les dates", "title": "Choisissez les horaires ou options à appliquer à toutes les dates",
"validate" : "Appliquer" "validate": "Appliquer"
} }
}, },
"choices": { "choices": {
"title": "Write the proposals", "title": "Write the proposals",
"helper": "You can use markdown syntax", "helper": "You can use markdown syntax",
"add_link": "Add link", "add_link": "Add link",
"element" : "Option", "element": "Option",
"delete" : "Delete choice", "delete": "Delete choice",
"answer_preset_1": "Demo answer 1", "answer_preset_1": "Demo answer 1",
"answer_preset_2": "answer 2", "answer_preset_2": "answer 2",
"answer_preset_3": "and D, the answer D", "answer_preset_3": "and D, the answer D",
"add": "Add choice", "add": "Add choice",
"continue": "Let's see how it goes", "continue": "Let's see how it goes",
"modal": { "modal": {
"title" : "Add a link to option", "title": "Add a link to option",
"description" : "You can add a web page address (URL), a link to a web picture or both.", "description": "You can add a web page address (URL), a link to a web picture or both.",
"url_label": "Web page link (URL)", "url_label": "Web page link (URL)",
"img_label": "Web picture link", "img_label": "Web picture link",
"validate" : "Add" "validate": "Add"
} }
}, },
"advanced": { "advanced": {
"title": "Paramétrez le sondage", "title": "Paramétrez le sondage",
"description" : "Cette étape est facultative.", "description": "Cette étape est facultative.",
"limit_title" : "Limiter le nombre de participants par option", "limit_title": "Limiter le nombre de participants par option",
"limit_label" : "Nombre maximum de participants", "limit_label": "Nombre maximum de participants",
"custom_link" : "Personnaliser le lien du sondage", "custom_link": "Personnaliser le lien du sondage",
"custom_label" : "Saisissez le lien de votre sondage", "custom_label": "Saisissez le lien de votre sondage",
"custom_desc" : "Modifier le lien de votre sondage le rend plus facilement accessible à tous le monde. Il est recommandé de le protéger par mot de passe.", "custom_desc": "Modifier le lien de votre sondage le rend plus facilement accessible à tous le monde. Il est recommandé de le protéger par mot de passe.",
"password_title" : "Protéger par mot de passe", "password_title": "Protéger par mot de passe",
"password_label" : "Cette étape est facultative.", "password_label": "Cette étape est facultative.",
"password_label_repeat" : "Cette étape est facultative.", "password_label_repeat": "Cette étape est facultative.",
"password_validation_ok" : "Vos mots de passe sont identiques", "password_validation_ok": "Vos mots de passe sont identiques",
"password_display_without" : "Les résultats sont visibles sans mot de passe", "password_display_without": "Les résultats sont visibles sans mot de passe",
"allowances_title" : "Permissions", "allowances_title": "Permissions",
"allowances_all" : "Tou·te·s les sondé·e·s peuvent modifier tous les votes", "allowances_all": "Tou·te·s les sondé·e·s peuvent modifier tous les votes",
"allowances_own" : "Chaque sondé·e peut modifier son propre vote", "allowances_own": "Chaque sondé·e peut modifier son propre vote",
"allowances_none" : "Aucun vote ne peut être modifié", "allowances_none": "Aucun vote ne peut être modifié",
"allowances_creator" : "Seul·e le ou la créateur·rice du sondage peut voir les résultats", "allowances_creator": "Seul·e le ou la créateur·rice du sondage peut voir les résultats",
"notifications_title" : "Notifications", "notifications_title": "Notifications",
"notifications_vote" : "Recevoir un e-mail à chaque participation", "notifications_vote": "Recevoir un e-mail à chaque participation",
"notifications_comment" : "Recevoir un e-mail à chaque commentaire", "notifications_comment": "Recevoir un e-mail à chaque commentaire",
"notifications_description" : "Choisissez pour quelles mises à jour vous souhaitez être contacté" "notifications_description": "Choisissez pour quelles mises à jour vous souhaitez être contacté"
}, },
"owner": { "owner": {
"title": "Say to your guests who you are !", "title": "Say to your guests who you are !",
@ -152,7 +152,8 @@
}, },
"success": { "success": {
"title": "Your poll is ready !", "title": "Your poll is ready !",
"description": "The event « {{eventTitle}} » is created. Share it with the following public link.", "description": "The event « {{eventTitle}} » is created.",
"share": "Share it with the following public link.",
"link": "Public link to share", "link": "Public link to share",
"label": "Check your poll", "label": "Check your poll",
"action": "See my poll", "action": "See my poll",

View File

@ -163,13 +163,19 @@
}, },
"success": { "success": {
"title": "Votre sondage est prêt !", "title": "Votre sondage est prêt !",
"description": "L'événement « {{eventTitle}} » est créé. Vous pouvez inviter vos contacts à y participer en partageant le lien ci-dessous.", "description": "L'événement « {{eventTitle}} » est créé.",
"share":"Vous pouvez inviter vos contacts à y participer en partageant le lien ci-dessous.",
"link": "Lien de partage public", "link": "Lien de partage public",
"label": "Consultez dès maintenant votre sondage", "label": "Consultez dès maintenant votre sondage",
"action": "Voir mon sondage", "action": "Voir mon sondage",
"admins": "Côté administrateur-ice-eux", "admins": "Côté administrateur-ice-eux",
"users": "Côté sondés", "users": "Côté sondés",
"links_mail": "Recevoir les liens par e-mail" "links_mail": "Recevoir les liens par e-mail",
"not_created": "n'a pas été créé",
"network_error": "n'a pas été créé",
"go_back": "Revenir en arrière",
"copy": "Copier",
"copy_message": "Texte copié:",
}, },
"visibility": { "visibility": {
"top_txt": "Un peu de paramétrage…", "top_txt": "Un peu de paramétrage…",