readsight 1.0.0

Multilingual readability library — 86 languages, 17 formulas, TeX-based syllable counting via the Frank M. Liang algorithm.
Documentation
//! Multilingual demo: score a short sample in several languages.

use readsight::ReadSight;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let samples: &[(&str, &str)] = &[
        (
            "en-us",
            "The quick brown fox jumps over the lazy dog. It was a sunny day.",
        ),
        (
            "de-1996",
            "Ein schneller brauner Fuchs springt über den faulen Hund.",
        ),
        ("es", "El veloz zorro marrón salta sobre el perro perezoso."),
        (
            "it",
            "La volpe marrone salta sopra il cane pigro. Era una bella giornata.",
        ),
        (
            "ru",
            "Быстрая коричневая лиса прыгает через ленивую собаку.",
        ),
        ("pl", "Szybki brązowy lis przeskakuje nad leniwym psem."),
        ("ar", "الثعلب البني السريع يقفز فوق الكلب الكسول."),
    ];

    println!(
        "{} languages available",
        ReadSight::supported_languages(None).len()
    );
    println!();

    for (code, text) in samples {
        let rs = ReadSight::new(code)?;
        let stats = rs.analyze(text)?;
        println!(
            "[{}] {} — words={} sentences={} syllables={}",
            code,
            rs.language().name,
            stats.word_count,
            stats.sentence_count,
            stats.syllable_count
        );

        // Print the first three supported formulas for a compact overview.
        for formula in rs.supported_formulas().into_iter().take(3) {
            let r = rs.score(&formula, text)?;
            println!(
                "    {:<28} {:>7}  {}",
                r.formula_name, r.score, r.interpretation
            );
        }
        println!();
    }

    Ok(())
}