Merge pull request #1 from emillon/annuaire

La cause avance. Merci !
This commit is contained in:
#ponce
2013-06-07 08:20:33 -07:00
4 changed files with 99 additions and 47 deletions

View File

@@ -1,7 +1,5 @@
- l'en t<>te est un peu grand et un peu vide (mais je sais pas trop quoi en faire) - l'en t<>te est un peu grand et un peu vide (mais je sais pas trop quoi en faire)
- les couleurs un peu rouges font bizarre, <20>a manque un peu de contraste entre le texte et le fond, pareil pour le box-shadow autour de .groupe-lettre (d'ailleurs pourquoi box-shadow plut<75>t que border?) - les couleurs un peu rouges font bizarre, <20>a manque un peu de contraste entre le texte et le fond, pareil pour le box-shadow autour de .groupe-lettre (d'ailleurs pourquoi box-shadow plut<75>t que border?)
- le contraste rouge/vert doit pas etre terrible pour les daltoniens - le contraste rouge/vert doit pas etre terrible pour les daltoniens
- des liens vers chaque lettre de l'alphabet peuvent <20>tre utiles
- tu peux <20>ventuellement ajouter une feature inversion de l'annuaire (trier par clef fran<61>aises). OK en fait c'est fait mais c'est un peu confusant, on voit pas qu'il y a 2 listes. Ajouter un lien en haut ou un switch pour changer.
suggestion: un sous-titre en forme de d<>finition. D<>finition de bitoduc, par ex. suggestion: un sous-titre en forme de d<>finition. D<>finition de bitoduc, par ex.

View File

@@ -1,3 +1,29 @@
function trouveElement(id)
{
return document.getElementById(id);
}
function obtenirLAttribut(element, attribut)
{
return element.getAttribute(attribut);
}
function definirLAttribut(element, attribut, valeur)
{
return element.setAttribute(attribut, valeur);
}
function changeDeSens(window)
{
var element = trouveElement('mots')
var langueDesClefsActuelle = obtenirLAttribut(element, 'data-langue');
var autre = {'anglais': 'francais',
'francais': 'anglais'};
var langueDesClefsNouvelle = autre[langueDesClefsActuelle];
definirLAttribut(element, 'data-langue', langueDesClefsNouvelle);
construitListe(window)
}
function construitListe(window) function construitListe(window)
{ {
var document = window.document; var document = window.document;
@@ -78,11 +104,6 @@ function construitListe(window)
{anglais: 'tweet', francais: 'gazouilli'} {anglais: 'tweet', francais: 'gazouilli'}
]; ];
function trouveElement(id)
{
return document.getElementById(id);
}
function cache(e) function cache(e)
{ {
e.style.visibility = 'hidden'; e.style.visibility = 'hidden';
@@ -96,10 +117,11 @@ function construitListe(window)
var tous_les_mots = vrais_mots.concat(faux_mots); var tous_les_mots = vrais_mots.concat(faux_mots);
var i; var i;
var noeudFRversANG = trouveElement('francais_vers_anglais'); var lien = trouveElement('lienChange');
var noeudANGversFR = trouveElement('anglais_vers_francais'); var index = trouveElement('index');
var lettresFRversANG = new Array(26); var mots = trouveElement('mots');
var lettresANGversFR = new Array(26); var langueDesClefs = obtenirLAttribut(mots, 'data-langue');
var lettres = new Array(26);
var noeud; var noeud;
function enleveLesAccents(s) { function enleveLesAccents(s) {
@@ -107,24 +129,32 @@ function construitListe(window)
return s; return s;
} }
var lienFR = '<span class="mot-francais">Français</span>';
var lienANG = '<span class="mot-anglais">Anglais</span>';
var lienSource = lienFR;
var lienDestination = lienANG;
if (langueDesClefs === 'anglais') {
lienSource = lienANG;
lienDestination = lienFR;
}
lien.innerHTML = lienSource + ' &rarr; ' + lienDestination;
mots.innerHTML = '';
index.innerHTML = '';
for (i = 0; i < 26; ++i) { for (i = 0; i < 26; ++i) {
var lettre = String.fromCharCode(65 + i); var lettre = String.fromCharCode(65 + i);
lettresFRversANG[i] = noeud = document.creeElement('div');
lettres[i] = noeud = document.creeElement('div');
noeud.className = 'groupe-lettre'; noeud.className = 'groupe-lettre';
noeud.enfants = 0; noeud.enfants = 0;
var ancre = document.creeElement('a');
ancre.name = lettre;
noeud.appendChild(ancre);
var titre = document.creeElement('h3'); var titre = document.creeElement('h3');
titre.innerHTML = lettre; titre.innerHTML = lettre;
noeud.appendChild(titre);
lettresANGversFR[i] = noeud = document.creeElement('div');
noeud.className = 'groupe-lettre';
noeud.enfants = 0;
titre = document.creeElement('h3');
titre.innerHTML = lettre;
noeud.appendChild(titre); noeud.appendChild(titre);
} }
@@ -144,31 +174,33 @@ function construitListe(window)
noeud = document.createElement('div'); noeud = document.createElement('div');
noeud.className = 'definition'; noeud.className = 'definition';
noeud.innerHTML = '· <span class="mot-anglais"> ' + mot.anglais + ' </span> : ' var spanAnglais = '<span class="mot-anglais"> ' + mot.anglais + ' </span>';
+ '<span class="mot-francais">' + mot.francais + "</span>"; var spanFrancais = '<span class="mot-francais">' + mot.francais + '</span>';
var indice = indiceDeLaPremiereLettre(mot.anglais);
lettresANGversFR[indice].appendChild(noeud); var spanClef = spanFrancais;
lettresANGversFR[indice].enfants++; var spanValeur = spanAnglais;
var indice = indiceDeLaPremiereLettre(mot.francais);
if (langueDesClefs === 'anglais') {
spanClef = spanAnglais;
spanValeur = spanFrancais;
indice = indiceDeLaPremiereLettre(mot.anglais);
}
noeud = document.createElement('div'); noeud.innerHTML = '· ' + spanClef + ' : ' + spanValeur;
noeud.className = 'definition';
noeud.innerHTML = mot.francais + ' &rarr; ' + mot.anglais;
noeud.innerHTML = '· <span class="mot-francais"> ' + mot.francais + '</span> : '
+ '<span class="mot-anglais">' + mot.anglais + ' </span>';
indice = indiceDeLaPremiereLettre(mot.francais); lettres[indice].appendChild(noeud);
lettresFRversANG[indice].appendChild(noeud); lettres[indice].enfants++;
lettresFRversANG[indice].enfants++;
} }
for (i = 0; i < 26; ++i) { for (i = 0; i < 26; ++i) {
noeud = lettresFRversANG[i]; var lettre = String.fromCharCode(65 + i);
if (noeud.enfants > 1) noeud = lettres[i];
noeudFRversANG.appendChild(noeud); if (noeud.enfants > 1) {
mots.appendChild(noeud);
noeud = lettresANGversFR[i]; var lettreIndex = document.creeElement('a');
if (noeud.enfants > 1) lettreIndex.href = '#' + lettre;
noeudANGversFR.appendChild(noeud); lettreIndex.innerHTML = lettre;
index.appendChild(lettreIndex);
}
} }
} }

View File

@@ -66,3 +66,22 @@ h3
color: #905050; color: #905050;
margin: 50px; margin: 50px;
} }
#index
{
text-align: center;
}
#index a
{
font-size: larger;
color: black;
text-decoration: none;
margin-right: 5px;
position:relative;
}
#index a:hover
{
background-color: #999;
}

View File

@@ -16,15 +16,18 @@
<div id="intro"> <div id="intro">
De nos jours on rencontre de nombreux termes techniques en anglais : &laquo;&nbsp;megabyte&nbsp;&raquo;, &laquo;&nbsp;URL&nbsp;&raquo; ou encore &laquo;&nbsp;plugin&nbsp;&raquo;.<br/><br/> Pourtant, ces nouveaux mots ont souvent un équivalent francais qu'il conviendrait d'utiliser. En voici une liste bien pratique. Bonne lecture ! De nos jours on rencontre de nombreux termes techniques en anglais : &laquo;&nbsp;megabyte&nbsp;&raquo;, &laquo;&nbsp;URL&nbsp;&raquo; ou encore &laquo;&nbsp;plugin&nbsp;&raquo;.<br/><br/> Pourtant, ces nouveaux mots ont souvent un équivalent francais qu'il conviendrait d'utiliser. En voici une liste bien pratique. Bonne lecture !
<br/><br/>
<div>
<a id="lienChange" href="#" onclick="changeDeSens(window)"></a>
</div>
</div> </div>
<div id="anglais_vers_francais"> <div id="index">
<h2>Lexique anglais-français</h2>
</div> </div>
<div id="francais_vers_anglais"> <div id="mots" data-langue="anglais">
<h2>Lexique français-anglais</h2> </div>
</div>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">