{
  "aztec-sign-calculator": {
    "heading": "Signe aztèque du jour de naissance",
    "subheading": "Signe du tonalpohualli (20 signes × 13 nombres), trecena et divinité patronne, selon la même corrélation que le tzolk'in maya.",
    "inputs_title": "Date de naissance",
    "birth_date": "Date de naissance",
    "invalid_date": "Saisissez une date entre 1900 et 2100.",
    "correlation_short": "Corrélation : la chute de Tenochtitlan, le 13 août 1521 (calendrier julien), tombe un jour 1 Cóatl, comme dans la corrélation GMT du tzolk'in maya.",
    "result_label": "Votre signe aztèque",
    "copy_label": "Copier",
    "number_label": "Nombre (1 à 13)",
    "trecena_label": "Trecena",
    "trecena_rank": "trecena n° {{n}} sur 20",
    "patron_label": "Divinité patronne du signe",
    "position_label": "Jour du cycle",
    "signs_title": "Les 20 signes du tonalpohualli",
    "notes_title": "Corrélation et limites",
    "correlation_note": "Le tonalpohualli et le tzolk'in maya suivent le même compte de 260 jours. Les chroniqueurs datent la chute de Tenochtitlan, le 13 août 1521 (julien), d'un jour 1 Cóatl ; la corrélation GMT (584283) donne bien 1 Cóatl ce jour-là, et c'est elle que l'outil applique.",
    "press_lists_note": "Certaines listes publiées dans la presse donnent un signe fixe pour chaque date de l'année. Un compte de 260 jours ne revient pas à la même date d'une année à l'autre (365 = 260 + 105) : votre signe peut donc différer de ces listes.",
    "tradition_note": "Le tonalpohualli était le calendrier rituel et divinatoire des Mexicas. Le signe et sa divinité sont présentés ici comme un héritage culturel, pas comme une prédiction.",
    "copy_text": "Signe aztèque : {{day}} ({{meaning}}). Trecena {{trecena}}. Divinité patronne : {{patron}}.",
    "sign_0": "Crocodile",
    "sign_1": "Vent",
    "sign_2": "Maison",
    "sign_3": "Lézard",
    "sign_4": "Serpent",
    "sign_5": "Mort",
    "sign_6": "Cerf",
    "sign_7": "Lapin",
    "sign_8": "Eau",
    "sign_9": "Chien",
    "sign_10": "Singe",
    "sign_11": "Herbe",
    "sign_12": "Roseau",
    "sign_13": "Jaguar",
    "sign_14": "Aigle",
    "sign_15": "Vautour",
    "sign_16": "Mouvement",
    "sign_17": "Silex",
    "sign_18": "Pluie",
    "sign_19": "Fleur"
  },
  "kua-number-calculator": {
    "heading": "Calcul du nombre Kua",
    "subheading": "Nombre Kua, groupe Est ou Ouest et directions favorables d'après l'année solaire chinoise et le sexe.",
    "inputs_title": "Date de naissance et sexe",
    "birth_date": "Date de naissance",
    "sex_label": "Sexe (la formule diffère)",
    "sex_female": "Femme",
    "sex_male": "Homme",
    "lichun_day_warning": "Naissance le jour du Lichun ({{date}}, heure de Pékin) : l'année solaire dépend de l'heure de naissance.",
    "before_lichun_label": "Naissance avant cette heure (année solaire précédente)",
    "range_note": "Dates de 1901 à 2099. L'année solaire chinoise commence au Lichun, vers le 4 février : une naissance en janvier ou début février compte pour l'année précédente.",
    "invalid_date": "Saisissez une date de naissance entre 1901 et 2099.",
    "result_label": "Votre nombre Kua",
    "copy_label": "Copier",
    "group_east": "Groupe Est",
    "group_west": "Groupe Ouest",
    "trigram_kan": "Trigramme Kan ☵ (eau)",
    "trigram_kun": "Trigramme Kun ☷ (terre)",
    "trigram_zhen": "Trigramme Zhen ☳ (bois)",
    "trigram_xun": "Trigramme Xun ☴ (bois)",
    "trigram_qian": "Trigramme Qian ☰ (métal)",
    "trigram_dui": "Trigramme Dui ☱ (métal)",
    "trigram_gen": "Trigramme Gen ☶ (terre)",
    "trigram_li": "Trigramme Li ☲ (feu)",
    "solar_year_label": "Année solaire chinoise",
    "born_before_lichun": "Naissance avant le Lichun : l'année précédente est retenue.",
    "born_after_lichun": "Naissance après le Lichun : l'année civile est retenue.",
    "lichun_label": "Lichun {{year}} (début du printemps)",
    "beijing_time": "Heure de Pékin (UTC+8), calcul à 10 minutes près",
    "steps_title": "Calcul pas à pas",
    "step_digits": "Deux derniers chiffres de l'année solaire : {{yy}}, réduits à un chiffre : {{r}}",
    "step_male_before": "Homme, année solaire avant 2000 : 10 − {{r}} = {{raw}}",
    "step_male_after": "Homme, année solaire 2000 ou après : 9 − {{r}} = {{raw}}",
    "step_female_before": "Femme, année solaire avant 2000 : {{r}} + 5 = {{raw}}",
    "step_female_after": "Femme, année solaire 2000 ou après : {{r}} + 6 = {{raw}}",
    "step_reduce": "Réduction à un chiffre (0 compte pour 9) : {{raw}} → {{reduced}}",
    "step_five_male": "Le 5 n'a pas de trigramme : il devient 2 pour un homme.",
    "step_five_female": "Le 5 n'a pas de trigramme : il devient 8 pour une femme.",
    "directions_title": "Directions selon les Huit Demeures",
    "col_position": "Position",
    "col_direction": "Direction",
    "col_quality": "Qualité",
    "favorable": "Favorable",
    "unfavorable": "Défavorable",
    "pos_sheng_qi": "Sheng Qi (vitalité, réussite)",
    "pos_tian_yi": "Tian Yi (santé)",
    "pos_yan_nian": "Yan Nian (relations, longévité)",
    "pos_fu_wei": "Fu Wei (stabilité)",
    "pos_huo_hai": "Huo Hai (contrariétés)",
    "pos_wu_gui": "Wu Gui (cinq fantômes)",
    "pos_liu_sha": "Liu Sha (six tueurs)",
    "pos_jue_ming": "Jue Ming (perte totale)",
    "dir_N": "Nord",
    "dir_NE": "Nord-Est",
    "dir_E": "Est",
    "dir_SE": "Sud-Est",
    "dir_S": "Sud",
    "dir_SW": "Sud-Ouest",
    "dir_W": "Ouest",
    "dir_NW": "Nord-Ouest",
    "tradition_note": "Ces directions viennent de l'école des Huit Demeures (Ba Zhai) du feng shui, une tradition chinoise. C'est un système symbolique : aucune étude scientifique ne montre qu'une orientation agit sur la santé, l'argent ou les relations.",
    "cycle_title": "Contrôle : le cycle de 9 ans",
    "cycle_note": "Le nombre Kua baisse de 1 par an pour les hommes et monte de 1 pour les femmes ; le 5 devient 2 (hommes) ou 8 (femmes). Les formules « après 2000 » prolongent le même cycle.",
    "copy_text": "Nombre Kua {{kua}} ({{group}}). Directions favorables : {{good}}. Défavorables : {{bad}}."
  },
  "maya-kin-calculator": {
    "heading": "Kin maya, sceau et nawal par date de naissance",
    "subheading": "Le Sincronario 13 Lunes (Dreamspell) et le compte traditionnel du tzolk'in, côte à côte, avec l'écart entre les deux.",
    "inputs_title": "Date de naissance",
    "birth_date": "Date de naissance",
    "two_systems_note": "Deux comptes de 260 jours portent le nom de calendrier maya : le Sincronario de José Argüelles, qui donne le kin et la signature galactique, et le tzolk'in encore tenu au Guatemala, qui donne le nawal. Ils ne tombent pas le même jour.",
    "invalid_date": "Saisissez une date entre 1900 et 2100.",
    "ds_title": "Sincronario 13 Lunes (Dreamspell, J. Argüelles)",
    "copy_label": "Copier",
    "kin_n": "Kin {{n}}",
    "seal_label": "Sceau solaire",
    "tone_label": "Ton galactique",
    "wavespell_label": "Onde enchantée",
    "hunab_ku_note": "Le 29 février n'a pas de kin dans le Sincronario : c'est le jour « 0.0 Hunab Ku », hors du compte. L'outil affiche le kin du 28 février et le signale.",
    "oracle_title": "Oracle de la signature galactique",
    "oracle_analog": "Analogue",
    "oracle_antipode": "Antipode",
    "oracle_occult": "Occulte",
    "guide_note": "Le guide n'est pas affiché : sa règle dépend du ton et aucune source publiée consultée ne la confirme pour tous les tons.",
    "trad_title": "Compte traditionnel (tzolk'in, corrélation GMT 584283)",
    "nawal_label": "Nawal (k'iche')",
    "number_label": "Nombre",
    "position_label": "Jour du cycle",
    "trad_note": "En grand, le nom yucatèque du jour ; à côté, le nom k'iche' employé par les guides spirituels (ajq'ij) du Guatemala, où ce compte est toujours tenu.",
    "diff_title": "Pourquoi les deux résultats diffèrent",
    "diff_value": "Kin {{ds}} dans le Sincronario, jour {{trad}} dans le tzolk'in : {{gap}} jours d'écart dans le cycle de 260.",
    "diff_origin": "Point de départ différent : le Sincronario suit le compte fixé par José Argüelles (Dreamspell), le tzolk'in le compte ininterrompu que la corrélation GMT relie au calendrier grégorien.",
    "diff_leap": "Le Sincronario saute le 29 février, le tzolk'in non : l'écart augmente d'un jour à chaque année bissextile.",
    "tradition_note": "Ces calendriers relèvent de traditions culturelles et spirituelles. Le kin et le nawal sont des symboles, pas des prédictions.",
    "copy_text": "Sincronario : kin {{kin}}, {{seal}}, ton {{tone}}. Tzolk'in traditionnel : {{trad}}.",
    "seal_1": "Dragon Rouge",
    "seal_2": "Vent Blanc",
    "seal_3": "Nuit Bleue",
    "seal_4": "Graine Jaune",
    "seal_5": "Serpent Rouge",
    "seal_6": "Passeur de Mondes Blanc",
    "seal_7": "Main Bleue",
    "seal_8": "Étoile Jaune",
    "seal_9": "Lune Rouge",
    "seal_10": "Chien Blanc",
    "seal_11": "Singe Bleu",
    "seal_12": "Humain Jaune",
    "seal_13": "Marcheur du Ciel Rouge",
    "seal_14": "Sorcier Blanc",
    "seal_15": "Aigle Bleu",
    "seal_16": "Guerrier Jaune",
    "seal_17": "Terre Rouge",
    "seal_18": "Miroir Blanc",
    "seal_19": "Tempête Bleue",
    "seal_20": "Soleil Jaune",
    "tone_1": "Magnétique",
    "tone_2": "Lunaire",
    "tone_3": "Électrique",
    "tone_4": "Auto-existant",
    "tone_5": "Harmonique",
    "tone_6": "Rythmique",
    "tone_7": "Résonant",
    "tone_8": "Galactique",
    "tone_9": "Solaire",
    "tone_10": "Planétaire",
    "tone_11": "Spectral",
    "tone_12": "Cristal",
    "tone_13": "Cosmique"
  },
  "average-daily-gain-calculator": {
    "heading": "Calcul du GMQ (gain moyen quotidien)",
    "subheading": "Deux pesées, deux dates : le GMQ en g/j, le gain du lot et la date prévue pour un poids cible.",
    "weighings_title": "Pesées",
    "species": "Espèce",
    "species_cattle": "Bovin",
    "species_pig": "Porc",
    "species_sheep": "Ovin (agneau)",
    "species_poultry": "Volaille (poulet de chair)",
    "species_other": "Autre espèce",
    "date1": "Date de la 1re pesée",
    "weight1": "Poids à la 1re pesée",
    "date2": "Date de la 2e pesée",
    "weight2": "Poids à la 2e pesée",
    "count": "Nombre d'animaux du lot",
    "count_hint": "Saisissez le poids d'un animal ou le poids moyen du lot : le gain du lot est multiplié par ce nombre. Pour la 1re pesée, le poids de naissance convient.",
    "target_title": "Date prévue pour un poids cible",
    "target": "Poids cible",
    "target_date": "Au même GMQ, l'animal atteindra {{target}} kg vers le {{date}}, soit {{days}} jours après la 2e pesée.",
    "target_reached": "Le poids cible de {{target}} kg est déjà atteint à la 2e pesée.",
    "target_no_gain": "Le GMQ est nul ou négatif : aucune date ne peut être projetée.",
    "result_title": "Gain moyen quotidien",
    "copy_label": "Copier le résultat",
    "answer": "GMQ = {{gmq}} g/j ({{gain}} kg gagnés en {{days}} jours)",
    "invalid_dates": "La 2e pesée doit être postérieure à la 1re : vérifiez les dates.",
    "gmq_label": "GMQ (g/j)",
    "gmq_kg_label": "GMQ (kg/j)",
    "days_label": "Jours entre les pesées",
    "lot_gain_label": "Gain total du lot",
    "unit_g_day": "g/j",
    "bench_title": "Repères publiés",
    "bench_none": "Pas de repère sourcé pour cette espèce : comparez le GMQ à celui de vos lots précédents.",
    "bench_note": "Ces repères sont des moyennes publiées, pas des objectifs : le GMQ attendu dépend de la race, du sexe, de l'âge et de l'alimentation. Un GMQ anormalement bas se discute avec votre technicien ou votre vétérinaire.",
    "bench_pig_postweaning": "Post-sevrage, 8 à 30 kg",
    "bench_pig_fattening": "Engraissement, 30 à 115 kg",
    "bench_pig_weaning_sale": "Du sevrage à la vente, 8 à 115 kg",
    "bench_poultry_d35": "Poulet Ross 308, GMQ moyen de 0 à 35 jours",
    "bench_poultry_d42": "Poulet Ross 308, GMQ moyen de 0 à 42 jours",
    "src_ifip": "Moyenne française, IFIP, Références GTTT-GTE 2024 (édition 2025), élevages naisseurs-engraisseurs",
    "src_aviagen": "Objectif du sélectionneur, Aviagen, Ross 308 Broiler Performance Objectives 2022 (sexes mélangés)"
  },
  "cattle-water-requirement-calculator": {
    "heading": "Besoin en eau d'abreuvement des bovins",
    "subheading": "Litres par jour et par animal, puis total du troupeau par jour, par mois et par an, d'après deux tables publiées.",
    "method": "Référence utilisée",
    "method_omafra": "OMAFRA 2023 : par type d'animal (lait et viande)",
    "method_nrc": "NRC 1996 : bovins viande selon poids et température",
    "type": "Type d'animal",
    "type_dairy_lactating": "Vache laitière en lactation",
    "type_dairy_dry": "Vache laitière tarie",
    "type_dairy_heifer": "Génisse laitière (5 à 24 mois)",
    "type_dairy_calf": "Veau laitier (1 à 4 mois)",
    "type_beef_backgrounding": "Bovin à l'engrais, 181 à 364 kg",
    "type_beef_finishing": "Bovin en finition, 364 à 636 kg",
    "type_beef_cow_calf": "Vache allaitante et son veau",
    "type_beef_dry_bull": "Vache allaitante tarie, génisse pleine ou taureau",
    "milk": "Production de lait par vache et par jour",
    "source_omafra": "Source : MAAARO (ministère de l'Agriculture de l'Ontario, Canada), fiche technique n° 23-024 « Les exigences en eau des animaux d'élevage », février 2023, tableaux 1 et 2. Fourchette = quantité requise selon l'environnement et la conduite.",
    "nrc_category": "Catégorie et poids",
    "nrc_growing": "Génisse, bouvillon ou taurillon en croissance",
    "nrc_finishing": "Bovin en finition",
    "nrc_wintering": "Vache allaitante en hivernage (gestante)",
    "nrc_lactating": "Vache allaitante en lactation",
    "nrc_bull": "Taureau adulte",
    "nrc_row": "{{group}}, {{kg}} kg ({{lb}} lb)",
    "temperature": "Température de l'air (colonne de la table)",
    "temp_first": "{{c}} °C ({{f}} °F) ou moins",
    "temp_col": "{{c}} °C ({{f}} °F)",
    "source_nrc": "Source : NRC, Nutrient Requirements of Beef Cattle, 7e éd. (1996), d'après Winchester et Morris (1956), table reprise par l'université du Nebraska-Lincoln (fiche G2060, 2011). Valeurs converties des gallons US en litres et des °F en °C ; pas d'interpolation entre les colonnes.",
    "herd": "Nombre d'animaux",
    "answer_lactating": "Une vache laitière à {{milk}} kg de lait par jour boit {{lo}} à {{hi}} L d'eau par jour",
    "answer_type": "{{type}} : {{lo}} à {{hi}} L d'eau par jour et par animal",
    "answer_nrc": "{{row}}, à {{temp}} °C : environ {{l}} L d'eau par jour",
    "nrc_no_value": "La table NRC ne donne pas de valeur pour les vaches en hivernage au-dessus de 21 °C (70 °F).",
    "result_title": "Eau d'abreuvement",
    "copy_label": "Copier le résultat",
    "per_animal": "Par animal et par jour",
    "herd_day": "Troupeau, par jour",
    "herd_month": "Troupeau, par mois (30 jours)",
    "herd_year": "Troupeau, par an",
    "interp_note": "La table donne 4 niveaux de production (13,6 ; 22,7 ; 36,3 et 45,5 kg/j) : entre deux lignes, la fourchette est interpolée linéairement.",
    "clamp_note": "Production hors de la table : la ligne la plus proche est utilisée.",
    "cirad_line": "Autre référence, fiche CASEF du CIRAD (PDF de 2019) : 30 à 40 L d'entretien plus 4 à 5 L par litre de lait pour une vache de 500 kg, soit {{lo}} à {{hi}} L/j (1 kg de lait compté comme 1 L).",
    "avg_line": "Consommation moyenne relevée en Ontario pour cette catégorie : {{avg}} L/j.",
    "nrc_note": "La table donne l'eau totale, eau des aliments comprise, et la consommation reste constante sous 4,4 °C (40 °F).",
    "trough_title": "Débit de l'abreuvoir",
    "trough_flow": "Une vache boit 10 à 20 L par minute : l'abreuvoir doit débiter environ 20 L/min (Guide de l'abreuvement, chambre régionale d'agriculture de Bourgogne-Franche-Comté, 2022).",
    "heat_title": "Chaleur",
    "heat_note": "Le même guide indique que le besoin d'une vache allaitante avec son veau, 40 L/j, est multiplié par 1,5 voire 2 lors des fortes chaleurs d'été. Pour chiffrer l'effet de la température, choisissez la référence NRC.",
    "range_note": "Ces valeurs sont des repères publiés : l'eau doit rester disponible à volonté, et la consommation réelle varie avec la ration, l'humidité des fourrages et la chaleur."
  },
  "energy-corrected-milk-calculator": {
    "heading": "Lait corrigé en énergie (ECM), FPCM et lait à 4 % de MG",
    "subheading": "Ramenez une production à un lait standard selon ses taux de matière grasse, de protéines et de lactose.",
    "inputs_title": "Production et composition",
    "milk": "Lait produit",
    "milk_hint": "Par jour, par lactation ou par an : le résultat est donné pour la même période.",
    "fat": "Taux de matière grasse (TB)",
    "protein": "Taux protéique",
    "lactose": "Taux de lactose",
    "lactose_hint": "Sans lactose, l'ECM utilise la variante de Sjaunja qui suppose 4,61 % de lactose. Le FPCM et le FCM n'utilisent pas le lactose.",
    "result_title": "Lait corrigé",
    "copy_label": "Copier le résultat",
    "answer": "{{milk}} kg de lait à {{fat}} % de MG et {{protein}} % de protéines = {{ecm}} kg d'ECM",
    "ecm_label": "ECM, lait corrigé en énergie",
    "ecm_src": "Sjaunja et al. (1990) : lait × (383 × MG + 242 × protéines totales + 165,4 × lactose + 20,7) / 3 140",
    "fpcm_label": "FPCM, lait corrigé en matière grasse et protéines",
    "fcm_label": "Lait à 4 % de matière grasse (FCM)",
    "fcm_src": "Gaines et Davidson (1923) : 0,4 × lait + 15 × kg de matière grasse",
    "notes_title": "À savoir",
    "note_standard": "Chaque formule ramène le lait à un lait de référence : 3 140 kJ par kg pour l'ECM, 4,0 % de MG et 3,3 % de protéines vraies pour le FPCM, 4 % de MG pour le FCM. Un lait plus riche donne donc plus de kg corrigés que de kg produits.",
    "basis": "Le taux protéique saisi est en",
    "basis_crude": "protéines totales (N × 6,38), le TP des laiteries",
    "basis_true": "protéines vraies",
    "lactose_known": "Je connais le taux de lactose",
    "ecm_src_nolactose": "Sjaunja et al. (1990), sans lactose : lait × (0,25 + 0,122 × MG + 0,077 × protéines totales)",
    "fpcm_src_crude": "FIL-IDF 520/2022, d'après la fiche Fonterra 2025, forme en protéines totales : lait × (0,1226 × MG + 0,0722 × protéines + 0,2534)",
    "fpcm_src_true": "FIL-IDF 520/2022, d'après la fiche Fonterra 2025 : lait × (0,1226 × MG + 0,0776 × protéines vraies + 0,2534)",
    "note_protein_crude": "L'ECM de Sjaunja se calcule avec les protéines totales (N × 6,38), celles du taux protéique (TP) des laiteries. Le FPCM prend alors le coefficient 0,0722, équivalent pour des protéines totales de celui de la FIL.",
    "note_protein_true": "Le FPCM de la FIL se calcule avec les protéines vraies (coefficient 0,0776). L'ECM de Sjaunja est défini avec les protéines totales : avec des protéines vraies, il est légèrement sous-estimé."
  },
  "feed-conversion-ratio-calculator": {
    "heading": "Calcul de l'indice de consommation (IC)",
    "subheading": "Aliment consommé et pesées : l'IC, l'efficacité alimentaire et le coût alimentaire par kg de gain.",
    "inputs_title": "Aliment et pesées",
    "feed": "Aliment consommé (refus déduits)",
    "weight1": "Poids vif au début",
    "weight2": "Poids vif à la fin",
    "inputs_hint": "Pour un animal ou pour tout le lot, avec les mêmes animaux au début et à la fin. Exemple par défaut : un porc de 30 à 118 kg qui consomme 229 kg d'aliment.",
    "price_title": "Prix de l'aliment",
    "price": "Prix de l'aliment par tonne",
    "price_reset": "Valeur par défaut",
    "result_title": "Indice de consommation",
    "copy_label": "Copier le résultat",
    "answer": "IC = {{ic}} kg d'aliment par kg de gain ({{feed}} kg d'aliment pour {{gain}} kg de gain)",
    "invalid_gain": "Le gain de poids doit être positif : le poids de fin doit dépasser le poids de début.",
    "ic_label": "IC (kg d'aliment / kg de gain)",
    "efficiency_label": "Efficacité alimentaire (kg de gain / kg d'aliment)",
    "cost_label": "Coût alimentaire par kg de gain",
    "cost_hint": "Le coût est exprimé dans la monnaie du prix saisi.",
    "gain_label": "Gain de poids vif",
    "dead": "Poids des animaux morts ou retirés (facultatif)",
    "price_source": "Par défaut : 326 €/t, prix IFIP de l'aliment pour porc à l'engrais en avril 2025 (Agreste, DRAAF Bretagne, conjoncture de juin 2025). Remplacez-le par le prix de votre aliment, dans n'importe quelle monnaie.",
    "ic_live": "Sans compter le poids des animaux morts ou retirés, l'IC serait de {{ic}}.",
    "bench_title": "Repères publiés",
    "bench_pig_postweaning": "Porc, post-sevrage 8 à 30 kg : IC de 1,71 (IFIP, GTE 2024)",
    "bench_pig_fattening": "Porc, engraissement 30 à 115 kg : IC de 2,61 (IFIP, GTE 2024)",
    "bench_pig_global": "Porc, IC global de l'élevage naisseur-engraisseur : 2,74 (IFIP, GTE 2024)",
    "bench_poultry": "Poulet Ross 308 : IC de 1,399 à 35 jours (2,296 kg) et 1,531 à 42 jours (2,998 kg), objectifs Aviagen 2022 sans correction de mortalité",
    "bench_note": "Moyennes et objectifs publiés, pas des normes : l'IC dépend de l'aliment, de la génétique, des pertes d'aliment et de la plage de poids. Comparez des plages de poids identiques."
  },
  "celtic-tree-horoscope-calculator": {
    "heading": "Horoscope celte : votre arbre de naissance",
    "subheading": "Choisissez le jour et le mois de naissance, puis le système.",
    "birth_day": "Jour de naissance",
    "birth_month": "Mois de naissance",
    "system": "Système",
    "system_delsol": "Cercle de 21 arbres (Paula Delsol, 1971)",
    "system_graves": "13 mois lunaires (Robert Graves, 1948)",
    "origin_title": "Une invention du XXe siècle",
    "origin_text": "Aucune source antique ou médiévale ne décrit un horoscope celte des arbres. Robert Graves a tiré ses 13 mois de l'alphabet oghamique dans The White Goddess (1948) ; Paula Delsol a créé le cercle de 21 arbres pour Marie Claire en 1971.",
    "headline": "{{date}} : {{tree}}",
    "genus": "Genre botanique",
    "ogham": "Lettre oghamique",
    "nameless_note": "Graves compte 13 mois de 28 jours, soit 364 jours : le 23 décembre reste hors des mois.",
    "periods": "Périodes de cet arbre",
    "range": "du {{from}} au {{to}}",
    "copy": "Copier le résultat",
    "other_system": "Dans l'autre système, « {{system}} », la même date donne : {{tree}}.",
    "tree_apple": "Pommier",
    "tree_fir": "Sapin",
    "tree_elm": "Orme",
    "tree_cypress": "Cyprès",
    "tree_poplar": "Peuplier",
    "tree_celtis": "Micocoulier (parfois « cèdre »)",
    "tree_pine": "Pin",
    "tree_willow": "Saule",
    "tree_lime": "Tilleul",
    "tree_oak": "Chêne",
    "tree_hazel": "Noisetier",
    "tree_rowan": "Sorbier",
    "tree_maple": "Érable",
    "tree_walnut": "Noyer",
    "tree_chestnut": "Châtaignier",
    "tree_ash": "Frêne",
    "tree_hornbeam": "Charme",
    "tree_fig": "Figuier",
    "tree_birch": "Bouleau",
    "tree_olive": "Olivier",
    "tree_beech": "Hêtre",
    "tree_alder": "Aulne",
    "tree_hawthorn": "Aubépine",
    "tree_holly": "Houx",
    "tree_vine": "Vigne",
    "tree_ivy": "Lierre",
    "tree_reed": "Roseau",
    "tree_elder": "Sureau",
    "tree_nameless": "Jour sans nom"
  },
  "egyptian-horoscope-calculator": {
    "heading": "Horoscope égyptien : votre divinité",
    "subheading": "Choisissez le jour et le mois de naissance, puis la version de la table.",
    "birth_day": "Jour de naissance",
    "birth_month": "Mois de naissance",
    "version": "Version de la table",
    "version_scattered": "12 dieux, périodes dispersées (FR, DE, EN)",
    "version_monthly": "12 dieux, du 16 au 15 (presse hispanophone)",
    "origin_title": "Une invention moderne",
    "origin_text": "Aucun texte égyptien ne range les naissances sous 12 dieux. Ces tables circulent dans la presse et sur le web depuis le XXe siècle et diffèrent selon les pays. Le seul zodiaque connu en Égypte, celui de Dendérah (Ier siècle av. J.-C.), reprend les signes gréco-babyloniens.",
    "headline": "{{date}} : {{god}}",
    "periods": "Périodes de cette divinité",
    "range": "du {{from}} au {{to}}",
    "copy": "Copier le résultat",
    "other_version": "Dans l'autre version, « {{version}} », la même date donne : {{god}}.",
    "god_nile": "Le Nil",
    "god_amun_ra": "Amon-Rê",
    "god_mut": "Mout",
    "god_geb": "Geb",
    "god_osiris": "Osiris",
    "god_isis": "Isis",
    "god_thoth": "Thot",
    "god_horus": "Horus",
    "god_anubis": "Anubis",
    "god_seth": "Seth",
    "god_bastet": "Bastet",
    "god_sekhmet": "Sekhmet",
    "god_selket": "Serket",
    "god_apep": "Apophis (Apep)",
    "god_ptah": "Ptah",
    "god_atum": "Atoum",
    "god_ra": "Rê",
    "god_maat": "Maât",
    "god_hathor": "Hathor",
    "role_nile": "Le fleuve, personnifié par le dieu Hâpy, apporte chaque année la crue qui fertilise les terres.",
    "role_amun_ra": "Fusion d'Amon, dieu de Thèbes, et de Rê, le soleil : roi des dieux au Nouvel Empire.",
    "role_mut": "Déesse mère de Thèbes, épouse d'Amon et mère de Khonsou.",
    "role_geb": "Dieu de la terre, père d'Osiris, d'Isis, de Seth et de Nephthys.",
    "role_osiris": "Dieu des morts et de la renaissance, souverain et juge de l'au-delà.",
    "role_isis": "Déesse de la magie et de la protection, épouse d'Osiris et mère d'Horus.",
    "role_thoth": "Dieu de l'écriture, du savoir et de la lune, scribe des dieux.",
    "role_horus": "Dieu faucon du ciel et de la royauté, fils d'Isis et d'Osiris.",
    "role_anubis": "Dieu à tête de chacal de l'embaumement, gardien des nécropoles.",
    "role_seth": "Dieu du désert, des orages et du désordre, meurtrier d'Osiris dans le mythe.",
    "role_bastet": "Déesse à tête de chatte de Bubastis, protectrice du foyer.",
    "role_sekhmet": "Déesse lionne de la guerre et des épidémies, invoquée aussi pour guérir.",
    "role_selket": "Déesse au scorpion, protectrice contre les piqûres et les morsures venimeuses.",
    "role_apep": "Serpent du chaos, ennemi de Rê ; il n'était pas vénéré mais combattu dans les rites.",
    "role_ptah": "Dieu créateur de Memphis, patron des artisans.",
    "role_atum": "Dieu créateur d'Héliopolis, associé au soleil couchant. Certaines listes mettent Thot à sa place.",
    "role_ra": "Dieu du soleil, qui traverse le ciel dans sa barque.",
    "role_maat": "Déesse de la vérité, de la justice et de l'ordre du monde.",
    "role_hathor": "Déesse de l'amour, de la musique et de la joie, souvent figurée avec des cornes de vache."
  },
  "tarot-birth-card-calculator": {
    "heading": "Calcul de votre arcane de naissance",
    "subheading": "Méthode de Mary K. Greer : mois + jour + année, réduits en arcanes majeurs.",
    "birth_date": "Date de naissance",
    "calculation": "Calcul",
    "method_title": "La méthode",
    "method_text": "Additionnez le mois, le jour et l'année, puis les chiffres du total jusqu'à obtenir 22 ou moins : c'est la carte de personnalité. Réduite à un chiffre, elle donne la carte de l'âme. 22 vaut le Mat (0) et se réduit en 4. Numérotation Rider-Waite : VIII la Force, XI la Justice.",
    "disclaimer": "Un système symbolique de connaissance de soi, pas une prédiction.",
    "invalid_date": "Saisissez une date de naissance complète.",
    "your_cards": "Vos arcanes de naissance",
    "headline_single": "{{n}} – {{card}}, carte unique",
    "headline_pair": "{{n1}} – {{first}} et {{n2}} – {{last}}",
    "copy": "Copier le résultat",
    "role_single": "Carte de personnalité et de l’âme",
    "role_personality": "Carte de personnalité",
    "role_soul": "Carte de l'âme",
    "role_middle": "Étape intermédiaire",
    "marseille_note_8": "Dans le tarot de Marseille, la Force porte le numéro XI.",
    "marseille_note_11": "Dans le tarot de Marseille, la Justice porte le numéro VIII.",
    "arcana_0": "Le Mat (le Fou)",
    "arcana_1": "Le Bateleur (le Magicien)",
    "arcana_2": "La Papesse (la Grande Prêtresse)",
    "arcana_3": "L'Impératrice",
    "arcana_4": "L'Empereur",
    "arcana_5": "Le Pape (le Hiérophante)",
    "arcana_6": "L'Amoureux",
    "arcana_7": "Le Chariot",
    "arcana_8": "La Force",
    "arcana_9": "L'Hermite",
    "arcana_10": "La Roue de Fortune",
    "arcana_11": "La Justice",
    "arcana_12": "Le Pendu",
    "arcana_13": "L'Arcane sans nom (la Mort)",
    "arcana_14": "Tempérance",
    "arcana_15": "Le Diable",
    "arcana_16": "La Maison Dieu (la Tour)",
    "arcana_17": "L'Étoile",
    "arcana_18": "La Lune",
    "arcana_19": "Le Soleil",
    "arcana_20": "Le Jugement",
    "arcana_21": "Le Monde",
    "kw_0": "liberté, départ, spontanéité",
    "kw_1": "initiative, habileté, volonté",
    "kw_2": "intuition, étude, discrétion",
    "kw_3": "créativité, abondance, expression",
    "kw_4": "structure, autorité, stabilité",
    "kw_5": "tradition, enseignement, valeurs",
    "kw_6": "choix, relations, harmonie",
    "kw_7": "élan, maîtrise, mouvement",
    "kw_8": "courage, force intérieure, patience",
    "kw_9": "introspection, sagesse, solitude",
    "kw_10": "cycles, changement, occasion",
    "kw_11": "équilibre, vérité, équité",
    "kw_12": "lâcher-prise, autre regard, pause",
    "kw_13": "transformation, fin, renouveau",
    "kw_14": "mesure, guérison, mélange",
    "kw_15": "désir, attachement, matière",
    "kw_16": "bouleversement, révélation, libération",
    "kw_17": "espoir, inspiration, sérénité",
    "kw_18": "imagination, rêves, incertitude",
    "kw_19": "joie, vitalité, réussite",
    "kw_20": "éveil, appel, renouveau",
    "kw_21": "accomplissement, achèvement, plénitude"
  },
  "tibetan-calendar-converter": {
    "heading": "Convertisseur de calendrier tibétain (Phugpa)",
    "subheading": "Date tibétaine d'un jour grégorien, mois intercalaires, jours sautés ou doublés et dates du Losar.",
    "gregorian_date": "Date grégorienne",
    "today": "Aujourd'hui",
    "range_note": "Dates acceptées : de 1900 à 2100.",
    "method_title": "Méthode de calcul",
    "method_text": "Calcul Phugpa d'après Svante Janson, « Tibetan calendar mathematics » (2007, révisé en 2014), avec l'anomalie lunaire des almanachs (1/28). Le jour civil porte le numéro du jour lunaire qui s'y termine. Comparez avec l'almanach de votre centre pour les dates de pratique.",
    "invalid_date": "Saisissez une date entre 1900 et 2100.",
    "year_name": "{{animal}} {{element}} ({{gender}})",
    "element_0": "de Bois",
    "element_1": "de Feu",
    "element_2": "de Terre",
    "element_3": "de Fer",
    "element_4": "d'Eau",
    "animal_0": "Souris",
    "animal_1": "Bœuf",
    "animal_2": "Tigre",
    "animal_3": "Lièvre",
    "animal_4": "Dragon",
    "animal_5": "Serpent",
    "animal_6": "Cheval",
    "animal_7": "Mouton",
    "animal_8": "Singe",
    "animal_9": "Oiseau",
    "animal_10": "Chien",
    "animal_11": "Cochon",
    "male": "mâle",
    "female": "femelle",
    "headline": "Jour {{day}} du mois {{month}}, an {{royal}} – {{year}}",
    "leap_month_badge": "Mois intercalaire (le premier des deux mois de ce numéro)",
    "leap_day_badge": "Jour doublé : première occurrence",
    "full_moon_badge": "15e jour : pleine lune",
    "new_moon_badge": "30e jour : nouvelle lune",
    "rabjung": "Rabjung (cycle de 60 ans)",
    "rabjung_value": "{{cycle}}e cycle, année {{n}}",
    "royal_year": "Année royale tibétaine",
    "month_start": "Premier jour du mois",
    "month_end": "Dernier jour du mois",
    "skipped_days": "Numéros sautés ce mois-ci",
    "doubled_days": "Numéros doublés ce mois-ci",
    "none": "aucun",
    "copy": "Copier la date tibétaine",
    "losar_title": "Dates du Losar (Nouvel An tibétain)",
    "col_year": "Année tibétaine",
    "col_losar": "Losar",
    "col_name": "Nom de l'année"
  },
  "bushel-tonne-converter": {
    "heading": "Convertisseur bushels ↔ tonnes",
    "subheading": "Par culture, avec les poids standard du bushel de l’USDA, et en rendement bu/acre ↔ t/ha.",
    "tab_qty": "Quantité",
    "tab_yield": "Rendement",
    "inputs_title": "Conversion",
    "crop_label": "Culture",
    "crop_wheat": "Blé",
    "crop_soybeans": "Soja",
    "crop_corn": "Maïs grain",
    "crop_sorghum": "Sorgho grain",
    "crop_rye": "Seigle",
    "crop_flaxseed": "Lin",
    "crop_barley": "Orge",
    "crop_oats": "Avoine",
    "crop_option": "{{crop}} ({{lb}} lb)",
    "lb_label": "Poids du bushel",
    "lb_hint": "Soit {{kg}} kg. Valeur USDA (AH-697, 1992) ; modifiez-la si votre contrat fixe un autre poids.",
    "dir_label": "Sens",
    "dir_bu_t": "Bushels → tonnes",
    "dir_t_bu": "Tonnes → bushels",
    "dir_buac_tha": "bu/acre → t/ha",
    "dir_tha_buac": "t/ha → bu/acre",
    "qty_label": "Quantité",
    "yield_label": "Rendement",
    "answer_title": "Résultat",
    "copy_label": "Copier",
    "answer_bu_t": "{{crop}} : {{bu}} bu ({{lb}} lb) = {{t}} t",
    "answer_t_bu": "{{crop}} : {{t}} t = {{bu}} bu ({{lb}} lb)",
    "answer_buac_tha": "{{crop}} : {{buac}} bu/acre ({{lb}} lb) = {{tha}} t/ha",
    "answer_tha_buac": "{{crop}} : {{tha}} t/ha = {{buac}} bu/acre ({{lb}} lb)",
    "invalid": "Saisissez une valeur positive et un poids de bushel supérieur à 0.",
    "row_bushels": "Bushels",
    "row_tonnes": "Tonnes métriques",
    "row_kg": "Kilogrammes",
    "row_quintals": "Quintaux (q)",
    "row_short_tons": "Tonnes courtes US (2 000 lb)",
    "row_pounds": "Livres",
    "row_buac": "Bushels par acre",
    "row_tha": "Tonnes par hectare",
    "row_kgha": "Kilogrammes par hectare",
    "row_qha": "Quintaux par hectare (q/ha)",
    "table_title": "Poids standard du bushel (USDA)",
    "col_crop": "Culture",
    "col_bu_per_t": "bu par tonne",
    "col_kgha_per_buac": "kg/ha pour 1 bu/acre",
    "source_note": "Poids du bushel : USDA ERS, Agricultural Handbook 697 (1992), tableau 5. 1 livre = 0,45359237 kg et 1 acre = 0,40468564 ha (définitions exactes).",
    "note_other_crops": "Colza, canola et tournesol n’ont pas de poids de bushel dans ce tableau : saisissez celui de votre contrat dans le champ « Poids du bushel »."
  },
  "grain-moisture-shrink-calculator": {
    "heading": "Perte au séchage du grain (merma por humedad)",
    "subheading": "Poids sec commercialisable, perte en kg et en %, perte de manutention et table par point d’humidité.",
    "inputs_title": "Lot de grain",
    "weight_label": "Poids récolté (humide)",
    "hi_label": "Humidité initiale",
    "hf_label": "Humidité finale (base)",
    "handling_label": "Perte de manutention (merma de manipuleo)",
    "handling_none": "Aucune",
    "handling_purdue": "{{pct}} % (Purdue)",
    "handling_hint": "En % du poids initial, ajoutée seulement s’il y a séchage. Purdue (NCH-61, 1991) cite 0,5 % dans les tables de séchage américaines ; saisissez la valeur de votre acheteur.",
    "presets_title": "Humidité de base en Argentine",
    "presets_hint": "Normes de qualité de commercialisation (Cámara Arbitral de Cereales, Rosario). Un clic règle l’humidité finale.",
    "crop_soja": "Soja",
    "crop_maiz": "Maïs",
    "crop_trigo": "Blé tendre",
    "crop_girasol": "Tournesol",
    "crop_cebada": "Orge de brasserie",
    "preset_base": "{{crop}} : {{hf}} %",
    "preset_with_handling": "{{crop}} : {{hf}} % + {{handling}} % de manutention",
    "answer_title": "Poids après séchage",
    "copy_label": "Copier",
    "answer": "{{weight}} kg à {{hi}} % → {{final}} kg à {{hf}} % (perte {{pct}} %)",
    "answer_dry": "Grain à {{hi}} % : déjà au niveau de la base de {{hf}} %, aucune perte au séchage.",
    "invalid": "Saisissez un poids positif et des humidités entre 0 et 99 %.",
    "water_pct": "Perte d’eau (séchage)",
    "handling_pct": "Perte de manutention",
    "loss_kg": "Perte totale",
    "per_point": "Perte par point d’humidité",
    "table_title": "Table de perte jusqu’à {{hf}} %",
    "col_hi": "Humidité initiale",
    "col_pct": "Perte",
    "col_kg": "Poids final pour {{weight}} kg",
    "table_note": "Table calculée avec la formule et la perte de manutention saisie : ce n’est pas une table officielle d’organisme stockeur.",
    "source_note": "Formule : perte (%) = (Hi − Hf) × 100 ÷ (100 − Hf), celle des normes argentines de commercialisation (Norma V, Rés. SENASA 27/2013) et de Purdue NCH-61 (1991).",
    "note_acopio": "Pour le soja, le maïs, le blé et le tournesol, les normes argentines renvoient à des tables de merma et à un tarif de séchage convenus, non publiés dans le recueil : la liquidation d’un acopio peut différer."
  },
  "silo-bag-capacity-calculator": {
    "heading": "Capacité d’un silo sac (silo bolsa)",
    "subheading": "Tonnes par sac et par mètre selon le diamètre, la longueur et le grain, et nombre de sacs pour une récolte.",
    "bag_title": "Sac",
    "diameter_label": "Diamètre nominal",
    "feet": "{{n}} pieds",
    "diameter_m": "Soit {{m}} m de diamètre.",
    "length_label": "Longueur remplie",
    "grain_title": "Grain stocké",
    "grain_label": "Grain",
    "grain_soja": "Soja",
    "grain_maiz": "Maïs",
    "grain_trigo": "Blé",
    "grain_girasol": "Tournesol",
    "g_soja": "soja",
    "g_maiz": "maïs",
    "g_trigo": "blé",
    "g_girasol": "tournesol",
    "kghl_label": "Poids spécifique (estimation)",
    "kghl_source": "Par défaut : bushel standard de {{lb}} lb (USDA, AH-697, 1992) ÷ 35,24 L. Saisissez le poids spécifique de votre analyse.",
    "kghl_source_girasol": "Par défaut : minimum de {{lb}} lb par bushel des grades U.S. No. 1 et 2 (7 CFR 810.1804, 2023). Un tournesol plus lourd remplit davantage le sac.",
    "fill_label": "Facteur de remplissage (estimation)",
    "fill_source": "{{fill}} par défaut : calé pour que 9 pieds × 60 m de soja ≈ 200 t (INTA Informa n° 1147, mars 2023).",
    "harvest_label": "Récolte à stocker",
    "answer_title": "Capacité estimée",
    "copy_label": "Copier",
    "answer": "Silo sac de {{d}} pieds × {{l}} m de {{grain}} ≈ {{t}} t ({{tm}} t/m)",
    "invalid": "Saisissez une longueur, un poids spécifique et un facteur de remplissage (0 à 1) positifs.",
    "per_meter": "Tonnes par mètre",
    "volume": "Volume de grain",
    "bags_label": "Sacs nécessaires pour {{harvest}} t",
    "table_title": "Capacité par diamètre ({{grain}})",
    "col_diameter": "Diamètre",
    "col_per_meter": "Par mètre",
    "col_length": "Sac de {{l}} m",
    "method_note": "Tonnes = section du cercle de diamètre nominal × longueur × facteur de remplissage × poids spécifique. Le sac plein s’aplatit : le facteur corrige l’écart avec un cylindre parfait.",
    "limits_note": "Estimation, pas une fiche de fabricant : la charge réelle dépend de l’ensacheuse, de l’étirement du sac et des mètres perdus aux fermetures. Les autres diamètres sont extrapolés avec le carré du diamètre."
  },
  "facebook-stars-money-calculator": {
    "header_title": "Étoiles Facebook en argent",
    "header_subtitle": "Ce que les étoiles rapportent au créateur et ce qu'elles coûtent au spectateur, en pesos mexicains ou colombiens, soles, euros ou dollars.",
    "source_notice": "D'après la page Stars de Meta pour les créateurs (consultée le {{date}}), le créateur gagne 1 cent, soit 0,01 USD, pour chaque étoile reçue d'un fan. Le prix payé par le spectateur n'y figure pas : c'est une estimation, à remplacer par le prix affiché dans votre app.",
    "stars_card": "Étoiles reçues",
    "stars_label": "Nombre d'étoiles",
    "usd_per_star": "Gain du créateur par étoile (USD)",
    "star_source": "Meta for Creators, page Stars, consultée le {{date}} : « 1 cent pour chaque étoile ». Modifiez la valeur si Meta change ce montant.",
    "pack_card": "Prix payé par le spectateur (estimation)",
    "pack_stars": "Étoiles du pack",
    "pack_price": "Prix du pack",
    "pack_currency": "Devise du prix",
    "pack_source": "Prix couramment indiqué : {{price}} les {{stars}} étoiles (metricool, {{date}}). Meta ne le publie pas sur sa page Stars et il varie selon le pays et la boutique (web, iOS, Android) : saisissez celui de votre app.",
    "rates_card": "Devise et taux de change",
    "display_currency": "Devise d'affichage",
    "rate_mxn": "Pesos mexicains pour 1 USD",
    "rate_cop": "Pesos colombiens pour 1 USD",
    "rate_pen": "Soles pour 1 USD",
    "rate_eur": "Dollars US pour 1 EUR",
    "rate_mxn_source": "Banxico, taux FIX du {{date}}",
    "rate_cop_source": "TRM de la Superintendance financière de Colombie, en vigueur le {{date}}",
    "rate_pen_source": "BCRP, taux du système bancaire (vente) du {{date}}",
    "rate_eur_source": "BCE, taux de référence du {{date}}",
    "rates_note": "Taux saisis à la main : l'outil ne les met pas à jour.",
    "result_label": "Gain du créateur",
    "lead_creator_one": "{{stars}} étoile = {{usd}}",
    "lead_creator_other": "{{stars}} étoiles = {{usd}}",
    "lead_converted": "soit ≈ {{money}}",
    "lead_buyer": "Le spectateur paie ≈ {{cost}} pour ces étoiles (estimation selon le pack saisi)",
    "per_star_buyer": "Prix d'une étoile pour le spectateur : {{value}}",
    "share": "Part du créateur : {{pct}} % du prix payé",
    "payout_note": "Le seuil de paiement n'est pas indiqué sur la page Stars de Meta : vérifiez-le dans les paramètres de paiement de votre compte.",
    "copy_label": "Copier le résultat",
    "table_title": "Dans chaque devise",
    "col_currency": "Devise",
    "col_creator": "Le créateur reçoit",
    "col_buyer": "Le spectateur paie"
  },
  "pokemon-catch-rate-calculator": {
    "header_title": "Taux de capture Pokémon : chance par Poké Ball",
    "header_subtitle": "La probabilité de capturer un Pokémon selon le jeu (Gen III à IX), ses PV, son statut et la ball, avec le nombre de lancers à prévoir.",
    "game_card": "Jeu et Pokémon",
    "gen_label": "Génération et jeux",
    "gen_3": "Gen III : Rubis, Saphir, Émeraude, Rouge Feu, Vert Feuille",
    "gen_4": "Gen IV : Diamant, Perle, Platine, Or HeartGold, Argent SoulSilver",
    "gen_5": "Gen V : Noir, Blanc, Noir 2, Blanc 2",
    "gen_6": "Gen VI : X, Y, Rubis Oméga, Saphir Alpha",
    "gen_7": "Gen VII : Soleil, Lune, Ultra-Soleil, Ultra-Lune (hors Let's Go)",
    "gen_8": "Gen VIII : Épée, Bouclier, Diamant Étincelant, Perle Scintillante",
    "gen_9": "Gen IX : Écarlate, Violet",
    "species_label": "Pokémon (nom ou n° du Pokédex)",
    "species_placeholder": "ex. Mewtwo, Rayquaza, 150",
    "species_found": "n° {{dex}} {{name}} · taux de capture {{rate}}",
    "rate_label": "Taux de capture de l'espèce (1 à 255)",
    "rate_source": "Prérempli avec le taux actuel de l'espèce (PokéAPI, lu le 27 octobre 2026). Si votre jeu utilise une autre valeur, saisissez-la.",
    "battle_card": "Combat",
    "hp_label": "PV restants",
    "status_label": "Statut du Pokémon",
    "status_none": "Aucun (×1)",
    "status_sleep_2": "Sommeil ou gel (×2)",
    "status_sleep_25": "Sommeil ou gel (×2,5)",
    "status_para": "Paralysie, poison ou brûlure (×1,5)",
    "level_label": "Niveau du Pokémon sauvage",
    "turn_label": "Tour du lancer",
    "battle_note": "PV en % de la barre du Pokémon sauvage (1 % ≈ après Faux-Chage). Tour : 1 = premier tour du combat (Rapide Ball) ; la Chrono Ball compte les tours écoulés. Le niveau sert à la Faiblo Ball et au bonus des bas niveaux en Gen VIII et IX.",
    "ball_card": "Poké Ball",
    "ball_label": "Ball lancée",
    "ball_custom": "Autre ball (multiplicateur à saisir)",
    "custom_label": "Multiplicateur de la ball",
    "ball_bonus": "Bonus de cette ball ici : ×{{value}}",
    "cond_net": "Eau ou Insecte",
    "cond_dive": "sous l'eau, en surfant ou en pêchant",
    "cond_nest": "selon le niveau",
    "cond_repeat": "espèce déjà capturée",
    "cond_timer": "selon le tour",
    "cond_dusk": "nuit ou grotte",
    "cond_quick": "1er tour",
    "result_label": "Probabilité de capture par lancer",
    "lead": "{{name}} : {{pct}} de chances de capture par {{ball}}",
    "lead_sure": "{{name}} : capture assurée ({{ball}})",
    "lead_unavailable": "Cette ball n'existe pas dans cette génération.",
    "lead_zero": "Capture impossible : le taux modifié est nul (vérifiez le taux de l'espèce).",
    "lead_throws": "Lancers nécessaires : {{n50}} pour 50 % de chances, {{n90}} pour 90 %, {{mean}} en moyenne.",
    "details_34": "Détail : a = {{a}} (sur 255), b = {{b}} (sur 65 536), 4 tests de secousse.",
    "details_5": "Détail : a = {{a}} (sur 1 044 480), b = {{b}} (sur 65 536), {{checks}} tests de secousse.",
    "no_critical": "Hors capture critique : depuis la Gen V, une capture critique (rare, plus fréquente quand le Pokédex est rempli) ne fait qu'un test de secousse et augmente un peu la chance réelle.",
    "copy_label": "Copier le résultat",
    "table_title": "Toutes les balls dans la même situation",
    "col_ball": "Ball",
    "col_bonus": "Bonus",
    "col_chance": "Chance par lancer",
    "col_90": "Lancers pour 90 %",
    "source_note": "Formules et multiplicateurs des balls par génération : Bulbapedia, page « Catch rate », lue le 27 octobre 2026. Non pris en compte : capture critique, bonus de terrain et bonus temporaires (Gen V à VII), facteur de difficulté de la Gen VIII, pénalité de badges de la Gen IX, Let's Go, Légendes Arceus et Légendes Z-A."
  },
  "pokemon-iv-calculator": {
    "header_title": "Calculateur d'IV Pokémon (3e à 9e génération)",
    "header_subtitle": "Retrouvez les IV de votre Pokémon à partir de ses stats affichées, de son niveau, de sa nature et de ses EV.",
    "scope_notice": "Jeux principaux de la 3e génération (Rouge Feu, Émeraude) à la 9e (Écarlate, Violet). Seule la forme par défaut de chaque espèce est chargée : pour une forme d'Alola ou de Galar, ou une Méga-Évolution, corrigez les stats de base. Pokémon GO, Let's Go et Légendes Pokémon : Arceus utilisent d'autres formules.",
    "pokemon_card": "Pokémon et jeu",
    "search_label": "Pokémon (nom ou n° du Pokédex)",
    "search_placeholder": "Carchacrok, Pikachu, 445…",
    "selected": "n° {{dex}} · {{name}}",
    "gen_label": "Génération du jeu",
    "gen_3": "3e génération : Rubis, Saphir, Émeraude, Rouge Feu, Vert Feuille",
    "gen_4": "4e génération : Diamant, Perle, Platine, Or HeartGold, Argent SoulSilver",
    "gen_5": "5e génération : Noir, Blanc, Noir 2, Blanc 2",
    "gen_6": "6e génération : X, Y, Rubis Oméga, Saphir Alpha",
    "gen_7": "7e génération : Soleil, Lune, Ultra-Soleil, Ultra-Lune",
    "gen_8": "8e génération : Épée, Bouclier, Diamant Étincelant, Perle Scintillante",
    "gen_9": "9e génération : Écarlate, Violet",
    "level_label": "Niveau",
    "nature_label": "Nature",
    "nature_neutral": "{{name}} (neutre)",
    "nature_option": "{{name}} (+{{up}}, −{{down}})",
    "stats_card": "Stats de base, EV et stats affichées",
    "col_stat": "Stat",
    "col_base": "Base",
    "col_ev": "EV",
    "col_shown": "En jeu",
    "sr_base": "Stat de base : {{stat}}",
    "sr_ev": "EV en {{stat}}",
    "sr_shown": "{{stat}} affichée en jeu",
    "base_note": "Stats de base pré-remplies d'après PokéAPI (lue le {{date}}), avec l'ancienne valeur quand une stat a changé depuis la génération choisie (Pikachu : Défense 30 jusqu'à la 5e génération, 40 ensuite). Modifiables.",
    "ev_note": "EV : 0 pour un Pokémon sauvage ou fraîchement capturé. Plafond par stat : 255 jusqu'à la 5e génération, 252 ensuite (510 au total).",
    "result_label": "Résultat (IV de 0 à 31)",
    "lead": "IV possibles : {{list}}",
    "lead_item": "{{stat}} {{value}}",
    "range": "{{min}}–{{max}}",
    "no_iv": "aucun IV",
    "no_iv_help": "Aucun IV de 0 à 31 ne donne au moins une de ces stats : vérifiez le niveau, la nature, les EV, la génération et la forme (stats de base).",
    "copy_label": "Copier le résultat",
    "copy_text": "{{name}}, niveau {{level}} : {{lead}}",
    "table_title": "Détail par stat (barre = IV de 0 à 31)",
    "possible_stats": "Stat possible à ce niveau : {{lo}} (IV 0) à {{hi}} (IV 31)",
    "formula_note": "Formule de la 3e génération à aujourd'hui (Bulbapedia, « Stat ») : PV = ⌊(2×Base + IV + ⌊EV/4⌋) × Niveau/100⌋ + Niveau + 10 ; autres stats = ⌊(⌊(2×Base + IV + ⌊EV/4⌋) × Niveau/100⌋ + 5) × Nature⌋, avec Nature = 0,9, 1 ou 1,1. Munja a toujours 1 PV : son IV de PV reste inconnu.",
    "stat_hp": "PV",
    "stat_atk": "Attaque",
    "stat_def": "Défense",
    "stat_spa": "Atq. Spé.",
    "stat_spd": "Déf. Spé.",
    "stat_spe": "Vitesse"
  },
  "fuel-injector-size-calculator": {
    "heading": "Taille d'injecteur selon la puissance",
    "subheading": "Débit nécessaire par injecteur en cc/min et lb/h : essence ou E85, atmosphérique ou turbo, correction de pression.",
    "inputs_title": "Moteur et carburant",
    "power": "Puissance visée (au vilebrequin)",
    "power_unit": "Unité",
    "unit_ps": "ch (cheval-vapeur)",
    "unit_hp": "hp (cheval anglo-saxon)",
    "unit_ps_short": "ch",
    "injectors": "Nombre d'injecteurs",
    "injectors_note": "En injection indirecte, un injecteur par cylindre.",
    "fuel": "Carburant",
    "fuel_gasoline": "Essence",
    "aspiration": "Admission",
    "aspiration_na": "Atmosphérique",
    "aspiration_boost": "Turbo ou compresseur",
    "bsfc": "Consommation spécifique (BSFC)",
    "bsfc_note": "Repère courant pour ce choix : {{v}}. Remplacez-le par la valeur mesurée au banc si vous l’avez.",
    "duty": "Taux d'ouverture maximal (duty cycle)",
    "duty_note": "Repère courant : 80 % (DeatschWerks). Fuel Injector Clinic admet 90 %.",
    "p_operating": "Pression de fonctionnement",
    "p_rated": "Pression du débit nominal",
    "pressure_note": "Pression aux bornes de l'injecteur (rampe moins collecteur) : avec un régulateur 1:1, c'est la pression de base, sans ajouter la pression de suralimentation. Les fiches Bosch donnent le débit à 3 bar.",
    "density": "Masse volumique du carburant",
    "density_note_gasoline": "Essence : 0,744 g/cm³ (Bosch Motorsport, 2019).",
    "density_note_e85": "E85 : 0,78 g/cm³, valeur approchée (85 % d’éthanol à 0,789 et 15 % d’essence à 0,744).",
    "result_title": "Injecteur nécessaire",
    "answer": "Injecteurs d'au moins {{cc}} cc/min ({{lbh}} lb/h) mesurés à {{p}}",
    "summary_inputs": "{{power}}, {{n}} injecteurs, BSFC {{bsfc}}, ouverture maximale {{duty}}",
    "summary_operating": "À {{p}} : {{cc}} cc/min, soit {{lbh}} lb/h",
    "at_rated": "Débit nominal à {{p}} (à comparer aux catalogues)",
    "at_operating": "Débit à la pression de fonctionnement ({{p}})",
    "total_fuel": "Carburant consommé à pleine puissance (tous injecteurs)",
    "power_hp": "Puissance convertie en hp (unité du BSFC)",
    "check_title": "Vérifier un injecteur et convertir son débit",
    "check_flow": "Débit de la fiche (à {{p}})",
    "check_unit": "Unité du débit",
    "check_equivalent": "Équivalences à {{p}}",
    "check_duty": "Taux d'ouverture à {{power}}",
    "check_max": "Puissance alimentée à {{duty}} d’ouverture",
    "check_too_small": "Cet injecteur dépasse le taux d'ouverture maximal choisi à la puissance visée : prenez un débit supérieur ou montez la pression.",
    "disclaimer": "Outil indicatif : le BSFC réel dépend du moteur, du mélange visé et de la cartographie. Le réglage sur banc, avec contrôle de la richesse, prime toujours sur ce calcul.",
    "sources_title": "Valeurs par défaut et sources",
    "source_bsfc": "BSFC essence : haut des plages d’EFI University (2017), 0,45-0,50 en atmosphérique et 0,55-0,60 en suralimenté. E85 : × 1,30, d’après DeatschWerks (2019 : +30 à 35 %).",
    "source_duty": "Taux d’ouverture : 80 % recommandé par DeatschWerks (2019) ; 90 % au plus chez Fuel Injector Clinic (page consultée en octobre 2026).",
    "source_bosch": "Pression : Q2 = Q1 × √(P2/P1), débits donnés à 3 bar, essence 0,744 g/cm³ (Bosch Motorsport, fiche EV 14, 28/11/2019)."
  },
  "generator-power-sizing-calculator": {
    "heading": "Puissance d'un groupe électrogène",
    "subheading": "Additionnez vos appareils, ajoutez la pointe de démarrage des moteurs et passez des kW aux kVA.",
    "list_title": "Appareils à alimenter en même temps",
    "col_name": "Appareil",
    "col_watts": "Puissance nominale (W)",
    "col_qty": "Nombre",
    "col_start": "Démarrage (× nominal)",
    "remove": "Retirer {{name}}",
    "empty": "La liste est vide : ajoutez un appareil.",
    "add": "Ajouter un appareil",
    "add_placeholder": "Choisir…",
    "reset": "Revenir à la liste d’exemple",
    "start_note": "Les puissances sont des exemples : reprenez celles de la plaque signalétique. Démarrage, repères courants : réfrigérateur et congélateur × 2 (Maytag), moteurs de pompe, compresseur ou outil × 2 à × 4 (Robin), parfois × 6 ; chauffage, bouilloire, éclairage et électronique × 1.",
    "cos_phi": "Facteur de puissance (cos φ)",
    "margin": "Marge de réserve",
    "cos_phi_note": "Les fiches de groupes donnent la puissance en kVA à cos φ 0,8 (kW = kVA × 0,8, catalogue Robin) ; les petits groupes inverter sont souvent donnés à cos φ 1. Marge de 25 % : repère courant, sans norme.",
    "result_title": "Groupe électrogène conseillé",
    "answer": "Il faut un groupe d'au moins {{cont}} en continu, capable de {{peak}} au démarrage",
    "summary_running": "Puissance en marche : {{w}}",
    "summary_row": "{{name}} : {{qty}} × {{w}}, démarrage × {{k}}",
    "running": "Puissance en marche (somme des appareils)",
    "continuous": "Puissance continue avec {{m}} % de marge",
    "peak_staggered": "Pointe au démarrage, moteurs démarrés l’un après l’autre",
    "peak_all": "Pointe si tout démarre en même temps (à éviter)",
    "start_last": "Démarrez en dernier : {{name}} (+{{extra}} pendant le démarrage).",
    "order_note": "Branchez d'abord les appareils sans moteur, puis les moteurs du plus petit au plus gros, en attendant que chacun tourne.",
    "safety_title": "Sécurité (BBK, Allemagne, janvier 2019)",
    "safety_exhaust": "Jamais à l’intérieur : les gaz d’échappement font courir un risque d’asphyxie. Installez le groupe dehors, dans un endroit sec et bien aéré.",
    "safety_house": "Raccorder le groupe au tableau de la maison exige un électricien et un inverseur de source, manuel ou automatique. En Allemagne, prévenez aussi le gestionnaire de réseau.",
    "safety_electronics": "Ordinateur, chaudière à régulation électronique : le groupe doit tenir une tension et une fréquence stables.",
    "safety_fuel": "En Allemagne, 10 kg d’essence ou 20 kg de gazole au plus en cave, en bidons adaptés (TRGS 510).",
    "sources_title": "Valeurs par défaut et sources",
    "source_start": "Démarrage : Maytag, « Generator Usage with Appliances » (moteurs 2 à 3 fois l’intensité de marche, réfrigération × 2), page consultée en octobre 2026 ; Robin, catalogue général 2012 (moteurs 2 à 4 fois, certains 6 fois).",
    "source_bbk": "Sécurité et usage en coupure de courant : BBK, « Stromausfall – Vorsorge und Selbsthilfe », état janvier 2019 (appareils chauffants 1 500 à 2 000 W).",
    "source_cos": "kW = kVA × cos φ ; plaques de groupes à cos φ 0,8 (catalogue Robin 2012 : 3,25 kVA = 2,60 kW).",
    "item_fridge": "Réfrigérateur",
    "item_freezer": "Congélateur",
    "item_pump": "Pompe de relevage ou de puits",
    "item_heating": "Chaudière (régulation et circulateur)",
    "item_lighting": "Ampoule LED",
    "item_router": "Box internet et chargeurs",
    "item_kettle": "Bouilloire",
    "item_heater": "Radiateur d'appoint",
    "item_compressor": "Compresseur d'air",
    "item_tool": "Outil électroportatif (scie, perforateur)",
    "item_tv": "Téléviseur",
    "item_laptop": "Ordinateur portable",
    "item_custom": "Autre appareil"
  },
  "minecraft-enchantment-order-calculator": {
    "heading": "Ordre optimal des livres enchantés à l'enclume",
    "subheading": "Choisissez l'objet et les livres : le calcul donne la suite de fusions la moins chère en niveaux d'expérience.",
    "settings": "Objet et règles",
    "item": "Objet à enchanter",
    "edition": "Édition du jeu",
    "edition_java": "Java Edition",
    "edition_bedrock": "Bedrock Edition",
    "prior_work": "Passages antérieurs de l'objet à l'enclume",
    "prior_work_hint": "0 pour un objet neuf. Chaque passage ajoute une pénalité de 2ⁿ − 1 niveaux.",
    "limit_label": "Limite « Trop cher ! » : 39 niveaux au plus par opération (Survie)",
    "objective": "Réduire en priorité",
    "objective_levels": "Les niveaux dépensés",
    "objective_xp": "Les points d'expérience",
    "enchantments": "Livres enchantés disponibles",
    "enchantments_hint": "Un livre par enchantement, au niveau choisi. ×N : multiplicateur du livre dans le coût.",
    "level_of": "Niveau : {{name}}",
    "exclusive_with": "Incompatible avec : {{list}}",
    "none_selected": "Cochez au moins un livre pour obtenir l'ordre de fusion.",
    "result_label": "Coût total à l'enclume",
    "total_levels_one": "{{n}} niveau d'expérience",
    "total_levels_other": "{{n}} niveaux d'expérience",
    "stat_operations": "Opérations",
    "stat_max_step": "Opération la plus chère",
    "stat_xp": "Points d'expérience (minimum)",
    "stat_penalty": "Pénalité de l'objet final",
    "levels_one": "{{n}} niveau",
    "levels_other": "{{n}} niveaux",
    "xp_hint": "Points d'XP : minimum atteint si vous êtes pile au niveau requis à chaque opération (formules de minecraft.wiki, page « Experience »). La pénalité de l'objet final s'ajoutera à sa prochaine réparation.",
    "steps_title": "Ordre des opérations à l'enclume",
    "steps_hint": "Posez toujours le premier élément à gauche de l'enclume et le second à droite : inverser les deux change le coût.",
    "step_n": "Étape {{n}}",
    "book_label": "Livre ({{list}})",
    "item_with": "{{item}} ({{list}})",
    "too_expensive": "Trop cher !",
    "impossible_title": "Trop cher ! en Survie, quel que soit l'ordre",
    "impossible_text": "Aucun ordre ne garde chaque opération sous 40 niveaux. Retirez un livre ou repartez d'un objet neuf. Sans limite (mode Créatif), le meilleur ordre coûte {{n}} niveaux :",
    "source_note": "Règles Java : données du jeu 26.3 publiées par Mojang le {{javaDate}}. Bedrock : minecraft.wiki (« Anvil mechanics », « Enchanting »), consulté le {{wikiDate}}.",
    "copy": "Copier l'ordre des opérations",
    "copy_step": "{{n}}. {{target}} + {{sacrifice}} : {{cost}}",
    "copy_total": "Total : {{total}}",
    "ench_aqua_affinity": "Affinité aquatique",
    "ench_bane_of_arthropods": "Fléau des arthropodes",
    "ench_binding_curse": "Malédiction du lien éternel",
    "ench_blast_protection": "Protection contre les explosions",
    "ench_breach": "Brèche",
    "ench_channeling": "Canalisation",
    "ench_density": "Densité",
    "ench_depth_strider": "Agilité aquatique",
    "ench_efficiency": "Efficacité",
    "ench_feather_falling": "Chute amortie",
    "ench_fire_aspect": "Aura de feu",
    "ench_fire_protection": "Protection contre le feu",
    "ench_flame": "Flamme",
    "ench_fortune": "Fortune",
    "ench_frost_walker": "Semelles givrantes",
    "ench_impaling": "Empalement",
    "ench_infinity": "Infinité",
    "ench_knockback": "Recul",
    "ench_looting": "Butin",
    "ench_loyalty": "Loyauté",
    "ench_luck_of_the_sea": "Chance de la mer",
    "ench_lunge": "Élan",
    "ench_lure": "Appât",
    "ench_mending": "Raccommodage",
    "ench_multishot": "Tir multiple",
    "ench_piercing": "Perforation",
    "ench_power": "Puissance",
    "ench_projectile_protection": "Protection contre les projectiles",
    "ench_protection": "Protection",
    "ench_punch": "Frappe",
    "ench_quick_charge": "Charge rapide",
    "ench_respiration": "Apnée",
    "ench_riptide": "Impulsion",
    "ench_sharpness": "Tranchant",
    "ench_silk_touch": "Toucher de soie",
    "ench_smite": "Châtiment",
    "ench_soul_speed": "Agilité des âmes",
    "ench_sweeping_edge": "Affilage",
    "ench_swift_sneak": "Furtivité rapide",
    "ench_thorns": "Épines",
    "ench_unbreaking": "Solidité",
    "ench_vanishing_curse": "Malédiction de disparition",
    "ench_wind_burst": "Rafale de vent",
    "item_sword": "Épée",
    "item_pickaxe": "Pioche",
    "item_axe": "Hache",
    "item_shovel": "Pelle",
    "item_hoe": "Houe",
    "item_bow": "Arc",
    "item_crossbow": "Arbalète",
    "item_trident": "Trident",
    "item_mace": "Masse",
    "item_spear": "Lance",
    "item_helmet": "Casque",
    "item_chestplate": "Plastron",
    "item_leggings": "Jambières",
    "item_boots": "Bottes",
    "item_fishing_rod": "Canne à pêche",
    "item_elytra": "Élytres",
    "item_shears": "Cisailles",
    "item_shield": "Bouclier",
    "xp_title": "Calculateur d'XP Minecraft : niveaux et points d'expérience",
    "xp_from_level": "Niveau de départ",
    "xp_to_level": "Niveau visé",
    "xp_points_one": "{{n}} point d'expérience",
    "xp_points_other": "{{n}} points d'expérience",
    "xp_needed_hint": "entre le niveau {{a}} et le niveau {{b}}",
    "xp_points_label": "Points d'expérience",
    "xp_level_result": "Niveau {{n}}",
    "xp_level_rest_one": "et {{rest}} point sur les {{next}} nécessaires pour le niveau {{up}}",
    "xp_level_rest_other": "et {{rest}} points sur les {{next}} nécessaires pour le niveau {{up}}",
    "xp_formula": "Points cumulés pour atteindre le niveau L (minecraft.wiki, « Experience ») : L² + 6L jusqu'au niveau 16, 2,5L² − 40,5L + 360 du niveau 17 au 31, puis 4,5L² − 162,5L + 2 220. Formule de Java Edition depuis la 1.8."
  },
  "robux-money-calculator": {
    "header_title": "Robux en argent et argent en Robux",
    "header_subtitle": "Prix d'achat des Robux, retrait DevEx et commission sur les ventes, en pesos, soles, euros ou dollars.",
    "buy_card": "Acheter des Robux",
    "robux_to_buy": "Robux à acheter",
    "channel_label": "Canal d'achat",
    "channel_web": "Site web, appli ordinateur ou carte cadeau (9,99 USD = 1 000 Robux)",
    "channel_mobile": "Appli mobile iOS ou Android (9,99 USD = 800 Robux)",
    "channel_custom": "Autre pack (saisie libre)",
    "pack_robux": "Robux dans le pack",
    "pack_price": "Prix du pack",
    "pack_currency": "Devise du pack",
    "pack_note": "Exemples américains tirés de l'annonce de Roblox du {{date}}, à vérifier sur roblox.com ou dans l'appli : le site web, l'appli ordinateur et les cartes cadeaux donnent jusqu'à 25 % de Robux en plus que l'appli mobile. Le prix dépend du pays : saisissez celui que vous voyez, dans votre devise.",
    "budget_label": "Budget ({{currency}})",
    "sell_card": "Vendre et retirer (DevEx)",
    "sale_price": "Prix de vente d'un pass ou d'un objet (Robux)",
    "sale_type": "Type de vente",
    "sale_experience": "Vente dans votre jeu : pass, produit (70 % pour vous)",
    "sale_marketplace": "Objet d'avatar sur le Marketplace (30 % de base pour vous)",
    "sale_custom": "Autre part (saisie libre)",
    "share_label": "Part reçue (%)",
    "net_wanted": "Robux nets voulus",
    "share_note": "Roblox (page « Earn on Roblox », consultée le {{date}}) : les créateurs gagnent en général 70 % de ce qu'ils vendent en Robux dans leur jeu et 30 % (part de base) de ce qu'ils vendent sur le Marketplace.",
    "earned_label": "Robux gagnés à convertir",
    "devex_rate_type": "Taux DevEx",
    "devex_standard": "Standard : 0,0038 USD par Robux (depuis le {{date}})",
    "devex_us18": "Achats de joueurs américains vérifiés de 18 ans et plus : 0,0054 USD (depuis le {{date}})",
    "devex_legacy": "Robux gagnés avant le {{date}} : 0,0035 USD",
    "devex_custom": "Autre taux (saisie libre)",
    "devex_rate": "Taux DevEx (USD par Robux)",
    "devex_note": "Page Developer Exchange de Roblox, consultée le {{date}} : seuls les Robux gagnés (Earned Robux) s'échangent, à partir de {{min}}, avec 13 ans au moins, une adresse e-mail vérifiée et un formulaire fiscal W-9 ou W-8.",
    "rates_card": "Devise et taux de change",
    "display_currency": "Afficher en",
    "rate_mxn": "Pesos mexicains pour 1 USD",
    "rate_pen": "Soles pour 1 USD",
    "rate_eur": "Dollars US pour 1 EUR",
    "rate_mxn_source": "Banxico, taux FIX du {{date}}",
    "rate_pen_source": "BCRP, taux du système bancaire (vente) du {{date}}",
    "rate_eur_source": "BCE, taux de référence du {{date}}",
    "rates_note": "Taux saisis à la main : l'outil ne les met pas à jour.",
    "copy_label": "Copier le résultat",
    "table_title": "Dans les quatre devises",
    "col_currency": "Devise",
    "buy_result_label": "Prix d'achat",
    "lead_buy": "{{robux}} Robux ≈ {{cost}}",
    "budget_result": "Avec {{budget}}, vous obtenez ≈ {{robux}} Robux (au prorata du pack saisi).",
    "devex_result_label": "Retrait DevEx",
    "lead_devex": "{{robux}} Robux gagnés = {{usd}} ≈ {{money}}",
    "devex_below_min": "Moins de {{min}} Robux gagnés : DevEx ne permet pas encore le retrait.",
    "sale_result": "Vendu {{price}} Robux, un pass ou un objet vous rapporte ≈ {{net}} Robux (commission de {{fee}} %), soit ≈ {{money}} via DevEx.",
    "price_for_net": "Pour recevoir {{net}} Robux nets, fixez le prix à {{price}} Robux.",
    "col_buy": "Achat de {{robux}} Robux",
    "col_devex": "DevEx de {{robux}} Robux",
    "vbucks_card": "V-Bucks (pavos) en argent, au prix de votre pack",
    "vbucks_amount": "V-Bucks à convertir",
    "vbucks_pack": "V-Bucks du pack",
    "vbucks_pack_price": "Prix du pack",
    "lead_vbucks": "{{vbucks}} V-Bucks ≈ {{cost}}",
    "vbucks_unit_price": "Prix d'un V-Buck : {{price}}",
    "vbucks_note": "Exemple pré-rempli : pack de 800 V-Bucks à 8,99 USD, prix annoncé par Epic Games (fortnite.com) à partir du {{date}}. Saisissez le prix de votre boutique : il change selon le pays, la plateforme et les promotions. La conversion utilise les taux de change ci-dessus."
  },
  "tiktok-coins-money-calculator": {
    "header_title": "Pièces et cadeaux TikTok en argent",
    "header_subtitle": "Ce que coûte un cadeau à celui qui l'envoie et ce qu'en tire le créateur, en pesos, soles, euros ou dollars.",
    "estimate_notice": "TikTok ne publie aucun taux de conversion pièces → diamants → dollars. Le prix d'achat vient du pack que vous saisissez ; la part du créateur est une estimation, d'après les valeurs couramment citées (streamer.guide, {{date}}).",
    "coins_card": "Pièces à convertir",
    "gift_label": "Cadeau",
    "gift_custom": "Nombre de pièces libre",
    "gift_rose": "Rose ({{coins}} pièce)",
    "gift_lion": "Lion ({{coins}} pièces)",
    "coins_label": "Nombre de pièces",
    "gift_source": "Valeurs relevées dans la presse mexicaine (SDP Noticias, 2023 ; tusbuenasnoticias, 2024) et sur streamer.guide ({{date}}), à vérifier dans l'app. L'Univers apparaît à 34 999 ou à 44 999 pièces selon le pays et la date : saisissez le nombre affiché dans votre app.",
    "pack_card": "Prix d'un pack de pièces",
    "pack_coins": "Pièces dans le pack",
    "pack_price": "Prix payé pour le pack",
    "pack_currency": "Devise du pack",
    "pack_example": "Exemple, à vérifier dans l'app : {{coins}} pièces pour {{price}}, prix cité par tusbuenasnoticias.com le {{date}}. Le prix change selon le pays et le canal d'achat (site web, iOS, Android) : saisissez celui de votre app, dans votre devise.",
    "creator_card": "Part du créateur (estimation)",
    "diamonds_per_coin": "Diamants par pièce",
    "usd_per_diamond": "USD par diamant",
    "creator_source": "Estimation (streamer.guide, {{date}}) : environ 2 pièces pour 1 diamant et 0,005 USD par diamant. TikTok fixe ces taux seul et peut les modifier.",
    "rates_card": "Devise et taux de change",
    "display_currency": "Afficher en",
    "rate_mxn": "Pesos mexicains pour 1 USD",
    "rate_pen": "Soles pour 1 USD",
    "rate_eur": "Dollars US pour 1 EUR",
    "rate_mxn_source": "Banxico, taux FIX du {{date}}",
    "rate_pen_source": "BCRP, taux du système bancaire (vente) du {{date}}",
    "rate_eur_source": "BCE, taux de référence du {{date}}",
    "rates_note": "Taux saisis à la main : l'outil ne les met pas à jour.",
    "copy_label": "Copier le résultat",
    "table_title": "Dans les quatre devises",
    "col_currency": "Devise",
    "buyer_label": "Prix pour l'acheteur",
    "lead_buyer_one": "{{coins}} pièce TikTok ≈ {{cost}}",
    "lead_buyer_other": "{{coins}} pièces TikTok ≈ {{cost}}",
    "lead_creator_one": "Le créateur reçoit ≈ {{diamonds}} diamant, soit ≈ {{money}} (estimation)",
    "lead_creator_other": "Le créateur reçoit ≈ {{diamonds}} diamants, soit ≈ {{money}} (estimation)",
    "per_coin": "Prix d'une pièce : ≈ {{value}}",
    "share": "Part reversée au créateur : ≈ {{pct}} % du prix payé (estimation)",
    "col_buyer": "Prix pour l'acheteur",
    "col_creator": "Créateur (estimation)"
  },
  "pokemon-shiny-odds-calculator": {
    "heading": "Probabilité shiny par jeu et par méthode",
    "subheading": "Taux de base, Charme Chroma, méthode Masuda, chaînes et apparitions massives, de Pokémon Or et Argent à Légendes Pokémon : Z-A.",
    "inputs_title": "Jeu et méthode",
    "game_label": "Jeu",
    "method_label": "Méthode",
    "charm_label": "Charme Chroma",
    "encounters_label": "Nombre de rencontres (ou d'œufs)",
    "custom_label": "Taux personnalisé : 1 chance sur…",
    "custom_help": "Laissez vide pour utiliser le taux du jeu. Saisissez un taux pour un événement Pokémon GO, une Journée Communauté ou une valeur que vous avez mesurée.",
    "custom_invalid": "Saisissez un nombre supérieur ou égal à 1.",
    "custom_active": "Calcul fait avec votre taux personnalisé.",
    "source_line": "Taux par défaut : données de jeu publiées par Bulbapedia et Serebii (analyses des datamineurs), consultées le 23/10/2026. The Pokémon Company ne publie pas ces taux.",
    "per_encounter_title": "Probabilité par rencontre",
    "one_in": "1 sur {{denom}}",
    "answer_line": "{{game}}, {{method}} : 1 chance sur {{denom}} par rencontre ({{pct}}).",
    "chance_line": "En {{n}} rencontres : {{pct}} de chances d'obtenir au moins un chromatique.",
    "targets_line": "Rencontres nécessaires : {{n50}} pour 50 %, {{n90}} pour 90 %, {{n99}} pour 99 %.",
    "targets_title": "Rencontres nécessaires",
    "target_label": "{{pct}} de chances",
    "encounters_unit": "rencontres",
    "rolls_line": "Tirages par rencontre : {{rolls}}, chacun à 1 chance sur {{base}}.",
    "flat_rate_line": "Taux fixe publié pour cette méthode, sans tirages multiples.",
    "copy_label": "Copier le résultat",
    "table_title": "Taux de {{game}}",
    "col_method": "Méthode",
    "col_rolls": "Tirages",
    "col_rolls_charm": "Tirages (sans → avec Charme)",
    "col_rate": "Taux",
    "col_without": "Sans Charme Chroma",
    "col_with": "Avec Charme Chroma",
    "table_note": "Taux par rencontre. La ligne surlignée est la méthode choisie.",
    "table_bonus_note": "Taux par rencontre, calculés avec {{name}} : {{level}}. La ligne surlignée est la méthode choisie.",
    "game_za": "Légendes Pokémon : Z-A",
    "game_sv": "Pokémon Écarlate et Violet",
    "game_pla": "Légendes Pokémon : Arceus",
    "game_bdsp": "Pokémon Diamant Étincelant et Perle Scintillante",
    "game_swsh": "Pokémon Épée et Bouclier",
    "game_lgpe": "Pokémon : Let's Go, Pikachu et Let's Go, Évoli",
    "game_sm": "Pokémon Soleil et Lune, Ultra-Soleil et Ultra-Lune",
    "game_xy": "Pokémon X et Y, Rubis Oméga et Saphir Alpha",
    "game_b2w2": "Pokémon Noir 2 et Blanc 2",
    "game_bw": "Pokémon Noir et Blanc",
    "game_gen4": "Pokémon Diamant, Perle, Platine, Or HeartGold et Argent SoulSilver",
    "game_gen3": "Pokémon Rubis, Saphir, Émeraude, Rouge Feu et Vert Feuille",
    "game_gsc": "Pokémon Or, Argent et Cristal",
    "game_go": "Pokémon GO",
    "method_wild": "Rencontre sauvage",
    "method_hyperspace": "Hyperespace (DLC Mega Dimension)",
    "method_outbreak_30": "Apparition massive, 30 à 59 vaincus",
    "method_outbreak_60": "Apparition massive, 60 vaincus ou plus",
    "method_masuda": "Œuf, méthode Masuda",
    "method_tera_raid": "Raid Téracristal",
    "method_mass_outbreak": "Apparition massive",
    "method_massive_outbreak": "Apparitions massives multiples",
    "method_poke_radar_bdsp": "Poké Radar, chaîne de 40 ou plus",
    "method_aura_1": "Pokémon à aura, 1 à 49 vaincus",
    "method_aura_50": "Pokémon à aura, 50 à 99 vaincus",
    "method_aura_100": "Pokémon à aura, 100 à 199 vaincus",
    "method_aura_200": "Pokémon à aura, 200 à 299 vaincus",
    "method_aura_300": "Pokémon à aura, 300 à 499 vaincus",
    "method_aura_500": "Pokémon à aura, 500 vaincus ou plus",
    "method_dynamax": "Expédition Dynamax (Pokémon de fin de parcours)",
    "method_combo_0": "Combo de captures, 0 à 10",
    "method_combo_11": "Combo de captures, 11 à 20",
    "method_combo_21": "Combo de captures, 21 à 30",
    "method_combo_31": "Combo de captures, 31 ou plus",
    "method_sos_11": "Chaîne SOS (appels à l'aide), 11 à 20",
    "method_sos_21": "Chaîne SOS (appels à l'aide), 21 à 30",
    "method_sos_31": "Chaîne SOS (appels à l'aide), 31 ou plus",
    "method_friend_safari": "Safari des Amis (X et Y)",
    "method_chain_fishing": "Pêche à la chaîne, 20 prises ou plus",
    "method_poke_radar": "Poké Radar, chaîne de 40 ou plus (Diamant, Perle, Platine)",
    "method_breeding_shiny_parent": "Œuf avec un parent chromatique",
    "method_go_wild": "Rencontre standard (estimation)",
    "bonus_sparkling_za": "Aura Brillance (donut, Hyperespace)",
    "bonus_sparkling_sv": "Aura Brillance (sandwich)",
    "bonus_research": "Niveau de recherche du Pokédex",
    "bonus_lure": "Parfum",
    "sparkling_za_0": "Aucune",
    "sparkling_za_1": "Niveau 1 (+1 tirage)",
    "sparkling_za_2": "Niveau 2 (+2 tirages)",
    "sparkling_za_3": "Niveau 3 (+3 tirages)",
    "sparkling_sv_0": "Aucune",
    "sparkling_sv_1": "Niveau 1 (+1 tirage)",
    "sparkling_sv_2": "Niveau 2 (+2 tirages)",
    "sparkling_sv_3": "Niveau 3 (+3 tirages)",
    "research_0": "Inférieur à 10",
    "research_1": "Niveau 10 (+1 tirage)",
    "research_2": "Parfait, toutes les tâches (+3 tirages)",
    "lure_0": "Sans",
    "lure_1": "Actif (+1 tirage)",
    "note_hyperspace": "Aura Brillance : donuts du DLC Mega Dimension, active seulement dans l'Hyperespace et pour le type du donut. Au niveau 3, le premier Pokémon de ce type qui apparaît est chromatique d'office ; le taux affiché vaut pour les suivants.",
    "note_sparkling_sv": "Aura Brillance : seulement pour les Pokémon sauvages du type du sandwich, qui doit contenir au moins deux Épices Secrètes. Sans effet sur les Raids Téracristal, les Pokémon Téracristal sauvages et les Pokémon fixes.",
    "note_masuda": "Méthode Masuda : œuf de deux parents venant de jeux de langues différentes. Depuis la 8e génération, un bug saute le tirage initial : 6 tirages au total (8 avec le Charme Chroma).",
    "note_tera_raid": "Raids Téracristal : 1 sur 4 103,05 au lieu de 1 sur 4 096, à cause des graines de 32 bits. Ni le Charme Chroma ni l'Aura Brillance ne s'appliquent.",
    "note_bdsp_charm": "Dans Diamant Étincelant et Perle Scintillante, le Charme Chroma n'agit que sur les œufs, malgré sa description. Le Poké Radar plafonne à 1 sur 99 à partir d'une chaîne de 40.",
    "note_aura": "Taux d'un Pokémon sauvage qui apparaît avec une aura, selon le nombre de Pokémon de l'espèce vaincus ou capturés. L'apparition d'une aura est un tirage à part (1,5 % au départ) : ce n'est pas le taux de n'importe quelle rencontre.",
    "note_dynamax": "Expéditions Dynamax : taux fixe pour le Pokémon légendaire de fin de parcours, 1 sur 300, ou 1 sur 100 avec le Charme Chroma.",
    "note_derived": "Les sources indiquent que cet effet se cumule avec le Charme Chroma sans publier le taux combiné : la colonne avec Charme ajoute ses 2 tirages (cumul calculé).",
    "note_go": "Estimation communautaire : environ 1 sur 512 pour la plupart des espèces (Bulbapedia). Niantic ne publie pas ces taux. Journées Communauté, raids et événements : non documenté de façon stable, saisissez votre taux dans le champ « Taux personnalisé »."
  },
  "animal-gestation-due-date-calculator": {
    "heading": "Date de mise bas des animaux",
    "subheading": "D'après la date de saillie ou d'insémination : vache, brebis, chèvre, truie, jument, ânesse, chienne, chatte.",
    "inputs_title": "Saillie et durée de gestation",
    "species": "Espèce",
    "species_cow": "Vache",
    "species_ewe": "Brebis",
    "species_goat": "Chèvre",
    "species_sow": "Truie",
    "species_mare": "Jument",
    "species_jenny": "Ânesse",
    "species_bitch": "Chienne",
    "species_queen": "Chatte",
    "mating_date": "Date de saillie ou d'insémination",
    "mean": "Durée moyenne de gestation",
    "min": "Plus courte habituelle",
    "max": "Plus longue habituelle",
    "unit_days": "jours",
    "dry_off_days": "Durée du tarissement",
    "sources_title": "Valeurs par défaut et sources",
    "consulted": "Pages en ligne sans date consultées en octobre 2026.",
    "editable_hint": "Durées modifiables : adaptez-les à la race ou aux résultats de votre élevage.",
    "source_cow": "INRAE, plateforme PFIE : 280 jours en moyenne. Réussir (2020) : de 277 j (Holstein) à 295 j (Blonde d'Aquitaine) selon la race ; Charolaise et Limousine vers 290 j, Aubrac et Salers vers 285 j.",
    "source_ewe": "Idele (2019) : 147 jours, à plus ou moins 5 jours.",
    "source_goat": "Merck Veterinary Manual, « Pregnancy in Goats » : 145 à 155 jours, 150 en moyenne.",
    "source_sow": "IFIP, références GTTT 2023 (édition 2024) : 114,8 à 115,0 jours en moyenne. 3tres3 : de 112 à 119 jours.",
    "source_mare": "IFCE (équipédia) : environ 11 mois (≈ 335 j), normalement de 320 à plus de 365 jours.",
    "source_jenny": "Merck Veterinary Manual : 365 jours. IFCE (équipédia) : 360 à 380 jours.",
    "source_bitch": "Merck Veterinary Manual (2025) : 58 à 72 jours après la première saillie ; 62 à 64 jours après l'ovulation (63 j retenus).",
    "source_queen": "Merck Veterinary Manual : 65 jours. Musters et al., Theriogenology (2011) : 65,3 jours en moyenne, de 57 à 72 jours.",
    "due_cow": "Vêlage prévu le {{date}}",
    "due_ewe": "Agnelage prévu le {{date}}",
    "due_goat": "Mise bas prévue le {{date}}",
    "due_sow": "Mise bas prévue le {{date}}",
    "due_mare": "Poulinage prévu le {{date}}",
    "due_jenny": "Mise bas prévue le {{date}}",
    "due_bitch": "Mise bas prévue le {{date}}",
    "due_queen": "Mise bas prévue le {{date}}",
    "answer_detail": "{{species}} : {{days}} jours après la saillie du {{date}}",
    "earliest": "Au plus tôt",
    "latest": "Au plus tard",
    "remaining": "Jours restants",
    "overdue": "Jours de dépassement",
    "gestation_day": "Jour de gestation aujourd'hui",
    "invalid_date": "Saisissez une date de saillie valide.",
    "milestones_title": "Repères datés",
    "milestone_dry_off": "Tarissement vers le {{date}}, {{days}} jours avant le vêlage prévu.",
    "milestone_dry_off_source": "Tarissement de deux mois : durée moyenne observée par l'Idele sur près de 3 millions de tarissements de 2015 à 2017, conforme aux recommandations (rapporté par Réussir).",
    "milestone_goat_scan": "Échographie possible dès le {{from}} (30 jours), plus fiable à partir du {{reliable}} (45 jours).",
    "milestone_goat_source": "Merck Veterinary Manual, « Pregnancy in Goats ».",
    "note_equine": "L'IFCE rappelle que la gestation varie beaucoup chez les équidés : la date prévue indique surtout quand commencer la surveillance.",
    "note_bitch": "Comptée depuis la saillie, la gestation varie de 58 à 72 jours ; la date d'ovulation (dosage de progestérone) la resserre à 62-64 jours.",
    "vet_note": "Ces dates sont des moyennes. Pour confirmer la gestation, pour une mise bas qui tarde ou au moindre signe anormal, consultez un vétérinaire."
  },
  "horizontal-tank-volume-calculator": {
    "heading": "Volume d'une cuve cylindrique couchée",
    "subheading": "Litres contenus selon la hauteur de liquide mesurée à la jauge : fioul, mazout, eau, lisier.",
    "inputs_title": "Dimensions de la cuve",
    "units": "Unités",
    "units_metric": "Métriques (cm, litres)",
    "units_imperial": "Américaines (pouces, gallons US)",
    "unit_in": "po",
    "unit_gal": "gal US",
    "diameter": "Diamètre intérieur",
    "length": "Longueur de la partie droite (sans les fonds)",
    "heads": "Fonds de la cuve",
    "heads_flat": "Plats",
    "heads_ellipsoidal": "Bombés elliptiques 2:1 (profondeur D/4)",
    "heads_hemispherical": "Hémisphériques (profondeur D/2)",
    "heads_depth_note": "Profondeur de chaque fond : {{a}}, en plus de la longueur droite.",
    "level": "Hauteur de liquide (jauge)",
    "level_over": "La hauteur dépasse le diamètre : le calcul compte la cuve pleine.",
    "result_title": "Contenu à cette hauteur",
    "answer": "À {{h}} sur {{d}} de diamètre : {{v}}, soit {{pct}}",
    "liquid": "Liquide restant",
    "free": "Place libre (à commander)",
    "total": "Capacité totale",
    "fill": "Taux de remplissage",
    "total_m3": "Capacité totale : {{m3}} m³.",
    "total_litres": "En litres : {{l}} L de liquide sur {{lt}} L de capacité.",
    "manufacturer_note": "Calcul géométrique pour une cuve parfaitement cylindrique et de niveau. La table de jaugeage du fabricant (barème de la cuve) prévaut : épaisseur des parois, renforts, déformation ou pente de pose changent le volume réel.",
    "table_title": "Table de jauge (pas de {{step}})",
    "table_show": "Afficher la table",
    "table_hide": "Masquer la table",
    "table_copy": "Copier",
    "table_print": "Imprimer",
    "col_height": "Hauteur",
    "col_volume": "Volume",
    "col_fill": "Remplissage"
  },
  "livestock-unit-stocking-rate-calculator": {
    "heading": "UGB du cheptel et taux de chargement",
    "subheading": "Grille PAC de la France (notice ICHN) ou grille Eurostat de l'Union européenne, coefficients modifiables.",
    "grid_label": "Grille de coefficients",
    "grid_fr": "France : PAC, notice ICHN 2026",
    "grid_eu": "Union européenne : Eurostat (LSU)",
    "source_fr": "Source : ministère de l'Agriculture (France), notice « Indemnités compensatoires de handicaps naturels (ICHN) », Dossier PAC campagne 2026, sur telepac. Les veaux de moins de 6 mois n'ont pas de coefficient dans cette grille.",
    "source_eu": "Source : Eurostat, glossaire « Livestock unit (LSU) », coefficients des enquêtes 2020, 2023 et 2026 (page modifiée le {{date}}). Pas de coefficient pour les équidés depuis 2020 : l'outil reprend 0,8, valeur des enquêtes 2005 à 2016.",
    "herd_title": "Cheptel",
    "col_category": "Catégorie",
    "col_count": "Têtes",
    "col_coef": "UGB/tête",
    "coef_for": "Coefficient UGB : {{cat}}",
    "row_lsu": "= {{ugb}} UGB",
    "reset_coefs": "Rétablir les coefficients",
    "note_edit": "Les coefficients se modifient : saisissez ceux de votre cahier des charges (MAEC, aide couplée) s'il en impose d'autres.",
    "surface_label": "Surface fourragère",
    "surface_hint": "Pour l'ICHN : prairies, cultures fourragères et céréales autoconsommées non commercialisées, surfaces collectives au prorata.",
    "result_title": "Résultat",
    "answer": "{{ugb}} UGB sur {{ha}} ha de surface fourragère = {{rate}} UGB/ha",
    "invalid_surface": "Saisissez une surface fourragère supérieure à zéro pour obtenir le chargement.",
    "copy_label": "Copier le résultat",
    "total_label": "UGB totales",
    "rate_label": "Chargement (UGB/ha)",
    "grid_used": "Grille utilisée : {{grid}}",
    "benchmarks_title": "Repères officiels",
    "ichn_min": "ICHN en France : un éleveur doit détenir au moins {{lsu}} UGB herbivores ou porcines et {{ha}} ha de surfaces fourragères primables (notice ICHN 2026). Les bovins y sont comptés sur 12 mois d'après la BDNI, les équidés seulement s'ils sont reproducteurs actifs ou âgés de 6 mois à 3 ans hors entraînement, et les porcins comptent sans figurer dans cette grille.",
    "ichn_ok": "Seuil atteint avec ce cheptel (sous réserve des règles ci-dessus).",
    "ichn_ko": "Seuil non atteint avec ce cheptel.",
    "ichn_range": "Le chargement minimal, le plafond et la plage optimale de l'ICHN sont fixés par arrêté préfectoral selon la zone défavorisée : demandez-les à votre DDT(M) ou à votre DAAF.",
    "eu_none": "Cette grille sert aux statistiques d'Eurostat : aucun seuil réglementaire de chargement ne s'y rattache.",
    "fr_dairy": "Vaches laitières (bovins de plus de 2 ans)",
    "fr_suckler": "Vaches allaitantes (bovins de plus de 2 ans)",
    "fr_other_2y": "Autres bovins de plus de 2 ans (taureaux, bœufs, génisses)",
    "fr_6m_2y": "Bovins de 6 mois à 2 ans",
    "fr_sheep": "Ovins de plus d'un an ou ayant mis bas",
    "fr_goats": "Caprins de plus d'un an ou ayant mis bas",
    "fr_equines": "Équidés de plus de 6 mois",
    "fr_llamas": "Lamas de plus de 2 ans",
    "fr_alpacas": "Alpagas de plus de 2 ans",
    "fr_deer": "Cerfs de plus de 2 ans",
    "fr_fallow": "Daims de plus de 2 ans",
    "eu_dairy": "Vaches laitières",
    "eu_other_cows": "Autres vaches de 2 ans et plus (allaitantes)",
    "eu_male_2y": "Bovins mâles de 2 ans et plus",
    "eu_heifers_2y": "Génisses de 2 ans et plus",
    "eu_1_2y": "Bovins de 1 an à moins de 2 ans",
    "eu_under_1y": "Bovins de moins d'un an",
    "eu_sheep": "Ovins",
    "eu_goats": "Caprins",
    "eu_equidae": "Équidés (coefficient 2005-2016)",
    "eu_sows": "Truies reproductrices de 50 kg et plus",
    "eu_piglets": "Porcelets de moins de 20 kg",
    "eu_other_pigs": "Autres porcins",
    "eu_broilers": "Poulets de chair",
    "eu_hens": "Poules pondeuses",
    "eu_rabbits": "Lapines reproductrices"
  },
  "soil-analysis-unit-converter": {
    "heading": "Convertisseur d'analyse de sol",
    "subheading": "meq/100 g, cmol(+)/kg, mg/kg, kg/ha et lb/ac pour K, Ca, Mg et Na, en élément ou en oxyde.",
    "inputs_title": "Valeur du bulletin",
    "element_label": "Élément",
    "el_K": "Potassium (K)",
    "el_Ca": "Calcium (Ca)",
    "el_Mg": "Magnésium (Mg)",
    "el_Na": "Sodium (Na)",
    "value_label": "Valeur mesurée",
    "unit_label": "Unité du bulletin",
    "basis_label": "Exprimé en",
    "basis_element": "Élément ({{el}})",
    "basis_oxide": "Oxyde ({{ox}})",
    "basis_hint": "Les unités de charge (meq/100 g, cmol(+)/kg) comptent des charges : elles ne distinguent pas l'élément de l'oxyde.",
    "layer_title": "Couche de sol (pour kg/ha et lb/ac)",
    "depth_label": "Profondeur",
    "density_label": "Densité apparente",
    "preset_plough": "Couche labourée : {{depth}} cm × {{density}} t/m³",
    "preset_us": "2 millions de lb/acre : {{depth}} cm × {{density}} t/m³ (facteur {{factor}})",
    "soil_mass": "Masse de terre : {{mass}} t/ha. Dans cette couche, 1 mg/kg = {{factor}} kg/ha.",
    "answer_title": "Résultat",
    "answer_charge": "{{value}} {{unit}} de {{el}} = {{ppm}} mg/kg de {{el}} ({{ppmOx}} mg/kg de {{ox}}) = {{kghaEl}} kg/ha de {{el}}, soit {{kghaOx}} kg/ha de {{ox}}, sur {{depth}} cm à {{density}} t/m³",
    "answer_mass": "{{value}} {{unit}} de {{species}} = {{meq}} meq/100 g de {{el}} = {{ppm}} mg/kg de {{el}} = {{kghaOx}} kg/ha de {{ox}} sur {{depth}} cm à {{density}} t/m³",
    "invalid": "Saisissez une valeur positive, une profondeur et une densité supérieures à zéro.",
    "copy_label": "Copier le résultat",
    "table_title": "Toutes les unités",
    "col_unit": "Unité",
    "source_note": "Masses atomiques CIAAW (IUPAC), table abrégée 2024 : K {{K}}, Ca {{Ca}}, Mg {{Mg}}, Na {{Na}}, O {{O}}. Facteurs oxyde/élément : K₂O/K {{fK}}, CaO/Ca {{fCa}}, MgO/Mg {{fMg}}, Na₂O/Na {{fNa}}.",
    "note_layer": "Les valeurs en kg/ha et lb/ac dépendent de la couche choisie : prenez la profondeur d'échantillonnage et, si possible, la densité apparente mesurée de votre parcelle."
  },
  "eu-customs-allowance-calculator": {
    "title": "Franchises douanières à l'entrée dans l'Union européenne",
    "subtitle": "Voyageur arrivant d'un pays hors UE : franchise en valeur (430 € ou 300 €), tabac et alcool, selon la directive 2007/74/CE.",
    "trip_title": "Votre arrivée",
    "transport_label": "Moyen de transport",
    "transport_airsea": "Avion ou bateau (mer)",
    "transport_other": "Voiture, train, bus ou voie fluviale",
    "age_label": "Âge du voyageur",
    "age_adult": "{{n}} ans ou plus",
    "age_teen": "{{a}} à {{b}} ans",
    "age_child": "Moins de {{n}} ans",
    "threshold_label": "Seuil de valeur (€)",
    "threshold_hint": "Laissez vide pour le seuil de l'UE ; un État peut fixer moins pour les moins de 15 ans.",
    "goods_title": "Objets achetés hors UE (valeur en €)",
    "goods_hint": "Un objet par ligne, au prix d'achat. N'y mettez ni tabac, ni alcool, ni carburant : ils ont leurs propres franchises.",
    "item_name_aria": "Nom de l'objet {{n}}",
    "item_placeholder": "Objet {{n}}",
    "item_value_aria": "Valeur de l'objet {{n}} en euros",
    "remove": "Supprimer cet objet",
    "add_item": "Ajouter un objet",
    "value_result_title": "Franchise en valeur",
    "covered": "Couvert par la franchise",
    "to_declare": "À déclarer et taxer",
    "threshold_used": "Seuil appliqué : {{amount}} pour {{total}} d'achats. L'outil retient la combinaison d'objets qui exonère le plus.",
    "value_ok": "Tous vos achats tiennent dans la franchise : rien à déclarer pour ces objets.",
    "value_over": "Ces objets dépassent la franchise : déclarez-les, droits de douane et TVA sont dus sur leur valeur totale.",
    "item_above": "Au-dessus du seuil à lui seul : taxé sur sa valeur entière, sans abattement.",
    "no_split": "La valeur d'un objet ne se fractionne pas et ne se partage pas entre voyageurs : une famille de quatre ne peut pas cumuler 4 × 430 € pour un appareil de 1 720 €.",
    "tobacco_title": "Tabac",
    "reduced_label": "Limites réduites : arrivée par voie terrestre ou maritime en Bulgarie, Croatie, Grèce, Hongrie, Lettonie, Lituanie, Pologne ou Slovaquie, ou arrivée en Estonie ou Roumanie",
    "tob_cigarettes": "Cigarettes (max. {{max}})",
    "tob_cigarillos": "Cigarillos (max. {{max}})",
    "tob_cigars": "Cigares (max. {{max}})",
    "tob_tobacco": "Tabac à fumer en g (max. {{max}})",
    "nothing": "Rien de déclaré dans cette catégorie.",
    "minor_no": "Avant {{n}} ans, aucune franchise pour le tabac et l'alcool : tout est à déclarer.",
    "share_ok": "Franchise tabac utilisée à {{pct}} % : rien à déclarer.",
    "share_over": "Franchise tabac utilisée à {{pct}} % : l'excédent est à déclarer (droits, accises et TVA).",
    "tobacco_rule": "Une seule franchise tabac, répartissable : 100 cigarettes (50 %) laissent par exemple 50 cigarillos ou 25 cigares.",
    "alcohol_title": "Alcool",
    "alc_spirits": "Plus de 22 % vol., en L (max. {{max}})",
    "alc_intermediate": "22 % vol. ou moins (mousseux, vin de liqueur), en L (max. {{max}})",
    "alc_wine": "Vin tranquille, en L (max. {{max}})",
    "alc_beer": "Bière, en L (max. {{max}})",
    "spirits_ok": "Part alcools forts et boissons ≤ 22 % : {{pct}} % de la franchise, rien à déclarer.",
    "spirits_over": "Part alcools forts et boissons ≤ 22 % : {{pct}} % de la franchise, l'excédent est à déclarer.",
    "wine_ok": "Vin tranquille dans la franchise.",
    "wine_over": "Vin tranquille : {{excess}} L au-delà de la franchise, à déclarer.",
    "beer_ok": "Bière dans la franchise.",
    "beer_over": "Bière : {{excess}} L au-delà de la franchise, à déclarer.",
    "alcohol_rule": "1 L à plus de 22 % ou 2 L à 22 % au plus se partagent (0,5 L de whisky + 1 L de mousseux = 100 %) ; les 4 L de vin et 16 L de bière s'ajoutent.",
    "note": "Règle de l'Union européenne, identique dans les 27 États pour les plafonds ; certains États appliquent des limites plus basses (tabac, moins de 15 ans) et des régimes propres aux frontaliers et au personnel de transport, non calculés ici. Les droits et la TVA dus au-delà ne sont pas estimés. Vérifiez auprès de la douane du pays d'arrivée."
  },
  "motorway-vignette-cost-calculator": {
    "title": "Vignettes autoroutières Suisse, Autriche, Slovénie : la moins chère",
    "subtitle": "Indiquez vos jours de conduite sur autoroute en Suisse, en Autriche et en Slovénie : l'outil choisit la combinaison de vignettes 2026 la moins chère pour une voiture de 3,5 t au plus.",
    "trips_title": "Jours de conduite sur autoroute",
    "trips_hint": "Une ligne par trajet : chaque jour de la période compte comme jour de conduite dans les pays cochés. Pour l'aller et le retour d'un séjour, saisissez deux lignes d'un jour.",
    "start_label": "Du",
    "end_label": "Au (inclus)",
    "countries_legend": "Pays traversés sur autoroute",
    "country_CH": "Suisse",
    "country_AT": "Autriche",
    "country_SI": "Slovénie",
    "remove_trip": "Supprimer ce trajet",
    "add_trip": "Ajouter un trajet",
    "total_label": "Coût total des vignettes",
    "total_both": "{{chf}} + {{eur}}",
    "no_conversion": "La vignette suisse se paie en francs suisses, les vignettes autrichienne et slovène en euros : les montants ne sont pas convertis.",
    "late_warning": "Certains jours tombent à partir du 1er décembre 2026, sur l'année de vignette 2027 dont les tarifs n'étaient pas publiés au 15/10/2026 : les tarifs 2026 sont appliqués, modifiez-les si besoin.",
    "no_days": "Aucun jour de conduite dans ce pays : pas de vignette.",
    "days_count": "Jours de conduite : {{n}}",
    "p_ch_year": "Vignette annuelle",
    "p_at_day": "Vignette 1 jour (numérique)",
    "p_at_10days": "Vignette 10 jours",
    "p_at_2months": "Vignette 2 mois",
    "p_at_year": "Vignette annuelle",
    "p_si_week": "E-vignette 7 jours",
    "p_si_month": "E-vignette 1 mois",
    "p_si_year": "E-vignette 1 an",
    "valid_range": "Valable du {{from}} au {{to}}",
    "subtotal": "Sous-total",
    "prices_title": "Tarifs 2026 vérifiés le {{date}} (modifiables)",
    "price_label": "{{country}}, {{product}} ({{cur}})",
    "reset_prices": "Revenir aux tarifs 2026",
    "note_18days": "Autriche : une vignette numérique 2 mois ou annuelle achetée en ligne n'est valable qu'à partir du 18e jour après l'achat (droit de rétractation) ; achetez-la assez tôt ou dans un point de vente. Slovénie : l'e-vignette est liée à la plaque et se choisit avec sa date de début.",
    "note_scope": "Voiture de 3,5 t au plus (en Slovénie, classe 2A : hauteur de 1,3 m au plus au-dessus de l'essieu avant, sinon classe 2B plus chère) ; motos, remorques et poids lourds (péage au kilomètre) hors champ. Les tunnels et routes à péage spécial (Grand-Saint-Bernard, Karawanken, Brenner…) se paient en plus."
  },
  "recherche-livre-isbn": {
    "heading": "Recherche de livre par ISBN",
    "subheading": "Vérifiez la clé d'un ISBN-10 ou ISBN-13, convertissez-le et retrouvez titre, auteur, éditeur et couverture dans Open Library.",
    "input_label": "ISBN (10 ou 13 chiffres, tirets facultatifs)",
    "placeholder": "ex. 978-2-07-061275-8",
    "search": "Rechercher",
    "valid_check": "Clé de contrôle valide",
    "isbn13_label": "ISBN-13",
    "isbn10_label": "ISBN-10",
    "no_isbn10": "aucun (préfixe 979)",
    "invalid_check": "Clé de contrôle incorrecte : avec ces chiffres, le dernier caractère devrait être {{expected}}. Vérifiez la saisie.",
    "invalid_format": "Un ISBN compte 10 caractères (le dernier peut être X) ou 13 chiffres.",
    "invalid_prefix": "Un ISBN-13 commence par 978 ou 979. Ce code ressemble à un autre code-barres (EAN).",
    "not_found_hint": "Open Library ne recense pas tous les livres, en particulier les éditions françaises récentes ou à petit tirage. Essayez l'autre forme de l'ISBN ou une autre édition.",
    "cover_alt": "Couverture de « {{title}} »",
    "authors": "Auteur(s)",
    "publisher": "Éditeur",
    "published": "Date de parution (telle que publiée)",
    "pages": "Nombre de pages",
    "subjects": "Sujets indiqués par Open Library",
    "open_link": "Voir la fiche sur Open Library",
    "check_note": "La clé est vérifiée dans votre navigateur avant toute requête : ISBN-10, somme des chiffres pondérés de 10 à 1 divisible par 11 (X vaut 10) ; ISBN-13, somme pondérée 1, 3, 1, 3… divisible par 10. Seul un ISBN valide est envoyé à Open Library."
  },
  "fiche-wikipedia-resume": {
    "heading": "Résumé d'un article Wikipédia",
    "subheading": "L'introduction d'un article, sa description courte et son image, à lire ou à imprimer, depuis {{domain}}.",
    "input_label": "Sujet ou titre d'article",
    "placeholder": "ex. Victor Hugo",
    "search": "Afficher",
    "not_found_hint": "Aucun article ne porte exactement ce titre. Choisissez une des suggestions qui s'affichent pendant la saisie : le titre doit correspondre à celui de l'article.",
    "disambiguation": "Ce titre correspond à une page d'homonymie, qui liste plusieurs sujets. Précisez votre recherche (par exemple avec le domaine ou une date).",
    "image_alt": "Illustration de l'article « {{title}} »",
    "read_article": "Lire l'article complet sur Wikipédia",
    "print": "Imprimer la fiche",
    "attribution": "Texte extrait de l'article « {{title}} » de Wikipédia, publié sous licence Creative Commons Attribution - Partage dans les mêmes conditions 4.0 (CC BY-SA 4.0). Ses auteurs sont listés dans l'historique de l'article.",
    "authors_link": "Historique et auteurs",
    "license_link": "Texte de la licence CC BY-SA 4.0",
    "source_name": "Wikipédia"
  },
  "pokedex-stats-faiblesses": {
    "heading": "Pokédex : statistiques et faiblesses d'un Pokémon",
    "subheading": "Stats de base, types, taille, poids et multiplicateurs de dégâts subis pour chaque type d'attaque.",
    "input_label": "Pokémon (nom anglais ou numéro)",
    "placeholder": "ex. charizard ou 6",
    "search": "Afficher",
    "input_hint": "PokéAPI attend le nom anglais (Dracaufeu = charizard) ou le numéro du Pokédex national. Formes : charizard-mega-x, raichu-alola…",
    "not_found_hint": "PokéAPI ne connaît pas ce nom. Essayez le nom anglais ou le numéro (1 à 1025 pour le Pokédex national).",
    "number": "N° {{n}}",
    "height": "Taille",
    "weight": "Poids",
    "stats_title": "Statistiques de base",
    "stat_hp": "PV",
    "stat_attack": "Attaque",
    "stat_defense": "Défense",
    "stat_special_attack": "Attaque Spé.",
    "stat_special_defense": "Défense Spé.",
    "stat_speed": "Vitesse",
    "stat_total": "Total",
    "matchup_title": "Dégâts subis selon le type de l'attaque",
    "group_4": "Très vulnérable (×4)",
    "group_2": "Vulnérable (×2)",
    "group_0_5": "Résistant (×½)",
    "group_0_25": "Très résistant (×¼)",
    "group_0": "Immunisé (×0)",
    "abilities_note": "Les multiplicateurs sont calculés à partir des seuls types (table des générations 6 et suivantes) : un talent comme Lévitation (immunité au type Sol) ou Absorb Eau n'est pas pris en compte.",
    "trademark": "Pokémon et les noms des Pokémon sont des marques de Nintendo ; données issues de PokéAPI, projet communautaire non officiel.",
    "matchup_link": "Comparer n'importe quelle combinaison de types dans le calculateur de faiblesses"
  },
  "prochains-jours-feries": {
    "heading": "Prochains jours fériés et ponts",
    "subheading": "Compte à rebours jusqu'au prochain férié, liste de l'année et ponts possibles",
    "country": "Pays",
    "uk_scope": "Royaume-Uni (Angleterre et pays de Galles)",
    "year": "Année",
    "next": "Prochain jour férié",
    "is_today": "C'est aujourd'hui",
    "bridge_monday": "Pont possible : poser le lundi",
    "bridge_friday": "Pont possible : poser le vendredi",
    "calendar_hint": "Pour voir les fériés mois par mois :",
    "calendar_link": "ouvrir le calendrier",
    "list_title": "Jours fériés {{year}}",
    "stat_total": "Jours fériés",
    "stat_weekday": "En semaine",
    "stat_bridges": "Ponts possibles",
    "weekend": "Tombe un week-end",
    "past": "Passé",
    "scope_FR": "Les 11 jours fériés nationaux. L'Alsace et la Moselle ont en plus le Vendredi saint et le 26 décembre, non affichés. Dans le secteur privé, seul le 1er mai est obligatoirement chômé ; le lundi de Pentecôte sert souvent de journée de solidarité.",
    "scope_US": "Les 11 jours fériés fédéraux américains. Quand l'un d'eux tombe un samedi ou un dimanche, le congé est reporté au vendredi ou au lundi : ce report n'est pas affiché. Les États et les employeurs privés fixent leurs propres jours chômés.",
    "scope_UK": "Les jours fériés (bank holidays) d'Angleterre et du pays de Galles. L'Écosse et l'Irlande du Nord en ont d'autres. Le jour de remplacement accordé quand un férié tombe un week-end n'est pas affiché.",
    "scope_DE": "Les 9 jours fériés communs à toute l'Allemagne. Chaque Land en ajoute d'autres (Épiphanie, Fête-Dieu, Toussaint, fête de la Réforme…), non affichés.",
    "scope_ES": "Les fêtes nationales espagnoles retenues par l'outil. Chaque communauté autonome en ajoute ou en remplace certaines, non affichées ; une fête qui tombe un dimanche peut être reportée au lundi selon la région.",
    "scope_BR": "Les 10 jours fériés nationaux du Brésil, fixés chaque année par le ministère de la Gestion (portaria MGI). Le Carnaval, le mercredi des Cendres et la Fête-Dieu ne sont que des « pontos facultativos », non affichés ; chaque État et chaque commune ajoute ses propres fériés.",
    "scope_IT": "Les 12 jours fériés nationaux italiens (loi 260/1949). Le 4 octobre, fête de saint François d'Assise, est de nouveau férié depuis 2026. Pâques, toujours un dimanche, et la fête du saint patron de chaque commune ne sont pas affichées."
  },
  "seismes-temps-reel": {
    "heading": "Séismes en temps réel dans le monde",
    "subheading": "Carte et liste des tremblements de terre publiés par l'USGS : magnitude, profondeur, heure et distance à votre adresse.",
    "feed_label": "Période et seuil",
    "feed_day": "Dernières 24 h, tous les séismes",
    "feed_week": "7 derniers jours, magnitude 2,5 et plus",
    "feed_month": "30 derniers jours, séismes significatifs",
    "sort_label": "Trier la liste par",
    "sort_time": "Plus récents",
    "sort_mag": "Magnitude décroissante",
    "sort_dist": "Plus proches de l'adresse",
    "address_label": "Adresse en France (facultatif)",
    "address_note": "La recherche d'adresse couvre la France ; le bouton de position fonctionne seulement en France. Sert à calculer la distance à vol d'oiseau.",
    "clear_address": "Retirer l'adresse",
    "count": "Séismes dans ce flux",
    "max_mag": "Magnitude la plus forte",
    "nearest": "Séisme le plus proche",
    "nearest_detail": "Magnitude {{mag}} · {{place}}",
    "nearest_empty": "Choisissez une adresse pour voir la distance.",
    "map_title": "Carte des épicentres",
    "map_alt": "Carte du monde simplifiée avec {{n}} épicentres, colorés selon la magnitude",
    "legend_small": "Moins de 4,5",
    "legend_mid": "4,5 à 5,9",
    "legend_big": "6 et plus",
    "legend_place": "Votre adresse",
    "list_title": "Liste ({{n}} premiers sur {{total}})",
    "no_quakes": "Aucun séisme dans ce flux pour l'instant.",
    "depth": "profondeur {{km}} km",
    "distance": "à {{km}} km de l'adresse",
    "event_link": "Détails",
    "event_link_aria": "Détails du séisme sur le site de l'USGS : {{place}}",
    "time_note": "Heures affichées dans le fuseau de votre appareil. Lieux tels que publiés par l'USGS (en anglais), sous la forme « distance et direction de la localité la plus proche ».",
    "richter_note": "L'échelle de Richter n'est plus utilisée telle quelle : l'USGS publie la magnitude de moment (Mw, notée mww, mwr…) pour les séismes modérés et forts, et une magnitude locale (ml) ou de durée (md) pour les petits séismes. Le type est indiqué sous chaque magnitude. Une hausse d'un point correspond à environ 32 fois plus d'énergie libérée.",
    "source_name": "USGS, programme Earthquake Hazards",
    "license": "domaine public"
  },
  "stats-joueur-chess-com": {
    "heading": "Statistiques d'un joueur d'échecs",
    "subheading": "Classement par cadence sur Chess.com ou Lichess, bilan victoires, nulles et défaites, et évolution sur 12 mois.",
    "input_label": "Pseudo Chess.com",
    "placeholder": "ex. magnuscarlsen",
    "search": "Afficher",
    "invalid_user": "Un pseudo Chess.com ne contient que des lettres, des chiffres, « _ » ou « - ».",
    "not_found_hint": "Aucun compte Chess.com ne porte ce pseudo. Vérifiez l'orthographe : le nom affiché sur un profil peut différer du pseudo.",
    "avatar_alt": "Avatar de {{user}}",
    "country": "Pays",
    "league": "Ligue",
    "followers": "Abonnés",
    "joined": "Inscrit le",
    "last_online": "Dernière connexion",
    "profile_link": "Voir le profil sur Chess.com",
    "mode_bullet": "Bullet",
    "mode_blitz": "Blitz",
    "mode_rapid": "Rapide",
    "mode_daily": "Partie par jour",
    "rd": "Écart de classement (RD) : ±{{rd}}",
    "best_rating": "Record",
    "record": "V / N / D",
    "win_rate": "Taux de victoire",
    "no_games": "Aucune partie classée dans cette cadence.",
    "other_title": "Problèmes et classement FIDE",
    "tactics_best": "Meilleur classement en problèmes",
    "puzzle_rush_best": "Meilleur score Puzzle Rush",
    "fide_declared": "Classement FIDE indiqué sur le profil",
    "source_name": "API publique de Chess.com",
    "glicko_note": "Chess.com calcule ses classements avec le système Glicko, pas avec l'Elo de la FIDE : les chiffres ne sont pas comparables d'un site à l'autre. L'écart RD mesure l'incertitude (plus il est faible, plus le classement est fiable). Données publiques servies à travers le cache de Chess.com : une partie toute récente peut ne pas encore apparaître.",
    "elo_link": "Calculer une probabilité de victoire et un gain de points Elo",
    "site_label": "Site d'échecs",
    "lichess_input_label": "Pseudo Lichess",
    "lichess_placeholder": "ex. DrNykterstein",
    "lichess_invalid_user": "Un pseudo Lichess ne contient que des lettres, des chiffres, « _ » ou « - ».",
    "lichess_not_found_hint": "Aucun compte Lichess ne porte ce pseudo. Vérifiez l'orthographe.",
    "lichess_disabled": "Ce compte Lichess est fermé : Lichess ne publie plus ses statistiques.",
    "lichess_profile_link": "Voir le profil sur Lichess",
    "lichess_games": "Parties jouées",
    "lichess_rated_games": "Parties classées",
    "lichess_provisional": "Classement provisoire (« ? » sur Lichess) : son écart RD dépasse 110.",
    "lichess_record_title": "Bilan Lichess, toutes parties",
    "lichess_record_note": "Lichess publie un seul bilan pour toutes les parties du compte, amicales et variantes comprises, sans détail par cadence.",
    "lichess_history_uncached": "Sans connexion, Lichess ne fournit l'historique du classement que s'il en garde une copie en cache, et il n'y en a pas pour ce compte en ce moment.",
    "lichess_source_name": "API publique de Lichess",
    "lichess_glicko_note": "Lichess calcule ses classements avec le système Glicko-2, pas avec l'Elo de la FIDE : un même nombre n'a pas la même valeur sur Lichess, sur Chess.com et à la FIDE. L'écart RD mesure l'incertitude (plus il est faible, plus le classement est fiable).",
    "mode_classical": "Classique",
    "mode_correspondence": "Correspondance",
    "history_title": "Évolution du classement sur 12 mois",
    "history_hint": "La courbe et le bilan par ouverture se construisent à partir des archives mensuelles de parties de Chess.com, lues l'une après l'autre (12 mois au plus). Pour un joueur très actif, un mois peut dépasser 2 Mo : le chargement peut alors prendre jusqu'à une minute.",
    "history_load": "Afficher la courbe et les ouvertures",
    "history_progress": "Lecture des archives : {{done}} mois sur {{total}}…",
    "history_empty": "Aucune partie classée sur les 12 derniers mois.",
    "history_col_mode": "Cadence",
    "history_col_first": "Début",
    "history_col_last": "Dernier",
    "history_col_change": "Écart",
    "history_col_min": "Min.",
    "history_col_max": "Max.",
    "openings_title": "Bilan par ouverture (12 mois)",
    "openings_note": "Parties classées aux règles standard analysées : {{n}}. Elles sont regroupées par famille d'ouverture, sous le nom que leur donne Chess.com (en anglais).",
    "openings_white": "Avec les Blancs",
    "openings_black": "Avec les Noirs",
    "openings_col_name": "Ouverture",
    "openings_col_games": "Parties",
    "openings_more": "Voir les {{n}} familles",
    "openings_less": "Voir moins",
    "openings_none": "Aucune partie avec cette couleur."
  },
  "velib-disponibilite-stations": {
    "heading": "Vélib' : vélos et places disponibles près de vous",
    "subheading": "Vélos mécaniques, électriques et bornettes libres des stations Vélib' Métropole, en temps réel",
    "default_place": "Hôtel de Ville, Paris",
    "radius": "Rayon de recherche",
    "zone_note": "Vélib' Métropole couvre Paris et une soixantaine de communes voisines. Ailleurs en France, aucune station n'apparaîtra.",
    "outside_zone": "Cette adresse est hors de la zone Vélib' : le service ne couvre que Paris et des communes de la métropole du Grand Paris. Choisissez une adresse en Île-de-France.",
    "summary": "Stations dans un rayon de {{radius}} : {{n}}",
    "mechanical": "Vélos mécaniques",
    "ebike": "Vélos électriques",
    "docks": "Places libres",
    "mechanical_short": "mécaniques",
    "ebike_short": "électriques",
    "docks_short": "places",
    "no_station": "Aucune station Vélib' dans ce rayon. Élargissez le rayon ; si rien n'apparaît à 1 km, l'adresse est probablement hors de la zone desservie (Paris et une soixantaine de communes voisines).",
    "distance": "à {{m}} m",
    "capacity": "{{n}} bornettes au total",
    "reported": "état transmis {{when}}",
    "closed": "Station fermée à la location et au retour",
    "no_renting": "Location impossible pour le moment",
    "no_returning": "Retour impossible pour le moment",
    "freshness_note": "Données rafraîchies environ chaque minute par Vélib' Métropole ; l'outil les relit au plus toutes les 60 secondes. Un vélo affiché peut être emprunté entre-temps, et un vélo en panne peut être compté comme disponible.",
    "source_name": "Paris Data, Vélib' Métropole",
    "truncated": "Seules les {{n}} stations les plus proches sont listées et additionnées ; réduisez le rayon pour un compte exact."
  },
  "coordonnees-gps-adresse": {
    "title": "Coordonnées GPS d'une adresse et adresse d'un point GPS",
    "subtitle": "Degrés décimaux et degrés-minutes-secondes, dans les deux sens, pour les adresses françaises.",
    "address_to_gps": "Adresse → coordonnées GPS",
    "gps_to_address": "Coordonnées GPS → adresse",
    "coords_label": "Latitude, longitude",
    "convert": "Convertir",
    "coords_hint": "Formats acceptés : 48.8584, 2.2945 · 48,8584 ; 2,2945 · 48°51'30\"N 2°17'40\"E · lettre O ou W pour l'ouest.",
    "error_format": "Format non reconnu : saisissez une latitude puis une longitude (minutes et secondes inférieures à 60).",
    "error_range": "Hors bornes : la latitude va de −90 à 90 et la longitude de −180 à 180.",
    "decimal_degrees": "Degrés décimaux (latitude, longitude)",
    "dms": "Degrés, minutes, secondes (lettres internationales N, S, E, W)",
    "nearest_address": "Adresse",
    "distance_m": "à environ {{value}} m du point",
    "no_address": "Aucune adresse trouvée près de ce point. La Géoplateforme ne couvre que la France (métropole et outre-mer) : les coordonnées ci-dessus restent valables.",
    "source_name": "Géoplateforme IGN, service de géocodage",
    "license": "Licence Ouverte 2.0",
    "france_only": "La recherche d'adresse et la conversion inverse utilisent la Base adresse nationale via la Géoplateforme de l'IGN : elles ne fonctionnent que pour la France. La conversion entre formats, elle, vaut partout dans le monde (système WGS 84, celui des GPS)."
  },
  "qualite-eau-robinet-commune": {
    "heading": "Qualité de l'eau du robinet dans votre commune",
    "subheading": "Derniers résultats du contrôle sanitaire des ARS : conformité, nitrates, pesticides, E. coli, pH et dureté.",
    "no_data": "Aucun prélèvement publié pour cette commune dans Hub'Eau.",
    "last_sample": "Dernier prélèvement publié : {{date}}, {{city}}",
    "status_conform": "Conforme aux limites de qualité",
    "status_not_conform": "Non conforme à au moins une limite de qualité",
    "status_unknown": "Conformité non renseignée",
    "ars_conclusion": "Conclusion de l'ARS (publiée en français) :",
    "distributor": "Distributeur : {{name}}",
    "param_NO3": "Nitrates",
    "param_PESTOT": "Total des pesticides",
    "param_ECOLI": "Escherichia coli",
    "param_PH": "pH",
    "param_TH": "Dureté (titre hydrotimétrique)",
    "unit_french_degree": "°f",
    "limit_NO3": "Limite de qualité : 50 mg/L au maximum.",
    "limit_PESTOT": "Limite de qualité : 0,5 µg/L au maximum pour la somme (0,1 µg/L par substance).",
    "limit_ECOLI": "Limite de qualité : 0 germe pour 100 mL.",
    "limit_PH": "Référence de qualité : entre 6,5 et 9 (repère, pas une limite).",
    "limit_TH": "Aucune limite ni référence réglementaire pour la dureté.",
    "within": "Dans la limite",
    "outside": "Hors limite",
    "th_conversion": "Soit {{mmol}} mmol/L ou {{dh}} °dH (degrés allemands).",
    "not_measured": "Pas de résultat publié pour ce paramètre.",
    "networks_title": "Réseaux de distribution (UDI) desservant la commune en {{year}} : {{n}}",
    "udi_note": "Un prélèvement est rattaché à une unité de distribution (UDI), qui peut desservir plusieurs communes, et une commune peut être alimentée par plusieurs UDI : la valeur affichée est celle du réseau, pas forcément d'un robinet de votre quartier. Chaque paramètre provient du dernier prélèvement où il a été mesuré.",
    "source_name": "Hub'Eau, qualité de l'eau potable (OFB, ministère de la Santé)",
    "license": "Licence Ouverte Etalab",
    "ph_within": "Dans la plage de référence",
    "ph_outside": "Hors de la plage de référence"
  },
  "resultats-lycees-bac": {
    "heading": "Résultats au bac des lycées : réussite, mentions et valeur ajoutée",
    "subheading": "Indicateurs officiels (IVAL) des lycées généraux et technologiques, publiés par la DEPP.",
    "search_label": "Lycée, commune ou code UAI",
    "search_placeholder": "Ex. Henri IV, Annecy ou 0750654D",
    "search_button": "Rechercher",
    "search_hint": "Recherche dans le nom du lycée ou dans la commune ; validez avec Entrée.",
    "no_result": "Aucun lycée général et technologique trouvé.",
    "truncated": "Liste limitée : précisez la recherche pour voir les autres lycées.",
    "not_published": "non publié",
    "va_points": "{{value}} pts",
    "va_label": "Valeur ajoutée :",
    "sector_public": "public",
    "sector_private": "privé sous contrat",
    "session": "Session {{year}} du baccalauréat",
    "academy": "académie de {{name}}",
    "candidates": "candidats : {{n}}",
    "kpi_success": "Taux de réussite",
    "kpi_mentions": "Taux de mentions",
    "kpi_access": "Accès de la seconde au bac",
    "va_explained": "Valeur ajoutée : écart, en points, entre le taux constaté et le taux attendu compte tenu du profil des élèves (âge, niveau au brevet, origine sociale). Positive, le lycée fait mieux que prévu.",
    "by_series": "Résultats par série",
    "col_series": "Série",
    "col_candidates": "Candidats",
    "col_success": "Réussite",
    "col_va": "Valeur ajoutée",
    "col_mentions": "Mentions",
    "series_gnle": "Bac général",
    "series_sti2d": "STI2D",
    "series_stmg": "STMG",
    "series_std2a": "STD2A",
    "series_stl": "STL",
    "series_st2s": "ST2S",
    "series_s2tmd": "S2TMD",
    "series_sthr": "STHR",
    "series_l": "Série L",
    "series_es": "Série ES",
    "series_s": "Série S",
    "mentions_title": "Nombre de mentions",
    "col_mention": "Mention",
    "col_general": "Bac général",
    "col_techno": "Bac technologique",
    "mention_tb_avecf": "Très bien avec félicitations du jury",
    "mention_tb_sansf": "Très bien",
    "mention_b": "Bien",
    "mention_ab": "Assez bien",
    "thresholds": "Seuils de publication : pas de taux sous 20 candidats, ni de valeur ajoutée ou de nombre de mentions sous 40 candidats.",
    "history": "Évolution par session",
    "col_session": "Session",
    "source_name": "DEPP, indicateurs de valeur ajoutée des lycées GT",
    "license": "Licence Ouverte 2.0"
  },
  "vacances-scolaires-zone": {
    "heading": "Vacances scolaires par zone : prochaines dates et compte à rebours",
    "subheading": "Calendrier officiel de l'Éducation nationale : zones A, B, C, Corse et outre-mer.",
    "zone_label": "Zone ou territoire",
    "zone_a": "Zone A",
    "zone_b": "Zone B",
    "zone_c": "Zone C",
    "zone_corse": "Corse",
    "zone_guadeloupe": "Guadeloupe",
    "zone_martinique": "Martinique",
    "zone_guyane": "Guyane",
    "zone_reunion": "La Réunion",
    "zone_mayotte": "Mayotte",
    "zone_polynesie": "Polynésie française",
    "zone_spm": "Saint-Pierre-et-Miquelon",
    "zone_nc": "Nouvelle-Calédonie",
    "zone_wf": "Wallis-et-Futuna",
    "academies": "Académies concernées :",
    "convention": "Convention du jeu de données : le départ a lieu après la classe du premier jour indiqué et la reprise le matin du second. Pour le pont de l'Ascension, la date de début publiée est le jeudi férié ou le seul vendredi libéré. Dates en heure de Paris.",
    "empty": "Aucune période à venir n'est publiée pour ce territoire.",
    "next_holiday": "Prochaines vacances",
    "last_class": "Départ après la classe du",
    "back_to_school": "Reprise des cours le matin du",
    "days_off": "Jours de vacances (week-ends compris)",
    "upcoming": "Calendrier à venir",
    "range": "Du {{start}} au {{end}}",
    "school_year": "année scolaire {{year}}",
    "applies_to": "Concerne : {{list}}",
    "starts_in_one": "Dans {{count}} jour",
    "starts_in_other": "Dans {{count}} jours",
    "today": "Aujourd'hui",
    "starts_tonight": "Départ ce soir après la classe",
    "ongoing_one": "En cours, reprise dans {{count}} jour",
    "ongoing_other": "En cours, reprise dans {{count}} jours",
    "h_toussaint": "Vacances de la Toussaint",
    "h_noel": "Vacances de Noël",
    "h_hiver": "Vacances d'hiver",
    "h_printemps": "Vacances de printemps",
    "h_ete": "Vacances d'été",
    "h_ascension": "Pont de l'Ascension",
    "source_name": "Ministère de l'Éducation nationale, calendrier scolaire",
    "license": "Licence Ouverte 2.0",
    "starts_in": "Départ {{when}}",
    "ongoing": "En cours, reprise {{when}}"
  },
  "bornes-recharge-irve": {
    "heading": "Bornes de recharge autour d'une adresse : puissance, prises, accès",
    "subheading": "Base nationale des infrastructures de recharge (IRVE) consolidée par Etalab.",
    "radius": "Rayon",
    "min_power": "Puissance minimale",
    "any": "Indifférent",
    "plug": "Type de prise",
    "prise_type_2": "Type 2",
    "prise_type_combo_ccs": "Combo CCS",
    "prise_type_chademo": "CHAdeMO",
    "prise_type_ef": "Prise domestique E/F",
    "prise_type_autre": "Autre prise",
    "free_only": "Seulement les stations déclarées gratuites",
    "no_realtime": "Ce jeu décrit les bornes installées : il ne dit pas si une borne est libre ou en service en ce moment.",
    "summary": "Dans un rayon de {{radius}} km autour de {{place}}",
    "stations_found": "Stations",
    "nearest": "La plus proche",
    "fast_count": "Rapides (≥ 50 kW)",
    "truncated": "Zone très équipée : la liste a atteint la limite de la requête et peut être incomplète. Réduisez le rayon.",
    "no_result": "Aucune station ne correspond à ces critères dans ce rayon.",
    "power_suspect": "Puissance affichée telle que publiée par l'opérateur ; cette valeur semble erronée.",
    "free": "Gratuit",
    "paid": "Payant",
    "access_free": "Accès libre",
    "access_restricted": "Accès réservé",
    "impl_street": "Voirie",
    "impl_public": "Parking public",
    "impl_private_public": "Parking privé à usage public",
    "impl_customers": "Parking réservé à la clientèle",
    "impl_fast": "Station de recharge rapide",
    "distance": "{{km}} km",
    "points": "Points de charge déclarés",
    "operator": "Opérateur",
    "hours": "Horaires publiés",
    "updated": "Mise à jour déclarée",
    "more": "Seules les {{n}} stations les plus proches sont affichées.",
    "source_name": "ODRÉ, bornes de recharge pour véhicules électriques (IRVE)",
    "license": "Licence Ouverte 2.0",
    "default_place": "Lyon"
  },
  "composition-croquettes-animaux": {
    "title": "Composition des croquettes par code-barres",
    "subtitle": "Constituants analytiques publiés par Open Pet Food Facts et glucides estimés par différence.",
    "analytical_constituents": "Constituants analytiques (% du produit tel quel)",
    "c_protein": "Protéines brutes",
    "c_fat": "Matières grasses brutes",
    "c_ash": "Cendres brutes",
    "c_fibre": "Cellulose brute (fibres)",
    "c_moisture": "Humidité",
    "not_published": "non publié",
    "type_from_bag": "Valeur absente de la fiche : vous pouvez la recopier depuis le paquet (rubrique « constituants analytiques ») pour compléter l'estimation.",
    "carbs_estimate": "Glucides estimés (par différence)",
    "carbs_impossible": "Estimation impossible : valeur manquante ({{value}}).",
    "carbs_negative": "La somme des constituants dépasse 100 % (résultat {{value}} %) : les valeurs de la fiche sont incohérentes, vérifiez-les sur le paquet.",
    "carbs_dry_matter": "soit ≈ {{value}} % de la matière sèche",
    "includes_typed": "Inclut une ou plusieurs valeurs saisies par vous.",
    "carbs_formula": "Estimation : 100 − protéines − matières grasses − cendres − fibres − humidité. Les fabricants n'ont pas à déclarer les glucides ; ce reste (extractif non azoté) est un ordre de grandeur, pas une valeur publiée.",
    "portion_link": "Calculer la ration quotidienne en grammes de votre chien ou chat",
    "data_note": "Fiche collaborative : les valeurs sont celles saisies par les contributeurs d'Open Pet Food Facts à partir de l'emballage. Le paquet en main fait foi.",
    "vet_disclaimer": "Information générale : ne remplace pas l'avis d'un vétérinaire, notamment pour un animal malade, diabétique ou en surpoids."
  },
  "niveau-nappe-phreatique": {
    "heading": "Niveau de la nappe phréatique près de chez vous",
    "subheading": "Dernière mesure du piézomètre le plus proche, comparée au même moment des années passées.",
    "station_label": "Piézomètre",
    "station_option": "{{name}}, {{city}} ({{km}} km)",
    "no_station": "Aucun piézomètre ayant mesuré ces 90 derniers jours dans un rayon d'environ 25 km.",
    "no_data": "Ce piézomètre n'a publié aucune mesure exploitable.",
    "last_level": "Dernière mesure : {{date}}",
    "ngf": "altitude du niveau d'eau (mètres NGF)",
    "depth": "soit environ {{m}} m sous le repère de mesure",
    "rank_label": "Rang par rapport aux années passées",
    "rank_value": "Plus haut que {{pct}} % des années",
    "rank_sentence": "Le niveau moyen des 30 derniers jours dépasse celui de {{below}} années sur {{n}} mesurées à la même période entre {{from}} et {{to}}.",
    "lowest": "Plus bas",
    "median": "Médiane",
    "highest": "Plus haut",
    "current_mean": "Moyenne des 30 derniers jours : {{m}} m NGF",
    "too_short": "Historique insuffisant : {{n}} année(s) mesurée(s) à cette période, il en faut au moins {{min}} pour comparer.",
    "chart_title": "Niveau moyen sur les mêmes {{days}} jours, année par année",
    "chart_alt": "Niveau moyen de la nappe à la même période de chaque année, de {{from}} à {{to}}",
    "chart_legend": "point vert : cette année ; pointillés : médiane",
    "point_title": "{{year}} : {{m}} m",
    "method": "Méthode : on calcule la moyenne des mesures des {{days}} jours précédant la dernière mesure, puis la même moyenne, aux mêmes dates, pour chaque année passée (une valeur par année, quel que soit le nombre de mesures). Le rang indique combien d'années passées étaient plus basses. Ce n'est pas l'indicateur officiel du BRGM et aucun seuil de sécheresse n'en découle : les restrictions d'eau relèvent des arrêtés préfectoraux.",
    "truncated": "Historique limité aux {{n}} mesures les plus récentes renvoyées par l'API.",
    "source_name": "Hub'Eau, piézométrie (OFB, BRGM, portail ADES)",
    "license": "Licence Ouverte Etalab"
  },
  "niveau-riviere-temps-reel": {
    "heading": "Niveau d'une rivière en temps réel",
    "subheading": "Hauteur d'eau et débit mesurés par la station hydrométrique la plus proche, avec la courbe des dernières 48 heures.",
    "station_label": "Station de mesure",
    "station_option": "{{name}} ({{km}} km)",
    "no_station": "Aucune station hydrométrique en service à moins de {{km}} km.",
    "no_recent": "Cette station n'a publié aucune hauteur d'eau ces dernières 48 heures. Choisissez une autre station dans la liste.",
    "height_m": "soit {{m}} m à l'échelle de la station",
    "measured_at": "Mesure du {{date}}",
    "change_24h": "Variation sur 24 h",
    "range_48h": "Mini – maxi sur 48 h",
    "flow": "Débit du site",
    "no_flow": "Débit non publié pour ce site",
    "chart_title": "Hauteur d'eau sur 48 heures",
    "chart_alt": "Courbe de la hauteur d'eau, de {{min}} à {{max}} cm sur 48 heures",
    "disclaimer": "Données brutes non validées, transmises toutes les 5 à 60 minutes. La hauteur se lit sur l'échelle propre à chaque station : ce n'est pas la profondeur de la rivière, et deux stations ne se comparent pas. Cette page n'indique aucun niveau de vigilance : pour les crues, consultez vigicrues.gouv.fr.",
    "source_name": "Hub'Eau, hydrométrie (OFB, plateforme PHyC du SCHAPI)",
    "license": "Licence Ouverte Etalab"
  },
  "prix-carburants-stations": {
    "heading": "Prix des carburants autour de vous : stations les moins chères",
    "subheading": "Prix déclarés par les stations sur le site officiel prix-carburants.gouv.fr, avec la date de chaque prix.",
    "fuel": "Carburant",
    "fuel_gazole": "Gazole (B7)",
    "fuel_e10": "SP95-E10",
    "fuel_sp98": "SP98 (E5)",
    "fuel_sp95": "SP95 (E5)",
    "fuel_e85": "Superéthanol E85",
    "fuel_gplc": "GPLc",
    "radius": "Rayon",
    "sort": "Tri",
    "sort_price": "Prix croissant",
    "sort_distance": "Distance",
    "fresh_only": "Exclure les prix relevés il y a plus de {{days}} jours",
    "trip_hint": "Pour estimer le coût d'un trajet avec ce prix :",
    "trip_link": "calculateur de coût de trajet",
    "summary": "{{fuel}} dans un rayon de {{radius}} km autour de {{place}}",
    "cheapest": "Le moins cher",
    "average": "Prix moyen",
    "stations": "Stations",
    "no_result": "Aucune station ne publie ce carburant dans ce rayon : élargissez la zone ou incluez les prix plus anciens.",
    "truncated": "Seules les {{n}} stations les moins chères sont listées ; la moyenne porte sur elles.",
    "per_litre": "{{price}} €/L",
    "stale": "Prix ancien, peut-être plus à jour",
    "distance": "à {{km}} km à vol d'oiseau",
    "automat_24": "Automate 24 h/24",
    "shortage": "Rupture temporaire : {{list}}",
    "time_note": "Heures affichées telles que publiées (heure locale de la station). Le prix affiché à la pompe fait foi.",
    "source_name": "Ministère de l'Économie, prix des carburants (flux instantané)",
    "license": "Licence Ouverte 2.0",
    "default_place": "Lyon"
  },
  "accessible-color-palette-generator": {
    "accent_action": "Action accent",
    "accessible_design_system": "Design accessible & UI Design system",
    "accessible_wcag_color_palette_generator_aaa": "Générateur de palette accessible WCAG (contraste AAA/AA)",
    "analogous": "Analogue",
    "base_color": "Couleur racine",
    "complementary": "Complémentaire",
    "copied": "Copié !",
    "copy": "Copier",
    "generate_harmonic_ui_color_palettes_with": "Générez des palettes UI harmonieuses conformes aux normes d'accessibilité WCAG 2.1 avec prévisualisation en direct et export Tailwind.",
    "harmony": "Harmonie",
    "live_ui_component_preview": "Aperçu direct composants UI",
    "monochromatic": "Monochrome",
    "on_dark": "Sur sombre",
    "on_white": "Sur blanc",
    "primary_action": "Bouton principal",
    "random": "Aléatoire",
    "role_names": "Fond / surface,Primaire,Accent / action,Texte / sombre,Support / badge",
    "sample_typography_hierarchy_using_the_generated": "Exemple de paragraphe utilisant la hiérarchie de couleurs générée pour garantir un ratio de lecture optimal et une ergonomie sans fatigue visuelle.",
    "tailwind_css_config": "Configuration Tailwind CSS",
    "triadic": "Triadique",
    "warm_cool": "Chaud & froid",
    "wcag_fail": "Échec",
    "copy_hex_title": "Copier le code HEX",
    "version_pro": "Version 2.4 Pro",
    "aa_large": "AA grand texte"
  },
  "air-conditioner-btu-calculator": {
    "air_conditioner_btu_room_size_hvac": "Calculateur de puissance climatisation & BTU par surface de pièce",
    "calculate_the_required_cooling_capacity_in": "Calculez la puissance en BTU et en tonnes requise selon la superficie, hauteur sous plafond, ensoleillement et nombre d'occupants.",
    "ceiling_height": "Hauteur plafond",
    "compensates_for_ambient_stove_and_oven": "Ajoute 4 000 BTU pour compenser la chaleur des appareils.",
    "copied": "Copié !",
    "copy_ac_btu_sizing_summary": "Copier l'estimation BTU",
    "hvac_tonnage": "Tonnage HVAC équivalent",
    "moderate": "Normal",
    "number_of_occupants": "Occupants habituels",
    "recommended_ac_cooling_capacity": "Puissance climatiseur recommandée",
    "recommended_unit_form_factor": "Types de climatiseurs adaptés",
    "room_dimensions_layout": "Dimensions de la pièce",
    "room_is_a_kitchen_4_000": "Cuisine avec four / plaques de cuisson",
    "room_length": "Longueur de la pièce",
    "room_width": "Largeur de la pièce",
    "shaded_10": "Ombragé (-10%)",
    "sunlight_exposure": "Exposition au Soleil",
    "sunny_10": "Ensoleillé (+10%)",
    "target_unit_size": "Fourchette modèles",
    "total_room_area": "Superficie totale :",
    "meters_unit": "Mètres (m)",
    "window_ac_title": "Climatiseur de fenêtre ou Portable (Window / Portable AC)",
    "split_ac_desc": "Très haute efficacité énergétique (SEER 20+), idéal pour salon et grands espaces.",
    "multi_split_title": "Système Multi-Split ou Central Gainable (Central HVAC)",
    "multi_split_desc": "Recommandé pour grand appartement ou rez-de-chaussée complet.",
    "feet_unit": "Pieds (ft)",
    "window_ac_desc": "Parfait pour petite chambre ou bureau (110V standard, silencieux).",
    "split_ac_title": "Climatiseur Split Mural (Mini-Split Ductless)",
    "btu_per_hour": "BTU / h",
    "area_value": "{{ft}} pi² ({{m}} m²)",
    "tonnage_value": "{{value}} tonne(s)",
    "sun_shaded": "Ombragé",
    "sun_normal": "Normal",
    "sun_sunny": "Ensoleillé",
    "climate_mild": "Tempéré",
    "climate_moderate": "Modéré",
    "climate_hot": "Chaud",
    "yes_label": "Oui",
    "no_label": "Non",
    "copy_text": "Dimensionnement du climatiseur (BTU) :\n- Surface de la pièce : {{areaFt}} pi² ({{areaM}} m²)\n- Capacité de refroidissement recommandée : {{btu}} BTU/h\n- Équivalent en tonnage CVC : {{tons}} tonnes\n- Plage de puissance suggérée : {{min}} - {{max}} BTU\n- Facteurs d'environnement : Soleil ({{sun}}), Climat ({{climate}}), Occupants ({{occupants}}), Cuisine ({{kitchen}})"
  },
  "airline-baggage-weight-dimensions-calculator": {
    "1_luggage_measurements": "1. Dimensions de votre valise",
    "2_packing_weight_estimator": "2. Estimation du contenu emballé",
    "airline_baggage_weight_dimensions_calculator": "Calculateur poids & dimensions bagages compagnies aériennes",
    "airlines_charge_40_80_at_the": "Les compagnies aériennes facturent généralement des frais pour un bagage cabine non conforme ou refoulé en soute. Pensez à retirer {{v0}} kg ou porter vos vêtements les plus lourds sur vous.",
    "airport_gate_surcharge_risk": "Attention : Risque de surtaxe à la porte d’embarquement",
    "baggage_cabin": "Cabine",
    "baggage_hold": "Soute",
    "baggage_type": "Type de bagage",
    "baggage_underseat": "Sous le siège",
    "cabin_bag": "Valise cabine",
    "checked_23kg": "Soute (23kg)",
    "copy_summary": "✈️ Bagage {{v0}} ({{v1}})\n📏 Dimensions : {{v2}}×{{v3}}×{{v4}} cm ({{v5}})\n⚖️ Poids total : {{v6}} kg / {{v7}} kg max ({{v8}})",
    "depth_cm": "Épaisseur (cm)",
    "dimensions_fit_sizer": "Dimensions conformes au gabarit",
    "empty_suitcase_tare_weight_kg": "Poids de la valise vide (kg)",
    "exceeds_overhead_cabin_sizer_cm": "Dépasse le gabarit cabine ({{v0}}×{{v1}}×{{v2}} cm)",
    "exceeds_under_seat_sizer_cm": "Dépasse le gabarit sous siège ({{v0}}×{{v1}}×{{v2}} cm)",
    "heavy_jackets_1_2kg": "Vestes / manteaux (×{{v0}} kg)",
    "laptop_tech_kg": "PC / câbles / tech (kg)",
    "length_cm": "Longueur (cm)",
    "linear_total_cm_cm_max": "Somme des dimensions ({{v0}} cm) > {{v1}} cm max",
    "overweight_by_kg": "Excédent de +{{v0}} kg !",
    "pants_jeans_0_5kg": "Pantalons / jeans (×{{v0}} kg)",
    "personal_item": "Sous siège",
    "select_airline": "Sélectionnez votre compagnie aérienne",
    "shirts_tops_0_2kg": "T-shirts / chemises (×{{v0}} kg)",
    "shoes_pairs_0_9kg": "Paires de chaussures (×{{v0}} kg)",
    "status_compliant": "✅ Conforme",
    "status_excess_weight": "❌ Excédent de {{v0}} kg",
    "status_not_compliant": "❌ Non conforme",
    "toiletry_bag_kg": "Trousse de toilette (kg)",
    "verify_cabin_and_checked_bag_sizer": "Vérifiez la conformité de votre valise cabine ou soute et estimez le poids de vos affaires pour éviter les frais à l’aéroport.",
    "weight_within_baggage_limit": "Poids conforme autorisé",
    "width_cm": "Largeur (cm)",
    "checked_kg": "Soute ({{v0}} kg)"
  },
  "aspect-ratio-calculator": {
    "aspect_ratio": "Ratio d'aspect réduit :",
    "aspect_ratio_resolution_dimension_scaler_calculator": "Calculateur de ratio d'aspect, résolution vidéo & redimensionnement pixels",
    "aspect_ratio_settings": "Proportions & ratio d'aspect",
    "calculate_target_width_and_height_in": "Calculez la largeur ou hauteur en pixels pour conserver un ratio parfait (16:9, 9:16 Reels/TikTok, 4:3, 21:9 Ultrawide).",
    "copied": "Copié !",
    "copy_resolution_data": "Copier les dimensions",
    "height_px": "Hauteur (hauteur px)",
    "megapixels": "Mégapixels",
    "ratio_height_h": "Hauteur ratio (H)",
    "ratio_width_w": "Largeur ratio (W)",
    "scaled_resolution_output": "Résolution calculée",
    "standard_ratio_presets": "Formats prédéfinis standards",
    "target_dimensions_pixels": "Dimensions cibles (pixels)",
    "total_pixel_count": "Total pixels",
    "visual_proportion_preview": "Aperçu visuel des proportions",
    "width_px": "Largeur (largeur px)",
    "copy_text": "Ratio d'aspect et résolution :\n- Ratio d'aspect : {{ratio}} (décimal : {{decimal}})\n- Résolution calculée : {{width}} × {{height}} px\n- Nombre total de pixels : {{pixels}} px ({{mp}} MP)",
    "quick_square": "1080x1080 (Carré)"
  },
  "astrology-ascendant-calculator": {
    "1_birth_details": "1. Données de naissance",
    "1_your_rising_sign_in": "1. Votre ascendant {{v0}} (maison I) :",
    "2_your_sun_in": "2. Votre signe solaire {{v0}} (le cœur du thème) :",
    "3_your_moon_in": "3. Votre signe lunaire {{v0}} (le monde intérieur) :",
    "air_intellect_social": "Air (intellect & échange)",
    "astrological_synthesis": "Interprétation astrologique détaillée",
    "birth_date": "Date de naissance",
    "calculate_your_true_rising_sign_ascendant": "Estimez votre ascendant (maison I), votre signe solaire et lunaire ainsi que votre répartition élémentaire (feu, Terre, air, eau).",
    "core_identity_soul_purpose": "Le moi profond & vocation",
    "earth_grounded_pragmatic": "Terre (ancrage & matière)",
    "elemental_balance": "Répartition des 4 éléments",
    "emotional_nature_intuition": "Émotions secrètes & réactions",
    "exact_time_of_birth_crucial_for": "Heure exacte de naissance (indispensable pour l’ascendant)",
    "fire_drive_action": "Feu (action & passion)",
    "location_time_zone": "Lieu / fuseau horaire",
    "moon_sign": "Signe lunaire",
    "natal_chart_quick_calculator_sun_sign": "Calculateur de thème astral : Signe solaire, ascendant & signe lunaire",
    "outer_mask_life_approach": "Masque social & première impression",
    "rising_sign": "Ascendant (AC)",
    "ruled_by_your_rising_sign_colors": "Gouverné par {{v0}}, votre ascendant dicte votre allure physique, votre manière spontanée d’aborder les nouveaux départs et la façon dont les autres vous perçoivent au premier contact.",
    "sun_sign": "Signe solaire",
    "the_moon_dictates_your_emotional_sanctuary": "La Lune révèle vos besoins de sécurité affective et votre manière intime de gérer le stress et la vulnérabilité.",
    "this_is_your_core_self_your": "C’est le moteur central de votre vitalité et l’idéal vers lequel vous tendez au fil des années.",
    "water_empathy_emotion": "Eau (intuition & émotions)",
    "tz_france": "France / Belgique / Suisse / Allemagne / Espagne (UTC+1 / UTC+2)",
    "tz_uk": "Royaume-Uni / Portugal / Canaries (UTC+0)",
    "tz_na_east": "Canada / USA Est (UTC-5 / UTC-4)",
    "tz_na_west": "USA Ouest (UTC-8 / UTC-7)",
    "tz_other": "Autre / International (UTC standard)",
    "unknown_time": "Je ne connais pas mon heure de naissance",
    "asc_unknown": "Non calculable",
    "asc_unknown_hint": "Il faut l'heure de naissance",
    "moon_change_at": "Change de signe vers {{v0}} (± 15 min)",
    "no_time_summary": "Sans heure de naissance : Soleil en {{v0}}, Lune en {{v1}} toute la journée. L'ascendant ne peut pas être calculé.",
    "no_time_summary_change": "Sans heure de naissance : Soleil en {{v0}}, Lune en {{v1}} jusque vers {{v3}}, puis en {{v2}} (heure du fuseau choisi, à 15 minutes près). L'ascendant ne peut pas être calculé.",
    "asc_why_title": "1. Ascendant : l'heure de naissance est indispensable",
    "asc_why": "L'ascendant est le signe qui se lève à l'horizon est au moment de la naissance. Les douze signes s'y succèdent en 24 heures, soit un changement toutes les deux heures en moyenne (à Paris, de moins d'une heure pour le Bélier et les Poissons à 2 h 45 du Lion au Scorpion) : sans l'heure, on ne peut pas le déterminer. Il compte aussi pour 40 % de la répartition des éléments, qui n'est donc pas affichée.",
    "moon_before": "Naissance avant {{v0}}",
    "moon_after": "Naissance après {{v0}}",
    "venus_sign": "Signe de Vénus",
    "venus_hint": "Amour, goûts, manière d'aimer",
    "venus_change": "Vénus change de signe ce jour-là : l'heure de naissance tranche.",
    "saturn_return": "Retour de Saturne",
    "saturn_orb_label": "Orbe",
    "saturn_natal": "Saturne natal à {{v0}}",
    "saturn_first": "1er retour, à {{v0}} ans",
    "saturn_second": "2e retour, à {{v0}} ans",
    "saturn_passes": "Passage exact sur Saturne natal : {{v0}}",
    "saturn_orb_periods": "À moins de {{v0}}° : {{v1}}",
    "saturn_range": "du {{v0}} au {{v1}}",
    "saturn_note": "Dates en temps universel, à un ou deux jours près : la position calculée de Saturne s'écarte de 0,05° au plus des éphémérides JPL Horizons (1930-2100). Selon ses rétrogradations, Saturne passe une ou trois fois sur sa position natale."
  },
  "battery-power-bank-charge-time-calculator": {
    "65_budget_older": "65% (entrée de gamme / ancien)",
    "75_real_world_standard": "75% (moyenne réelle standard)",
    "85_premium_gan_power_bank": "85% (haut de gamme / GaN)",
    "battery_charge_time_power_bank_capacity": "Calculateur temps de charge batterie & capacité Power Bank",
    "calculate_real_charging_duration_with_li": "Estimez la durée exacte de recharge (courbe 0-80% vs 80-100%) et le nombre réel de charges fournies par une batterie externe.",
    "capacity_mah": "Capacité (mAh)",
    "charger_power_bank": "Chargeur & batterie externe",
    "charger_wattage_w": "Puissance chargeur (Watts)",
    "charging_analysis": "Résultats d’autonomie & charge",
    "charging_method": "Technologie de charge",
    "conversion_efficiency": "Rendement de conversion",
    "current": "Batterie actuelle (%)",
    "device_battery": "Appareil & batterie",
    "device_preset": "Modèle d’appareil",
    "e_g_10_000_or_20": "Ex: 10 000 ou 20 000 mAh",
    "e_g_20w_30w_65w": "Ex: 20W, 30W, 45W, 65W",
    "estimated_charge_time": "Temps de charge estimé",
    "full_0_100_charges": "charges complètes (0-100%)",
    "internal_cells_operate_at_3_7v": "Les cellules internes du Power Bank fonctionnent en 3.7V. Pour charger votre smartphone en USB-C (5V/9V), l'énergie est convertie avec une déperdition thermique de 20 à 30%. Une batterie de {{v0}} mAh restitue donc réellement ~{{v1}} mAh utiles.",
    "power_bank_charges": "Recharges Power Bank",
    "power_bank_size_mah": "Capacité Power Bank (mAh)",
    "qi_wireless_slower": "Induction sans fil qi (plus lent)",
    "target": "Cible visée (%)",
    "to_charge": "à recharger",
    "why_a_10_000_mah_power": "Pourquoi une batterie 10 000 mAh ne donne pas 2 charges de 5 000 mAh ?",
    "copy_summary": "Bilan Temps de Charge & Batterie:\n- Appareil : {{deviceCapacity}} mAh ({{current}}% vers {{target}}%)\n- Chargeur : {{wattage}}W ({{type}})\n- Durée estimée : {{duration}}\n- Rendement Power Bank ({{pbCapacity}} mAh) : ~{{effectivePb}} mAh utiles ({{fullCharges}} recharges complètes)",
    "usb_c_power_delivery_rapide": "USB-C Power Delivery (Rapide)",
    "usb_a_classique_5v_2a": "USB-A Classique (5V/2A)"
  },
  "best-posting-time-heatmap": {
    "base_sur_l_analyse_de_millions": "Basé sur l'analyse de millions d'interactions pour maximiser la rétention et l'engagement initial.",
    "carte_thermique_d_engagement_hebdomadaire": "Carte Thermique d'Engagement Hebdomadaire (24h / 7j)",
    "copier_le_planning": "Copier le planning",
    "copy_astuce_publiez_15_a_30": "💡 Astuce : Publiez 15 à 30 minutes avant le pic pour laisser l'algorithme distribuer le contenu dès la première vague.",
    "copy_creneaux_d_or_recommandes": "⏰ Créneaux d'or recommandés :",
    "copy_jours_les_plus_performants": "📅 Jours les plus performants : {{days}}",
    "copy_ligne_creneau": "{{n}}. {{day}} @ {{hour}} ({{boost}}) -> {{reason}}",
    "copy_titre_meilleurs_creneaux": "🎯 MEILLEURS CRÉNEAUX DE PUBLICATION ({{platform}})",
    "creneau_d_or_n": "Créneau d'Or #{{n}}",
    "day_fri": "Vendredi",
    "day_fri_short": "Ven",
    "day_mon": "Lundi",
    "day_mon_short": "Lun",
    "day_sat": "Samedi",
    "day_sat_short": "Sam",
    "day_sun": "Dimanche",
    "day_sun_short": "Dim",
    "day_thu": "Jeudi",
    "day_thu_short": "Jeu",
    "day_tue": "Mardi",
    "day_tue_short": "Mar",
    "day_wed": "Mercredi",
    "day_wed_short": "Mer",
    "faible": "Faible",
    "gen_z_etudiants_15_24_ans": "Gen Z / étudiants (15-24 ans)",
    "grand_public_b2c_18_45_ans": "Grand Public B2C (18-45 ans)",
    "heure_courte": "{{h}}h",
    "heures_affichees_en_heure_locale": "Heures affichées en heure locale de votre audience cible.",
    "instagram_reels_carrousels_stories": "📸 Instagram (Reels, Carrousels, Stories)",
    "jour": "Jour",
    "jour_a_h_score_d_engagement": "{{day}} à {{hour}}h00 : Score d'engagement {{score}}/100",
    "linkedin_b2b_personal_branding": "💼 LinkedIn (B2B & Personal Branding)",
    "matrice_thermique_des_meilleurs_heures": "Matrice thermique des meilleurs heures de publication",
    "ne_publiez_pas_exactement_a_l_heure": "Ne publiez pas exactement à l'heure pile du pic (ex: 18h00 pile) car des millions d'utilisateurs et de planificateurs automatiques saturent les serveurs. Visez <b>17h40 ou 17h45</b> pour que l'algorithme teste votre contenu sur les premiers utilisateurs actifs avant la vague maximale.",
    "parents_familles": "Parents & Familles",
    "pic_viral": "Pic Viral",
    "planning_copie": "Planning copié !",
    "plateforme_reseau_social": "Plateforme réseau social",
    "platform_instagram_best_hours": "7h-9h (réveil/transports), 12h-14h (pause déjeuner), 18h-21h (détente)",
    "platform_instagram_name": "Instagram (Reels, Posts, Stories)",
    "platform_instagram_slot_1_boost": "+48% de reach",
    "platform_instagram_slot_1_reason": "Pic mondial d'engagement sur les reels et stories en milieu de semaine.",
    "platform_instagram_slot_2_boost": "+55% de portée",
    "platform_instagram_slot_2_reason": "Transition week-end, fort temps d'écran de loisir et interactions.",
    "platform_instagram_slot_3_boost": "+42% de partages",
    "platform_instagram_slot_3_reason": "Dimanche soir cocooning, visionnage prolongé de vidéos longues et carrousels.",
    "platform_linkedin_best_hours": "7h30-8h30 (café pro), 11h45-13h30 (pause pro), 17h30-18h30 (fin de journée)",
    "platform_linkedin_name": "LinkedIn (B2B & Personal Branding)",
    "platform_linkedin_slot_1_boost": "+65% de visibilité réseau",
    "platform_linkedin_slot_1_reason": "Premier réflexe des décideurs et managers au début de journée.",
    "platform_linkedin_slot_2_boost": "+58% d'engagement / carrousels",
    "platform_linkedin_slot_2_reason": "Journée la plus productive pour les échanges et leads B2B qualifiés.",
    "platform_linkedin_slot_3_boost": "+45% de clics liens/profil",
    "platform_linkedin_slot_3_reason": "Consultation active lors des déjeuners et pauses professionnelles.",
    "platform_tiktok_best_hours": "6h-10h, 15h-18h (fin des cours/travail), 20h-23h (forte rétention nocturne)",
    "platform_tiktok_name": "TikTok (Algorithme For You)",
    "platform_tiktok_slot_1_boost": "+60% de propagation FYP",
    "platform_tiktok_slot_1_reason": "Temps de cycle de l'algorithme TikTok qui pousse la vidéo tout au long de la journée.",
    "platform_tiktok_slot_2_boost": "+52% de complétion vidéo",
    "platform_tiktok_slot_2_reason": "Pic d'utilisateurs actifs simultanés en scroll continu.",
    "platform_tiktok_slot_3_boost": "+45% de favoris/partages",
    "platform_tiktok_slot_3_reason": "Pic de consommation récréative des 15-35 ans.",
    "platform_twitter_best_hours": "8h-10h (veille info matinale), 12h-13h, 17h-19h (débats & flux live)",
    "platform_twitter_name": "X / Twitter (Actu & Threads)",
    "platform_twitter_slot_1_boost": "+40% de retweets / reposts",
    "platform_twitter_slot_1_reason": "Pic de lecture des threads et actualités sectorielles.",
    "platform_twitter_slot_2_boost": "+44% d'impressions",
    "platform_twitter_slot_2_reason": "Veille d'actualité lors de la pause déjeuner.",
    "platform_twitter_slot_3_boost": "+38% d'engagement",
    "platform_twitter_slot_3_reason": "Prise de parole hebdomadaire et résumés.",
    "platform_youtube_best_hours": "14h-16h en semaine (temps d'indexation avant le pic de 18h-22h), 9h-11h le week-end",
    "platform_youtube_name": "YouTube (vidéos longues & Shorts)",
    "platform_youtube_slot_1_boost": "+50% de visionnages week-end",
    "platform_youtube_slot_1_reason": "Permet à l'algorithme de traiter la vidéo en HD/4K et de la recommander le vendredi soir.",
    "platform_youtube_slot_2_boost": "+55% de temps de visionnage total",
    "platform_youtube_slot_2_reason": "Idéal pour les vidéos longues (>15 min) consommées le week-end.",
    "platform_youtube_slot_3_boost": "+48% de clics CTR",
    "platform_youtube_slot_3_reason": "Consommation continue avant la reprise du lundi.",
    "professionnels_dirigeants_salaries_b2b": "Professionnels, dirigeants & salariés B2B",
    "regle_de_synchronisation_algorithmique": "Règle de synchronisation algorithmique :",
    "tiktok_algorithme_for_you": "🎵 TikTok (Algorithme For You)",
    "type_d_audience_cible": "Type d'Audience Cible",
    "x_twitter_threads_actu": "𝕏 X / Twitter (Threads & Actu)",
    "youtube_videos_longues_shorts": "▶️ YouTube (vidéos longues & Shorts)"
  },
  "biorhythm-cycle-calculator": {
    "biorhythm_cycles_calculator_physical_23d_emotional": "Calculateur de biorythmes (cycles physique 23j, émotionnel 28j & intellectuel 33j)",
    "date_of_birth": "Date de naissance",
    "dates": "Dates de référence",
    "days_lived": "Âge biologique : {{v0}} jours vécus",
    "emotional": "Émotionnel (28j)",
    "intellectual": "Intellectuel (33j)",
    "physical": "Physique (23j)",
    "target_analysis_date": "Date d’analyse ciblée",
    "track_your_biological_emotional_and_cognitive": "Calculez la position de vos cycles physique (23 j), émotionnel (28 j) et intellectuel (33 j) à une date choisie, selon la théorie de Wilhelm Fliess.",
    "copy_summary": "Biorythmes: Physique {{physical}}% | Émotionnel {{emotional}}% | Intellectuel {{intellectual}}%",
    "desc_physical": "Vitalité & endurance",
    "desc_emotional": "Humeur & sensibilité",
    "desc_intellectual": "Clarté & Logique"
  },
  "blackjack-strategy-trainer": {
    "1_your_hand_type_total": "1. Type & valeur de votre main",
    "2_dealer_upcard": "2. Carte visible du croupier (upcard)",
    "action_double_down": "DOUBLER (Double Down)",
    "action_double_or_stand": "DOUBLER si permis, sinon RESTER",
    "action_hit": "TIRER (Hit)",
    "action_split": "SÉPARER (Split)",
    "action_split_or_hit": "SÉPARER si avantageux, sinon TIRER",
    "action_stand": "RESTER (Stand)",
    "blackjack_basic_strategy_table_decision_trainer": "Calculateur & tableau de stratégie de base Blackjack (tirer, rester, doubler, split)",
    "copy_summary": "Action blackjack : {{v0}} (main {{v1}} contre croupier {{v2}})",
    "dealer_upcard": "Carte du croupier",
    "determine_the_statistically_optimal_play_for": "Prenez la décision mathématiquement parfaite à chaque main selon le tableau de la stratégie de base pour réduire l’avantage du casino à moins de 0.5%.",
    "hard_total": "Main dure (hard)",
    "mathematically_optimal_play": "Action optimale mathématique",
    "pairs_split": "Paire (pair)",
    "soft_with_ace": "Main souple (soft as)",
    "tip_always_split_aces": "Séparez TOUJOURS la paire d’As pour créer deux mains à 11.",
    "tip_always_split_eights": "Séparez TOUJOURS la paire de 8 pour éviter un 16 bloqué.",
    "tip_dealer_busts_456": "Le croupier saute fréquemment avec 4, 5 ou 6.",
    "tip_dealer_strong_improve": "Le croupier a une carte forte (7+), vous devez améliorer votre score.",
    "tip_dealer_weak_let_draw": "Le croupier a une carte faible (bust probable), laissez-le tirer.",
    "tip_double_3456_else_stand": "Doublez contre 3, 4, 5, 6, sinon restez.",
    "tip_double_max_odds": "Doublez votre mise ! Les chances d’obtenir 21 ou 20 sont maximales.",
    "tip_double_no_bust_ace": "Doublez car vous ne risquez pas de brûler avec l’As.",
    "tip_double_under_10": "Doublez contre une carte du croupier inférieure à 10.",
    "tip_double_weak_zone": "Doublez contre la zone faible du croupier (3 à 6).",
    "tip_hit_9_10_ace": "Tirez contre 9, 10 ou As.",
    "tip_hit_dealer_10_ace": "Tirez car le croupier a 10 ou As.",
    "tip_hit_no_bust_risk": "Tirez sans risque de brûler.",
    "tip_hit_plain": "Tirez.",
    "tip_hit_strengthen": "Tirez pour renforcer votre main.",
    "tip_hit_to_reach_17": "Tirez pour tenter d’atteindre 17 ou plus.",
    "tip_hit_under_9": "Main inférieure à 9 : tirez systématiquement.",
    "tip_never_split_tens": "Ne séparez JAMAIS une paire de 10 (vous avez déjà 20 !).",
    "tip_soft_19_20_stand": "Soft 19 ou 20 est une excellente main, restez.",
    "tip_split_nines": "Séparez les 9 contre 2 à 6, 8 ou 9.",
    "tip_split_vs_weak": "Séparez contre les cartes faibles du croupier.",
    "tip_stand_7_10_ace": "Restez contre 7, 10 ou As.",
    "tip_stand_vs_7": "Restez contre le 7.",
    "tip_strong_hand_no_bust": "Vous avez une main forte, ne prenez pas le risque de brûler (bust).",
    "your_hand": "Votre main",
    "your_hand_total": "Total de vos cartes",
    "hand_soft_label": "As + {{extra}} (Soft {{total}})",
    "hand_pair_label": "Paire ({{half}} + {{half}})"
  },
  "book-reading-time-goal-calculator": {
    "1_book_details": "1. Dimensions du livre",
    "2_goal_planning_mode": "2. Mode de planification",
    "accelerated_speed_1_25x": "Vitesse accélérée (1.25x) :",
    "at_this_steady_pace_of_minutes": "À ce rythme régulier de {{v0}} minutes par jour, vous lirez environ {{v1}} livres similaires par an !",
    "audiobook_equivalent_duration": "Équivalent livre audio (audiobook)",
    "average_adult": "Moyen (standard)",
    "book_reading_time_wpm_speed_daily": "Calculateur de temps de lecture, vitesse PPM & objectifs de pages",
    "built_in_1_minute_reading_speed": "Testeur intégré de vitesse de lecture (1 min)",
    "by_reading_pages_min_daily": "En lisant {{v0}} pages ({{v1}} min) chaque jour.",
    "calculate_total_reading_hours_test_your": "Calculez le temps total pour finir votre livre, testez votre vitesse de lecture réelle en mots par minute (PPM), planifiez vos pages quotidiennes et comparez avec le livre audio.",
    "custom_speed_wpm": "Vitesse personnalisée (mots/min)",
    "daily_reading_time_minutes_day": "Temps de lecture quotidien (minutes / jour)",
    "en_us": "fr-FR",
    "fast_reader": "Rapide",
    "fast_speed_1_5x": "Vitesse rapide (1.5x) :",
    "finish_in_x_days": "Finir en X jours",
    "finished_on": "Livre terminé le :",
    "finished_reading": "J'ai terminé la lecture !",
    "i_read_x_minutes_day": "Je lis X minutes / jour",
    "page": "page",
    "reading_speed_words_per_minute_wpm": "Vitesse de lecture (mots par minute - PPM) :",
    "retest": "Refaire le test",
    "sample_test_text": "La lecture régulière stimule l’imagination, renforce les connexions neuronales et développe considérablement le vocabulaire. Lire vingt minutes chaque soir avant de dormir permet d’avancer d’environ un chapitre par jour, et de terminer un roman moyen en quelques semaines sans bouleverser son emploi du temps habituel. Les grands lecteurs développent une meilleure empathie cognitive et améliorent leur capacité de concentration prolongée dans un monde dominé par les notifications numériques et la dispersion attentionnelle continue. Chaque page tournée est une opportunité d’explorer un nouvel univers et d’apprendre des leçons de vie condensées par des auteurs après des années de réflexion critique. Prenez votre temps pour lire chaque phrase avec fluidité et attention.",
    "slow_study": "Lent / étude",
    "speed_reader": "Lecture rapide",
    "standard_speed_1_0x": "Vitesse normale (1.0x) :",
    "start_reading_test": "Démarrer le test de vitesse",
    "target_days_to_finish": "Objectif de jours pour finir le livre",
    "total_book_reading_time": "Durée totale estimée du livre",
    "total_hours": "heures au total",
    "total_pages": "Nombre total de pages",
    "words_per_page_250_300_standard": "Mots par page (~250-300 standard)",
    "yearly_reading_challenge": "Défi lecture annuel :",
    "your_measured_speed": "Votre vitesse mesurée :",
    "approx_minutes": "≈ {{min}} minutes ({{minPerPage}} min / {{page}})",
    "copy_plan": "Plan de Lecture pour livre de {{pages}} pages:\n- Temps total estimé : {{hours}}h ({{minutes}} min)\n- Vitesse de lecture : {{wpm}} mots/min\n- Objectif quotidien : {{dailyMin}} min ({{pagesPerDay}} pages/jour)\n- Date de fin estimée : {{finishDate}}\n- Équivalent livre audio 1.0x : {{audioHours}}h",
    "words_per_min_value": "{{value}} mots/min"
  },
  "chakra-balance-diagnostic": {
    "7_chakras_balance_test_energy_alignment": "Test d’harmonisation & bilan des 7 chakras (fréquences Solfeggio & conseils)",
    "assess_the_alignment_of_your_7": "Évaluez l’équilibre de vos 7 chakras selon la tradition : auto-évaluation de 1 à 5 par chakra, score d’harmonie en % et fréquences Solfeggio associées.",
    "chakra_to_harmonize": "Chakra prioritaire à harmoniser",
    "copy_summary": "Harmonie des chakras : {{v0}} % | À rééquilibrer : {{v1}} ({{v2}} Hz)",
    "energy_rebalancing_advised": "Besoin de réalignement et d’ancrage",
    "optimal_energy_flow": "Score d’harmonie élevé (≥ 75 %)",
    "overall_energetic_harmony": "Niveau global d’harmonie énergétique",
    "self_assessment_of_7_chakras_1": "Auto-évaluation de vos 7 chakras (1 = faible, 5 = épanoui)",
    "strongest_energy_center": "Votre centre énergétique fort",
    "frequence_hz": "Fréquence : {{hz}} Hz",
    "mantra_valeur": "Mantra : {{mantra}}",
    "mantra_silence": "SILENCE",
    "ecouter_hz": "Écouter : {{hz}} Hz"
  },
  "chinese-zodiac-element-calculator": {
    "1_birth_year_hour": "1. Année & heure de naissance",
    "birth_hour_0_23h": "Heure de naissance (0h à 23h)",
    "birth_year": "Année de naissance",
    "chinese_zodiac_animal_5_elements_calculator": "Calculateur de signe chinois & élément astral (12 animaux, 5 éléments & Yin/Yang)",
    "copy_summary": "Signe chinois : {{v0}} {{v1}}",
    "core_personality_traits": "Traits majeurs de caractère",
    "find_your_authentic_chinese_zodiac_sign": "Découvrez votre signe du zodiaque chinois, votre élément céleste (bois, feu, Terre, métal, eau), votre polarité Yin/Yang et votre animal d’heure secrète.",
    "secret_animal_hint": "(Révèle votre moi profond et vos motivations intimes)",
    "secret_hour_animal": "Animal d’heure secrète",
    "sign_with_element": "{{v0}} de {{v1}}",
    "yang": "Yang (actif & solaire)",
    "yin": "Yin (réceptif & lunaire)"
  },
  "coffee-brew-ratio-calculator": {
    "for_water": "pour {{ml}} ml d’eau",
    "1_calculation_mode": "1. Mode de calcul de la recette",
    "balanced_1_16": "Équilibré (1:16)",
    "bold_strong_1_14": "Corsé / intense (1:14)",
    "brew_ratio_1_x": "Ratio d’extraction (1 : X)",
    "brew_time": "Temps d’infusion",
    "by_coffee_dose": "Par café en grain",
    "by_cups": "Par tasses",
    "by_water_volume": "Par volume d’eau",
    "calculate_exact_coffee_dose_g_water": "Dose exacte de café (g), volume d’eau (ml), taille de mouture et étapes de coulée pour chaque méthode.",
    "coffee_beans_dose_on_scale_g": "Quantité de café en grains disponible (g)",
    "coffee_brew_ratio_barista_recipe_calculator": "Calculateur ratio café / eau & recettes barista",
    "copy_bloom_line": "🌸 Pré-infusion (bloom) : {{v0}} g pendant {{v1}} s",
    "copy_recipe": "☕ Recette {{v0}} (ratio 1:{{v1}})\n⚖️ Café moulu : {{v2}} g ({{v3}})\n💧 Eau totale : {{v4}} g/ml ({{v5}} °C)\n{{v6}}⏱️ Temps total : {{v7}}",
    "cup_size_ml": "Contenance tasse (ml)",
    "grind_size": "Mouture",
    "light_delicate_1_18": "Léger / subtil (1:18)",
    "number_of_cups": "Nombre de tasses",
    "pour_in_circles_to_saturate_coffee": "Versez en cercles pour saturer toute la mouture et laisser le CO₂ s’échapper (dégazage).",
    "pour_smoothly_in_gentle_spirals_from": "Versez avec un débit régulier en spirale du centre vers l’extérieur sans toucher les bords du filtre.",
    "step_by_step_pouring_schedule": "Protocole d’extraction pas à pas :",
    "target_water_volume_ml_g": "Volume total d’eau souhaité (ml / g)",
    "water_temp": "Température eau",
    "method_v60": "V60 / Pour-Over",
    "method_french_press": "French Press (Piston)",
    "method_espresso": "Espresso",
    "method_aeropress": "AeroPress",
    "method_cold_brew": "Cold Brew (Infusion à froid)",
    "method_chemex": "Chemex",
    "method_moka": "Cafetière italienne (Moka)",
    "bloom_step": "🌸 1. Pré-infusion (Bloom) : 0:00 ➔ 0:{{value}}",
    "water_grams": "{{value}} g d’eau",
    "main_pour_step": "2. Coulée principale",
    "first_pour_step": "1. Coulée",
    "up_to_grams": "Jusqu’à {{value}} g"
  },
  "college-gpa-calculator": {
    "add_course": "Ajouter une matière",
    "calculate_semester_unweighted_weighted_gpa_honors": "Calculez votre moyenne académique américaine (GPA 4.0 / 5.0 pondérée), crédits d'études et mentions d'excellence.",
    "copied": "Copié !",
    "copy_gpa_summary": "Copier le relevé de notes",
    "course_name": "Nom du cours",
    "credits": "Crédits",
    "credits_2": "Crédits",
    "good_standing": "Passable",
    "honors_standing": "Mention d'excellence (standing)",
    "include_prior_cumulative_gpa_credit_hours": "Inclure le GPA cumulatif des semestres précédents",
    "new_overall_cumulative_gpa": "Nouveau GPA cumulatif global",
    "prior_cumulative_gpa": "GPA cumulatif précédent",
    "prior_total_credits": "Total crédits précédents",
    "regular": "Standard",
    "semester_courses": "Matières du semestre",
    "semester_unweighted_gpa": "GPA du semestre (4.0)",
    "us_college_high_school_gpa_calculator": "Calculateur de GPA universitaire & scolaire US",
    "weighted_gpa": "Pondéré (AP/Honors)",
    "english_literature": "Littérature anglaise",
    "calculus_ii": "Analyse II",
    "organic_chemistry": "Chimie organique",
    "intro_to_psychology": "Introduction à la psychologie",
    "computer_science_lab": "Travaux pratiques d'informatique",
    "course_n": "Cours {{value}}",
    "summa_cum_laude": "Summa Cum Laude (mention très haute distinction)",
    "magna_cum_laude": "Magna Cum Laude (mention haute distinction)",
    "cum_laude": "Cum Laude",
    "copy_report": "Rapport de GPA universitaire américain :\n- GPA du semestre (non pondéré) : {{unweighted}} / 4.0\n- GPA du semestre (pondéré) : {{weighted}} / 5.0\n- Crédits du semestre : {{credits}}\n- GPA cumulé combiné : {{combined}}\n- Statut académique : {{standing}}",
    "x_total_credits": "({{value}} crédits au total)"
  },
  "crop-water-requirement-irrigation-calculator": {
    "1_crop_growth_stage": "1. Culture & stade phénologique",
    "2_weather_soil": "2. Météo & sol",
    "3_irrigation_system_pump": "3. Système d’arrosage & débit pompe",
    "awc_mm_m": "{{v0}} (RU: {{v1}} mm/m)",
    "calculate_crop_evapotranspiration_etc_soil_water": "Estimez les besoins en eau (ETc = ETP × Kc), la réserve facilement utilisable (RFU), le tour d’eau optimal et le volume de pompage.",
    "copy_summary": "Irrigation {{v0}} : ETc = {{v1}} mm/j – dose recommandée : {{v2}} mm ({{v3}} m³/ha) – tour d’eau tous les {{v4}} jours ({{v5}} h de pompage pour {{v6}} ha)",
    "crop_selection": "Culture",
    "crop_water_requirement_irrigation_sizing_calculator": "Calculateur d’irrigation & bilan hydrique des cultures",
    "crop_water_use_etc": "Consommation culture (ETc)",
    "daily_reference_etp_mm_day": "ETP journalière (mm/jour)",
    "days": "jours",
    "efficiency": "Efficience (%)",
    "fao_56_standard_method": "Méthode agronomique FAO-56 :",
    "field_area_ha": "Surface parcelle (ha)",
    "gross_water_dose": "Dose brute à apporter",
    "growth_stage_crop_coefficient_kc": "Stade de croissance (coefficient Kc)",
    "initial": "Début (levée)",
    "irrigation_interval": "Fréquence de passage (tour d’eau)",
    "irrigation_scheduling_balance": "Bilan hydrique & tour d’eau",
    "late_season": "Fin de cycle",
    "mid_season": "Plein dév. / floraison",
    "pump_flow_m_h": "Débit pompe (m³/h)",
    "pumping_time_for_whole_field": "Temps de pompage estimé (parcelle entière)",
    "raw_soil_mm": "RFU sol = {{v0}} mm",
    "recent_effective_rain_mm": "Pluie efficace des 7 derniers jours (mm)",
    "soil_texture_awc": "Texture du sol (réserve utile RU)",
    "total_field_volume": "Volume total par tour",
    "mm_j": "mm/j",
    "mm_jour": "mm/jour",
    "kc_x_etp_x_mm": "Kc = {{kc}} (ETP {{etp}} mm)",
    "x_heures": "{{value}} heures",
    "etc_mm_etp_kc_rfu_profondeur": "ETc (mm) = ETP × Kc | RFU = Profondeur racines × RU sol × 60%"
  },
  "crop-yield-seeding-rate-calculator": {
    "agricultural_seeding_rate_crop_yield_calculator": "Densité et dose de semis, rendement prévisionnel",
    "bag_dose": "Dose / sac",
    "calculate_exact_seeding_rate_kg_ha": "Calculez la densité de semis (grains/m²) et la dose en kg/ha ou en doses selon le PMG et la germination, l’espacement sur le rang en monograine, la dose d’un mélange de couverts et la récolte attendue.",
    "crop_market_price_tonne": "Prix de vente estimé (€/t)",
    "equal_to_bags_doses": "Soit {{v0}} doses / sacs",
    "expected_yield_qx_ha": "Rendement estimé (q/ha)",
    "field_area_ha": "Surface de la parcelle (ha)",
    "field_emergence_loss": "Pertes à la levée (%)",
    "field_seed_parameters": "Paramètres de la parcelle & semences",
    "forecast_harvest": "Récolte prévisionnelle",
    "germination_rate": "Faculté germinative (%)",
    "gross_revenue": "Chiffre d’affaires brut",
    "harvest_revenue_forecast": "Prévision de récolte & valorisation",
    "margin_over_seed": "Marge brute semences",
    "official_agronomic_formula": "Formule agronomique :",
    "packaging_unit": "Unité de conditionnement",
    "recommended_seeding_rate": "Dose de semis recommandée",
    "seed_cost": "Coût semences",
    "seed_price_unit": "Prix semence (€/dose ou €/100kg)",
    "seeding_rate_per_hectare": "Dose de semis par hectare",
    "seeds_sown_m": "grains semés/m²",
    "target_density_plants_m": "Densité visée (plantes/m²)",
    "tgw_thousand_grain_wt_g": "PMG - poids 1000 grains (g)",
    "total_seeds_required": "Total semences requises",
    "weight_100kg": "Poids (100 kg)",
    "copy_summary": "Semis {{crop}}: {{rate}} kg/ha ({{seeds}} grains/m²) - Total: {{kg}} kg / {{doses}} doses pour {{area}} ha",
    "x_tonnes": "{{value}} tonnes",
    "dose_kg_ha_densite_visee_germination": "Dose (kg/ha) = (Densité visée / (Germination × (1 - Pertes))) × PMG ÷ 100",
    "precision_title": "Semis monograine : écartements et grains/ha",
    "precision_intro": "Grains/ha = 100 000 000 ÷ (inter-rang en cm × espacement sur le rang en cm). Pour le maïs, le tournesol ou la betterave.",
    "row_spacing_cm": "Inter-rang (cm)",
    "in_row_spacing_cm": "Espacement sur le rang (cm)",
    "precision_seeds_ha": "Grains semés par hectare",
    "precision_seeds_detail": "Soit {{m2}} grains/m² et {{m}} grains par mètre de rang",
    "precision_spacing_for_calc": "Pour semer les {{seeds}} grains/ha calculés plus haut à {{row}} cm d’inter-rang, réglez un grain tous les {{spacing}} cm sur le rang.",
    "mix_title": "Mélange de couverts (CIPAN) : dose de chaque espèce",
    "mix_intro": "Dose de l’espèce dans le mélange = dose en pur × part dans le mélange. Les parts sont les rapports dose dans le mélange ÷ dose en pur : leur somme vaut 100 %. Exemple prérempli : fiche Terres Inovia 2024 (féverole, vesce velue, radis chinois et phacélie à 25 % chacune).",
    "mix_pure_rate": "Espèce {{n}} : dose en pur (kg/ha)",
    "mix_share": "Part",
    "mix_remove_species": "Retirer l’espèce {{n}}",
    "mix_add_species": "Ajouter une espèce",
    "mix_total": "Dose du mélange",
    "mix_total_field": "Soit {{kg}} kg de mélange pour {{area}} ha",
    "mix_share_sum": "Somme des parts (rapports de densité) : {{v}} %.",
    "mix_share_sum_low": "Sous 100 %, le couvert sera moins dense que chaque espèce semée en pur.",
    "mix_share_sum_high": "Au-dessus de 100 %, le mélange est surdosé par rapport aux doses en pur.",
    "yield_unit": "q/ha",
    "seeds_per_ha": "{{v}} grains/ha",
    "doses_per_ha": "{{v}} doses/ha",
    "enter_seed_price": "Saisissez votre prix de semence.",
    "enter_sale_price": "Saisissez votre prix de vente pour afficher le chiffre d’affaires et la marge.",
    "sale_price_source": "Prix indicatif français : cotation rendu port de septembre 2026 (La Dépêche, via Agreste). Remplacez-le par votre prix.",
    "pmg_table_title": "PMG de référence par culture : lots de semences testés en Allemagne (2011-2018)",
    "pmg_col_crop": "Culture",
    "pmg_col_range": "PMG du 5e au 95e centile (g)",
    "pmg_col_mean": "PMG moyen (g)",
    "pmg_table_note": "Plage où se situent 90 % des lots testés. Blé dur : lots d’hiver et de printemps réunis. Orge : orges à 2 et 6 rangs confondues, ce qui ne renseigne pas sur un escourgeon. Pois : la source ne donne qu’un pois fourrager, aucune ligne pour le pois protéagineux. Saisissez le PMG indiqué sur l’étiquette de votre lot.",
    "pmg_table_source": "Source : Heimbach, Journal für Kulturpflanzen 70(8), 2018, tableau 1 (Julius Kühn-Institut), vérifié le 28/10/2026."
  },
  "dice-odds-rpg-calculator": {
    "1_d20_check_d_d_5e": "1. Test D20 (D&D 5e / pathfinder / DC check)",
    "2_damage_dice_pool_nd6_nd8": "2. Pool de dés de dégâts (Nd6, Nd8, Nd10, Nd12)",
    "advantage_provides_an_average_statistical_bonus": "L'Avantage équivaut mathématiquement à un bonus passif de +3.32 sur la moyenne d'un d20 (la moyenne passe de 10.5 à 13.82) tout en réduisant le risque d'échec critique (nat 1) de 5% à seulement 0.25%.",
    "advantage_type": "Mode d’avantage",
    "calculate_exact_hit_rates_against_dc": "Calculez vos chances exactes de réussite au D20 (classe de difficulté DC, CA), avantage / désavantage, et pools de dés (Nd6, Nd8, Nd10).",
    "crit_rate": "Critique nat 20",
    "d20_check_settings": "Paramètres du jet de D20",
    "dice_count_n": "Nombre de dés (N)",
    "dice_pool_settings": "Paramètres du pool de dés",
    "die_type": "Type de dé",
    "expected_average_value": "Dégâts / valeur moyenne attendue",
    "failed": "❌ ÉCHEC DU JET",
    "flat_bonus": "Modificateur fixe",
    "fumble_rate": "Échec nat 1",
    "min_die_on_d20": "Dé minimum",
    "official_ttrpg_mechanics": "Rappel des règles officielles JDR",
    "roll_live_dice_physical_test": "Lancer les dés en direct (test physique)",
    "success": "✅ RÉUSSITE DU JET",
    "target_dc_or_armor_class_ac": "Degré de difficulté (DC) ou classe d’armure (CA)",
    "target_threshold": "Seuil cible de dégâts",
    "total_attack_skill_modifier_or": "Bonus / modificateur total (+ ou -)",
    "total_fail": "Échec total",
    "total_success_probability": "Probabilité de réussite totale",
    "ttrpg_dice_odds_probability_calculator_d": "Calculateur de probabilités de dés JDR (D&D 5e, d20, avantage & Dice pool)",
    "d8": "d8 (Octaèdre)",
    "d12": "d12 (Dodécaèdre)",
    "d20": "d20 (Icosaèdre)",
    "d4": "d4 (Pyramide)",
    "d6": "d6 (Standard)",
    "d10": "d10 (Dizaine)",
    "d100": "d100 (Pourcentage)",
    "coup_critique_nat_20": "⭐ COUP CRITIQUE (NAT 20) !",
    "echec_critique_nat_1": "💀 ÉCHEC CRITIQUE (NAT 1) !",
    "total_valeur": "Total : {{value}}",
    "des_liste": "(Dés: [{{rolls}}])",
    "dc_vs_bonus": "(DC {{dc}} vs Bonus {{bonus}})",
    "min_possible": "Min Possible",
    "moyenne": "Moyenne",
    "max_possible": "Max Possible"
  },
  "discount-sales-tax-calculator": {
    "1st_discount": "1ère remise (%)",
    "calculate_your_exact_out_of_pocket": "Calculez le prix final après remise initiale, coupon additionnel cumulable et taxe de vente locale (Sales Tax).",
    "copied": "Copié !",
    "copy_receipt_summary": "Copier le calcul du ticket",
    "double_discount_markdown_sales_tax_calculator": "Calculateur de soldes, double réduction & taxe de vente US",
    "extra_coupon": "Coupon extra (%)",
    "final_total_with_tax": "Prix total final TTC",
    "itemized_receipt_breakdown": "Ticket de caisse détaillé",
    "original_price": "Prix initial d'origine ($)",
    "original_price_2": "Prix d'origine",
    "price_discounts": "Prix & réductions",
    "primary_markdown": "Remise initiale",
    "sales_tax": "Montant taxe",
    "sales_tax_2": "Taxe de vente",
    "stacked_coupon": "Coupon additionnel",
    "state_local_sales_tax": "Taxe de vente de l'État / Sales Tax (%)",
    "subtotal_pre_tax": "Sous-Total avant taxe",
    "total_savings": "Économies réalisées :",
    "copy_summary": "Calcul de remise et de taxe de vente :\n- Prix d'origine : {{original}} $\n- Première remise ({{discount1Pct}} % de réduction) : -{{discount1}} $\n- Coupon supplémentaire ({{couponPct}} % de réduction) : -{{coupon}} $\n- Sous-total : {{subtotal}} $ (Total {{totalPct}} % de réduction, économie de {{saved}} $)\n- Taxe de vente ({{taxPct}} %) : +{{tax}} $\n=> PRIX FINAL À PAYER : {{final}} $"
  },
  "elo-rating-rank-calculator": {
    "1_player_ratings": "1. Classement des joueurs",
    "bronze_novice": "Bronze / débutant",
    "compute_official_elo_point_shifts_for": "Calculez les gains/pertes de points ELO selon la formule Elo et estimez vos probabilités de victoire face à n’importe quel adversaire.",
    "elo_rating_mmr_match_probability_calculator": "Calculateur ELO, MMR & probabilités de match (échecs, eSport, jeux compétitifs)",
    "gold_advanced": "Or / joueur confirmé",
    "grandmaster_top_0_1": "Niveau maître international (2400+)",
    "k_factor_scale": "Facteur de développement (K-Factor)",
    "master_grandmaster": "Maître (maître FIDE dès 2300)",
    "on_defeat": "En cas de défaite",
    "on_draw": "En cas de nulle",
    "on_victory": "En cas de victoire",
    "opponent": "Adversaire",
    "opponent_elo_mmr": "Score ELO de l’adversaire",
    "platinum_diamond_expert": "Platine / diamant / expert",
    "silver_intermediate": "Argent / intermédiaire",
    "your_elo_mmr": "Votre score ELO / MMR",
    "your_expected_win": "Vos chances estimées",
    "copy_summary": "Victoire : +{{winPoints}} Elo ({{newWin}}) | Nulle : {{drawPoints}} Elo ({{newDraw}}) | Défaite : {{lossPoints}} Elo ({{newLoss}}) | K = {{k}}",
    "k32_fide_echecs": "K=32 (générique)",
    "k20_esport_master": "K=20 (FIDE : sous 2400)",
    "k40_placements": "K=40 (FIDE : 30 premières parties, jeunes sous 2300)",
    "k10_fide": "K=10 (FIDE : 2400 atteint)",
    "k_custom": "Facteur K libre (1 à 100)",
    "new_rating": "Elo : {{value}}"
  },
  "enneagram-personality-quiz": {
    "center_label": "Centre : {{v0}}",
    "copy_summary": "Ennéagramme type {{v0}} : {{v1}} (ailes : {{v2}} ou {{v3}})",
    "core_fear": "Peur inconsciente",
    "core_motivation": "Quête fondamentale",
    "discover_your_core_enneagram_personality_type": "Explorez les 9 types de l’Ennéagramme, leurs centres d’intelligence (corps, cœur, tête), leurs peurs inconscientes et leurs ailes associées.",
    "enneagram_9_personality_types_wings_explorer": "Calculateur & explorateur des 9 profils de l’Ennéagramme (types & ailes)",
    "select_type": "Sélectionner un profil",
    "type_n": "Type {{value}}",
    "ailes_possibles": "Ailes possibles : <0>Type {{type}}w{{left}}</0> ou <0>Type {{type}}w{{right}}</0>"
  },
  "ev-tco-savings-calculator": {
    "1_annual_mileage_duration": "1. Utilisation & durée",
    "2_electric_vehicle_ev": "2. Véhicule électrique (VE)",
    "3_gas_diesel_baseline": "3. Véhicule thermique comparatif (Essence/Diesel)",
    "all_in_cost_per_km_ev": "Coût complet de revient au km (VE) :",
    "all_in_cost_per_km_gas": "Coût complet de revient au km (thermique) :",
    "annual_fuel_savings": "Économies d’énergie / an",
    "annual_mileage": "Kilométrage annuel parcouru",
    "average_consumption": "Consommation moyenne",
    "calculate_true_total_cost_of_ownership": "Calculez le coût global réel de possession : coût aux 100 km, recharge à domicile vs bornes rapides, économies d’entretien et rentabilité sur 3 à 8 ans.",
    "carbon_reduction": "Bilan environnemental & émissions",
    "driving_electric_prevents_approximately_tons_of": "En roulant en électrique, vous évitez environ {{v0}} tonnes de CO₂ par an dans l'atmosphère.",
    "eco_bonus_subsidies": "Coup de pouce VE / aides",
    "electric_ev": "Électrique (VE)",
    "ev_purchase_price": "Prix d’achat du véhicule",
    "ev_vs_gas_total_cost_of": "Simulateur TCO : Voiture électrique vs essence / diesel",
    "ev_wins": "⚡ VE gagnant",
    "fast_charger_rate": "Prix bornes rapides",
    "fuel_consumption": "Consommation de carburant",
    "fuel_cost_per_100_km_comparison": "Coût aux 100 km : Énergie & carburant",
    "fuel_price_liter": "Prix du carburant au litre",
    "gas_car_purchase_price": "Prix d’achat du véhicule thermique",
    "gas_wins": "Thermique",
    "gasoline_diesel": "Thermique",
    "home_charging_share": "Part recharge domicile (heures creuses)",
    "home_elec_rate": "Prix élec domicile (heures creuses)",
    "immediate": "Immédiat",
    "initial_payback_time": "Rentabilité surcoût à l’achat",
    "over_yrs": "sur {{v0}} ans",
    "ownership_horizon": "Durée de détention prévue",
    "registration_co2_tax": "Carte grise + malus CO2",
    "year_total_tco_net_savings": "Économies totales TCO sur {{v0}} ans",
    "years": "ans",
    "years_2": "ans",
    "km_par_an": "km/an",
    "montant_par_an": "{{amount}} / an",
    "car_presets": "Gabarits types :",
    "preset_compact": "Citadine (e-208 / R5)",
    "preset_sedan": "Berline (Model 3 / i4)",
    "preset_suv": "SUV (Model Y / Scénic)",
    "home_peak_share": "Part recharge domicile (heures pleines)",
    "fast_charging_share": "Part bornes rapides",
    "home_peak_rate": "Prix élec domicile (heures pleines)",
    "weighted_kwh_price": "Prix moyen de la recharge : {{v0}}/kWh (les parts sont ramenées à leur somme)",
    "diesel_consumption": "Consommation diesel",
    "diesel_price_liter": "Prix du diesel au litre",
    "diesel": "Diesel",
    "annual_savings_vs_diesel": "Économie d'énergie face au diesel :",
    "cumulative_energy_savings": "Économies d'énergie cumulées face au thermique"
  },
  "flight-compensation-eu261": {
    "aeroport_d_arrivee": "Aéroport d'arrivée",
    "aeroport_de_depart": "Aéroport de départ",
    "airport_ams": "Amsterdam (AMS)",
    "airport_ath": "Athènes (ATH)",
    "airport_bru": "Bruxelles (BRU)",
    "airport_cmn": "Casablanca (CMN)",
    "airport_dxb": "Dubaï (DXB)",
    "airport_fco": "Rome (FCO)",
    "airport_fra": "Francfort (FRA)",
    "airport_jfk": "New York (JFK)",
    "airport_lis": "Lisbonne (LIS)",
    "airport_lon": "Londres (LHR/LGW)",
    "airport_mad": "Madrid (MAD)",
    "airport_par": "Paris (CDG/ORY)",
    "airport_tyo": "Tokyo (HND/NRT)",
    "airport_yul": "Montréal (YUL)",
    "aucune_indemnite_legale_exigible": "Aucune indemnité légale exigible pour cette configuration",
    "bareme_applicable_x_x_km": "Barème applicable : <b>{{tier}}</b> ({{km}} km).",
    "calculez_jusqu_a_600_e_d_indemnisation": "Calculez jusqu'à 600 € d'indemnisation forfaitaire par passager pour vol retardé (+3h), annulé ou surbooké, plus vos frais annexes.",
    "cause_declaree": "Cause déclarée",
    "details_de_la_perturbation": "Détails de la Perturbation",
    "distance_orthodromique_calculee": "Distance orthodromique calculée :",
    "frais_engages_hotel_repas": "Frais engagés hôtel / repas (€)",
    "greve_du_controle_aerien_atc": "Grève du contrôle aérien (ATC)",
    "greve_du_personnel_de_la_compagnie": "Grève du personnel de la compagnie",
    "indemnite_totale_estimee_reglement": "Indemnité Totale Estimée (Règlement CE 261/2004)",
    "itineraire_vol": "Itinéraire & vol",
    "la_compagnie_aerienne_est_europeenne": "La compagnie aérienne est européenne (ex: Air France, Lufthansa, Ryanair, easyJet)",
    "la_panne_technique_ou_greve_interne": "La panne technique ou grève interne ne constitue pas une circonstance extraordinaire selon la jurisprudence de la CJUE.",
    "le_retard_est_inferieur_a_3_heures": "Le retard est inférieur à 3 heures ou l'annulation a été notifiée plus de 14 jours avant le départ.",
    "le_vol_part_hors_ue_et_la": "Le vol part hors UE et la compagnie n'est pas européenne : le règlement CE 261/2004 ne s'applique pas.",
    "meteo_exceptionnelle_tempete": "Météo exceptionnelle / Tempête",
    "meteo_extreme_ou_greve_du_controle": "Météo extrême ou grève du contrôle aérien constituent des circonstances extraordinaires exonératoires.",
    "nombre_de_passagers": "Nombre de passagers",
    "non_eligible_a_l_indemnisation_forfaitaire": "Non Éligible à l'indemnisation forfaitaire",
    "obligation_delai_de_prescription": "<b>Délai de prescription</b> : Jusqu'à 5 ans en France (2 ans au Royaume-Uni / Belgique).",
    "obligation_hebergement": "<b>Hébergement</b> : Nuit d'hôtel + navette aéroport si départ reporté au lendemain.",
    "obligation_prise_en_charge": "<b>Prise en charge</b> : Repas, boissons et 2 appels téléphoniques / emails gratuits.",
    "obligation_remboursement": "<b>Remboursement</b> : Possibilité d'exiger le remboursement intégral du billet si retard > 5h.",
    "obligations_d_assistance_de_la_compagnie": "Obligations d'assistance de la compagnie :",
    "panne_technique_materiel": "Panne technique / matériel",
    "preavis_d_annulation_recu_avant_le_depart": "Préavis d'annulation reçu avant le départ (jours)",
    "refus_d_embarquement_surbooking": "Refus d'embarquement (Surbooking)",
    "retard_a_l_arrivee_finale_heures": "Retard à l'arrivée finale (heures) : {{hours}}h",
    "simulateur_d_indemnite_vol_reglement": "Simulateur d'Indemnité Vol (Règlement Européen CE 261/2004)",
    "tier_vol_court_courrier": "Vol court courrier (≤ 1 500 km)",
    "tier_vol_intra_ue": "Vol intra-UE de plus de 1 500 km",
    "tier_vol_long_courrier": "Vol long courrier extra-UE (> 3 500 km)",
    "tier_vol_long_courrier_reduit": "Vol long courrier (> 3 500 km, retard 3h-4h : barème 50%)",
    "tier_vol_moyen_courrier": "Vol moyen courrier (1 500 à 3 500 km)",
    "type_d_incident": "Type d'incident",
    "vol_annule": "Vol annulé",
    "vol_eligible_a_l_indemnisation": "Vol Éligible à l'indemnisation",
    "vol_retarde_a_destination": "Vol retardé à destination",
    "x_e_par_passager_x_n_passagers": "<b>{{amount}} €</b> / passager × {{passengers}} passager(s) + {{expenses}} € de frais"
  },
  "flooring-tile-paint-renovation-calculator": {
    "1_coat": "1 couche (monocouche)",
    "1_perimeter_roll_specs": "1. Périmètre & rouleau",
    "1_room_tile_dimensions": "1. Dimensions de la pièce & carreaux",
    "1_room_wall_specs": "1. Dimensions de la pièce à peindre",
    "2_coats_recommended": "2 couches (standard)",
    "3_coats": "3 couches (couvrance forte)",
    "accurately_estimate_tile_boxes_with_cut": "Estimez précisément le nombre de cartons de carrelage (+ chutes), litres de peinture ou rouleaux de papier peint avec budget.",
    "box_size_m_box": "Conditionnement (m²/carton)",
    "boxes": "cartons",
    "ceiling_height_m": "Hauteur sous plafond (m)",
    "coverage_m_l": "Rendement (m²/L)",
    "cutting_details": "Détail de découpe :",
    "diagonal_15": "Diagonale (+15%)",
    "doors_subtracted": "Portes (déduites)",
    "each_roll_covers_linear_meters": "Chaque rouleau couvre {{v0}} m linéaire de mur.",
    "estimated_paint_budget": "Budget peinture estimé :",
    "estimated_tile_flooring_budget": "Budget carrelage / parquet estimé :",
    "estimated_wallpaper_budget": "Budget papier peint estimé :",
    "final_order_quantity": "Surface & commande finale",
    "flooring_tile_paint_wallpaper_renovation_calculator": "Calculateur peinture, carrelage, parquet & rénovation",
    "gross_with_waste": "Avec marge de chutes",
    "grout_mortar": "Mortier à joints",
    "height_m": "Hauteur (m)",
    "include_ceiling_in_paint_area": "Inclure le plafond dans la surface à peindre",
    "laying_pattern_cut_waste": "Type de pose (chutes de découpe)",
    "length_m": "Longueur (m)",
    "net_room_area": "Surface nette de la pièce",
    "number_of_coats": "Nombre de couches",
    "offset_12": "Décalée (+12%)",
    "paint_volume_to_buy": "Volume de peinture à acheter",
    "paint_walls_ceilings": "Peinture (murs & plafonds)",
    "pattern_match_margin": "Marge pour raccord de motifs (%)",
    "price_per_m": "Prix au m² (€)",
    "recommended_pot_sizes": "Format de pots conseillé :",
    "roll_length_m": "Longueur rouleau (m)",
    "roll_width_m": "Largeur rouleau (m)",
    "rolls": "rouleaux",
    "room_length_m": "Longueur pièce (m)",
    "room_width_m": "Largeur pièce (m)",
    "single_coat_area": "Surface totale (1 couche)",
    "straight_10": "Droite (+10%)",
    "strips_per_roll": "lés (bandes) entières par rouleau",
    "tile_adhesive_glue": "Mortier colle (sac)",
    "tile_length_cm": "Longueur carreau (cm)",
    "tile_width_cm": "Largeur carreau (cm)",
    "tiles_flooring": "Carrelage & parquet",
    "total_area_coats": "Surface totale ({{v0}} couches)",
    "wall_perimeter_to_cover_m": "Périmètre total des murs à tapisser (m)",
    "wallpaper": "Papier peint & tapisserie",
    "wallpaper_rolls_to_order": "Rouleaux à commander",
    "width_m": "Largeur (m)",
    "windows_subtracted": "Fenêtres (déduites)",
    "summary_flooring": "📐 Carrelage/Sol : {{net}} m² (avec chutes +{{waste}}%: {{gross}} m²)\n📦 À acheter : {{boxes}} cartons ({{purchased}} m² / {{tiles}} carreaux)\n🧪 Colle : ~{{glue}} kg | Joints : ~{{grout}} kg\n💰 Budget estimé : {{cost}} €",
    "summary_paint": "🎨 Peinture : Surface à peindre : {{area}} m² ({{coats}} couches)\n🪣 Volume nécessaire : {{liters}} L ({{pots10}} pots de 10L + {{pots25}} pots de {{small}}L)\n💰 Budget estimé : {{cost}} €",
    "summary_wallpaper": "📜 Papier Peint : Périmètre {{perimeter}}m (H={{height}}m)\n📦 Rouleaux à commander : {{rolls}} rouleaux ({{strips}} lés par rouleau)\n💰 Budget estimé : {{cost}} €",
    "plus_x_de_marge": "+{{value}}% de marge",
    "soit_x_sacs_de_25kg": "soit ~{{value}} sacs de 25kg",
    "soit_x_sacs_de_5kg": "soit ~{{value}} sacs de 5kg",
    "plus_10_marge": "(+10% marge)",
    "x_pot_de_10_litres": "{{value}} × pot de 10 Litres",
    "x_pot_de_2_5_litres": "{{value}} × pot de {{size}} Litres",
    "standard_0_53_m": "Standard: {{v0}} m",
    "standard_10_05_m": "Standard: {{v0}} m",
    "wall_porosity": "Support du mur",
    "porosity_normal": "Normal (déjà peint)",
    "porosity_smooth": "Lisse ou satiné (−5 %)",
    "porosity_porous": "Plâtre brut poreux (+20 %)",
    "paint_pot_size": "Taille des pots",
    "pot_mix_10_2_5": "Pots de 10 L + 2,5 L",
    "pot_size_liters": "Pots de {{value}} L",
    "x_pots_of_size": "{{value}} × pot de {{size}} litres",
    "summary_paint_single": "🎨 Peinture : Surface à peindre : {{area}} m² ({{coats}} couches)\n🪣 Volume nécessaire : {{liters}} L ({{pots}} pots de {{size}} L)\n💰 Budget estimé : {{cost}} €",
    "pattern_repeat_cm": "Raccord du motif (cm)",
    "pattern_repeat_hint": "Ajouté à chaque lé ; 0 pour un papier uni",
    "total_strips_needed": "{{value}} lés à poser au total"
  },
  "food-expiry-freezer-storage-guide": {
    "copy_summary": "Guide de conservation des aliments :\n- Aliment : {{v0}}\n- Réfrigérateur : {{v1}}-{{v2}} jours ({{v3}})\n- Congélateur : {{v4}}-{{v5}} mois\n- Conseil : {{v6}}",
    "days": "jours",
    "days_2": "jours",
    "exact_safe_shelf_life_in_refrigerator": "Durée indicative de conservation au réfrigérateur, durée maximale de congélation, règles de décongélation et sécurité alimentaire.",
    "food_expiry_freezer_storage_guide": "Guide & calculateur conservation aliments (frigo & congélateur)",
    "food_safety": "Norme hygiène",
    "golden_thawing_rule": "Règle d’or décongélation :",
    "in_freezer_0_f_18_c": "Au congélateur (-18°C)",
    "in_refrigerator_32_39_f": "Au réfrigérateur (0-4°C)",
    "months": "mois",
    "months_2": "mois",
    "never_refreeze_thawed_raw_food_unless": "Ne JAMAIS recongeler un aliment décongelé cru sans l’avoir préalablement cuit à cœur (+70°C). Décongeler toujours au frigo ou micro-ondes, jamais à température ambiante sur le plan de travail.",
    "not_recommended": "Non recommandé",
    "optimal_texture_flavor": "Conservation qualité optimale",
    "select_food_item": "Sélectionner l’aliment",
    "storage_guidelines_thawing_tips": "Conseils de conservation & dégustation",
    "range_min_max": "{{min}} à {{max}} {{unit}}"
  },
  "fps-monitor-refresh-rate-calculator": {
    "1_monitor_refresh_rate_hz": "1. Fréquence de votre écran (Hz)",
    "2_in_game_fps_generated": "2. Images par seconde en jeu (FPS)",
    "average_in_game_fps": "FPS moyens en jeu",
    "calculate_milliseconds_per_frame_visual_input": "Analysez le temps d’affichage par image (ms frame time), la fluidité perçue et le gain de réactivité de votre écran gamer (60Hz à 540Hz).",
    "frame_time_display_latency": "Temps d’affichage par image",
    "gpu_rendered_frame_time": "Frame time généré par le GPU",
    "latency_reduced_vs_60hz": "Gain de réactivité vs 60Hz",
    "monitor_refresh_rate_frame_time_calculator": "Calculateur de fréquence d’écran & frame time (Hz vs FPS, ms par image)",
    "refresh_rate_hz": "Fréquence de rafraîchissement (Hz)",
    "refresh_window_duration_at_hz": "intervalle entre chaque rafraîchissement d’image à {{v0}}Hz",
    "standard_refresh_rates": "Fréquences standards :",
    "at_fps": "à {{fps}} FPS",
    "copy_summary": "Écran {{hz}}Hz : {{monitorMs}} ms par image | GPU {{fps}} FPS : {{gpuMs}} ms"
  },
  "fps-sensitivity-calculator": {
    "1_source_game_current_setup": "1. Jeu source (votre réglage actuel)",
    "2_target_game_exact_conversion": "2. Jeu cible (conversion exacte)",
    "360_distance_cm": "Distance 360° (cm)",
    "360_distance_in": "Distance 360° (pouces)",
    "accurately_convert_mouse_sensitivity_between_games": "Convertissez précisément votre sensibilité entre CS2, Valorant, Apex, Overwatch, fortnite et calibrez votre mémoire musculaire.",
    "aim_profile": "Profil de visée :",
    "converted_target_sensitivity": "Sensibilité convertie cible",
    "extreme_consistency_for_long_range_clicks": "Stabilité extrême pour les snipers et tirs longue distance, mais nécessite de grands balayages physiques pour les 180°.",
    "fps_mouse_sensitivity_edpi_converter_cm": "Calculateur de sensibilité souris FPS & convertisseur eDPI (cm/360°)",
    "game": "Jeu",
    "ideal_for_tactical_shooters_like_valorant": "Parfait pour Valorant et CS2 (crosshair placement & micro-flicks). Nécessite un tapis de souris grand format (≥45x40 cm).",
    "in_game_sensitivity": "Sensibilité In-Game",
    "low_sens_arm_aiming_tactical": "Basse sensibilité (visée au bras / tactique)",
    "match_source_dpi": "Même DPI que la source",
    "medium_balanced_hybrid_arm_wrist": "Moyenne / équilibrée (hybride poignet + bras)",
    "mouse_dpi": "DPI souris",
    "multi_game_equivalencies_exact_360_match": "Équivalences Multi-Jeux (même distance 360°)",
    "pro_esports_player_presets": "Presets de joueurs professionnels",
    "quick_dpi": "DPI rapide :",
    "sens": "Sensibilité",
    "source_game": "Jeu d’origine",
    "suited_for_fast_movement_games_requires": "Idéal pour les jeux hyper dynamiques (fast tracking, quake, fortnite). Attention aux micro-ajustements et aux tensions musculaires.",
    "sync_dpi": "Synchroniser ({{v0}} DPI)",
    "target_edpi": "eDPI cible",
    "target_game": "Jeu de destination",
    "target_mouse_dpi": "DPI souris cible",
    "the_universal_sweet_spot_used_by": "Le sweet spot universel adopté par 65% des joueurs pros. Excellent compromis entre vitesse de 180° et précision chirurgicale.",
    "ultra_low_sens_full_arm": "Ultra basse sensibilité (bras entier)",
    "very_high_sens_pure_wrist": "Très haute sensibilité (poignet pur)"
  },
  "gacha-probability-calculator": {
    "1_game_pity_rules": "1. Jeu & système Gacha",
    "calculate_your_exact_chances_of_pulling": "Estimez vos chances d’obtenir votre personnage 5 étoiles selon votre pity actuelle, le 50/50 et votre stock de primo-gemmes.",
    "chance_for_any_5_star": "Chance d’avoir au moins un 5★",
    "current_pity_count": "Pity actuelle (In-Game)",
    "direct_pulls_tickets": "Vœux / tickets en stock",
    "featured_character_drop_chance": "Probabilité d’obtention du personnage vedette",
    "gacha_game": "Jeu Gacha",
    "gacha_pull_odds_pity_system_calculator": "Calculateur de pity Genshin : vœux, 50/50 et constellations (aussi Star Rail, WuWa)",
    "gacha_resource_optimization": "Recommandation stratégique de tirage",
    "hard_guarantee_requirement": "Pire cas absolu (garantie 100%)",
    "next_5_star_is_100_guaranteed": "Garantie 100% active (perdu le précédent 50/50)",
    "no_50_50_risk_for_next": "Aucun risque de perdre le 50/50",
    "pulls": "tirages",
    "pulls_2": "tirages",
    "pulls_3": "tirages",
    "pulls_4": "tirages",
    "pulls_required_for_5_star_drop": "Paliers statistiques pour 1er 5 étoiles",
    "safe_reserve_recommendation": "Budget de sécurité recommandé :",
    "saved_currency": "Monnaie Premium ({{v0}})",
    "soft_pity_activates_at_pull_heavily": "La mécanique de « soft pity » s’active dès le {{v0}}ᵉ tirage, augmentant drastiquement les chances jusqu'à atteindre un taux proche de 100% au {{v1}}ᵉ tirage.",
    "to_guarantee_your_character_even_with": "Pour garantir le personnage sans le moindre risque même en cas de 50/50 perdu, conservez un stock de {{v0}} {{v1}} ({{v2}} vœux).",
    "total_pulls_available": "tirages cumulés possibles",
    "prob_80_label": "80% Chance",
    "prob_99_label": "99% Sécurité",
    "monnaie_genshin": "Primo-gemmes / Jades Stellaires",
    "monnaie_wuwa": "Astrite",
    "monnaie_fgo": "Saint Quartz",
    "monnaie_bluearchive": "Pyroxènes",
    "monnaie_nikke": "Gemmes",
    "chance_50": "50% Chance",
    "monnaie_primogems": "Primo-gemmes",
    "monnaie_stellar_jade": "Jades stellaires",
    "genshin_banner": "Bannière",
    "banner_character": "Vœux événements de personnage",
    "banner_weapon": "Vœux événements d'arme (Epitomized Path)",
    "goal_constellation": "Objectif de constellation",
    "goal_refinement": "Objectif de raffinement",
    "copy_single": "1 exemplaire",
    "copies": "{{v0}} exemplaires",
    "intertwined_fates": "Pierres de la fatalité",
    "starglitter": "Astéries libres (5 = 1 vœu)",
    "banner_end_date": "Date de fin de la bannière (projection des gains)",
    "welkin_per_day": "Faveur de l'astre de la nuit (primo-gemmes/jour)",
    "welkin_hint": "90 par jour s'il est actif, sinon 0",
    "commissions_per_day": "Missions quotidiennes (primo-gemmes/jour)",
    "commissions_hint": "4 × 10 + 20 de bonus = 60",
    "wish_breakdown": "{{v0}} vœux : {{v1}} Pierres de la fatalité + {{v2}} en primo-gemmes (dont {{v4}} prévues sur {{v5}} jours) + {{v3}} en Astéries.",
    "fate_point_active": "Point de destin 1/1 (Epitomized Path)",
    "fate_point_note": "La prochaine arme 5★ sera celle que vous avez choisie",
    "radiance_option": "Capture de brillance : moyenne de 55 % (HoYoverse)",
    "radiance_note": "Décoché : 50/50 strict. Coché : 55 % à chaque 50/50, le taux consolidé publié par HoYoverse le 10/02/2025. C'est une approximation, car les règles exactes ne sont pas publiées.",
    "goal_chance": "Probabilité d'atteindre {{v0}}",
    "to_guarantee_goal": "Pour être sûr d'atteindre {{v3}} même dans le pire cas, prévoyez {{v0}} {{v1}} ({{v2}} vœux).",
    "strict_5050_option": "50/50 strict, sans Capture de brillance (Capturing Radiance)",
    "strict_5050_note": "Décoché (par défaut) : 55 % à chaque 50/50, la probabilité consolidée publiée par HoYoverse le 10/02/2025. C'est une approximation, car le fonctionnement exact du compteur n'est pas publié. Coché : 50 %, comme avant la version 5.0.",
    "model_radiance": "Modèle : avec Capture de brillance (Capturing Radiance), 55 % par 50/50",
    "model_strict": "Modèle : 50/50 strict",
    "no_soft_pity": "Pas de « soft pity » dans ce jeu : le taux reste de {{v0}} % pour un 5★ et de {{v2}} % pour le personnage vedette, jusqu’au {{v1}}ᵉ tirage qui l’assure (garantie ou échange de points).",
    "to_guarantee_featured": "Pour être sûr d’obtenir le personnage vedette, conservez un stock de {{v0}} {{v1}} ({{v2}} vœux)."
  },
  "game-storage-time-calculator": {
    "1_game_or_patch_size": "1. Taille du jeu ou de la MAJ",
    "2_download_speed": "2. Vitesse de connexion",
    "calculate_exact_game_download_duration_across": "Estimez avec précision le temps nécessaire pour télécharger et installer vos jeux vidéo selon votre connexion internet réelle (Mbps/Gbps).",
    "connection_types": "Types de connexions :",
    "estimated_download_time": "Temps de téléchargement estimé",
    "game_download_time_storage_calculator_steam": "Calculateur de temps de téléchargement & espace disque jeux (Steam, PS5, Xbox)",
    "game_size_gb": "Taille du jeu (Go)",
    "network_speed_mbps": "Débit réseau (Mbps)",
    "popular_games": "Jeux populaires :",
    "real_time_transfer_rate": "Vitesse de transfert réelle",
    "total_data_payload": "Volume total de données",
    "copy_summary": "Temps de téléchargement ({{size}} Go à {{speed}} Mbps): {{duration}}",
    "gta_estimated": "GTA V / GTA 6 (estimé)",
    "standard_patch": "Mise à jour / Patch standard",
    "duration_seconds": "{{value}} secondes",
    "unit_gb": "Go",
    "unit_mb": "Mo",
    "unit_mb_per_s": "Mo/s",
    "megabits_div_8": "({{speed}} Megabits/s ÷ 8)"
  },
  "gas-trip-cost-calculator": {
    "copied": "Copié !",
    "copy_trip_cost_split": "Copier le partage des frais",
    "cost_per_distance": "Coût moyen par distance",
    "currency": "Devise active :",
    "estimate_total_fuel_expenses_gallons_needed": "Calculez le budget essence total pour votre trajet, péages, consommation MPG et divisez équitablement entre passagers.",
    "estimated_carbon_footprint": "Empreinte carbone estimée",
    "fair_split_per_passenger": "Part par personne (partage)",
    "fuel_expense": "Budget carburant total",
    "fuel_needed": "Volume carburant requis",
    "itemized_travel_expenses": "Détail des dépenses de route",
    "one_way_trip_distance": "Distance aller simple",
    "passengers_splitting": "Nombre de passagers",
    "person": "personne",
    "road_trip_gas_cost_mileage_split": "Calculateur de coût de trajet, carburant & partage des frais",
    "round_trip_2x": "Aller-Retour",
    "total_trip_budget": "Coût total du trajet :",
    "trip_vehicle_details": "Paramètres du trajet",
    "metric_kml": "Métrique (Km/L)",
    "miles": "miles",
    "gallons": "gallons",
    "litres": "litres",
    "gallons_cap": "Gallons",
    "litres_cap": "Litres",
    "mile": "Mile",
    "round_trip": "Aller-retour",
    "one_way": "Aller simple",
    "us_miles_mpg": "US (Miles/MPG)",
    "consommation_mpg": "Consommation (MPG)",
    "conso_l_100km": "Conso (L/100km)",
    "prix_essence_x_gal": "Prix Essence ({{value}}/gal)",
    "prix_carburant_x_l": "Prix Carburant ({{value}}/L)",
    "tolls_one_way": "Péages d'autoroute, un sens",
    "tolls_round_trip_hint": "Doublé pour l'aller-retour : {{v0}}",
    "parking": "Parking",
    "tolls": "Péages",
    "driver_rides_free": "Le conducteur ne paie pas (seuls les passagers partagent les frais)",
    "split_driver_free": "Passagers qui paient : {{v0}} (conducteur exempté)",
    "include_wear": "Ajouter l'usure du véhicule (pneus, freins, entretien)",
    "wear_rate": "Usure par distance",
    "wear": "Usure du véhicule",
    "trip_name": "Nom du trajet (facultatif)",
    "share_preview": "Récapitulatif à partager",
    "share_title": "Coût du trajet en voiture",
    "share_title_named": "Coût du trajet : {{v0}}",
    "share_distance": "- Distance totale : {{v0}} {{v1}} ({{v2}})",
    "share_fuel": "- Carburant : {{v0}} {{v1}} ({{v2}})",
    "share_tolls": "- Péages : {{v0}}",
    "share_parking": "- Parking : {{v0}}",
    "share_wear": "- Usure du véhicule : {{v0}}",
    "share_total": "- Coût total : {{v0}} ({{v1}})",
    "share_split": "- Personnes qui paient : {{v0}}, conducteur compris\n- Part par personne : {{v1}}",
    "share_split_driver_free": "- Passagers qui paient : {{v0}}, conducteur exempté\n- Part par passager : {{v1}}",
    "tolls_manual_hint": "Saisissez le montant vous-même, d'après le tarif de la société d'autoroute : l'outil ne calcule pas d'itinéraire."
  },
  "golden-ratio-calculator": {
    "1_calculation_dimension": "1. Mode de calcul de proportion",
    "2_modular_typography_scale": "2. Échelle typographique modulaire (φ = 1.618)",
    "base_body_font_size": "Taille du texte courant de base (body base)",
    "calculate_major_61_8_and_minor": "Calculez instantanément les sections majeure (61.8%) et mineure (38.2%), générez des échelles typographiques harmonieuses et des proportions visuelles parfaites.",
    "css_grid_flexbox_snippet": "Code CSS pour grille & layout",
    "golden_ratio": "Harmonie divine",
    "golden_ratio_1_618_fibonacci_design": "Calculateur du nombre d’or (φ = 1.618) & Fibonacci",
    "golden_ratio_breakdown": "Décomposition de la proportion dorée",
    "major_a_61_8": "Majeur A (61.8%)",
    "major_part_a": "Part majeure (A)",
    "major_section_a": "Dimension majeure (A)",
    "minor_b_38_2": "Mineur B (38.2%)",
    "minor_part_b": "Part mineure (B)",
    "minor_section_b": "Dimension mineure (B)",
    "the_ratio_of_the_whole_to": "Le rapport du tout à la partie majeure est égal au rapport de la partie majeure à la mineure.",
    "total_a_b": "Total (A+B)",
    "total_dimension": "Dimension totale (A + B)",
    "total_size_a_b": "Dimension totale",
    "unit": "Unité",
    "part_a_x": "Partie A ({{value}}%)",
    "part_b_x": "Partie B ({{value}}%)",
    "level_display": "Titre d'affichage (H1 display)",
    "level_h1": "Titre H1",
    "level_h2": "Titre H2",
    "level_h3": "Titre H3",
    "level_lead": "Chapeau / sous-titre",
    "level_body": "Texte courant (p)",
    "level_caption": "Petit texte / légende"
  },
  "grocery-unit-price-compare-promo-calculator": {
    "2nd_item_at_discount": "Le 2ème à -50% ou -70%",
    "a_2nd_at_50_promotion_equals": "Une promotion 'le 2ème à -50%' équivaut en réalité à une réduction globale de seulement -25% sur vos 2 articles. Un lot '2+1 gratuit' correspond à -33.3% de remise globale.",
    "add_product": "Ajouter un produit",
    "best_value_winner": "Meilleure affaire économique :",
    "beware_of_big_family_packs": "Méfiez-vous des 'maxi formats'",
    "bulk_or_family_packs_are_not": "Contrairement à l'idée reçue, les grands formats familiaux ou emballages 'éco' sont parfois plus chers au kilo que le produit standard. Vérifiez toujours le prix ramené au kilo ou au litre.",
    "buy_2_get_1_free": "2 + 1 gratuit (lot)",
    "centiliters_cl": "Centilitres (cl)",
    "compare_actual_cost_per_kg_liter": "Comparez le coût réel au kilo ou au litre entre plusieurs formats, détectez les fausses promotions en magasin (lots, formats familiaux) et trouvez la vraie meilleure affaire.",
    "direct_discount": "Remise immédiate %",
    "discount": "% de réduction",
    "effective_cost": "Coût réel :",
    "family_bulk_pack_1_2_kg": "Maxi format familial (1.2 kg)",
    "grams_g": "Grammes (g)",
    "grocery_unit_price_promo_savings_comparator": "Comparateur de prix au kilo, au litre & vraies promotions",
    "items_to_compare": "Articles à comparer",
    "kilograms_kg": "Kilogrammes (kg)",
    "liters_l": "Litres (L)",
    "max_savings": "Économie max",
    "milliliters_ml": "Millilitres (ml)",
    "more_expensive": "plus cher",
    "multi_buy_promo_math": "Fausses promos 'le 2ème à -50%'",
    "no_promotion": "Aucune promotion",
    "off_2nd_item": "% sur le 2ème article",
    "pack_price": "Prix paquet ({{currency}})",
    "packs_count": "Nb de paquets",
    "per_100g_cl": "les 100g/cl",
    "pieces_doses": "Pièces / doses",
    "price_per": "Prix au",
    "product": "Produit",
    "promo_buy_2_get_1_free": "Promo lot 2+1 gratuit",
    "quantity": "Contenance",
    "remove": "Supprimer",
    "smart_shopping_shrinkflation_tips": "Astuce Anti-Arnaque & shrinkflation",
    "standard_pack_brand_a": "Format standard (marque A)",
    "store_promotion": "Promotion en magasin",
    "total_paid": "Total payé :",
    "unit": "pièce",
    "unit_2": "Unité",
    "winner": "Vainqueur",
    "copy_summary_title": "Comparatif Courses & Prix au Kilo:",
    "winner_label": "Vainqueur économique :",
    "ounces_oz": "Onces (oz)",
    "pounds_lbs": "Livres (lbs)",
    "copy_line": "- {{name}} : {{unitPrice}}/{{base}} (Total: {{total}} pour {{quantity}}{{unit}})",
    "copy_winner": "Vainqueur économique : {{name}} ({{unitPrice}}/{{base}})",
    "not_compared_other_unit": "Non comparé : unité différente du 1er article"
  },
  "heat-pump-savings-calculator": {
    "10_year_net_gain": "Gain net sur 10 ans",
    "1_current_heating_setup": "1. Votre système de chauffage actuel",
    "20_year_net_gain": "Gain net sur 20 ans",
    "2_heat_pump_specifications": "2. Caractéristiques de la pompe à chaleur (Air/Eau ou Air/Air)",
    "annual_heating_bill": "Facture de chauffage annuelle",
    "annual_heating_cost_comparison": "Comparatif annuel de coût de chauffage",
    "annual_maintenance_contract": "Entretien annuel estimé PAC",
    "calculate_annual_heating_energy_savings_government": "Estimez vos économies d’énergie annuelles, les aides de l’État (MaPrimeRénov’, CEE), le retour sur investissement (ROI) et votre réduction d’émissions de CO2.",
    "carbon_reduction_ecological_impact": "Impact écologique & bilan carbone",
    "co2_avoided_year": "CO2 évité par an",
    "current_heating_source": "Énergie actuelle utilisée",
    "current_system": "Système actuel :",
    "electric_baseboard": "Radiateurs électriques",
    "electricity_cost_kwh": "Prix du kWh d’électricité",
    "equivalent_trees_planted": "Équivalent arbres plantés",
    "estimated_annual_savings": "Économies annuelles estimées",
    "gross_installation_cost": "Coût total installation PAC (TTC)",
    "heat_pump_vs_boiler_savings_simulator": "Simulateur pompe à chaleur (PAC) vs chaudière",
    "heating_oil": "Fioul domestique",
    "home_living_area": "Surface du logement",
    "natural_gas": "Gaz naturel",
    "net_initial_investment": "Investissement net après aides",
    "payback_timeline": "Temps de retour sur inv. (ROI)",
    "seasonal_performance_scop": "Performance saisonnière (COP / SCOP)",
    "subsidies_grants_grants_rebates": "Aides financières (MaPrimeRénov’, CEE)",
    "trees_yr": "arbres / an",
    "with_heat_pump_elec_maint": "Avec pompe à chaleur (élec + entretien) :",
    "wood_pellets": "Granulés / bois",
    "year": "/ an",
    "years": "ans"
  },
  "home-energy-appliance-cost-calculator": {
    "add_a_custom_appliance": "Ajouter un appareil personnalisé",
    "add_to_my_estimate": "Ajouter à mon estimation",
    "appliance_name": "Nom de l’appareil",
    "average_monthly_cost": "Coût mensuel moyen",
    "calculate_the_true_electricity_bill_cost": "Calculez le coût réel en euros (€/an, €/mois, €/jour) et en kWh de tous vos appareils électriques ménagers.",
    "co_emitted_year": "de CO₂ émis / an",
    "co_footprint": "Empreinte carbone",
    "daily_average": "Coût quotidien",
    "days_year": "Jours / an",
    "delete": "Supprimer",
    "e_g_portable_ac": "ex: Climatiseur portable",
    "electricity_price_kwh": "Prix du kWh TTC (€/kWh)",
    "energy_yr": "Conso/an",
    "france_55_g_kwh_us_avg": "France: ~55 g/kWh | moyenne UE: ~280 g/kWh",
    "frequent_appliance_presets_click_to_add": "Bibliothèque d’appareils fréquents (cliquer pour ajouter)",
    "grid_carbon_intensity_g_co_kwh": "Facteur carbone sol (g CO₂/kWh)",
    "home_appliance_energy_bill_electricity_cost": "Calculateur de consommation électrique & facture d’énergie",
    "hours_day": "Heures / jour",
    "monthly": "Mensuel",
    "over_12_months": "sur 12 mensualités",
    "power_watts": "Puissance (Watts)",
    "standard_kwh_formula": "Formule standard kWh",
    "total_annual_cost": "Facture annuelle totale",
    "your_appliances": "Vos appareils en liste ({{v0}})",
    "summary_text": "Consommation électrique totale: {{kwh}} kWh/an ({{annual}} €/an soit {{monthly}} €/mois pour {{count}} appareils). Tarif: {{rate}}€/kWh.",
    "base_edf_0_2516": "Base EDF (0,2001 €)",
    "heures_creuses_0_2064": "Heures creuses (0,1589 €)",
    "formula_kwh": "kWh = (Puissance W × Heures/j × Jours/an) ÷ 1000",
    "kwh_per_year": "{{value}} kWh / an",
    "kwh_per_day": "{{value}} kWh / jour",
    "item_specs": "{{watts}} Watts • {{hours}}h/jour • {{days}} j/an",
    "eur_per_month_short": "{{value}} €/m",
    "per_year_co2": "/ an ({{value}} kg CO₂)",
    "standby_watts": "Veille (Watts)",
    "standby_hint": "Comptée sur le reste des 8 760 heures de l'année",
    "standby_cost_total": "dont veille : {{value}} € / an",
    "item_standby": "veille {{watts}} W ({{value}} €/an)"
  },
  "houseplant-watering-light-scheduler": {
    "1_select_your_houseplant": "1. Choisir votre plante",
    "2_pot_material_environment": "2. Environnement & type de pot",
    "air_humidity": "Humidité de l'air",
    "autumn_winter": "Automne / hiver (repos)",
    "bright_indirect_light": "Lumière vive indirecte (près d'une fenêtre voilée)",
    "calculate_customized_watering_intervals_and_light": "Calculez la fréquence d'arrosage exacte adaptée à votre plante, votre type de pot (terre cuite vs plastique), la température et la saison pour éviter le pourrissement des racines.",
    "copy_summary": "Planning d’entretien pour {{v0}} :\n- Fréquence d’arrosage : tous les {{v1}} jours\n- Prochain arrosage : {{v2}}\n- Type de pot : {{v3}} ({{v4}})\n- Conseils d’arrosage : {{v5}}\n- Note : {{v6}}",
    "current_season": "Saison actuelle",
    "direct_sunlight": "Plein soleil direct (Sud/Ouest)",
    "does_the_pot_have_drainage_holes": "Le pot possède-t-il des trous de drainage au fond ?",
    "dry_40_winter_heating": "Sec (<40% - chauffage / clim)",
    "en_us": "fr-FR",
    "estimated_next_watering_on": "Prochain arrosage estimé le :",
    "every_days": "Tous les {{v0}} jours",
    "expert_care_tip": "Conseil de spécialiste :",
    "glazed_ceramic_non_porous": "Céramique émaillée (non poreux)",
    "houseplant_watering_sunlight_care_scheduler": "Planificateur d'arrosage, lumière & entretien des plantes d'intérieur",
    "humid_60_bathroom": "Humide (>60% - salle de bain / véranda)",
    "ideal_light_exposure_for_this_plant": "Exposition lumineuse idéale pour cette plante.",
    "large": "Grand (>25cm)",
    "light_diagnostics": "Exposition & lumière",
    "low_light_shaded_room": "Faible luminosité / pièce sombre",
    "medium": "Moyen (15-22cm)",
    "medium_light": "Mi-ombre / lumière moyenne (2-3m d'une fenêtre)",
    "no_root_rot_risk": "Non (risque asphyxie)",
    "normal_40_60": "Normal (40-60%)",
    "personalized_plant_care_card": "Fiche d'entretien Sur-Mesure",
    "plastic_pot_retains_moisture": "Plastique standard (garde l'humidité)",
    "pot_material": "Matériau du pot",
    "pot_size": "Taille du pot",
    "recommended_watering_frequency": "Fréquence d'arrosage recommandée",
    "room_temperature_c": "Température pièce (°C)",
    "small": "Petit (<12cm)",
    "spring_summer": "Printemps / été (croissance)",
    "sunlight_exposure": "Exposition lumineuse",
    "terracotta_clay_breathable_dries_fast": "Terre cuite non émaillée (très respirant)",
    "too_dark_growth_will_stall_and": "Luminosité insuffisante : croissance ralentie et perte de panachures.",
    "warning_direct_sunlight_will_scorch_leaves": "Attention : le soleil direct direct brûlera le feuillage. Filtrez avec un voilage.",
    "warning_this_plant_requires_direct_sunlight": "Attention : cette plante réclame du plein soleil direct pour ne pas s'étioler.",
    "watering_technique": "Technique d'arrosage recommandée :",
    "yes_recommended": "Oui (recommandé)"
  },
  "intermittent-fasting-window-calculator": {
    "2_to_2_5l_day": "(min. 2 à 2.5L / jour)",
    "black_coffee": "Café noir pur",
    "boosts_autophagy": "(sans sucre ni lait)",
    "calculate_schedule_from": "Votre point de repère :",
    "calculate_your_exact_eating_and_fasting": "Calculez vos horaires optimaux (16/8, 18/6, 20/4, OMAD) et visualisez les étapes métaboliques (cétose, autophagie).",
    "copy_summary": "⏰ Planning jeûne intermittent {{v0}}\n🍽️ Fenêtre de repas : de {{v1}} à {{v2}} ({{v3}} h)\n🛑 Période de jeûne : de {{v4}} à {{v5}} ({{v6}} h)\n💧 Boissons autorisées : eau, thé vert, café noir sans sucre, infusions, eau avec une pincée de sel.",
    "eat": "repas",
    "eating_window": "Fenêtre d’alimentation",
    "eating_window_2": "d’alimentation (2 repas conseillés)",
    "electrolytes_sea_salt": "Électrolytes & sel marin",
    "fast": "jeûne",
    "fasting_window": "Période de jeûne",
    "first_meal_time": "Début du 1er repas (déjeuner)",
    "green_tea_herbal_infusions": "Thé vert & infusions",
    "hydration_during_fasting": "Boissons & hydratation pendant le jeûne",
    "intermittent_fasting_eating_window_calculator": "Calculateur de jeûne intermittent & fenêtres de repas",
    "last_meal_end_time": "Fin du dernier repas (dîner)",
    "metabolic_milestones_timeline": "Chronologie indicative des étapes métaboliques",
    "mineral_or_sparkling_water": "Eau minérale ou gazeuse",
    "no_sugar_milk_or_creamer": "(sans sucre, sans lait, sans édulcorant)",
    "pinch_of_pink_salt_prevents_fatigue": "(une pincée de sel contre le mal de tête)",
    "pure_fast": "de jeûne complet",
    "reference_meal_time": "Configuration de l’heure de départ",
    "time_you_finish_eating_tonight": "Heure de fin de votre dernier repas :",
    "time_you_want_to_break_fast": "Heure où vous souhaitez rompre le jeûne :",
    "your_daily_fasting_schedule": "Vos plages horaires quotidiennes",
    "protocol_18_6_name": "18/6 (intermédiaire+)",
    "protocol_14_10_name": "14/10 (circadien Débutant)",
    "difficulty_easy": "Facile",
    "difficulty_intermediate": "Intermédiaire",
    "difficulty_advanced": "Avancé",
    "difficulty_expert": "Expert",
    "weekly_protocols": "Protocoles hebdomadaires",
    "weekly_adf_name": "Jour sur deux",
    "weekly_5_2_short": "2 j de restriction / 5 j normaux",
    "weekly_adf_short": "1 j de jeûne / 1 j normal",
    "weekly_planning_title": "Votre planning de la semaine",
    "weekly_first_day": "Premier jour de jeûne",
    "weekly_week_n": "Semaine {{v0}}",
    "weekly_day_restricted": "Restriction",
    "weekly_day_fast": "Jeûne",
    "weekly_day_normal": "Normal",
    "weekly_5_2_desc": "5:2 : deux jours par semaine à apport très réduit (environ 2 710 kJ, soit 650 kcal par jour, dans l'essai de Harvie et al., 2011, mené chez des femmes) et cinq jours d'alimentation habituelle. L'outil place le second jour trois jours après le premier ; choisissez le premier jour dans la liste.",
    "weekly_adf_desc": "Jour sur deux : un jour de jeûne (0 à 500 kcal dans les protocoles étudiés, d'après la revue de Varady et al., 2022) alterne avec un jour d'alimentation habituelle. Une semaine compte 7 jours : le planning couvre donc 14 jours, et la deuxième semaine commence par un jour normal.",
    "answer_table_title": "À quelle heure manger le lendemain selon l'heure du dîner",
    "answer_table_lead": "Heure du premier repas le lendemain pour un dîner terminé à l'heure indiquée. En 16:8, un dîner fini à 20:00 donne un premier repas à {{v0}} ; en 18:6, à {{v1}}.",
    "answer_table_protocol": "Protocole",
    "answer_table_dinner": "Dîner fini à {{v0}}",
    "contra_title": "Qui ne doit pas jeûner sans avis médical",
    "contra_lead": "Le jeûne intermittent ne convient pas à tout le monde. Ne commencez pas sans en parler à votre médecin dans les cas suivants :",
    "contra_pregnancy": "Grossesse ou allaitement.",
    "contra_diabetes": "Diabète traité par insuline ou par un médicament qui fait baisser la glycémie : dans un essai chez des diabétiques de type 2, le jeûne a doublé le taux d'hypoglycémies malgré la baisse des doses (Corley et al., 2018).",
    "contra_eating_disorders": "Troubles du comportement alimentaire, actuels ou passés (anorexie, boulimie, hyperphagie).",
    "contra_minors": "Moins de 18 ans : enfants et adolescents en croissance.",
    "contra_medication": "Médicament à prendre pendant un repas ou à heure fixe : demandez à votre médecin ou à votre pharmacien comment adapter les prises.",
    "contra_sources": "Sources : ANSES, avis du 6 mars 2024 ; Corley et al., Diabetic Medicine, 2018 ; Vasim et al., Nutrients, 2022. Détails et liens dans la documentation de l'outil."
  },
  "international-shoe-clothing-size-converter": {
    "bust": "Tour de poitrine",
    "chest_cm": "Tour de poitrine (cm)",
    "chest_in": "Tour de poitrine (pouces)",
    "consider_0_5_to_1_size": "Prendre 1/2 à 1 taille au-dessus pour le running.",
    "convert_instantly_between_eu_us_uk": "Convertissez instantanément vos pointures de chaussures et tailles de vêtements (hommes, femmes, jeans, hauts) entre les normes européennes, américaines, britanniques et japonaises.",
    "converted_equivalents_for_eu": "Équivalences pour la pointure EU",
    "foot_length": "Longueur pied",
    "french_pant_equivalent": "Équivalent pantalon français :",
    "international_shoe_clothing_size_converter_eu": "Convertisseur international de tailles : Chaussures & vêtements (EU, US, UK, JP, CM)",
    "jeans_pants_w_l": "Jeans & pantalons (W/L)",
    "jeans_us_waist_w_to_fr": "Convertisseur jeans US waist (W) vers taille pantalon FR",
    "men_s_tops_shirts_suits_sizing": "Tableau de correspondance hauts, chemises & costumes homme",
    "men_s_tops_suits": "Hauts & costumes homme",
    "men_unisex": "Modèle homme / mixte",
    "select_your_eu_shoe_size": "Sélectionner votre pointure EU",
    "shoe_sizes": "Pointures chaussures",
    "size": "Taille",
    "sneaker_brand_fit_advice": "Astuces selon les marques de baskets",
    "standard_rule_fr_size_us_waist": "Règle de conversion standard : Taille FR = taille US waist + 10.",
    "tends_to_run_0_5_size": "Selon les retours d'usage, taillent souvent un demi-pointure plus petit (+0.5 EU conseillé).",
    "true_to_size": "Selon les retours d'usage, taillent fidèlement à la pointure normale (true to size).",
    "us_waist_size_e_g_w30": "Taille US waist (ex: W30, W32, W34)",
    "waist": "Tour de taille",
    "women": "Modèle femme",
    "women_s_dresses_outerwear_sizing_chart": "Tableau de correspondance robes, chemisiers & manteaux femme",
    "women_s_dresses_tops": "Robes & hauts femme",
    "us_men": "US Hommes",
    "us_women": "US Femmes",
    "copy_shoe": "Pointure EU {{eu}} :\n- {{usLabel}} : {{us}}\n- UK : {{uk}}\n- JP / Longueur cm : {{cm}} cm ({{inches}} pouces)",
    "alpha": "Alpha",
    "france_eu": "France / EU",
    "italie_it": "Italie (IT)"
  },
  "json-diff-compare-tool": {
    "added": "Ajouts (+)",
    "all": "Tous",
    "changes": "Différences :",
    "compare_two_json_objects_side_by": "Comparez deux structures JSON en temps réel, identifiez instantanément les clés ajoutées, supprimées ou modifiées avec mise en forme automatique.",
    "detailed_structural_diff": "Détail des différences détectées",
    "empty_json": "JSON vide",
    "empty_json_2": "JSON vide",
    "format_json": "Formater / prettify",
    "left_value": "Valeur A (originale) :",
    "modified": "Modifications (~)",
    "modified_json_right_b": "JSON modifié (droite / B)",
    "no_differences_found_both_json_objects": "Aucune différence trouvée, les deux JSON sont strictement identiques !",
    "original_json_left_a": "JSON original (gauche / A)",
    "paste_left_json_here": "Collez votre premier JSON ici...",
    "paste_right_json_here": "Collez votre second JSON ici...",
    "please_fix_syntax_errors_to_view": "Corrigez les erreurs de syntaxe JSON pour voir le comparatif.",
    "removed": "Suppressions (-)",
    "right_value": "Valeur B (nouvelle) :",
    "smart_json_diff_comparison_tool": "Comparateur & diff JSON intelligent (structure & valeurs)",
    "swap_sides": "Intervertir gauche / droite",
    "valid": "Valide",
    "valid_2": "Valide"
  },
  "kitchen-cooking-measurement-converter": {
    "1_select_ingredient_amount": "1. Choisissez l’ingrédient & la quantité",
    "200g_flour_g_3_eggs_eggs": "• 200g de farine ➔ {{v0}}g\n• 3 œufs ➔ {{v1}} œufs\n• 100g de sucre ➔ {{v2}}g",
    "amount": "Quantité",
    "cake_pan_resizer": "Redimensionner un moule à gâteau",
    "convert_cups_to_grams_with_exact": "Convertissez cups / grammes / cuillères selon la densité des aliments et ajustez vos recettes à la taille de votre moule.",
    "copy_ingredient": "🥣 Conversion cuisine : {{v0}}\n👉 {{v1}} {{v2}} = {{v3}} g | {{v4}} cups | {{v5}} c. à soupe | {{v6}} oz",
    "copy_oven": "🔥 Température du four : {{v0}} °C = {{v1}} °F = thermostat {{v2}}",
    "copy_pan_scaler": "🍰 Ajustement du moule à gâteau : multipliez tous les ingrédients de la recette par ×{{v0}} ({{v1}})",
    "culinary_ingredient": "Ingrédient culinaire",
    "cups_to_grams_converter": "Convertisseur ingrédients (cups / g)",
    "cups_us": "Cups (tasses US)",
    "cups_us_2": "Tasses (cups US)",
    "density_1_cup_grams": "Densité de cet ingrédient : 1 cup = {{v0}} grammes.",
    "diameter_cm": "Diamètre (cm)",
    "diameter_cm_2": "Diamètre (cm)",
    "grams_g": "Grammes (g)",
    "kitchen_cooking_measurement_recipe_scaler": "Convertisseur ingrédients cuisine, tasses, grammes & moules",
    "length_cm": "Longueur (cm)",
    "length_cm_2": "Longueur (cm)",
    "milliliters_ml": "Millilitres (ml)",
    "original_pan_area": "Surface moule initial",
    "original_recipe_pan": "Moule initial (de la recette)",
    "ounces_oz": "Onces (oz)",
    "ounces_oz_2": "Onces (oz)",
    "oven_temperature_converter": "Températures Four & thermostats",
    "oven_temperature_converter_2": "Convertisseur de températures de cuisson",
    "recipe_scaling_factor": "Facteur multiplicateur de recette",
    "rectangular": "Rectangulaire",
    "rectangular_2": "Rectangulaire",
    "round": "Rond",
    "round_2": "Rond",
    "scaling_example": "Exemple de mise à l’échelle :",
    "side_length_cm": "Côté (cm)",
    "side_length_cm_2": "Côté (cm)",
    "source_unit": "Unité de départ",
    "square": "Carré",
    "square_2": "Carré",
    "tablespoons": "Cuillères à soupe",
    "tablespoons_tbsp": "Cuillères à soupe (tbsp)",
    "target_pan_area": "Surface nouveau moule",
    "teaspoons": "Cuillères à café",
    "teaspoons_tsp": "Cuillères à café (tsp)",
    "temperature_in_celsius_c": "Température en degrés celsius (°C)",
    "volume_ml": "Volume (ml)",
    "width_cm": "Largeur (cm)",
    "width_cm_2": "Largeur (cm)",
    "your_target_cake_pan": "Votre nouveau moule (cible)",
    "egal_x_cups": "(= {{value}} cups)",
    "thermostat_france_gas_mark": "Thermostat (France / Gas Mark)",
    "unit_fl_oz": "Onces liquides (fl oz)",
    "unit_sticks": "Sticks de beurre",
    "tile_fl_oz": "Onces liquides",
    "x_sticks": "{{value}} sticks",
    "baking_description": "Type de cuisson :",
    "very_low_slow_cook": "Four très doux / séchage",
    "low_custards_slow_bake": "Four doux (gâteaux moelleux)",
    "moderate_standard_baking": "Four moyen (standard Cookies/Tartes)",
    "hot_roasting_bread": "Four chaud (Rôtis/Pain)",
    "very_hot_pizza_searing": "Four très chaud (Pizza/Gratin)",
    "tile_butter_sticks": "Beurre (Sticks)",
    "temperature_in_fahrenheit_f": "Température en degrés fahrenheit (°F)",
    "fan_oven": "Chaleur tournante (−20 °C)"
  },
  "lighting-lumens-kelvin-lux-calculator": {
    "bathroom_400_lux": "Salle de bain (400 lux)",
    "bedroom_150_lux": "Chambre à coucher (150 lux)",
    "bulb_technology": "Technologie d'ampoule",
    "calculate_required_room_lumens_lux_standards": "Calculez le flux lumineux total (lumens), la puissance LED (Watts) et la température de couleur idéale selon l’usage de la pièce.",
    "ceiling_height_m": "Hauteur plafond (m)",
    "cfl_compact_55_lm_w": "Fluocompacte (~55 lm/W)",
    "dark_wood_35_lumens": "Sombres / bois (+35% lumens)",
    "fixture": "ampoule",
    "hallway_corridor_100_lux": "Couloir / escalier (100 lux)",
    "halogen_15_lm_w": "Halogène (~15 lm/W - gourmand)",
    "home_office_desk_500_lux": "Bureau / télétravail (500 lux)",
    "ideal_color_temperature": "Température de couleur idéale",
    "incandescent_equivalent": "Équivalent ampoules à incandescence :",
    "kelvin_desc_bathroom": "Blanc neutre (3500 K - 4000 K) avec IRC > 90 pour le miroir",
    "kelvin_desc_bedroom": "Blanc très chaud (2400 K - 2700 K) propice à l’endormissement",
    "kelvin_desc_default": "Blanc chaud (cosy et reposant)",
    "kelvin_desc_hallway": "Blanc chaud (2700 K - 3000 K)",
    "kelvin_desc_kitchen": "Blanc neutre (3500 K - 4000 K) pour une bonne visibilité des aliments",
    "kelvin_desc_living": "Blanc chaud (2700 K - 3000 K) pour une ambiance conviviale",
    "kelvin_desc_office": "Blanc neutre à froid (4000 K - 5000 K) favorisant la concentration",
    "kitchen_350_lux": "Cuisine / plan de travail (350 lux)",
    "led_90_lm_w_energy_saver": "LED (~90 lm/W - économique)",
    "light_white_reflective": "Clairs / blancs (réfléchissants)",
    "lighting_plan": "Recommandations éclairage",
    "living_room_200_lux": "Salon / séjour (200 lux)",
    "medium_pastel_15_lumens": "Moyens / pastels (+15% lumens)",
    "number_of_fixtures_spots": "Nombre d’ampoules / spots",
    "room_area_sqm": "Surface au sol (m²)",
    "room_lighting_calculator_lumens_lux_kelvin": "Calculateur d’éclairage pièce : Lumens, lux & température kelvin",
    "room_setup": "Configuration de la pièce",
    "room_type_purpose": "Type de pièce & usage",
    "spot": "spot LED",
    "to_calculate_lumens_per_bulb": "Pour répartir les lumens",
    "total_electrical_power": "Puissance électrique",
    "total_lumens_needed": "Flux lumineux total",
    "wall_color": "Couleur des murs",
    "copy_summary": "Plan Éclairage Pièce ({{area}} m²):\n- Flux lumineux total : {{lumens}} Lumens\n- Répartition ({{fixtures}} spots/ampoules) : {{perFixture}} Lumens par point\n- Puissance totale LED : {{watts}} Watts\n- Température de couleur conseillée : {{kelvin}} ({{desc}})",
    "norme_lux": "Repère {{value}} lux",
    "watts_equivalents": "~{{value}} Watts"
  },
  "lithotherapy-stone-finder": {
    "choose_a_crystal": "Sélectionnez un cristal",
    "copy_summary": "Pierre : {{v0}} | Purification : {{v1}} | Rechargement : {{v2}}",
    "discover_the_ideal_healing_crystal_for": "Choisissez un minéral, découvrez les vertus que lui prête la tradition et apprenez à le purifier et le recharger selon les règles traditionnelles.",
    "lithotherapy_crystal_finder_guide_chakras_cleansing": "Guide & sélecteur de pierres de lithothérapie (chakras, vertus, purification & rechargement)",
    "purification": "Purification",
    "recharging": "Rechargement"
  },
  "livestock-feed-ration-calculator": {
    "animal_production_parameters": "Paramètres morphologiques & production",
    "basal_forage": "Fourrage de base",
    "concentrate": "Concentrés : {{v0}}%",
    "concentrate_feed": "Aliment concentré",
    "concentrate_price_tonne": "Prix moyen des concentrés (€/tonne)",
    "copy_summary": "Ration {{v0}} : {{v1}} kg MS ({{v2}} UFL, {{v3}} g PDI) – concentré : {{v4}} kg brut/j – troupeau de {{v5}} têtes = {{v6}} t MS/mois",
    "daily_animal_nutritional_needs": "Besoins individuels journaliers",
    "daily_animal_ration_breakdown": "Détail de la ration par animal / jour",
    "determine_daily_feed_requirements_in_dry": "Calculez les besoins journaliers en énergie (UFL/UFV), protéines (PDI) et capacité d’ingestion (kg MS) avec répartition fourrages / concentrés.",
    "digestible_protein": "PDI digestible",
    "dry_matter_day": "Matière sèche / j",
    "forage": "Fourrages : {{v0}}%",
    "herd_size_heads": "Taille du troupeau / lot (nombre de têtes)",
    "live_body_weight_kg": "Poids vif moyen (kg)",
    "livestock_feeding_ration_nutritive_value_calculator": "Calculateur de rations élevage & alimentation animale (INRAE)",
    "monthly_concentrate_budget": "Coût mensuel concentrés",
    "monthly_herd_needs_hd": "Besoin mensuel troupeau ({{v0}} têtes)",
    "net_energy_unit": "Unité fourragère lait",
    "ration_composition_costs": "Structure de la ration & coûts",
    "silage_hay_pasture": "Ensilage, foin, herbe",
    "net_energy": "ÉNERGIE NETTE",
    "proteins": "PROTÉINES",
    "unit_g_per_day": "g/j",
    "unit_kg_per_day": "kg/j",
    "ingestion": "INGESTION",
    "unit_kg_ms": "kg MS",
    "kg_ms_value": "{{value}} kg MS",
    "kg_brut_value": "{{value}} kg brut",
    "tonnes_ms_value": "{{value}} tonnes MS"
  },
  "luggage-packing-list-travel-generator": {
    "1_trip_parameters": "1. Paramètres du voyage",
    "add": "Ajouter",
    "airport_security_carry_on_rules": "Règle sécurité aéroports (bagage cabine)",
    "beach_holiday_relax": "Plage / farniente",
    "business_trip": "Affaires / professionnel",
    "city_break_sightseeing": "Tourisme urbain / city trip",
    "cold_winter": "Froid / hiver / neige",
    "copy_custom_section": "Personnalisés",
    "copy_title": "Checklist voyage ({{v0}} jours, {{v1}}) :",
    "custom_added_items": "Articles personnalisés ajoutés",
    "destination_climate": "Climat & météo",
    "e_g_favorite_pillow_baby_toy": "Ex: Livre de poche, doudou enfant...",
    "generate_tailored_packing_lists_with_exact": "Générez automatiquement la quantité exacte de vêtements, affaires de toilette et documents selon la durée du séjour, la météo, vos activités et vos machines à laver.",
    "hiking_outdoor": "Randonnée / nature",
    "hot_sunny": "Chaud / Soleil / mer",
    "liquids_in_cabin_baggage_must_be": "Tous les liquides, crèmes et aérosols en cabine doivent faire maximum 100 ml chacun et être placés dans un sac transparent refermable de 1 litre.",
    "mild_15_22_c": "Tempéré (15-22°C)",
    "packed": "emballé",
    "packing_progress": "Progression du bagage",
    "smart_luggage_packing_list_travel_checklist": "Générateur de liste de valise & checklist de voyage personnalisée",
    "travel_style": "Style de séjour",
    "traveling_as_a_couple_2_people": "Voyage en couple (2 personnes) ?",
    "trip_duration_days": "Durée du séjour (jours)",
    "tropical_rainy": "Tropical / humide",
    "washing_machine_available": "Accès à une machine à laver sur place ?"
  },
  "manure-slurry-storage-capacity-calculator": {
    "1_herd_inventory_head_count": "1. Effectif du cheptel (nombre de têtes)",
    "2_environmental_regulations": "2. Réglementation & pluviométrie",
    "annual_produced_fertilizer_value": "Valeur fertilisante annuelle produite",
    "annual_rainfall_mm": "Pluviométrie annuelle (mm)",
    "dairy_cows": "Vaches laitières",
    "fattening_pigs": "Porcs à l’engraissement",
    "heifers": "Génisses / élevage",
    "incl_m_rain": "Dont {{v0}} m³ d’eau de pluie",
    "manure_slurry_pit_storage_capacity_calculator": "Calculateur de fosse à lisier & fumière (capacité réglementaire)",
    "mo": "mois",
    "required_autonomy_months": "Autonomie exigée (mois)",
    "required_manure_pad_area": "Surface fumière requise",
    "required_slurry_pit_volume": "Volume fosse à lisier requis",
    "size_slurry_pits_m_and_solid": "Dimensionnez votre fosse à lisier (m³) et fumière (m²) selon votre cheptel, la durée d’interdiction d’épandage et calculez la valeur fertilisante NPK.",
    "slurry_share": "Part lisier vs fumier (%)",
    "solid_manure": "de fumier stocké",
    "storage_capacity_sizing": "Dimensionnement ouvrages",
    "suckler_cows": "Vaches allaitantes",
    "uncovered_pit_area_m": "Surface fosse non couverte (m²)",
    "copy_text": "Stockage Déjections ({{months}} mois): Fosse à lisier utile = {{pit}} m³ - Fumière = {{area}} m² - Fertilisant annuel produit: N={{n}}kg, P={{p}}kg, K={{k}}kg",
    "azote_n": "AZOTE (N)",
    "phosphore_p": "PHOSPHORE (P₂O₅)",
    "potasse_k": "POTASSE (K₂O)",
    "sows": "Truies (avec porcelets)",
    "sheep_goats": "Brebis et chèvres"
  },
  "minecraft-portal-coordinates-calculator": {
    "1_conversion_direction": "1. Sens de conversion",
    "2_source_coordinates": "2. Coordonnées source",
    "accurately_convert_x_y_z_coordinates": "Convertissez précisément vos coordonnées X, Y, Z entre l’Overworld et le Nether pour synchroniser vos portails d’obsidienne sans croisement de liaisons.",
    "minecraft_nether_portal_overworld_coordinate_calculator": "Calculateur de coordonnées portail Nether / Overworld Minecraft (ratio 1:8 & hub)",
    "nether_overworld_8": "Nether ➔ Overworld (× 8)",
    "overworld_nether_8": "Overworld ➔ Nether (÷ 8)",
    "target_nether_coordinates": "Coordonnées cibles dans le Nether",
    "target_overworld_coordinates": "Coordonnées cibles dans l’Overworld",
    "coord_x_label": "Coordonnée X (Est / Ouest)",
    "coord_y_label": "Coordonnée Y (Hauteur / Altitude)",
    "coord_z_label": "Coordonnée Z (Nord / Sud)",
    "teleport_cmd_title": "Commande de Téléportation :",
    "axis_label": "Axe {{axis}}"
  },
  "mirror-hours-angel-numbers-calculator": {
    "angel_triplets": "Nombres des anges (triplets)",
    "copy_summary": "Heure {{v0}} : {{v1}}",
    "current_time": "Heure actuelle",
    "guardian_angel": "Ange régent :",
    "key_mirror_hours": "Heures miroirs clés",
    "mirror_hours_angel_numbers_synchronicity_decrypter": "Calculateur & dictionnaire des heures miroirs & nombres des anges",
    "observed_mirror_time": "Heure miroir observée (HH:MM)",
    "select_time_angel_code": "Sélectionner une heure ou un nombre",
    "spiritual_synchronicity_message": "Message spirituel de l’univers",
    "suggested_alignment_action": "Action recommandée :",
    "tarot_arcana_association": "Arcane de Tarot associé :",
    "uncover_the_hidden_guidance_of_mirror": "Découvrez la signification cachée des heures miroirs (11h11, 22h22...), des anges gardiens et des messages vibratoires de l’univers."
  },
  "moon-phase-ritual-calculator": {
    "calendar_date": "Date du calendrier",
    "copy_summary": "Lune le {{v0}} : {{v1}} (illumination {{v2}} %)",
    "day_of_29_5_synodic_cycle": "Jour {{v0}} sur 29.5 du cycle lunaire",
    "determine_the_exact_lunar_phase_illumination": "Calculez la phase approchée de la Lune pour n’importe quelle date (illumination %, âge du cycle lunaire) et découvrez les rituels et intentions conseillés.",
    "moon_phase_illumination_esoteric_ritual_calculator": "Calculateur de phase lunaire, illumination & rituels ésotériques",
    "phase_first_quarter": "Premier Quartier 🌓",
    "phase_full": "Pleine Lune 🌕",
    "phase_last_quarter": "Dernier Quartier 🌗",
    "phase_new": "Nouvelle Lune 🌑",
    "phase_waning_crescent": "Dernier Croissant 🌘",
    "phase_waning_gibbous": "Lune Gibbeuse Décroissante 🌖",
    "phase_waxing_crescent": "Premier Croissant 🌒",
    "phase_waxing_gibbous": "Lune Gibbeuse Croissante 🌔",
    "ritual_first_quarter": "Dépassement des obstacles, prise de décision, persévérance et ancrage.",
    "ritual_full": "Gratitude, rechargement des cristaux à l’eau lunaire, illumination et libération des énergies stagnantes.",
    "ritual_last_quarter": "Pardon, lâcher-prise, désencombrement et purification de l’espace de vie.",
    "ritual_new": "Pose d’intentions, nouveaux départs, écriture des vœux et rituels d’abondance.",
    "ritual_waning_crescent": "Repos profond, méditation, introspection et régénération spirituelle.",
    "ritual_waning_gibbous": "Partage des enseignements, bilan de gratitude, bienveillance envers soi.",
    "ritual_waxing_crescent": "Action, courage, premiers pas vers vos objectifs et visualisation positive.",
    "ritual_waxing_gibbous": "Ajustements fins, patience, confiance en la gestation des projets.",
    "select_date": "Choisir une date",
    "spiritual_ritual_guidance": "Conseil & rituel spirituel conseillé"
  },
  "npk-fertilizer-calculator": {
    "1_crop_nutrient_needs_kg_ha": "1. Besoin en azote et exportations P₂O₅, K₂O (kg/ha)",
    "2_soil_residuals_organic_manure": "2. Fournitures du sol & effluents organiques",
    "3_mineral_fertilizer_price": "3. Choix de l’engrais minéral & prix",
    "application_rate": "Dose commerciale à épandre",
    "applied_quantity_t_or_m_ha": "Quantité épandue (t/ha ou m³/ha)",
    "calculate_optimal_nitrogen_n_phosphorus_p2o5": "Équilibrez les apports en azote (N), phosphore (P2O5) et potasse (K2O) en déduisant les reliquats et effluents d’élevage pour optimiser vos doses d’engrais.",
    "cattle_manure_t_ha": "Fumier bovin composté (t/ha)",
    "cost_per_hectare": "Coût à l’hectare",
    "crop_npk_fertilizer_soil_nutrient_balance": "Calculateur de fertilisation & bilan NPK des cultures",
    "fertilizer_price_tonne": "Prix engrais (€/tonne)",
    "fertilizer_type": "Type d’engrais minéral",
    "field_surface_ha": "Surface totale de la parcelle (ha)",
    "k_o_required": "K₂O à couvrir",
    "net_fertilizer_requirements": "Bilan net des besoins en engrais",
    "net_need": "Besoin net",
    "nitrogen_n": "Azote N",
    "organic_manure_type": "Effluent organique",
    "p_o_required": "P₂O₅ à couvrir",
    "phosphorus_p_o": "P₂O₅ exporté",
    "pig_slurry_m_ha": "Lisier de porc (m³/ha)",
    "potassium_k_o": "K₂O exporté",
    "poultry_manure_t_ha": "Fientes de volaille (t/ha)",
    "soil_residual_n": "Reliquat azote (N)",
    "soil_supply_k_o": "Apport sol K₂O",
    "soil_supply_p_o": "Apport sol P₂O₅",
    "splitting_strategy": "💡 stratégie de fractionnement :",
    "total_field_cost": "Budget total fertilisation",
    "total_field_weight": "Tonnage total parcelle",
    "split_1": "1 apport",
    "split_2": "2 apports, aux stades clés de la culture",
    "split_3": "3 apports, aux stades clés de la culture",
    "fert_ammonitrate_33_5": "Ammonitrate 33,5 % (N)",
    "fert_urea_46": "Urée 46 % (N)",
    "fert_liquid_nitrogen_30": "Solution azotée N30",
    "fert_dap_18_46": "DAP 18-46-0 (Phosphate diammonique)",
    "fert_tsp_45": "Superphosphate triple 45 % (P₂O₅)",
    "fert_potassium_chloride_60": "Chlorure de potasse 60 % (K₂O)",
    "fert_npk_15_15_15": "Engrais ternaire NPK 15-15-15",
    "fert_npk_17_17_17": "Engrais ternaire NPK 17-17-17",
    "copy_summary": "Fertilisation NPK: Net N={{n}}u, P={{p}}u, K={{k}}u - Dose engrais {{fertilizer}}: {{rate}} kg/ha (Total: {{tons}} t pour {{area}} ha)",
    "azote_n": "AZOTE (N)",
    "phosphore_p": "PHOSPHORE (P₂O₅)",
    "potasse_k": "POTASSE (K₂O)",
    "tonnes": "tonnes",
    "compound_limiting": "Dose calée sur l’élément le plus limitant, pour ne rien apporter au-delà du besoin. Reste à apporter avec des engrais simples : {{n}} u/ha d’azote, {{p}} u/ha de P₂O₅ et {{k}} u/ha de K₂O.",
    "unit_per_ha": "u/ha",
    "pk_hint": "P₂O₅ et K₂O par défaut : exportations de la récolte (COMIFER). L’analyse de terre décide de la dose (impasse, entretien ou renforcement) : ajustez ces valeurs ou l’apport du sol.",
    "price_hint": "Prix indicatifs en euros, à remplacer par les vôtres. L’indice Insee des prix des engrais a augmenté de 15 % en un an (août 2026).",
    "fert_custom": "Autre engrais (teneurs à saisir)",
    "custom_name": "Autre engrais {{grade}}",
    "custom_n": "Teneur en N (%)",
    "custom_p": "Teneur en P₂O₅ (%)",
    "custom_k": "Teneur en K₂O (%)",
    "enter_price": "Prix à saisir : sans lui, ce produit n’entre pas dans le budget.",
    "nitrogen_product": "Engrais azoté de complément",
    "complement_price": "{{name}} : prix à la tonne",
    "program_title": "Programme complet : engrais choisi, puis engrais simples",
    "program_product": "Produit",
    "program_tons": "Tonnes (parcelle)",
    "program_cost_field": "Coût parcelle",
    "program_total": "Total du programme",
    "price_missing": "Un produit du programme n’a pas de prix : le budget ne le compte pas. Saisissez son prix à la tonne."
  },
  "numerology-calculator": {
    "9_year_cycle_energy": "Cycle sur 9 ans",
    "birth_information": "Vos coordonnées de naissance",
    "calculate_your_true_life_path_number": "Découvrez votre chemin de vie avec nombres maîtres (11, 22, 33), votre nombre d’expression pythagoricien et votre cycle vibratoire.",
    "complete_numerology_calculator_life_path_soul": "Calculateur de numérologie complète (chemin de vie & année personnelle)",
    "copy_life_path": "Chemin de vie {{v0}} – {{v1}}",
    "core_strengths": "Forces & dons innés :",
    "date_of_birth": "Date de naissance",
    "evolutionary_challenges": "Défis & leçons d’évolution :",
    "expression_no": "Nombre d’expression",
    "full_legal_name_at_birth": "Nom complet et prénoms (à l’état civil)",
    "how_others_see_you": "Image perçue en société",
    "personal_year_desc_1": "Année 1 : Nouveau cycle de 9 ans ! C’est le moment parfait pour démarrer des projets, prendre des initiatives fortes et semer les graines de votre avenir.",
    "personal_year_desc_2": "Année 2 : Année de patience, de coopération et de partenariats. Laissez mûrir ce que vous avez semé sans forcer les choses.",
    "personal_year_desc_3": "Année 3 : Année d’expansion, de créativité et de rayonnement social. Exprimez vos talents, communiquez et profitez de la joie de vivre.",
    "personal_year_desc_4": "Année 4 : Année de travail, d’organisation et d’ancrage. Bâtissez des bases solides pour vos finances et votre vie professionnelle.",
    "personal_year_desc_5": "Année 5 : Année de liberté, de voyages et de grands changements inattendus. Soyez flexible et prêt à pivoter.",
    "personal_year_desc_6": "Année 6 : Année du foyer, de la famille et des responsabilités du cœur. Harmonie relationnelle et embellissement de votre cadre de vie.",
    "personal_year_desc_7": "Année 7 : Année d’introspection, de calme et d’élévation spirituelle. Prenez du temps pour vous, l’étude et la méditation.",
    "personal_year_desc_8": "Année 8 : Année de récolte matérielle, de réussite financière et d’autorité. Vos efforts des années précédentes sont récompensés.",
    "personal_year_desc_9": "Année 9 : Année de bilan et de clôture de cycle. Faites le tri, libérez-vous de ce qui ne vous sert plus pour préparer le prochain cycle de 9 ans.",
    "personal_year_forecast": "Vibration de votre année personnelle {{v0}} ({{v1}})",
    "personality_no": "Nombre de réalisation",
    "soul_urge_no": "Nombre intime (âme)",
    "target_year_for_personal_year": "Année cible pour l’année personnelle",
    "year": "Année {{v0}}",
    "your_deepest_longing": "Vos désirs profonds",
    "your_natural_talents": "Vos talents & capacités",
    "your_primary_life_path_number": "Votre chemin de vie majeur",
    "placeholder_full_name": "Ex: Jean Paul Dupont",
    "personal_year_in": "Année personnelle {{v0}} : {{v1}}"
  },
  "pc-gaming-bottleneck-calculator": {
    "1_select_processor_cpu": "1. Sélection du processeur (CPU)",
    "2_select_graphics_card_gpu": "2. Sélection de la carte graphique (GPU)",
    "3_resolution_ram": "3. Résolution & mémoire RAM",
    "aaa_ultra_graphics_fps": "Jeux AAA ultra (cyberpunk / wukong)",
    "bottleneck_desc_balanced": "Votre CPU et votre GPU fonctionnent en harmonie totale. Vous exploitez le potentiel de vos composants sans bridage matériel.",
    "bottleneck_desc_cpu": "Votre carte graphique ({{v0}}) est trop puissante pour votre processeur ({{v1}}) en {{v2}}. La carte graphique ne pourra pas tourner à 100 % de sa puissance dans les jeux compétitifs.",
    "bottleneck_desc_gpu": "Votre processeur a de la marge : la carte graphique tourne près de sa pleine utilisation, ce qui est le comportement idéal et standard pour les jeux solo AAA.",
    "bottleneck_title_balanced": "Configuration parfaitement équilibrée",
    "bottleneck_title_cpu": "Goulot d’étranglement processeur (CPU bound : {{v0}} %)",
    "bottleneck_title_gpu": "Goulot d’étranglement carte graphique (GPU bound : {{v0}} %)",
    "competitive_esports_fps": "Jeux eSports (CS2 / Valorant)",
    "determine_if_your_cpu_throttles_your": "Vérifiez si votre processeur bride votre carte graphique en 1080p, 1440p ou 4K et obtenez vos estimations de FPS.",
    "hardware_delta_at": "Écart matériel en {{v0}}",
    "optimization_advice": "Conseil d’optimisation & upgrade",
    "optimization_advice_1080p": "En résolution {{v0}}, le processeur est très sollicité pour alimenter le GPU en images rapides. Un CPU à fort IPC (comme le 7800X3D) débloquera des gains majeurs.",
    "optimization_advice_1440p": "En résolution {{v0}}, on atteint le point d’équilibre parfait entre fidélité visuelle et exploitation optimale des composants modernes.",
    "optimization_advice_4k": "En résolution {{v0}}, la charge pèse quasi exclusivement sur la carte graphique (VRAM et ROP). Un processeur de milieu de gamme suffit amplement.",
    "pc_gaming_bottleneck_hardware_balance_calculator": "Calculateur de Bottleneck PC Gamer (CPU vs GPU & résolution)",
    "ram_capacity": "Quantité de RAM",
    "target_gaming_resolution": "Résolution de l’écran",
    "copy_bottleneck": "Goulot d'étranglement {{value}}%"
  },
  "personal-water-footprint-calculator": {
    "100_plant_based_vegan": "🌱 végétalien / 100% végétal",
    "1_direct_domestic_water": "1. Eau directe (maison & hygiène)",
    "2_food_beverages": "2. Régime alimentaire & boissons",
    "3_textiles_electronics_annual": "3. Textile & électronique (annuel)",
    "audit_your_true_personal_water_footprint": "Découvrez votre consommation d’eau totale en intégrant l’eau invisible de votre assiette (viande, café) et de vos achats textiles et numériques.",
    "baths_week": "Bains par semaine",
    "coffees_day": "Cafés / jour (140l/tasse)",
    "daily_shower_duration": "Durée douche quotidienne",
    "diet_drinks": "Alimentation & boissons",
    "dietary_pattern": "Régime alimentaire",
    "domestic_tap_water": "Eau du robinet directe",
    "eco_shower_head_7l_min": "Pommeau de douche économique (7l/min)",
    "flexitarian_occasional_meat": "🥗 flexitarien (viande occasionnelle)",
    "footprint_breakdown": "Répartition de votre empreinte :",
    "jeans_yr": "Jeans / an",
    "laundry_week": "Machines / semaine",
    "liters_day": "Litres / jour",
    "meat_heavy_daily_beef_pork": "🥩 riche en viande rouge (quotidien)",
    "of_fresh_water_per_year": "d'eau douce par an",
    "personal_water_footprint_calculator_direct_virtual": "Simulateur d’empreinte eau réelle & virtuelle (alimentation & biens)",
    "phone_renew": "Changement tél",
    "standard_meat_3_5x_week": "🍗 moyen occidental (viande 3-5x/sem)",
    "t_shirts_yr": "T-shirts / an",
    "teas_day": "Thés / jour (30l/tasse)",
    "textiles_devices": "Vêtements & High-Tech",
    "total_estimated_consumption": "Consommation totale estimée",
    "total_water_footprint_summary": "Bilan d’empreinte eau globale",
    "vegetarian_dairy_eggs": "🧀 végétarien (œufs, produits laitiers)",
    "vs_western_average_4_200_l": "Comparé à la moyenne occidentale (~4 200 l/j) :",
    "water_footprint_network_assessment": "Écologie & bilan ressource hydrique"
  },
  "pet-food-calorie-portion-calculator": {
    "100_kibbles": "100% croquettes",
    "100_wet_food": "100% pâtée",
    "1_pet_profile": "1. Profil de l'animal",
    "2_food_type_energy_density": "2. Type d'alimentation & densité énergétique",
    "activity_level": "Niveau d'activité",
    "adult_1_to_7_yrs": "Adulte (1 à 7 ans)",
    "bag_duration": "Durée d'un sac de",
    "calculate_accurate_daily_food_portions_in": "Calculez la ration quotidienne estimée en grammes de croquettes ou pâtée selon le poids, l'âge, l'activité et le statut de stérilisation selon la formule vétérinaire RER × coefficient.",
    "caloric_requirement": "Besoin énergétique :",
    "cat": "Chat",
    "current_weight_kg": "Poids actuel (kg)",
    "daily_food_portion": "Ration quotidienne totale",
    "day": "jour",
    "days": "jours",
    "dog": "Chien",
    "estimated_monthly_cost": "Budget mensuel estimé :",
    "high_active_agility": "Très actif / sportif (>2h ou travail)",
    "intact": "Non stérilisé",
    "kibble_kcal_100g": "Kcal croquettes (/100g)",
    "kibbles": "croquettes",
    "kibbles_day": "de croquettes / jour",
    "kibbles_per_bowl": "Croquettes par gamelle :",
    "kitten_12m": "Chaton (<12 mois)",
    "life_stage": "Âge / stade de vie",
    "low_couch_potato": "Calme / sédentaire (<30 min balade)",
    "maintenance": "Maintien stable",
    "meals_per_day": "Repas par jour",
    "mixed_kibble_wet": "Bi-nutrition (50/50)",
    "moderate_1_1_5h_daily_walk": "Modéré (1h à 1h30 de balade active)",
    "month": "mois",
    "neutered": "Stérilisé(e)",
    "pet_food_calorie_daily_portion_sizer": "Calculateur de ration de croquettes & calories (chien & chat)",
    "portion_per_meal_meals_day": "Répartition par repas ({{v0}} fois/jour)",
    "puppy_12m": "Chiot (<12 mois)",
    "senior_7_8_yrs": "Senior (>7-8 ans)",
    "spayed_neutered": "Stérilisation / castration",
    "weight_gain_15": "Prise de masse (+15%)",
    "weight_loss_15": "Perte / régime (-15%)",
    "weight_management_goal": "Objectif corporel",
    "wet_food": "pâtée",
    "wet_food_day": "de pâtée / jour",
    "wet_food_kcal_100g": "Kcal pâtée (/100g)",
    "wet_food_per_bowl": "Pâtée par gamelle :",
    "copy_daily_ration": "Ration Quotidienne ({{type}} {{weight}}kg):\n- Calories cibles : {{calories}} kcal/jour\n- Quantité croquettes : {{kibbles}} g/jour ({{perMeal}} g par repas en {{meals}} repas)\n{{wetSection}}- Durée sac {{bagKg}}kg : ~{{bagDays}} jours",
    "wet_line": "- Quantité pâtée : {{wet}} g/jour\n",
    "kcal_par_jour": "{{value}} kcal / jour",
    "bag_duration_line": "Durée d'un sac de {{kg}} kg :",
    "bag_days_value": "~{{value}} jours",
    "cost_per_month_value": "~{{value}} € / mois"
  },
  "pokemon-type-matchup-calculator": {
    "calculate_4x_weaknesses_2x_damages_resistances": "Tapez le nom d'un Pokémon ou choisissez ses types : faiblesses ×4 et ×2, résistances ×0,5 et ×0,25, immunités. Mode attaque, couverture d'une équipe de 6 et tables des générations 1 à 9.",
    "copy_summary": "Types : {{v0}} / {{v1}}",
    "critical_weaknesses_damage_4": "Faiblesses critiques (dégâts × 4)",
    "monotype": "Monotype",
    "none_single_type": "Aucun (monotype)",
    "pokemon_type_weakness_resistance_matchup_calculator": "Faiblesses et résistances Pokémon : par nom, par type ou en équipe",
    "primary_type_type_1": "Type principal (type 1)",
    "resistances_damage_0_5": "Résistances (dégâts × 0,5)",
    "secondary_type_optional": "Type secondaire (optionnel)",
    "total_immunities_damage_0": "Immunités totales (dégâts × 0)",
    "weaknesses_damage_2": "Faiblesses (dégâts × 2)",
    "resistances_damage_0_25": "Doubles résistances (dégâts × 0,25)",
    "mode_label": "Mode de calcul",
    "mode_defense": "Défense",
    "mode_offense": "Attaque",
    "mode_team": "Équipe",
    "gen_label": "Table des types",
    "gen_6": "Gen 6 et suivantes",
    "gen_2_5": "Gen 2 à 5",
    "gen_1": "Gen 1",
    "search_label": "Rechercher un Pokémon",
    "search_placeholder": "Laggron, Dracaufeu, Caninos de Hisui…",
    "search_button": "Chercher",
    "search_hint": "Noms français, anglais, espagnols ou allemands, formes d'Alola, de Galar, de Hisui et de Paldea comprises. Les types du Pokémon remplissent la sélection ci-dessous.",
    "search_found": "{{v0}} est de type {{v1}}.",
    "search_not_found": "Aucun Pokémon trouvé pour « {{v0}} ».",
    "search_not_in_gen": "{{v0}} a le type {{v1}}, absent de cette table : choisissez une génération plus récente.",
    "offense_attack_type": "Type de l'attaque",
    "offense_super": "Super efficace (×2) contre",
    "offense_not_very": "Pas très efficace (×0,5) contre",
    "offense_no_effect": "Sans effet (×0) contre",
    "offense_neutral": "Dégâts normaux (×1) contre",
    "team_title": "Votre équipe (jusqu'à 6 Pokémon)",
    "team_slot": "Pokémon {{v0}}",
    "team_unknown": "Aucun Pokémon trouvé",
    "team_absent": "(type absent de cette table, non compté)",
    "team_attack": "Type d'attaque",
    "team_weak": "Faibles",
    "team_resist": "Résistent",
    "team_note": "Faibles : ×2 ou ×4. Résistent : ×0,5, ×0,25 ou immunité. Les lignes surlignées comptent plus de membres faibles que de membres qui résistent.",
    "team_empty": "Saisissez au moins un Pokémon pour voir les faiblesses et résistances cumulées de l'équipe."
  },
  "poker-odds-calculator": {
    "1_pot_bet_sizing": "1. Pot & mise en jeu",
    "2_outs_winning_cards": "2. Nombre d’Outs (cartes gagnantes)",
    "at_flop_turn_river": "Au Flop (2 cartes à venir)",
    "at_turn_river_only": "À la Turn (1 carte à venir)",
    "bet_to_call": "Montant à payer (call)",
    "chance_to_hit_at_least_one": "de chances de toucher au moins 1 de vos {{v0}} outs",
    "current_pot_size": "Taille du pot actuel (€ / jetons)",
    "current_street": "Moment du coup (Street)",
    "expected_value": "Espérance (EV)",
    "fold_recommended_ev": "❌ FOLD CONSEILLÉ (-EV)",
    "instantly_calculate_your_winning_equity_required": "Calculez instantanément votre probabilité de toucher vos cartes (Outs), la cote du pot (pot Odds) et déterminez si un suivi (call) est rentable (+EV).",
    "poker_math_rules_rule_of_2": "Règle mathématique du Poker (règle de 2 & 4)",
    "poker_odds_pot_equity_calculator_texas": "Calculateur de cotes & probabilités Poker (Texas Hold’em, pot Odds, Outs & EV)",
    "pot_odds_ratio": "Cote du pot",
    "profitable_call_ev": "✅ CALL RENTABLE (+EV)",
    "quick_presets": "Sélection rapide selon votre tirage :",
    "required_pot_equity": "Équité requise par le pot",
    "required_win": "Seuil d’équité",
    "rule_of_4_and_2": "Au flop, multipliez vos outs par 4 pour estimer votre pourcentage jusqu’à la river (~{{v0}} × 4 = {{v1}} %). À la turn, multipliez vos outs par 2 pour estimer vos chances sur la dernière carte (~{{v0}} × 2 = {{v2}} %). Si votre pourcentage de victoire dépasse la part du pot investie ({{v3}} %), payer est statistiquement profitable sur le long terme.",
    "total_outs": "Nombre total d’Outs",
    "your_actual_equity": "Votre équité réelle",
    "copy_summary": "Équité: {{winProb}}% | Cote: {{reqEquity}}%"
  },
  "regex-tester-explainer": {
    "0_or_1_occurrence_optional": "0 ou 1 occurrence (optionnel)",
    "0_or_more_occurrences": "0 ou plusieurs répétitions",
    "1_or_more_occurrences": "1 ou plusieurs répétitions (greedy)",
    "any_digit_0_9": "N’importe quel chiffre (0-9)",
    "any_whitespace_character_space_tab_newline": "Espace blanc (espace, tabulation, saut de ligne)",
    "any_word_character_a_za_z0": "Caractère alphanumérique ou underscore [a-zA-Z0-9_]",
    "capture_groups": "Groupes de capture :",
    "capture_groups_breakdown": "Détail des matchs & groupes",
    "capturing_group_1_2": "Groupe de capture ($1, $2...)",
    "case_insensitive": "Insensible à la casse A-Z",
    "character_set_class": "Classe de caractères personnalisée",
    "chars": "caractères",
    "copied": "Copié !",
    "copy_js_snippet": "Copier le code JS",
    "dot_matches_newline": "Le point . inclut les retours à la ligne",
    "end_of_string_line": "Fin de ligne / chaîne",
    "flags": "Options / flags :",
    "found": "trouvé(s)",
    "french_phone_number": "Téléphone français (06, 07, +33...)",
    "hex_color_code": "Code couleur hexadécimal (#RGB / #RRGGBB)",
    "interactive_regex_tester_explainer": "Testeur & explicateur d’expressions régulières (regex)",
    "invalid_regex_syntax": "Syntaxe regex invalide",
    "ipv4_address": "Adresse IPv4",
    "iso_date_yyyy_mm_dd": "Date ISO (AAAA-MM-JJ)",
    "live_match_highlights": "Aperçu des correspondances (Live matches) :",
    "match": "correspondance",
    "match_all_instances": "Trouver toutes les occurrences",
    "matches": "correspondances",
    "matches_3_or_6_digit_hex": "Codes couleurs hexadécimaux à 3 ou 6 caractères",
    "matches_french_mobile_and_landline_numbers": "Numéros fixes et mobiles français aux formats 06, +33, avec espaces ou tirets",
    "matches_http_https_web_links_with": "Capture les liens web avec protocole http/https et query params",
    "matches_standard_email_addresses_with_tld": "Détecte les adresses emails standards avec nom de domaine",
    "matches_valid_ipv4_addresses_from_0": "Valide les 4 octets IPv4 de 0 à 255",
    "multiline_mode": "^ et $ correspondent au début/fin de chaque ligne",
    "no_match_found_for_this_pattern": "Aucune correspondance trouvée avec ce texte et ces flags.",
    "non_capturing_group": "Groupe non capturant",
    "paste_your_test_string_here": "Entrez ou collez votre texte à analyser ici...",
    "pattern_cannot_be_empty": "Le pattern ne peut pas être vide",
    "pattern_token_analysis": "Décomposition des éléments détectés",
    "quick_regex_presets": "Modèles & presets rapides",
    "regular_expression_pattern": "Expression régulière (pattern)",
    "replacement_pattern_1_2_supported": "Pattern de remplacement (supporte $1, $2, $&...)",
    "resulting_string": "Résultat après remplacement :",
    "standard_iso_8601_date_with_capture": "Format de date standard ISO 8601 avec validation des mois (01-12) et jours (01-31)",
    "start_of_string_line": "Début de ligne / chaîne",
    "substitution_replace_tool": "Outil de remplacement (string replace)",
    "test_regular_expressions_in_real_time": "Testez en temps réel vos expressions régulières avec surlignage des correspondances, capture groups ($1, $2), outil de remplacement et presets.",
    "test_string": "Texte de test",
    "unicode_support": "Support complet des caractères unicode",
    "valid_email": "Email valide",
    "web_url_http_https": "URL web (HTTP/HTTPS)",
    "word_boundary": "Limite de mot (word boundary)",
    "default_test_text": "Contactez support@kristools.com ou dev.team@example.org pour toute question technique.\nVisitez aussi https://kristools.app ou contact@startup.io !",
    "sample_email": "Contact info: test@kristools.com, admin@domain.co.uk, invalid@email",
    "sample_url": "Check out https://kristools.app and http://example.org/page?query=1#section",
    "sample_phone": "Appelez le 06 12 34 56 78 ou le +33 1 42 68 55 00 pour confirmation.",
    "sample_date": "Rendez-vous du 2026-08-25 au 2026-12-31, date erronée: 2026-13-40.",
    "sample_ip": "Serveurs: 192.168.1.1, 10.0.0.254, 127.0.0.1 (invalide: 999.300.1.1)",
    "sample_hex": "Palette: #FFF, #3B82F6, #10B981, #6366F1, mauvais: #GG123",
    "replacement_error": "Erreur de remplacement: {{message}}",
    "match_tooltip": "Match #{{n}} ({{length}} chars, index {{index}})",
    "pattern_placeholder": "ex: [a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,}",
    "replacement_placeholder": "ex: <span>$1</span>",
    "match_number": "Match #{{n}}",
    "position_line": "pos: [{{start}}, {{end}}] ({{length}} chars)",
    "uuid_v4": "UUID v4",
    "html_tag": "Balise HTML",
    "copy_result": "Copier le résultat",
    "sample_uuid": "Identifiant: 95ed6328-7bf5-4baa-82b0-2471c40a847d",
    "sample_html": "<p class=\"intro\">Bienvenue sur le site</p>\n<a href=\"/fr/contact\">Nous écrire</a>\n<img src=\"logo.png\">"
  },
  "rpg-damage-scaling-calculator": {
    "1_offensive_stats": "1. Statistiques offensives",
    "2_enemy_defense_penetration": "2. Défense & pénétration",
    "armor_penetration": "Pénétration d’armure (%)",
    "average_damage_per_skill_cast": "dégâts infligés en moyenne après armure et coups critiques",
    "base_attack_atk": "Attaque de base (ATK)",
    "crit_damage": "Dégâts critiques (%)",
    "crit_rate": "Taux critique (%)",
    "critical_hit_damage": "Coup critique (crit hit)",
    "expected_average_damage": "Dégâts moyens par coup (DPS espérance)",
    "normal_hit_damage": "Coup normal (Non-Crit)",
    "rpg_mmo_damage_scaling_effective_hp": "Calculateur de dégâts RPG & MMO (attaque, pénétration d’armure & coup critique)",
    "simulate_hit_damage_critical_hit_amplification": "Simulez l’impact réel de vos statistiques (ATK, dégâts critiques, pénétration d’armure) et calculez les dégâts moyens infligés à la cible.",
    "skill_damage_multiplier": "Ratio de la compétence (%)",
    "target_armor_resistance": "Armure / résistance cible",
    "copy_summary": "Dégâts Critiques: {{crit}} | Moyens: {{avg}} | Réduction Armure: {{armor}}%"
  },
  "screen-size-ppi-viewing-distance-calculator": {
    "1_screen_specifications": "1. Caractéristiques de l'écran",
    "4k_eye_acuity_limit": "Limite d'acuité 4K",
    "aspect_ratio": "Format d'image (ratio)",
    "beyond_this_distance_a_20_20": "Au-delà de cette distance, l'œil humain moyen (10/10) ne distingue plus la finesse des pixels 4K d'une image 1080p.",
    "calculate_optimal_viewing_distance_thx_and": "Déterminez la distance de recul recommandée (repères cinéma THX et SMPTE), les dimensions réelles (largeur/hauteur en cm) et la netteté en pixels par pouce (PPI) pour tout téléviseur ou moniteur PC.",
    "cinema_immersion_thx_40": "Immersion cinéma (THX 40°)",
    "custom_diagonal_inches": "Diagonale personnalisée (pouces)",
    "display_resolution": "Définition / résolution d'affichage",
    "dot_pitch": "Pas de masque",
    "for_ergonomic_neck_comfort_ensure_the": "Pour un confort ergonomique optimal sans fatigue cervicale, veillez à ce que le tiers supérieur de l'écran soit aligné avec la hauteur naturelle de vos yeux lorsque vous êtes assis dans votre canapé.",
    "for_m_distance_recommended_size": "À {{v0}} m de recul, diagonale idéale :",
    "for_your_4k_screen_place_your": "Pour votre écran {{v0}}\" 4K, installez votre assise entre {{v1}} m (expérience cinéma immersive) et {{v2}} m (confort polyvalent).",
    "height": "Hauteur",
    "maximum_immersion_recommended_for_movies_hdr": "Immersion maximale recommandée pour les films, séries HDR et jeux vidéo.",
    "official_standards_visual_acuity": "Repères THX/SMPTE & acuité visuelle",
    "optimal_4k_viewing_distance": "Distance de recul idéale (4K UHD)",
    "physical_scale_dimensions": "Gabarit & encombrement réel",
    "pixel_density": "Densité (PPI)",
    "placement_tip": "Conseil d'installation",
    "popular_diagonals_inches": "Diagonales populaires (pouces) :",
    "reverse_sizing_sofa_to_wall_distance": "Simulateur selon mon salon (distance canapé - mur)",
    "screen_size_optimal_viewing_distance_ppi": "Calculateur taille d'écran, recul idéal TV & densité PPI",
    "sofa_distance_meters": "Distance canapé (mètres)",
    "standard_from_the_society_of_motion": "Norme de la société des ingénieurs de cinéma et télévision pour un visionnage reposant.",
    "standard_tv_viewing_smpte": "Usage quotidien standard (SMPTE)",
    "width": "Largeur",
    "aspect_16_9": "16:9 (Standard TV / Moniteur)",
    "aspect_21_9": "21:9 (Ultrawide Cinema / Gaming)",
    "aspect_32_9": "32:9 (Super Ultrawide Dual)",
    "aspect_16_10": "16:10 (PC Portable / Pro)",
    "aspect_4_3": "4:3 (Rétro / vintage)",
    "a_x_m": "à {{value}} m",
    "thx_cinema_champ_40": "THX Cinema (Champ 40°)",
    "smpte_standard_champ_30": "SMPTE Standard (Champ 30°)",
    "fiche_ecran": "Fiche Écran {{size}}\" ({{resolution}}):\n- Dimensions physiques : {{width}} cm (L) × {{height}} cm (H)\n- Surface d'affichage : {{area}} m²\n- Densité de pixels : {{ppi}} PPI (Pas de masque : {{pitch}} mm)\n- Recul recommandé THX Cinéma (40°) : {{thx}} m\n- Recul recommandé SMPTE TV (30°) : {{smpte}} m\n- Limite d'acuité oculaire 4K : {{acuity}} m"
  },
  "silage-forage-storage-volume-calculator": {
    "approx_months_supply": "Soit environ {{v0}} mois d’avance",
    "average_dm": "Taux MS moyen",
    "bale_count": "Nombre de bottes",
    "bale_count_2": "Nombre de bottes",
    "bunker_silo_corn_grass": "Silo couloir / ensilage",
    "calculate_bunker_silo_volume_round_square": "Calculez le volume (m³), le tonnage brut et le tonnage en matière sèche (t MS) de vos silos couloirs ou bottes et évaluez l’autonomie du troupeau.",
    "corn_silage": "Ensilage de maïs (dense)",
    "daily_herd_dm_intake_kg_dm": "Consommation journalière du troupeau (kg MS/jour)",
    "days": "jours",
    "diameter_m": "Diamètre (m)",
    "dm": "Taux MS (%)",
    "dm_2": "Taux MS (%)",
    "dry_matter": "Taux matière sèche (%)",
    "dry_matter_tonnage": "Tonnage en matière sèche",
    "feeding_autonomy": "Autonomie de distribution",
    "forage_inventory_balance": "Bilan des stocks fourragers",
    "forage_silage_hay_storage_volume_tonnage": "Calculateur de stockage de fourrage, ensilage & foin",
    "grass_silage": "Ensilage d’herbe",
    "height_m": "Hauteur tas (m)",
    "length_m": "Longueur (m)",
    "livestock_feed_intake_autonomy": "Consommation & autonomie troupeau",
    "round_bales_hay_baleage": "Bottes rondes (foin / enrubanné)",
    "silage_type": "Fourrage ensilé",
    "square_bales_high_density": "Bottes rectangulaires haute densité",
    "storage_dimensions_properties": "Dimensions & paramètres du stock",
    "total_fresh_tonnes": "tonnes brutes au total",
    "total_storage_volume": "Volume total stocké",
    "weight_per_bale": "Poids moyen / botte",
    "width_m": "Largeur (m)",
    "kg_ms_j": "kg MS/j",
    "t_ms": "t MS",
    "copy_stock": "Stock Fourrage: {{dm}} tonnes MS ({{fresh}} t brut, volume {{volume}} m³) - Autonomie troupeau: {{days}} jours ({{months}} mois)",
    "vorschub_title": "Avancement du front d'attaque",
    "vorschub_week": "{{v0}} m par semaine",
    "vorschub_detail": "Soit {{day}} m par jour : {{dm}} kg MS prélevés chaque jour dans ce silo ({{fresh}} t brutes), sur un front de {{area}} m² tassé à {{density}} kg MS/m³.",
    "vorschub_ok": "Au moins 2 m par semaine : le repère de planification de la Chambre d'agriculture de Basse-Saxe (2024) est atteint.",
    "vorschub_low": "Moins de 2 m par semaine, le repère de planification de la Chambre d'agriculture de Basse-Saxe (2024) : le front reste plus longtemps à l'air, ce qui favorise l'échauffement. À cette hauteur, il faudrait un front de {{width}} m de large au plus."
  },
  "social-hook-virality-analyzer": {
    "analyseur_de_hook_score_de_retention": "Analyseur de Hook & Score de Rétention Vidéo (TikTok / Reels / Shorts)",
    "arretez_de_faire_cette_erreur_bete": "Arrêtez de faire cette erreur bête quand vous publiez sur Instagram si vous voulez percer en 2026...",
    "aucun_mot_declencheur_detecte": "Aucun mot déclencheur détecté (essayez d'ajouter : Erreur, secret, Arrêtez, Révélation, Hack...).",
    "conseil_visez_8_a_14_mots": "Conseil : Visez 7 à 16 mots",
    "copie": "Copié !",
    "copier": "Copier",
    "copier_l_exemple": "Copier l'exemple",
    "elements_visuels_sonores_d_accroche": "Éléments Visuels & Sonores d'accroche :",
    "hook_score_virilite": "Hook Score Viralité",
    "longueur_ideale_7_16_mots": "✓ longueur idéale (7-16 mots)",
    "modeles_formules_virales_cle_en_main": "Modèles & formules Virales clé en main",
    "mots_d_impact_liste": "arrêtez,stop,erreur,secret,vérité,illégal,gratuit,percer,attention,jamais,pire,meilleur,hack,astuce,pourquoi,découvrez,voici,personne,évitez,danger,2026",
    "mots_d_impact_psychologique_detectes": "Mots d'impact psychologique Détectés :",
    "pattern_interrupt_visuel": "Pattern Interrupt visuel (zoom rapide, changement de plan en moins de 1.5s, objet physique)",
    "retention_3_secondes_algorithme_short_form": "Rétention 3 secondes & algorithme Short-Form",
    "retention_3s_estimee": "Rétention 3s estimée : ~{{value}}%",
    "sound_design_effet_sonore_d_impact": "Sound Design / Effet sonore d'impact (Whoosh, Pop, Click, Glitch)",
    "sous_titres_dynamiques_gros_et_colores": "Sous-titres dynamiques gros et colorés au centre (mot à mot / bannières)",
    "tapez_ou_collez_votre_hook": "Tapez ou collez votre hook...",
    "template_1_category": "Curiosité & secret",
    "template_1_example": "Personne ne vous dit ça sur les banques en ligne, mais voici pourquoi vous perdez de l'argent...",
    "template_1_formula": "Personne ne vous dit ça sur [sujet], mais voici la vérité...",
    "template_2_category": "Contrariant / Stop Scroll",
    "template_2_example": "Arrêtez immédiatement de publier à 18h sur Instagram ! Faites plutôt ceci :",
    "template_2_formula": "Arrêtez immédiatement de faire [action courante] ! Faites ceci à la place :",
    "template_3_category": "Gain de temps / Hack",
    "template_3_example": "Comment passer de 0 à 10 000 abonnés TikTok en moins de 30 jours sans montrer son visage :",
    "template_3_formula": "Comment passer de [situation A] à [situation B] en moins de [temps court] :",
    "template_4_category": "Alerte Erreur Fatale",
    "template_4_example": "Les 3 pires erreurs qui détruisent votre référencement Google sans que vous le sachiez :",
    "template_4_formula": "Les 3 pires erreurs qui détruisent votre [objectif] sans que vous le sachiez :",
    "template_5_category": "Révélation outil / IA",
    "template_5_example": "Ces 3 outils IA gratuits remplacent une équipe marketing complète en 2026 :",
    "template_5_formula": "Ce site web gratuit semble tellement illégal que vous ne devriez pas le connaître :",
    "template_6_category": "Story / Behind the scenes",
    "template_6_example": "J'ai publié 3 Shorts par jour pendant 30 jours, et voici exactement mes statistiques...",
    "template_6_formula": "J'ai testé [expérience extrême] pendant 30 jours, et voilà ce qui s'est passé...",
    "testez_l_accroche_de_votre_video": "Testez l'accroche de votre vidéo, détectez les mots d'impact et optimisez votre taux d'arrêt de défilement (Stop-Scroll rate).",
    "texte_de_l_accroche_vocale_ou_sous_titre": "Texte de l'accroche vocale ou sous-titre",
    "votre_phrase_d_accroche_3_premieres_secondes": "Votre Phrase d'Accroche (Les 3 Premières Secondes)",
    "x_mots_y_caracteres": "{{words}} mots ({{chars}} caractères)"
  },
  "soil-ph-liming-calculator": {
    "1_soil_test_target_ph": "1. Analyse de sol & objectif de pH",
    "2_liming_material": "2. Amendement minéral calcique",
    "application_advice": "Conseil d’épandage :",
    "application_rate": "Dose commerciale à épandre",
    "apply_preferably_in_late_summer_or": "Épandre de préférence en fin d’été ou début d’automne sur sol portant avant un travail superficiel pour une incorporation homogène dans les 10 premiers centimètres.",
    "calculate_required_neutralizing_value_nv_and": "Déterminez la valeur neutralisante (VN) et le tonnage d’amendement calcaire (chaux, carbonate, dolomie) pour corriger l’acidité de vos parcelles.",
    "cost_per_hectare": "Coût à l’hectare",
    "current_soil_ph_test": "pH eau actuel (analyse de sol)",
    "delivered_price_tonne": "Prix du produit livré (€/tonne)",
    "field_surface_area_ha": "Surface de la parcelle (ha)",
    "liming_product": "Produit d’amendement",
    "liming_recommendation": "Bilan de chaulage",
    "net_nv_t_nv_ha": "Besoin net VN: {{v0}} t VN/ha",
    "soil_ph_liming_calcium_amendment_calculator": "Calculateur de chaulage & redressement du pH du sol",
    "soil_texture_buffering": "Texture et pouvoir tampon du sol",
    "split_over_pass_es": "À fractionner en {{v0}} passage(s)",
    "target_soil_ph": "pH cible souhaité",
    "total_field_budget": "Budget total amendement",
    "total_field_weight": "Tonnage total parcelle",
    "prod_quicklime": "Chaux vive broyée (CaO)",
    "speed_quicklime": "Action très rapide",
    "prod_carbonate": "Carbonate de calcium broyé (CaCO3)",
    "speed_carbonate": "Action progressive / régulière",
    "prod_dolomite": "Dolomie / chaux magnésienne (CaCO3 + MgCO3)",
    "speed_dolomite": "Action moyenne + apport Magnésie (mg)",
    "prod_beet_foam": "Écumes de sucrerie séchées",
    "speed_beet_foam": "Action douce + Oligos & P",
    "tonnes": "tonnes",
    "copy_summary": "Chaulage: Écart pH={{gap}} - Besoin VN: {{vn}} t/ha - Produit {{product}}: {{perHa}} t/ha (Total {{total}} t sur {{area}} ha en {{passes}} passages)"
  },
  "solar-inverter-battery-sizing": {
    "backup_autonomy": "Autonomie de secours",
    "battery_chemistry": "Chimie de batterie",
    "calculate_off_grid_and_backup_battery": "Dimensionnez votre parc de batteries (kWh / ah), puissance de l’onduleur (kW crête) et champ de panneaux solaires pour une autonomie optimale.",
    "capacity_copied": "Capacité copiée !",
    "daily_energy_consumption": "Consommation journalière totale",
    "daily_peak_sun_hours": "Heures d’ensoleillement max (peak sun hours)",
    "days": "jours",
    "days_2": "jours",
    "days_of_autonomy_backup": "Jours d’autonomie (sans soleil)",
    "depth_of_discharge_dod": "Profondeur de décharge (DoD)",
    "electrical_loads_sizing_criteria": "Consommation & besoins électriques",
    "inverter_continuous_rating": "Puissance onduleur continue",
    "inverter_efficiency": "Rendement onduleur",
    "inverter_minimum_rating": "Puissance continue onduleur",
    "lead_acid_agm_gel_50_dod": "Plomb AGM / gel (50% DoD)",
    "lithium_lifepo4_90_dod": "Lithium LiFePO4 (90% DoD)",
    "net_usable_energy_needed": "Capacité utile nette requise",
    "peak_continuous_load": "Charge continue maximale (peak continuous)",
    "recommended_battery_bank": "Capacité batterie recommandée",
    "recommended_pv_solar_array": "Champ panneaux solaires",
    "required_solar_pv_array": "Champ solaire PV requis",
    "solar_inverter_battery_storage_sizing_calculator": "Calculateur de dimensionnement solaire (batterie & onduleur)",
    "surge_inverter_capability": "Capacité crête (surge)",
    "surge_peak_capacity_kw": "Crête max supportée : {{v0}} kW",
    "system_dc_voltage": "Tension DC du système",
    "system_sizing_blueprint": "Spécifications techniques du système",
    "total_battery_bank_size": "Parc batterie brut",
    "usable_capacity": "utilisables",
    "x_400w_solar_panels": "panneaux de 400W",
    "unit_kwh_per_day": "kWh / jour",
    "unit_watts": "Watts (W)",
    "unit_hrs_per_day": "h / jour",
    "opt_12v": "12V (Petit chalet / camping-car)",
    "opt_24v": "24V (Maison moyenne)",
    "opt_48v": "48V (Résidentiel standard)"
  },
  "solar-panel-payback-calculator": {
    "1_system_specifications": "1. Caractéristiques de l’installation",
    "25_year_cumulative_savings": "Gains cumulés sur 25 ans",
    "25_years": "> 25 ans",
    "2_energy_tariffs_habits": "2. Tarifs & habitudes de consommation",
    "annual_gain": "Gain annuel",
    "annual_production": "Production annuelle",
    "auto_grant": "Prime officielle",
    "avoided_co_output": "Impact CO₂ évité",
    "central_west": "Centre / Ouest",
    "consumed": "autoconsommés",
    "cumul_gains": "Cumul gains",
    "current_grid_price_kwh": "Prix kWh actuel (€/kWh)",
    "direct_self_consumption_share": "Taux d’autoconsommation direct",
    "elec_price": "Prix élec",
    "estimate_your_annual_kwh_output_electricity": "Estimez la production kWh, les économies sur facture, les gains de revente du surplus et le retour sur investissement (ROI sur 25 ans).",
    "estimated_annual_grid_price_inflation": "Inflation annuelle estimée de l’électricité",
    "export": "revente",
    "installed_capacity_kwp": "Puissance installée (kWc)",
    "long_term_financial_trajectory": "Projection financière sur la durée",
    "net_balance": "Solde net",
    "net_initial_investment": "Investissement net réel",
    "net_profit_25_years": "Bénéfice net (25 ans)",
    "net_roi": "Rendement net global",
    "no_grant": "Aucune prime",
    "north": "Nord / Nord-Est",
    "payback_period_roi": "Amortissement & retour sur investissement",
    "saved": "économisés",
    "share_of_generated_power_consumed_instantly": "Part de l’électricité produite directement consommée par le foyer (chauffe-eau, électroménager, PAC, VE).",
    "solar_irradiation_region": "Région / ensoleillement annuel",
    "solar_panel_payback_self_consumption_calculator": "Calculateur de rentabilité solaire & autoconsommation",
    "sold": "vendus",
    "south_sunbelt": "Sud / Méditerranée",
    "state_solar_grant": "Prime à l’autoconsommation",
    "surplus_feed_in_tariff_kwh": "Tarif revente surplus (€/kWh)",
    "to_break_even": "pour rentabiliser l’installation",
    "tons_over_25_yrs": "tonnes sur 25 ans",
    "total_turnkey_cost_incl_tax": "Coût total matériel & pose (€ TTC)",
    "year": "Année",
    "year_1_total_savings": "Gain année 1",
    "year_2": "Année {{v0}}",
    "years": "ans",
    "x_kwc_wc": "{{kwp}} kWc ({{wp}} Wc)",
    "x_kwc": "{{value}} kWc",
    "x_kwh_kwc_an": "{{value}} kWh / kWc / an",
    "x_kwh_kwc": "{{value}} kWh/kWc",
    "kwh_an": "kWh/an",
    "eur_an": "€/an",
    "kg_an": "kg/an",
    "plus_x_par_an": "+{{value}}% / an",
    "x_eur_kwh": "{{value}} €/kWh"
  },
  "solar-roi-savings-calculator": {
    "25_yr_net_profit": "Bénéfice net sur 25 ans",
    "30_federal_itc_tax_credit": "Crédit fédéral 25D (supprimé depuis le 01/01/2026)",
    "average_monthly_electric_bill": "Facture électrique mensuelle moyenne ($)",
    "bill_offset": "Couverture facture :",
    "calculate_solar_system_payback_period_30": "Estimez la puissance requise en kW, le temps de retour sur investissement et vos gains sur 25 ans (crédit fédéral 25D de 30 % supprimé depuis le 01/01/2026).",
    "co2_offset": "Émissions CO2 évitées",
    "copied": "Copié !",
    "copy_solar_roi_summary": "Copier le bilan solaire",
    "cost_watt": "Coût ($/watt)",
    "electricity_price_escalator_yr": "Hausse annuelle du prix de l'électricité (%)",
    "estimated_payback_period": "Temps de retour sur investissement",
    "gross_solar_cost": "Coût brut système",
    "location_system_specs": "Localisation & consommation",
    "net_system_cost": "Coût net réel restant",
    "residential_solar_panel_roi_electric_bill": "Calculateur de rentabilité solaire & économies facture d'électricité",
    "solar_financial_tax_credit_summary": "Détail financier & crédit d'impôt ITC",
    "system_size_kw": "Taille système (kW)",
    "tons_year": "tonnes/an",
    "us_state_location": "État US (ensoleillement & tarifs)",
    "year_1_savings": "Économies an 1",
    "years": "ans",
    "us_national_average": "Moyenne nationale américaine",
    "state_option": "{{name}} ({{hours}}h soleil/j, ${{rate}}/kWh)",
    "per_year": "${{value}}/an",
    "copy_summary": "Estimation du ROI solaire résidentiel et des économies (système de {{size}} kW en {{state}}) :\n- Coût brut du système : {{gross}} $\n- Crédit d'impôt fédéral 25D (supprimé depuis le 01/01/2026) : -{{credit}} $\n- Coût net à votre charge : {{net}} $\n- Économies estimées la 1re année : {{year1}} $/an ({{monthly}} $/mois)\n- Part de la facture d'électricité couverte : {{offset}} %\n=> DÉLAI DE RETOUR SUR INVESTISSEMENT ESTIMÉ : {{payback}} ANS\n=> BÉNÉFICE NET SUR 25 ANS : {{profit}} $"
  },
  "sprayer-calibration-flow-rate-calculator": {
    "1_liter_beaker_calibration_test": "Test étalonnage éprouvette (1 litre)",
    "agricultural_sprayer_calibration_nozzle_flow_rate": "Calculateur d’étalonnage pulvérisateur & débit des buses",
    "application_speed_settings": "Paramètres d’épandage & tracteur",
    "boom_width_m": "Largeur de rampe (m)",
    "calibration_result": "Résultat de calibrage",
    "compute_nozzle_flow_rate_l_min": "Calculez le débit unitaire par buse (l/min), la pression optimale (bars), la couleur de buse ISO et le temps de contrôle à l’éprouvette.",
    "copy_summary": "Étalonnage pulvérisateur : débit {{v0}} L/min par buse ({{v1}} buses) – buse conseillée : {{v2}} à {{v3}} bars – remplir 1 L en {{v4}} s",
    "each_nozzle_should_collect_exactly_1": "Chaque buse doit remplir exactement 1 litre dans ce laps de temps.",
    "field_area_ha": "Surface à traiter (ha)",
    "flow_rate_per_nozzle": "Débit par buse requis",
    "forward_speed_km_h": "Vitesse d’avancement (km/h)",
    "iso_nozzle_pressure": "Buse ISO & pression",
    "iso_standard_nozzle_color_guide": "Guide des couleurs de buses norme ISO",
    "nozzle_spacing_cm": "Écartement entre buses (cm)",
    "nozzles_on_boom": "buses sur la rampe",
    "official_calibration_formula": "Formule officielle :",
    "seconds": "secondes",
    "tank_autonomy": "Autonomie cuve",
    "tank_capacity_litres": "Capacité de cuve (litres)",
    "target_volume_l_ha": "Volume de bouillie visé (l/ha)",
    "total_tanks": "Cuves nécessaires",
    "work_output": "Débit de chantier",
    "formule_de_calibrage": "q (L/min) = (Volume L/ha × Vitesse km/h × Écartement m) ÷ 600"
  },
  "tarot-reading-simulator": {
    "advice": "Conseil :",
    "divinatory_verdict": "Verdict divinatoire :",
    "draw_cards": "Tirer les cartes",
    "draw_from_the_22_major_arcana": "Consultez les 22 arcanes majeurs : Tirage 3 cartes (Passé/Présent/Futur), tirage en croix 5 cartes et tirage Oui/Non avec carte de synthèse.",
    "ex_what_energy_surrounds_my_career": "Ex: Quelle est l’évolution de ma vie sentimentale / professionnelle ?",
    "global_energy": "Vibration globale",
    "no_wait_obstacle_or_blocked_energy": "⚡ NON / ATTENDRE — obstacle ou énergie bloquée",
    "numerological_synthesis_arcana": "Arcane de synthèse numérologique",
    "question_asked": "Question posée :",
    "reversed": "Renversée",
    "shuffling_deck": "Mélange des arcanes...",
    "spread_3_cards": "3 Cartes",
    "spread_cross_5": "En Croix (5)",
    "spread_type": "Méthode de tirage",
    "spread_yes_no": "Oui / Non",
    "tarot_of_marseilles_interactive_card_reading": "Tirage de Tarot de Marseille gratuit en ligne (22 arcanes majeurs)",
    "yes_favorable_aligned": "✨ OUI — énergie favorable & fluide",
    "your_question_or_intention_optional": "Votre question ou intention (optionnel)"
  },
  "tibetan-astrology-mewa-calculator": {
    "birth_year": "Année de naissance",
    "birth_year_2": "Année de naissance",
    "copy_summary": "Mewa tibétain : {{v0}} ({{v1}}) – élément {{v2}}",
    "discover_your_authentic_tibetan_mewa_incarnation": "Calculez votre nombre de réincarnation Mewa selon l’astrologie tibétaine traditionnelle et découvrez votre empreinte karmique.",
    "karmic_blueprint": "Profil & empreinte karmique",
    "karmic_element": "Élément karmique : {{v0}}",
    "mewa": "Mewa {{v0}}",
    "tibetan_mewa_sacred_astrology_calculator_9": "Calculateur de Mewa & astrologie tibétaine (carré magique des 9 nombres)"
  },
  "tire-size-speedometer-equivalence-calculator": {
    "actual_gps_speed": "Vitesse réelle (nouvelle monte)",
    "aspect_ratio": "Série / flanc (%)",
    "aspect_ratio_2": "Série / flanc (%)",
    "circumference": "Circonférence :",
    "circumference_2": "Circonférence :",
    "compare_two_tire_sizes_verify_legal": "Comparez deux montes de pneus (en millimètres ou en pouces), vérifiez la tolérance usuelle (repère professionnel), calculez l'écart de vitesse au compteur et trouvez les tailles alternatives à ±3 %.",
    "diameter_variation_detail": "Écart de diamètre extérieur : {{v0}} % ({{v1}} mm). Repère professionnel : entre -2,0 % et +1,5 %.",
    "difference": "Écart réel",
    "etrto_legal_tolerance_passed": "✅ monte dans la tolérance usuelle (repère professionnel)",
    "faster_than_indicated": "⚠️ vous roulez plus vite qu'affiché (attention radars)",
    "ground_clearance": "Garde au sol",
    "new_target_tire": "Nouvelle monte envisagée",
    "original_tire_stock": "Monte d'origine (constructeur)",
    "out_of_legal_tolerance_range": "❌ monte hors tolérance usuelle (repère professionnel)",
    "popular_presets": "Exemples populaires :",
    "radar_impact": "Conséquence radars",
    "revs_km": "Tours par km :",
    "revs_km_2": "Tours par km :",
    "rim_inches": "Jante (pouces)",
    "rim_inches_2": "Jante (pouces)",
    "safe_actual_speed_is_slower": "Sécuritaire (vitesse réelle plus basse)",
    "sidewall": "Hauteur flanc :",
    "sidewall_2": "Hauteur flanc :",
    "speedometer_discrepancy_table": "Impact sur la vitesse affichée au compteur (GPS vs tableau de bord)",
    "speedometer_displayed": "Vitesse compteur affichée",
    "tire_size_equivalence_speedometer_error_calculator": "Calculateur d'équivalence de pneus & erreur compteur de vitesse",
    "total_diameter": "Diamètre total :",
    "total_diameter_2": "Diamètre total :",
    "width_mm": "Largeur (mm)",
    "width_mm_2": "Largeur (mm)",
    "copy_summary": "Équivalence Pneus {{orig}} ➔ {{newTire}}:\n- Écart de diamètre : {{diamDiff}} mm ({{diamPercent}}%)\n- Tolérance usuelle : {{compliant}}\n- Variation garde au sol : {{clearanceDiff}} mm\n- Vitesse à 130 km/h compteur : {{realSpeed}} km/h réels",
    "compliant": "CONFORME",
    "non_compliant": "NON CONFORME",
    "preset_standard_upgrade": "Standard Upgrade",
    "preset_confort_dynamique": "Confort ➔ Dynamique",
    "preset_sport": "Sport",
    "preset_suv_crossover": "SUV / Crossover",
    "size_input_label": "Taille (225/45 R17 ou 31x10.50R15)",
    "size_input_hint": "Métrique ou pouces : une taille en pouces (diamètre x largeur R jante) est convertie en millimètres.",
    "size_input_error": "Taille non reconnue ou hors plage : écrivez par exemple 225/45 R17 ou 31x10.50R15.",
    "in_inches": "En pouces :",
    "nearest_metric": "Équivalent métrique le plus proche : {{size}} ({{diameter}} mm, {{diff}} %)",
    "alt_title": "Tailles alternatives à ±3 % de diamètre",
    "alt_intro": "Largeurs de 155 à 335 mm, séries de 25 à 85 et jantes de 13 à 22 pouces dont le diamètre reste à ±3 % de {{orig}}, triées par écart. Seul le diamètre est vérifié : contrôlez l'indice de charge, l'indice de vitesse, la jante et l'existence de la taille.",
    "alt_rule_note": "±3 % est la tolérance de diamètre de l'ITV en Espagne (avec indices de charge et de vitesse au moins égaux). En France et en Allemagne, aucun texte ne fixe de pourcentage : c'est un repère courant, et une taille absente des papiers du véhicule peut exiger une homologation.",
    "alt_rim_filter": "Diamètre de jante",
    "alt_all_rims": "Toutes les jantes (13 à 22)",
    "alt_width_filter": "Largeur",
    "alt_width_near": "Largeur d'origine ±{{mm}} mm",
    "alt_width_all": "Toutes les largeurs (155 à 335 mm)",
    "alt_col_size": "Taille",
    "alt_col_diameter": "Diamètre",
    "alt_col_diff": "Écart",
    "alt_col_speed": "Réel à 130 km/h compteur",
    "alt_col_trade": "Repère −2/+1,5 %",
    "alt_yes": "oui",
    "alt_no": "non",
    "alt_compare": "Comparer",
    "alt_count": "{{shown}} tailles affichées sur {{count}} trouvées.",
    "alt_none": "Aucune taille de la grille ne reste à ±3 % avec ces filtres."
  },
  "tractor-fuel-field-work-cost-calculator": {
    "consumption_l_ha": "Consommation (l/ha)",
    "copy_summary": "Coût de chantier {{v0}} : total {{v1}} €/ha ({{v2}} € carburant + {{v3}} € main-d’œuvre + {{v4}} € machine) – total parcelle {{v5}} ha = {{v6}} € ({{v7}} L de GNR, {{v8}} h de travail)",
    "cost_breakdown_per_hectare": "Décomposition des coûts à l’hectare",
    "diesel_gnr_price_l": "Prix du GNR (€/litre)",
    "estimate_off_road_diesel_gnr_and": "Estimez la consommation de GNR (l/ha, l/h), le budget carburant, main d’œuvre et matériel pour vos travaux agricoles et chantiers de culture.",
    "field_work_cost_summary": "Coût de revient du chantier",
    "fuel": "Carburant",
    "fuel_only_ha": "Carburant seul: {{v0}} €/ha",
    "labor": "Main d’Œuvre",
    "labor_hourly_rate_h": "Coût horaire chauffeur (€/h)",
    "litres_gnr_needed": "Litres de GNR requis",
    "machinery": "Tracteur & outil",
    "machinery_labor_rates": "Charges matériel & main d’Œuvre",
    "machinery_speed_parameters": "Paramètres du travail & matériel",
    "total_field_area_ha": "Surface du chantier (ha)",
    "total_field_budget": "Budget chantier total",
    "total_full_cost": "Coût de revient total",
    "total_work_duration_ha": "Temps de travail total ({{v0}} ha)",
    "tractor_fuel_consumption_gnr_field_work": "Calculateur de consommation de carburant GNR & coût de chantier",
    "tractor_implement_cost_h": "Usure / amortissement matériel (€/h)",
    "work_output_ha_hour": "Débit de chantier (ha/heure)",
    "usure_amort": "Usure / Amort."
  },
  "tree-vineyard-planting-density-calculator": {
    "1_spacing_field_area": "1. Écartements & surface",
    "2_trellising_plant_cost": "2. Palissage & coûts",
    "calculate_plants_per_hectare_total_rootstocks": "Calculez le nombre de plants/ha et le total parcelle selon l’écartement des rangs, la longueur linéaire et le métrage de fil de palissage.",
    "cost_per_hectare": "Coût à l’hectare",
    "cost_per_rootstock_plant": "Prix unitaire du plant / pied",
    "for_area_with_net_density": "Pour {{v0}} ha (net : {{v1}} p/ha)",
    "headlands_roads": "Tournières & allées perdues (%)",
    "in_row_plant_spacing_m": "Écartement sur le rang (m)",
    "inter_row_distance_m": "Écartement entre les rangs (m)",
    "line_posts": "Piquets interm.",
    "orchard_vineyard_planting_density_trellising_calculator": "Calculateur de densité de plantation verger & vigne",
    "plant_density_per_ha": "Densité théorique / hectare",
    "planting_summary": "Bilan de plantation",
    "plants_ha": "pieds/ha",
    "surface_per_plant": "alloués par plant",
    "total_field_area_ha": "Surface totale (ha)",
    "total_plants_needed": "Total plants à commander",
    "total_rootstocks_cost": "Budget achat des plants",
    "total_row_length": "Linéaire de rangs",
    "trellis_wire": "Longueur de fil",
    "trellis_wire_levels": "Nombre de fils de palissage",
    "units": "plants",
    "copy_results": "Plantation: {{density}} pieds/ha ({{totalPlants}} plants au total pour {{area}}ha) - Rang: {{linearMeters}}m linéaires - Fils palissage: {{wireMeters}}m - Budget: {{cost}}€"
  },
  "tv-viewing-distance-size-calculator": {
    "based_on_sofa_distance": "🛋️ je connais mon recul canapé",
    "based_on_tv_screen_size": "📺 je connais la taille TV visée",
    "calculate_the_perfect_tv_diagonal_screen": "Trouvez la taille idéale de TV en pouces (4K/8K) selon votre canapé selon les recommandations de recul du cinéma THX et SMPTE.",
    "cinema_immersion_thx_40": "🎬 immersion cinéma (repère THX 40°)",
    "cinema_thx": "Immersion cinéma",
    "daily_mixed_use_smpte_30": "📺 confort standard (SMPTE 30°)",
    "e_g_55_65_75_85": "Ex: 55\", 65\", 75\", 85\"",
    "for_best_ergonomic_comfort_the_center": "Pour un confort cervical maximal, le tiers inférieur ou le centre de l’écran doit se situer exactement à hauteur de vos yeux une fois assis dans votre canapé (généralement entre 95 cm et 110 cm du sol).",
    "furniture_width_required": "Largeur du meuble requise",
    "ideal_range_to": "Fourchette idéale : {{v0}}\" à {{v1}}\"",
    "ideal_viewing_distance_for_tv": "Distance idéale pour TV {{v0}}\" :",
    "measured_from_head_to_tv_screen": "Mesurez du dossier du canapé au meuble TV",
    "metric_diagonal": "Diagonale métrique",
    "optimal_recommendation": "Recommandation optimale",
    "recommended_screen_size_for": "Taille d’écran conseillée pour",
    "screen_height": "Hauteur écran",
    "screen_resolution": "Résolution de l'écran",
    "screen_width_16_9": "Largeur écran (16:9)",
    "sofa_to_screen_distance_meters": "Distance canapé ↔ écran (mètres)",
    "standard_daily_distance_meters": "Distance TV classique : ~{{v0}} mètres",
    "tv_screen_size_inches": "Diagonale de la TV (pouces)",
    "tv_size_optimal_viewing_distance_calculator": "Calculateur taille de téléviseur TV & distance de recul",
    "viewing_experience": "Expérience recherchée",
    "viewing_parameters": "Paramètres de visionnage",
    "wall_mount_installation_height": "Hauteur d’installation au mur",
    "copy_summary": "TV & Distance de visionnage:\n- Diagonale recommandée : {{diagInch}}\" ({{diagCm}} cm)\n- Dimensions écran : {{widthCm}} cm x {{heightCm}} cm\n- Distance de visionnage idéale : {{dist}}",
    "ideal_range": "{{cinema}} m (Cinéma) à {{standard}} m (Standard)",
    "norme_thx_smpte": "Repères THX & SMPTE",
    "recommended_screen_size_for_x": "Taille d’écran conseillée pour {{distance}} m :"
  },
  "ugc-creator-rate-calculator": {
    "autorisation_spark_ads_tiktok": "Autorisation Spark Ads TikTok / Whitelisting Compte Créateur (+50€/vidéo)",
    "calculateur_de_tarifs_ugc_devis": "Calculateur de tarifs UGC & devis publicitaire (droits & Déclinaisons)",
    "calculez_la_valeur_juste_de": "Calculez la valeur juste de vos vidéos UGC en intégrant le coût de production, les variations d'accroches pour les tests A/B et les droits d'amplification publicitaire.",
    "copier_la_proposition_commerciale": "Copier la proposition commerciale",
    "ctas_supplementaires_par_video": "CTAs supplémentaires par vidéo (+25€/u)",
    "devis_copie_presse_papier": "Devis copié dans le Presse-Papier !",
    "devis_recommande_ht": "Devis recommandé HT",
    "droits_dutilisation_publicitaire_paid_ads": "Droits d'Utilisation Publicitaire (Paid Ads)",
    "fourniture_de_tous_les": "Fourniture de tous les rushs bruts non montés / Raw Footage (+40%)",
    "hooks_supplementaires_par_video": "Hooks supplémentaires par vidéo (+35€/u)",
    "livraison_express_sous_48h": "Livraison Express sous 48h ouvrées (+25%)",
    "nombre_de_videos_ugc_principales": "Nombre de vidéos UGC principales",
    "option_0_accroche_unique": "0 (Accroche unique)",
    "option_0_cta_unique": "0 (CTA unique)",
    "option_10_videos_campagne_complete": "10 Vidéos (campagne complète)",
    "option_1_accroche_alternative": "+1 Accroche alternative",
    "option_1_an_paid_ads": "1 An Paid Ads (+90%)",
    "option_1_appel_a_laction": "+1 Appel à l'action alternatif",
    "option_1_video_unique_test": "1 Vidéo unique (test)",
    "option_2_accroches_ab_testing": "+2 Accroches pour A/B testing (conseillé)",
    "option_2_appels_a_laction": "+2 Appels à l'action alternatifs",
    "option_30_jours_paid_ads": "30 Jours Paid Ads (+30%)",
    "option_3_accroches_ab_testing": "+3 Accroches pour A/B testing",
    "option_3_videos_pack_recommande": "3 Vidéos (Pack recommandé)",
    "option_5_videos_pack_mensuel": "5 Vidéos (Pack mensuel)",
    "option_90_jours_paid_ads": "90 Jours Paid Ads (+50% - Standard)",
    "option_cession_perpetuelle_buyout": "Cession Perpétuelle / Buyout (+150%)",
    "option_usage_organique_uniquement": "Usage Organique Uniquement (0€)",
    "parametres_du_package_video_ugc": "Paramètres du Package vidéo UGC",
    "pour_x_videos_options": "Pour {{count}} vidéo(s) + options",
    "proposal_closing": "Restant à votre disposition pour démarrer le projet dès validation.",
    "proposal_greeting": "Bonjour,",
    "proposal_intro": "Voici le détail de la proposition commerciale pour la création de votre contenu UGC ({{count}} vidéo(s)) :",
    "proposal_line_base_videos": "Création de {{count}} vidéo(s) UGC 9:16 complète(s) & montées (script, voix, sous-titres) : {{amount}} €",
    "proposal_line_ctas": "{{count}} déclinaisons de Call-To-Action (CTA finaux) : {{amount}} €",
    "proposal_line_hooks": "{{count}} déclinaisons de Hooks (accroches pour tests A/B publicitaires) : {{amount}} €",
    "proposal_line_raw_footage": "Cession des rushs bruts non montés (Raw Footage) : {{amount}} €",
    "proposal_line_rush": "Option Livraison Express 48h : {{amount}} €",
    "proposal_line_usage_rights": "Droits d'utilisation publicitaire ({{usage}}) : {{amount}} €",
    "proposal_line_whitelisting": "Autorisation Whitelisting / TikTok Spark Ads & Meta Ads : {{amount}} €",
    "proposal_total": "TOTAL DU DEVIS HT : {{amount}} €",
    "proposition_commerciale_prete_a_envoyer": "Proposition commerciale Prête à envoyer",
    "tarif_creation_de_base_par": "Tarif création de base par vidéo (€)",
    "tarification_createur_ugc_droits_ads": "Tarification créateur UGC & droits ads",
    "usage_label_ninety_days": "90 jours",
    "usage_label_one_year": "1 an",
    "usage_label_organic_only": "Usage organique uniquement",
    "usage_label_perpetual": "Cession perpétuelle",
    "usage_label_thirty_days": "30 jours"
  },
  "unit-converter": {
    "all_conversions_subtitle": "Équivalents pour {{v0}} {{v1}} calculés simultanément dans toute la section",
    "all_conversions_title": "Toutes les conversions en direct ({{v0}})",
    "conversion_equation": "Équation de conversion :",
    "conversion_sentence": "Conversion de {{v0}} {{v1}} ({{v2}}) en {{v3}} ({{v4}}), calculée instantanément selon le système de référence international.",
    "converted_result": "Résultat converti",
    "copied": "Copié !",
    "copy": "Copier",
    "copy_value": "Copier la valeur",
    "export_category": "Catégorie",
    "export_col_symbol": "Symbole",
    "export_col_unit": "Unité",
    "export_col_value": "Valeur convertie",
    "export_start_value": "Valeur de départ",
    "export_title": "Tableau de conversions – {{v0}}",
    "export_units_count": "Nombre d’unités converties",
    "filter_units": "Filtrer les unités…",
    "formula_card_title": "Formule et détails scientifiques",
    "high_precision": "Précision haute",
    "hub_subtitle": "{{v0}} catégories d’unités • calculs instantanés et export complet",
    "hub_title": "Convertisseur d’unités universel",
    "input_value": "Valeur d’entrée",
    "popular_only": "Unités populaires seulement",
    "search_placeholder": "Rechercher une unité ou une catégorie…",
    "swap_units": "Inverser les deux unités",
    "units_available": "unités enregistrées",
    "popular_badge": "★ Populaire",
    "standard_badge": "Standard",
    "direct_answer_detail": "Valeur précise : {{v0}} {{v1}}. 1 {{v2}} = {{v3}} {{v1}}.",
    "km_mi_table_title": "Correspondances courantes km ↔ miles",
    "half_marathon": "semi-marathon",
    "marathon": "marathon"
  },
  "unix-timestamp-epoch-converter": {
    "1_timestamp_to_human_date": "1. Timestamp vers date humaine",
    "2_human_date_to_timestamp": "2. Date humaine vers timestamp",
    "batch_timestamp_converter": "Convertisseur de liste en lot (batch)",
    "copied": "Copié !",
    "copied_2": "Copié !",
    "copied_3": "Copié !",
    "copy": "Copier",
    "copy_2": "Copier",
    "copy_epoch": "Copier",
    "current_unix_timestamp_realtime": "Timestamp Unix actuel (temps réel)",
    "date": "Date",
    "developer_epoch_timestamp_tool": "Outil développeur & standard temporel",
    "en": "fr",
    "en_us": "fr-FR",
    "enter_timestamp_sec_ms_s_ns": "Entrez un timestamp (sec, ms, µs, ns)",
    "invalid_timestamp": "Timestamp invalide",
    "local_browser_timezone": "Fuseau local du navigateur",
    "local_time": "Heure locale",
    "milliseconds_13_digits": "Millisecondes (13 chiffres)",
    "paste_one_timestamp_per_line": "Collez un timestamp par ligne...",
    "pause": "Mettre en pause",
    "relative_time": "Temps relatif",
    "resume_live": "Reprendre le Live",
    "seamlessly_convert_between_unix_epoch_timestamps": "Convertissez instantanément des timestamps en secondes, millisecondes, microsecondes avec détection automatique, fuseaux horaires et horloge temps réel.",
    "seconds_10_digits": "Secondes (10 chiffres)",
    "set_to_now": "Utiliser maintenant",
    "time_hh_mm_ss": "Heure (HH:MM:SS)",
    "timezone": "Fuseau horaire de référence",
    "unix_timestamp_epoch_converter_iso_8601": "Convertisseur timestamp Unix / epoch (date ISO 8601 & UTC)",
    "placeholder_exemple_timestamp": "ex: 1740474000"
  },
  "ups-battery-runtime-calculator": {
    "27_4k_monitor": "Écran 27\" 4K",
    "battery_wh_capacity": "Capacité batterie (wh)",
    "calculate_actual_backup_runtime_in_minutes": "Estimez le temps de secours de votre onduleur en minutes sous charge réelle (PC, box fibre, NAS, écrans) et dimensionnez la puissance VA idéale.",
    "compact_650_va_84wh": "⚡ compact (650 VA - 1x 7ah)",
    "connected_protected_equipment": "Appareils branchés sur l’onduleur",
    "each": "par unité",
    "estimated_backup_runtime": "Temps de secours estimé",
    "estimated_runtime_load": "Autonomie & charge onduleur",
    "extra_additional_load_watts": "Autres équipements additionnels (Watts)",
    "fiber_gateway_wi_fi_router": "Box fibre & routeur Wi-Fi",
    "nas_storage_server": "Serveur NAS (4 baies)",
    "office_pc_laptop": "PC bureau / télétravail",
    "office_pro_1500_va_216wh": "🛡️ Pro / bureau (1500 VA - 2x 9ah)",
    "on_battery_power": "en coupure secteur",
    "overload_detail": "La puissance demandée ({{v0}} W) dépasse la limite de l’onduleur ({{v1}} W).",
    "overload_detected": "⚠️ SURCHARGE DÉTECTÉE",
    "power_station_lifepo4_512wh": "🔋 station d’énergie LiFePO4 (512 wh)",
    "recommended_minimum_ups_size": "Dimensionnement minimum conseillé (+25%) :",
    "standard_ups_presets": "Modèles d’onduleurs courants :",
    "ups_battery_runtime_va_sizing_calculator": "Calculateur d’autonomie onduleur UPS & dimensionnement VA",
    "ups_load_percentage": "Taux de charge onduleur :",
    "ups_power_backup_battery_runtime": "Sécurité électrique & alimentation secourue",
    "ups_rating_va": "Puissance onduleur (VA)",
    "x_watts": "{{value}} Watts"
  },
  "wifi-internet-speed-bandwidth-sizer": {
    "1080p_hd_video_streams": "Streaming vidéo full HD 1080p",
    "1_peak_simultaneous_activities": "1. Usages simultanés au pic (soirée / télétravail)",
    "2_home_layout_wi_fi_coverage": "2. Logement & portée Wi-Fi",
    "4k_uhd_video_streams": "Streaming vidéo 4K UHD",
    "ample_for_your_moderate_usage_without": "Largement suffisant pour votre usage modéré sans ralentissement.",
    "at_your_target_speed": "À votre débit conseillé (",
    "cloud_gaming_esports": "Cloud gaming & jeux compétitifs",
    "continuous_cloud_video_recording_3_5": "Enregistrement cloud permanent en direct (~3.5 Mbps en envoi)",
    "coverage_mesh_system": "Couverture & répéteurs :",
    "download": "Téléchargement",
    "download_time_for": "Temps de téléchargement jeu/film (",
    "entry_fiber_300_500_mbps_or": "Fibre essentielle 300 - 500 Mbps (ou très bon VDSL / 5G box)",
    "estimate_the_required_download_upload_speeds": "Calculez la vitesse de connexion minimale (Mbps en téléchargement et envoi) requise selon vos écrans 4K, visioconférences, cloud gaming et le nombre d'habitants.",
    "hardware_wi_fi_router_guidance": "Recommandations matériel & Wi-Fi",
    "home_surface_sq_meters": "Surface du logement (m²)",
    "ideal_for_power_users_massive_simultaneous": "Idéal pour foyers ultra-connectés, téléchargements massifs et gaming intensif.",
    "internet_bandwidth_home_wi_fi_speed": "Calculateur de débit internet & bande passante Wi-Fi du foyer",
    "levels_floors": "Configuration des niveaux",
    "mesh_wi_fi_system_recommended_to": "✅ système Wi-Fi mesh (ou 1 répéteur Wi-Fi 6) fortement conseillé pour couvrir vos étages/surface sans zone morte.",
    "multi_floor_duplex": "Étage(s) / duplex",
    "people": "personnes",
    "power_user_fiber_2_to_8": "Fibre Ultra-Haut débit 2 gbps à 8 gbps (XGS-PON)",
    "recommended_household_speeds": "Débit recommandé pour votre foyer",
    "recommended_plan": "Offre idéale :",
    "recommended_wi_fi_standard": "Norme Wi-Fi conseillée :",
    "remote_work_hd_calls_zoom_teams": "Visioconférences Pro HD (zoom, Teams)",
    "requires_symmetrical_upload_download_4_mbps": "Exige débit montant + descendant (~4 Mbps up & down)",
    "screen": "écran",
    "seamless_comfort_for_simultaneous_4k_streams": "Confort total pour télétravail intensif et streaming 4K simultané.",
    "single_floor": "Plain-pied (1 étage)",
    "single_router_is_sufficient_for_this": "Box opérateur unique suffisante pour cette surface compacte.",
    "smart_security_cameras_uploading": "Caméras de surveillance connectées",
    "standard_1_gbps_fiber": "Fibre optique 1 gbps standard (offre cœur de gamme)",
    "upload": "Envoi (upload)",
    "with_1_gbps_fiber": "Avec fibre 1 gbps (900 Mbps réels) :",
    "copy_summary": "Bilan Bande Passante Internet:\n- Débit descendant conseillé : {{down}} Mbps\n- Débit montant (Upload) conseillé : {{up}} Mbps\n- Offre conseillée : {{plan}}\n- Matériel Wi-Fi conseillé : {{wifi}}\n- Téléchargement d'un fichier de {{fileSize}} Go : ~{{mins}} min",
    "desc_4k_streams": "Netflix 4K, Disney+, YouTube 4K (~25 Mbps / écran)",
    "desc_hd_streams": "TV standard, Twitch 1080p, tablettes (~5 Mbps)",
    "desc_cloud_gaming": "GeForce Now, Xbox Cloud, PS Plus (~40 Mbps + faible latence)",
    "download_time_for_size": "Temps de téléchargement jeu/film ({{size}} Go) :",
    "at_target_speed_value": "À votre débit conseillé ({{speed}} Mbps) :"
  },
  "zodiac-compatibility-calculator": {
    "aspect_conjunction": "Conjonction (même signe – miroir parfait)",
    "aspect_inconjunct": "Quinconce (différence stimulante nécessitant une adaptation)",
    "aspect_opposition": "Opposition (pôles opposés – attraction magnétique intense)",
    "aspect_sextile": "Sextile (éléments complémentaires Feu/Air ou Terre/Eau)",
    "aspect_square": "Carré (tension dynamique et passion stimulante)",
    "aspect_trine": "Trigone (même élément – harmonie naturelle)",
    "calculate_romance_communication_and_emotional_chemistry": "Testez l’affinité amoureuse entre deux signes du zodiaque selon les 4 éléments (feu, Terre, air, eau) et l'écart entre les signes.",
    "chemistry_air_air": "Air + Air : connexion intellectuelle brillante, complicité verbale et respect de la liberté.",
    "chemistry_earth_air": "Terre + Air : les idées de l’air prennent forme grâce au pragmatisme de la terre.",
    "chemistry_earth_earth": "Terre + Terre : stabilité inébranlable, sécurité matérielle et fidélité absolue.",
    "chemistry_earth_water": "Terre + Eau : la terre contient l’eau, l’eau fertilise la terre. Relation durable et féconde.",
    "chemistry_fire_air": "Feu + Air : l’air attise le feu ! Énergie stimulante, créativité et joie de vivre contagieuse.",
    "chemistry_fire_earth": "Feu + Terre : l’audace créatrice du feu s’appuie sur le roc protecteur de la terre.",
    "chemistry_fire_fire": "Feu + Feu : passion explosive, enthousiasme grandiose et vitalité décuplée.",
    "chemistry_fire_water": "Feu + Eau : attraction magnétique brûlante mêlant intensité émotionnelle et passion volcanique.",
    "chemistry_water_water": "Eau + Eau : fusion émotionnelle télépathique, tendresse infinie et empathie totale.",
    "communication_intellect": "Communication & intellect",
    "copy_summary": "Affinité {{v0}} + {{v1}} : {{v2}} %",
    "cultivate_active_transparency_to_turn_your": "Cultivez une communication ouverte et transparente pour désamorcer les non-dits et transformer les différences en forces complémentaires.",
    "emotional_bond": "Connexion émotionnelle",
    "long_term_longevity": "Stabilité à long terme",
    "overall_love_synergy_score": "Score global d’harmonie amoureuse",
    "partner_1_sign": "Votre signe astrologique",
    "partner_2_sign": "Le signe de votre partenaire",
    "passion_attraction": "Passion & attraction",
    "relationship_harmony_advice": "Conseils pour une relation épanouie",
    "relationship_key": "Clé de réussite du couple :",
    "select_zodiac_signs": "Sélection des signes du couple",
    "the_4_core_pillars": "Les 4 piliers de la relation",
    "the_bond_between_and_flourishes_when": "La synergie entre {{v0}} et {{v1}} offre un potentiel d'épanouissement remarquable dès lors que chacun respecte le rythme et le langage affectif de l'autre.",
    "zodiac_love_compatibility_astrological_synastry_calculator": "Calculateur de compatibilité amoureuse & synastrie astrologique",
    "chemistry_air_water": "Air + Eau : l’air apporte la légèreté et les mots, l’eau la profondeur des sentiments. Un duo qui apprend à concilier raison et émotion.",
    "aspect_semisextile": "Semi-sextile (signes voisins – différence à apprivoiser)"
  },
  "eu-car-import-tax-calculator": {
    "simulateur_taxe_importation_vehicule_malus": "Simulateur Taxe Importation Véhicule & Malus CO2 (Europe)",
    "france_malus_ecologique_poids": "France (Malus Écologique & Poids)",
    "allemagne_kfz_steuer": "Allemagne (Kfz-Steuer)",
    "espagne_impuesto_de_matriculacion": "Espagne (Impuesto de Matriculación)",
    "italie_ipt_superbollo": "Italie (IPT & Superbollo)",
    "union_europeenne_pas_de_douane": "Union Européenne (Pas de douane ni TVA si occasion)",
    "hors_union_europeenne_usa_suisse": "Hors Union Européenne (USA, Suisse, UK, Japon : 10% douane + 20% TVA)",
    "essence_sans_plomb": "Essence (Sans Plomb)",
    "diesel": "Diesel",
    "hybride_rechargeable_phev": "Hybride Rechargeable (PHEV)",
    "100_electrique_exoneration_malus_co2": "100% Électrique (exonération malus CO2)",
    "cout_fiscal_total_d_immatriculation": "Coût fiscal total d'immatriculation",
    "taxe_co2_malus_ecologique_avec": "Taxe CO2 / malus écologique (avec décote) :",
    "malus_sur_la_masse_taxe": "Malus sur la masse / taxe au poids :",
    "frais_d_immatriculation_carte_grise": "Frais d'Immatriculation / Carte Grise administrative :",
    "droits_de_douane_ue_10": "Droits de douane UE (10% code TARIC) :",
    "tva_a_l_importation_20": "TVA à l'importation (20% sur CIF + douane) :",
    "note_reglementaire": "Note réglementaire :",
    "certificat_de_conformite_europeen_coc": "Certificat de conformité européen (COC)",
    "constructeur": "constructeur.",
    "quitus_fiscal_formulaire_n_1993": "Quitus Fiscal (Formulaire n° 1993-REC)",
    "delivre_par_le_centre_des": "délivré par le centre des impôts.",
    "controle_technique": "Contrôle technique",
    "de_moins_de_6_mois": "de moins de 6 mois dans un pays de l’UE.",
    "certificat_d_immatriculation_etranger_original": "Certificat d’immatriculation étranger original",
    "parties_1_et_2": "(Parties 1 et 2).",
    "note_fr": "Décote d'ancienneté appliquée : {{rate}}% ({{months}} mois). Véhicule électrique exonéré.",
    "note_de": "Taxe annuelle sur la circulation Kfz-Steuer (base 95g CO2). Véhicules 100% électriques exonérés jusqu’en 2030.",
    "note_es": "Taux applicable selon tranche CO2 : {{rate}}% sur base décotée de {{base}}%.",
    "note_it": "Comprend l’IPT provinciale de transcription et l’éventuel Superbollo pour fortes motorisations.",
    "normes_wltp_decote": "Normes WLTP & Décote d'ancienneté",
    "estimez_le_cout_total": "Estimez le coût total d'immatriculation lors de l'achat ou de l'importation d'une voiture en Europe : Malus écologique CO2, taxe au poids, droits de douane hors-UE et décote d'âge légale.",
    "pays_immatriculation_origine": "Pays d'Immatriculation & Origine",
    "pays_de_destination": "Pays de destination (immatriculation)",
    "provenance_du_vehicule": "Provenance du véhicule",
    "caracteristiques_techniques": "Caractéristiques techniques du véhicule",
    "motorisation_energie": "Motorisation / énergie",
    "prix_d_achat_valeur_venale": "Prix d'achat ou valeur vénale (€)",
    "emissions_co2_wltp": "Émissions de CO2 WLTP (g/km)",
    "masse_en_ordre_de_marche": "Masse en ordre de marche (kg)",
    "age_du_vehicule": "Âge du véhicule depuis 1ère immatriculation : {{months}} mois ({{years}} ans)",
    "decote_anciennete": "Décote d'ancienneté : {{value}}%",
    "pays_fr": "France",
    "pays_de": "Allemagne",
    "pays_es": "Espagne",
    "pays_it": "Italie",
    "total_taxes_frais_carte_grise": "Total taxes + frais de carte Grise",
    "surcout_fiscal": "Surcoût fiscal : {{value}}% du prix d'achat",
    "documents_requis_intra_ue": "Documents requis pour l'importation Intra-UE",
    "vat_import_rate": "TVA à l'importation ({{rate}} % sur prix + douane) :",
    "vat_new_vehicle_rate": "TVA du véhicule neuf ({{rate}} %, due dans le pays de destination) :",
    "non_eu_option_destination_vat": "Hors Union Européenne (USA, Suisse, UK, Japon : 10% douane + TVA du pays)"
  },
  "deep-work-focus-time-audit": {
    "perte_re_focalisation_cognitive": "Perte par re-focalisation cognitive",
    "temps_reunions_shallow_work": "Temps passé en réunions & shallow work",
    "cout_annuel_de_la_distraction": "Coût annuel estimé de la distraction",
    "isolez_chaque_matin_2_blocs": "Isolez chaque matin 2 blocs de concentration ininterrompus.",
    "ne_consultez_votre_boite_mail": "Ne consultez vos emails et messageries que 2 à 3 fois par jour.",
    "reduisez_les_reunions_de_30": "Réduisez la durée de toutes les réunions de 30 minutes à 20 minutes.",
    "deep_work_2": "Deep Work (Travail Profond)",
    "reunions_admin_2": "Réunions & Administratif",
    "fragmentation_pertes": "Fragmentation & Pertes d attention",
    "deep_work": "Travail Profond",
    "reunions_admin": "Réunions & Admin",
    "fragmentation_re_focalisation": "Pertes de Re-focalisation",
    "workday_duration": "Durée de la journée de travail (h)",
    "meeting_hours": "Heures passées en réunions (h/j)",
    "real_deep_work_time": "Temps Réel de Deep Work (Flow)",
    "hours_per_day": "{{value}} h / jour",
    "share_of_workday": "Soit <0>{{value}}%</0> de votre journée de travail",
    "approx_hours_per_day": "~{{value}} h / jour",
    "interruptions_refocus": "{{value}} interruptions × 23 min pour retrouver l'attention",
    "emails_slack_meetings": "Emails, Slack, réunions ({{value}}% du temps)",
    "lost_time_value": "Valeur du temps perdu sur 225 jours ouvrés",
    "interruptions_and_pollution": "1. Interruptions & Pollutions de la journée",
    "label_interruptions": "Nombre d'interruptions / jour",
    "label_email_admin": "Heures sur emails & admin (h/j)",
    "label_hourly_value": "Valeur horaire de votre temps ({{currency}}/heure)",
    "protocol_title": "2. Protocole pour Débloquer +3h de Deep Work / Jour",
    "timeblocking": "Blocage de créneaux sacrés (Timeblocking)",
    "email_batching": "Traitement des emails en lot (Batching)",
    "meeting_rule": "Règle des réunions 25/50 minutes",
    "typical_day_breakdown": "Répartition Visuelle d'une Journée Type de {{value}} Heures",
    "bar_deep_work": "Deep Work ({{value}}h)",
    "bar_meetings_admin": "Réunions & Admin ({{value}}h)",
    "bar_interruptions": "Interruptions ({{value}}h)",
    "interruptions_lost_12min_one": "{{count}} interruption × 12 min de travail profond perdu",
    "interruptions_lost_12min_other": "{{count}} interruptions × 12 min de travail profond perdu"
  },
  "eu-cbam-carbon-tax-calculator": {
    "simulateur_taxe_carbone_aux_frontieres": "Simulateur Taxe Carbone aux Frontières (MACF / CBAM)",
    "marche_du_carbone_deductions": "Marché du carbone & déductions",
    "cout_certificats_macf_cbam_estime": "Coût Certificats MACF / CBAM estimé",
    "empreinte_carbone_totale": "Empreinte carbone totale",
    "ecart_prix_carbone_net": "Écart prix carbone net",
    "projection_a_100_horizon_2034": "Projection à 100% (Horizon 2034)",
    "sector_steel_primary": "Acier Primaire (Haut Fourneau BF-BOF)",
    "sector_steel_eaf": "Acier électrique Recyclé (EAF)",
    "sector_aluminum_unwrought": "Aluminium brut (Électrolyse)",
    "sector_aluminum_processed": "Aluminium Transformé & Profilés",
    "sector_cement_clinker": "Clinker de ciment Gris",
    "sector_fertilizer_ammonia": "Engrais Azotés (Ammoniac)",
    "sector_hydrogen_grey": "Hydrogène Gris (Vaporeformage SMR)",
    "sector_hydrogen_green": "Hydrogène vert (Électrolyse Renouvelable)",
    "cat_steel": "Acier & Fer",
    "cat_aluminum": "Aluminium",
    "cat_cement": "Ciment",
    "cat_fertilizer": "Engrais",
    "cat_hydrogen": "Hydrogène",
    "estimez_le_cout_des_certificats": "Estimez le coût des certificats d'émissions carbone CBAM pour les importations industrielles dans l'Union européenne (acier, aluminium, ciment, engrais, Hydrogène).",
    "marchandises_intensite_carbone": "Marchandises & intensité carbone",
    "secteur_type_de_produit_eligible": "Secteur & type de produit Éligible CBAM",
    "volume_importe_tonnes": "Volume Importé (tonnes)",
    "intensite_carbone_t_co2e_tonne": "Intensité carbone (t CO₂e / tonne)",
    "prix_quota_carbone_eu_ets": "Prix Quota Carbone EU ETS (€ / t CO₂)",
    "prix_carbone_deja_paye_au_pays": "Prix carbone déjà payé au pays source (€)",
    "phase_d_extinction_des_quotas_gratuits": "Phase d'extinction des quotas gratuits UE ({{value}}%) :",
    "periode_transitoire_2026_2028": "Période transitoire 2026-2028",
    "pleine_application": "Pleine application",
    "soit_un_surcout_frontalier_de": "Soit un surcoût frontalier de <0>+{{value}} € / tonne</0> de produit importé.",
    "impact_plein_regime": "Impact plein régime : +{{value}} € / tonne de produit importé.",
    "obligations_declaratives": "Obligations Déclaratives :",
    "depuis_octobre_2023_la_declaration": "Depuis le 1er janvier 2026, la déclaration annuelle des émissions directes et indirectes (Scope 1 & 2) est obligatoire sur le registre CBAM européen."
  },
  "eu-energy-unit-converter": {
    "convertisseur_d_energie_cout_electricite": "Convertisseur d'Énergie & Coût Électricité / Gaz",
    "quantite_d_energie": "Quantité d'énergie",
    "unite_d_origine": "Unité d'origine",
    "parametres_tarifaires_facture": "Paramètres tarifaires & Facture",
    "prix_ttc_kwh": "Prix TTC (€/kWh)",
    "abonnement_annuel": "Abonnement annuel (€)",
    "kilowattheures": "Kilowattheures (kWh)",
    "megawattheures": "Mégawattheures (MWh)",
    "gaz_naturel_m": "Gaz naturel (m³ PCS)",
    "gigajoules": "Gigajoules (GJ)",
    "budget_energie_estime": "Budget énergie annuel estimé",
    "fourniture_de_la_molecule_electron": "Fourniture de l'énergie (molécule / électron) : 55%",
    "acheminement_transport_reseau_25": "Acheminement & réseau (TURPE / ATRT) : 25%",
    "taxes_d_accise_contributions_20": "Taxes et contributions (accise / CTA / TVA) : 20%",
    "app_subtitle": "Convertissez instantanément kWh, MWh, m³ de gaz naturel (PCS), thermies et joules, avec décomposition de facture d'électricité aux standards européens.",
    "source_val_units": "Valeur source & unités",
    "unit_mwh": "Mégawattheure (MWh)",
    "unit_m3_gas": "Mètre cube de gaz (m³ PCS)",
    "equiv_table_title": "Tableau des équivalences énergétiques :",
    "unit_kwh": "Kilowattheure (kWh)",
    "unit_gwh": "Gigawattheure (GWh)",
    "unit_thermie": "Thermie (th)",
    "unit_gj": "Gigajoule (GJ)",
    "coefficient_gaz_pcs": "Coefficient de conversion gaz PCS (kWh / m³)",
    "eur_par_an": "{{value}} € / an",
    "soit_environ_par_mois": "Soit environ <0>{{value}} € / mois</0>"
  },
  "eu-roaming-fair-use-calculator": {
    "calculateur_roaming_ue_formule_officielle": "Calculateur Roaming UE (Politique d'Utilisation Raisonnable)",
    "simulation_de_votre_sejour_en": "Simulation de votre séjour en Europe",
    "quota_minimum_garanti_en_europe": "Quota data 4G/5G garanti en Europe (UE)",
    "attention_suisse_andorre_et_royaume": "Attention : Suisse, Andorre et Royaume-Uni (hors UE)",
    "calculez_votre_quota_legal_minimum": "Calculez votre quota légal minimum de data internet garanti sans surcoût en voyage dans l'Union européenne (Règlement \"Roam Like at Home\") selon la formule européenne.",
    "votre_forfait_mobile_national": "Votre Forfait Mobile National",
    "prix_mensuel_forfait_ttc": "Prix Mensuel Forfait TTC (€)",
    "volume_data_national_go": "Volume Data National (Go)",
    "taux_de_tva": "Taux de TVA (%)",
    "plafond_prix_de_gros_ue": "Plafond Prix de Gros UE (€/Go)",
    "cap_130": "1.30 € / Go (barème légal 2025)",
    "cap_110": "1.10 € / Go (barème légal 2026)",
    "cap_100": "1.00 € / Go (barème légal 2027-2032)",
    "duree_du_voyage_jours": "Durée du voyage (jours)",
    "conso_estimee_go_jour": "Conso Estimée (Go / jour)",
    "go_mois": "{{value}} Go / mois",
    "calcule_selon_la_formule_europeenne": "Calculé selon la formule européenne : <0>2 × (Prix HT {{price}} € ÷ {{cap}} €)</0>",
    "consommation_prevue_jours": "Consommation Prévue ({{days}} jours) :",
    "go_value": "{{value}} Go",
    "depassement_de_forfait_go_hors": "Dépassement de forfait : +{{value}} Go hors-forfait",
    "surfacturation_maximale_plafonnee": "Surfacturation maximale plafonnée : <0>+{{extra}} €</0> ({{rate}} € / Go TTC).",
    "100_inclus_dans_votre_enveloppe_europeenne": "100% inclus dans votre enveloppe européenne sans frais supplémentaires !",
    "zone_geographique_eligible": "Zone géographique Éligible :",
    "valable_dans_les_27_pays": "Valable dans les 27 pays de l'Union européenne + Norvège, Islande et Liechtenstein (EEE)."
  },
  "golden-hour-sun-calculator": {
    "4_elevdeg": "4° (Golden Hour)",
    "6_elevdeg": "-6° (Aube civile)",
    "planificateur_golden_hour_trajectoire_solaire": "Planificateur Golden Hour & Trajectoire Solaire (Photo/Vidéo)",
    "ville_us": "Ville de référence",
    "date": "Date de prise de vue",
    "hauteur_sujet_ft_pieds": "Hauteur du sujet (mètres / ft)",
    "golden_hour_matin": "Golden Hour Matin",
    "golden_hour_soir": "Golden Hour Soir",
    "blue_hour_heure_bleue": "Blue Hour (Heure Bleue)",
    "lumiere_froide_ciel_bleu_profond": "Lumière froide & ciel bleu profond (contraste)",
    "ephemeride_ombres": "Éphéméride & Ombres projetées",
    "elevation_solaire_max": "Élévation solaire maximale",
    "angle_a_midi_solaire": "Angle à midi solaire",
    "longueur_d_ombre_golden_hour": "Longueur d'ombre en Golden Hour",
    "subtitle_desc": "Calculez l'heure dorée, l'heure bleue, l'élévation du soleil et la longueur des ombres pour vos shootings photo, tournages et visites immobilières.",
    "loc_date_title": "Localisation & Date de Prise de Vue",
    "ideal_golden_slots": "Créneaux idéaux de lumière dorée",
    "sunrise_label": "Lever du soleil : {{val}}",
    "sunset_label": "Coucher du soleil : {{val}}",
    "solar_noon_label": "Midi Solaire : {{val}}",
    "multiplier_shadow": "Multiplicateur : {{ratio}}x la hauteur",
    "elevation_chart_title": "Courbe d'élévation solaire sur 24h (degrés °)",
    "elevation_tooltip": "Élévation",
    "hour_tooltip": "Heure : {{val}}"
  },
  "hashtag-reach-shadowban-auditor": {
    "score_de_sante_seo": "Score de santé SEO & Visibilité",
    "votre_liste_de_hashtags_ou": "Votre liste de hashtags (séparés par des espaces ou virgules)",
    "instagram_recommande_5_a_8": "Instagram recommande 5 à 8 tags pertinents (éviter le bourrage)",
    "tiktok_recommande_3_a_5": "TikTok recommande 3 à 5 tags ultra-ciblés",
    "linkedin_recommande_3_a_5": "LinkedIn recommande 3 à 5 hashtags professionnels",
    "youtube_recommande_3_tags_principaux": "YouTube recommande 3 hashtags principaux au-dessus du titre",
    "hashtag1_hashtag2": "#hashtag1, #hashtag2...",
    "hashtags_nettoyes_strategie_seo": "Hashtags nettoyés & Stratégie SEO optimale",
    "3_hashtags_de_niche_precise": "3 hashtags de niche précise (< 50k posts)",
    "ex_startupfrance_growthb2b": "ex: #startupfrance, #growthb2b",
    "3_hashtags_de_thematique_large": "3 hashtags de thématique large (100k - 1M posts)",
    "ex_marketingdigital_entrepreneuriat": "ex: #marketingdigital, #entrepreneuriat",
    "2_hashtags_de_communaute_cible": "2 hashtags de communauté cible",
    "ex_freelancefrance": "ex: #freelancefrance, #solopreneur",
    "hashtags_exemple": "#entrepreneuriat #marketingdigital #growthhacking #socialmediamarketing #createurdecontenu #ia #conseilbusiness #businessenligne #startupfrance",
    "seo_reseaux_sociaux_spam": "SEO réseaux sociaux & détection spam",
    "auditeur_hashtags_seo_shadowban": "Auditeur de Hashtags, SEO & Détecteur de Risque Shadowban",
    "analysez_selection_hashtags": "Analysez votre sélection de hashtags, détectez les tags bannis ou saturés par les bots, et optimisez votre référencement sémantique (SEO) sur Instagram, TikTok et LinkedIn.",
    "aucun_tag_a_risque": "✓ aucun tag à risque",
    "tags_dangereux": "⚠️ {{value}} tag(s) dangereux",
    "plateforme": "Plateforme",
    "collez_vos_hashtags": "Collez vos hashtags",
    "hashtags_uniques_detectes": "{{value}} hashtag(s) unique(s) détecté(s)",
    "densite_optimale": "✓ densité optimale",
    "conseil_4_a_8_hashtags": "Conseil : 4 à 8 hashtags max",
    "hashtags_bannis_detectes": "Hashtags Bannis ou signalés Détectés :",
    "hashtags_restreints": "Ces hashtags sont restreints par les plateformes en raison de spam récurrent. Leur utilisation bloque la distribution de votre post.",
    "hashtags_recommandes_nettoyes": "Hashtags recommandés Nettoyés :",
    "hashtags_nettoyes_copies": "Hashtags Nettoyés copiés !",
    "copier_hashtags_optimises": "Copier les hashtags optimisés",
    "formule_seo_gagnante": "La formule SEO Gagnante (3-3-2) :"
  },
  "instagram-engagement-pricing": {
    "taux_d_engagement_reel": "Taux d'engagement réel calculé",
    "metriques_de_votre_compte": "Métriques de votre compte Instagram",
    "grille_tarifaire_recommandee_pour_marques": "Grille tarifaire recommandée pour les marques",
    "top_choix": "Top choix",
    "conseil_negociation": "Conseil négociation partenariats",
    "n_hesitez_pas_a_facturer": "N'hésitez pas à facturer des droits de cession d'image et d'amplification média",
    "pour_les_droits_d_amplification": "pour les droits publicitaires payants (Dark Ads)",
    "niche_finance_crypto": "Finance / Business / Crypto",
    "niche_tech_saas": "Tech / IA / Informatique",
    "niche_health_fitness": "Santé / Fitness / Nutrition",
    "niche_beauty_fashion": "Mode / beauté / Skincare",
    "niche_food_cooking": "Food / Cuisine / Restauration",
    "niche_travel_lifestyle": "Voyage / Lifestyle / Déco",
    "niche_gaming_humor": "Gaming / humour / Mèmes",
    "faible": "Faible",
    "exceptionnel_top_5": "Exceptionnel (5 % et plus)",
    "tres_bon_au_dessus_de": "Très bon (au-dessus de la moyenne)",
    "moyen_standard": "Moyen / Standard",
    "tarif_recommande_pour_1_format": "Tarif recommandé pour 1 {{format}} : {{price}} € (Base {{followers}} abonnés - Taux d'engagement {{rate}}%)",
    "algorithme_instagram_sponsored_rates": "Algorithme Instagram & Sponsored Rates",
    "calculateur_taux_d_engagement_tarifs": "Calculateur Taux d'Engagement & Tarifs Sponsoring Instagram",
    "analysez_votre_taux_d_engagement_reel": "Analysez votre taux d'engagement réel (enregistrements et partages inclus) et obtenez votre grille tarifaire recommandée pour marques et agences.",
    "nombre_d_abonnes_followers": "Nombre d'abonnés (Followers)",
    "likes_moyens": "Likes moyens",
    "commentaires_moyens": "Commentaires moyens",
    "enregistrements": "Enregistrements",
    "partages_dms_stories": "Partages (DMs/Stories)",
    "thematique_niche_du_compte": "Thématique / niche du compte",
    "video_reel_30_60s": "Vidéo Reel (30-60s)",
    "format_le_plus_remunerateur_viral": "Format le plus rémunérateur & viral",
    "post_carrousel_multi_slides": "Post Carrousel (Multi-slides)",
    "fort_taux_de_sauvegarde_valeur": "Fort taux de sauvegarde & valeur éducative",
    "post_photo_unique_feed": "Post Photo Unique Feed",
    "visuel_unique_texte_captivant": "Visuel unique + texte captivant",
    "sequence_3_stories_avec_lien": "Séquence 3 stories avec lien",
    "parfait_pour_conversions_trafic_direct": "Parfait pour conversions & trafic direct",
    "pack_complet_360_reel_carrousel": "Pack Complet 360° (Reel + Carrousel + Stories)",
    "offre_cle_en_main_recommandee": "Offre clé en main recommandée (-15% bundle)",
    "copier_le_devis": "Copier le devis",
    "n_hesitez_pas_a_facturer_droits": "N'hésitez pas à facturer des droits de cession d'image et d'amplification média <0>+30% - +50%</0> pour les droits publicitaires payants (Dark Ads)"
  },
  "schengen90180-calculator": {
    "calculateur_espace_schengen_regle_des": "Calculateur Espace Schengen - Règle des 90/180 Jours",
    "date_d_entree": "Date d'entrée",
    "date_de_sortie": "Date de sortie",
    "vous_pouvez_rester_au_maximum": "Vous pouvez rester au maximum :",
    "jusqu_au": "jusqu'au",
    "le_jour_d_entree_et": "Le jour d'entrée et le jour de sortie comptent chacun pour un jour plein passé dans l'Espace Schengen.",
    "la_fenetre_de_180_jours": "La fenêtre de 180 jours est",
    "glissante": "glissante",
    "elle_recule_d_un_jour": ": elle recule d'un jour chaque nouveau jour et examine les 180 derniers jours calendaires.",
    "valable_dans_les_29_pays": "Valable dans les 29 pays de la zone Schengen (UE hors Irlande et Chypre, + Norvège, Suisse, Islande, Liechtenstein).",
    "sejour_espagne_france": "Séjour Espagne / France",
    "vacances_italie": "Vacances Italie",
    "projet_portugal": "Projet Portugal",
    "sejour_n": "Séjour #{{value}}",
    "outil_officiel_voyageurs": "Outil pour les voyageurs hors UE (UK, US, Canada, nomades) : calculez vos jours restants et votre date limite de sortie sur toute fenêtre glissante de 180 jours.",
    "historique_et_projets_de_sejours": "Historique et projets de séjours",
    "ajouter_un_sejour": "Ajouter un séjour",
    "x_jours": "{{value}} jours",
    "zero_j": "0 j",
    "supprimer": "Supprimer",
    "date_de_reference_evaluation": "Date de référence pour l'évaluation",
    "fenetre_analysee": "Fenêtre de 180 jours analysée : {{start}} ➔ {{end}}",
    "jours_restants_autorises": "Jours restants Autorisés",
    "x_sur_90_jours": "{{value}} / 90 jours",
    "jours_deja_consommes": "{{value}} jours déjà consommés dans cette fenêtre",
    "depassement_illegal_overstay": "Dépassement Illégal (overstay) !",
    "depassement_limite_legale": "Vous dépassez la limite légale des 90 jours autorisés de {{value}} jour(s). Risque d'amende et d'interdiction de territoire Schengen.",
    "sejour_conforme": "Séjour Conforme aux Règles Schengen",
    "si_vous_entrez_le": "Si vous entrez le <0>{{date}}</0>, vous pouvez rester au maximum <0>{{days}} jours consécutifs</0> (jusqu'au <0>{{exit}}</0>).",
    "principes_cles_regle_90_180": "Principes clés de la règle 90/180 :",
    "fenetre_glissante": "La fenêtre de 180 jours est <0>glissante</0> : elle recule d'un jour chaque nouveau jour et examine les 180 derniers jours calendaires."
  },
  "social-video-specs-bitrate": {
    "bitrate_recommande": "Bitrate recommandé",
    "mbps": "Mbps",
    "parametres_du_projet_video": "Paramètres du projet vidéo",
    "24_fps_cinema_standard": "24 fps (Cinéma standard)",
    "30_fps_standard_reseaux": "30 fps (Standard réseaux & mobile)",
    "60_fps_ultra_fluide_gaming": "60 fps (Ultra fluide / Gaming & Sport)",
    "ratio_resolution": "Ratio & Résolution recommandée",
    "codec_conteneur": "Codec & Conteneur vidéo",
    "audio_recommande": "Spécifications Audio recommandées",
    "guide_des_safe_zones_elements": "Guide des Safe Zones (Éléments d'interface)",
    "preset_export_ideal_capcut_premiere": "Preset d'export idéal (CapCut, Premiere, DaVinci)",
    "format_mp4_h_264": "Format : MP4 (H.264 / AVC)",
    "profil_high_vbr_2_passes": "Profil High, VBR 2 passes ou VBR cible recommandé ci-dessus",
    "audio_aac_stereo_320_kbps": "Audio : AAC, Stéréo, 320 kbps, 48 kHz",
    "aspect_9_16": "9:16 (Vertical)",
    "aspect_16_9": "16:9 (Horizontal)",
    "aspect_twitter": "16:9 ou 1:1 ou 9:16",
    "aspect_linkedin": "1:1 (carré) ou 9:16 ou 16:9",
    "res_yt_4k": "3840 x 2160 px (ou 1920x1080)",
    "res_twitter": "1080 x 1920 px ou 1920 x 1080 px",
    "res_linkedin": "1080 x 1080 px (recommandé)",
    "codec_reels": "H.264 / AAC (MP4 ou MOV)",
    "codec_shorts": "H.264 ou VP9",
    "safe_reels": "Garder le texte à 220px du bas (zone caption & audio) et 110px de la droite (icônes likes/partages).",
    "safe_tiktok": "Éviter le coin supérieur gauche (onglets Suivi/Pour Toi) et 250px en bas.",
    "safe_shorts": "Bouton Remix et description occupent les 200px inférieurs.",
    "safe_yt_4k": "Format 16:9 standard cinéma, aucune obstruction permanente.",
    "safe_twitter": "Compression Twitter agressive : exporter avec un bitrate constant (CBR).",
    "safe_linkedin": "Beaucoup d'utilisateurs regardent sans son : sous-titres incrustés obligatoires.",
    "export_video_encodage_reseaux": "Export vidéo & Encodage réseaux sociaux",
    "calculateur_de_bitrate_video_formats": "Calculateur de bitrate vidéo & formats réseaux sociaux",
    "obtenez_le_bitrate_ideal": "Obtenez le bitrate idéal (Mbps) pour éviter la compression destructrice des algorithmes, calculez le poids de votre fichier et respectez les zones de sécurité (Safe-Zones).",
    "poids_estime": "Poids estimé : ~{{size}} Mo",
    "plateforme_cible": "Plateforme Cible",
    "duree_de_la_video_secondes": "Durée de la vidéo (secondes)",
    "frequence_d_images_fps": "Fréquence d'images (FPS)",
    "audio_bitrate_aac": "{{bitrate}} kbps AAC (48 kHz)",
    "zone_de_securite_graphique": "Zone de sécurité graphique :",
    "debit_cible_max": "Débit cible : {{target}} Mbps (Débit max : {{max}} Mbps)",
    "name_tiktok": "Vidéo TikTok",
    "name_yt_long": "YouTube format long 4K / 1080p",
    "name_twitter": "Vidéo X (Twitter)",
    "name_linkedin": "Vidéo LinkedIn"
  },
  "solar-battery-storage-roi": {
    "10_a_15_ans": "10 à 15 ans",
    "economie_nette_annuelle_an_1": "Économie nette annuelle (An 1)",
    "an": "an",
    "taux_d_auto_consommation": "Taux d'auto-consommation",
    "independance_energetique": "Indépendance énergétique (Autonomie)",
    "production_solaire_annuelle_estimee": "Production solaire annuelle estimée",
    "auto_consommation": "Auto-consommation",
    "revente_surplus": "Revente de surplus",
    "energie_gratuite_auto_consommee": "Énergie gratuite auto-consommée",
    "surplus_reinjecte_au_reseau": "Surplus réinjecté au réseau",
    "label_power": "Puissance solaire installée (kWc)",
    "label_battery_cap": "Capacité utile de la batterie (kWh)",
    "label_battery_cost": "Coût total batterie + onduleur hybride (€)",
    "label_grid_price": "Prix achat électricité réseau (€/kWh)",
    "label_inflation": "Inflation Annuelle Projetée du Prix de l'Électricité (%)",
    "retour_sur_investissement_amortissement": "Retour sur investissement (amortissement)",
    "x_ans": "{{value}} Ans",
    "plus_de_20_ans": "> 20 Ans",
    "duree_de_vie_garantie_batterie": "Durée de vie garantie batterie : <0>10 à 15 ans</0> (6000 cycles)",
    "grace_aux_x_kwh_stockes": "Grâce aux <0>{{value}} kWh</0> stockés et auto-consommés",
    "contre_seulement_35_sans_batterie": "Contre seulement <0>35%</0> sans batterie de stockage",
    "de_vos_besoins_couverts_par_le": "De vos besoins couverts par le solaire",
    "1_dimensionnement_batterie_panneaux": "1. Dimensionnement Batterie & Panneaux",
    "consommation_annuelle_de_la_maison_kwh": "Consommation annuelle de la maison (kWh)",
    "production_solaire_annuelle_estimee_x": "Production solaire annuelle estimée : <0>{{value}} kWh / an</0>",
    "2_tarifs_reseau_revente_du_surplus": "2. Tarifs réseau & revente du surplus (€/kWh)",
    "tarif_revente_surplus_obligation_d_achat": "Tarif Revente Surplus Obligation d'Achat (€/kWh)",
    "repartition_de_la_production_solaire_annuelle": "Répartition de la Production Solaire Annuelle ({{value}} kWh)",
    "auto_consommation_directe_batterie_x_kwh": "Auto-consommation directe + batterie ({{value}} kWh)",
    "revente_reseau_x_kwh": "Revente réseau ({{value}} kWh)",
    "energie_gratuite_auto_consommee_x": "Énergie gratuite auto-consommée : <0>{{value}}%</0>",
    "surplus_reinjecte_au_reseau_x": "Surplus réinjecté au réseau : <0>{{value}}%</0>",
    "market_label": "Cadre tarifaire",
    "market_fr": "France : tarif réglementé et rachat S21",
    "market_de": "Allemagne : Einspeisevergütung EEG et prix moyen BDEW",
    "label_commissioning": "Mise en service de l'installation PV (Allemagne)",
    "label_feed_in_eeg": "Einspeisevergütung EEG, vente du surplus (€/kWh)",
    "eeg_rates": "Taux EEG (vente du surplus) pour une mise en service du {{from}} au {{to}} : {{r10}} c€/kWh jusqu'à 10 kWc, {{r40}} c€/kWh de 10 à 40 kWc, {{r100}} c€/kWh de 40 à 100 kWc. Pour {{kwp}} kWc, au prorata des tranches : {{rate}} c€/kWh, fixe pendant 20 ans.",
    "eeg_no_rate": "Aucun taux EEG pour cette date dans l'outil : le tableau couvre les mises en service du 01/01/2023 au 31/12/2026, et la Bundesnetzagentur n'a pas encore publié de taux pour 2027. Saisissez le tarif indiqué sur le décompte du gestionnaire de réseau.",
    "eeg_over_100": "Au-delà de 100 kWc, il n'y a plus de tarif d'achat fixe en Allemagne (vente directe obligatoire). Saisissez le revenu attendu par kWh.",
    "de_price_hint": "Prix de l'électricité : 0,37 €/kWh par défaut, prix moyen 2026 des ménages allemands (3 500 kWh/an) selon la BDEW-Strompreisanalyse d'août 2026. Il inclut l'abonnement au prorata ; pour l'économie, seul compte le prix du kWh de votre contrat.",
    "de_vat_hint": "TVA : 0 % sur la batterie et la pose pour les installations de 30 kWc au plus sur ou près d'un logement (§ 12 Abs. 3 UStG, depuis 2023). Le prix saisi est donc le même hors taxes et TTC.",
    "de_rules_hint": "Solarspitzengesetz (depuis le 25/02/2025), pour les nouvelles installations allemandes : sous 100 kW, l'injection est plafonnée à 60 % de la puissance tant que le compteur communicant et le boîtier de pilotage ne sont pas posés (§ 9 Abs. 2 EEG). À partir de l'année qui suit la pose du compteur communicant, les périodes de prix de marché négatifs ne sont pas rémunérées (§ 51 EEG) ; elles sont reportées à la fin de la période de soutien (§ 51a EEG). Une batterie absorbe ces pics de midi, mais l'outil ne compte pas ce gain.",
    "static_payback_title": "Amortissement de la batterie (méthode simple)",
    "static_payback_line": "Durée d'amortissement = coût ÷ économie de l'an 1 = {{cost}} ÷ {{saving}} = {{years}} ans (sans hausse du prix ; avec la hausse, voir plus haut).",
    "static_payback_none": "Pas d'amortissement : l'économie de l'an 1 est nulle ou négative.",
    "saving_per_kwh_line": "{{kwh}} kWh passent de l'injection à l'autoconsommation ; chacun rapporte {{price}} − {{feed}} = {{diff}}."
  },
  "streamer-revenue-sub-split": {
    "net_estime_twitch_mois": "Net estimé Twitch / mois",
    "abonnements_communaute": "Abonnements & communauté",
    "affilie_standard_split_50_50": "Affilié Standard (Split 50/50)",
    "partner_plus_split_70_30": "Partner Plus (Split 70/30)",
    "comparatif_twitch_vs_kick": "Comparatif direct Twitch vs Kick (95/5)",
    "gross_amount": "{{value}} brut",
    "economy_heading": "Économie du streaming & Sub Split",
    "simulator_title": "Simulateur de Revenus Streamer (Twitch 50/50 & 70/30 vs Kick 95/5)",
    "simulator_intro": "Calculez vos gains nets de streaming selon vos abonnements (Tier 1/2/3, Prime), vos Bits, les publicités et déduisez vos charges sociales.",
    "subs_tier1": "Subs Tier 1 (4,99 $)",
    "subs_tier2": "Subs Tier 2 (9,99 $)",
    "subs_tier3": "Subs Tier 3 (24,99 $)",
    "subs_prime": "Subs Prime (Gratuits)",
    "twitch_program": "Programme Twitch",
    "monthly_bits": "Bits / Cheers Mensuels",
    "social_charges_pct": "Charges Sociales (%)",
    "avg_viewers_ccv": "Spectateurs moyens simultanés (CCV)",
    "stream_hours_month": "Heures de Stream / mois",
    "kick_split": "Kick (Split 95/5)",
    "per_live_hour": "Soit {{value}} $ / heure de live",
    "twitch_split": "Twitch ({{split}})",
    "net_after_charges": "Net après charges ({{rate}}%) :",
    "sub_gap_kick": "Écart de revenus abonnements : <0>+{{amount}} $ / mois</0> en faveur de Kick sur la même base d'abonnés payants (hors Prime).",
    "bits_converter_title": "Bits Twitch en dollars",
    "bits_answer": "{{bits}} bits = {{amount}}",
    "bits_count": "Nombre de bits",
    "usd_per_bit": "Reversé par bit (US$)",
    "bits_note": "Twitch reverse aux chaînes Affiliées et Partenaires 1 cent de dollar par bit utilisé chez elles (blog officiel de Twitch, 21/04/2017). En euros ou en livres, appliquez le taux de change du jour."
  },
  "substack-newsletter-revenue-forecaster": {
    "abonnes_payants_actuels": "Abonnés payants actuels",
    "revenu_mensuel_net_mrr": "Revenu mensuel net (MRR)",
    "revenu_annuel_net_arr": "Revenu annuel net (ARR)",
    "mrr_net_projete_a_m": "MRR net projeté à M+12",
    "taux_de_conversion_gratuit_payant": "Taux de conversion gratuit vers payant (%)",
    "abonnes_mensuels": "Abonnés mensuels",
    "abonnes_annuels": "Abonnés annuels",
    "part_d_abonnes_choisissant_l": "Part d'abonnés choisissant l'annuel (%)",
    "mois": "Mois",
    "abonnes_gratuits": "Abonnés gratuits",
    "abonnes_payants": "Abonnés payants",
    "mrr_brut": "MRR Brut",
    "mrr_net_dans_votre_poche": "MRR Net (Dans votre poche)",
    "taux_de_conversion_pct_de_la_liste": "Taux de conversion : <0>{{value}}%</0> de la liste",
    "apres_commission_substack_10_stripe": "Après commission Substack (10%) & Stripe (2.9%)",
    "projection_annuelle_recurrente_stabilisee": "Projection annuelle récurrente stabilisée",
    "avec_de_croissance_mensuelle": "Avec +{{value}}% de croissance mensuelle",
    "1_audience_gratuite_taux_de_conversion": "1. Audience Gratuite & taux de conversion",
    "nombre_d_abonnes_gratuits": "Nombre d'abonnés gratuits",
    "croissance_mensuelle_de_la_liste": "Croissance mensuelle de la liste (%)",
    "2_tarification_des_abonnements_frais": "2. Tarification des abonnements & frais",
    "prix_mensuel_mois": "Prix Mensuel (€ / mois)",
    "prix_annuel_an": "Prix Annuel (€ / an)",
    "frais_plateforme_substack_plateforme": "Frais plateforme Substack / Plateforme (%)",
    "frais_bancaires_stripe": "Frais bancaires Stripe (%)",
    "trajectoire_previsionnelle_sur_12_mois": "Trajectoire Prévisionnelle sur 12 mois",
    "mois_n": "Mois {{value}}",
    "eur_par_mois": "{{value}} € / mois",
    "ratio_annuel_ideal": "Ratio annuel idéal",
    "offrez_2_mois_gratuits_sur": "Offrez 2 mois gratuits sur l'abonnement annuel (ex: 80€ au lieu de 96€) pour maximiser le cash-flow immédiat et réduire drastiquement le churn.",
    "seuil_de_rentabilite_mor": "Seuil de rentabilité MoR",
    "des_1_500_de_mrr_migrer": "Dès 1 500 € de MRR, migrer de Substack (10% de cut) vers Ghost ou Beehiiv (forfait fixe) peut vous faire économiser plus de 2 000 €/an en frais.",
    "contenu_premium_exclusif": "Contenu Premium Exclusif",
    "la_cle_pour_depasser_4": "La clé pour dépasser 4% de conversion est de réserver les analyses actionnables, templates ou accès communauté Discord/Telegram aux payants.",
    "churn_mensuel_pct": "Désabonnement mensuel des payants (churn, %)"
  },
  "tiktok-creator-rewards-rpm": {
    "gains_estimes_mois": "Gains estimés / mois",
    "parametres_d_audience_et_de": "Paramètres d'audience et de contenu",
    "60_75_secondes_standard": "60 à 75 secondes (Standard)",
    "75_110_secondes_8_rpm": "75 à 110 secondes (+8% RPM)",
    "2_a_3_minutes_15": "2 à 3 minutes (+15% RPM)",
    "synthese_des_gains_metriques": "Synthèse des gains & Métriques clés",
    "vues_qualifiees": "Vues éligibles retenues",
    "moyenne_par_video": "Moyenne par vidéo",
    "reset_country_std": "Réinitialiser au standard pays",
    "country_us": "États-Unis / US (Tier 1)",
    "country_uk": "Royaume-Uni / UK (Tier 1)",
    "country_fr": "France (Tier 1)",
    "country_de": "Allemagne (Tier 1)",
    "country_ca": "Canada / Australie (Tier 1)",
    "country_es_it": "Espagne / Italie (Tier 2)",
    "country_latam": "Amérique Latine / Brésil (Tier 3)",
    "country_asia_africa": "Asie / Afrique / reste du monde",
    "programme_tiktok_creator_rewards_1": "Programme TikTok Creator Rewards (1 min+)",
    "simulateur_de_revenus_tiktok_rpm": "Simulateur de Revenus TikTok & RPM",
    "estimez_vos_gains_mensuels_selon": "Estimez vos gains mensuels selon vos vues qualifiées, votre RPM géographique, la durée de vos vidéos et la rétention de votre audience.",
    "rpm_effectif": "RPM effectif : {{value}} / 1k vues",
    "vues_totales_mensuelles": "Vues Totales Mensuelles",
    "taux_de_vues_qualifiees_5s": "Taux de vues qualifiées (> 5s et For You)",
    "moyenne_tiktok_50_a_70": "Repère indicatif : 50% à 70% pour les vidéos captivantes de plus d'une minute.",
    "pays_tier_d_audience_majoritaire": "Pays / Tier d'Audience Majoritaire",
    "rpm_personnalise_1k_vues": "RPM personnalisé ({{currency}} / 1k vues)",
    "defaut": "Défaut",
    "duree_moyenne_video_secondes": "Durée moyenne vidéo (secondes)",
    "frequence_de_publication_mois": "Fréquence de publication (/ mois)",
    "taux_de_retention_eleve_50": "Taux de rétention élevé (> 50% de visionnage complet / fort taux de partage)",
    "projection_annuelle": "Projection Annuelle",
    "soit_jour_moyen": "Soit {{value}} / jour moyen",
    "sur_x": "sur {{value}}",
    "vues_par_video": "~{{value}} vues/vidéo",
    "criteres_d_eligibilite_creator_rewards": "Critères d'Éligibilité Creator Rewards",
    "minimum_10_000_abonnes_100": "Minimum 10 000 abonnés & 100 000 vues sur 30 jours",
    "contenu_100_original_d_au": "Contenu 100% original d'au moins 1 minute (60s+)",
    "vues_issues_du_fil_pour": "Vues issues du fil \"pour Toi\" (FYP) et regardées > 5 secondes"
  },
  "us-energy-tax-credit-calculator": {
    "estimateur_credit_d_impot_energie": "Estimateur Crédit d'Impôt Énergie Propre US (Inflation Reduction Act - 25C / 25D)",
    "panneaux_solaires": "Panneaux Solaires",
    "batterie_de_stockage": "Batterie de Stockage (≥ 3 kWh)",
    "geothermie": "Géothermie (Pompe à chaleur sol)",
    "pompe_a_chaleur_hvac": "Pompe à Chaleur HVAC",
    "chauffe_eau_pac": "Chauffe-eau Thermodynamique",
    "isolation_calfeutrage": "Isolation & Calfeutrage",
    "fenetres_baies": "Fenêtres & Baies Éco-énergétiques",
    "portes_d_entree": "Portes d'Entrée Isolantes",
    "tableau_electrique": "Tableau Électrique mis à niveau",
    "synthese_du_credit_d_impot": "Synthèse du Crédit d'Impôt Fédéral",
    "credit_federal_total": "Crédit Fédéral Total",
    "cout_net_reel_out_of": "Coût Net Réel (Out-of-Pocket)",
    "credit_solaire_batteries_section_25d": "Crédit Solaire & Batteries (Section 25D)",
    "credit_pompes_a_chaleur_hvac": "Crédit Pompes à Chaleur HVAC / Eau",
    "credit_isolation_fenetres_tableau": "Crédit Isolation, Fenêtres & Tableau",
    "bandeau_description": "Calculez vos crédits d'impôt fédéraux IRS (Formulaire 5695) pour panneaux solaires, pompes à chaleur et isolation : crédits 25D et 25C supprimés depuis le 01/01/2026 (30 % jusqu'en 2025).",
    "section_25d_titre": "Section 25D : Solaire & Batteries (supprimé depuis le 01/01/2026)",
    "credit_30": "Supprimé depuis le 01/01/2026",
    "section_25c_titre": "Section 25C : Pompes à Chaleur & Rénovation",
    "max_3200_par_an": "Supprimé depuis le 01/01/2026",
    "economies_mensuelles_estimees": "Économies mensuelles estimées sur vos factures d'énergie ($/mois)",
    "deduction_directe_irs": "Déduction directe sur votre déclaration IRS",
    "brut": "Brut : ${{amount}}",
    "credit_avec_plafond_2000": "+${{amount}} (supprimé depuis le 01/01/2026)",
    "credit_avec_plafond_1200": "+${{amount}} (supprimé depuis le 01/01/2026)",
    "retour_sur_investissement_rentabilite": "Retour sur investissement & rentabilité",
    "avec_economies_amortis": "Avec ${{amount}}/an d'économies d'énergie, vos travaux sont amortis en <0>{{years}} ans</0>."
  },
  "us-tip-bill-splitter": {
    "calculateur_de_pourboire_addition_usa": "Calculateur de Pourboire & Addition USA (Tip & Split)",
    "article_ex_burger": "Article (ex: Burger)",
    "prix": "Prix ($)",
    "alice": "Alice",
    "bob": "Bob",
    "charlie": "Charlie",
    "partage_tous": "Partagé (Tous)",
    "pourboire_personnalise": "Pourboire personnalisé (%)",
    "calculer_le_pourboire_sur_le": "Calculer le pourboire sur le montant TTC (Tax Included)",
    "avant_taxes": "Avant taxes",
    "standard_us": "Standard US",
    "arrondir_le_total_au_dollar": "Arrondir le total au dollar supérieur par personne",
    "sous_total_plats_boissons": "Sous-total plats & boissons",
    "total_global": "Total Global",
    "app_subtitle": "Calculez le pourboire US selon les standards américains (pre-tax vs post-tax), gérez la Sales Tax et partagez l'addition équitablement.",
    "equal_split_tab": "Partage simple (Split Égal)",
    "itemized_bill_tab": "Détail par Personne (Itemized Bill)",
    "detailed_breakdown_title": "Répartition Détaillée par Convive",
    "bill_amount_title": "Montant de l'addition",
    "pre_tax_subtotal": "Sous-total Hors Taxes (Subtotal $)",
    "sales_tax_label": "Sales Tax (%) (ex. NY : 8,875 %, CA : 7,25 %)",
    "number_of_people": "Nombre de personnes",
    "add_dishes_drinks": "Ajouter des Plats & Boissons",
    "service_level_tip": "Niveau de service & pourboire",
    "total_per_person": "Total par Personne ({{value}} pers.)",
    "per_person_breakdown": "(Plats: {{food}} + Taxe: {{tax}} + Pourboire: {{tip}})",
    "sales_tax_line": "Sales Tax ({{percent}}%) :",
    "tip_line": "Pourboire Tip ({{percent}}%) :",
    "person_food_tip": "Plats: {{food}} | Tip: {{tip}}",
    "tip_on_pre_tax": "Calculer le pourboire sur le <0>montant avant taxes</0> (standard US)",
    "rounding_option": "Mode d'arrondi",
    "rounding_exact": "Au centime près",
    "rounding_tip": "Pourboire arrondi au dollar supérieur",
    "rounding_total": "Total arrondi au dollar supérieur",
    "copy_split_details": "Copier le détail de l'addition",
    "copy_summary": "Pourboire et partage de l'addition au restaurant :\n- Sous-total : {{subtotal}} $\n- Taxe de vente ({{taxPct}} %) : {{tax}} $\n- Pourboire ({{tipPct}} %) : {{tip}} $\n- Total général : {{total}} $\n- Partage entre {{people}} personnes :\n=> CHAQUE PERSONNE PAIE : {{perPerson}} $ (dont {{perPersonTip}} $ de pourboire)"
  },
  "website-carbon-co2-estimator": {
    "poids_moyen_de_la_page": "Poids moyen de la page chargée (Mo)",
    "emissions_annuelles_totales": "Émissions Annuelles Totales",
    "compensation_arbres": "Compensation Arbres",
    "taux_de_visiteurs_reguliers_cache": "Taux de visiteurs réguliers avec mise en cache (%)",
    "hebergement_eco_responsable_energie_100": "Hébergement éco-responsable (Énergie 100% renouvelable)",
    "datacenter_alimente_par_de_l": "Datacenter alimenté par de l'énergie éolienne, solaire ou hydraulique certifiée.",
    "trajet_en_voiture_thermique": "trajet en voiture thermique",
    "parcourus_chaque_annee": "parcourus chaque année",
    "recharges_de_smartphone": "recharges de smartphone",
    "completes_de_batterie": "complètes de batterie",
    "arbres_pour_neutraliser": "arbres pour neutraliser",
    "pendant_1_an": "pendant 1 an",
    "label_media_kb": "Images & Médias (Ko)",
    "label_other_api": "Autres / requêtes API (Ko)",
    "note_eco_index_web": "Note carbone web",
    "x_g_co2_visite": "<0>{{value}} g</0> CO2 / visite",
    "x_mo": "{{value}} Mo",
    "total_x_ko_transferes": "Total : {{value}} Ko transférés",
    "soit_x_tonnes_an_y_visites": "Soit {{tonnes}} tonne(s) / an ({{visits}} visites)",
    "x_arbres": "{{value}} arbre(s)",
    "pour_absorber_l_empreinte_carbone_annuelle": "Pour absorber l'empreinte carbone annuelle du site",
    "1_poids_des_ressources_de_la": "1. Poids des Ressources de la Page (Ko)",
    "javascript_bundles_ko": "JavaScript Bundles (Ko)",
    "styles_css_ko": "Styles CSS (Ko)",
    "polices_web_fonts_ko": "Polices Web Fonts (Ko)",
    "document_html_ko": "Document HTML (Ko)",
    "2_frequentation_energie_de_l_hebergeur": "2. Fréquentation & énergie de l'Hébergeur",
    "pages_vues_mensuelles_sur_le_site": "Pages vues mensuelles sur le site",
    "equivalences_concretes_dans_la_vie_reelle": "Équivalences Concrètes dans la vie réelle",
    "x_km": "{{value}} km",
    "x_recharges": "{{value}} recharges"
  },
  "youtube-adsense-shorts-rpm": {
    "total_estime_mois": "Total estimé / mois",
    "parametres_de_chaine_vues": "Paramètres de chaîne & Vues",
    "usa_canada_cpm_eleve_40": "USA / Canada (CPM Élevé +40%)",
    "france_uk_allemagne_standard_europe": "France / UK / Allemagne (Standard Europe)",
    "europe_du_sud_amerique_latine": "Europe du Sud / Amérique Latine (-30%)",
    "asie_du_sud_reste_du": "Asie du Sud / Reste du Monde (-60%)",
    "repartition_detaillee_des_revenus": "Répartition détaillée des revenus",
    "video_longue_de_plus_de": "vidéo longue de plus de 8 minutes avec mid-rolls",
    "generent_generalement": "génèrent généralement",
    "100_a_250_fois_plus": "100 à 250 fois plus de revenus AdSense",
    "niche_finance": "Finance / Bourse / Immobilier / Crypto",
    "niche_tech_business": "Tech / SaaS / Entrepreneuriat / IA",
    "niche_education_science": "Éducation / Sciences / Histoire",
    "niche_fitness_health": "Fitness / Nutrition / santé",
    "niche_travel_lifestyle": "Voyage / Vlogs / Lifestyle",
    "niche_gaming": "Gaming / jeux vidéo / streaming",
    "niche_entertainment_memes": "Divertissement / Mèmes / humour",
    "niche_kids_music": "Contenu Enfants / Musique",
    "monetisation_youtube_partner_program": "Monétisation YouTube Partner Program",
    "simulateur_de_revenus_youtube": "Simulateur de Revenus YouTube (Long-Format & Shorts)",
    "intro_modelisez_vos_revenus": "Modélisez vos revenus AdSense selon la durée de vos vidéos (mid-rolls > 8 min), votre niche, le volume de Shorts et vos abonnements payants.",
    "soit_x_par_an": "Soit {{value}} / an",
    "vues_videos_long_format": "Vues vidéos Long-Format (Horizontales) / mois",
    "vues_youtube_shorts": "Vues YouTube Shorts (Verticales) / Mois",
    "thematique_niche_de_chaine": "Thématique / niche de Chaîne",
    "geographie_de_l_audience": "Géographie de l'audience",
    "videos_8_minutes_eligibles": "Vidéos > 8 minutes (éligibles aux coupures publicitaires mid-rolls automatiques / +45% RPM)",
    "membres_de_chaine": "Membres de Chaîne (Soutiens payants)",
    "tarif_moyen_par_membre": "Tarif moyen par membre ({{currency}}/mois)",
    "adsense_videos_longues": "AdSense vidéos Longues",
    "rpm_par_1k_vues": "RPM: {{value}} / 1k vues",
    "creator_pool_youtube_shorts": "Creator Pool YouTube Shorts",
    "abonnements_membres_net_70": "Abonnements Membres (Net 70%)",
    "abonnes_actifs": "{{value}} abonnés actifs",
    "le_saviez_vous": "Le Saviez-vous ?",
    "saviez_vous_texte": "1 000 vues en <0>vidéo longue de plus de 8 minutes avec mid-rolls</0> génèrent, avec les repères de l'outil, <1>70 à 165 fois plus de revenus AdSense</1> que 1 000 vues en Shorts, mais les Shorts restent le levier le plus rapide pour acquérir des abonnés gratuitement."
  },
  "youtube-title-ctr-ab-simulator": {
    "vues_supplementaires_gagnees": "Vues supplémentaires gagnées",
    "revenus_adsense_additionnels": "Revenus AdSense additionnels",
    "abonnes_supplementaires": "Abonnés supplémentaires",
    "vues_generees": "vues générées",
    "miniature_16_9": "Miniature 16:9",
    "miniature_16_9_optimisee": "Miniature 16:9 Optimisée",
    "votre_chaine": "Votre Chaîne",
    "il_y_a_2_jours": "Il y a 2 jours",
    "label_ctr_b": "Taux de clic Espéré (CTR B) (%)",
    "label_impressions": "Impressions Algorithmiques Projetées",
    "label_rpm": "RPM moyen de votre chaîne ({{currency}}/1k vues)",
    "exemple_titre_a": "Comment gagner de l'argent avec YouTube en 2026",
    "exemple_titre_b": "J'ai testé 7 méthodes pour vivre de YouTube (Résultats Réels)",
    "plus_x_vues": "{{value}} vues",
    "progression_de_x_sur_la_video": "Progression de <0>+{{value}}%</0> sur la vidéo",
    "total_variante_b": "Total Variante B : {{value}}",
    "plus_x_abonnes": "{{value}} abonnés",
    "sur_la_base_de_x_de": "Sur la base de {{value}}% de conversion vue → abonné",
    "variante_a_temoin": "Variante A (Témoin)",
    "score_x_100": "Score : {{value}}/100",
    "titre_a_x_caracteres": "Titre A ({{value}} caractères) :",
    "70_caracteres_risque_de_troncature": "> 70 caractères : risque de troncature (...) sur smartphone.",
    "taux_de_clic_ctr_a": "Taux de clic (CTR A) (%)",
    "variante_b_challenger": "Variante B (Challenger)",
    "titre_b_x_caracteres": "Titre B ({{value}} caractères) :",
    "taux_d_abonnement_par_vue": "Taux d'Abonnement par Vue (%)",
    "parametres_de_diffusion_de_la_video": "Paramètres de diffusion de la vidéo",
    "apercu_rendu_dans_le_fil_youtube": "Aperçu Rendu dans le Fil YouTube (Mobile & Desktop)",
    "channel_line_a": "Votre Chaîne • {{value}} vues • il y a 2 jours",
    "channel_line_b": "Votre Chaîne • <0>{{value}} vues</0> • il y a 2 jours"
  },
  "content-repurposing-time-roi": {
    "multiplicateur_de_contenu": "Multiplicateur de contenu",
    "assets_crees_mois": "assets créés / mois",
    "temps_economise_mois": "Temps économisé / mois",
    "heures": "heures",
    "soit_environ": "Soit ~",
    "journees_travail": "journées de travail",
    "economie_financiere_mensuelle": "Économie financière mensuelle",
    "a_taux_horaire": "À {{value}} / h",
    "temps_total_requis": "Temps Total Requis",
    "h_mois": "h / mois",
    "au_lieu_de": "Au lieu de",
    "h_sans_recyclage": "h sans recyclage",
    "contenu_pilier_central": "1. Contenu Pilier Central (Macro-Content)",
    "format_contenu_pilier": "Format de votre contenu pilier",
    "opt_youtube": "▶️ vidéo longue YouTube (>15 min)",
    "opt_podcast": "🎙️ épisode de podcast Audio/Vidéo",
    "opt_webinar": "💻 Webinaire / Masterclass Live",
    "frequence_mois": "Fréquence / mois",
    "heures_creation_pilier": "Heures création / pilier",
    "taux_horaire_moyen": "Taux Horaire Moyen ({{currency}} / h)",
    "declinaisons_multiplateformes": "2. Déclinaisons Multi-Plateformes par Épisode",
    "shorts_reels_tiktok": "📱 Shorts / Reels / TikTok par épisode :",
    "carrousels_linkedin": "📑 Carrousels LinkedIn PDF par épisode :",
    "posts_courts_x": "𝕏 Posts courts / Threads X :",
    "newsletter_recap": "📧 Newsletter récapitulative :",
    "article_blog_seo": "🌐 Article de Blog SEO optimisé :"
  },
  "color-converter": {
    "accessibility_wcag": "Accessibilité (WCAG)",
    "contrast_ratio_with": "Contraste {{score}}:1 avec {{color}}",
    "white": "Blanc",
    "black": "Noir",
    "picker": "Sélecteur",
    "preview": "Aperçu",
    "grade_fail": "Échec"
  },
  "fluid-typography-calculator": {
    "output_unit_label": "Unité de sortie",
    "rem_recommended": "REM (recommandé Accessibilité)",
    "generated_css": "Code CSS généré",
    "fluid_visual_preview": "Aperçu visuel fluide",
    "clamp_explainer": "La fonction CSS clamp() s'adapte sans rupture à tous les écrans, évitant le texte trop gros sur mobile et trop petit sur écran 4K.",
    "pixels_px": "Pixels (PX)",
    "copier_css": "Copier CSS",
    "titre_fluide_interactif": "Titre Fluide Interactif",
    "pourquoi_utiliser_css_clamp": "Pourquoi utiliser CSS clamp() ?"
  },
  "video-bitrate-calculator": {
    "video_resolution": "Résolution vidéo",
    "target_video_bitrate": "Débit vidéo cible : <0>{{bitrate}} Mbps</0> (+ 320 kbps audio)",
    "codec_d_export": "Codec d'export",
    "images_par_seconde_fps": "Images par seconde (FPS)",
    "temps_d_upload_fibre_50": "Temps d'upload (Fibre 50 Mbps)",
    "total_en_megabytes": "Total en Megabytes"
  },
  "business-meeting-travel-carbon-footprint": {
    "title": "Calculateur empreinte carbone réunion : Présentiel vs Visioconférence",
    "desc": "Comparez les émissions de CO₂e et le coût financier entre un déplacement physique (train, avion, voiture) et une réunion en visio.",
    "visio_duration": "Durée de la réunion en visio",
    "avoided_title": "Bilan d'Évitement RSE",
    "avoided_emissions": "Émissions Évitées en visio",
    "saved_budget": "Budget entreprise économisé :",
    "saved_trees": "Arbres équivalents absorbés (1 an) :",
    "official_emission_factors": "Facteurs d'émission officiels (ADEME)",
    "train_vs_plane_fact": "• Le train émet environ 77 fois moins de CO₂e que l'avion pour un même trajet intérieur en France.",
    "visio_power_fact": "• 1 heure de visio HD avec caméra consomme environ 50g de CO₂e par participant (valeur indicative) sur le réseau électrique français.",
    "texte_copie_rapport": "=== BILAN CARBONE & COÛTS : RÉUNION PHYSIQUE VS VISIO ===\n• Participants : {{attendees}} personnes ({{hours}}h de réunion)\n• Mode de transport physique : {{mode}} ({{distance}} km A/R + {{nights}} nuit d'hôtel)\n• EMPREINTE PHYSIQUE : {{physical}} kg CO2e (Coût total : {{physicalCost}} €)\n• EMPREINTE VISIOCONFÉRENCE : {{virtual}} kg CO2e (Coût : 0 €)\n• ÉCONOMIE CARBONE VISIO : -{{avoided}} kg CO2e (-{{percent}}%)\n• ÉCONOMIE FINANCIÈRE : +{{saved}} € préservés\n• Équivalent compensation : {{trees}} arbre(s) à planter pour absorber le trajet physique.",
    "bilan_d_impact_carbone_copie": "Bilan d'impact carbone copié !",
    "1_deplacement_physique": "1. Déplacement physique",
    "nombre_de_participants": "Nombre de participants",
    "pers": "pers.",
    "distance_a_r_par_personne": "Distance A/R par personne",
    "km_a_r": "km A/R",
    "mode_de_transport_principal": "Mode de transport principal",
    "mode_train": "Train (TGV)",
    "mode_plane": "Avion",
    "mode_car_thermal": "Voiture Thermique",
    "mode_car_ev": "Voiture Élec.",
    "nuits_d_hotel_pers": "Nuits d'hôtel / pers.",
    "nuits": "nuits",
    "budget_trajet_total_pers": "Budget trajet total / pers.",
    "eur_pers": "€/pers.",
    "2_option_visioconference": "2. Option Visioconférence",
    "heures": "heures",
    "presentiel_x_kg_vs_visio": "Présentiel : {{physical}} kg vs Visio : {{virtual}} kg",
    "x_arbres": "{{value}} arbre(s)",
    "copier_le_rapport_d_impact_rse": "Copier le rapport d'impact RSE"
  },
  "carbon-footprint-calculator": {
    "estimated_footprint": "Empreinte carbone estimée",
    "flights_label": "Vols aériens",
    "tip_veg": "Un repas végétarien évite jusqu'à 2.5 kg de CO₂ par rapport à de la viande rouge.",
    "tip_train": "Remplacer un vol court par le train réduit l'empreinte de ce trajet de 95%.",
    "tip_ev": "Passer à un véhicule électrique ou réduire la vitesse de 130 à 110 km/h économise jusqu'à 20% de carburant.",
    "objectif_accord_de_paris": "Objectif accord de Paris (excellent)",
    "modere_sous_moyenne_fr": "Modéré (en dessous de la moyenne fr.)",
    "moyenne_nationale_95_tonnes": "Moyenne nationale (~8,2 tonnes)",
    "empreinte_elevee": "Empreinte élevée",
    "transport_terrestre": "Transport terrestre",
    "km_sem": "km/sem",
    "essence": "Essence",
    "diesel": "Diesel",
    "hybride": "Hybride",
    "electrique": "Électrique",
    "avion": "Avion",
    "h_an": "h/an",
    "regime_alimentaire": "Régime alimentaire",
    "viande_plus": "Viande ++",
    "viande_moderee": "Viande modérée",
    "peu_de_viande": "Peu de viande",
    "vegetarien": "Végétarien",
    "vegetalien": "Végétalien",
    "logement": "Logement",
    "kwh_mois": "kWh/mois",
    "gaz_naturel": "Gaz naturel",
    "fioul": "Fioul",
    "bois_pellets": "Bois/Pellets",
    "t_co2e_an": "t CO₂e/an",
    "voiture_transports": "Voiture & Transports",
    "alimentation": "Alimentation",
    "conseils_reduire_empreinte": "Conseils pour réduire votre empreinte"
  },
  "prompt-optimizer-tool": {
    "input_cost_label": "Coût input",
    "default_role": "Expert développeur React & Tailwind CSS",
    "default_context": "Création d'un composant calculateur d'empreinte écologique",
    "default_task": "Génère le composant React fonctionnel avec état interactif et gestion responsive.",
    "default_constraints": "Pas de dépendances externes inutiles, typage TypeScript strict, support dark mode.",
    "default_output_format": "Code TypeScript complet dans un bloc markdown avec explications concises.",
    "prompt_template": "### RÔLE & EXPERTISE\nTu es un {{role}}.\n\n### CONTEXTE DU PROJET\n{{context}}\n\n### TÂCHE PRINCIPALE\n{{task}}\n\n### CONTRAINTES STRICTES\n{{constraints}}\n\n### FORMAT DE SORTIE ATTENDU\n{{outputFormat}}",
    "label_role": "1. Rôle / Persona donné à l'IA",
    "label_context": "2. Contexte",
    "label_task": "3. Instruction principale (tâche)",
    "label_constraints": "4. Contraintes strictes & Gardes-fous",
    "label_output_format": "5. Format de sortie souhaité",
    "label_target_model": "Modèle cible pour l'estimation",
    "structured_prompt_ready": "Prompt structuré prêt",
    "copy_prompt": "Copier Prompt",
    "tokens_est": "Tokens (est.)",
    "mots": "Mots",
    "golden_rule_title": "Règle d'or du Prompt Engineering"
  },
  "scientific-graphing-calculator": {
    "tab_equations": "Équations & systèmes",
    "tab_stats": "Statistiques étudiant",
    "card_functions": "Fonctions mathématiques",
    "quick_examples": "Exemples rapides étudiant",
    "tangent_derivative": "Tangente & dérivée en x₀",
    "numerical_integral": "Intégrale numérique ∫ f(x)dx",
    "zoom_out": "Zoom arrière",
    "reset_view": "Réinitialiser la vue",
    "card_value_table": "Tableau de valeurs Synthétique (f(x))",
    "roots_zeros": "Racines / Zéros (f(x) = 0)",
    "no_extremum": "Aucun extremum local détecté",
    "card_constants": "Constantes physiques & mathématiques",
    "card_system_2x2": "Coefficients du système 2x2",
    "equation_1": "Équation 1 : a₁x + b₁y = c₁",
    "equation_2": "Équation 2 : a₂x + b₂y = c₂",
    "card_solve_deg2": "Résolution pas à pas (second degré)",
    "step_details": "Détails des étapes :",
    "card_solve_deg3": "Résolution pas à pas (Troisième degré - formule de Cardan)",
    "param_p": "Paramètre p",
    "param_q": "Paramètre q",
    "real_roots": "Racines réelles :",
    "calc_details": "Détails de calcul :",
    "card_cramer": "Résolution par la méthode de Cramer",
    "det_delta": "Déterminant Δ",
    "card_input_1d": "Saisie des données 1D",
    "card_regression_2d": "Régression linéaire 2D (points x, y)",
    "median": "Médiane (me)",
    "std_dev": "Écart-Type (σ)",
    "range": "Étendue (max - min) :",
    "iqr": "Écart Interquartile (IQR) :",
    "quartiles_extremes": "Quartiles & valeurs Extrêmes",
    "third_quartile": "Troisième Quartile (Q₃) :",
    "card_regression": "Ajustement linéaire & Régression (y = ax + b)",
    "regression_eq": "Équation de la droite de Régression",
    "intercept_b": "Ordonnée à l'origine (b)",
    "r_squared": "Coef. de Détermination (R²)",
    "pearson_r": "Coefficient de Corrélation linéaire de Pearson (r) :",
    "const_pi": "Pi (Archimède)",
    "const_euler": "Nombre d'Euler",
    "const_light_speed": "Vitesse lumière (m/s)",
    "const_gravitation": "Cst Gravitationnelle (N m²/kg²)",
    "const_planck": "Cst de Planck (J s)",
    "const_avogadro": "Nombre d'Avogadro (mol⁻¹)",
    "const_gas": "Cst des gaz parfaits (J/(mol K))",
    "const_boltzmann": "Cst de Boltzmann (J/K)",
    "const_charge": "Charge élémentaire (C)",
    "const_electron_mass": "Masse électron (kg)",
    "calc_syntax_error": "Erreur synth.",
    "a_zero_deg3": "Le coefficient 'a' ne peut pas être zéro pour un troisième degré.",
    "a_zero_deg2": "Le coefficient 'a' ne peut pas être zéro pour un second degré.",
    "cardan_step1": "1. Conversion en forme réduite t³ + pt + q = 0 avec x = t - b/(3a)",
    "cardan_step2": "2. p = {{p}}, q = {{q}}",
    "cardan_step3": "3. Discriminant de Cardan Δ = q²/4 + p³/27 = {{value}}",
    "cardan_step4": "4. Racines réelles trouvées : {{value}}",
    "p2_two_step1": "1. Calcul du discriminant : Δ = b² - 4ac = ({{b}})² - 4({{a}})({{c}}) = {{delta}}",
    "p2_two_step2": "2. Δ > 0 : Deux racines réelles distinctes x₁ et x₂",
    "p2_two_step3": "3. x₁ = (-b - √Δ) / 2a = ({{nb}} - {{sqrt}}) / {{den}} = {{x}}",
    "p2_two_step4": "4. x₂ = (-b + √Δ) / 2a = ({{nb}} + {{sqrt}}) / {{den}} = {{x}}",
    "p2_vertex_step": "{{n}}. Sommet de la parabole : S({{h}}, {{k}})",
    "p2_disc_step1": "1. Calcul du discriminant : Δ = b² - 4ac = {{delta}}",
    "p2_one_step2": "2. Δ = 0 : Une racine double x₀",
    "p2_one_step3": "3. x₀ = -b / 2a = {{nb}} / {{den}} = {{x}}",
    "p2_complex_step2": "2. Δ < 0 : Deux racines complexes conjuguées",
    "p2_complex_z1": "3. z₁ = {{re}} - {{im}}i",
    "p2_complex_z2": "4. z₂ = {{re}} + {{im}}i",
    "sys_infinite": "Système dépendant : une infinité de solutions (droites confondues).",
    "sys_none": "Système incompatible : aucune solution (droites parallèles).",
    "sys_step1": "1. Calcul du déterminant principal Δ = a₁b₂ - a₂b₁ = ({{a1}})({{b2}}) - ({{a2}})({{b1}}) = {{value}}",
    "sys_step2": "2. Calcul de Δx = c₁b₂ - c₂b₁ = ({{c1}})({{b2}}) - ({{c2}})({{b1}}) = {{value}}",
    "sys_step3": "3. Calcul de Δy = a₁c₂ - a₂c₁ = ({{a1}})({{c2}}) - ({{a2}})({{c1}}) = {{value}}",
    "nd": "ND",
    "curve_plotter": "Traceur de courbes",
    "scientific_calculator_tab": "Calculatrice Scientifique",
    "hide_curve": "Masquer la courbe",
    "show_curve": "Afficher la courbe",
    "expr_placeholder": "ex: sin(x) + cos(2*x)",
    "gauss_preset": "e^(-x²) (Gauss)",
    "damped_oscillation": "Oscillation amortie",
    "advanced_tools_title": "Outils d'Analyse Avancée",
    "tool_active": "Active",
    "tool_inactive": "Désactivée",
    "tangent_point_label": "Point de tangence (x₀)",
    "bound_a": "Borne a",
    "bound_b": "Borne b",
    "zoom_in": "Zoom avant",
    "params_toggle": "Paramètres (a,b,c,k)",
    "values_table_toggle": "Tableau de valeurs",
    "export_png": "Export PNG",
    "dynamic_variables_hint": "Variables Dynamiques (Injectez 'a', 'b', 'c', 'k' dans vos expressions)",
    "reset_params": "Réinitialiser (1, 1, 0, 0)",
    "step_dx": "Pas (Δx)",
    "analysis_results_title": "Résultats d'Analyse Mathématique ({{name}})",
    "no_visible_roots": "Aucune racine visible dans cette plage",
    "local_extrema": "Extrema Locaux (Min / Max)",
    "max_point": "Max: ({{x}}, {{y}})",
    "min_point": "Min: ({{x}}, {{y}})",
    "integral_range": "Intégrale de [{{from}} à {{to}}]",
    "memory_value": "Mémoire: {{value}}",
    "equation_type_title": "Type d'Équation",
    "option_deg2": "Second Degré : ax² + bx + c = 0",
    "option_deg3": "Troisième Degré : ax³ + bx² + cx + d = 0",
    "option_sys2": "Système linéaire 2x2",
    "coefficients_deg2": "Coefficients (ax² + bx + c = 0)",
    "coefficients_deg3": "Coefficients (ax³ + bx² + cx + d = 0)",
    "discriminant_delta": "Discriminant Δ",
    "vertex_hk": "Sommet S(h, k)",
    "roots_nature": "Nature des racines",
    "two_real_roots": "2 racines réelles",
    "one_double_root": "1 Racine Double",
    "two_complex_roots": "2 Racines Complexes",
    "solutions_label": "Solutions :",
    "cardan_discriminant": "Discriminant de Cardan Δ",
    "unique_solution": "Solution Unique (x, y) :",
    "stats_series_label": "Série statistique 1 variable (séparée par des virgules ou espaces)",
    "stats_series_placeholder": "ex: 12, 15, 8, 20, 14, 18",
    "points_pairs_label": "Couples de points (un point x, y par ligne)",
    "points_placeholder": "ex:\n1, 2.1\n2, 4.2\n3, 6.1",
    "stats_1d_title": "Indicateurs Statistiques 1D",
    "total_count": "Effectif Total (N)",
    "mean_label": "Moyenne (x̄)",
    "dispersion_title": "Mesures de Dispersion",
    "variance_label": "Variance (σ²) :",
    "sum_label": "Somme (Σx) :",
    "minimum_label": "Minimum :",
    "first_quartile": "Premier Quartile (Q₁) :",
    "maximum_label": "Maximum :",
    "slope_a": "Pente (a)"
  },
  "audio-size-calculator": {
    "frequence_d_echantillonnage_sample_rate": "Fréquence d'échantillonnage (Sample rate)",
    "48_khz_video_film": "48 kHz (Vidéo/Film)",
    "96_khz_studio_hd": "96 kHz (Studio HD)",
    "192_khz_ultra_hd": "192 kHz (Ultra HD)",
    "resolution_bit_depth": "Résolution (Bit Depth)",
    "16_bit_standard_cd": "16-bit (Standard CD)",
    "24_bit_studio_pro": "24-bit (Studio Pro)",
    "32_bit_float_marge_anti_clip": "32-bit Float (Marge anti-clip)",
    "canaux_audio": "Canaux Audio",
    "mono_1_ch": "Mono (1 ch)",
    "stereo_2_ch": "Stéréo (2 ch)",
    "5_1_surround_6_ch": "5.1 Surround (6 ch)",
    "debit_de_donnees": "Débit de données : <0>{{value}} KB/s</0>",
    "flac_sans_perte_55": "FLAC Sans Perte (~55%)",
    "standard_de_l_industrie": "Standard de l'industrie",
    "pour_la_musique_et_le": "Pour la musique et le podcasting, l'enregistrement en <0>24-bit / 48 kHz</0> offre un rapport idéal entre dynamique sonore et utilisation du stockage."
  },
  "qr-code-generator": {
    "url_text": "URL / Texte",
    "no_encryption": "Aucun",
    "ecc_low": "Faible (7%)",
    "ecc_medium": "Moyen (15%)",
    "ecc_quartile": "Quartile (25%)",
    "ecc_high": "Élevé (30%)",
    "qr_code_preview": "Aperçu du code QR",
    "export_size_px": "Taille export (pixels)",
    "size_hd": "500 x 500 px (HD)",
    "size_print": "800 x 800 px (Print)",
    "copy_image": "Copier le QR code",
    "copied": "Image copiée !"
  },
  "lawn-seed-calculator": {
    "heading": "Quantité de graines de gazon",
    "subtitle": "Kilos de semences, nombre de sacs et engrais de démarrage selon la surface et le type de semis. Doses indicatives, modifiables.",
    "area_label": "Surface à semer",
    "operation_label": "Type de semis",
    "operation_create": "Création d’une pelouse",
    "operation_overseed": "Regarnissage",
    "type_label": "Type de gazon",
    "type_universal": "Gazon universel / d’ornement",
    "type_sport": "Gazon de sport / résistant",
    "type_shade": "Gazon pour l’ombre",
    "type_rustic": "Gazon rustique / peu d’entretien",
    "dose_label": "Dose de semences",
    "fertilizer_toggle": "Ajouter un engrais de démarrage",
    "fertilizer_dose": "Dose d’engrais de démarrage",
    "seed_result": "Semences nécessaires",
    "bags_1": "Sacs de 1 kg",
    "bags_5": "Sacs de 5 kg",
    "bags_10": "Sacs de 10 kg",
    "fertilizer_result": "Engrais de démarrage",
    "disclaimer": "Doses indicatives : suivez la dose inscrite sur le sachet de votre mélange. Le nombre de sacs est arrondi à l’entier supérieur pour chaque format ; choisissez un seul format ou combinez-les selon le prix au kilo.",
    "sources_note": "Ces doses sont des recommandations de semenciers, pas une règle. Fiche DCM Activo : 20 à 30 g/m² en nouveau semis, 10 à 20 g/m² en sursemis ; fiche DLF Turfline Regarnissage : 25 à 30 g/m² (consultées le 14/10/2026). En création, les doses par défaut de l’outil (30 à 40 g/m²) dépassent la fourchette DCM ; en regarnissage (15 à 25 g/m²), elles restent dans ces fourchettes. La dose du sachet prévaut. Engrais de démarrage à 30 g/m² : valeur indicative, non vérifiée."
  },
  "trailer-towing-license-calculator": {
    "heading": "Quel permis pour tracter votre remorque ?",
    "subtitle": "PTAC du véhicule, PTRA et PTAC de la remorque : permis B, B96 ou BE, avec contrôle du poids remorquable.",
    "car_section": "Véhicule tracteur (carte grise)",
    "car_ptac": "PTAC du véhicule (F.2)",
    "ptra": "PTRA de l’ensemble (F.3)",
    "o1": "Remorque freinée max (O.1)",
    "o2": "Remorque non freinée max (O.2)",
    "trailer_section": "Remorque ou caravane",
    "trailer_ptac": "PTAC de la remorque (F.2)",
    "braked": "Remorque équipée de freins",
    "thresholds_title": "Seuils réglementaires (modifiables)",
    "th_light": "Remorque légère jusqu’à",
    "th_b": "Somme des PTAC en permis B",
    "th_b96": "Somme des PTAC avec B96",
    "th_be": "PTAC max de la remorque en BE",
    "thresholds_note": "Valeurs de la directive 2006/126/CE (art. 4), appliquées en France. Valeurs indicatives, à vérifier si la réglementation évolue.",
    "result_label": "Permis requis",
    "licence_b_light": "Permis B",
    "licence_b_sum": "Permis B",
    "licence_b96": "Permis B + mention B96",
    "licence_be": "Permis BE",
    "licence_over_be": "Au-delà du permis BE",
    "licence_not_b": "Hors permis B",
    "reason_b_light": "La remorque a un PTAC de {{trailer}} kg, soit {{light}} kg ou moins : le permis B suffit, quel que soit le poids de l’ensemble.",
    "reason_b_sum": "La remorque dépasse {{light}} kg, mais la somme des PTAC ({{sum}} kg) ne dépasse pas {{b}} kg : le permis B suffit.",
    "reason_b96": "La somme des PTAC ({{sum}} kg) se situe entre {{b}} et {{b96}} kg : il faut la mention B96. En France, elle s’obtient après une formation de 7 heures, sans examen.",
    "reason_be": "La somme des PTAC ({{sum}} kg) dépasse {{b96}} kg et la remorque ne dépasse pas {{be}} kg : il faut le permis BE, avec une épreuve pratique.",
    "reason_over_be": "La remorque dépasse {{be}} kg de PTAC : le permis BE ne suffit plus, il faut la catégorie C1E.",
    "reason_not_b": "Le véhicule tracteur dépasse {{b}} kg de PTAC : il ne relève pas du permis B (catégorie C1 ou C).",
    "sum_summary": "Somme des PTAC : {{car}} kg (véhicule) + {{trailer}} kg (remorque) = {{sum}} kg",
    "ptra_ok": "Somme des PTAC ({{sum}} kg) dans la limite du PTRA ({{ptra}} kg) : l’ensemble peut rouler chargé au maximum.",
    "ptra_over": "La somme des PTAC dépasse le PTRA de {{over}} kg : le poids réel de l’ensemble chargé ne doit pas dépasser {{ptra}} kg, allégez le chargement.",
    "tow_ok_o1": "Remorque de {{trailer}} kg : dans la limite du poids remorquable freiné (O.1 = {{limit}} kg).",
    "tow_ok_o2": "Remorque de {{trailer}} kg : dans la limite du poids remorquable non freiné (O.2 = {{limit}} kg).",
    "tow_over_o1": "La remorque dépasse de {{over}} kg le poids remorquable freiné autorisé (O.1 = {{limit}} kg) : ce véhicule ne peut pas la tracter.",
    "tow_over_o2": "La remorque dépasse de {{over}} kg le poids remorquable non freiné autorisé (O.2 = {{limit}} kg) : choisissez une remorque freinée ou plus légère.",
    "where_title": "Où lire ces valeurs sur la carte grise ?",
    "where_f2": "F.2 : PTAC du véhicule, c’est-à-dire sa masse maximale autorisée en charge.",
    "where_f3": "F.3 : PTRA, la masse maximale autorisée de l’ensemble véhicule + remorque.",
    "where_o1": "O.1 et O.2 : poids maximal de la remorque que le véhicule peut tracter, freinée (O.1) ou non freinée (O.2).",
    "where_trailer": "Remorque : son PTAC figure en F.2 de sa propre carte grise ou, à défaut, sur sa plaque constructeur.",
    "disclaimer": "Information indicative, vérifiez votre certificat d’immatriculation. Le calcul applique les seuils de la directive 2006/126/CE ; pensez aussi au poids réel chargé et à la charge sur la boule d’attelage.",
    "thresholds_dated": "Seuils en vigueur au 14/10/2026 : directive 2006/126/CE (art. 4) et article R221-4 du Code de la route (version du 29 avril 2016) ; formation B96 de 7 heures (arrêté du 17 janvier 2013). La directive (UE) 2025/2205 du 22 octobre 2025 conserve ces seuils. Elle étend aussi le permis B, détenu depuis 2 ans, aux véhicules à carburant de substitution de 3 500 à 4 250 kg, au plus tard le 26 novembre 2027 ; ses autres règles s'appliqueront le 26 novembre 2029. Ces nouveaux cas ne sont pas simulés."
  },
  "smooth-box-shadow-generator": {
    "layered_shadow_generator": "Générateur d'ombre CSS douce multicouche",
    "layered_shadow_hint": "Superposez plusieurs ombres pour un rendu réaliste, avec décalage et flou progressifs.",
    "layers": "Nombre de couches",
    "final_distance": "Distance finale",
    "final_blur": "Flou final",
    "total_opacity": "Opacité cumulée",
    "shadow_color": "Couleur de l'ombre",
    "progression_curve": "Courbe de progression",
    "curve_linear": "Linéaire",
    "curve_ease_in": "Ease-in (départ lent)",
    "curve_ease_out": "Ease-out (départ rapide)",
    "dark_background": "Fond sombre",
    "preview_card": "Aperçu de la carte",
    "copy_code": "Copier"
  },
  "glassmorphism-css-generator": {
    "glassmorphism_css_generator": "Générateur CSS glassmorphism (verre dépoli)",
    "glass_hint": "Réglez flou, transparence et saturation : l'aperçu et le code CSS se mettent à jour en direct.",
    "blur": "Flou (backdrop-filter)",
    "transparency": "Opacité du fond",
    "saturation": "Saturation",
    "border_opacity": "Opacité de la bordure",
    "corner_radius": "Rayon des coins",
    "glass_color": "Couleur du verre",
    "drop_shadow": "Ombre portée",
    "preview_background": "Fond de l'aperçu",
    "bg_aurora": "Aurore",
    "bg_ocean": "Océan",
    "bg_forest": "Forêt",
    "bg_night": "Nuit",
    "preview_title": "Carte en verre",
    "preview_text": "Le fond se devine derrière le flou.",
    "copy_code": "Copier",
    "accessibility_title": "Accessibilité : contraste du texte sur verre",
    "accessibility_text": "Estimation sur le fond choisi : texte blanc {{white}}:1, texte sombre {{dark}}:1. La norme WCAG demande au moins 4,5:1 pour du texte courant et 3:1 pour du texte large.",
    "accessibility_tip": "Le contraste réel varie avec l'image derrière le verre : augmentez l'opacité du fond ou le flou si le texte se lit mal, et testez avec votre vrai arrière-plan.",
    "source_note": "WCAG 2.2 (recommandation W3C du 5 octobre 2023) : 4,5:1 pour le texte, 3:1 pour le grand texte. backdrop-filter : Chrome 76, Edge 79, Firefox 103, Safari 18 sans préfixe (-webkit- avant). Vérifié le 14/10/2026."
  },
  "image-color-palette-extractor": {
    "image_color_palette_extractor": "Extracteur de palette de couleurs d'une image",
    "palette_hint": "Importez une image : les couleurs dominantes sont calculées avec l'algorithme median cut.",
    "uploaded_image": "Image importée",
    "drop_or_choose": "Glissez une image ici ou cliquez pour en choisir une",
    "click_to_replace": "Cliquez sur l'image pour la remplacer.",
    "number_of_colors": "Nombre de couleurs",
    "privacy_note": "Votre image ne quitte pas votre navigateur : l'analyse se fait localement, rien n'est envoyé à un serveur.",
    "error_not_image": "Ce fichier n'est pas une image. Choisissez un PNG, JPEG, WebP ou GIF.",
    "error_load": "Impossible de lire cette image.",
    "error_empty": "Aucune couleur à extraire : l'image est entièrement transparente.",
    "no_palette_yet": "La palette apparaîtra ici une fois une image importée.",
    "copy_value": "Copier cette valeur",
    "export_format": "Format d'export",
    "css_variables": "Variables CSS",
    "copy_code": "Copier"
  },
  "speed-time-fuel-tradeoff-calculator": {
    "heading": "Rouler plus vite : temps gagné ou carburant perdu ?",
    "subtitle": "Comparez deux vitesses : durée du trajet, surconsommation, surcoût, coût par minute gagnée et CO₂.",
    "trip_section": "Trajet",
    "distance": "Distance",
    "speed_a": "Vitesse A",
    "speed_b": "Vitesse B",
    "car_section": "Voiture et carburant",
    "ref_consumption": "Consommation de référence",
    "ref_speed": "à la vitesse de",
    "aero_share": "Part aérodynamique à cette vitesse",
    "aero_hint": "Modèle : une part fixe de la consommation, plus une part aérodynamique qui croît avec le carré de la vitesse. 50 à 60 % vers 110 km/h pour une berline, davantage pour un SUV ou avec un coffre de toit.",
    "fuel_type": "Carburant",
    "fuel_petrol": "Essence",
    "fuel_diesel": "Gazole",
    "fuel_price": "Prix du carburant",
    "co2_factor": "CO₂ par litre",
    "time_gained_label": "Temps gagné à {{b}} km/h au lieu de {{a}} km/h",
    "minutes_value": "{{minutes}} min",
    "extra_summary": "Pour {{litres}} L de carburant en plus ({{cost}}), soit +{{percent}} % de consommation.",
    "hint_b_faster": "Saisissez en vitesse B la vitesse la plus élevée pour obtenir un temps gagné positif.",
    "cost_per_minute": "Coût par minute gagnée",
    "cost_per_hour": "soit {{value}} par heure gagnée",
    "extra_co2": "CO₂ émis en plus",
    "row_time": "Durée du trajet",
    "row_consumption": "Consommation",
    "row_fuel": "Carburant consommé",
    "row_cost": "Coût du carburant",
    "row_co2": "CO₂ émis",
    "time_hm": "{{h}} h {{m}} min",
    "disclaimer": "Estimation théorique à vitesse constante : le trafic, les péages et les pauses réduisent le temps réellement gagné. Le CO₂ par défaut (2,31 kg/L pour l’essence, 2,68 kg/L pour le gazole) correspond à la combustion d’un carburant fossile pur ; ces valeurs sont modifiables.",
    "co2_source": "Facteurs CO₂ par défaut : Base Carbone de l'ADEME, version 23.6 (données du 3 juillet 2025), combustion seule : 2,20 kg CO₂e/L pour l'essence SP95, SP95-E10 ou SP98, 2,49 kg/L pour le gazole B7. Ces carburants contiennent des biocarburants, dont le CO₂ biogénique est exclu. En ajoutant l'amont (extraction, raffinage, transport) : 2,69 et 3,10 kg/L. Vérifié le 14/10/2026.",
    "disclaimer_sourced": "Estimation théorique à vitesse constante : le trafic, les péages et les pauses réduisent le temps réellement gagné. Repères officiels : selon l'ADEME (avril 2026), rouler 10 km/h moins vite sur autoroute économise 1 à 3 litres sur 500 km ; selon le Commissariat général au développement durable (février 2022), passer de 130 à 110 km/h réduirait en théorie la consommation de 25 %."
  },
  "web-p-converter": {
    "webp_uniquement": "WebP uniquement",
    "apercu": "Aperçu",
    "image_convertie": "Image convertie"
  },
  "bpm-delay-reverb-calculator": {
    "title": "Calculateur BPM en ms : delay, reverb et pre-delay",
    "subtitle": "Durée en ms et en Hz de chaque figure de note, normale, pointée ou en triolet, avec suggestions de réverbération.",
    "tempo": "Tempo",
    "tap_tempo": "Tap tempo : cliquez en rythme",
    "tap_hint": "{{taps}} clic(s). Moyenne des derniers clics ; une pause de plus de 2 s remet à zéro.",
    "one_beat": "Un temps (noire)",
    "invalid_bpm": "Saisissez un tempo entre 20 et 400 BPM.",
    "note_values": "Durée des figures de note",
    "col_note": "Figure",
    "col_straight": "Normale",
    "col_dotted": "Pointée (×1,5)",
    "col_triplet": "Triolet (×2/3)",
    "note_whole": "Ronde",
    "note_half": "Blanche",
    "note_quarter": "Noire",
    "note_eighth": "Croche",
    "note_sixteenth": "Double-croche",
    "note_thirty_second": "Triple-croche",
    "predelay": "Pre-delay suggéré",
    "predelay_tight": "Court : 1/64 de note",
    "predelay_medium": "Moyen : 1/32 de note",
    "predelay_wide": "Long : 1/16 de note",
    "decay": "Decay de réverbération suggéré",
    "decay_room": "Petite pièce : 2 temps",
    "decay_plate": "Plate : 1 mesure (4 temps)",
    "decay_hall": "Grande salle : 2 mesures (8 temps)",
    "note": "Durée en ms = 60 000 ÷ BPM × nombre de temps (noire = 1 temps, mesure à 4 temps). Valeurs de pre-delay et de decay indicatives : calées sur le tempo pour que la réverbération respire avec le morceau, à ajuster à l'oreille."
  },
  "depth-of-field-hyperfocal-calculator": {
    "title": "Calculateur d'hyperfocale et profondeur de champ",
    "subtitle": "Distance hyperfocale, limites de netteté proche et lointaine selon la focale, l'ouverture et le capteur.",
    "settings": "Réglages de prise de vue",
    "focal_length": "Focale (mm)",
    "aperture": "Ouverture (f/)",
    "subject_distance": "Distance au sujet (m)",
    "sensor": "Format de capteur",
    "sensor_medium": "Moyen format",
    "sensor_full": "Plein format (24×36)",
    "sensor_apsc": "APS-C",
    "sensor_m43": "Micro 4/3",
    "sensor_one_inch": "1 pouce",
    "sensor_phone": "Smartphone",
    "custom": "Valeur libre",
    "coc": "Cercle de confusion (mm)",
    "coc_hint": "Valeurs indicatives (plein format 0,030 mm). Réduisez-la pour une exigence de netteté plus forte (grands tirages).",
    "hyperfocal": "Distance hyperfocale",
    "total_dof": "Profondeur de champ totale",
    "near_limit": "Limite de netteté proche",
    "far_limit": "Limite de netteté lointaine",
    "in_front": "Netteté devant le sujet",
    "behind": "Netteté derrière le sujet",
    "infinity": "Infini",
    "beyond_hyperfocal": "La mise au point dépasse l'hyperfocale : tout est net de {{near}} jusqu'à l'infini.",
    "focus_tip": "Astuce paysage : mise au point sur l'hyperfocale ({{hyperfocal}}) pour une netteté de {{near}} jusqu'à l'infini.",
    "invalid_input": "Vérifiez les valeurs : focale 1 à 2 000 mm, ouverture f/0,7 à f/128, cercle de confusion 0,001 à 0,1 mm, distance supérieure à la focale.",
    "note": "H = f² ÷ (N × c) + f ; limite proche = s(H − f) ÷ (H + s − 2f) ; limite lointaine = s(H − f) ÷ (H − s), infinie dès que s ≥ H. Estimation théorique : la netteté perçue dépend aussi du tirage, de la diffraction et de la vue de l'observateur.",
    "source_note": "Valeurs arrondies de la convention d/1500, consultées le 14/10/2026. Moyen format (0,039 mm) et smartphone (0,005 mm) : valeurs indicatives, non vérifiées."
  },
  "party-drinks-quantity-calculator": {
    "heading": "Combien de bouteilles prévoir pour votre fête ?",
    "subtitle": "Champagne, vin, bière, softs et eau selon le nombre d’invités, la durée et les moments de la réception.",
    "guests_title": "Invités",
    "adults": "Adultes",
    "non_drinkers": "dont non-buveurs",
    "children": "Enfants",
    "moments_title": "Moments de la réception",
    "moment_cocktail": "Vin d’honneur",
    "moment_meal": "Repas",
    "moment_party": "Soirée dansante",
    "duration": "Durée en heures",
    "rate_champagne": "Coupes / h",
    "rate_wine": "Verres de vin / h",
    "rate_beer": "Bières / h",
    "rates_hint": "Verres par adulte buveur et par heure. Repères : 1 coupe par heure au vin d’honneur, une demi-bouteille de vin par personne pendant le repas.",
    "soft_title": "Sans alcool et marge",
    "soft_drinkers": "Softs / h, adultes buveurs",
    "soft_others": "Softs / h, non-buveurs et enfants",
    "water_rate": "Eau / h, par personne",
    "margin": "Marge de sécurité",
    "soft_hint": "Softs et eau : verres de 20 cl par personne et par heure, sur toute la durée de la réception.",
    "result_label": "Quantités à prévoir",
    "result_summary": "Pour {{drinkers}} adultes buveurs et {{others}} non-buveurs ou enfants, sur {{hours}} h, marge comprise.",
    "champagne_bottles": "Champagne (bouteilles de 75 cl)",
    "champagne_sub": "Coupes prévues : {{glasses}} ({{per}} par bouteille)",
    "wine_bottles": "Vin (bouteilles de 75 cl)",
    "wine_sub": "Verres prévus : {{glasses}} ({{per}} par bouteille)",
    "beer_litres": "Bière",
    "beer_sub": "Verres de 25 cl : {{glasses}}, soit {{bottles}} bouteilles de 33 cl",
    "soft_litres": "Softs et jus",
    "water_litres": "Eau",
    "bottles_15_sub": "Soit {{bottles}} bouteilles de {{size}} L",
    "moderation": "Gardez des boissons sans alcool aussi attrayantes que le reste, de l’eau en libre-service et une solution pour rentrer (conducteur désigné, taxi, couchage sur place). L’abus d’alcool est dangereux pour la santé, à consommer avec modération.",
    "standard_drink_source": "Repères de Santé publique France (avis d'experts de 2017, page mise à jour le 26 janvier 2026) : un verre standard contient 10 g d'alcool pur ; pas plus de 10 verres standard par semaine ni de 2 par jour, avec des jours sans alcool. Une coupe de champagne de 12,5 cl à 12 % en contient 1,2 et un verre de vin de 15 cl à 12,5 % en contient 1,5. Les 6 coupes et 5 verres par bouteille de 75 cl sont des hypothèses de service (valeurs indicatives, non vérifiées). Vérifié le 14/10/2026."
  },
  "ev-charging-calculator": {
    "3_7_kw_prise_renf": "3.7 kW (Prise renf.)",
    "7_4_kw_wallbox_1p": "7.4 kW (Wallbox 1P)",
    "11_kw_wallbox_3p": "11 kW (Wallbox 3P)",
    "50_kw_dc_rapide": "50 kW (DC Rapide)",
    "150_kw_hpc_ultra": "150 kW (HPC Ultra)",
    "comparatif_annuel_vs_essence": "Comparatif Annuel vs Essence",
    "km_an": "km/an",
    "plus_x_eur_par_an": "+{{value}} € / an"
  },
  "food-waste-impact-calculator": {
    "pers": "pers.",
    "par_sem": "/sem",
    "kg_par_sem": "kg/sem",
    "par_an": "/an",
    "x_kg_par_an": "{{value}} kg / an",
    "x_kg_co2_par_an": "{{value}} kg CO₂ / an"
  },
  "case-converter": {
    "uppercase": "MAJUSCULES",
    "lowercase": "minuscules",
    "capitalize": "Capitaliser",
    "sentence": "Phrase",
    "alternate": "aLtErNé",
    "inverse": "InVeRsÉ",
    "clean_space": "Nettoyer les espaces",
    "paste": "Coller"
  },
  "long-division-calculator": {
    "heading": "Division posée pas à pas",
    "subtitle": "Chaque étape expliquée, avec reste ou quotient décimal, dans la disposition de votre pays.",
    "dividend_label": "Dividende",
    "divisor_label": "Diviseur",
    "mode_label": "Résultat",
    "mode_remainder": "Avec reste",
    "mode_decimal": "Quotient décimal",
    "decimals_label": "Nombre de décimales",
    "layout_label": "Disposition",
    "layout_potence": "Potence : diviseur à droite, quotient dessous (France)",
    "layout_bracket": "Crochet : diviseur à gauche, quotient au-dessus (Royaume-Uni, États-Unis)",
    "layout_inline": "En ligne : 1234 : 7 = 176 reste 2 (Allemagne)",
    "layout_hint": "Proposée selon la langue : potence en France (Eduscol), crochet au Royaume-Uni (DfE), en ligne en Allemagne (PIKAS). Le calcul est identique.",
    "layout_unverified": "Disposition par défaut de cette langue : valeur indicative, non vérifiée sur un programme scolaire officiel.",
    "invalid": "Saisissez un dividende positif (12 chiffres au plus avant la virgule, 6 après) et un diviseur non nul (9 chiffres au plus, 4 décimales).",
    "quotient": "Quotient",
    "remainder": "Reste",
    "rem_word": "reste",
    "check": "Vérification : {{b}} × {{q}} + {{r}} = {{a}}",
    "truncated": "Quotient tronqué à {{n}} décimales (non arrondi).",
    "period_text": "Développement périodique (longueur de la période : {{n}}) :",
    "exact_text": "En continuant, la division tombe juste : {{value}}",
    "long_period": "Aucune période trouvée dans les 10 000 premières décimales.",
    "steps_title": "Étapes expliquées",
    "diagram_label": "Division posée de {{a}} par {{b}}, quotient {{q}}",
    "shift_note": "Diviseur décimal : on multiplie les deux nombres par {{p}}, on calcule donc {{a}} ÷ {{b}}.",
    "step_small": "{{a}} est plus petit que {{d}} : le quotient vaut 0 et le reste {{a}}.",
    "step_comma_first": "La partie entière est plus petite que {{d}} : on écrit 0 et la virgule au quotient, puis on abaisse un 0.",
    "step_first": "On prend {{cur}}, le premier nombre au moins égal à {{d}}.",
    "step_main": "Dans {{cur}}, combien de fois {{d}} ? {{q}} fois : {{q}} × {{d}} = {{prod}}, il reste {{cur}} − {{prod}} = {{rem}}.",
    "step_zero": "{{cur}} est plus petit que {{d}} : on écrit 0 au quotient.",
    "step_bring": "On abaisse le {{digit}} : on obtient {{next}}.",
    "step_bring_comma": "Les chiffres de la partie entière sont épuisés : virgule au quotient, on abaisse le {{digit}} : {{next}}.",
    "step_end_rem": "Plus de chiffre à abaisser : le reste {{rem}} est plus petit que {{d}}, la division est finie.",
    "step_end_exact": "Le reste vaut 0 : la division tombe juste.",
    "step_end_dec": "Arrêt à {{n}} décimales, avec un reste partiel de {{rem}}.",
    "limits": "Dividende jusqu'à 12 chiffres avant la virgule et 6 après, diviseur jusqu'à 9 chiffres. Un diviseur décimal est rendu entier en multipliant les deux nombres par 10, 100… Le quotient décimal est tronqué, jamais arrondi."
  },
  "microphone-test": {
    "heading": "Test micro",
    "subtitle": "Niveau, forme d’onde, enregistrement à réécouter et réglages réels du micro.",
    "start": "Activer le micro",
    "starting": "Autorisation du micro…",
    "stop": "Couper le micro",
    "err_insecure": "Le micro n’est accessible que sur une page sécurisée (https) d’un navigateur récent.",
    "err_denied": "Accès au micro refusé. Autorisez-le dans la barre d’adresse (icône de cadenas ou de micro), puis réessayez.",
    "err_notfound": "Aucun micro détecté. Branchez-en un ou vérifiez les réglages du système.",
    "err_busy": "Le micro est occupé par une autre application. Fermez-la puis réessayez.",
    "err_other": "Impossible d’ouvrir le micro. Rechargez la page ou essayez un autre navigateur.",
    "denied_help": "Chrome et Edge : icône à gauche de l’adresse, puis Micro, Autoriser. Firefox : icône de micro barré dans la barre d’adresse. Safari : Réglages du site, Micro, Autoriser. Rechargez ensuite la page.",
    "device_label": "Micro utilisé",
    "device_default": "Micro par défaut du système",
    "device_n": "Micro {{n}}",
    "device_hint": "Les noms des micros apparaissent après l’autorisation. Changer de micro relance la mesure.",
    "privacy": "Rien n’est envoyé : le son et l’enregistrement restent dans votre navigateur et disparaissent quand vous quittez la page. Le micro se coupe à ce moment-là.",
    "level_title": "Niveau d’entrée",
    "rms_label": "Efficace (RMS)",
    "peak_label": "Crête",
    "clipped": "Saturation : le son atteint la pleine échelle. Éloignez-vous du micro ou baissez son gain dans le système.",
    "silent_hint": "Aucun son capté depuis 3 secondes : vérifiez que le micro n’est pas coupé (touche, bouton ou réglage du système) et qu’il est bien choisi ci-contre.",
    "idle": "Activez le micro pour voir son niveau.",
    "wave_aria": "Forme d’onde du son capté",
    "level_note": "dBFS : décibels sous la pleine échelle (0 = maximum, au-delà le son sature). La barre couvre −60 à 0 dBFS.",
    "rec_title": "Enregistrer et réécouter",
    "rec_start": "Enregistrer",
    "rec_stop": "Arrêter ({{s}} s sur {{max}})",
    "rec_unsupported": "Votre navigateur ne permet pas d’enregistrer (MediaRecorder absent). Le niveau et la forme d’onde restent disponibles.",
    "rec_player": "Réécoute de l’enregistrement",
    "rec_format": "Format : {{type}}",
    "file_name": "test-micro",
    "rec_download": "Télécharger",
    "rec_hint": "{{max}} secondes au plus. L’enregistrement reste sur votre appareil ; un nouvel enregistrement remplace le précédent.",
    "settings_title": "Réglages réels de la piste",
    "set_rate": "Fréquence d’échantillonnage du micro",
    "set_ctx_rate": "Fréquence de traitement du navigateur",
    "set_channels": "Canaux",
    "set_ec": "Annulation d’écho",
    "set_ns": "Réduction de bruit",
    "set_agc": "Gain automatique",
    "on": "actif",
    "off": "désactivé",
    "unknown": "inconnu",
    "settings_idle": "Les réglages s’affichent une fois le micro activé.",
    "settings_note": "L’outil demande les traitements désactivés pour entendre le micro tel qu’il est ; certains navigateurs, dont Safari, les gardent actifs."
  },
  "random-wheel-spinner": {
    "heading": "Roue aléatoire",
    "subtitle": "Un nom par ligne, un clic pour tirer au sort",
    "wheel_title": "Roue de {{n}} parts",
    "spin": "Lancer la roue",
    "spinning": "La roue tourne…",
    "winner_label": "Gagnant",
    "ready": "{{n}} parts sur la roue, {{p}} de chances chacune.",
    "names_label": "Noms ou choix (un par ligne)",
    "names_hint": "Jusqu'à {{max}} lignes. Les lignes vides sont ignorées ; un nom écrit deux fois a deux parts.",
    "need_two": "Ajoutez au moins 2 noms pour lancer la roue.",
    "too_many": "Seules les {{max}} premières lignes sont sur la roue.",
    "clear_names": "Vider la liste",
    "example_names": "Liste d'exemple",
    "remove_winner": "Retirer le gagnant de la liste",
    "history_title": "Historique des tirages",
    "history_clear": "Effacer",
    "history_empty": "Aucun tirage pour l'instant.",
    "fairness_note": "Le gagnant est tiré par crypto.getRandomValues avant que la roue ne tourne, sans biais du modulo. La liste reste dans votre navigateur.",
    "default_names": "Léa\nHugo\nChloé\nLucas\nInès\nNoah\nJade\nAdam"
  },
  "sudoku-solver-generator": {
    "heading": "Sudoku : jouer, résoudre, générer",
    "subtitle": "Grilles à solution unique, notes et vérification des erreurs",
    "tab_play": "Jouer",
    "tab_solve": "Résoudre une grille",
    "board_play": "Grille de jeu",
    "board_solve": "Grille à résoudre",
    "cell_empty": "Ligne {{row}}, colonne {{col}}, vide",
    "cell_given": "Ligne {{row}}, colonne {{col}}, {{value}}, chiffre donné",
    "cell_filled": "Ligne {{row}}, colonne {{col}}, {{value}}",
    "cell_error": "Ligne {{row}}, colonne {{col}}, {{value}}, erreur",
    "notes_on": "Notes activées",
    "notes_off": "Notes",
    "show_errors": "Signaler les erreurs",
    "keys_hint": "Flèches pour se déplacer, 1 à 9 pour écrire, Retour arrière ou 0 pour effacer, N pour les notes.",
    "keys_hint_solve": "Flèches pour se déplacer, 1 à 9 pour écrire, Retour arrière ou 0 pour effacer.",
    "erase": "Effacer la case",
    "won": "Bravo, grille résolue sans erreur !",
    "filled_wrong": "La grille est pleine, mais elle contient des erreurs (cases fausses : {{n}}). Activez « Signaler les erreurs » pour les voir.",
    "revealed": "Solution affichée. Générez une nouvelle grille pour rejouer.",
    "current_title": "Grille en cours",
    "rating": "Niveau estimé : {{level}} ({{technique}}), {{clues}} indices.",
    "reset": "Effacer mes chiffres",
    "reveal": "Voir la solution",
    "new_title": "Nouvelle grille",
    "level_easy": "Facile",
    "level_medium": "Moyen",
    "level_hard": "Difficile",
    "level_expert": "Expert",
    "tech_naked": "singletons nus",
    "tech_hidden": "singletons cachés",
    "tech_locked": "candidats verrouillés",
    "tech_search": "au-delà des techniques de base",
    "generating": "Génération…",
    "new_game": "Générer une grille",
    "levels_note": "Niveaux estimés par l'outil : facile = singletons nus, moyen = singletons cachés, difficile = candidats verrouillés, expert = au-delà. Chaque grille générée a une solution unique.",
    "solve_intro": "Saisissez les chiffres donnés de votre grille, puis lancez la résolution.",
    "solve": "Résoudre",
    "clear": "Vider",
    "example": "Grille d'exemple",
    "clues_count": "Indices saisis : {{n}} (17 au minimum pour une solution unique)",
    "solve_unique": "Solution unique trouvée.",
    "solve_multiple": "Cette grille a plusieurs solutions ; l'une d'elles est affichée.",
    "solve_none": "Cette grille n'a aucune solution.",
    "solve_conflict": "Un même chiffre apparaît deux fois dans une ligne, une colonne ou un bloc (cases en rouge).",
    "solve_aborted": "Calcul interrompu après 150 000 essais : ajoutez des indices et relancez.",
    "play_this": "Jouer cette grille",
    "solver_note": "Le solveur remplit d'abord la case qui a le moins de chiffres possibles et s'arrête à 2 solutions : cela suffit pour dire si la grille en a zéro, une ou plusieurs."
  },
  "guitar-tuner": {
    "heading": "Accordeur de guitare",
    "subtitle": "Jouez une corde près du micro : l’aiguille indique l’écart en cents.",
    "start": "Activer le micro",
    "starting": "Autorisation du micro…",
    "stop": "Couper le micro",
    "err_insecure": "Le micro n’est accessible que sur une page sécurisée (https) d’un navigateur récent.",
    "err_denied": "Accès au micro refusé. Autorisez-le dans la barre d’adresse (icône de cadenas ou de micro), puis réessayez.",
    "err_notfound": "Aucun micro détecté. Branchez-en un ou vérifiez les réglages du système.",
    "err_busy": "Le micro est occupé par une autre application. Fermez-la puis réessayez.",
    "err_other": "Impossible d’ouvrir le micro. Rechargez la page ou essayez un autre navigateur.",
    "tuning_label": "Accordage",
    "tuning_standard": "Standard (Mi La Ré Sol Si Mi)",
    "tuning_halfdown": "Un demi-ton plus bas (Mi♭)",
    "tuning_dropd": "Drop D (Ré La Ré Sol Si Mi)",
    "tuning_dadgad": "DADGAD (Ré La Ré Sol La Ré)",
    "tuning_openg": "Open G (Ré Sol Ré Sol Si Ré)",
    "tuning_opend": "Open D (Ré La Ré Fa♯ La Ré)",
    "tuning_chromatic": "Chromatique (toutes les notes)",
    "a4_label": "La de référence",
    "a4_hint": "440 Hz selon la norme ISO 16 ; certains orchestres jouent à 442 Hz. Toutes les cibles suivent ce réglage.",
    "privacy": "Le son est analysé dans votre navigateur : rien n’est enregistré ni envoyé. Le micro se coupe quand vous quittez la page.",
    "cents_label": "cents",
    "gauge_aria": "Écart de justesse en cents, de −50 à +50",
    "idle": "Activez le micro pour commencer.",
    "waiting": "Jouez une corde…",
    "in_tune": "Juste",
    "flat": "Trop bas : tendez la corde",
    "sharp": "Trop haut : détendez la corde",
    "reading": "Mesuré {{hz}} Hz, cible {{target}} Hz",
    "strings_title": "Cordes et son de référence",
    "chromatic_title": "Mode chromatique",
    "chromatic_hint": "L’aiguille vise le demi-ton le plus proche : utile pour un accordage non listé, une basse ou un ukulélé.",
    "string_n": "Corde {{n}}",
    "play_aria": "Jouer la corde {{n}}, {{note}} à {{hz}} Hz",
    "stop_sound": "Arrêter le son",
    "strings_hint": "Touchez une corde pour entendre sa note pendant 3 secondes (volume bas). La corde visée par l’accordeur est encadrée.",
    "method_note": "Détection par la méthode de McLeod (MPM), sans IA. L’aiguille est lissée (médiane puis moyenne glissante) et passe au vert à ±{{cents}} cents.",
    "note_c": "Do",
    "note_cs": "Do♯",
    "note_d": "Ré",
    "note_ds": "Ré♯",
    "note_e": "Mi",
    "note_f": "Fa",
    "note_fs": "Fa♯",
    "note_g": "Sol",
    "note_gs": "Sol♯",
    "note_a": "La",
    "note_as": "La♯",
    "note_b": "Si"
  },
  "vocal-range-test": {
    "heading": "Test de tessiture vocale",
    "subtitle": "Tenez votre note la plus grave puis la plus aiguë : l’outil mesure l’écart.",
    "start": "Activer le micro",
    "starting": "Autorisation du micro…",
    "stop": "Couper le micro",
    "err_insecure": "Le micro n’est accessible que sur une page sécurisée (https) d’un navigateur récent.",
    "err_denied": "Accès au micro refusé. Autorisez-le dans la barre d’adresse (icône de cadenas ou de micro), puis réessayez.",
    "err_notfound": "Aucun micro détecté. Branchez-en un ou vérifiez les réglages du système.",
    "err_busy": "Le micro est occupé par une autre application. Fermez-la puis réessayez.",
    "err_other": "Impossible d’ouvrir le micro. Rechargez la page ou essayez un autre navigateur.",
    "privacy": "Le son est analysé dans votre navigateur : rien n’est enregistré ni envoyé. Le micro se coupe quand vous quittez la page.",
    "steps_title": "Comment faire",
    "step_low": "Chantez la note la plus grave que vous pouvez tenir sans forcer, au moins une seconde, sur un « a ».",
    "step_high": "Montez note après note jusqu’à la plus aiguë, en tenant chacune un instant.",
    "step_safe": "Arrêtez si la voix gratte ou fatigue : l’étendue utile est celle que vous tenez à l’aise.",
    "current_label": "Note entendue",
    "low_label": "Plus grave tenue",
    "high_label": "Plus aiguë tenue",
    "range_label": "Étendue",
    "semitones": "{{n}} demi-tons",
    "octaves": "Octaves : {{octaves}}",
    "waiting": "Chantez et tenez une note…",
    "idle": "Activez le micro pour commencer.",
    "notation_note": "Notation scientifique (système ISO) : Do4 = do central, La4 = 440 Hz.",
    "reset": "Effacer",
    "types_title": "Types de voix (repères approximatifs)",
    "share": "{{pct}} % de votre étendue",
    "types_note": "Étendues de The New Harvard Dictionary of Music (via la Yale University Library). Les types se chevauchent et le timbre compte : la correspondance est indicative, pas un classement.",
    "type_bass": "Basse",
    "type_baritone": "Baryton",
    "type_tenor": "Ténor",
    "type_alto": "Alto",
    "type_mezzo": "Mezzo-soprano",
    "type_soprano": "Soprano",
    "note_c": "Do",
    "note_cs": "Do♯",
    "note_d": "Ré",
    "note_ds": "Ré♯",
    "note_e": "Mi",
    "note_f": "Fa",
    "note_fs": "Fa♯",
    "note_g": "Sol",
    "note_gs": "Sol♯",
    "note_a": "La",
    "note_as": "La♯",
    "note_b": "Si"
  },
  "hiragana-katakana-chart-quiz": {
    "heading": "Hiragana et katakana",
    "subtitle": "Tableaux, ordre des traits et quiz de lecture, avec romaji Hepburn.",
    "script_label": "Écriture",
    "hiragana": "Hiragana",
    "katakana": "Katakana",
    "both": "Les deux",
    "show_romaji": "Afficher le romaji",
    "section_basic": "Gojūon : 46 sons de base",
    "section_dakuten": "Dakuten et handakuten : 25 kana à signe diacritique",
    "section_yoon": "Yōon : 33 combinaisons avec ゃ, ゅ, ょ",
    "cell_label": "{{kana}} ({{romaji}})",
    "strokes_title": "Ordre des traits",
    "strokes_loading": "Chargement des tracés…",
    "strokes_error": "Impossible de charger les tracés. Vérifiez la connexion puis réessayez.",
    "retry": "Réessayer",
    "svg_label": "Ordre des traits de {{kana}}",
    "stroke_count": "Nombre de traits : {{n}}",
    "replay": "Revoir le tracé",
    "speak": "Écouter",
    "no_voice": "Aucune voix japonaise sur cet appareil : l'écoute est indisponible.",
    "reduced_note": "Mouvement réduit : les traits restent affichés, numérotés dans l'ordre.",
    "credits_label": "Tracés :",
    "credits_link": "KanjiVG (kanjivg.tagaini.net), CC BY-SA 3.0",
    "hepburn_note": "Romaji Hepburn de la table des passeports japonais : ぢ et じ s'écrivent ji, づ et ず zu, を o. Le quiz accepte aussi wo, di, du, si, tu, hu et nn.",
    "quiz_title": "Quiz de lecture",
    "score": "Score : {{ok}} sur {{total}}",
    "streak": "Série : {{n}}",
    "reset_score": "Remettre à zéro",
    "mode_label": "Sens du quiz",
    "mode_k2r": "Kana → romaji (saisie)",
    "mode_r2k": "Romaji → kana (choix)",
    "rows_label": "Lignes interrogées",
    "rows_all": "Toutes",
    "rows_basic": "Gojūon seul",
    "empty_pool": "Cochez au moins une ligne.",
    "prompt_k2r": "Comment se lit ce kana ?",
    "prompt_r2k": "Quel kana se lit ainsi ?",
    "answer_label": "Votre réponse en romaji",
    "answer_placeholder": "ex. shi",
    "check": "Vérifier",
    "next": "Question suivante",
    "right": "Juste : {{kana}} se lit {{romaji}}.",
    "wrong": "Pas tout à fait : {{kana}} se lit {{romaji}}."
  },
  "chord-progression-generator": {
    "heading": "Générateur de progressions d'accords",
    "subtitle": "Tonalité, schéma, chiffres romains, notes de chaque accord et écoute au tempo choisi.",
    "tonic_label": "Tonique",
    "mode_label": "Mode",
    "major": "Majeur",
    "minor": "Mineur",
    "key_major": "{{note}} majeur",
    "key_minor": "{{note}} mineur",
    "transpose_label": "Transposer",
    "transpose_down": "Un demi-ton plus bas",
    "transpose_up": "Un demi-ton plus haut",
    "preset_label": "Schéma",
    "custom": "Progression personnalisée",
    "custom_hint": "Progression modifiée : ajoutez ou retirez des accords librement.",
    "preset": {
      "axis": "Rotation du schéma « singer/songwriter », courant chez les auteurs-compositeurs des années 1990.",
      "singer": "Schéma « singer/songwriter », courant chez les auteurs-compositeurs des années 1990.",
      "doowop": "Schéma doo-wop, courant dans la pop des années 1960.",
      "hopscotch": "Schéma « hopscotch », courant dans la pop depuis 2010.",
      "two_five_one": "ii–V–I avec septièmes : l'enchaînement de base du jazz en majeur.",
      "blues": "Blues de 12 mesures : trois phrases de 4 mesures, accords en septième de dominante.",
      "singer_minor": "Le schéma « singer/songwriter » entendu dans le relatif mineur.",
      "lament": "Lamento : la basse descend de la tonique à la dominante, en mineur, avec un V majeur.",
      "two_five_one_minor": "iiø7–V7–i7 : le ii–V–i du jazz en mineur."
    },
    "blues_label": "Blues de 12 mesures",
    "surprise": "Autre schéma au hasard",
    "sevenths": "Accords de septième",
    "progression_title": "Progression en {{key}}",
    "remove_last": "Retirer le dernier",
    "clear": "Tout effacer",
    "chord_play": "Écouter {{chord}}",
    "empty": "Ajoutez des accords depuis la gamme ci-dessous ou choisissez un schéma.",
    "play": "Écouter",
    "stop": "Arrêter",
    "tempo": "Tempo",
    "volume": "Volume",
    "beats_label": "Temps par accord",
    "loop": "Lecture en boucle",
    "duration": "Accords : {{n}} ; {{chord}} s par accord ; un tour : {{total}} s.",
    "diatonic_title": "Accords de la gamme de {{key}}",
    "diatonic_hint": "Touchez un accord pour l'écouter et l'ajouter à la fin de la progression.",
    "add_chord": "Ajouter {{chord}} à la progression",
    "max_note": "Maximum : {{n}} accords.",
    "minor_note": "En mineur, les accords suivent la gamme mineure naturelle ; le lamento et le ii–V–i ont un V majeur, comme l'indique Open Music Theory.",
    "synth_note": "Son synthétisé dans le navigateur, le même que celui du piano virtuel, pas un piano échantillonné.",
    "source_note": "Schémas d'après Open Music Theory 2e (Gotham et al., CC BY-SA 4.0), décrits par style, sans citer d'œuvre.",
    "note": {
      "c": "Do",
      "c_sharp": "Do♯",
      "c_flat": "Do♭",
      "d": "Ré",
      "d_sharp": "Ré♯",
      "d_flat": "Ré♭",
      "e": "Mi",
      "e_sharp": "Mi♯",
      "e_flat": "Mi♭",
      "f": "Fa",
      "f_sharp": "Fa♯",
      "f_flat": "Fa♭",
      "f_double_sharp": "Fa♯♯",
      "g": "Sol",
      "g_sharp": "Sol♯",
      "g_flat": "Sol♭",
      "a": "La",
      "a_sharp": "La♯",
      "a_flat": "La♭",
      "b": "Si",
      "b_sharp": "Si♯",
      "b_flat": "Si♭"
    }
  },
  "chess-clock": {
    "heading": "Pendule d'échecs",
    "subtitle": "Touchez votre pendule ou appuyez sur Espace pour finir votre coup.",
    "white": "Blancs",
    "black": "Noirs",
    "half_aria": "Pendule des {{player}}, {{time}}",
    "flag_fell": "Temps écoulé",
    "flag_status": "Temps écoulé pour les {{player}}.",
    "delay_left": "Délai : {{s}} s",
    "moves": "Coups : {{n}}",
    "start": "Démarrer (Blancs)",
    "pause": "Pause",
    "resume": "Reprendre",
    "reset": "Remettre à zéro",
    "sound": "Son de fin de temps",
    "fullscreen": "Plein écran",
    "exit_fullscreen": "Quitter le plein écran",
    "clock_region": "Pendule",
    "keys_hint": "Espace : finir le coup (ou démarrer, reprendre). Avant le départ, toucher sa pendule lance celle de l'adversaire. L'écran reste allumé pendant la partie si le navigateur le permet.",
    "presets_title": "Cadences",
    "cat_bullet": "Bullet",
    "cat_blitz": "Blitz",
    "cat_rapid": "Rapide",
    "cat_classical": "Classique",
    "presets_hint": "Minutes + secondes d'incrément Fischer. Groupes selon la durée estimée de Lichess (temps + 40 × incrément).",
    "custom_title": "Cadence personnalisée",
    "minutes_label": "Minutes",
    "seconds_label": "Secondes",
    "increment_label": "Par coup",
    "mode_label": "Type de temps ajouté",
    "mode_fischer": "Incrément Fischer (cumulatif)",
    "mode_delay": "Délai Bronstein (non cumulatif)",
    "mode_fischer_help": "Le temps par coup s'ajoute avant chaque coup, dès le premier (glossaire FIDE) : il s'accumule si vous jouez vite.",
    "mode_delay_help": "Le temps principal ne baisse qu'après le délai (FIDE, art. 6.3.2) ; un coup joué dans le délai le laisse inchangé, sans rien ajouter.",
    "mode_none_help": "Sans temps par coup : chaque joueur n'a que son temps de base (cadence KO).",
    "fide_category": "Catégorie FIDE de cette cadence : {{category}}",
    "fide_blitz": "blitz (temps + 60 × incrément ≤ 10 min)",
    "fide_rapid": "rapide (plus de 10 et moins de 60 min)",
    "fide_standard": "standard (60 min ou plus)",
    "locked_hint": "Partie en cours : remettez à zéro pour changer de cadence.",
    "background_note": "Le temps est recalculé depuis l'instant de début du coup : il reste juste si l'onglet passe en arrière-plan. Pendant la partie, l'outil demande au navigateur de garder l'écran allumé."
  },
  "padel-americano-generator": {
    "heading": "Tournoi americano de padel",
    "subtitle": "Joueurs, terrains, points par match : le planning des tours, la saisie des scores et le classement.",
    "players_title": "Joueurs ({{n}})",
    "player_default": "Joueur {{n}}",
    "player_name": "Nom du joueur {{n}}",
    "remove_player": "Retirer {{name}}",
    "add_player": "Ajouter un joueur",
    "players_hint": "De 4 à 24 joueurs. Changer le nombre de joueurs, de terrains ou de tours demande un nouveau planning.",
    "courts_label": "Terrains",
    "rounds_label": "Tours",
    "rounds_hint": "Pour que chacun puisse faire équipe avec tous les autres : {{n}} tours.",
    "points_label": "Points par match",
    "points_option": "{{n}} points",
    "points_hint": "Total des points d'un match, fixé par l'organisateur (par exemple 13-11 en 24 points).",
    "courts_unused": "Terrains réellement utilisés avec {{players}} joueurs : {{used}} (4 joueurs par terrain).",
    "sitout_each_round": "Joueurs au repos à chaque tour : {{k}}.",
    "rounds_short": "Avec moins de {{needed}} tours, chacun ne peut pas faire équipe avec tous les autres.",
    "generate": "Générer le planning",
    "regenerate": "Nouveau tirage",
    "confirm_regenerate": "Un nouveau planning efface les scores saisis. Continuer ?",
    "stale_notice": "Réglages modifiés : le planning affiché date des anciens réglages (joueurs : {{n}}, terrains : {{courts}}, tours : {{rounds}}). Générez-en un nouveau pour les appliquer.",
    "balance_title": "Équilibre du planning",
    "stat_partner_ok": "Aucune paire de joueurs n'a fait équipe deux fois.",
    "stat_partner_rep": "Paires ayant fait équipe plusieurs fois : {{pairs}} (jusqu'à {{max}} fois).",
    "stat_never": "Paires de joueurs qui n'ont jamais fait équipe : {{k}}.",
    "stat_opp": "Deux joueurs s'affrontent entre {{min}} et {{max}} fois.",
    "stat_games": "Matchs par joueur : de {{min}} à {{max}} ; repos : de {{rmin}} à {{rmax}}.",
    "method_note": "Planning cherché par essais : il limite les partenaires répétés, puis répartit les adversaires, sans garantie d'optimum. Un équilibre parfait des adversaires n'est pas possible pour tous les nombres de joueurs.",
    "standings_title": "Classement",
    "print": "Imprimer",
    "col_player": "Joueur",
    "col_points": "Points",
    "col_played": "Matchs",
    "col_wdl": "V-N-D",
    "col_diff": "Diff.",
    "col_avg": "Moy.",
    "rank_by_points": "Classement au total des points, puis à la différence, puis aux victoires.",
    "rank_by_avg": "Nombres de matchs notés différents : classement à la moyenne par match, puis à la différence, puis aux victoires.",
    "round_title": "Tour {{n}}",
    "court": "Terrain {{n}}",
    "score_aria": "Score de {{team}}, terrain {{court}}, tour {{round}}",
    "score_total_warn": "Total {{total}} au lieu de {{points}} : vérifiez le score.",
    "resting": "Au repos : {{names}}",
    "format_note": "L'americano est un format de club : la Fédération internationale de padel n'en fixe pas les règles. Le « mexicano » n'est pas proposé, faute de définition de référence.",
    "storage_note": "Joueurs, planning et scores sont enregistrés dans ce navigateur, sur cet appareil."
  },
  "flashcards-spaced-repetition": {
    "heading": "Flashcards à répétition espacée",
    "subtitle": "Créez vos paquets et révisez les cartes du jour : l'algorithme SM-2 fixe la prochaine date.",
    "deck_label": "Paquet",
    "delete_deck": "Supprimer le paquet {{name}}",
    "confirm_delete_deck": "Supprimer le paquet « {{name}} » et ses cartes ({{n}}) ?",
    "stat_cards": "Cartes",
    "stat_due": "À réviser aujourd'hui",
    "stat_new": "Nouvelles",
    "remaining": "Cartes restantes dans la séance : {{n}}",
    "front": "Recto",
    "back": "Verso",
    "show_answer": "Afficher la réponse",
    "grade_prompt": "Comment avez-vous répondu ?",
    "grade0": "Trou noir",
    "grade1": "Faux, réponse reconnue ensuite",
    "grade2": "Faux, alors qu'elle semblait facile",
    "grade3": "Juste, avec difficulté",
    "grade4": "Juste, après hésitation",
    "grade5": "Parfait",
    "next_in": "prochaine dans {{n}} j",
    "practice_only": "reprise : calendrier inchangé",
    "keys_hint": "Clavier : Espace ou Entrée affiche la réponse, 0 à 5 donne la note.",
    "session_done": "Séance terminée. Cartes révisées : {{n}}.",
    "start": "Commencer la révision ({{n}})",
    "none_due_next": "Rien à réviser aujourd'hui. Prochaine carte le {{date}}.",
    "none_due": "Ce paquet est vide : ajoutez une carte.",
    "no_deck": "Aucun paquet : créez-en un pour commencer.",
    "list_title": "Cartes du paquet ({{n}})",
    "card_meta": "échéance {{date}} · intervalle {{n}} j · EF {{ef}}",
    "delete_card": "Supprimer la carte {{name}}",
    "add_title": "Nouvelle carte",
    "add_card": "Ajouter la carte",
    "new_deck": "Nouveau paquet",
    "new_deck_placeholder": "Ex. : vocabulaire anglais",
    "create": "Créer",
    "csv_title": "Import et export CSV",
    "export": "Exporter (CSV)",
    "import": "Importer (CSV)",
    "import_ok": "Cartes importées : {{n}}",
    "import_error": "Aucune carte lue : il faut au moins deux colonnes, recto puis verso.",
    "csv_hint": "Colonnes : recto, verso, puis facultativement EF, répétitions, intervalle et échéance (AAAA-MM-JJ). Séparateur : virgule, point-virgule ou tabulation.",
    "method_note": "SM-2 : 1 jour, puis 6, puis intervalle × EF (2,5 au départ, 1,3 au minimum) ; une note sous 3 renvoie à 1 jour. Les cartes restent dans ce navigateur.",
    "sample": {
      "deck": "Exemple : capitales d'Europe",
      "f1": "Capitale du Portugal ?",
      "f2": "Capitale de l'Autriche ?",
      "f3": "Capitale de la Pologne ?",
      "f4": "Capitale de la Grèce ?",
      "f5": "Capitale de l'Irlande ?",
      "f6": "Capitale de la Hongrie ?",
      "b1": "Lisbonne",
      "b2": "Vienne",
      "b3": "Varsovie",
      "b4": "Athènes",
      "b5": "Dublin",
      "b6": "Budapest"
    }
  },
  "reaction-time-test": {
    "heading": "Test de temps de réaction",
    "subtitle": "Cliquez dès que la zone passe au vert, {{n}} essais",
    "zone_idle": "Cliquez pour commencer",
    "zone_idle_sub": "Attendez le vert, puis cliquez le plus vite possible.",
    "zone_wait": "Attendez le vert…",
    "zone_wait_sub": "Un clic maintenant serait un faux départ.",
    "zone_go": "Cliquez !",
    "zone_early": "Trop tôt !",
    "zone_early_sub": "Cet essai ne compte pas. Cliquez pour le refaire.",
    "zone_shown_sub": "Essai {{k}} sur {{total}}. Cliquez pour continuer.",
    "zone_done": "Moyenne : {{value}} ms",
    "zone_done_sub": "Cliquez pour refaire une série.",
    "controls_hint": "Souris, toucher, ou touche Espace ou Entrée quand la zone a le focus.",
    "results_title": "Résultats ({{k}} sur {{total}})",
    "restart": "Recommencer",
    "trials_label": "Temps de chaque essai, en millisecondes",
    "mean_label": "Moyenne",
    "median_label": "Médiane",
    "best_label": "Meilleur essai",
    "worst_label": "Essai le plus lent",
    "no_result": "Aucun essai pour l'instant : cliquez sur la zone bleue.",
    "ref_title": "Repère publié",
    "ref_text": "Woods et al. (2015), 1 469 adultes de 18 à 65 ans : {{mean}} ms en moyenne, {{corrected}} ms après correction des retards de l'écran et de la souris ({{delay}} ms sur leur matériel).",
    "ref_compare": "Votre médiane : {{median}} ms, soit {{diff}} ms par rapport à la moyenne de l'étude.",
    "latency_note": "Résultat indicatif : il inclut la latence de votre écran (une image dure {{frame}} ms à 60 Hz), de la souris ou de l'écran tactile et du navigateur. Comparez-vous sur le même appareil. Ce test ne remplace pas l'avis d'un médecin."
  },
  "sound-level-meter": {
    "heading": "Sonomètre",
    "subtitle": "Niveau sonore pondéré A, maximum et moyenne (Leq) mesurés par le micro.",
    "not_a_meter": "Un micro de téléphone ou d’ordinateur n’est pas un sonomètre : il n’est pas étalonné et sature aux niveaux forts. Les valeurs sont relatives (dBFS) tant que vous n’avez pas saisi de décalage, et restent une estimation ensuite.",
    "start": "Activer le micro",
    "starting": "Autorisation du micro…",
    "stop": "Couper le micro",
    "err_insecure": "Le micro n’est accessible que sur une page sécurisée (https) d’un navigateur récent.",
    "err_denied": "Accès au micro refusé. Autorisez-le dans la barre d’adresse (icône de cadenas ou de micro), puis réessayez.",
    "err_notfound": "Aucun micro détecté. Branchez-en un ou vérifiez les réglages du système.",
    "err_busy": "Le micro est occupé par une autre application. Fermez-la puis réessayez.",
    "err_other": "Impossible d’ouvrir le micro. Rechargez la page ou essayez un autre navigateur.",
    "privacy": "Le son est analysé dans votre navigateur : rien n’est enregistré ni envoyé. Le micro se coupe quand vous quittez la page.",
    "processing_warn": "Votre navigateur n’a pas confirmé l’arrêt du gain automatique ou de la réduction de bruit (cas de Safari) : le niveau peut être lissé ou compressé.",
    "response_label": "Constante de temps",
    "fast": "Fast (125 ms)",
    "slow": "Slow (1 s)",
    "offset_label": "Décalage d’étalonnage",
    "offset_hint": "Mesurez la même source qu’un sonomètre étalonné et saisissez l’écart (sa valeur moins celle affichée ici avec 0). À 0, l’outil affiche des dBFS (A) : 0 = pleine échelle du micro.",
    "level_fast": "Niveau (Fast, 125 ms)",
    "level_slow": "Niveau (Slow, 1 s)",
    "unit_dbfs": "dBFS (A)",
    "unit_dba": "dB(A) estimés",
    "max_label": "Maximum",
    "leq_label": "Leq (moyenne)",
    "duration_label": "Durée",
    "unit_note": "Valeurs en {{unit}}, pondération A. Un sinus à pleine échelle donne −3,0 dBFS.",
    "reset": "Remettre à zéro",
    "niosh_uncal": "Saisissez un décalage d’étalonnage pour comparer la moyenne (Leq) aux seuils d’exposition.",
    "niosh_time": "Leq estimé {{leq}} dB(A) : à ce niveau moyen, le NIOSH recommande au plus {{time}} d’exposition par jour.",
    "niosh_below": "Leq estimé {{leq}} dB(A) : sous la limite recommandée par le NIOSH, 85 dB(A) en moyenne sur 8 h.",
    "hours": "{{h}} h",
    "minutes": "{{m}} min",
    "history_title": "Historique (60 s)",
    "history_aria": "Évolution du niveau sonore sur 60 secondes, en {{unit}}",
    "history_range": "De {{lo}} à {{hi}} {{unit}}",
    "history_span": "60 dernières secondes",
    "ref_title": "Niveaux de la vie courante",
    "ref_conversation": "Conversation normale",
    "ref_cinema": "Salle de cinéma",
    "ref_moto": "Motos et motocross",
    "ref_headphones": "Casque à fond, concerts, matchs",
    "ref_sirens": "Sirènes",
    "ref_fireworks": "Feu d’artifice",
    "ref_source": "Niveaux typiques en dB(A) réels, d’après le NIDCD (NIH, page mise à jour le 16/04/2025).",
    "thr_title": "Seuils d’exposition",
    "thr_nidcd70": "Sans effet probable sur l’ouïe, même longtemps (NIDCD)",
    "thr_who": "Écoute sans risque, 40 h par semaine, adulte / enfant (OMS-UIT H.870)",
    "thr_inrs": "Travail en France, moyenne sur 8 h : action inférieure, action supérieure, valeur limite (Code du travail, INRS)",
    "thr_niosh": "Limite recommandée sur 8 h ; chaque +3 dB divise la durée par 2 (NIOSH)",
    "thr_nidcd85": "Exposition longue ou répétée : risque de perte auditive (NIDCD)",
    "thr_note": "Ces seuils portent sur une moyenne (Leq) sur la journée ou la semaine, pas sur un pic. Ils supposent des dB réels : sans étalonnage, l’outil ne permet pas de les vérifier."
  },
  "online-metronome": {
    "heading": "Métronome",
    "subtitle": "Tempo stable de 20 à 300 BPM, mesures simples et composées, subdivisions et tap tempo.",
    "bpm_label": "Tempo",
    "bpm_range": "Tempo limité de {{min}} à {{max}} BPM : {{value}} BPM utilisé.",
    "tap": "Taper le tempo",
    "meter_label": "Mesure",
    "bpm_hint": "Le BPM compte la note du bas : la noire en x/4, la croche en x/8. En 6/8, 9/8 et 12/8, les croches sont groupées par trois.",
    "sub_label": "Subdivisions",
    "sub": {
      "1": "Temps seuls",
      "2": "2 par temps",
      "3": "3 par temps (triolets)",
      "4": "4 par temps"
    },
    "accent": "Accentuer le premier temps",
    "volume_label": "Volume",
    "summary": "{{meter}} · un temps toutes les {{ms}} ms",
    "start": "Démarrer",
    "stop": "Arrêter",
    "precision_note": "Chaque clic est programmé sur l'horloge audio 100 ms à l'avance : le tempo reste stable même si la page ralentit. Un casque Bluetooth peut ajouter un léger retard constant.",
    "ios_note": "Sur iPhone ou iPad, si vous n'entendez rien, désactivez le mode silencieux."
  },
  "aquarium-volume-calculator": {
    "heading": "Volume net et poids de l'aquarium",
    "subtitle": "Verre, substrat et décor déduits, en litres et gallons US",
    "shape_label": "Forme",
    "shape_rect": "Rectangulaire",
    "shape_cyl": "Cylindrique",
    "shape_corner": "D'angle",
    "shape_bow": "Face bombée",
    "unit_label": "Unités",
    "unit_metric": "cm et mm",
    "unit_imperial": "Pouces",
    "unit_in": "po",
    "unit_kgl": "kg/L",
    "dims_title": "Dimensions extérieures",
    "length_label": "Longueur",
    "width_label": "Largeur (profondeur)",
    "depth_side_label": "Profondeur aux côtés",
    "bow_label": "Bombé au centre",
    "diameter_label": "Diamètre",
    "side_label": "Côté contre le mur",
    "height_label": "Hauteur",
    "glass_label": "Épaisseur du verre",
    "corner_hint": "Bac en quart de cercle : les deux côtés droits contre les murs, la façade courbe.",
    "bow_hint": "Bombé : avancée de la façade au centre par rapport aux angles (au plus la moitié de la longueur).",
    "gap_label": "Vide sous le bord",
    "substrate_label": "Hauteur de substrat",
    "decor_label": "Volume du décor",
    "svg_title": "Vue de dessus du bac : contour extérieur et contour intérieur",
    "svg_caption": "Vue de dessus à l'échelle : trait plein à l'extérieur, tirets à l'intérieur du verre.",
    "notice_glass": "L'épaisseur du verre dépasse les dimensions : vérifiez les unités.",
    "notice_bow": "Bombé limité à la moitié de la longueur (au-delà, la façade dépasse le demi-cercle).",
    "result_title": "Volumes",
    "net_label": "Eau nette dans le bac",
    "gross_label": "Volume brut (extérieur)",
    "inner_label": "Volume intérieur",
    "sand_volume": "Volume de substrat",
    "gal_value": "{{value}} gal US",
    "weight_title": "Poids rempli",
    "weight_value": "{{kg}} kg · {{lb}} lb",
    "water_weight": "Eau",
    "glass_weight": "Verre",
    "glass_volume": "{{value}} L de verre à 2,5 kg/L",
    "sand_weight": "Substrat",
    "total_weight": "Total",
    "total_note": "Hors meuble et décor",
    "sand_density_label": "Densité du substrat",
    "indicative": "Densité du substrat : valeur indicative, non vérifiée. Le verre (2,5 kg/L) suit la fiche AGC selon EN 572-1.",
    "equipment_title": "Chauffage et filtre",
    "heater_label": "Chauffage par litre",
    "turnover_label": "Brassage (volumes par heure)",
    "heater_result": "Puissance de chauffage",
    "filter_result": "Débit du filtre",
    "gph_value": "{{value}} gal US/h",
    "equipment_note": "Règles du litre de chauffage et du brassage : valeurs indicatives, non vérifiées sur une source officielle. Suivez la notice du fabricant et la température de la pièce.",
    "disclaimer": "Calcul géométrique : le substrat est compté plein, les renforts et couvercles sont ignorés. Vérifiez la charge admise par le meuble et le plancher."
  },
  "knitting-row-counter": {
    "heading": "Compteur de rangs et de mailles",
    "subtitle": "Tricot ou crochet : plusieurs compteurs, motifs répétés, annulation et écran allumé.",
    "kind_rows": "Rangs",
    "kind_repeat": "Motif",
    "kind_stitches": "Mailles",
    "kind_custom": "Compteur",
    "default_project": "Mon projet",
    "confirm_delete": "Supprimer le projet « {{name}} » et ses compteurs ?",
    "repeat_progress": "{{value}} / {{every}} rangs du motif · répétitions terminées : {{cycles}}",
    "project_select": "Projet",
    "project_name": "Nom du projet",
    "new_project": "Nouveau projet",
    "delete_project": "Supprimer le projet",
    "plus_one": "+1",
    "plus_aria": "Ajouter 1 à {{name}}",
    "minus_aria": "Retirer 1 à {{name}}",
    "undo": "Annuler",
    "reset": "Remettre à 0",
    "space_hint": "Barre d'espace : +1 rang (quand aucun champ n'est sélectionné).",
    "counter_name": "Nom du compteur",
    "remove_counter": "Supprimer le compteur {{name}}",
    "every_label": "Remise à 0 tous les N rangs (0 = jamais)",
    "follow_label": "Avance avec {{name}}",
    "add_counter": "Ajouter un compteur",
    "screen_title": "Écran",
    "wake_label": "Garder l'écran allumé",
    "wake_unsupported": "Ce navigateur ne permet pas de garder l'écran allumé : réglez la mise en veille dans les paramètres de l'appareil.",
    "wake_note": "Le navigateur relâche ce verrou quand vous changez d'application ; il est redemandé à votre retour. Cela consomme un peu plus de batterie.",
    "save_note": "Vos projets et compteurs sont gardés dans ce navigateur, sur cet appareil. L'historique d'annulation s'efface au rechargement."
  },
  "aim-trainer": {
    "heading": "Entraînement de visée",
    "subtitle": "Cibles fixes ou suivi, à la souris comme au toucher",
    "mode_label": "Mode",
    "mode_static": "Cibles fixes",
    "mode_tracking": "Suivi",
    "duration_label": "Durée",
    "size_label": "Taille des cibles",
    "size_small": "Petite",
    "size_medium": "Moyenne",
    "size_large": "Grande",
    "lock_option": "Verrouiller le pointeur (Pointer Lock) : curseur masqué, mouvements relatifs de la souris comme dans un jeu de tir. Échap termine la partie.",
    "lock_unavailable": "Pointer Lock n'est pas disponible sur cet appareil (téléphone, tablette ou écran tactile) : le jeu se joue au toucher.",
    "rules_static": "Touchez chaque cible le plus vite possible ; un clic à côté compte comme un tir manqué.",
    "rules_tracking": "Gardez le pointeur (ou le doigt) sur la cible mobile le plus longtemps possible.",
    "canvas_label": "Arène de tir avec cibles",
    "hud_time": "Temps",
    "hud_hits": "Cibles touchées",
    "hud_on_target": "Sur la cible",
    "start": "Commencer",
    "play_again": "Rejouer",
    "exit_hint": "Échap arrête la partie à tout moment. Le jeu demande une souris, un pavé tactile ou un écran tactile.",
    "results_title": "Résultats de la partie",
    "res_hits": "Score (cibles touchées)",
    "res_accuracy": "Précision",
    "res_avg_time": "Temps moyen par cible",
    "res_per_second": "Cibles par seconde",
    "res_on_target": "Temps sur la cible",
    "res_on_target_time": "Durée cumulée sur la cible",
    "no_result": "Lancez une partie : le score, la précision et le temps par cible s'afficheront ici.",
    "note": "Les scores dépendent de l'écran, de la sensibilité de la souris et de la latence d'affichage : comparez-vous sur le même appareil, avec les mêmes réglages."
  },
  "chess-openings-explorer": {
    "heading": "Explorateur d'ouvertures d'échecs",
    "subtitle": "Jouez les coups ou cherchez une ouverture : nom, code ECO et suites de la base lichess.",
    "board_label": "Échiquier : choisissez une pièce, puis sa case d'arrivée",
    "square_piece": "{{square}}, {{piece}}",
    "square_empty": "{{square}}, case vide",
    "square_target_piece": "{{square}}, {{piece}}, prise possible",
    "square_target_empty": "{{square}}, coup possible",
    "piece": {
      "wp": "pion blanc",
      "wn": "cavalier blanc",
      "wb": "fou blanc",
      "wr": "tour blanche",
      "wq": "dame blanche",
      "wk": "roi blanc",
      "bp": "pion noir",
      "bn": "cavalier noir",
      "bb": "fou noir",
      "br": "tour noire",
      "bq": "dame noire",
      "bk": "roi noir"
    },
    "back": "Annuler le coup",
    "reset": "Recommencer",
    "flip": "Retourner l'échiquier",
    "turn_white": "Trait aux Blancs",
    "turn_black": "Trait aux Noirs",
    "moves_title": "Coups joués",
    "copy_pgn": "Copier le PGN",
    "no_moves": "Aucun coup pour l'instant : jouez sur l'échiquier ou choisissez une suite.",
    "load_error": "Impossible de charger la base d'ouvertures. Vérifiez la connexion puis réessayez.",
    "retry": "Réessayer",
    "loading": "Chargement de la base d'ouvertures…",
    "opening_title": "Ouverture de la position",
    "start_position": "Position de départ",
    "out_of_book": "Position absente de la base : nom de la dernière position répertoriée, après {{line}}.",
    "transposition": "Transposition : même position que la ligne de référence {{line}}.",
    "no_named": "Aucune position nommée sur ce chemin.",
    "next_title": "Suites répertoriées",
    "move_header": "Coup",
    "name_header": "Position atteinte",
    "lines_header": "Lignes",
    "unnamed": "sans nom propre",
    "no_next": "Aucune suite répertoriée à partir de cette position.",
    "search_label": "Rechercher une ouverture",
    "search_placeholder": "Nom anglais (Sicilian) ou code ECO (B20)",
    "search_count": "{{shown}} résultats affichés sur {{total}}",
    "search_none": "Aucune ouverture trouvée. Les noms sont en anglais.",
    "names_note": "Base de {{n}} lignes nommées (codes ECO A00 à E99). Les noms sont ceux de la base, en anglais.",
    "no_stats": "Pas de statistiques de parties ni de pourcentages de victoire : seulement l'arbre des ouvertures nommées, chargé une fois par votre navigateur.",
    "credits": "Ouvertures : lichess-org/chess-openings (CC0) · Pièces : Colin M. L. Burnett (BSD) · Règles des coups : chess.js (BSD-2)"
  },
  "companion-planting-chart": {
    "heading": "Associations favorables et défavorables",
    "subtitle": "20 légumes, avec la source de chaque relation",
    "warning": "La plupart des associations relèvent de la tradition jardinière : elles n'ont pas été démontrées par des essais. Chaque relation indique si elle repose sur une source ou sur la seule tradition.",
    "crop_label": "Légume",
    "filter_all": "Toutes",
    "filter_good": "Favorables",
    "filter_bad": "Défavorables",
    "studies_only": "Seulement les relations appuyées sur une source",
    "good_title": "Favorables avec : {{name}}",
    "bad_title": "Défavorables avec : {{name}}",
    "none": "Aucune relation avec ce filtre.",
    "trad_badge": "Tradition jardinière, non démontrée",
    "study_badge": "Appuyé sur une source",
    "ev_uvah": "Étude : en culture mélangée, l'oignon a réduit les attaques de mouche de la carotte, surtout avec des oignons jeunes, avant la formation du bulbe (Uvah et Coaker, 1984).",
    "ev_purdue": "Fait établi : Phytophthora infestans cause le mildiou de la tomate et de la pomme de terre (Purdue Extension). L'effet d'un éloignement au potager n'est pas mesuré.",
    "with_q": "{{name}} ({{q}})",
    "q_bush": "nain",
    "q_pole": "à rames",
    "beans_note": "La source indique aussi que les haricots s'associent avec « la plupart des légumes et herbes » : ce conseil général n'est pas repris case par case.",
    "grid_title": "Grille des 20 légumes",
    "grid_hint": "Cliquez sur un légume de la première colonne pour afficher sa fiche. Les herbes et fleurs compagnes figurent seulement dans les fiches.",
    "cell_good": "{{a}} et {{b}} : favorable",
    "cell_bad": "{{a}} et {{b}} : défavorable",
    "legend_good": "Favorable",
    "legend_bad": "Défavorable",
    "legend_study": "Cadre : appuyé sur une source",
    "source_note": "Relations : « Companion Planting Chart » du programme UC Master Gardener (UC ANR, d'après ATTRA). Sources des paires étayées : Uvah et Coaker (1984) ; Purdue Extension BP-80-W.",
    "disclaimer": "Repères de jardinage : le climat, l'espacement, la rotation et la santé du sol pèsent davantage que les voisinages.",
    "p_asparagus": "Asperge",
    "p_bean": "Haricot",
    "p_beet": "Betterave",
    "p_cabbage": "Choux (chou, brocoli, chou-fleur)",
    "p_carrot": "Carotte",
    "p_celery": "Céleri",
    "p_corn": "Maïs",
    "p_cucumber": "Concombre",
    "p_eggplant": "Aubergine",
    "p_lettuce": "Laitue",
    "p_onion": "Oignon et ail",
    "p_parsley": "Persil",
    "p_pea": "Petit pois",
    "p_potato": "Pomme de terre",
    "p_pumpkin": "Potiron",
    "p_radish": "Radis",
    "p_spinach": "Épinard",
    "p_squash": "Courge et courgette",
    "p_tomato": "Tomate",
    "p_turnip": "Navet",
    "p_basil": "Basilic",
    "p_chamomile": "Camomille",
    "p_chard": "Blette",
    "p_dill": "Aneth",
    "p_fennel": "Fenouil",
    "p_fava": "Fève",
    "p_gladiolus": "Glaïeul",
    "p_herbs": "Herbes aromatiques",
    "p_horseradish": "Raifort",
    "p_hyssop": "Hysope",
    "p_kohlrabi": "Chou-rave",
    "p_marigold": "Œillet d'Inde",
    "p_nasturtium": "Capucine",
    "p_rosemary": "Romarin",
    "p_sage": "Sauge",
    "p_savory": "Sarriette",
    "p_strawberry": "Fraisier",
    "p_sunflower": "Tournesol"
  },
  "compost-carbon-nitrogen-calculator": {
    "heading": "Rapport C/N et humidité du mélange",
    "subtitle": "Pondéré par la matière sèche (formule de Cornell)",
    "materials_title": "Matières du tas",
    "material_label": "Matière",
    "mass_label": "Masse humide",
    "n_label": "Azote (N, % sec)",
    "c_label": "Carbone (C, % sec)",
    "m_label": "Humidité",
    "remove_row": "Retirer {{name}}",
    "add_row": "Ajouter une matière",
    "values_hint": "N, C et humidité viennent de la table (moyennes d'analyses) ; modifiez-les si vous avez une analyse de vos matières.",
    "result_title": "Résultat du mélange",
    "ratio_label": "Rapport carbone/azote",
    "bar_title": "C/N de {{value}} sur une échelle de 0 à 60, plage préférée 25 à 30",
    "v_low": "Moins de 20 : trop d'azote, risque d'odeurs d'ammoniac. Ajoutez des matières brunes (feuilles, paille, carton).",
    "v_ok_low": "Entre 20 et 25 : acceptable, un peu riche en azote.",
    "v_pref": "Entre 25 et 30 : plage préférée.",
    "v_ok_high": "Entre 30 et 40 : acceptable, décomposition plus lente.",
    "v_high": "Plus de 40 : trop de carbone, le tas chauffe peu. Ajoutez des matières vertes (tonte, épluchures, fumier).",
    "v_none": "Ajoutez une matière contenant de l'azote pour obtenir un rapport.",
    "moisture_label": "Humidité",
    "total_label": "Masse totale",
    "dry_label": "Matière sèche",
    "m_dry": "Humidité sous 40 % : trop sec, arrosez en mélangeant.",
    "m_ok": "Humidité acceptable (40 à 65 %).",
    "m_pref": "Humidité dans la plage préférée (50 à 55 %).",
    "m_wet": "Humidité au-dessus de 65 % : trop humide, ajoutez des matières sèches.",
    "bar_caption": "Plages de LSU AgCenter d'après l'On-Farm Composting Handbook (NRAES-54) : C/N 20 à 40 acceptable, 25 à 30 préféré.",
    "balance_title": "Atteindre un C/N cible",
    "balance_row_label": "Matière à ajuster",
    "target_label": "C/N visé",
    "balance_result": "Pour un C/N de {{target}} : {{mass}} de {{name}} (actuellement {{current}}), les autres matières restant inchangées.",
    "balance_impossible": "Cette matière ne permet pas d'atteindre {{target}} avec les autres : choisissez une matière plus carbonée ou plus azotée selon le sens de l'écart.",
    "table_title": "Table des matières (N, C, humidité)",
    "col_material": "Matière",
    "col_n": "N % sec",
    "col_c": "C % sec",
    "col_cn": "C/N",
    "col_m": "Humidité %",
    "col_src": "Origine",
    "src_note": "The Composting Handbook, annexe B (Compost Research & Education Foundation, révision du 20/12/2021). OFCH : On-Farm Composting Handbook (1992) ; WSU : Washington State University ; COTC : cours de formation des opérateurs de compostage.",
    "disclaimer": "Estimation à partir de moyennes : la part de carbone lente à se dégrader (bois, carton) et le retournement du tas comptent autant que le C/N.",
    "m_veg": "Légumes (déchets)",
    "m_fruit": "Fruits (déchets)",
    "m_food": "Restes de cuisine",
    "m_coffee": "Marc de café",
    "m_grass": "Tonte de gazon",
    "m_leaves": "Feuilles mortes",
    "m_straw": "Paille",
    "m_hay": "Foin",
    "m_shrub": "Tailles d'arbustes",
    "m_hardwood": "Bois de feuillus broyé",
    "m_sawdust": "Sciure et copeaux",
    "m_cardboard": "Carton ondulé",
    "m_newsprint": "Papier journal",
    "m_horse": "Fumier de cheval",
    "m_cattle": "Fumier de bovin",
    "m_poultry": "Fumier de volaille avec litière",
    "m_hens": "Fientes de poules pondeuses",
    "m_sheep": "Fumier de mouton",
    "m_water": "Eau (arrosage)"
  },
  "dead-pixel-test": {
    "heading": "Test pixel mort",
    "subtitle": "12 mires en plein écran pour inspecter votre dalle",
    "start": "Lancer le test en plein écran",
    "controls": "Mire suivante : flèche droite, Espace, clic ou balayage vers la gauche. Mire précédente : flèche gauche ou balayage vers la droite. Quitter : Échap ou bouton ✕. H masque ou affiche les indications.",
    "no_fullscreen": "Ce navigateur ne permet pas le plein écran : la mire couvrira la fenêtre. Sortie par le bouton ✕ (touchez l'écran pour le faire apparaître) ou Échap.",
    "patterns_title": "Commencer par une mire",
    "pattern_black": "Noir",
    "pattern_white": "Blanc",
    "pattern_red": "Rouge",
    "pattern_green": "Vert",
    "pattern_blue": "Bleu",
    "pattern_cyan": "Cyan",
    "pattern_magenta": "Magenta",
    "pattern_yellow": "Jaune",
    "pattern_gray": "Gris 50 %",
    "pattern_gradient_gray": "Dégradé noir-blanc",
    "pattern_gradient_rgb": "Dégradé de couleurs",
    "pattern_grid": "Grille",
    "look_title": "Ce qu'il faut chercher",
    "look_dead": "Pixel mort : point noir sur le blanc et sur les couleurs.",
    "look_stuck": "Pixel bloqué : point rouge, vert ou bleu qui ne change pas d'une mire à l'autre.",
    "look_hot": "Pixel chaud : point clair sur le noir.",
    "look_bleed": "Fuite de rétroéclairage : halos clairs dans les coins ou sur les bords, sur le noir.",
    "look_banding": "Bandes : marches visibles dans les dégradés au lieu d'une transition continue.",
    "tips": "Nettoyez l'écran avant le test : une poussière ressemble à un pixel mort mais bouge quand on l'essuie. Les mires changent au plus 3 fois par seconde et l'outil ne fait jamais clignoter l'écran.",
    "overlay_label": "Mire de test en plein écran",
    "hud_hint": "← → ou balayage pour changer, Échap ou ✕ pour quitter",
    "exit": "Quitter le test"
  },
  "drum-machine": {
    "heading": "Boîte à rythmes 16 pas",
    "subtitle": "8 sons de batterie synthétisés, tempo, swing, volume par piste et lien de partage.",
    "start": "Lecture",
    "stop": "Arrêter",
    "presets_label": "Motifs de départ",
    "preset": {
      "rock": "Rock",
      "house": "House",
      "hiphop": "Hip-hop",
      "reggaeton": "Reggaeton"
    },
    "clear": "Tout effacer",
    "grid_hint": "16 pas = une mesure en 4/4 en doubles croches. Touchez une case pour placer ou retirer un coup, et le nom d'une piste pour l'écouter.",
    "track": {
      "kick": "Grosse caisse",
      "snare": "Caisse claire",
      "clap": "Clap",
      "hat_closed": "Charleston fermé",
      "hat_open": "Charleston ouvert",
      "tom_low": "Tom grave",
      "tom_high": "Tom aigu",
      "rim": "Cercle (rimshot)"
    },
    "cell": "{{track}}, pas {{step}}",
    "preview": "Écouter : {{track}}",
    "tempo_label": "Tempo",
    "tempo_range": "Tempo limité de {{min}} à {{max}} BPM : {{value}} BPM utilisé.",
    "swing_label": "Swing",
    "swing_hint": "50 % = droit, 66,7 % = ternaire. Le swing allonge la 1re double croche de chaque paire et raccourcit la 2e.",
    "master_label": "Volume général",
    "mixer_label": "Volume par piste",
    "share_label": "Lien du motif",
    "share_copy": "Copier le lien",
    "share_hint": "Le motif, le tempo et le swing sont dans la partie après # : rien n'est enregistré sur un serveur.",
    "sound_note": "Sons calculés en direct, sans échantillon. Les coups sont programmés sur l'horloge audio 100 ms à l'avance. Sur iPhone, désactivez le mode silencieux si vous n'entendez rien."
  },
  "egg-incubation-calendar": {
    "heading": "Calendrier d'incubation",
    "subtitle": "Mirages, arrêt du retournement et éclosion, par espèce",
    "species_label": "Espèce",
    "s_chicken": "Poule",
    "s_turkey": "Dinde",
    "s_duck": "Canard",
    "s_muscovy": "Canard de Barbarie",
    "s_goose": "Oie",
    "s_guinea": "Pintade",
    "s_quail": "Caille japonaise",
    "set_label": "Mise en couveuse (jour 0)",
    "c1_label": "1er mirage (jour)",
    "c2_label": "2e mirage (jour)",
    "candle_hint_chicken": "Poule : premier test après 4 à 7 jours, second après 14 à 16 jours si un embryon est douteux (MSU Extension).",
    "candle_hint_other": "Jours de mirage proposés à la même proportion que pour la poule : valeur indicative, non vérifiée pour cette espèce.",
    "params_title": "Réglages de la couveuse",
    "f_c": "{{c}} °C ({{f}} °F)",
    "temp_value": "Température en air pulsé : {{value}}",
    "still_air": "Couveuse à air statique : 1,1 à 1,7 °C (2 à 3 °F) de plus, mesurés à hauteur des œufs (38,9 °C, soit 102 °F, pour la poule).",
    "wet_set": "Bulbe humide {{value}} jusqu'au jour {{day}}",
    "wet_hatch": "Bulbe humide {{value}} les 3 derniers jours",
    "rh_chicken": "Soit 58 à 60 % d'humidité relative, puis 65 % ou plus à l'éclosion.",
    "turning": "Retournement : au moins 4 à 6 fois par jour jusqu'au jour {{day}}, puis plus du tout.",
    "source_note": "Durées, températures et humidités : Mississippi State University Extension, couveuse à air pulsé.",
    "result_title": "Calendrier : {{species}}",
    "invalid_date": "Saisissez une date de mise en couveuse valide.",
    "hatch_label": "Éclosion prévue",
    "range": "du {{from}} au {{to}}",
    "days_one": "{{n}} jours d'incubation",
    "days_range": "{{min}} à {{max}} jours d'incubation",
    "today": "Aujourd'hui : jour {{n}} sur {{total}}",
    "timeline_title": "Frise des étapes du jour 0 à l'éclosion (jour {{n}})",
    "col_day": "Jour",
    "col_date": "Date",
    "col_step": "Étape",
    "step_set": "Mise en couveuse, retournement 4 à 6 fois par jour",
    "step_candle1": "Premier mirage : retirer les œufs clairs",
    "step_candle2": "Second mirage : vérifier les embryons douteux",
    "step_stop": "Dernier retournement, puis humidité relevée à {{wet}} au bulbe humide",
    "step_vent": "Ouvrir davantage les aérations",
    "step_hatch": "Éclosion prévue",
    "ics_set": "Incubation {{species}} : mise en couveuse",
    "ics_candle1": "Incubation {{species}} : premier mirage",
    "ics_candle2": "Incubation {{species}} : second mirage",
    "ics_stop": "Incubation {{species}} : arrêt du retournement",
    "ics_hatch": "Incubation {{species}} : éclosion prévue",
    "disclaimer": "Repères pour couveuse à air pulsé : suivez aussi la notice de votre appareil et limitez les variations de température à environ 0,6 °C, soit 1 °F (MSU)."
  },
  "habit-tracker": {
    "heading": "Suivi d'habitudes",
    "subtitle": "Cochez chaque jour, suivez vos séries et le taux du mois. Tout reste dans ce navigateur.",
    "example_a": "Lire 20 minutes",
    "example_b": "Marcher 30 minutes",
    "prev_month": "Mois précédent",
    "next_month": "Mois suivant",
    "habit_col": "Habitude",
    "cell_label": "{{habit}}, {{date}}",
    "grid_hint": "Touchez une case pour la cocher ou la décocher. Les jours à venir sont grisés.",
    "month_rate_all": "Taux du mois, toutes habitudes",
    "month_rate_detail": "{{done}} cases cochées sur {{days}} jours-habitudes écoulés",
    "name_label": "Nom de l'habitude",
    "delete": "Supprimer {{name}}",
    "confirm_delete": "Supprimer « {{name}} » et tous ses jours cochés ?",
    "streak_current": "Série en cours (jours)",
    "streak_best": "Record (jours)",
    "month_rate": "Taux du mois",
    "record_now": "Série record en cours",
    "add_label": "Nouvelle habitude",
    "add_placeholder": "Ex. : méditer 10 minutes",
    "add": "Ajouter",
    "max_reached": "{{n}} habitudes au maximum.",
    "backup_title": "Sauvegarde",
    "export": "Exporter (JSON)",
    "import": "Importer (JSON)",
    "import_ok": "Import réussi : {{n}} habitudes au total.",
    "import_error": "Fichier non reconnu : il faut un export JSON de cet outil.",
    "storage_note": "Les données restent dans ce navigateur (stockage local). Vider les données du site les efface : exportez-les de temps en temps.",
    "method_note": "Série : jours cochés d'affilée jusqu'à aujourd'hui, ou hier si aujourd'hui est vide. Taux : jours cochés ÷ jours écoulés du mois. Les dates suivent le calendrier local de votre appareil."
  },
  "human-design-chart-calculator": {
    "heading": "Carte Human Design",
    "subtitle": "Positions astronomiques à la naissance et 88° d'arc solaire plus tôt, converties en portes et lignes",
    "date_label": "Date de naissance",
    "time_label": "Heure de naissance",
    "tz_label": "Fuseau horaire du lieu de naissance",
    "tz_hint": "Seul l'instant compte : choisissez la zone de la ville (heure d'été comprise). Les fuseaux d'avant 1970 dépendent des données du navigateur.",
    "node_label": "Nœud lunaire",
    "node_true": "Nœud vrai",
    "node_mean": "Nœud moyen",
    "node_hint": "Convention non fixée par une source vérifiée : les logiciels utilisent l'un ou l'autre (jusqu'à 2° d'écart).",
    "independence": "Outil indépendant, sans lien avec Jovian Archive ni avec ses marques. Le schéma est propre à l'outil.",
    "notice_range": "Choisissez une date entre 1900 et 2100.",
    "notice_invalid": "Date ou heure incomplète.",
    "loading": "Chargement des éphémérides…",
    "notice_gap": "Cette heure n'existe pas dans ce fuseau (passage à l'heure d'été) : le calcul garde le décalage d'avant le changement.",
    "notice_ambiguous": "Cette heure existe deux fois dans ce fuseau (retour à l'heure d'hiver) : le calcul retient la première.",
    "type_label": "Type",
    "authority_label": "Autorité",
    "profile_label": "Profil",
    "birth_utc": "Naissance : {{value}} UTC",
    "design_utc": "Instant design (Soleil 88° plus tôt) : {{value}} UTC",
    "wheel_title": "Roue des 64 portes et centres définis",
    "legend_personality": "Personnalité (naissance)",
    "legend_design": "Design (88° plus tôt)",
    "legend_defined": "Centre défini",
    "wheel_caption": "La porte 41 est en haut ; les longitudes croissent dans le sens des aiguilles d'une montre. Anneau extérieur : portes activées à la naissance ; anneau intérieur : portes activées à l'instant design.",
    "channels_title": "Canaux définis",
    "channels_none": "Aucun canal complet : aucun centre défini.",
    "centers_defined": "Centres définis : {{value}}",
    "table_title": "Activations (porte.ligne)",
    "col_body": "Astre",
    "col_personality": "Personnalité",
    "col_design": "Design",
    "table_hint": "Longitudes géocentriques tropicales de la date ; Terre = Soleil + 180°, nœud sud = nœud nord + 180°.",
    "disclaimer": "Calcul astronomique d'un système symbolique sans validation scientifique : à lire comme un outil de réflexion, pas comme une prédiction ni un conseil.",
    "body": {
      "sun": "Soleil",
      "earth": "Terre",
      "north_node": "Nœud nord",
      "south_node": "Nœud sud",
      "moon": "Lune",
      "mercury": "Mercure",
      "venus": "Vénus",
      "mars": "Mars",
      "jupiter": "Jupiter",
      "saturn": "Saturne",
      "uranus": "Uranus",
      "neptune": "Neptune",
      "pluto": "Pluton"
    },
    "center": {
      "head": "Tête",
      "ajna": "Ajna",
      "throat": "Gorge",
      "g": "G (Soi)",
      "heart": "Cœur",
      "sacral": "Sacral",
      "solar": "Plexus solaire",
      "spleen": "Rate",
      "root": "Racine"
    },
    "type": {
      "generator": "Générateur",
      "mg": "Générateur manifesteur",
      "manifestor": "Manifesteur",
      "projector": "Projecteur",
      "reflector": "Réflecteur"
    },
    "auth": {
      "emotional": "Émotionnelle (plexus solaire)",
      "sacral": "Sacrale",
      "splenic": "Splénique",
      "ego_manifested": "Ego manifestée",
      "ego_projected": "Ego projetée",
      "self_projected": "Auto-projetée",
      "mental": "Mentale (pas d'autorité intérieure)",
      "lunar": "Lunaire"
    }
  },
  "knitting-gauge-yarn-calculator": {
    "heading": "Échantillon et quantité de laine",
    "subtitle": "Mailles et rangs à monter, conversion d'un modèle et nombre de pelotes, d'après votre échantillon.",
    "unit_label": "Unités",
    "unit_metric": "Centimètres",
    "unit_imperial": "Pouces",
    "unit_in": "po",
    "unit_yd": "yd",
    "base_4in": "4 po",
    "gauge_title": "Votre échantillon et la pièce",
    "st_label": "Mailles pour {{base}}",
    "rows_label": "Rangs pour {{base}}",
    "width_label": "Largeur voulue",
    "height_label": "Hauteur voulue",
    "gauge_hint": "Mesurez l'échantillon après lavage et séchage, au centre, loin des bords.",
    "cast_title": "À monter",
    "cast_label": "Mailles",
    "rows_result": "Rangs",
    "exact": "valeur exacte : {{value}}",
    "cyc_title": "Grosseur de fil (Craft Yarn Council)",
    "cyc_match": "Votre échantillon fait {{st}} mailles pour 4 pouces (10,16 cm) : catégorie {{list}}.",
    "cyc_none": "{{st}} mailles pour 4 pouces : plus fin que la catégorie 0 du tableau.",
    "col_cat": "Catégorie",
    "col_types": "Types de fil",
    "col_st": "Mailles pour 4 po",
    "col_needle": "Aiguilles",
    "needle_cell": "{{mm}} mm (US {{us}})",
    "cyc_0": "Dentelle",
    "cyc_1": "Super fin",
    "cyc_2": "Fin",
    "cyc_3": "Léger",
    "cyc_4": "Moyen",
    "cyc_5": "Épais",
    "cyc_6": "Très épais",
    "cyc_7": "Jumbo",
    "cyc_0_types": "Fingering, fil à crocheter n° 10",
    "cyc_1_types": "Chaussettes, fingering, layette",
    "cyc_2_types": "Sport, layette",
    "cyc_3_types": "DK, light worsted",
    "cyc_4_types": "Worsted, afghan, aran",
    "cyc_5_types": "Chunky, loisirs créatifs, tapis",
    "cyc_6_types": "Super bulky, mèche",
    "cyc_7_types": "Jumbo, mèche",
    "cyc_note": "Repères seulement : échantillons et aiguilles les plus courants par catégorie selon le Craft Yarn Council (consulté le 29/10/2026). Les bornes de deux catégories peuvent se recouvrir ; pour la dentelle, suivez l'échantillon du modèle.",
    "conv_title": "Adapter un modèle à votre échantillon",
    "pat_st_label": "Mailles du modèle pour {{base}}",
    "pat_rows_label": "Rangs du modèle pour {{base}}",
    "pat_cast_label": "Mailles indiquées par le modèle",
    "pat_rowcount_label": "Rangs indiqués par le modèle",
    "conv_cast": "Mailles pour vous",
    "conv_rows": "Rangs pour vous",
    "conv_width": "Le modèle prévoit {{planned}} de large. Avec {{n}} mailles à votre échantillon, vous obtiendriez {{mine}}.",
    "yarn_title": "Quantité de laine d'après l'échantillon pesé",
    "sw_w_label": "Largeur de l'échantillon",
    "sw_h_label": "Hauteur de l'échantillon",
    "sw_g_label": "Poids de l'échantillon",
    "pieces_label": "Nombre de pièces de cette taille",
    "ball_g_label": "Poids d'une pelote",
    "ball_len_label": "Longueur d'une pelote",
    "margin_label": "Marge de sécurité",
    "margin_note": "Valeur indicative, non vérifiée : aucune source officielle ne fixe cette marge. Ajustez-la à vos coutures et à vos finitions.",
    "yarn_grams": "Laine nécessaire",
    "yarn_balls": "Pelotes",
    "balls_exact": "soit {{value}} pelotes",
    "yarn_length": "Longueur totale",
    "yarn_hint": "Surface tricotée : {{area}} (largeur × hauteur × nombre de pièces). Pesez l'échantillon sur une balance au gramme près.",
    "disclaimer": "Estimations : les mesures réelles dépendent de votre tension, des augmentations et diminutions et du lavage. Tricotez toujours un échantillon avant de commencer."
  },
  "minecraft-circle-sphere-generator": {
    "heading": "Générateur de cercles et de sphères pour Minecraft",
    "subtitle": "Plan bloc par bloc, nombre de blocs par ligne et par couche",
    "tab_2d": "Cercle / ellipse",
    "tab_3d": "Sphère / dôme",
    "lock_label": "Cercle (largeur = hauteur)",
    "diameter_label": "Diamètre (blocs)",
    "width_label": "Largeur (blocs)",
    "height_label": "Hauteur (blocs)",
    "mode_label": "Remplissage",
    "mode_outline": "Contour",
    "mode_filled": "Plein",
    "thickness_label": "Épaisseur du contour (blocs)",
    "dome_label": "Dôme (moitié haute)",
    "hollow_label": "Creuse (coque d'un bloc)",
    "layer_label": "Couche à poser",
    "layer_value": "{{n}} sur {{total}}",
    "layer_down": "Couche précédente",
    "layer_up": "Couche suivante",
    "convention": "Règle de bord : un bloc est posé si son centre est dans la forme. Contour : bloc de la forme qui touche l'extérieur à l'épaisseur choisie ou moins (haut, bas, gauche, droite). Coque : bloc dont une des six faces donne sur l'extérieur.",
    "notice_range": "Valeur ramenée entre {{min}} et {{max}}.",
    "total_2d": "Blocs nécessaires",
    "total_3d": "Blocs nécessaires (toutes les couches)",
    "size_label": "Largeur × hauteur",
    "rows_label": "Lignes à poser",
    "layer_blocks": "Blocs de cette couche",
    "height_blocks": "Hauteur en couches",
    "compare_3d": "Sphère entière : {{filled}} blocs pleine, {{hollow}} creuse.",
    "grid_title": "Plan bloc par bloc",
    "layer_title": "Couche {{n}} sur {{total}}, vue de dessus",
    "export_png": "Exporter en PNG",
    "grid_caption": "À gauche, le numéro de ligne ; à droite, le nombre de blocs de la ligne. Les pointillés rouges marquent les axes du centre.",
    "rows_detail": "Détail ligne par ligne (colonnes à remplir)",
    "row_line": "Ligne {{n}} : {{blocks}} blocs, colonnes {{runs}}",
    "three_title": "Aperçu 3D (coque)",
    "three_cap": "Aperçu 3D limité à {{max}} blocs de diamètre ; la vue couche par couche reste complète.",
    "three_loading": "Chargement de la 3D…",
    "three_aria": "Sphère de {{d}} blocs en 3D, couche {{n}} en vert, orientable à la souris ou au doigt",
    "three_fail": "La 3D n'est pas disponible sur cet appareil (WebGL 2) : la vue couche par couche suffit pour construire.",
    "three_wait": "L'aperçu 3D se charge quand ce bloc apparaît à l'écran.",
    "three_button": "Voir en 3D",
    "three_caption": "La couche choisie est en vert, celles du dessous en gris ; les couches du dessus sont estompées. Faites tourner la vue à la souris ou au doigt ; elle ne tourne pas seule."
  },
  "morse-code-translator": {
    "heading": "Traducteur de code morse",
    "subtitle": "Texte ⇄ morse selon l'UIT, en son, en lumière ou en vibration, avec un mode d'entraînement.",
    "mode_encode": "Texte → morse",
    "mode_decode": "Morse → texte",
    "input_text": "Texte à traduire",
    "input_code": "Code morse à décoder",
    "code_hint": "Points (.) et traits (-), une espace entre les lettres, / ou deux espaces entre les mots.",
    "output": "Résultat",
    "copy": "Copier le résultat",
    "unknown_chars": "Sans équivalent en morse, ignorés : {{chars}}",
    "unknown_codes": "Codes non reconnus (affichés #) : {{n}}",
    "play": "Écouter",
    "stop": "Arrêter",
    "out_sound": "Son",
    "out_light": "Lumière",
    "out_vibrate": "Vibration",
    "light_cap": "Mode lumière : caractères à {{max}} mots/min au plus, soit 3 éclats par seconde au maximum (WCAG 2.3.1).",
    "wpm_label": "Vitesse des caractères (mots/min)",
    "eff_label": "Vitesse effective, Farnsworth (mots/min)",
    "speed_hint": "Joué à {{c}} mots/min pour les caractères et {{s}} mots/min au total ; un point dure {{u}} ms.",
    "freq_label": "Fréquence : {{v}} Hz",
    "volume_label": "Volume : {{v}} %",
    "train_title": "Entraînement à l'écoute",
    "train_intro": "Écoutez une lettre au hasard, puis tapez-la. La vitesse des caractères choisie s'applique.",
    "pool_letters": "Lettres",
    "pool_all": "Lettres et chiffres",
    "train_next": "Nouvelle lettre",
    "train_replay": "Réécouter",
    "train_answer": "Votre réponse",
    "train_ok": "Juste : {{char}} = {{code}}",
    "train_ko": "Non : c'était {{char}} ({{code}})",
    "train_score": "Score : {{ok}} sur {{total}}",
    "table_title": "Alphabet morse (UIT-R M.1677-1)",
    "play_char": "Écouter {{char}} : {{code}}",
    "prosigns_title": "Signaux de service",
    "ps_understood": "Compris",
    "ps_error": "Erreur",
    "ps_invitation": "Invitation à transmettre",
    "ps_wait": "Attente",
    "ps_end": "Fin de travail",
    "ps_start": "Signal de début",
    "method_note": "Trait = 3 points ; blancs de 1 point dans une lettre, 3 entre les lettres, 7 entre les mots (UIT-R M.1677-1). Un point dure 1,2 ÷ vitesse en secondes (mot PARIS de 50 unités, norme ARRL)."
  },
  "pickleball-score-keeper": {
    "heading": "Compteur de points de pickleball",
    "subtitle": "Annonce du score, serveur et zone de service selon le règlement USA Pickleball, en double ou en simple.",
    "team_a": "Équipe A",
    "team_b": "Équipe B",
    "winner": "{{team}} gagne {{a}} à {{b}}",
    "call_label": "Annonce du score",
    "serving_right": "Au service : {{name}}, zone de service droite",
    "serving_left": "Au service : {{name}}, zone de service gauche",
    "receiver": "Reçoit : {{name}}",
    "end_change": "Une équipe a atteint {{n}} points : changez de côté si la partie est unique ou décisive (règle 21.B). Le serveur et les positions ne changent pas.",
    "court_title": "Positions des joueurs, serveur et receveur",
    "court_hint": "Terrain vu de dessus ; la droite de chaque joueur s'entend face au filet. La balle jaune marque le serveur, le pointillé va vers le receveur.",
    "won_by": "Échange gagné : {{team}}",
    "undo": "Annuler",
    "new_game": "Nouvelle partie",
    "announce": "Annonce vocale",
    "keep_awake": "Écran toujours allumé",
    "history_title": "Historique",
    "history_empty": "Aucun échange joué.",
    "log_entry": "{{n}}. Échange gagné par {{team}}",
    "settings_title": "Réglages de la partie",
    "format_label": "Format",
    "doubles": "Double",
    "singles": "Simple",
    "scoring_label": "Comptage",
    "sideout": "Classique (au service)",
    "rally": "À chaque échange",
    "rally_note": "Règle provisoire 14.A : un point par échange, un seul serveur par équipe, annonce en deux nombres.",
    "target_label": "Points pour gagner",
    "win_by_label": "Écart minimal",
    "first_label": "Premier au service",
    "swap_label": "Rappeler le changement de côté (partie unique ou décisive)",
    "settings_pending": "Ces réglages s'appliqueront à la prochaine partie.",
    "names_title": "Noms des joueurs",
    "team_a_name": "Nom de l'équipe A",
    "team_b_name": "Nom de l'équipe B",
    "a1_label": "A, à droite au départ",
    "a2_label": "A, à gauche au départ",
    "b1_label": "B, à droite au départ",
    "b2_label": "B, à gauche au départ",
    "player_a": "Joueur A",
    "player_b": "Joueur B",
    "rules_title": "Règles appliquées",
    "rule_scoring": "Seule l'équipe au service marque ; le serveur change de zone de service après chaque point gagné.",
    "rule_call": "Annonce en double : score du serveur, score des receveurs, numéro du serveur ; début à 0-0-2.",
    "rule_position": "Le premier serveur de chaque équipe dans la partie est à droite quand le score de son équipe est pair.",
    "rule_game": "Partie en 11, 15 ou 21 points avec 2 points d'écart ; changement de côté à 6, 8 ou 11 points en partie unique ou décisive.",
    "rules_source": "Source : USA Pickleball, 2026 Official Rulebook, règles 4.A, 5.B, 6.B, 14.A, 15.C et 21.B."
  },
  "rpg-5e-character-sheet": {
    "heading": "Fiche de personnage 5e (SRD)",
    "subtitle": "Caractéristiques, maîtrise, sauvegardes, compétences, PV et CA d'après le SRD 5.2.1",
    "name_label": "Nom du personnage",
    "name_placeholder": "Sans nom",
    "class_label": "Classe",
    "level_label": "Niveau",
    "method_label": "Valeurs de caractéristiques",
    "method_standard": "Tableau standard",
    "method_points": "Achat de points",
    "method_manual": "Saisie libre",
    "std_hint": "Chaque valeur sert une fois : en choisir une déjà prise échange les deux. Changer de classe applique la répartition conseillée par le SRD.",
    "points_remaining": "Points restants : {{n}} sur {{total}}",
    "points_cost": "coût {{n}}",
    "points_hint": "Valeurs de 8 à 15 ; coûts 8 = 0, 9 = 1, 10 = 2, 11 = 3, 12 = 4, 13 = 5, 14 = 7, 15 = 9.",
    "manual_hint": "Pour des valeurs tirées aux dés (4d6, on garde les 3 meilleurs) ou fixées par le meneur : 3 à 20.",
    "increase": "Augmenter {{ability}}",
    "decrease": "Diminuer {{ability}}",
    "bonus_title": "Hausses de l'historique",
    "bonus_hint": "L'historique cite trois caractéristiques : +2 à l'une et +1 à une autre, ou +1 aux trois ; aucune ne dépasse 20.",
    "bonus_invalid": "Répartition hors règle : choisissez +2 et +1, ou trois fois +1.",
    "skills_title": "Compétences maîtrisées",
    "skills_hint": "La classe en fait choisir {{picks}} dans sa liste ({{n}} cochées) ; l'historique en ajoute d'autres.",
    "skills_hint_any": "La classe en fait choisir {{picks}} au choix ({{n}} cochées) ; l'historique en ajoute d'autres.",
    "skills_bold": "En gras : compétences de la liste de la classe.",
    "hp_label": "Points de vie",
    "hp_hint": "d{{die}} au niveau 1, puis {{fixed}} + Con par niveau",
    "ac_label": "Classe d'armure (sans armure)",
    "ac_hint_base": "10 + Dex",
    "ac_hint_barbarian": "Défense sans armure : 10 + Dex + Con",
    "ac_hint_monk": "Défense sans armure : 10 + Dex + Sag",
    "pb_label": "Bonus de maîtrise",
    "init_label": "Initiative",
    "passive_label": "Perception passive",
    "spell_dc_label": "DD des sorts",
    "spell_attack_label": "Attaque de sort",
    "spell_attack_hint": "Attaque de sort {{value}}",
    "abilities_title": "Caractéristiques et sauvegardes",
    "col_ability": "Caractéristique",
    "col_score": "Valeur",
    "col_mod": "Mod.",
    "col_save": "Sauvegarde",
    "saves_hint": "En vert : sauvegardes maîtrisées par la classe (modificateur + maîtrise).",
    "skills_table_title": "Compétences",
    "print": "Imprimer",
    "export_pdf": "Exporter en PDF",
    "reset": "Recommencer",
    "saved_note": "La fiche est enregistrée dans ce navigateur seulement, sur cet appareil.",
    "srd_note": "Fiche compatible avec la cinquième édition, fondée sur les seules règles du SRD 5.2.1 (CC BY 4.0). Outil indépendant.",
    "attribution": "This work includes material from the System Reference Document 5.2.1 (“SRD 5.2.1”) by Wizards of the Coast LLC, available at https://www.dndbeyond.com/srd. The SRD 5.2.1 is licensed under the Creative Commons Attribution 4.0 International License, available at https://creativecommons.org/licenses/by/4.0/legalcode.",
    "pdf_unnamed": "Personnage sans nom",
    "pdf_class_level": "{{cls}}, niveau {{level}}",
    "pdf_legend": "* : sauvegarde ou compétence maîtrisée. Armures, armes, sorts, dons et espèce sont à compléter à la main.",
    "ability": {
      "str": "Force",
      "dex": "Dextérité",
      "con": "Constitution",
      "int": "Intelligence",
      "wis": "Sagesse",
      "cha": "Charisme"
    },
    "abbr": {
      "str": "For",
      "dex": "Dex",
      "con": "Con",
      "int": "Int",
      "wis": "Sag",
      "cha": "Cha"
    },
    "skill": {
      "acrobatics": "Acrobaties",
      "animal": "Dressage",
      "arcana": "Arcanes",
      "athletics": "Athlétisme",
      "deception": "Tromperie",
      "history": "Histoire",
      "insight": "Perspicacité",
      "intimidation": "Intimidation",
      "investigation": "Investigation",
      "medicine": "Médecine",
      "nature": "Nature",
      "perception": "Perception",
      "performance": "Représentation",
      "persuasion": "Persuasion",
      "religion": "Religion",
      "sleight": "Escamotage",
      "stealth": "Discrétion",
      "survival": "Survie"
    },
    "class": {
      "barbarian": "Barbare",
      "bard": "Barde",
      "cleric": "Clerc",
      "druid": "Druide",
      "fighter": "Guerrier",
      "monk": "Moine",
      "paladin": "Paladin",
      "ranger": "Rôdeur",
      "rogue": "Roublard",
      "sorcerer": "Ensorceleur",
      "warlock": "Occultiste",
      "wizard": "Magicien"
    }
  },
  "secret-santa-generator": {
    "heading": "Tirage au sort Secret Santa",
    "subtitle": "Participants, exclusions, puis un lien par personne qui ne révèle que son destinataire.",
    "sample_1": "Alice",
    "sample_2": "Bruno",
    "sample_3": "Chloé",
    "sample_4": "David",
    "sample_5": "Emma",
    "sample_6": "Farid",
    "reveal_invalid": "Ce lien Secret Santa est incomplet ou abîmé. Demandez-le de nouveau à l'organisateur.",
    "reveal_hello": "Bonjour {{name}} !",
    "reveal_button": "Découvrir à qui j'offre",
    "reveal_you_give": "Vous offrez un cadeau à",
    "reveal_budget": "Budget : {{budget}}",
    "reveal_date": "Échange des cadeaux : {{date}}",
    "reveal_keep": "Gardez le secret : ce lien est personnel, ne le transférez pas.",
    "people_title": "Participants ({{n}})",
    "person_label": "Participant {{n}}",
    "remove_person": "Retirer {{name}}",
    "add_person": "Ajouter un participant",
    "excl_title": "Exclusions",
    "excl_hint": "Un couple s'exclut dans les deux sens ; le tirage de l'an dernier dans un seul (qui a offert à qui).",
    "excl_giver": "Ne doit pas offrir…",
    "excl_receiver": "… à",
    "excl_both_label": "Dans les deux sens (couple)",
    "excl_add": "Ajouter l'exclusion",
    "excl_both": "{{a}} et {{b}} ne se tirent pas",
    "excl_one": "{{a}} n'offre pas à {{b}}",
    "excl_remove": "Supprimer cette exclusion",
    "budget_label": "Budget (facultatif)",
    "budget_placeholder": "20 €",
    "date_label": "Date de l'échange (facultatif)",
    "draw": "Tirer au sort",
    "redraw": "Refaire le tirage",
    "problem_few": "Il faut au moins 3 participants.",
    "problem_empty": "Chaque participant doit avoir un nom.",
    "problem_dupes": "Deux participants portent le même nom : ajoutez une initiale pour les distinguer.",
    "problem_impossible": "Aucun tirage ne respecte ces exclusions : retirez-en une ou ajoutez un participant.",
    "links_title": "Un lien par participant",
    "links_hint": "Envoyez à chacun son propre lien. Après un nouveau tirage, les anciens liens affichent toujours l'ancien résultat : renvoyez les nouveaux.",
    "copy": "Copier le lien",
    "copied": "Copié",
    "copy_aria": "Copier le lien de {{name}}",
    "share": "Partager",
    "share_aria": "Partager le lien de {{name}}",
    "share_title": "Secret Santa",
    "share_text": "{{name}}, voici votre lien Secret Santa : ouvrez-le pour découvrir à qui vous offrez un cadeau.",
    "privacy_note": "Le tirage est calculé dans votre navigateur. Chaque lien contient le nom de son destinataire dans la partie après #, qui ne fait pas partie de la requête qui charge la page. Ce nom est encodé, pas chiffré : sans serveur, l'organisateur peut ouvrir n'importe quel lien et le lire. L'outil n'affiche pas les paires ; n'ouvrez pas les liens des autres.",
    "link_aria": "Lien de {{name}}"
  },
  "smoker-cooking-time-calculator": {
    "heading": "Planning de cuisson au fumoir",
    "subtitle": "Durée estimée, heure de départ et température interne sûre (USDA FSIS)",
    "unit_label": "Unités",
    "unit_metric": "kg et °C",
    "unit_imperial": "lb et °F",
    "meat_label": "Viande",
    "m_brisket": "Brisket (poitrine de bœuf)",
    "m_shoulder": "Épaule de porc (pulled pork)",
    "m_ribs": "Travers de porc",
    "m_chicken": "Poulet entier",
    "m_turkey": "Dinde entière",
    "weight_label": "Poids",
    "smoker_label": "Température du fumoir",
    "rate_label_kg": "Durée par kg",
    "rate_label_lb": "Durée par livre",
    "margin_label": "Marge (plateau)",
    "rest_label": "Repos avant service",
    "serve_label": "Heure de service",
    "rate_hint": "Durée au kilo, marge et repos : valeurs indicatives, non vérifiées sur une source officielle. Réglez-les selon votre fumoir et sa température.",
    "rate_turkey_hint": "Dinde : 25 min par livre, milieu des 20 à 30 min/lb du FSIS (dindes de 8 à 12 lb). Marge et repos indicatifs, non vérifiés.",
    "result_title": "Planning estimé",
    "start_label": "Mise au fumoir",
    "day_0": "le jour du service",
    "day_1": "la veille du service",
    "day_n": "{{n}} jours avant le service",
    "duration_hm": "{{h}} h {{m}}",
    "cook_label": "Cuisson estimée",
    "estimate": "Estimation : la sonde décide",
    "total_label": "Avec marge et repos",
    "total_sub": "Service à {{time}}",
    "timeline_title": "Frise : cuisson {{cook}}, marge {{margin}}, repos {{rest}}",
    "seg_cook": "Cuisson",
    "seg_margin": "Marge",
    "seg_rest": "Repos",
    "turkey_fsis": "Repère FSIS pour ce poids : {{min}} à {{max}} (20 à 30 min par livre).",
    "turkey_out": "Le FSIS ne donne de durée au fumoir que pour une dinde de 8 à 12 lb (3,6 à 5,4 kg) : l'estimation est ici moins sûre.",
    "smoker_out": "Le FSIS conseille un air de fumoir entre {{min}} et {{max}} pendant toute la cuisson.",
    "stall_note": "Plateau (« stall ») : une grosse pièce peut rester des heures à la même température en milieu de cuisson. La marge sert à l'absorber.",
    "safe_title": "Température interne sûre (USDA FSIS)",
    "safe_whole": "Pièce entière de bœuf ou de porc : atteindre ce seuil au cœur, puis laisser reposer au moins 3 minutes.",
    "safe_poultry": "Volaille : ce seuil dans la partie la plus épaisse de la poitrine, de la cuisse et de l'aile.",
    "safe_source": "USDA FSIS, Safe Minimum Internal Temperature Chart. Le °C est arrondi vers le haut pour ne jamais passer sous le seuil.",
    "pull_title": "Température de dégustation",
    "pull_label": "Sortie du fumoir à",
    "pull_note": "Choix de texture (viande qui s'effiloche, jutosité) : valeur indicative, non vérifiée, distincte du seuil de sécurité.",
    "pull_below_safe": "Cette température est sous le seuil sûr de l'USDA : visez au moins la valeur indiquée plus haut.",
    "disclaimer": "Estimation de planning : seule une sonde dans la partie la plus épaisse confirme la cuisson. Réfrigérez les restes dans les 2 heures (FSIS).",
    "rest_below_fsis": "Pièce entière de bœuf ou de porc : le FSIS demande au moins 3 minutes de repos après 63 °C (145 °F)."
  },
  "solar-eclipse-2027-calculator": {
    "heading": "Éclipse totale de Soleil du 2 août 2027",
    "subtitle": "Heures locales des contacts, durée de la totalité et part du Soleil masquée pour un lieu",
    "safety": "Ne regardez jamais le Soleil sans lunettes ou visionneuse conformes à la norme ISO 12312-2, sauf pendant la totalité, quand la Lune le cache entièrement. Les lunettes de soleil ne protègent pas, et un appareil photo, des jumelles ou un télescope sans filtre solaire devant l'objectif brûlent l'œil.",
    "mode_city": "Ville",
    "mode_coords": "Coordonnées",
    "city_label": "Ville (dans la bande et alentour)",
    "lat_label": "Latitude (nord +)",
    "lon_label": "Longitude (est +)",
    "coords_hint": "Degrés décimaux, par exemple 36,53 et -6,29 pour Cadix.",
    "tz_label": "Fuseau horaire du lieu",
    "tz_hint": "Sans connexion, l'outil ne peut pas déduire le fuseau de coordonnées : choisissez-le, sinon les heures restent en UTC.",
    "geo_button": "Utiliser ma position",
    "geo_busy": "Localisation…",
    "geo_error": "Position indisponible : saisissez les coordonnées ou choisissez une ville.",
    "geo_hint": "La position reste sur votre appareil ; le fuseau proposé est celui de l'appareil, modifiable.",
    "loading": "Calcul en cours…",
    "your_place": "Votre lieu",
    "result_for": "Éclipse vue depuis : {{place}}",
    "kind_total": "Éclipse totale",
    "kind_partial": "Éclipse partielle",
    "kind_annular": "Éclipse annulaire",
    "kind_none": "Pas d'éclipse visible",
    "none_hint": "La pénombre de la Lune n'atteint pas ce lieu le 2 août 2027 : le Soleil n'y est pas masqué.",
    "obscuration_label": "Soleil masqué au maximum",
    "duration_label": "Durée de la totalité",
    "duration_value": "{{min}} min {{sec}} s",
    "max_label": "Maximum (heure locale)",
    "alt_label": "Hauteur du Soleil au maximum",
    "notice_below": "Le Soleil est sous l'horizon pendant toute l'éclipse : rien n'est visible depuis ce lieu.",
    "notice_horizon": "Une partie de l'éclipse se produit avec le Soleil sous l'horizon (hauteur négative) : elle n'est pas visible.",
    "notice_partial": "Ce lieu est hors de la bande de totalité : à aucun moment on ne peut retirer ses lunettes d'éclipse.",
    "times_title": "Déroulé de l'éclipse",
    "times_zone": "Heures du fuseau {{zone}}",
    "ev_c1": "Début (1er contact)",
    "ev_c2": "Début de la totalité (2e contact)",
    "ev_max": "Maximum",
    "ev_c3": "Fin de la totalité (3e contact)",
    "ev_c4": "Fin (4e contact)",
    "sun_alt": "Soleil à {{value}}°",
    "precision": "Heures arrondies à la minute (≈) : écart de 3 s au plus avec le calculateur de la NASA sur huit villes, durée de la totalité à 5 s près.",
    "disk_title": "Le Soleil au maximum",
    "disk_aria": "Disque solaire masqué à {{value}} % par la Lune",
    "north": "N",
    "disk_caption": "Vue du ciel, nord en haut et est à gauche ; Lune en sombre, à l'échelle des diamètres apparents.",
    "globe_title": "Globe : bande de totalité et lieu choisi",
    "globe_loading": "Chargement du globe…",
    "globe_wait": "Le globe 3D se charge quand ce bloc apparaît à l'écran.",
    "globe_button": "Voir en 3D",
    "globe_fail": "La 3D n'est pas disponible sur cet appareil (WebGL 2) : les résultats ci-dessus restent complets.",
    "globe_max": "Maximum",
    "globe_aria": "Globe terrestre orientable montrant la bande de totalité du 2 août 2027, le point du maximum en Égypte et le lieu choisi",
    "globe_caption": "Bande orange : totalité, de l'Atlantique (08:26 UTC) à l'océan Indien (11:46 UTC), large d'environ 258 km. Point rouge : maximum à 10:06:38 UTC, 25,5° N et 33,2° E, près de Louxor. Point vert : lieu choisi. Faites tourner le globe à la souris ou au doigt.",
    "credit_nasa": "Bande de totalité : Eclipse Predictions by Fred Espenak, NASA's GSFC. Côtes : Natural Earth.",
    "credits": "Calcul : astronomy-engine. Villes : GeoNames, CC BY 4.0. Les heures légales suivent les données de fuseau du navigateur ; la météo n'est pas prise en compte.",
    "city": {
      "cadiz": "Cadix",
      "jerez": "Jerez de la Frontera",
      "algeciras": "Algésiras",
      "tarifa": "Tarifa",
      "malaga": "Malaga",
      "marbella": "Marbella",
      "sevilla": "Séville",
      "granada": "Grenade",
      "almeria": "Almería",
      "madrid": "Madrid",
      "barcelona": "Barcelone",
      "gibraltar": "Gibraltar",
      "ceuta": "Ceuta",
      "melilla": "Melilla",
      "lisbon": "Lisbonne",
      "faro": "Faro",
      "paris": "Paris",
      "marseille": "Marseille",
      "rome": "Rome",
      "milan": "Milan",
      "palermo": "Palerme",
      "valletta": "La Valette",
      "london": "Londres",
      "berlin": "Berlin",
      "tangier": "Tanger",
      "tetouan": "Tétouan",
      "alhoceima": "Al Hoceïma",
      "nador": "Nador",
      "fes": "Fès",
      "rabat": "Rabat",
      "casablanca": "Casablanca",
      "oran": "Oran",
      "tlemcen": "Tlemcen",
      "algiers": "Alger",
      "setif": "Sétif",
      "tunis": "Tunis",
      "sfax": "Sfax",
      "gabes": "Gabès",
      "djerba": "Houmt Souk (Djerba)",
      "tripoli": "Tripoli",
      "benghazi": "Benghazi",
      "tobruk": "Tobrouk",
      "luxor": "Louxor",
      "aswan": "Assouan",
      "asyut": "Assiout",
      "sohag": "Sohag",
      "hurghada": "Hurghada",
      "cairo": "Le Caire",
      "alexandria": "Alexandrie",
      "jeddah": "Djeddah",
      "mecca": "La Mecque",
      "medina": "Médine",
      "riyadh": "Riyad",
      "abha": "Abha",
      "sanaa": "Sanaa",
      "aden": "Aden",
      "bosaso": "Bosaso",
      "athens": "Athènes",
      "istanbul": "Istanbul",
      "dubai": "Dubaï",
      "amman": "Amman"
    }
  },
  "sourdough-hydration-calculator": {
    "heading": "Hydratation et pourcentages du boulanger",
    "subtitle": "Farine et eau du levain comprises, sur la farine totale",
    "mode_recipe": "% d'une recette",
    "mode_percent": "Recette à partir des %",
    "flour_label": "Farine à pétrir",
    "water_label": "Eau ajoutée",
    "salt_label": "Sel",
    "levain_label": "Levain",
    "dough_label": "Poids de pâte voulu",
    "hydration_label": "Hydratation",
    "salt_pct_label": "Sel (% de la farine)",
    "levain_pct_label": "Levain (% de la farine)",
    "examples_title": "Exemples de formules",
    "ex_white": "Pain blanc",
    "ex_french": "Pain type baguette",
    "ex_ciabatta": "Ciabatta",
    "examples_source": "Hydratation et sel de formules publiées par King Arthur Baking : des exemples, pas des normes.",
    "levain_hyd_label": "Hydratation du levain",
    "levain_hyd_hint": "Eau ÷ farine du levain : 100 % pour un levain liquide à parts égales, 50 % pour un levain ferme.",
    "result_percent_title": "Pourcentages du boulanger",
    "hydration": "Hydratation réelle",
    "total_flour": "Farine totale",
    "total_water": "Eau totale",
    "dough_weight": "Poids de pâte",
    "salt_pct": "Sel",
    "levain_pct": "Levain",
    "prefermented": "Farine pré-fermentée",
    "no_flour": "Saisissez un poids de farine ou de levain pour obtenir les pourcentages.",
    "result_recipe_title": "Quantités à peser",
    "flour_dough": "Farine à pétrir",
    "water_dough": "Eau à ajouter",
    "recipe_check": "Avec le levain : {{flour}} de farine totale et {{water}} d'eau totale.",
    "water_negative": "Le levain apporte déjà plus d'eau que l'hydratation visée : baissez le levain ou son hydratation.",
    "flour_negative": "Le levain dépasse la farine totale : baissez son pourcentage.",
    "feed_title": "Rafraîchi du levain",
    "feed_total_label": "Levain à obtenir",
    "starter_hyd_label": "Hydratation du levain chef",
    "feed_ratio_label": "Proportions courantes",
    "feed_a": "Parts de levain",
    "feed_b": "Parts de farine",
    "feed_c": "Parts d'eau",
    "feed_starter": "Levain chef",
    "feed_flour": "Farine",
    "feed_water": "Eau",
    "feed_hyd": "Hydratation obtenue",
    "feed_hint": "Prévoyez quelques grammes de plus que la recette pour garder un levain chef.",
    "disclaimer": "Calcul sur les poids saisis : l'absorption de la farine et la température changent la tenue de la pâte à hydratation égale."
  },
  "tier-list-maker": {
    "heading": "Créateur de tier list",
    "subtitle": "Glissez chaque élément dans sa rangée, puis exportez le classement en image.",
    "sample_1": "Pizza",
    "sample_2": "Sushi",
    "sample_3": "Tacos",
    "sample_4": "Croissant",
    "sample_5": "Lasagnes",
    "sample_6": "Burger",
    "sample_7": "Ramen",
    "sample_8": "Paella",
    "sr_role": "élément déplaçable",
    "sr_instructions": "Pour saisir un élément, appuyez sur Espace. Déplacez-le avec les flèches, puis appuyez sur Espace pour le déposer ou sur Échap pour annuler. Entrée ouvre le menu de déplacement, Suppr retire l'élément.",
    "sr_start": "{{item}} saisi.",
    "sr_over": "{{item}} au-dessus de la rangée {{row}}.",
    "sr_outside": "{{item}} n'est au-dessus d'aucune rangée.",
    "sr_drop": "{{item}} déposé dans la rangée {{row}}.",
    "sr_cancel": "Déplacement annulé : {{item}} reste à sa place.",
    "pool_title": "Éléments à classer",
    "pool_empty": "Tout est classé. Ajoutez des éléments ci-dessous.",
    "export_png": "Exporter en PNG",
    "exporting": "Export en cours…",
    "export_error": "L'export a échoué. Réessayez, ou faites une capture d'écran du tableau.",
    "reset": "Recommencer",
    "board_label": "Tableau de la tier list",
    "row_zone": "Rangée {{row}}",
    "selected_title": "Élément sélectionné : {{item}}",
    "move_to": "Déplacer vers",
    "remove_item": "Retirer",
    "deselect": "Fermer la sélection",
    "hint_touch": "Au doigt : appui long pour déplacer, ou touchez un élément puis choisissez sa rangée.",
    "hint_keyboard": "Clavier : Espace pour saisir, flèches pour déplacer, Espace pour déposer, Échap pour annuler ; Entrée ouvre le menu, Suppr retire.",
    "add_items_label": "Ajouter des éléments (un par ligne)",
    "add_items_placeholder": "Un élément par ligne",
    "add_button": "Ajouter",
    "add_images": "Ajouter des images",
    "images_note": "Les images restent sur votre appareil et ne sont pas enregistrées : après un rechargement, ajoutez-les de nouveau. Les textes, les rangées et l'ordre sont gardés dans ce navigateur.",
    "rows_title": "Rangées",
    "row_color": "Couleur de la rangée {{row}}",
    "row_name": "Nom de la rangée {{row}}",
    "remove_row": "Supprimer la rangée {{row}}",
    "add_row": "Ajouter une rangée"
  },
  "tone-generator": {
    "heading": "Générateur de fréquence",
    "subtitle": "Son de 20 Hz à 20 kHz en sinus, carré, dent de scie ou triangle, à gauche ou à droite, avec balayage.",
    "freq_label": "Fréquence",
    "freq_slider": "Fréquence (échelle logarithmique)",
    "octave_down": "−1 octave",
    "octave_up": "+1 octave",
    "range_note": "Fréquence limitée à 20 Hz – 20 000 Hz : {{value}} Hz utilisés.",
    "presets_label": "Fréquences courantes",
    "start": "Démarrer",
    "stop": "Arrêter",
    "sweep_running": "Balayage en cours",
    "safety_title": "Protéger votre audition",
    "safety_text": "Commencez à volume bas puis montez par petits pas. L'OMS indique que 80 dB restent sûrs jusqu'à 40 heures par semaine, mais 90 dB seulement 4 heures, et conseille de garder l'appareil sous 60 % de son volume maximal.",
    "high_warning": "Dans l'extrême aigu, un son peut paraître faible ou inaudible alors qu'il est émis fort : n'augmentez pas le volume pour l'entendre.",
    "wave_label": "Forme d'onde",
    "wave": {
      "sine": "Sinus",
      "square": "Carré",
      "sawtooth": "Dent de scie",
      "triangle": "Triangle"
    },
    "volume_label": "Volume",
    "volume_hint": "Départ à 25 % et plafond fixé par l'outil ; les ondes carrée et en dent de scie sont atténuées.",
    "pan_label": "Panoramique",
    "pan_left": "Gauche",
    "pan_center": "Centre",
    "pan_right": "Droite",
    "pan_value_left": "Gauche {{pct}}",
    "pan_value_right": "Droite {{pct}}",
    "sweep_title": "Balayage de fréquence",
    "sweep_from": "De",
    "sweep_to": "À",
    "sweep_duration": "Durée",
    "sweep_mode": "Progression",
    "sweep_log": "Logarithmique (même durée par octave)",
    "sweep_linear": "Linéaire",
    "sweep_start": "Lancer le balayage",
    "disclaimer": "Ce n'est pas un test d'audition : casque et haut-parleurs ne sont pas calibrés, tout résultat reste indicatif et ne remplace pas l'avis d'un audioprothésiste ou d'un médecin ORL.",
    "ios_note": "Sur iPhone ou iPad, si vous n'entendez rien, désactivez le mode silencieux."
  },
  "virtual-piano": {
    "heading": "Piano virtuel",
    "subtitle": "Jouez à la souris, au doigt, au clavier d'ordinateur ou avec un clavier MIDI.",
    "octave_down": "Une octave plus bas",
    "octave_up": "Une octave plus haut",
    "range": "De {{low}} ({{lowHz}} Hz) à {{high}} ({{highHz}} Hz)",
    "sustain": "Pédale forte",
    "stop": "Tout arrêter",
    "keyboard_label": "Clavier de piano",
    "key_label": "{{note}}, {{hz}} Hz",
    "last_note": "Dernière note : {{note}}, {{hz}} Hz",
    "hint_play": "Touchez une touche pour jouer : le son démarre au premier geste.",
    "show_keys": "Afficher les touches du clavier",
    "keys_layout_real": "Lettres de votre propre clavier, lues par le navigateur. Les touches sont repérées par leur position.",
    "keys_layout_qwerty": "Lettres d'un clavier QWERTY : les touches sont repérées par leur position, donc sur un clavier AZERTY, Z se joue avec W et Q avec A.",
    "volume": "Volume",
    "a4_label": "La de référence",
    "a4_hint": "440 Hz par défaut (valeur indicative, non vérifiée), réglable de 400 à 480 Hz ; s'applique aux notes suivantes.",
    "midi_connect": "Connecter un clavier MIDI",
    "midi_on": "Web MIDI actif. Entrées détectées : {{n}}.",
    "midi_unsupported": "Ce navigateur ne propose pas Web MIDI ; c'est le cas de Safari, sur Mac comme sur iPhone. Essayez Chrome, Edge ou Firefox.",
    "midi_denied": "Accès MIDI refusé ou indisponible. Autorisez-le dans les réglages du site, puis réessayez.",
    "midi_hint": "Le navigateur demande votre accord. Les notes et la pédale forte (contrôleur 64) du clavier MIDI sont prises en compte.",
    "synth_note": "Son synthétisé dans le navigateur (six partiels qui s'éteignent peu à peu), pas un piano échantillonné : le timbre reste simplifié.",
    "note": {
      "c": "do",
      "cs": "do♯",
      "d": "ré",
      "ds": "ré♯",
      "e": "mi",
      "f": "fa",
      "fs": "fa♯",
      "g": "sol",
      "gs": "sol♯",
      "a": "la",
      "as": "la♯",
      "b": "si"
    }
  },
  "youtube-thumbnail-preview": {
    "heading": "Aperçu de miniature YouTube",
    "subtitle": "Vérifiez le format de votre miniature et voyez-la dans des maquettes d'accueil, de recherche et de mobile.",
    "default_title": "Le titre de votre vidéo s'affiche ici, sur deux lignes au maximum",
    "default_channel": "Ma chaîne",
    "meta_line": "{{views}} vues · {{age}}",
    "mobile_sub": "{{channel}} · {{meta}}",
    "check_too_small": "{{w}} × {{h}} px : largeur sous le minimum de {{min}} px demandé par YouTube.",
    "check_size_rec": "{{w}} × {{h}} px : résolution conseillée atteinte.",
    "check_size_min": "{{w}} × {{h}} px : accepté (largeur ≥ {{min}} px), sous la résolution conseillée de {{rw}} × {{rh}} px.",
    "check_ratio_ok": "Ratio 16:9 respecté.",
    "check_ratio_off": "Ratio de {{ratio}} : YouTube conseille 16:9 (1,778) pour une vidéo. L'aperçu recadre l'image.",
    "check_weight_ok": "{{size}} Mo : importable depuis un mobile (2 Mo) et un ordinateur (50 Mo).",
    "check_weight_desktop": "{{size}} Mo : au-dessus des 2 Mo du mobile, importez-la depuis un ordinateur (50 Mo au plus).",
    "check_weight_bad": "{{size}} Mo : au-dessus de la limite de 50 Mo, compressez l'image.",
    "check_format_ok": "Format JPG ou PNG, cité par l'aide YouTube.",
    "check_format_other": "Format {{type}} : l'aide YouTube ne cite que JPG et PNG en exemples, préférez l'un des deux.",
    "thumb_alt": "Votre miniature",
    "placeholder": "Votre miniature ici",
    "choose_image": "Choisir une miniature",
    "replace_image": "Changer d'image",
    "remove_image": "Retirer l'image",
    "local_note": "L'image reste sur votre appareil : elle n'est envoyée nulle part.",
    "title_label": "Titre de la vidéo",
    "channel_label": "Nom de la chaîne",
    "duration_label": "Durée",
    "views_label": "Vues",
    "days_label": "Il y a (jours)",
    "theme_label": "Thème des maquettes",
    "theme_light": "Clair",
    "theme_dark": "Sombre",
    "checks_title": "Contrôle des exigences YouTube",
    "checks_empty": "Choisissez une image pour vérifier ses dimensions, son ratio, son poids et son format.",
    "file_info": "{{name}} : {{w}} × {{h}} px, {{size}} Mo",
    "rule_size": "Résolution conseillée : {{rw}} × {{rh}} px ; largeur minimale : {{min}} px.",
    "rule_ratio": "Ratio : 16:9 pour une vidéo, 9:16 pour un Short.",
    "rule_weight": "Poids : 2 Mo au plus depuis un mobile, 50 Mo depuis un ordinateur.",
    "rule_format": "Formats cités en exemples : JPG, PNG.",
    "rule_verified": "Miniatures personnalisées réservées aux comptes validés.",
    "rules_source": "Source : aide YouTube « Ajouter des miniatures personnalisées sur YouTube », consultée le 29/10/2026.",
    "mock_home": "Accueil",
    "mock_search": "Résultats de recherche",
    "mock_next": "Colonne « à suivre »",
    "mock_mobile": "Mobile",
    "disclaimer": "Maquettes génériques, sans logo : tailles d'affichage, position et taille du badge de durée sont indicatives, car YouTube modifie son interface. L'aperçu recadre l'image en 16:9."
  }
}
