mirror of
https://github.com/soulaklabs/bitoduc.fr.git
synced 2025-12-09 17:35:35 +00:00
281 lines
13 KiB
JavaScript
281 lines
13 KiB
JavaScript
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)
|
||
{
|
||
var document = window.document;
|
||
document.creeElement = document.createElement;
|
||
|
||
var vrais_mots = [
|
||
{anglais: 'benchmark', francais: 'banc d\'essai'},
|
||
{anglais: 'dangling pointer', francais: 'pointeur fou'},
|
||
{anglais: 'URL' , francais: 'adresse réticulaire'},
|
||
{anglais: 'GC' , francais: 'ramasse-miettes, glaneur de cellule'},
|
||
{anglais: 'pipeline' , francais: 'bitoduc'},
|
||
{anglais: 'TL;DR (Too Long; Didn\'t Read)' , francais: 'TL;PL (Trop Long; Pas Lu)'},
|
||
{anglais: 'framework', francais: 'cadriciel'},
|
||
{anglais: 'shareware', francais: 'partagiciel'},
|
||
{anglais: 'freeware', francais: 'gratuiciel'},
|
||
{anglais: 'spam', francais: 'polluriel, pourriel'},
|
||
{anglais: 'spammeur', francais: 'arroseur publicitaire'},
|
||
{anglais: 'CDROM', francais: 'cédérom'},
|
||
{anglais: 'e-mail', francais: 'courriel'},
|
||
{anglais: 'anti-pattern', francais: 'anti-patron'},
|
||
{anglais: 'callback function', francais: 'fonction de rappel'},
|
||
{anglais: 'stack overflow', francais: 'dépassement de pile'},
|
||
{anglais: 'flag', francais: 'fanion'},
|
||
{anglais: 'firewall', francais: 'pare-feu'},
|
||
{anglais: 'bug', francais: 'bogue'},
|
||
{anglais: 'USB key', francais: 'mémorette'},
|
||
{anglais: 'core dump', francais: 'vidage de mémoire'},
|
||
{anglais: 'spinlock', francais: 'tourniquet'},
|
||
{anglais: 'polling', francais: 'attente active'},
|
||
{anglais: 'debugger', francais: 'dévermineur'},
|
||
{anglais: 'god object', francais: 'objet omniscient'},
|
||
{anglais: 'flame', francais: 'propos inflammatoire'},
|
||
{anglais: 'angle brackets', francais: 'chevrons'},
|
||
{anglais: 'home row', francais: 'touche de repos'},
|
||
{anglais: 'number sign', francais: 'croisillon'},
|
||
{anglais: 'slash', francais: 'barre oblique'},
|
||
{anglais: 'backslash', francais: 'barre oblique inversée'},
|
||
{anglais: 'ampersand', francais: 'esperluette'},
|
||
{anglais: 'backport', francais: 'rétroportage'},
|
||
{anglais: 'rolling release', francais: 'publication continue'},
|
||
{anglais: 'checksum', francais: 'somme de contrôle'},
|
||
{anglais: 'repository', francais: 'dépôt'},
|
||
{anglais: 'version control system', francais: 'logiciel de gestion de versions'},
|
||
{anglais: 'lazy evaluation', francais: 'évaluation paresseuse'},
|
||
{anglais: 'upload', francais: 'téléversement'},
|
||
{anglais: 'download', francais: 'téléchargement'},
|
||
{anglais: 'patch', francais: 'rustine logicielle'},
|
||
{anglais: 'endianness', francais: 'boutisme'},
|
||
{anglais: 'big-endian', francais: 'grand boutien'},
|
||
{anglais: 'little-endian', francais: 'petit boutien'},
|
||
{anglais: 'plugin', francais: 'greffon'},
|
||
{anglais: 'online chat', francais: 'clavardage'},
|
||
{anglais: 'webcam', francais: 'cybercaméra'},
|
||
{anglais: 'podcasting', francais: 'balladodiffusion'},
|
||
{anglais: 'phishing', francais: 'hameçonnage'},
|
||
{anglais: 'bloatware', francais: 'boufficiel'},
|
||
{anglais: 'spyware', francais: 'espiogiciel'},
|
||
{anglais: 'flood', francais: 'matraquage'},
|
||
{anglais: 'glue code', francais: 'code ciment'},
|
||
{anglais: 'proxy', francais: 'mandataire'},
|
||
{anglais: 'reverse proxy', francais: 'mandataire inverse'},
|
||
{anglais: 'tutorial', francais: 'didacticiel'},
|
||
{anglais: 'browser', francais: 'navigateur'},
|
||
{anglais: 'BBS (Bulletin Board System)', francais: 'babillard électronique'},
|
||
{anglais: 'applet', francais: 'appliquette'},
|
||
{anglais: 'cloud computing', francais: 'infonuagique'},
|
||
{anglais: 'overclocking', francais: 'surcadençage'},
|
||
{anglais: 'double word', francais: 'trente-deuzet'},
|
||
{anglais: 'byte', francais: 'octet'},
|
||
{anglais: 'malware', francais: 'maliciel'},
|
||
{anglais: 'namespace', francais: 'espace de noms'},
|
||
{anglais: 'Cascading Style Sheets (CSS)', francais: 'feuilles de style en cascade'},
|
||
{anglais: 'middleware', francais: 'intergiciel'},
|
||
{anglais: 'webmaster', francais: 'webmestre'},
|
||
{anglais: 'Web', francais: 'toile'},
|
||
{anglais: 'Computer Science (CS)', francais: 'science informatique'},
|
||
{anglais: 'program counter', francais: 'compteur ordinal'},
|
||
{anglais: 'hub', francais: 'concentrateur'},
|
||
{anglais: 'backdoor', francais: 'porte dérobée'},
|
||
{anglais: 'hyperlink', francais: 'hyperlien'},
|
||
{anglais: 'fork', francais: 'scission'},
|
||
{anglais: 'watchdog', francais: 'chien de garde'},
|
||
{anglais: 'ROM (Read-Only Memory)', francais: 'mémoire morte'},
|
||
{anglais: 'deadlock', francais: 'étreinte fatale'},
|
||
{anglais: 'refactoring', francais: 'réusinage'},
|
||
{anglais: 'digital', francais: 'numérique'},
|
||
{anglais: 'tag', francais: 'étiquette'},
|
||
{anglais: 'desktop', francais: 'ordinateur de bureau'},
|
||
{anglais: 'to deface', francais: 'défigurer'},
|
||
{anglais: 'ASLR', francais: "Disposition Stochastique de l'espace d'addressage"},
|
||
{anglais: 'back-end services', francais: 'services dorsaux' },
|
||
{anglais: 'back office', francais: 'arrière-guichet' },
|
||
{anglais: 'big data', francais: 'mégadonnées' },
|
||
{anglais: 'boot', francais: 'amorçage' },
|
||
{anglais: 'BYOD (Bring Your Own Device)', francais: 'AVEC (Apportez Votre Equipement personnel de Communication)' },
|
||
{anglais: 'cache memory', francais: 'antémémoire' },
|
||
{anglais: 'chipset', francais: 'jeu de puces' },
|
||
{anglais: 'cluster', francais: 'grappe' },
|
||
{anglais: 'cookie', francais: 'témoin de connexion' },
|
||
{anglais: 'database', francais: 'base de données' },
|
||
{anglais: 'device', francais: 'appareil' },
|
||
{anglais: 'firmware', francais: 'micrologiciel' },
|
||
{anglais: 'FPGA (Field-Programmable Gate Array)', francais: 'CIPP (Circuit Intégré Prédiffusé Programmable)' },
|
||
{anglais: 'front office', francais: 'guichet' },
|
||
{anglais: 'fuzzing', francais: 'frelatage en masse' },
|
||
{anglais: 'fuzzer', francais: "générateur d'anomalies" },
|
||
{anglais: 'hacked', francais: "intrusé" },
|
||
{anglais: 'hacker', francais: "fouineur" },
|
||
{anglais: 'hash', francais: "condensat" },
|
||
{anglais: 'hash table', francais: "tableau à adressage dispersé" },
|
||
{anglais: 'heap spray', francais: "pulvérisation du tas" },
|
||
{anglais: 'hashtag', francais: 'mot-croisillon'},
|
||
{anglais: 'instruction pipeline', francais: "instruoduc" },
|
||
{anglais: 'lurker', francais: "fureteur" },
|
||
{anglais: 'man-in-the-middle attack', francais: "attaque de l'homme du milieu" },
|
||
{anglais: 'monkey-in-the-middle attack', francais: "attaque du singe intercepteur" },
|
||
{anglais: 'obfuscation', francais: "noircissement de code" },
|
||
{anglais: 'pharming', francais: "devoiement" },
|
||
{anglais: 'phishing attack', francais: "attaque par filoutage" },
|
||
{anglais: 'return oriented programming', francais: "Exploitation focalisée sur le retour" },
|
||
{anglais: 'reverse-engineering', francais: "Ingénierie à rebours" },
|
||
{anglais: 'to reverse', francais: "détricoter" },
|
||
{anglais: 'scale', francais: 'passe à l’échelle' },
|
||
{anglais: 'scaling', francais: 'passage à l’échelle' },
|
||
{anglais: 'shell code', francais: "code encoquillé" },
|
||
{anglais: 'SoC (System-on-Chip)', francais: "puce-système" },
|
||
{anglais: 'smart grids', francais: "grilles malines" },
|
||
{anglais: 'stack cookie', francais: "biscuit de pile" },
|
||
{anglais: 'thumbnail', francais: "imagette" },
|
||
{anglais: 'Web cache', francais: "cache-toile" },
|
||
{anglais: 'XSS (Cross Site Scripting)', francais: "ICID (Injection de Code Indirect à Distance)" }
|
||
];
|
||
|
||
var faux_mots = [
|
||
{anglais: 'buzzword', francais: 'mot à la mode'},
|
||
{anglais: 'branch merging', francais: 'fusion de branches'},
|
||
{anglais: 'pull-request', francais: 'fusiodemande'},
|
||
{anglais: 'NIH (Not Invented Here)', francais: 'PII (Pas Inventé Ici)'},
|
||
{anglais: 'RTFM (Read The Fucking Manual)', francais: 'LPDM (Lis le Putain De Manuel)'},
|
||
{anglais: 'DRY (Don\'t Repeat Yourself)', francais: 'NTRP (Ne Te Répète Pas)'},
|
||
{anglais: 'tweet', francais: 'gazouillis'},
|
||
{anglais: 'lolcat', francais: 'chatmusant'},
|
||
{anglais: 'empowerment', francais: 'empouvoirement'},
|
||
{anglais: 'to spoil', francais: 'divulgâcher'},
|
||
{anglais: 'smartphone', francais: 'malinphone'},
|
||
{anglais: 'walled garden', francais: 'jardin secret, communauté prison'},
|
||
{anglais: 'favicon', francais: 'favorimage'},
|
||
{anglais: 'stand-up meeting', francais: 'réunion debout'},
|
||
{anglais: 'commit', francais: 'atome de code'},
|
||
{anglais: 'laptop', francais: 'ordinateur de giron'},
|
||
{anglais: 'cryptoparty', francais: 'chiffrofête'},
|
||
{anglais: 'cryptocoin', francais: 'cybersou' }
|
||
];
|
||
|
||
function cache(e)
|
||
{
|
||
e.style.visibility = 'hidden';
|
||
}
|
||
|
||
function montre(e)
|
||
{
|
||
e.style.visibility = 'visible';
|
||
}
|
||
|
||
var tous_les_mots = vrais_mots.concat(faux_mots);
|
||
|
||
var i;
|
||
var lien = trouveElement('lienChange');
|
||
var index = trouveElement('index');
|
||
var mots = trouveElement('mots');
|
||
var langueDesClefs = obtenirLAttribut(mots, 'data-langue');
|
||
var lettres = new Array(26);
|
||
var noeud;
|
||
|
||
function enleveLesAccents(s) {
|
||
s = s.replace("é", "e");
|
||
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 + ' → ' + lienDestination;
|
||
|
||
mots.innerHTML = '';
|
||
index.innerHTML = '';
|
||
|
||
|
||
for (i = 0; i < 26; ++i) {
|
||
|
||
var lettre = String.fromCharCode(65 + i);
|
||
|
||
lettres[i] = noeud = document.creeElement('div');
|
||
noeud.className = 'groupe-lettre';
|
||
noeud.enfants = 0;
|
||
var ancre = document.creeElement('a');
|
||
ancre.name = lettre;
|
||
noeud.appendChild(ancre);
|
||
var titre = document.creeElement('h3');
|
||
titre.innerHTML = lettre;
|
||
noeud.appendChild(titre);
|
||
}
|
||
|
||
// renvoie un nombre entre 0 et 25
|
||
function indiceDeLaPremiereLettre(m) {
|
||
|
||
var motSansAccent = enleveLesAccents(m);
|
||
var motEnMinuscule = motSansAccent.toLowerCase();
|
||
var resultat = motEnMinuscule.charCodeAt(0) - "a".charCodeAt(0);
|
||
return resultat;
|
||
}
|
||
|
||
for (i = 0; i < tous_les_mots.length; ++i) {
|
||
|
||
var mot = tous_les_mots[i];
|
||
|
||
noeud = document.createElement('div');
|
||
noeud.className = 'definition';
|
||
|
||
var spanAnglais = '<span class="mot-anglais"> ' + mot.anglais + ' </span>';
|
||
var spanFrancais = '<span class="mot-francais">' + mot.francais + '</span>';
|
||
|
||
var spanClef = spanFrancais;
|
||
var spanValeur = spanAnglais;
|
||
var indice = indiceDeLaPremiereLettre(mot.francais);
|
||
if (langueDesClefs === 'anglais') {
|
||
spanClef = spanAnglais;
|
||
spanValeur = spanFrancais;
|
||
indice = indiceDeLaPremiereLettre(mot.anglais);
|
||
}
|
||
|
||
noeud.innerHTML = '· ' + spanClef + ' : ' + spanValeur;
|
||
|
||
lettres[indice].appendChild(noeud);
|
||
lettres[indice].enfants++;
|
||
}
|
||
|
||
for (i = 0; i < 26; ++i) {
|
||
var lettre = String.fromCharCode(65 + i);
|
||
noeud = lettres[i];
|
||
if (noeud.enfants > 1) {
|
||
mots.appendChild(noeud);
|
||
var lettreIndex = document.creeElement('a');
|
||
lettreIndex.href = '#' + lettre;
|
||
lettreIndex.innerHTML = lettre;
|
||
index.appendChild(lettreIndex);
|
||
}
|
||
}
|
||
}
|