Skip to content
Snippets Groups Projects
Commit a79d4f2e authored by srosse's avatar srosse
Browse files

OO-4203: missing currency settings in admin., translations

parent e8fd6b82
No related branches found
No related tags found
No related merge requests found
Showing
with 367 additions and 287 deletions
#Fri Mar 23 15:13:55 CET 2018
#Mon Aug 26 20:05:32 CEST 2019
bulkuserreplay.chkbx.onoff=Checkbox activ\u00E9e signifie Replay ON et AJAX OFF
bulkuserreplay.tt=Nom d'utilisateur ligne par ligne (sans virgule ou similaires)
data.no.save=Attention\: Les modifications seront perdues apr\u00E8s le red\u00E9marrage d'OLAT\! Pour enregistrer les r\u00E9glages de fa\u00E7on permanente, il faut enregistrer les modifications dans le fichier olat.properties. Dans une version future, un enregistrement automatique sera possible.
......@@ -62,6 +62,7 @@ menu.parent.customizing=Personnalisation
menu.parent.customizing.alt=Personnalisation d'OpenOlat
menu.parent.maintenance=Maintenance du syst\u00E8me
menu.parent.maintenance.alt=Maintenance du syst\u00E8me et options suppl\u00E9mentaires
menu.payments=Modules de paiement
menu.quota=Gestion des quotas
menu.quota.alt=Gestion des quotas
menu.registration=Enregistrement du syst\u00E8me
......
#Mon Aug 19 18:03:55 CEST 2019
form.imd.correct.title=Titre
warning.feedback.cutvalue=Le feedback est bas\u00E9 sur la valeur "Points n\u00E9cessaire pour 'R\u00E9ussi'" et cell-ci doit \u00EAtre d'abord d\u00E9finie.
tools.import.table=$org.olat.ims.qti.editor\:tools.import.table
form.imd.alignment.right=Droite
warning.conversion.standard=Il existe un risque que des donn\u00E9es soient perdues bien qu'aucune incompatibilit\u00E9 n'ait \u00E9t\u00E9 d\u00E9tect\u00E9e.
delete.section=$org.olat.ims.qti.editor\:delete.section
add.hint.feedback=Ajouter un indice de solution
form.imd.responsive.hint=L'image de fond s'adaptera \u00E0 la taille de l'\u00E9cran. Attention\: si l'image deviendra plus petites, les hotspots seront \u00E9galement plus petits\!
max.choices.unlimited=Quelconque
form.imd.hint.title=Titre
form.imd.answer=R\u00E9ponse
form.hottext=Hottext
form.testPart.navigationMode.nonlinear=Non lin\u00E9aire
hotspot.layout=Couleur des hotpsots
fib.expectedLength=Taille du trou
form.imd.correct.text=Feedback lors du choix de toutes les r\u00E9ponses correctes
form.imd.shuffle=Ordre des r\u00E9ponses al\u00E9atoires
form.testPart.navigationMode=Navigation
warning.conversion.list=Des incompatibilit\u00E9s avec l'\u00E9diteur ont \u00E9t\u00E9 d\u00E9tect\u00E9es\:
new.numerical=$\:new.fib.numerical
new.sc=Choix simple
form.imd.background.resize=Optimiser la taille de l'image pour le web
new.essay=Texte libre
form.unkown=Inconnu
feedback.additional.help=Retour d'information conditionnel.
math.operator.smallerEquals=<\=
form.pool=Banque de questions
variable.response=R\u00E9ponse
feedback.hint.help=Conseil\: un bouton appara\u00EEt pour montr\u00E9 le conseil tant que la r\u00E9ponse n'a pas \u00E9t\u00E9 soumise.
form.imd.layout.top=En haut
form.kprim=Kprim
error.assessment.test=Le fichier n'a pas pu \u00EAtre lu. Il semble soit corrompu soit au mauvais format.
item.session.control.show.solution=Afficher la solution
tools.export.header=$org.olat.ims.qti.editor\:tools.export.header
table.header.learning.time=Dur\u00E9e
#Mon Aug 26 19:51:39 CEST 2019
Diff\u00E9rentes=alternatives
MULTIPLE=Choix multiple
SINGLE=Choix simple
add=Ajouter
add.additional.feedback=Ajouter un retour d'information conditionnel
form.section.selection_pre.hover=Indiquez si la totalit\u00E9 ou au contraire un certain nombre seulement de questions seront affich\u00E9s dans le test.
warning.atleastonesection=La section ne peut pas \u00EAtre supprim\u00E9e. Un test ou un "test part" doit contenir au moins une section.
form.score.answer.points=Points
form.imd.descr=Question
editor.sc.title=Choix simple
error.missing.section=Vous devez avoir au moins une section dans un test ou une partie de test.
new.matchtruefalse=True/false
form.section.visible=Titre des sections visibles dans l'\u00E9valuation
form.imd.condition=Condition(s)
add.answered.feedback=Ajouter un retour d'information si r\u00E9ponse
new.drawing=Dessin
new.circle=Cercle
form.imd.layout.left=Gauche
hotspot.layout.green=Vert
form.imd.limittries=$org.olat.ims.qti.editor\:form.imd.limittries
form.imd.additional.title=Titre
new.section=Section
add.correct.feedback=Ajouter un retour d'informations si toutes les r\u00E9ponses correctes
add.correct.feedback.single=Ajouter un retour d'information si la r\u00E9ponse correcte
add.correctSolution.feedback=Ajouter solution correcte
add.empty.feedback=Ajouter un retour d'information si r\u00E9ponse manquante
add.feedback.menu=Ajouter un retour d'information
form.hotspot=Hotspot
match.true=Correct
form.imd.correctSolution.title=Titre
warning.alien.assessment.test=Ce test ne peut pas \u00EAtre \u00E9diter par l'\u00E9diteur int\u00E9gr\u00E9 d'OpenOlat.
table.header.comment=Autoriser commentaires
feedback.answered.help=Retour d'information si r\u00E9ponse\: ce retour d'information appara\u00EEt d\u00E8s que l'utilisateur a donn\u00E9 une r\u00E9ponse, correcte ou non.
add.hint.feedback=Ajouter un indice de solution
add.incorrect.feedback=Ajouter un retour d'information si r\u00E9ponse fausse
add.match.column=Ajouter une colonne
table.header.attempts=Tentatives
form.choice=Choix
table.header.title=Titre
form.score.assessment.all.correct=Tous les r\u00E9ponses correctes
math.operator.biggerEquals=>\=
add.correct.feedback=Ajouter un retour d'informations si toutes les r\u00E9ponses correctes
form.imd.layout.right=Droite
form.section.selection_all=$org.olat.ims.qti.editor\:form.section.selection_all
add.match.row=Ajouter une ligne
answers=R\u00E9ponses
change.elements=Edition
configuration.option.inherited=H\u00E9rit\u00E9
configuration.option.inherited.val=H\u00E9rit\u00E9 ({0})
configuration.option.no=Non
configuration.option.yes=Oui
general.master.identifier=$org.olat.modules.qpool.ui\:general.master.identifier
export.qpool.successful=$org.olat.ims.qti.editor\:export.qpool.successful
configuration.overview=Aper\u00E7u de la configuration du test
item.session.control.show.solution.hint=Lors de la revue, les solutions sont \u00E9galement pr\u00E9sent\u00E9es.
add.correctSolution.feedback=Ajouter solution correcte
form.imd.layout.bottom=En bas
general.identifier=$org.olat.modules.qpool.ui\:general.identifier
add=Ajouter
form.imd.layout.match.targets.short=Cat\u00E9gories
form.imd.background=Image de fond
table.header.identifier=ID question
new.testpart=Partie de test
form.imd.correct.single.text=Retour d'information pour r\u00E9ponse correcte
title.add=$org.olat.ims.qti.editor\:title.add
form.testPart.navigationMode.hint=Lin\u00E9aire\: les questions doivent \u00EAtre r\u00E9solues dans l'ordre. Non lin\u00E9aire\: l'utilisateur peut choisir l'ordre dans lequel il r\u00E9pond aux questions.
table.header.review=Autoriser \u00E0 revoir
new.answer=Nouvelle r\u00E9ponse
new.spots=Ajouter un emplacement
form.drawing=Dessin
convert=Convertir
convert.alien=Convertir
convert.to=Transformer en\:
copy.at=Copi\u00E9 le
copy.qpool.question=Faire une copie et l'\u00E9diter
correct.answers=Correct
cut.value=Nombre de points n\u00E9cessaire pour "r\u00E9ussi"
delete=Effacer
delete.item=$org.olat.ims.qti.editor\:delete.item
delete.section=$org.olat.ims.qti.editor\:delete.section
delete.testPart=Voulez-vous vraiment effacer cette partie du test et toutes les questions qu'elle contient?
duration.h=h
duration.m=m
duration.s=s
editor.sc.title=Choix simple
editor.unkown.title=Interaction inconnue
error.assessment.item=$\:error.assessment.test
form.imd.wrong.kprim=Faux
add.empty.feedback=Ajouter un retour d'information si r\u00E9ponse manquante
error.assessment.test=Le fichier n'a pas pu \u00EAtre lu. Il semble soit corrompu soit au mauvais format.
error.cannot.create.section=Vous ne pouvez pas cr\u00E9er une section ici.
error.cannot.delete=Vous ne pouvez pas effacer cet \u00E9l\u00E9ment.
error.cannot.remove.feedback=Le retour d'information ne pas \u00EAtre effac\u00E9 si le test est d\u00E9j\u00E0 utilis\u00E9
error.cardinality.answer=Choix simple n'autorise qu'une seule r\u00E9ponse correcte.
tools.export.docx=$org.olat.ims.qti.editor\:tools.export.docx
form.score.answer.summary=Aper\u00E7u de la r\u00E9ponse
convert.alien=Convertir
form.imd.alignment=Alignement des cases \u00E0 cocher
preview=Aper\u00E7u
warning.templates=Cette question contient des "Templates", une fonction que l'\u00E9diteur ne supporte pas.
tools.reload.from.files=Recharger les fichiers et rafra\u00EEchir le cache
fib.tolerance.mode.relative=Relatif
error.double=$org.olat.ims.qti21.ui\:error.double
error.import.question=Une erreur inattendue s'est produite pendant l'importation de la question.
error.integer=$org.olat.ims.qti21.ui\:error.integer
error.lock=Ce test / questionnaire est \u00E9dit\u00E9 par {0} en ce moment et est bloqu\u00E9.
error.lock.title=Test bloqu\u00E9
error.lower.tolerance=La limite inf\u00E9rieure doit \u00EAtre plus petite ou \u00E9gale \u00E0 la solution.
math.operator.bigger=>
form.imd.title=Titre
form.test.incorrect.text=Feedback lors du choix d'une r\u00E9ponse incorrecte
error.mimetype=$org.olat.core.commons.modules.bc\:WrongMimeType
error.min.score.bigger.max=Le nombre de points minimum doit \u00EAtre plus petit que le nombre de points maximum.
error.missing.fib=La question doit contenir au moins un text \u00E0 trou ou une entr\u00E9e num\u00E9rique.
error.missing.hottext=La question doit contenir au moins un hottext.
new.hottext.start=C'est un hot
rights.owners=$org.olat.modules.qpool.ui\:rights.owners
form.score=Score
item.session.control.allow.review.hint=Apr\u00E8s avoir termin\u00E9 le test, il est possible de parcourir et revoir le test.
form.imd.feedback.title=Titre
new.hottext.text=texte
tools.export.qpool=$org.olat.ims.qti.editor\:tools.export.qpool
form.imd.responsive=Convient pour mobile
correct.answers=Correct
match.unanswered=Sans r\u00E9ponse
warning.item.session.control.attempts=Cette limitation a un impact sur le nombre d'essai par questions.<br/>V\u00E9rifiez les param\u00E8tres de vos questions.
fib.tolerance.mode.relative.help=Le solution est accept\u00E9 entre la limite inf\u00E9rieure et sup\u00E9rieure. La limite peut \u00EAtre un nombre relatif exprim\u00E9 en pour cent, exemple, la solution est 20, limite inf\u00E9rieure 10, limite sup\u00E9rieure 10 &rarr; toutes les r\u00E9ponses entre 18 et 22 sont correctes. La limite inf\u00E9rieure signifie moins 10% (20-2) and la limite sup\u00E9rieur plus 10% (20+2).
max.choices=Nombre max. de r\u00E9ponses
table.header.skipping=Autoriser \u00E0 sauter
time.limit.max=Limite de temps (minute)
form.section.shuffle=Ordre al\u00E9atoire des questions?
feedback.empty.help=Retour d'information si r\u00E9ponse manquante\: ce retour d'information appear tant que la r\u00E9ponse est vide.
warning.alien.assessment.item=Cette question ne peut pas \u00EAtre \u00E9dit\u00E9e par l'\u00E9diteur int\u00E9gr\u00E9 d'OpenOlat.
form.test.incorrect.title=Titre
tools.reload.from.files.tooltip=Visible aux seuls administrateurs
form.imd.answered.title=Titre
error.missing.section=Vous devez avoir au moins une section dans un test ou une partie de test.
error.need.correct.answer=Vous devez s\u00E9lectionner au moins une r\u00E9ponse comme correcte.
error.positive.double=Seul des nombres positives sont permis. Par exemple\: 15.0, 5.5, 10
error.singlechoice=En s\u00E9lectionner exactement une
feedback.incorrect.help=Retour d'information si les r\u00E9ponses incorrects\: le feedback appara\u00EEt d\u00E8s qu'une r\u00E9ponse est fausse. Par exemple dans un text \u00E0 trous qui consiste en cinquante trous et qu'une seule r\u00E9ponse est fausse.
feedback.correct.help=Retour d'informations si toutes les r\u00E9ponses sont correctes\: le retour d'informations n'appara\u00EEt que si toute les r\u00E9ponses sont correctes.
inherit=H\u00E9rit\u00E9
error.upper.tolerance=La limite sup\u00E9rieure doit \u00EAtre plus grande ou \u00E9gale \u00E0 la solution.
essay.expectedLength=Nombre de lettres
essay.max.strings=Nombre de mots max.
essay.min.strings=Nombre de mots min.
essay.rows=Hauteur (nombre de lignes)
tools.import.qpool=$org.olat.ims.qti.editor\:tools.import.qpool
form.imd.correctSolution.text=Solution correcte
form.imd.incorrect.title=Titre
math.operator.notEquals=\!\=
hour.short=h
variable.score=Points
new.match=Match
answers=R\u00E9ponses
minute.short=m
convert=Convertir
form.imd.match.multiple.choice=Multiple choice
item.session.control.allow.comment=Autoriser les commentaires
form.metadata.creationDate=Cr\u00E9\u00E9 le
item.session.control.allow.skipping.hint=Un test peut \u00EAtre termin\u00E9 avant d'avoir r\u00E9pondu \u00E0 toutes les questions.
new.kprim=Kprim
cut.value=Nombre de points n\u00E9cessaire pour "r\u00E9ussi"
new.rectangle=Rectangle
delete.item=$org.olat.ims.qti.editor\:delete.item
export.qpool.successful=$org.olat.ims.qti.editor\:export.qpool.successful
feedback.additional.help=Retour d'information conditionnel.
feedback.answered.help=Retour d'information si r\u00E9ponse\: ce retour d'information appara\u00EEt d\u00E8s que l'utilisateur a donn\u00E9 une r\u00E9ponse, correcte ou non.
feedback.correct.help=Retour d'informations si toutes les r\u00E9ponses sont correctes\: le retour d'informations n'appara\u00EEt que si toute les r\u00E9ponses sont correctes.
feedback.correct.single.help=Retour d'information si r\u00E9ponse correcte\: ce retour d'information appara\u00EEt seulement si la r\u00E9ponse donn\u00E9e est correcte.
feedback.correctSolution.help=Solution correcte\: la solution est montr\u00E9e automatiquement si la r\u00E9ponse est fausse.
feedback.empty.help=Retour d'information si r\u00E9ponse manquante\: ce retour d'information appear tant que la r\u00E9ponse est vide.
feedback.hint.help=Conseil\: un bouton appara\u00EEt pour montr\u00E9 le conseil tant que la r\u00E9ponse n'a pas \u00E9t\u00E9 soumise.
feedback.incorrect.help=Retour d'information si les r\u00E9ponses incorrects\: le feedback appara\u00EEt d\u00E8s qu'une r\u00E9ponse est fausse. Par exemple dans un text \u00E0 trous qui consiste en cinquante trous et qu'une seule r\u00E9ponse est fausse.
fib.alternative=Alternatives
fib.alternative.help=Avec le + peuvent \u00EAtre ajout\u00E9es diff\u00E9rentes alternatives.<br>Les mots s\u00E9par\u00E9es par des points-virgules seront chacun sauv\u00E9s comme une solution.
fib.caseSensitive=Sensible aux majuscules / minuscules
fib.expectedLength=Taille du trou
fib.placeholder=Example g\u00E9n\u00E9rique
hotspot.layout.inverted=Invers\u00E9
form.imd.mimetype=Type de fichier
form.score.answer.correct=Correct
error.import.question=Une erreur inattendue s'est produite pendant l'importation de la question.
warning.copy.from.pool=La question a \u00E9t\u00E9 copi\u00E9e depuis la banque de questions. Vous pouvez retrouver l'originale avec l'ID master.
form.testPart.navigationMode.linear=Lin\u00E9aire
form.imd.layout.match.targets=Cat\u00E9gories
form.imd.match.single.multiple=Type
tools.change.copy=$org.olat.ims.qti.editor\:tools.change.copy
fib.solution=Solution
fib.tolerance.low=Limite inf\u00E9rieure
fib.tolerance.mode=Type de tol\u00E9rance
fib.tolerance.mode.absolute=Absolu
form.imd.empty.text=Feedback si aucune r\u00E9ponse donn\u00E9e
add.match.row=Ajouter une ligne
error.positive.double=Seul des nombres positives sont permis. Par exemple\: 15.0, 5.5, 10
preview.solution=Aper\u00E7u de la solution
warning.in.use=La ressource est d\u00E9j\u00E0 utilis\u00E9e pour au moins une \u00E9valuation. L'\u00E9dition en est limit\u00E9e.
fib.tolerance.mode.absolute.example=Un nombre, par exemple 1.5 ou 1322
form.imd.feedback.text=Retour d'information
item.session.control.allow.comment.hint=Un participant au test peut prendre des notes personnelles. La fonction doit \u00EAtre activ\u00E9e sous "Options".
error.min.score.bigger.max=Le nombre de points minimum doit \u00EAtre plus petit que le nombre de points maximum.
copy.qpool.question=Faire une copie et l'\u00E9diter
item.session.control.allow.skipping=Autoriser \u00E0 sauter les questions
form.test.correct.text=Feedback lors du choix de tous les r\u00E9ponses correctes
form.essay=Texte libre
fib.tolerance.mode.absolute.help=La solution est accept\u00E9 si elle se trouve entre la limite sup\u00E9rieure et inf\u00E9rieure. La limite est un nombre absolu. Exemple\: la solution est 20, la limite inf\u00E9rieure 18, la limite sup\u00E9rieure 22 &arr; toutes les solutions entre 18 et 22 sont correctes.
fib.tolerance.mode.exact=Exact
fib.tolerance.mode.exact.help=La solution doit \u00EAtre exactement celle entr\u00E9e sous "Solution".
fib.tolerance.mode.relative=Relatif
fib.tolerance.mode.relative.example=Pourcentage, par example 15 ou 99.0
fib.tolerance.mode.relative.help=Le solution est accept\u00E9 entre la limite inf\u00E9rieure et sup\u00E9rieure. La limite peut \u00EAtre un nombre relatif exprim\u00E9 en pour cent, exemple, la solution est 20, limite inf\u00E9rieure 10, limite sup\u00E9rieure 10 &rarr; toutes les r\u00E9ponses entre 18 et 22 sont correctes. La limite inf\u00E9rieure signifie moins 10% (20-2) and la limite sup\u00E9rieur plus 10% (20+2).
fib.tolerance.up=Limite sup\u00E9rieur
file=Fichier
form.choice=Choix
form.drawing=Dessin
form.essay=Texte libre
form.feedback=Feedback
form.imd.answered.text=Retour d'information par question
new.fib=Texte \u00E0 trou
warning.unsupported.feedbacks=Cette question contient des retours d'information que cet \u00E9diteur ne supporte pas. Ils seront perdus apr\u00E8s la conversion.
convert.to=Transformer en\:
error.upper.tolerance=La limite sup\u00E9rieure doit \u00EAtre plus grande ou \u00E9gale \u00E0 la solution.
fib.solution=Solution
error.cannot.remove.feedback=Le retour d'information ne pas \u00EAtre effac\u00E9 si le test est d\u00E9j\u00E0 utilis\u00E9
essay.expectedLength=Nombre de lettres
error.lock.title=Test bloqu\u00E9
configuration.option.inherited.val=H\u00E9rit\u00E9 ({0})
error.need.correct.answer=Vous devez s\u00E9lectionner au moins une r\u00E9ponse comme correcte.
form.imd.hint.text=Indice de solution
warning.alien.feedbacks=Cette question contient des retours d'informations que cet \u00E9diteur ne supporte pas. Ils seront perdus apr\u00E8s la conversion.
table.header.points=Points
add.incorrect.feedback=Ajouter un retour d'information si r\u00E9ponse fausse
fib.alternative.help=Avec le + peuvent \u00EAtre ajout\u00E9es diff\u00E9rentes alternatives.<br>Les mots s\u00E9par\u00E9es par des points-virgules seront chacun sauv\u00E9s comme une solution.
error.integer=$org.olat.ims.qti21.ui\:error.integer
min.choices.unlimited=Illimit\u00E9
add.correct.feedback.single=Ajouter un retour d'information si la r\u00E9ponse correcte
error.cannot.create.section=Vous ne pouvez pas cr\u00E9er une section ici.
error.cannot.delete=Vous ne pouvez pas effacer cet \u00E9l\u00E9ment.
min.choices=Nombre min. de r\u00E9ponse(s)
error.lock=Ce test / questionnaire est \u00E9dit\u00E9 par {0} en ce moment et est bloqu\u00E9.
SINGLE=Choix simple
fib.alternative=Alternatives
configuration.option.no=Non
form.fib=Texte \u00E0 trous
form.hotspot=Hotspot
form.hottext=Hottext
form.imd.additional.text=Retour d'information {0}
variable.attempts=Tentatives de r\u00E9ponse
form.section.selection_pre=Nombre de questions dans la section
form.score.assessment.mode=M\u00E9thode d'\u00E9valuation
MULTIPLE=Choix multiple
new.hotspot=Hotspot
new.upload=T\u00E9l\u00E9verser un fichier
essay.max.strings=Nombre de mots max.
tools.change.delete=$org.olat.ims.qti.editor\:tools.change.delete
delete.testPart=Voulez-vous vraiment effacer cette partie du test et toutes les questions qu'elle contient?
table.header.type=Type
copy.at=Copi\u00E9 le
min.score=Nombre de points minimum
item.session.control.allow.review=Autoriser la revue des questions
error.double=$org.olat.ims.qti21.ui\:error.double
form.score.assessment.per.answer=Points par r\u00E9ponse
form.imd.additional.title=Titre
form.imd.alignment=Alignement des cases \u00E0 cocher
form.imd.alignment.left=Gauche
form.imd.alignment.right=Droite
form.imd.answer=R\u00E9ponse
form.imd.answered.text=Retour d'information par question
form.imd.answered.title=Titre
form.imd.background=Image de fond
form.imd.background.resize=Optimiser la taille de l'image pour le web
form.imd.background.resize.no=Laisser inchang\u00E9
form.imd.match.single.choice=Single choice
form.imd.layout=$org.olat.ims.qti.editor\:form.imd.layout
form.metadata.initialAuthor=Cr\u00E9\u00E9 par
new.hottext=Hottext
warning.text.after.interaction=Cette question contient un bloc de texte apr\u00E8s l'\u00E9l\u00E9ment interactif. Ce n'est pas support\u00E9 par l'\u00E9diteur et cette partie du texte sera perdue.
form.imd.cardinality=Type
form.imd.condition=Condition(s)
form.imd.correct.kprim=Vrai
form.imd.correct.single.text=Retour d'information pour r\u00E9ponse correcte
form.imd.correct.spots=Emplacement correct
match.false=Faux
error.mimetype=$org.olat.core.commons.modules.bc\:WrongMimeType
fib.tolerance.up=Limite sup\u00E9rieur
form.imd.correct.text=Feedback lors du choix de toutes les r\u00E9ponses correctes
form.imd.correct.title=Titre
form.imd.correctSolution.text=Solution correcte
form.imd.correctSolution.text.word=$\:form.imd.correctSolution.text (seulement pour export Word)
form.imd.correctSolution.title=Titre
form.imd.descr=Question
form.imd.empty.text=Feedback si aucune r\u00E9ponse donn\u00E9e
form.imd.empty.title=Titre
form.imd.feedback.text=Retour d'information
form.imd.feedback.title=Titre
form.imd.hint.text=Indice de solution
form.imd.hint.title=Titre
form.imd.incorrect.text=Feedback lors de r\u00E9ponses incorrectes
form.imd.incorrect.title=Titre
form.imd.layout=$org.olat.ims.qti.editor\:form.imd.layout
form.imd.layout.bottom=En bas
form.imd.layout.horizontal=$org.olat.ims.qti.editor\:form.imd.layout.horizontal
form.imd.layout.left=Gauche
form.imd.layout.match.sources=Objet
new.fib.numerical=Entr\u00E9e num\u00E9rique
math.operator.equals=\=
table.header.license=Licence
fib.caseSensitive=Sensible aux majuscules / minuscules
fib.tolerance.mode.exact=Exact
lifecycle.version=$org.olat.modules.qpool.ui\:lifecycle.version
form.imd.layout.match.targets=Cat\u00E9gories
form.imd.layout.match.targets.short=Cat\u00E9gories
form.imd.layout.right=Droite
form.imd.layout.top=En haut
form.imd.layout.vertical=$org.olat.ims.qti.editor\:form.imd.layout.vertical
form.imd.correct.kprim=Vrai
Diff\u00E9rentes=alternatives
hotspot.layout.shadow=Activ\u00E9 l'ombrage
table.header.feedback=Feedback
fib.tolerance.mode.absolute.help=La solution est accept\u00E9 si elle se trouve entre la limite sup\u00E9rieure et inf\u00E9rieure. La limite est un nombre absolu. Exemple\: la solution est 20, la limite inf\u00E9rieure 18, la limite sup\u00E9rieure 22 &arr; toutes les solutions entre 18 et 22 sont correctes.
item.session.control.attempts.hint=Cette limitation du nombre d'essai est seulement valide pour les parties de test et non pour le test entier. Le nombre d'essai pour le test entier peut \u00EAtre limit\u00E9 dans "Options".
fib.tolerance.mode=Type de tol\u00E9rance
fib.tolerance.low=Limite inf\u00E9rieure
item.session.control.attempts=Tentatives
essay.min.strings=Nombre de mots min.
form.imd.limittries=$org.olat.ims.qti.editor\:form.imd.limittries
form.imd.match.multiple.choice=Multiple choice
form.imd.match.single.choice=Single choice
form.imd.match.single.multiple=Type
form.imd.mimetype=Type de fichier
form.imd.responsive=Convient pour mobile
form.imd.responsive.hint=L'image de fond s'adaptera \u00E0 la taille de l'\u00E9cran. Attention\: si l'image deviendra plus petites, les hotspots seront \u00E9galement plus petits\!
form.imd.rubric=Description
form.imd.shuffle=Ordre des r\u00E9ponses al\u00E9atoires
form.imd.title=Titre
form.imd.wrong.kprim=Faux
form.kprim=Kprim
form.match=Match
form.metadata=M\u00E9tadonn\u00E9es
change.elements=Edition
delete=Effacer
form.imd.alignment.left=Gauche
form.metadata.creationDate=Cr\u00E9\u00E9 le
form.metadata.description=Description
form.metadata.initialAuthor=Cr\u00E9\u00E9 par
form.metadata.title=Titre
form.imd.correctSolution.text.word=$\:form.imd.correctSolution.text (seulement pour export Word)
form.imd.layout.horizontal=$org.olat.ims.qti.editor\:form.imd.layout.horizontal
feedback.correct.single.help=Retour d'information si r\u00E9ponse correcte\: ce retour d'information appara\u00EEt seulement si la r\u00E9ponse donn\u00E9e est correcte.
form.upload=T\u00E9l\u00E9verser un fichier
warning.custom.operator=Une extension non-standard a \u00E9t\u00E9 trouv\u00E9e que cette \u00E9diteur ne la supporte pas.
warning.atleastone=Choisir au moins un \u00E9l\u00E9ment s'il vous pla\u00EEt.
new.matchdraganddrop=Drag and Drop
fib.tolerance.mode.exact.help=La solution doit \u00EAtre exactement celle entr\u00E9e sous "Solution".
form.imd.empty.title=Titre
fib.tolerance.mode.relative.example=Pourcentage, par example 15 ou 99.0
new.mc=Choix multiples
feedback.correctSolution.help=Solution correcte\: la solution est montr\u00E9e automatiquement si la r\u00E9ponse est fausse.
configuration.option.inherited=H\u00E9rit\u00E9
form.pool=Banque de questions
form.score=Score
form.score.answer.correct=Correct
form.score.answer.points=Points
form.score.answer.summary=Aper\u00E7u de la r\u00E9ponse
form.score.assessment.all.correct=Tous les r\u00E9ponses correctes
form.score.assessment.mode=M\u00E9thode d'\u00E9valuation
form.score.assessment.per.answer=Points par r\u00E9ponse
form.section.selection_all=$org.olat.ims.qti.editor\:form.section.selection_all
form.section.selection_pre=Nombre de questions dans la section
form.section.selection_pre.hover=Indiquez si la totalit\u00E9 ou au contraire un certain nombre seulement de questions seront affich\u00E9s dans le test.
form.section.shuffle=Ordre al\u00E9atoire des questions?
form.section.visible=Titre des sections visibles dans l'\u00E9valuation
form.test.correct.text=Feedback lors du choix de tous les r\u00E9ponses correctes
form.test.correct.title=Titre
form.test.incorrect.text=Feedback lors du choix d'une r\u00E9ponse incorrecte
form.test.incorrect.title=Titre
form.testPart.navigationMode=Navigation
form.testPart.navigationMode.hint=Lin\u00E9aire\: les questions doivent \u00EAtre r\u00E9solues dans l'ordre. Non lin\u00E9aire\: l'utilisateur peut choisir l'ordre dans lequel il r\u00E9pond aux questions.
form.testPart.navigationMode.linear=Lin\u00E9aire
form.testPart.navigationMode.nonlinear=Non lin\u00E9aire
form.unkown=Inconnu
form.upload=T\u00E9l\u00E9verser un fichier
general.identifier=$org.olat.modules.qpool.ui\:general.identifier
general.master.identifier=$org.olat.modules.qpool.ui\:general.master.identifier
hotspot.layout=Couleur des hotpsots
hotspot.layout.green=Vert
hotspot.layout.inverted=Invers\u00E9
hotspot.layout.light=Clair
hotspot.layout.purple=Violet
hotspot.layout.shadow=Activ\u00E9 l'ombrage
hotspot.layout.standard=Bleu standard
hour.short=h
inherit=H\u00E9rit\u00E9
item.session.control.allow.comment=Autoriser les commentaires
item.session.control.allow.comment.hint=Un participant au test peut prendre des notes personnelles. La fonction doit \u00EAtre activ\u00E9e sous "Options".
item.session.control.allow.review=Autoriser la revue des questions
item.session.control.allow.review.hint=Apr\u00E8s avoir termin\u00E9 le test, il est possible de parcourir et revoir le test.
item.session.control.allow.skipping=Autoriser \u00E0 sauter les questions
item.session.control.allow.skipping.hint=Un test peut \u00EAtre termin\u00E9 avant d'avoir r\u00E9pondu \u00E0 toutes les questions.
item.session.control.attempts=Tentatives
item.session.control.attempts.hint=Cette limitation du nombre d'essai est seulement valide pour les parties de test et non pour le test entier. Le nombre d'essai pour le test entier peut \u00EAtre limit\u00E9 dans "Options".
item.session.control.show.solution=Afficher la solution
item.session.control.show.solution.hint=Lors de la revue, les solutions sont \u00E9galement pr\u00E9sent\u00E9es.
lifecycle.version=$org.olat.modules.qpool.ui\:lifecycle.version
match.false=Faux
match.true=Correct
match.unanswered=Sans r\u00E9ponse
math.operator.bigger=>
math.operator.biggerEquals=>\=
math.operator.equals=\=
math.operator.notEquals=\!\=
math.operator.smaller=<
duration.h=h
math.operator.smallerEquals=<\=
max.choices=Nombre max. de r\u00E9ponses
max.choices.unlimited=Quelconque
max.score=Nombre de points maximum
form.imd.rubric=Description
table.header.solution=Montrer solutions
hotspot.layout.light=Clair
form.imd.cardinality=Type
form.match=Match
editor.unkown.title=Interaction inconnue
duration.m=m
error.missing.fib=La question doit contenir au moins un text \u00E0 trou ou une entr\u00E9e num\u00E9rique.
min.choices=Nombre min. de r\u00E9ponse(s)
min.choices.unlimited=Illimit\u00E9
min.score=Nombre de points minimum
minute.short=m
new.answer=Nouvelle r\u00E9ponse
new.circle=Cercle
new.drawing=Dessin
new.elements=Ajouter des \u00E9l\u00E9ments
form.imd.incorrect.text=Feedback lors de r\u00E9ponses incorrectes
hotspot.layout.purple=Violet
duration.s=s
form.fib=Texte \u00E0 trous
new.essay=Texte libre
new.fib=Texte \u00E0 trou
new.fib.numerical=Entr\u00E9e num\u00E9rique
new.hotspot=Hotspot
new.hottext=Hottext
new.hottext.start=C'est un hot
new.hottext.text=texte
new.kprim=Kprim
new.match=Match
new.matchdraganddrop=Drag and Drop
new.matchtruefalse=True/false
new.mc=Choix multiples
new.numerical=$\:new.fib.numerical
new.rectangle=Rectangle
new.sc=Choix simple
new.section=Section
new.spots=Ajouter un emplacement
new.testpart=Partie de test
new.upload=T\u00E9l\u00E9verser un fichier
preview=Aper\u00E7u
preview.solution=Aper\u00E7u de la solution
rights.owners=$org.olat.modules.qpool.ui\:rights.owners
table.header.attempts=Tentatives
table.header.comment=Autoriser commentaires
table.header.feedback=Feedback
table.header.identifier=ID question
table.header.learning.time=Dur\u00E9e
table.header.license=Licence
table.header.points=Points
table.header.review=Autoriser \u00E0 revoir
table.header.skipping=Autoriser \u00E0 sauter
table.header.solution=Montrer solutions
table.header.title=Titre
table.header.type=Type
time.limit.max=Limite de temps (minute)
title.add=$org.olat.ims.qti.editor\:title.add
tools.change.copy=$org.olat.ims.qti.editor\:tools.change.copy
tools.change.delete=$org.olat.ims.qti.editor\:tools.change.delete
tools.export.docx=$org.olat.ims.qti.editor\:tools.export.docx
tools.export.header=$org.olat.ims.qti.editor\:tools.export.header
tools.export.qpool=$org.olat.ims.qti.editor\:tools.export.qpool
tools.import.qpool=$org.olat.ims.qti.editor\:tools.import.qpool
tools.import.table=$org.olat.ims.qti.editor\:tools.import.table
tools.reload.from.files=Recharger les fichiers et rafra\u00EEchir le cache
tools.reload.from.files.tooltip=Visible aux seuls administrateurs
variable.attempts=Tentatives de r\u00E9ponse
variable.response=R\u00E9ponse
variable.score=Points
warning.alien.assessment.item=Cette question ne peut pas \u00EAtre \u00E9dit\u00E9e par l'\u00E9diteur int\u00E9gr\u00E9 d'OpenOlat.
warning.alien.assessment.test=Ce test ne peut pas \u00EAtre \u00E9diter par l'\u00E9diteur int\u00E9gr\u00E9 d'OpenOlat.
warning.alien.feedbacks=Cette question contient des retours d'informations que cet \u00E9diteur ne supporte pas. Ils seront perdus apr\u00E8s la conversion.
warning.atleastone=Choisir au moins un \u00E9l\u00E9ment s'il vous pla\u00EEt.
warning.atleastonesection=La section ne peut pas \u00EAtre supprim\u00E9e. Un test ou un "test part" doit contenir au moins une section.
warning.conversion.list=Des incompatibilit\u00E9s avec l'\u00E9diteur ont \u00E9t\u00E9 d\u00E9tect\u00E9es\:
warning.conversion.standard=Il existe un risque que des donn\u00E9es soient perdues bien qu'aucune incompatibilit\u00E9 n'ait \u00E9t\u00E9 d\u00E9tect\u00E9e.
warning.copy.from.pool=La question a \u00E9t\u00E9 copi\u00E9e depuis la banque de questions. Vous pouvez retrouver l'originale avec l'ID master.
warning.correct.answer.score=La r\u00E9ponse correcte ne donne pas de point mais une incorrecte si.
warning.correct.answers.score=Les r\u00E9ponses incorrectes ne donnent pas de points mais une incorrecte si.
warning.custom.operator=Une extension non-standard a \u00E9t\u00E9 trouv\u00E9e que cette \u00E9diteur ne la supporte pas.
warning.feedback.cutvalue=Le feedback est bas\u00E9 sur la valeur "Points n\u00E9cessaire pour 'R\u00E9ussi'" et cell-ci doit \u00EAtre d'abord d\u00E9finie.
warning.in.use=La ressource est d\u00E9j\u00E0 utilis\u00E9e pour au moins une \u00E9valuation. L'\u00E9dition en est limit\u00E9e.
warning.item.session.control.attempts=Cette limitation a un impact sur le nombre d'essai par questions.<br/>V\u00E9rifiez les param\u00E8tres de vos questions.
warning.templates=Cette question contient des "Templates", une fonction que l'\u00E9diteur ne supporte pas.
warning.text.after.interaction=Cette question contient un bloc de texte apr\u00E8s l'\u00E9l\u00E9ment interactif. Ce n'est pas support\u00E9 par l'\u00E9diteur et cette partie du texte sera perdue.
warning.unsupported.feedbacks=Cette question contient des retours d'information que cet \u00E9diteur ne supporte pas. Ils seront perdus apr\u00E8s la conversion.
......@@ -19,6 +19,9 @@
*/
package org.olat.resource.accesscontrol.provider.paypalcheckout;
import java.util.Arrays;
import java.util.List;
import org.olat.core.configuration.AbstractSpringModule;
import org.olat.core.util.coordinate.CoordinatorManager;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -38,6 +41,31 @@ public class PaypalCheckoutModule extends AbstractSpringModule {
private static final String PAYPAL_CLIENT_SECRET = "paypal.checkout.v2.client.secret";
private static final String PAYPAL_CURRENCY = "paypal.checkout.v2.currency";
private static final String[] currencies = new String[] {
"AUD",
"CAD",
"CZK",
"DKK",
"EUR",
"HKD",
"HUF",
"ILS",
"JPY",
"MXN",
"NOK",
"NZD",
"PHP",
"PLN",
"GBP",
"SGD",
"SEK",
"CHF",
"TWD",
"THB",
"TRY",
"USD"
};
@Value("${paypal.checkout.v2.client.id}")
private String clientId;
@Value("${paypal.checkout.v2.client.secret}")
......@@ -82,6 +110,10 @@ public class PaypalCheckoutModule extends AbstractSpringModule {
setSecretStringProperty(PAYPAL_CLIENT_SECRET, secret, true);
}
public List<String> getPaypalCurrencies() {
return Arrays.asList(currencies);
}
public String getPaypalCurrency() {
return paypalCurrency;
}
......
......@@ -20,6 +20,7 @@
package org.olat.resource.accesscontrol.provider.paypalcheckout.ui;
import java.math.BigDecimal;
import java.util.List;
import org.olat.core.gui.UserRequest;
import org.olat.core.gui.components.form.flexible.FormItemContainer;
......@@ -27,6 +28,7 @@ import org.olat.core.gui.components.form.flexible.elements.DateChooser;
import org.olat.core.gui.components.form.flexible.elements.MultipleSelectionElement;
import org.olat.core.gui.components.form.flexible.elements.SingleSelection;
import org.olat.core.gui.components.form.flexible.elements.TextElement;
import org.olat.core.gui.components.util.KeyValues;
import org.olat.core.gui.control.Controller;
import org.olat.core.gui.control.WindowControl;
import org.olat.core.util.StringHelper;
......@@ -60,31 +62,6 @@ public class PaypalCheckoutAccessConfigurationController extends AbstractConfigu
private static final String[] vatKeys = new String[]{"on"};
private final String[] vatValues;
private static final String[] currencies = new String[] {
"AUD",
"CAD",
"CZK",
"DKK",
"EUR",
"HKD",
"HUF",
"ILS",
"JPY",
"MXN",
"NOK",
"NZD",
"PHP",
"PLN",
"GBP",
"SGD",
"SEK",
"CHF",
"TWD",
"THB",
"TRY",
"USD"
};
private OfferAccess link;
@Autowired
......@@ -123,12 +100,15 @@ public class PaypalCheckoutAccessConfigurationController extends AbstractConfigu
amount = PriceFormat.format(price.getAmount());
}
priceEl = uifactory.addTextElement("price", "price", 32, amount, formLayout);
currencyEl = uifactory.addDropdownSingleselect("currency", "currency", formLayout, currencies, currencies, null);
KeyValues currencies = new KeyValues();
List<String> paypalCurrencies = paypalModule.getPaypalCurrencies();
paypalCurrencies.forEach(currency -> currencies.add(KeyValues.entry(currency, currency)));
currencyEl = uifactory.addDropdownSingleselect("currency", "currency", formLayout, currencies.keys(), currencies.values(), null);
boolean selected = false;
if(price != null && price.getCurrencyCode() != null) {
for(String currency:currencies) {
for(String currency:paypalCurrencies) {
if(currency.equals(price.getCurrencyCode())) {
currencyEl.select(currency, true);
selected = true;
......
......@@ -19,13 +19,18 @@
*/
package org.olat.resource.accesscontrol.provider.paypalcheckout.ui;
import java.util.List;
import org.olat.core.gui.UserRequest;
import org.olat.core.gui.components.form.flexible.FormItemContainer;
import org.olat.core.gui.components.form.flexible.elements.SingleSelection;
import org.olat.core.gui.components.form.flexible.elements.TextElement;
import org.olat.core.gui.components.form.flexible.impl.FormBasicController;
import org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer;
import org.olat.core.gui.components.util.KeyValues;
import org.olat.core.gui.control.Controller;
import org.olat.core.gui.control.WindowControl;
import org.olat.core.util.StringHelper;
import org.olat.resource.accesscontrol.AccessControlModule;
import org.olat.resource.accesscontrol.provider.paypalcheckout.PaypalCheckoutModule;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -41,6 +46,9 @@ public class PaypalCheckoutAccountConfigurationController extends FormBasicContr
private TextElement clientIdEl;
private TextElement clientSecretEl;
private SingleSelection currencyEl;
private final List<String> paypalCurrencies;
@Autowired
private AccessControlModule acModule;
......@@ -49,7 +57,7 @@ public class PaypalCheckoutAccountConfigurationController extends FormBasicContr
public PaypalCheckoutAccountConfigurationController(UserRequest ureq, WindowControl wControl) {
super(ureq, wControl);
paypalCurrencies = paypalModule.getPaypalCurrencies();
initForm(ureq);
}
......@@ -66,6 +74,15 @@ public class PaypalCheckoutAccountConfigurationController extends FormBasicContr
setFormDescription("checkout.config.description");
setFormContextHelp("PayPal Configuration");
KeyValues currencies = new KeyValues();
paypalCurrencies.forEach(currency -> currencies.add(KeyValues.entry(currency, currency)));
currencyEl = uifactory.addDropdownSingleselect("currency", "currency", formLayout, currencies.keys(), currencies.values(), null);
if(StringHelper.containsNonWhitespace(paypalModule.getPaypalCurrency())) {
currencyEl.select(paypalModule.getPaypalCurrency(), true);
} else {
currencyEl.select("CHF", true);
}
String clientId = paypalModule.getClientId();
clientIdEl = uifactory.addTextElement("checkout.client.id", 128, clientId, formLayout);
String clientSecret = paypalModule.getClientSecret();
......@@ -85,6 +102,9 @@ public class PaypalCheckoutAccountConfigurationController extends FormBasicContr
protected void formOK(UserRequest ureq) {
paypalModule.setClientId(clientIdEl.getValue());
paypalModule.setClientSecret(clientSecretEl.getValue());
if(currencyEl.isOneSelected() && paypalCurrencies.contains(currencyEl.getSelectedKey())) {
paypalModule.setPaypalCurrency(currencyEl.getSelectedKey());
}
showInfo("saved");
}
}
\ No newline at end of file
......@@ -4,7 +4,7 @@ access.paypal.desc=Diese Ressource kann mit einem PayPal Konto gekauft werden. H
access.paypal.title=Bezahlen mit PayPal
checkout.client.id=Client ID
checkout.client.secret=Client secret
checkout.config.description=Konfigurieren Sie die PayPal API-Berechtigung f\u00FCr den PayPal Zugang mit den Elementen Client ID und Client Secret. Diese zwei Sicherheitselemente m\u00FCssen Sie zuerst in Ihrem PayPal Businesskonto erstellen. OpenOlat unterst\u00FCtzt nicht nachtr\u00E4gliche Anderungen am Bestellungen von Ihrem Paypal Konto.
checkout.config.description=Konfigurieren Sie die PayPal API-Berechtigung f\u00FCr den PayPal Zugang mit den Elementen Client ID und Client Secret. Diese zwei Sicherheitselemente m\u00FCssen Sie zuerst in Ihrem PayPal Businesskonto erstellen. <strong>OpenOlat unterst\u00FCtzt nicht nachtr\u00E4gliche Anderungen am Bestellungen von Ihrem Paypal Konto.</strong>
checkout.config.title=Paypal Checkout konfigurieren
config.disabled.warning=Warning
currency=W\u00E4hrung
......
......@@ -4,7 +4,7 @@ access.paypal.desc=PayPal description
access.paypal.title=Pay with PayPal
checkout.client.id=Client ID
checkout.client.secret=Client secret
checkout.config.description=Configure your authorisation to use your Paypal count with the Client ID and Client Secret. These two security elements must be created in your Paypal Business Account. OpenOlat doesn't support subsequent changes in order from your Paypal Account (yet).
checkout.config.description=Configure your authorisation to use your Paypal count with the Client ID and Client Secret. These two security elements must be created in your Paypal Business Account. <strong>OpenOlat doesn't support subsequent changes in order from your Paypal Account (yet).</strong>
checkout.config.title=Configure Paypal Checkout
config.disabled.warning=config.disabled.warning
currency=Currency
......
#Wed Jan 11 18:32:30 CET 2017
#Mon Aug 26 20:05:20 CEST 2019
access.button=Payer
access.paypal.desc=Cet objet didactique peut \u00EAtre achet\u00E9 avec un compte Paypal. Cliquez sur le bouton "Payer" pour enregistrer votre acc\u00E8s.
access.paypal.title=Payer avec Paypal
checkout.client.id=Client ID
checkout.client.secret=Client secret
checkout.config.title=Configurer Paypal Checkout
currency=Monnaie
currency.error=Erreur, monnaie incorrecte
delivery=Acheteur
filter.canceled=Annul\u00E9
filter.completed=Compl\u00E9t\u00E9 avec succ\u00E8s
filter.created=Nouvelle commande Paypal
filter.error=Erreur
filter.new=Nouvelle commande (OpenOlat)
offer.description=$org.olat.resource.accesscontrol.ui\:offer.description
offer.price=Prix
oo.order.nr=ID commande (OpenOlat)
paypal.before.redirect.error=Erreur inattendue
paypal.capture.id=Capture ID
paypal.checkout.method=Paypal Checkout v2
paypal.config.description=Configurez l'autorisation d'acc\u00E8s \u00E0 l'API PayPal\: Client ID et Client Secret. Ce sont les deux \u00E9l\u00E9ments de s\u00E9curit\u00E9 dont vous avez besoin pour cr\u00E9er votre compte PayPal Business.
paypal.invoice.id=Facture ID
paypal.menu.title=Paypal
paypal.menu.title.alt=Configurer Paypal Checkout
paypal.order.id=ID commande (Paypal)
paypal.order.status=Statut
paypal.order.status.reason=Raison du statut
paypal.segment.account=Compte
paypal.segment.transactions=Transactions
paypal.transaction.amount=Prix (Paypal)
paypal.transaction.title=Transaction Paypal "{0}"
paypal.transactions.empty=Pas de transactions trouv\u00E9es
price=Prix
show.all=Tout afficher
status.canceled=Annul\u00E9
status.error=Erreur inattendue
status.new=Nouveau (pas compl\u00E9t\u00E9)
status.success=Compl\u00E9t\u00E9 avec succ\u00E8s
status.unkown=Inconnu\: {0}
table.header.order.date=Date
table.header.order.id=ID commande Paypal
table.header.order.nr=Id commande OpenOlat
table.header.order.oo.status=Statut OpenOlat
table.header.order.status=Statut
vat.enabled=TVA
vat.on=inclus
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment