mise en place de la traducton sur les pages de jeu et sur la première partie du tuto 📝
continuous-integration/drone/push Build is failing Details

pull/109/head
Pierre Ferreira 1 year ago
parent edb90ea926
commit e7b0dfb9b4

@ -21,6 +21,7 @@ import { json } from "body-parser";
import html2canvas from 'html2canvas';
import jsPDF from 'jspdf';
import {basePath} from "../AdressSetup"
import { useIntl } from "react-intl";
interface MyGraphComponentProps {
onNodeClick: (shouldShowChoiceBar: boolean) => void;
@ -88,6 +89,11 @@ const MyGraphComponent: React.FC<MyGraphComponentProps> = ({onNodeClick, handleS
//* Gestion du temps :
let initMtn = 0
//* traduction
const intl = useIntl();
const {isLoggedIn, user, manager} = useAuth();
const { indices, indice, person, personNetwork, setNodeIdData, players, setPlayersData, askedPersons, setActualPlayerIndexData, room, actualPlayerIndex, turnPlayerIndex, setTurnPlayerIndexData, setWinnerData, dailyEnigme, setNbCoupData, settempsData, setNetworkDataData, setSeedData, nodesC, temps} = useGame();
const params = new URLSearchParams(window.location.search);
@ -319,8 +325,8 @@ const MyGraphComponent: React.FC<MyGraphComponentProps> = ({onNodeClick, handleS
})
}
setActualPlayerIndexData(index)
if (playerIndex == actualPlayerIndex){
handleTurnBarTextChange("À vous de jouer")
if (playerIndex == actualPlayerIndex){
handleTurnBarTextChange(intl.formatMessage({ id: 'game.yourTurn' }))
handleShowTurnBar(true)
}
}
@ -513,7 +519,7 @@ const MyGraphComponent: React.FC<MyGraphComponentProps> = ({onNodeClick, handleS
setPlayerIndex(playerIndex)
setLastIndex(playerIndex)
if (playerIndex===actualPlayerIndex){
handleTurnBarTextChange("À vous de jouer")
handleTurnBarTextChange(intl.formatMessage({ id: 'game.yourTurn' }))
handleShowTurnBar(true)
}
}
@ -534,7 +540,7 @@ const MyGraphComponent: React.FC<MyGraphComponentProps> = ({onNodeClick, handleS
setPlayerIndex(index)
setLastIndex(index)
if (actualPlayerIndex==index){
handleTurnBarTextChange("À vous de jouer")
handleTurnBarTextChange(intl.formatMessage({ id: 'game.yourTurn' }))
handleShowTurnBar(true)
}
})
@ -602,7 +608,7 @@ const MyGraphComponent: React.FC<MyGraphComponentProps> = ({onNodeClick, handleS
}
if (playerIndex === actualPlayerIndex){
handleTurnBarTextChange("À vous de jouer")
handleTurnBarTextChange(intl.formatMessage({ id: 'game.yourTurn' }))
handleShowTurnBar(true)
}
else{
@ -647,7 +653,7 @@ const MyGraphComponent: React.FC<MyGraphComponentProps> = ({onNodeClick, handleS
setAskedWrong(true)
askedWrongBot=true
handleShowTurnBar(true)
handleTurnBarTextChange("Mauvais choix, posez un carré !")
handleTurnBarTextChange(intl.formatMessage({ id: 'game.wrong' }))
touchedPlayer = actualPlayerIndex
putGreyBackgroud()
}
@ -669,7 +675,7 @@ const MyGraphComponent: React.FC<MyGraphComponentProps> = ({onNodeClick, handleS
setPlayerIndex(playerIndex)
setLastIndex(playerIndex)
if (playerIndex === actualPlayerIndex){
handleTurnBarTextChange("À vous de jouer")
handleTurnBarTextChange(intl.formatMessage({ id: 'game.yourTurn' }))
handleShowTurnBar(true)
}
else{

@ -12,7 +12,6 @@ const TurnBar: React.FC<TurnBarProps> = ({text})=> {
style={{
borderColor: theme.colors.secondary
}}>
{/* texte changeable et a traduire */}
<p>{text}</p>
</div>
);

@ -22,6 +22,7 @@ import html2canvas from 'html2canvas';
import jsPDF from 'jspdf';
import {basePath} from "../AdressSetup"
import PersonNetwork from "../model/PersonsNetwork";
import { useIntl } from "react-intl";
interface TutorialGraphProps {
setNetwork: (network: Network) => void
@ -53,6 +54,9 @@ const TutorialGraph: React.FC<TutorialGraphProps> = ({showLast, setNetwork, setP
//* Gestion du temps :
let initMtn = 0
//* traduction
const intl = useIntl();
const {isLoggedIn, user, manager} = useAuth();
const {setIndiceData, setIndicesData, setActualPlayerIndexData, setWinnerData, setPlayersData, setNetworkDataData, setPersonData} = useGame();
const params = new URLSearchParams(window.location.search);
@ -63,7 +67,7 @@ const TutorialGraph: React.FC<TutorialGraphProps> = ({showLast, setNetwork, setP
if (first){
first = false
setActualPlayerIndexData(0)
handleTurnBarTextChange("C'est à vous de jouer !")
handleTurnBarTextChange(intl.formatMessage({ id: 'game.yourTurn' }))
handleShowTurnBar(true)
}
@ -234,7 +238,7 @@ const TutorialGraph: React.FC<TutorialGraphProps> = ({showLast, setNetwork, setP
nodes.update({id: node.id, label: node.label + positionToEmoji(2, false)})
setPlayerTouched(-1)
displayModalstep(2);
handleTurnBarTextChange("Mauvais choix, posez un carré !")
handleTurnBarTextChange(intl.formatMessage({ id: 'game.wrong' }))
const tabGrey = [7, 0, 4, 1, 8]
for (const id of tabGrey){
const node = nodes.get().find((n: NodePerson) => n.id === id)
@ -272,7 +276,7 @@ const TutorialGraph: React.FC<TutorialGraphProps> = ({showLast, setNetwork, setP
if (node4 === undefined)return;
nodes.update({id: node4.id, label: node4.label + positionToEmoji(2, false)})
setPlayerIndex(0)
handleTurnBarTextChange("A vous de jouer !")
handleTurnBarTextChange(intl.formatMessage({ id: 'game.yourTurn' }))
handleShowTurnBar(true)
setTutoStep(3)
displayModalstep(3);

@ -375,7 +375,7 @@ const InGame = ({locale, changeLocale}) => {
backgroundColor: theme.colors.primary,
borderColor: theme.colors.secondary
}}>
<FormattedMessage id='round'/> : {cptTour}
<FormattedMessage id='turn'/> : {cptTour}
</div>
}
@ -500,7 +500,7 @@ const InGame = ({locale, changeLocale}) => {
backdrop={false}
style={{ height: '20%', width: '25%', top: '60vh' }}>
<Offcanvas.Header closeButton>
<Offcanvas.Title>Indice</Offcanvas.Title>
<Offcanvas.Title><FormattedMessage id='indice'/></Offcanvas.Title>
</Offcanvas.Header>
<Offcanvas.Body>
{indice?.ToString(locale)}
@ -515,12 +515,12 @@ const InGame = ({locale, changeLocale}) => {
placement='top'
style={{height: '30%', width: '30%', left: '70%' }}>
<Offcanvas.Header closeButton>
<Offcanvas.Title><img src={Param} alt='param'/> Paramètres</Offcanvas.Title>
<Offcanvas.Title><img src={Param} alt='param'/> <FormattedMessage id='param'/></Offcanvas.Title>
</Offcanvas.Header>
<Offcanvas.Body>
<label style={{ display:'flex'}}>
<Switch checked={soundPreference} onChange={handleSoundPreferenceChange}/>
<p style={{ marginLeft:'20px'}}>Activer les SFX</p>
<p style={{ marginLeft:'20px'}}><FormattedMessage id='sfx'/></p>
</label>
</Offcanvas.Body>
</Offcanvas>

@ -56,6 +56,7 @@ import TutorialGraph from '../Components/TutorialGraph';
import { useAuth } from '../Contexts/AuthContext';
import EasyBot from '../model/EasyBot';
import { set } from 'lodash';
import { FormattedMessage } from 'react-intl';
let cptNavigation = 0
@ -362,7 +363,7 @@ const Tutorial = ({locale, changeLocale}) => {
</Button> */}
<Button variant="primary" onClick={handleShowHelp}>
Aide
<FormattedMessage id='aide'/>
</Button>
<Link to={`${basePath}/info`} target='_blank'>
<button className='button'
@ -404,7 +405,7 @@ const Tutorial = ({locale, changeLocale}) => {
backdrop={false}
style={{ height: '20%', width: '25%', top: '60vh' }}>
<Offcanvas.Header closeButton>
<Offcanvas.Title>Indice</Offcanvas.Title>
<Offcanvas.Title><FormattedMessage id='indice'/></Offcanvas.Title>
</Offcanvas.Header>
<Offcanvas.Body>
{indice?.ToString(locale)}
@ -421,7 +422,7 @@ const Tutorial = ({locale, changeLocale}) => {
size="lg"
style={{ maxHeight: '100vh'}}>
<Modal.Header>
<Modal.Title>Tutoriel</Modal.Title>
<Modal.Title><FormattedMessage id='tutorial.title'/></Modal.Title>
</Modal.Header>
<Modal.Body style={{ display:'flex', justifyContent:'center', alignItems:'center', flexDirection:'column'}}>
@ -429,14 +430,14 @@ const Tutorial = ({locale, changeLocale}) => {
<Card style={{ width: '90%', display:'flex', justifyContent:'center', alignItems:'center', flexDirection:'column'}}>
<Card.Img variant="top" src={detective} style={{width:'300px', height:'300px'}}/>
<Card.Body>
<Card.Title> Bienvenue dans SocialGraph</Card.Title>
<Card.Title> <FormattedMessage id='tuto.title.1'/> </Card.Title>
<Card.Text>
Vous incarnez un détective assoiffé de gloire, confronté à un crime. <br/>
Cependant, d'autres enquêteurs sont également sur le coup, tous cherchant à décrocher le titre de meilleur détective du monde. <br/>
Chacun possède un indice crucial pour identifier le coupable, il va falloir déduire l'indice de vos concurrents si vous souhaitez l'emporter ! <br/>
Interrogez vos concurrents pour obtenir des réponses par oui ou non, mais méfiez-vous, un refus a des conséquences. <br/>
Soyez le premier à déduire les indices des autres et à trouver le coupable pour remporter la reconnaissance tant convoitée. <br />
<i>Si vous avez le moindre doute, cliquer sur le bouton "aide" pour afficher l'étape actuel du tuto</i>
<FormattedMessage id='tuto.txt.1.1'/> <br/>
<FormattedMessage id='tuto.txt.1.2'/> <br/>
<FormattedMessage id='tuto.txt.1.3'/> <br/>
<FormattedMessage id='tuto.txt.1.4'/> <br/>
<FormattedMessage id='tuto.txt.1.5'/> <br/>
<i><FormattedMessage id='tuto.txt.1.6'/></i>
</Card.Text>
</Card.Body>
</Card>
@ -445,11 +446,11 @@ const Tutorial = ({locale, changeLocale}) => {
<Card style={{ width: '90%', display:'flex', justifyContent:'center', alignItems:'center', flexDirection:'column'}}>
<Card.Img variant="top" src={ava} style={{width:'300px', height:'300px'}}/>
<Card.Body>
<Card.Title>Les Suspects</Card.Title>
<Card.Title> <FormattedMessage id='tuto.title.2'/> </Card.Title>
<Card.Text>
Voici comment est représenté un suspect, chaque suspect possède différentes caractéristiques, que ce soit leur nom, âge, sport et leur couleur de cheveux.
<FormattedMessage id='tuto.txt.2.1'/>
<br />
Par exemple, ici, nous avons <b>Ava</b>, qui a <b>40 ans</b>, qui pratique du <b>Basket</b> et du <b>Tennis</b>, qui a les cheveux <b>Roux</b> et qui possède <b>2 amis</b> : Carter et Liam.
<FormattedMessage id='tuto.txt.2.2' /><b>Ava</b><FormattedMessage id='tuto.txt.2.2.1'/><b>40 <FormattedMessage id='age_indice_end'/></b><FormattedMessage id='tuto.txt.2.2.2'/><b><FormattedMessage id='basketball'/></b><FormattedMessage id='tuto.txt.2.2.3'/><b><FormattedMessage id='tennis'/></b><FormattedMessage id='tuto.txt.2.2.4'/><b><FormattedMessage id='redhead'/></b><FormattedMessage id='tuto.txt.2.2.5'/><b>2 <FormattedMessage id='nb_friends_indice_end'/></b> : Carter <FormattedMessage id='and'/> Liam.
</Card.Text>
</Card.Body>
</Card>
@ -459,11 +460,11 @@ const Tutorial = ({locale, changeLocale}) => {
<Card style={{ width: '90%', display:'flex', justifyContent:'center', alignItems:'center', flexDirection:'column'}}>
<Card.Img variant="top" src={indicetxt} style={{width:'300px', height:'auto'}}/>
<Card.Body>
<Card.Title>Les indices</Card.Title>
<Card.Title><FormattedMessage id='tuto.title.3'/></Card.Title>
<Card.Text>
Dans ce jeu, chaque détective possède un indice, qui permet d'identifier une caractéristique du coupable, votre indice est le suivant :
<FormattedMessage id='tuto.txt.3.1'/>
<br />
"<u>Le suspect a entre 20 et 29 ans</u>".
"<u><FormattedMessage id='tuto.txt.3.2'/></u>".
</Card.Text>
</Card.Body>
</Card>
@ -473,11 +474,11 @@ const Tutorial = ({locale, changeLocale}) => {
<Card style={{ width: '90%', display:'flex', justifyContent:'center', alignItems:'center', flexDirection:'column'}}>
<Card.Img variant="top" src={joueurs} style={{width:'auto', height:'300px'}}/>
<Card.Body>
<Card.Title>Les Détectives</Card.Title>
<Card.Title><FormattedMessage id='tuto.title.4'/></Card.Title>
<Card.Text>
Il est possible de voir les détectives sur le côté gauche de l'écran, ils sont représentés par des cercles de couleurs différentes. Le contour carré signifie que ce détective est en pleine réflexion.
<FormattedMessage id='tuto.txt.4.1'/>
<br />
Pour interroger un détective à propos d'un suspect, il suffit de le sélectionner, puis de cliquer sur le suspect que vous souhaitez. Il vous répondra donc ce qu'il pense de ce suspect selon son indice.
<FormattedMessage id='tuto.txt.4.2'/>
</Card.Text>
</Card.Body>
</Card>
@ -487,22 +488,22 @@ const Tutorial = ({locale, changeLocale}) => {
<Card style={{ width: '90%', display:'flex', justifyContent:'center', alignItems:'center', flexDirection:'column'}}>
<Card.Img variant="top" src={rep} style={{width:'300px', height:'300px'}}/>
<Card.Body>
<Card.Title>Les réponses</Card.Title>
<Card.Title><FormattedMessage id='tuto.title.5'/></Card.Title>
<Card.Text>
Les détéctives vous répondrons que par des ronds ou des carrés de leur couleur.
<FormattedMessage id='tuto.txt.5.1'/>
<br />
<ul>
<li>
Un <u>carré</u> signifie que son indice innocente le suspect.
<FormattedMessage id='majUn'/> <u><FormattedMessage id='square'/></u> <FormattedMessage id='tuto.txt.5.2'/>.
</li>
<li>
Un <u>rond</u> signifie que son indice peut incréminer le suspect.
<FormattedMessage id='majUn'/> <u><FormattedMessage id='round'/></u> <FormattedMessage id='tuto.txt.5.3'/>.
</li>
</ul>
Par exemple, ici :<br />
l'indice du détéctive Scooby-Doo (<u>Vert</u>) permet d'innocenter Logan.
<br/>Eleanor peut être suspectée par l'indice du détective Batman (<u>Jaune</u>).
<br/>Evelyn est innocentée par l'indice de <u>3 détéctive différents</u>.
<FormattedMessage id='tuto.txt.5.4'/><br />
<FormattedMessage id='tuto.txt.5.5.1'/>(<u><FormattedMessage id='color.green'/></u>) <FormattedMessage id='tuto.txt.5.5.2'/>.
<br/><FormattedMessage id='tuto.txt.5.6'/> (<u><FormattedMessage id='color.yellow'/></u>).
<br/><FormattedMessage id='tuto.txt.5.7.1'/><u><FormattedMessage id='tuto.txt.5.7.2'/></u>.
</Card.Text>
</Card.Body>
</Card>
@ -520,9 +521,9 @@ const Tutorial = ({locale, changeLocale}) => {
</button>
</Card.Header>
<Card.Body>
<Card.Title>Les règles du jeu</Card.Title>
<Card.Title><FormattedMessage id='tuto.title.6'/></Card.Title>
<Card.Text>
Ce bouton vous mène à la page d'<b>information du jeu</b>, avec toutes les règles du jeu, que ce soit les objectifs, les indices, le déroulement, etc.
<FormattedMessage id='tuto.txt.6.1.1'/><b><FormattedMessage id='tuto.txt.6.1.2'/></b><FormattedMessage id='tuto.txt.6.1.3'/>
</Card.Text>
</Card.Body>
</Card>
@ -540,9 +541,9 @@ const Tutorial = ({locale, changeLocale}) => {
</button>
</Card.Header>
<Card.Body>
<Card.Title>L'indice</Card.Title>
<Card.Title><FormattedMessage id='tuto.title.7'/></Card.Title>
<Card.Text>
Ce bouton vous permet d'afficher votre indice personnel, gardez le secret ! Il s'agit de votre meilleur atout pour gagner.
<FormattedMessage id='tuto.txt.7.1'/>
</Card.Text>
</Card.Body>
</Card>
@ -552,13 +553,13 @@ const Tutorial = ({locale, changeLocale}) => {
<Card style={{ width: '90%', display:'flex', justifyContent:'center', alignItems:'center', flexDirection:'column'}}>
<Card.Img variant="top" src={graph} style={{width:'auto', height:'300px'}}/>
<Card.Body>
<Card.Title>Place à la pratique !</Card.Title>
<Card.Title><FormattedMessage id='tuto.title.8'/></Card.Title>
<Card.Text>
Bien joué ! Vous avez maintenanttoutes les bases d'un veritable détéctive.
<FormattedMessage id='tuto.txt.8.1'/>
<br/>
Vous allez à présent avoir un exercice pratique pour la résolution d'une enquête, au côté de ces très chère Batman et Scooby-Doo.
<FormattedMessage id='tuto.txt.8.2'/>
<br/>
Cliquer sur "Poursuivre" pour commencer votre première partie.
<FormattedMessage id='tuto.txt.8.3'/>
</Card.Text>
</Card.Body>
</Card>
@ -569,11 +570,11 @@ const Tutorial = ({locale, changeLocale}) => {
</Modal.Body>
<Modal.Footer style={{display:'flex'}}>
<div style={{ width:'100%', display:'flex', justifyContent:'start'}}>
<label style={{ color:'gray'}}>Étape {step+1}/7</label>
<label style={{ color:'gray'}}><FormattedMessage id='step'/> {step+1}/7</label>
</div>
{ step != -1 && (<Button variant="primary" onClick={() => setStep(step - 1)}>Précédent</Button>)}
{ step === 6 ? (<Button variant="primary" onClick={handleCloseM}>Poursuivre</Button>) :
<Button variant="primary" onClick={() => setStep(step + 1)}>Suivant</Button>}
{ step != -1 && (<Button variant="primary" onClick={() => setStep(step - 1)}><FormattedMessage id='previous'/></Button>)}
{ step === 6 ? (<Button variant="primary" onClick={handleCloseM}><FormattedMessage id='continue'/></Button>) :
<Button variant="primary" onClick={() => setStep(step + 1)}><FormattedMessage id='next'/></Button>}
</Modal.Footer>
</Modal>
@ -586,25 +587,25 @@ const Tutorial = ({locale, changeLocale}) => {
size="lg"
style={{ maxHeight: '100vh'}}>
<Modal.Header>
<Modal.Title>Tutoriel</Modal.Title>
<Modal.Title><FormattedMessage id='tutorial.title'/></Modal.Title>
</Modal.Header>
<Modal.Body style={{ display:'flex', justifyContent:'center', alignItems:'center', flexDirection:'column'}}>
<Card style={{ width: '100%', display:'flex', justifyContent:'center', alignItems:'center', flexDirection:'column'}}>
<Card.Img variant="top" src={step1} style={{width:'auto', height:'300px'}}/>
<Card.Body>
<Card.Title>Premier pas</Card.Title>
<Card.Title><FormattedMessage id='tuto.title.9'/></Card.Title>
<Card.Text>
Bienvenue dans cette seconde partie, où nous allons apprendre le déroulé d'une veritable enquête.
<FormattedMessage id='tuto.txt.9.1'/>
<br/>
Dans un premier temps, sélectionnez le joueur <b>Scooby-Doo</b> et questionnez le à propos du suspect nommé <b>Violet</b> en cliquant sur cette dernière.
<FormattedMessage id='tuto.txt.9.2.1'/><b>Scooby-Doo</b><FormattedMessage id='tuto.txt.9.2.2'/><b>Violet</b><FormattedMessage id='tuto.txt.9.2.3'/>
</Card.Text>
</Card.Body>
</Card>
</Modal.Body>
<Modal.Footer style={{display:'flex'}}>
<Button variant="primary" onClick={handleCloseTuto2}>Compris !</Button>
<Button variant="primary" onClick={handleCloseTuto2}><FormattedMessage id='compris'/></Button>
</Modal.Footer>
</Modal>
@ -616,7 +617,7 @@ const Tutorial = ({locale, changeLocale}) => {
size="lg"
style={{ maxHeight: '100vh'}}>
<Modal.Header>
<Modal.Title>Tutoriel</Modal.Title>
<Modal.Title><FormattedMessage id='tutorial.title'/></Modal.Title>
</Modal.Header>
<Modal.Body style={{ display:'flex', justifyContent:'center', alignItems:'center', flexDirection:'column'}}>
{step === 0 && (
@ -685,7 +686,7 @@ const Tutorial = ({locale, changeLocale}) => {
size="lg"
style={{ maxHeight: '100vh'}}>
<Modal.Header>
<Modal.Title>Tutoriel</Modal.Title>
<Modal.Title><FormattedMessage id='tutorial.title'/></Modal.Title>
</Modal.Header>
<Modal.Body style={{ display:'flex', justifyContent:'center', alignItems:'center', flexDirection:'column'}}>

@ -26,6 +26,11 @@
"sign_up":" Sign up ",
"log_out":" Log out ",
"indice":"Hint",
"param":"Settings",
"sfx":"Activate SFX",
"aide":"Help",
"join" : "Join",
"create_room" : "Create room",
"play_solo" : "Single player",
@ -72,7 +77,9 @@
"navbar.presentation":"Presentation",
"navbar.info":"Information",
"round" : "Round",
"turn" : "Round",
"square":"square",
"round":"round",
"play.jouerseul": "Play alone",
"play.enigme": "Solve an enigma",
@ -113,7 +120,8 @@
"lobby.nbNode": "Select the number of nodes (between 20 and 60)",
"lobby.start": "Start the game!",
"game.yourTurn":"It's your turn !",
"game.wrong":"Wrong choice, put a square !",
"informations" : "Information",
"info.intro.title":"Introduction to the game :",
@ -202,5 +210,7 @@
"info.mdj.enigme.medium": "Intermediate Enigma",
"info.mdj.enigme.medium.txt": "In this game mode, you don't have access to clues, but you have just enough information about some suspects to be able to guess the culprit. This information will help you guess the clues, and the culprit is the suspect for whom all the clues match. If you select the wrong suspect, don't worry! You'll have information about that suspect, making it easier for you to find the culprit. The goal is to find the culprit in the minimum number of guesses.",
"info.mdj.enigme.hard": "Hard Enigma",
"info.mdj.enigme.hard.txt": "This final variant is similar to the intermediate enigma; however, you must find the culprit on the first try, or you lose! It's up to you to play! The goal is to find the culprit in the minimum amount of time."
"info.mdj.enigme.hard.txt": "This final variant is similar to the intermediate enigma; however, you must find the culprit on the first try, or you lose! It's up to you to play! The goal is to find the culprit in the minimum amount of time.",
"tutorial.title": "Tutorial"
}

@ -26,6 +26,13 @@
"sign_up":" S'inscrire ",
"log_out":" Se déconnecter ",
"indice":"Indice",
"param":"Paramètres",
"sfx":"Activer les SFX",
"aide":"Aide",
"majUn":"Un",
"join" : "Rejoindre",
"create_room" : "Créer une partie",
@ -77,7 +84,22 @@
"weak" : "Faible",
"none" : "Aucun",
"round" : "Tour",
"turn" : "Tour",
"square":"carré",
"round":"rond",
"step" : "Étape",
"previous" : "Précédent",
"next" : "Suivant",
"continue" : "Poursuivre",
"compris":"Compris !",
"close" : "Fermer",
"color.green":"Vert",
"color.blue":"Bleu",
"color.red":"Rouge",
"color.yellow":"Jaune",
"play.jouerseul": "Jouer seul",
"play.enigme": "Résoudre une énigme",
@ -119,6 +141,8 @@
"lobby.start" : "Démarrer la partie !",
"game.yourTurn":"À vous de jouer !",
"game.wrong":"Mauvais choix, posez un carré !",
"informations" : "Informations",
"info.intro.title":"Introduction au jeu :",
@ -208,5 +232,64 @@
"info.mdj.enigme.medium":"L'énigme intermédiaire",
"info.mdj.enigme.medium.txt":"Dans ce mode de jeu, vous n'avez pas accès au indice, mais vous avez juste assez d'informations sur certains suspects pour pouvoir deviner le coupable. Ces informations vont vous permettre de deviner les indices, et le coupable est le suspect pour lequel tous les indices correspondent. Si jamais vous sélectionnez le mauvais suspect, pas de panique ! Vous aurez les informations relatives à ce dernier, ce qui vous facilitera le travail pour trouver le coupable. L'objectif est donc de trouver le coupable en un minimum de coup.",
"info.mdj.enigme.hard":"L'énigme difficile",
"info.mdj.enigme.hard.txt":"Cette dernière variante est similaire à l'énigme intermédiaire, cependant, il faudra trouver du premier coup sinon, vous aurez perdu ! À vous de jouer ! L'objectif est donc de trouver le coupable en un minimum de temps."
"info.mdj.enigme.hard.txt":"Cette dernière variante est similaire à l'énigme intermédiaire, cependant, il faudra trouver du premier coup sinon, vous aurez perdu ! À vous de jouer ! L'objectif est donc de trouver le coupable en un minimum de temps.",
"tutorial.title":"Tutoriel",
"tuto.title.1":"Bienvenue dans SocialGraph !",
"tuto.txt.1.1":"Vous incarnez un détective assoiffé de gloire, confronté à un crime.",
"tuto.txt.1.2":"Cependant, d'autres enquêteurs sont également sur le coup, tous cherchant à décrocher le titre de meilleur détective du monde.",
"tuto.txt.1.3":"Chacun possède un indice crucial pour identifier le coupable, il va falloir déduire l'indice de vos concurrents si vous souhaitez l'emporter !",
"tuto.txt.1.4":"Interrogez vos concurrents pour obtenir des réponses par oui ou non, mais méfiez-vous, un refus a des conséquences.",
"tuto.txt.1.5":"Soyez le premier à déduire les indices des autres et à trouver le coupable pour remporter la reconnaissance tant convoitée.",
"tuto.txt.1.6":"Si vous avez le moindre doute, cliquer sur le bouton 'aide' pour afficher l'étape actuel du tuto",
"tuto.title.2":"Les Suspects",
"tuto.txt.2.1":"Voici comment est représenté un suspect, chaque suspect possède différentes caractéristiques, que ce soit leur nom, âge, sport et leur couleur de cheveux.",
"tuto.txt.2.2":"Par exemple, ici, nous avons ",
"tuto.txt.2.2.1":", qui a ",
"tuto.txt.2.2.2":", qui pratique du ",
"tuto.txt.2.2.3":" et du ",
"tuto.txt.2.2.4":", qui a les cheveux ",
"tuto.txt.2.2.5":" et qui possède ",
"tuto.title.3":"Les indices",
"tuto.txt.3.1":"Dans ce jeu, chaque détective possède un indice, qui permet d'identifier une caractéristique du coupable, votre indice est le suivant :",
"tuto.txt.3.2":"Le suspect a entre 20 et 29 ans",
"tuto.title.4":"Les Détectives",
"tuto.txt.4.1":"Il est possible de voir les détectives sur le côté gauche de l'écran, ils sont représentés par des cercles de couleurs différentes. Le contour carré signifie que ce détective est en pleine réflexion.",
"tuto.txt.4.2":"Pour interroger un détective à propos d'un suspect, il suffit de le sélectionner, puis de cliquer sur le suspect que vous souhaitez. Il vous répondra donc ce qu'il pense de ce suspect selon son indice.",
"tuto.title.5":"Les réponses",
"tuto.txt.5.1":"Les détéctives vous répondrons que par des ronds ou des carrés de leur couleur.",
"tuto.txt.5.2":" signifie que son indice innocente le suspect",
"tuto.txt.5.3":" signifie que son indice peut incréminer le suspect",
"tuto.txt.5.4":"Par exemple, ici :",
"tuto.txt.5.5.1":"l'indice du détéctive Scooby-Doo ",
"tuto.txt.5.5.2":" permet d'innocenter Logan",
"tuto.txt.5.6":"Eleanor peut être suspectée par l'indice du détective Batman ",
"tuto.txt.5.7.1":"Evelyn est innocentée par l'indice de ",
"tuto.txt.5.7.2":"3 détéctive différents",
"tuto.title.6":"Les règles du jeu",
"tuto.txt.6.1.1":"Ce bouton vous mène à la page d'",
"tuto.txt.6.1.2":"information du jeu",
"tuto.txt.6.1.3":", avec toutes les règles du jeu, que ce soit les objectifs, les indices, le déroulement, etc.",
"tuto.title.7":"L'indice",
"tuto.txt.7.1":"Ce bouton vous permet d'afficher votre indice personnel, gardez le secret ! Il s'agit de votre meilleur atout pour gagner.",
"tuto.title.8":"Place à la pratique !",
"tuto.txt.8.1":"Bien joué ! Vous avez maintenanttoutes les bases d'un veritable détéctive.",
"tuto.txt.8.2":"Vous allez à présent avoir un exercice pratique pour la résolution d'une enquête, au côté de ces très chère Batman et Scooby-Doo.",
"tuto.txt.8.3":"Cliquer sur 'Poursuivre' pour commencer votre première partie.",
"tuto.title.9":"Premier pas",
"tuto.txt.9.1":"Bienvenue dans cette seconde partie, où nous allons apprendre le déroulé d'une veritable enquête.",
"tuto.txt.9.2.1":"Dans un premier temps, sélectionnez le joueur ",
"tuto.txt.9.2.2":" et questionnez le à propos du suspect nommé ",
"tuto.txt.9.2.3":" en cliquant sur cette dernière.",
}

Loading…
Cancel
Save