diff --git a/README.md b/README.md index c0039c7..ffc5351 100644 --- a/README.md +++ b/README.md @@ -97,6 +97,9 @@ The following languages are available by default: | `english1000` | 1000 most common English words | | `english-advanced` | Advanced English words | | `english-pirate` | 50 pirate speak English words | +| `french100` | 100 most common French words | +| `french200` | 200 most common French words | +| `french1000` | 1000 most common French words | | `german` | 207 most common German words | | `german1000` | 1000 most common German words | | `german10000` | 10000 most common German words | diff --git a/resources/runtime/language/french100 b/resources/runtime/language/french100 new file mode 100644 index 0000000..2282c23 --- /dev/null +++ b/resources/runtime/language/french100 @@ -0,0 +1,100 @@ +le +de +un +et +être +à +il +avoir +ne +je +son +que +se +qui +en +ce +dans +du +elle +au +pour +pas +vous +par +sur +faire +plus +dire +me +on +mon +lui +nous +comme +mais +pouvoir +avec +tout +y +aller +voir +bien +où +sans +tu +ou +leur +homme +si +deux +mari +moi +vouloir +te +femme +venir +quand +grand +celui +notre +devoir +là +jour +prendre +même +votre +rien +encore +petit +aussi +quelque +dont +mer +trouver +donner +temps +ça +peu +falloir +sous +parler +alors +main +chose +ton +mettre +vie +savoir +yeux +passer +autre +après +regarder +toujours +puis +jamais +cela +aimer +non +heure diff --git a/resources/runtime/language/french1000 b/resources/runtime/language/french1000 new file mode 100644 index 0000000..bb3fe31 --- /dev/null +++ b/resources/runtime/language/french1000 @@ -0,0 +1,1000 @@ +le +de +un +et +être +à +il +avoir +ne +je +son +que +se +qui +en +ce +dans +du +elle +au +pour +pas +vous +par +sur +faire +plus +dire +me +on +mon +lui +nous +comme +mais +pouvoir +avec +tout +y +aller +voir +bien +où +sans +tu +ou +leur +homme +si +deux +mari +moi +vouloir +te +femme +venir +quand +grand +celui +notre +devoir +là +jour +prendre +même +votre +rien +encore +petit +aussi +quelque +dont +mer +trouver +donner +temps +ça +peu +falloir +sous +parler +alors +main +chose +ton +mettre +vie +savoir +yeux +passer +autre +après +regarder +toujours +puis +jamais +cela +aimer +non +heure +croire +cent +monde +entre +donc +enfant +fois +seul +vers +chez +demander +jeune +jusque +très +moment +rester +répondre +entendre +tête +père +fille +mille +premier +car +ni +bon +trois +coeur +ainsi +an +quatre +terre +contre +dieu +monsieur +voix +penser +quel +arriver +maison +devant +coup +beau +connaître +devenir +air +mot +nuit +eau +sentir +vieux +sembler +moins +tenir +ici +comprendre +oui +rendre +toi +vingt +depuis +attendre +sortir +ami +trop +porte +lequel +chaque +amour +pendant +déjà +pied +tant +gens +parce que +nom +vivre +entrer +reprendre +porter +pays +ciel +avant +frère +regard +chercher +âme +côté +mort +enfin +revenir +noir +esprit +maintenant +nouveau +ville +rue +appeler +soir +chambre +mourir +partir +cinq +soleil +dernier +jeter +dix +roi +état +corps +beaucoup +suivre +bras +écrire +blanc +montrer +tomber +place +ouvrir +ah +parti +assez +cher +voilà +année +loin +point +visage +lettre +bruit +franc +fond +force +effet +arrêter +perdre +commencer +paraître +aucun +marcher +milieu +saint +idée +presque +ailleurs +travail +lumière +long +seulement +mois +fils +neuf +tel +lever +raison +gouvernement +permettre +pauvre +asseoir +plein +personne +vrai +peuple +fait +parole +guerre +toute +écouter +pensée +affaire +quoi +matin +pierre +monter +bas +vent +doute +front +ombre +part +maître +aujourd'hui +question +besoin +apercevoir +recevoir +mieux +peine +tour +servir +oh +autour +près +finir +famille +pourquoi +souvent +rire +dessus +madame +sorte +figure +droit +eh +peur +bout +lieu +silence +gros +chef +six +bois +histoire +crier +jouer +feu +tourner +longtemps +doux +fort +heureux +garder +partie +face +mouvement +fin +reconnaître +quitter +comment +route +dès +manger +livre +arbre +courir +cas +huit +lorsque +mur +ordre +continuer +est +bonheur +oublier +descendre +haut +intérêt +cacher +l'un +chacun +profond +argent +cause +poser +autant +travers +instant +façon +oeil +d'abord +tirer +forme +présenter +ajouter +agir +retrouver +chemin +cheveu +offrir +surtout +certain +plaisir +suite +apprendre +malgré +tuer +rouge +sang +retourner +rencontrer +sentiment +fleur +cependant +service +envoyer +plusieurs +table +vite +paix +moyen +dormir +pousser +lit +humain +voiture +rappeler +lire +général +nature +or +français +joie +sept +tard +président +pourtant +bouche +changer +essayer +froid +compter +sens +occuper +cri +expliquer +espèce +cheval +loi +sombre +ci +sûr +voici +ancien +tandis que +frapper +ministre +puisque +selon +travailler +propre +obtenir +rentrer +mal +pleurer +société +répéter +parfois +politique +oreille +payer +apporter +fenêtre +derrière +possible +fortune +compte +champ +manier +vraiment +immense +exister +action +boire +public +pareil +garçon +exemple +bleu +sourire +couleur +coucher +papier +d'autres +bientôt +causer +pièce +montagne +sol +oeuvre +partout +trente +cours +raconter +songer +serrer +désir +manquer +cour +nommer +bord +douleur +conduire +salle +saisir +entier +projet +demeurer +simple +étude +remettre +journal +geste +disparaître +battre +toucher +situation +oiseau +nécessaire +siècle +apparaître +souffrir +million +prix +groupe +centre +malheur +honneur +fermer +accepter +garde +mauvais +tendre +naître +sauver +problème +parmi +larme +avancer +chien +peau +reste +traverser +nombre +debout +mesure +social +souvenir +article +vue +couvrir +âge +gagner +système +former +plaire +effort +embrasser +rêve +oser +afin de +passion +auquel +empêcher +rapport +refuser +important +décider +produire +soldat +signe +lèvre +vérité +charger +mariage +mêler +espérer +plan +ressembler +cesser +dos +marche +dame +chanter +plutôt +conseil +sou +triste +coin +jardin +joli +soit +doigt +objet +fer +lentement +lendemain +combien +approcher +prier +train +papa +différent +valeur +jeu +échapper +glisser +secret +vieillard +briller +docteur +terrible +brûler +placer +jambe +juger +suffire +endroit +minute +nuage +atteindre +présence +fou +épaule +léger +liberté +feuille +journée +libre +annoncer +avenir +hier +résultat +élever +acheter +préparer +mener +hôtel +semaine +forêt +pur +assurer +qualité +prince +également +deviner +médecin +considérer +volonté +seigneur +vert +moindre +art +demain +quarante +cinquante +foule +appartenir +ligne +aussitôt +représenter +tromper +intérieur +vendre +beauté +riche +craindre +étrange +emporter +ensuite +soin +naturel +hasard +condition +quinze +classe +voyage +expression +présent +auprès +ensemble +caractère +gris +attention +exprimer +rouler +faible +posséder +scène +réveiller +difficile +foi +découvrir +aider +odeur +musique +choisir +oncle +événement +village +prononcer +taire +envie +midi +herbe +pluie +rêver +étendre +appuyer +trembler +lutte +réponse +grâce +espace +habitude +défendre +mémoire +existence +grave +créer +maintenir +verre +campagne +quelqu'un +juge +genou +impossible +fête +indiquer +prêt +promettre +relever +abandonner +ignorer +parent +large +colère +étoile +conscience +immobile +accompagner +adresser +observer +puissance +juste +matière +sable +séparer +marier +vivant +prévoir +accord +hiver +retour +autrefois +genre +vif +amener +obliger +acte +image +horizon +éclairer +poursuivre +livrer +danger +rôle +escalier +goût +ceci +bête +recherche +membre +pain +phrase +contenir +fuir +terme +couler +eaux +rocher +police +tranquille +proposer +unique +éprouver +type +retenir +vin +supérieur +attacher +voler +sec +justice +entraîner +somme +passage +époque +science +surprendre +côte +doucement +gauche +faute +école +rayon +briser +sujet +imaginer +diriger +douze +l'une +avis +parvenir +ouvert +pénétrer +poète +meilleur +paysan +remarquer +soudain +éviter +chair +succès +île +établir +réussir +pencher +habiter +entourer +détail +déclarer +réalité +arme +masse +confiance +crise +poste +étonner +durer +dresser +fixer +faux +énorme +principe +direction +taille +santé +désirer +ventre +marché +entrée +puissant +simplement +tellement +environ +arracher +soutenir +couper +trou +inconnu +examiner +pont +lune +dehors +certes +robe +beaux +douter +retirer +cesse +brusquement +source +espoir +camarade +quant à +dent +cou +connaissance +but +vague +promener +élément +voie +fil +nez +forcer +particulier +maladie +discours +chaleur +gloire +vide +revoir +aide +ennemi +début +second +flamme +aile +véritable +sein +lourd +chaise +toit +remplir +vaste +terminer +nu +poussière +nord +tenter +émotion +hors +remonter +théâtre +révolution +court +armée +semblable +appartement +installer +haine +seconde +position +frais +appel +soulever +imposer +allumer +respirer +poitrine +droite +baisser +arrière +jeunesse +sac +bureau +étranger +souffler +courage +page +jaune +etc +miser +passé +rapide +digne +propos +chaud +attirer +prêter +clair +amuser +occasion +voile +éclater +soi +quartier +importance +auteur +religion +réunir +palais +traiter +intelligence +flot +engager +voisin +tantôt +carte +animal +traîner +été +morceau +cabinet +employer +capable +souffrance +prouver +marquer +titre +importer +désert +spectacle +facile +exiger +reposer +fier +départ +danser +saluer +demande +lueur +joue +prière +accorder +avouer +achever +emmener +distinguer +fonction +durant +sommeil +aspect +éclat +moitié +demi +calme +contraire +colline +agiter +hésiter +terrain +rare +sonner +poids +changement +davantage +charge +composer diff --git a/resources/runtime/language/french200 b/resources/runtime/language/french200 new file mode 100644 index 0000000..8cb7c89 --- /dev/null +++ b/resources/runtime/language/french200 @@ -0,0 +1,200 @@ +le +de +un +et +être +à +il +avoir +ne +je +son +que +se +qui +en +ce +dans +du +elle +au +pour +pas +vous +par +sur +faire +plus +dire +me +on +mon +lui +nous +comme +mais +pouvoir +avec +tout +y +aller +voir +bien +où +sans +tu +ou +leur +homme +si +deux +mari +moi +vouloir +te +femme +venir +quand +grand +celui +notre +devoir +là +jour +prendre +même +votre +rien +encore +petit +aussi +quelque +dont +mer +trouver +donner +temps +ça +peu +falloir +sous +parler +alors +main +chose +ton +mettre +vie +savoir +yeux +passer +autre +après +regarder +toujours +puis +jamais +cela +aimer +non +heure +croire +cent +monde +entre +donc +enfant +fois +seul +vers +chez +demander +jeune +jusque +très +moment +rester +répondre +entendre +tête +père +fille +mille +premier +car +ni +bon +trois +coeur +ainsi +an +quatre +terre +contre +dieu +monsieur +voix +penser +quel +arriver +maison +devant +coup +beau +connaître +devenir +air +mot +nuit +eau +sentir +vieux +sembler +moins +tenir +ici +comprendre +oui +rendre +toi +vingt +depuis +attendre +sortir +ami +trop +porte +lequel +chaque +amour +pendant +déjà +pied +tant +gens +parce que +nom +vivre +entrer +reprendre +porter +pays +ciel +avant +frère +regard +chercher +âme +côté +mort +enfin +revenir +noir +esprit +maintenant +nouveau +ville +rue +appeler +soir +chambre diff --git a/src/main.rs b/src/main.rs index b31f653..e5d0110 100644 --- a/src/main.rs +++ b/src/main.rs @@ -218,6 +218,9 @@ fn main() -> io::Result<()> { let backend = CrosstermBackend::new(io::stdout()); let mut terminal = Terminal::new(backend)?; + let contents = opt + .gen_contents() + .expect("Couldn't get test contents. Make sure the specified language actually exists."); terminal::enable_raw_mode()?; execute!( @@ -228,13 +231,7 @@ fn main() -> io::Result<()> { )?; terminal.clear()?; - let mut state = State::Test(Test::new( - opt.gen_contents().expect( - "Couldn't get test contents. Make sure the specified language actually exists.", - ), - !opt.no_backtrack, - opt.sudden_death, - )); + let mut state = State::Test(Test::new(contents, !opt.no_backtrack, opt.sudden_death)); state.render_into(&mut terminal, &config)?; loop { diff --git a/src/test/results.rs b/src/test/results.rs index 6ac73d5..babe298 100644 --- a/src/test/results.rs +++ b/src/test/results.rs @@ -43,19 +43,6 @@ impl fmt::Display for Fraction { } } -pub trait PartialResults { - fn progress(&self) -> Fraction; -} - -impl PartialResults for Test { - fn progress(&self) -> Fraction { - Fraction { - numerator: self.current_word + 1, - denominator: self.words.len(), - } - } -} - pub struct TimingData { // Instead of storing WPM, we store CPS (clicks per second) pub overall_cps: f64,