-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlang.js
More file actions
566 lines (562 loc) · 50.8 KB
/
Copy pathlang.js
File metadata and controls
566 lines (562 loc) · 50.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
// ── MicroLab Pro : i18n engine ──────────────────────────────────────────────
// Every UI string lives here. data-i18n="key" on any element gets replaced.
// Attribute translation: data-i18n-placeholder="key" for input placeholders.
const LANG = {
en: {
dir: "ltr",
nav_home: "Home", nav_microid: "MicroID", nav_micropath: "MicroPath",
nav_microcalc: "MicroCalc", nav_micropedia: "MicroPedia", nav_microsteril: "MicroSteril",
nav_about: "About", nav_badge: "Free · Open",
hero_eyebrow: "Microbiology · Quality Control · Diagnostics",
hero_h1a: "The complete toolkit", hero_h1b: "for every microbiologist",
hero_sub: "Identify bacteria, interpret QC results, run lab calculations, and access curated microbiology references. Free, offline-capable, no login required.",
stat1_num: "5", stat1_label: "Integrated Tools",
stat2_num: "200+", stat2_label: "Bacterial Species",
stat3_num: "ISO", stat3_label: "Norm Referenced",
stat4_num: "Free", stat4_label: "Always",
btn_start: "Start Identifying", btn_explore: "Explore All Tools",
tools_eyebrow: "The Suite", tools_title: "Five tools. One platform.",
tools_sub: "Built by a microbiologist, for microbiologists, students, technicians, clinicians.",
t1_tag: "Tool 01 · Identification", t1_name: "MicroID",
t1_desc: "Guided step-by-step biochemical decision tree. Enter your lab results sequentially and reach a precise genus/species identification.",
t1_p1: "Clinical", t1_p2: "Food", t1_p3: "Environmental", t1_p4: "200+ species",
t2_tag: "Tool 02 · Diagnostics", t2_name: "MicroPath",
t2_desc: "Clinical and food microbiology diagnostic assistant. Interpret antibiogram results per CASFM/EUCAST, get culture media recommendations, and evaluate contamination verdicts.",
t2_p1: "Antibiogram", t2_p2: "CASFM/EUCAST", t2_p3: "Media", t2_p4: "QC Verdict",
t3_tag: "Tool 03 · Calculators", t3_name: "MicroCalc",
t3_desc: "Every calculation a microbiologist needs: CFU/g corrector, MPN lookup, sampling plan generator (n/c/m/M per ISO/Codex), D-value, Z-value, dilution series, media prep.",
t3_p1: "CFU / MPN", t3_p2: "ISO 2859", t3_p3: "D/Z value", t3_p4: "Dilutions",
t4_tag: "Tool 04 · Reference", t4_name: "MicroPedia",
t4_desc: "Curated open reference: bacterial fact sheets, culture media encyclopedia, staining protocols, ISO norm summaries and exam-style QCM quizzes.",
t4_p1: "Media", t4_p2: "Protocols", t4_p3: "QCM", t4_p4: "AR/FR/EN",
t5_tag: "Tool 05 · Sterilization", t5_name: "MicroSteril",
t5_desc: "Sterilization and disinfection reference. Autoclave cycles, disinfectant dilution calculator, dry heat and UV parameters, biological indicator guide.",
t5_p1: "Autoclave", t5_p2: "Disinfectants", t5_p3: "Dry heat", t5_p4: "Indicators",
about_eyebrow: "About", about_title: "Built by a specialist, not a generalist.",
about_p1: "MicroLab Pro was created by a Master's student in Microbiology and Quality Control (USTHB, Algeria). Every tool reflects real lab experience, the calculations you actually run, the decisions you actually make, the references you actually need.",
about_p2: "No ads. No login. No data collection. Fully open, forever free. Built for Algerian students, useful worldwide.",
about_sig: "Founder and Admin: M2 Microbiology and Quality Control",
spec1k: "Backend", spec1v: "None required",
spec2k: "Login", spec2v: "Not needed",
spec3k: "Data collected", spec3v: "Zero",
spec4k: "Norms", spec4v: "ISO · Codex · CASFM · JORA",
spec5k: "Offline capable", spec5v: "Yes",
spec6k: "Languages", spec6v: "AR · FR · EN",
footer_tagline: "Free microbiology tools for students and professionals worldwide.",
copyright: "All rights reserved to Zekraoui Rabah AllaaEddine 🦑 © 2026",
follow_link: "Follow on LinkedIn",
inquiry_title: "Send an inquiry",
inquiry_sub: "Questions, feedback, or a topic you need help with? Fill this in and your email app will open with everything ready to send.",
inquiry_name: "Your name", inquiry_email: "Your email", inquiry_type: "Subject",
inquiry_type_q: "Question", inquiry_type_f: "Feedback", inquiry_type_r: "Tutoring request", inquiry_type_o: "Other",
inquiry_message: "Your message", inquiry_send: "Send by email",
inquiry_note: "This opens your default email app addressed to rabahallaa666@gmail.com. Nothing is stored or sent automatically.",
loading_text: "Loading toolkit",
microid_eyebrow: "🧫 MicroID", microid_title: "Guided bacterial identification",
microid_sub: "Answer the questions sequentially. The algorithm guides you to the genus and species based on standard biochemical tests.",
microid_reset: "Restart", microid_new: "New identification", microid_error: "Node not found.",
micropath_eyebrow: "🔬 MicroPath", micropath_title: "Diagnostic assistant",
micropath_sub: "Antibiogram CASFM/EUCAST · Media recommendation · Food contamination verdict",
mp_tab_ab: "Antibiogram", mp_tab_media: "Culture media", mp_tab_qc: "Food QC verdict",
mp_ab_h3: "Antibiogram interpretation (CASFM/EUCAST 2024)",
mp_ab_bact: "Bacteria", mp_ab_abx: "Antibiotic", mp_ab_diam: "Inhibition zone diameter (mm)",
mp_ab_result: "CASFM/EUCAST result", mp_ab_ref_h3: "Quick reference table",
mp_ab_th_abx: "Antibiotic", mp_ab_th_charge: "Charge (µg)", mp_ab_th_s: "S ≥ (mm)", mp_ab_th_r: "R < (mm)",
mp_ab_s_label: "S : Sensitive", mp_ab_r_label: "R : Resistant", mp_ab_i_label: "I : Intermediate (SDD)",
mp_ab_s_text: "Diameter {d}mm ≥ {s}mm. Standard treatment is likely effective.",
mp_ab_r_text: "Diameter {d}mm < {r}mm. Resistance likely. Alternative treatment recommended.",
mp_ab_i_text: "Diameter {d}mm between {r}mm and {s}mm. Dose-dependent susceptibility. Increase dosage or substitute.",
mp_ab_cmi_note: "Interpret via MIC (no standard disc)",
mp_ab_disc_info: "Disc {disc} {charge}µg | S ≥ {s}mm | R < {r}mm",
mp_media_h3: "Culture media recommendation",
mp_media_germ: "Target organism", mp_media_matrix: "Matrix / context",
mp_media_choose: "Choose an organism to display recommendations.",
mp_media_choose_opt: "-- Choose an organism --",
mp_media_opt_coliformes: "Total / fecal coliforms", mp_media_opt_moisissures: "Yeasts and molds",
mp_media_opt_anaerobes: "Strict anaerobes (Bacteroides)",
mp_media_norm_ref: "Reference norm", mp_media_context: "Context",
mp_media_enrichment: "Enrichment / Pre-enrichment", mp_media_selective: "Selective / differential media",
mp_media_confirmation: "Confirmation", mp_media_incubation: "Incubation",
mp_media_food: "Food", mp_media_clinical: "Clinical", mp_media_water: "Water", mp_media_env: "Environmental",
mp_qc_h3: "Microbiological verdict (Codex Alimentarius / JORA)",
mp_qc_germ: "Organism / Criterion", mp_qc_product: "Product type",
mp_qc_rte: "Ready to eat (RTE)", mp_qc_raw: "Raw product", mp_qc_heat: "Heat treated", mp_qc_dairy: "Dairy product",
mp_qc_count: "Result (CFU/g or CFU/mL)", mp_qc_limits: "Applicable limits", mp_qc_verdict: "Verdict",
mp_qc_opt_aerobic: "Total aerobic mesophilic flora (TAMF)", mp_qc_opt_coliforms: "Total coliforms",
mp_qc_opt_ecoli: "E. coli", mp_qc_opt_staph: "Pathogenic staphylococci",
mp_qc_opt_salmonella: "Salmonella (presence/absence)", mp_qc_opt_listeria: "Listeria monocytogenes",
mp_qc_opt_yeast: "Yeasts and molds", mp_qc_opt_bcereus: "Bacillus cereus",
mp_qc_opt_cperfringens: "Clostridium perfringens", mp_qc_opt_enterococcus: "Enterococcus (bathing water)",
mp_qc_opt_anaerobies: "Sulfite-reducing anaerobes",
mp_qc_absence: "Absence required in 25g (presence/absence)",
mp_qc_ok: "Satisfactory", mp_qc_warn: "Acceptable / Marginal", mp_qc_fail: "Unsatisfactory / Rejected",
mp_qc_ok_text: "{count} CFU/g ≤ m ({m}). Compliant with microbiological criteria.",
mp_qc_warn_text: "m ({m}) < {count} CFU/g ≤ M ({M}). Acceptability depends on the sampling plan (n, c).",
mp_qc_fail_text: "{count} CFU/g > M ({M}). Non-compliant lot. Corrective action required.",
microcalc_eyebrow: "📊 MicroCalc", microcalc_title: "Laboratory calculators",
microcalc_sub: "Every formula and table a microbiologist needs, computed instantly in your browser.",
mc_tab_cfu: "CFU/g", mc_tab_mpn: "MPN", mc_tab_plan: "n/c/m/M Plan", mc_tab_dz: "D/Z value",
mc_tab_dil: "Dilutions", mc_tab_media: "Media prep",
mc_cfu_h3: "Colony count corrector (CFU/g or CFU/mL)", mc_cfu_formula: "NF ISO 7218 formula: N = ΣC / [(n1 + 0.1×n2) × d]",
mc_cfu_sum: "Sum of colonies (ΣC)", mc_cfu_n1: "Plates retained, 1st dilution (n1)",
mc_cfu_n2: "Plates retained, 2nd dilution (n2)", mc_cfu_d: "Most concentrated dilution factor (d)",
mc_cfu_result: "Result",
mc_mpn_h3: "Most Probable Number table (MPN)",
mc_mpn_desc: "3-tube method per dilution (ISO 7218 Annex). Enter the number of positive tubes for each of 3 consecutive dilutions.",
mc_mpn_a: "Positive 1st dilution (/3)", mc_mpn_b: "Positive 2nd dilution (/3)", mc_mpn_c: "Positive 3rd dilution (/3)",
mc_mpn_calc: "Calculate", mc_mpn_result: "MPN / 100mL (or g)",
mc_dz_z_sub: "°C needed to divide D by 10",
mc_plan_h3: "Sampling plan generator (n, c, m, M)",
mc_plan_desc: "Per Codex Alimentarius / ISO 2859. Select the hazard severity class.",
mc_plan_class: "Hazard class",
mc_plan_c1: "Class 1: No direct health hazard (n=5, c=3)",
mc_plan_c2: "Class 2: Low indirect hazard (n=5, c=2)",
mc_plan_c3: "Class 3: Moderate indirect hazard (n=5, c=1)",
mc_plan_c4: "Class 4: Moderate hazard, limited spread (n=5, c=0)",
mc_plan_c5: "Class 5: Severe hazard (n=10, c=0)",
mc_plan_c6: "Class 6: Severe hazard, strict pathogen (n=15, c=0)",
mc_plan_m: "m (CFU/g, acceptable threshold)", mc_plan_cap: "M (CFU/g, rejection threshold)",
mc_plan_samples: "samples", mc_plan_tolerance: "tolerance", mc_plan_ufc: "CFU/g",
mc_dz_h3a: "D-value (decimal reduction time)", mc_dz_formula_d: "D = t / log(N0/N)",
mc_dz_n0: "Initial population N0 (CFU/mL)", mc_dz_n: "Final population N (CFU/mL)", mc_dz_t: "Treatment time t (min)",
mc_dz_result_d: "D-value",
mc_dz_h3b: "Z-value (thermal sensitivity)", mc_dz_formula_z: "Z = (T2 - T1) / (log D1 - log D2)",
mc_dz_t1: "Temperature T1 (°C)", mc_dz_d1: "D1 (min)", mc_dz_t2: "Temperature T2 (°C)", mc_dz_d2: "D2 (min)",
mc_dz_result_z: "Z-value",
mc_dil_h3: "Decimal dilution series planner",
mc_dil_sample: "Initial sample volume (mL or g)", mc_dil_diluent: "Diluent volume per tube (mL)", mc_dil_count: "Number of dilutions",
mc_dil_tube: "Tube", mc_dil_factor: "Factor",
mc_mp_h3: "Culture media preparation calculator",
mc_mp_conc: "Stated concentration (g/L)", mc_mp_vol: "Volume to prepare (mL)", mc_mp_result: "Mass to weigh",
mc_mol_h3: "Molarity calculator", mc_mol_formula: "Mass (g) = Molarity (mol/L) × Volume (L) × Molar mass (g/mol)",
mc_mol_m: "Desired molarity (mol/L)", mc_mol_v: "Volume (mL)", mc_mol_mm: "Molar mass (g/mol)", mc_mol_result: "Mass to weigh",
mc_cfu_raw: "Raw value: {n} CFU/g. Round to 2 significant figures per ISO 7218.",
mc_mpn_offtable: "Combination outside standard table",
mc_mpn_offtable_sub: "Consult the full MPN table ISO 7218 Annex C for this combination.",
mc_mpn_combo_sub: "Combination {key} on standard 3-tube table (95% confidence interval).",
mc_plan_explain: "Out of n={n} units analyzed, at most c={c} units may show a result between m and M. No unit may exceed M. Beyond c non-compliant units, the lot is rejected.",
mc_dz_d_sub: "Time needed to reduce the population by a factor of 10 at this temperature.",
mc_dil_series_label: "Dilution series",
mc_dil_tube_label: "Tube {i} (10⁻{i})",
mc_dil_factor_label: "Factor: {f}",
mc_mp_result_sub: "To prepare {vol}mL at {conc}g/L, weigh {mass}g of dehydrated powder then top up to volume with distilled water before autoclaving.",
micropedia_eyebrow: "📚 MicroPedia", micropedia_title: "Open reference",
micropedia_sub: "Culture media fact sheets, staining protocols, ISO norm summaries, and QCM practice quizzes.",
mped_tab_media: "Media", mped_tab_stain: "Staining", mped_tab_norms: "ISO norms", mped_tab_qcm: "QCM Quiz",
mped_media_h3: "Culture media encyclopedia",
mped_media_th_name: "Medium", mped_media_th_type: "Type", mped_media_th_use: "Main use", mped_media_th_comp: "Key composition",
mped_norms_h3: "ISO norm summary in microbiology",
mped_norms_th_code: "Norm", mped_norms_th_obj: "Purpose", mped_norms_th_domain: "Domain",
mped_stain_reading: "Reading",
mped_qcm_reset: "Restart quiz", mped_qcm_score: "Final score",
mped_qcm_score_text: "Final score: {score} / {total}",
microsteril_eyebrow: "🧴 MicroSteril", microsteril_title: "Sterilization & disinfection",
microsteril_sub: "Autoclave cycles, disinfectant dilution calculator, dry heat and UV parameters, biological indicator guide.",
ms_tab_autoclave: "Autoclave", ms_tab_disinfect: "Disinfectants", ms_tab_dryheat: "Dry heat / UV", ms_tab_indicators: "Indicators",
ms_auto_h3: "Autoclave cycle reference",
ms_auto_th_material: "Material / load", ms_auto_th_temp: "Temperature", ms_auto_th_time: "Holding time", ms_auto_th_pressure: "Pressure",
ms_dis_h3: "Disinfectant dilution calculator",
ms_dis_product: "Disinfectant", ms_dis_stock: "Stock concentration (%)", ms_dis_target: "Target concentration (%)",
ms_dis_volume: "Final volume needed (mL)", ms_dis_result: "Volume of stock to use",
ms_dis_table_h3: "Common disinfectant reference",
ms_dis_th_name: "Product", ms_dis_th_conc: "Usage concentration", ms_dis_th_contact: "Contact time", ms_dis_th_use: "Spectrum",
ms_dry_h3: "Dry heat sterilization (Poupinel oven)",
ms_dry_th_temp: "Temperature", ms_dry_th_time: "Minimum time", ms_dry_th_use: "Typical use",
ms_uv_h3: "UV germicidal disinfection",
ms_uv_p1: "UV-C (254nm) inactivates microorganisms by damaging DNA/RNA. Effective for air, surfaces, and water treatment.",
ms_uv_th_app: "Application", ms_uv_th_dose: "Typical dose", ms_uv_th_note: "Note",
ms_ind_h3: "Biological and chemical indicator guide",
ms_ind_th_type: "Indicator type", ms_ind_th_organism: "Test organism / class", ms_ind_th_use: "Verifies",
fav_title: "Favorites", fav_empty: "No favorites yet. Tap the star on any result to save it.",
conv_title: "Quick converter",
export_print: "Export / Print",
cheatsheet_btn: "Print cheat sheet",
dq_badge: "Quick Practice", dq_streak: "day streak",
dq_correct: "Correct!", dq_wrong: "Not quite.", dq_next: "Next question",
support_btn: "Support this project",
support_title: "Support this project",
support_sub: "MicroLab Pro stays free, ad-free, and open for every student. If it helped you, a small contribution helps keep it maintained and growing.",
support_account: "Account", support_key: "Key", support_name: "Name",
support_close: "Close",
other_sites_title: "More projects"
},
fr: {
dir: "ltr",
nav_home: "Accueil", nav_microid: "MicroID", nav_micropath: "MicroPath",
nav_microcalc: "MicroCalc", nav_micropedia: "MicroPedia", nav_microsteril: "MicroSteril",
nav_about: "À propos", nav_badge: "Gratuit · Ouvert",
hero_eyebrow: "Microbiologie · Contrôle Qualité · Diagnostic",
hero_h1a: "La boîte à outils complète", hero_h1b: "pour tout microbiologiste",
hero_sub: "Identifiez des bactéries, interprétez vos résultats CQ, effectuez des calculs de laboratoire et accédez à des références microbiologiques. Gratuit, utilisable hors ligne, sans inscription.",
stat1_num: "5", stat1_label: "Outils intégrés",
stat2_num: "200+", stat2_label: "Espèces bactériennes",
stat3_num: "ISO", stat3_label: "Normes référencées",
stat4_num: "Gratuit", stat4_label: "Pour toujours",
btn_start: "Commencer l'identification", btn_explore: "Explorer les outils",
tools_eyebrow: "La Suite", tools_title: "Cinq outils. Une plateforme.",
tools_sub: "Conçu par un microbiologiste, pour les microbiologistes, étudiants, techniciens, cliniciens.",
t1_tag: "Outil 01 · Identification", t1_name: "MicroID",
t1_desc: "Arbre décisionnel biochimique guidé étape par étape. Saisissez vos résultats de laboratoire séquentiellement et obtenez une identification précise genre/espèce.",
t1_p1: "Clinique", t1_p2: "Alimentaire", t1_p3: "Environnemental", t1_p4: "200+ espèces",
t2_tag: "Outil 02 · Diagnostic", t2_name: "MicroPath",
t2_desc: "Assistant de diagnostic en microbiologie clinique et alimentaire. Interprétez les antibiogrammes selon CASFM/EUCAST, obtenez des recommandations de milieux de culture et des verdicts de contamination.",
t2_p1: "Antibiogramme", t2_p2: "CASFM/EUCAST", t2_p3: "Milieux", t2_p4: "Verdict CQ",
t3_tag: "Outil 03 · Calculateurs", t3_name: "MicroCalc",
t3_desc: "Tous les calculs dont un microbiologiste a besoin : correcteur UFC/g, table NPP, générateur de plan d'échantillonnage n/c/m/M selon ISO/Codex, valeur D, valeur Z, séries de dilutions, préparation des milieux.",
t3_p1: "UFC / NPP", t3_p2: "ISO 2859", t3_p3: "Valeur D/Z", t3_p4: "Dilutions",
t4_tag: "Outil 04 · Référence", t4_name: "MicroPedia",
t4_desc: "Référence ouverte et structurée : fiches bactériennes, encyclopédie des milieux de culture, protocoles de coloration, résumés des normes ISO et QCM d'entraînement.",
t4_p1: "Milieux", t4_p2: "Protocoles", t4_p3: "QCM", t4_p4: "AR/FR/EN",
t5_tag: "Outil 05 · Stérilisation", t5_name: "MicroSteril",
t5_desc: "Référence de stérilisation et désinfection. Cycles d'autoclave, calculateur de dilution de désinfectants, paramètres chaleur sèche et UV, guide des indicateurs biologiques.",
t5_p1: "Autoclave", t5_p2: "Désinfectants", t5_p3: "Chaleur sèche", t5_p4: "Indicateurs",
about_eyebrow: "À propos", about_title: "Créé par un spécialiste, pas un généraliste.",
about_p1: "MicroLab Pro a été créé par un étudiant en Master 2 Microbiologie et Contrôle Qualité (USTHB, Algérie). Chaque outil reflète une vraie expérience de laboratoire : les calculs que vous effectuez réellement, les décisions que vous prenez, les références dont vous avez besoin.",
about_p2: "Aucune publicité. Aucune inscription. Aucune collecte de données. Entièrement ouvert, gratuit pour toujours. Conçu pour les étudiants algériens, utile dans le monde entier.",
about_sig: "Fondateur et Administrateur : M2 Microbiologie et Contrôle Qualité",
spec1k: "Backend", spec1v: "Aucun requis",
spec2k: "Inscription", spec2v: "Non requise",
spec3k: "Données collectées", spec3v: "Zéro",
spec4k: "Normes", spec4v: "ISO · Codex · CASFM · JORA",
spec5k: "Hors ligne", spec5v: "Oui",
spec6k: "Langues", spec6v: "AR · FR · EN",
footer_tagline: "Outils de microbiologie gratuits pour étudiants et professionnels du monde entier.",
copyright: "Tous droits réservés à Zekraoui Rabah AllaaEddine 🦑 © 2026",
follow_link: "Suivre sur LinkedIn",
inquiry_title: "Envoyer une demande",
inquiry_sub: "Une question, un avis, ou un sujet sur lequel vous avez besoin d'aide ? Remplissez ce formulaire, votre application email s'ouvrira avec tout prêt à envoyer.",
inquiry_name: "Votre nom", inquiry_email: "Votre email", inquiry_type: "Sujet",
inquiry_type_q: "Question", inquiry_type_f: "Avis / retour", inquiry_type_r: "Demande de tutorat", inquiry_type_o: "Autre",
inquiry_message: "Votre message", inquiry_send: "Envoyer par email",
inquiry_note: "Ceci ouvre votre application email par défaut adressée à rabahallaa666@gmail.com. Rien n'est stocké ni envoyé automatiquement.",
loading_text: "Chargement de la boîte à outils",
microid_eyebrow: "🧫 MicroID", microid_title: "Identification bactérienne guidée",
microid_sub: "Répondez aux questions séquentiellement. L'algorithme vous guide vers le genre et l'espèce sur la base des tests biochimiques standards.",
microid_reset: "Recommencer", microid_new: "Nouvelle identification", microid_error: "Noeud introuvable.",
micropath_eyebrow: "🔬 MicroPath", micropath_title: "Assistant de diagnostic",
micropath_sub: "Antibiogramme CASFM/EUCAST · Recommandation de milieux · Verdict de contamination alimentaire",
mp_tab_ab: "Antibiogramme", mp_tab_media: "Milieux de culture", mp_tab_qc: "Verdict CQ alimentaire",
mp_ab_h3: "Interprétation antibiogramme (CASFM/EUCAST 2024)",
mp_ab_bact: "Bactérie", mp_ab_abx: "Antibiotique", mp_ab_diam: "Diamètre d'inhibition (mm)",
mp_ab_result: "Résultat CASFM/EUCAST", mp_ab_ref_h3: "Tableau de référence rapide",
mp_ab_th_abx: "Antibiotique", mp_ab_th_charge: "Charge (µg)", mp_ab_th_s: "S ≥ (mm)", mp_ab_th_r: "R < (mm)",
mp_ab_s_label: "S : Sensible", mp_ab_r_label: "R : Résistant", mp_ab_i_label: "I : Intermédiaire (SDD)",
mp_ab_s_text: "Diamètre {d}mm ≥ {s}mm. Le traitement standard est probablement efficace.",
mp_ab_r_text: "Diamètre {d}mm < {r}mm. Résistance probable. Traitement alternatif recommandé.",
mp_ab_i_text: "Diamètre {d}mm entre {r}mm et {s}mm. Sensibilité dose-dépendante. Augmenter la posologie ou substituer.",
mp_ab_cmi_note: "Interpréter par CMI (pas de disque standard)",
mp_ab_disc_info: "Disque {disc} {charge}µg | S ≥ {s}mm | R < {r}mm",
mp_media_h3: "Recommandation de milieux de culture",
mp_media_germ: "Germe recherché", mp_media_matrix: "Matrice / contexte",
mp_media_choose: "Choisissez un germe pour afficher les recommandations.",
mp_media_choose_opt: "-- Choisir un germe --",
mp_media_opt_coliformes: "Coliformes totaux / fecaux", mp_media_opt_moisissures: "Levures et moisissures",
mp_media_opt_anaerobes: "Anaerobies stricts (Bacteroides)",
mp_media_norm_ref: "Norme de reference", mp_media_context: "Contexte",
mp_media_enrichment: "Enrichissement / Pre-enrichissement", mp_media_selective: "Milieux selectifs / differentiels",
mp_media_confirmation: "Confirmation", mp_media_incubation: "Incubation",
mp_media_food: "Alimentaire", mp_media_clinical: "Clinique", mp_media_water: "Eau", mp_media_env: "Environnemental",
mp_qc_h3: "Verdict microbiologique (Codex Alimentarius / JORA)",
mp_qc_germ: "Germe / Critère", mp_qc_product: "Type de produit",
mp_qc_rte: "Prêt à consommer (RTE)", mp_qc_raw: "Produit cru", mp_qc_heat: "Traité thermiquement", mp_qc_dairy: "Produit laitier",
mp_qc_count: "Résultat (UFC/g ou UFC/mL)", mp_qc_limits: "Limites applicables", mp_qc_verdict: "Verdict",
mp_qc_opt_aerobic: "Flore totale aérobie mésophile (FTAM)", mp_qc_opt_coliforms: "Coliformes totaux",
mp_qc_opt_ecoli: "E. coli", mp_qc_opt_staph: "Staphylocoques pathogènes",
mp_qc_opt_salmonella: "Salmonella (présence/absence)", mp_qc_opt_listeria: "Listeria monocytogenes",
mp_qc_opt_yeast: "Levures et moisissures", mp_qc_opt_bcereus: "Bacillus cereus",
mp_qc_opt_cperfringens: "Clostridium perfringens", mp_qc_opt_enterococcus: "Enterococcus (eaux de baignade)",
mp_qc_opt_anaerobies: "Anaerobies sulfito-reducteurs",
mp_qc_absence: "Absence exigée dans 25g (présence/absence)",
mp_qc_ok: "Satisfaisant", mp_qc_warn: "Acceptable / Limite", mp_qc_fail: "Non satisfaisant / Rejet",
mp_qc_ok_text: "{count} UFC/g ≤ m ({m}). Conforme aux critères microbiologiques.",
mp_qc_warn_text: "m ({m}) < {count} UFC/g ≤ M ({M}). Acceptabilité dépend du plan d'échantillonnage (n, c).",
mp_qc_fail_text: "{count} UFC/g > M ({M}). Lot non conforme. Mesures correctives obligatoires.",
microcalc_eyebrow: "📊 MicroCalc", microcalc_title: "Calculateurs de laboratoire",
microcalc_sub: "Toutes les formules et tables dont un microbiologiste a besoin, calculées instantanément dans votre navigateur.",
mc_tab_cfu: "UFC/g", mc_tab_mpn: "NPP", mc_tab_plan: "Plan n/c/m/M", mc_tab_dz: "Valeur D/Z",
mc_tab_dil: "Dilutions", mc_tab_media: "Prép. milieux",
mc_cfu_h3: "Correcteur de dénombrement (UFC/g ou UFC/mL)", mc_cfu_formula: "Formule NF ISO 7218 : N = ΣC / [(n1 + 0.1×n2) × d]",
mc_cfu_sum: "Somme des colonies (ΣC)", mc_cfu_n1: "Nb boîtes 1ère dilution retenue (n1)",
mc_cfu_n2: "Nb boîtes 2ème dilution retenue (n2)", mc_cfu_d: "Facteur de dilution le plus concentré (d)",
mc_cfu_result: "Résultat",
mc_mpn_h3: "Table du Nombre le Plus Probable (NPP)",
mc_mpn_desc: "Méthode à 3 tubes par dilution (ISO 7218 Annexe). Entrez le nombre de tubes positifs pour chaque série de 3 dilutions consécutives.",
mc_mpn_a: "Positifs 1ère dilution (/3)", mc_mpn_b: "Positifs 2ème dilution (/3)", mc_mpn_c: "Positifs 3ème dilution (/3)",
mc_mpn_calc: "Calculer", mc_mpn_result: "NPP / 100mL (ou g)",
mc_dz_z_sub: "°C nécessaires pour diviser D par 10",
mc_plan_h3: "Générateur de plan d'échantillonnage (n, c, m, M)",
mc_plan_desc: "Selon Codex Alimentarius / ISO 2859. Sélectionnez la classe de sévérité du danger.",
mc_plan_class: "Classe de danger",
mc_plan_c1: "Classe 1 : Pas de danger direct pour la santé (n=5, c=3)",
mc_plan_c2: "Classe 2 : Danger indirect faible (n=5, c=2)",
mc_plan_c3: "Classe 3 : Danger indirect modéré (n=5, c=1)",
mc_plan_c4: "Classe 4 : Danger modéré, propagation limitée (n=5, c=0)",
mc_plan_c5: "Classe 5 : Danger sévère (n=10, c=0)",
mc_plan_c6: "Classe 6 : Danger sévère, pathogène strict (n=15, c=0)",
mc_plan_m: "m (UFC/g, seuil acceptable)", mc_plan_cap: "M (UFC/g, seuil rejet)",
mc_plan_samples: "échantillons", mc_plan_tolerance: "tolérance", mc_plan_ufc: "UFC/g",
mc_dz_h3a: "Valeur D (temps de réduction décimale)", mc_dz_formula_d: "D = t / log(N0/N)",
mc_dz_n0: "Population initiale N0 (UFC/mL)", mc_dz_n: "Population finale N (UFC/mL)", mc_dz_t: "Temps de traitement t (min)",
mc_dz_result_d: "Valeur D",
mc_dz_h3b: "Valeur Z (sensibilité thermique)", mc_dz_formula_z: "Z = (T2 - T1) / (log D1 - log D2)",
mc_dz_t1: "Température T1 (°C)", mc_dz_d1: "D1 (min)", mc_dz_t2: "Température T2 (°C)", mc_dz_d2: "D2 (min)",
mc_dz_result_z: "Valeur Z",
mc_dil_h3: "Planificateur de série de dilutions décimales",
mc_dil_sample: "Volume échantillon initial (mL ou g)", mc_dil_diluent: "Volume diluant par tube (mL)", mc_dil_count: "Nombre de dilutions",
mc_dil_tube: "Tube", mc_dil_factor: "Facteur",
mc_mp_h3: "Calculateur de préparation de milieux de culture",
mc_mp_conc: "Concentration indiquée (g/L)", mc_mp_vol: "Volume à préparer (mL)", mc_mp_result: "Masse à peser",
mc_mol_h3: "Calculateur de molarité", mc_mol_formula: "Masse (g) = Molarité (mol/L) × Volume (L) × Masse molaire (g/mol)",
mc_mol_m: "Molarité souhaitée (mol/L)", mc_mol_v: "Volume (mL)", mc_mol_mm: "Masse molaire (g/mol)", mc_mol_result: "Masse à peser",
mc_cfu_raw: "Valeur brute : {n} UFC/g. Arrondir à 2 chiffres significatifs selon ISO 7218.",
mc_mpn_offtable: "Combinaison hors table standard",
mc_mpn_offtable_sub: "Consultez la table NPP complète ISO 7218 Annexe C pour cette combinaison.",
mc_mpn_combo_sub: "Combinaison {key} sur table 3 tubes standard (intervalle de confiance 95%).",
mc_plan_explain: "Sur n={n} unités analysées, au maximum c={c} unités peuvent présenter un résultat compris entre m et M. Aucune unité ne doit dépasser M. Au delà de c unités non conformes, le lot est rejeté.",
mc_dz_d_sub: "Temps nécessaire pour réduire la population d'un facteur 10 à cette température.",
mc_dil_series_label: "Série de dilutions",
mc_dil_tube_label: "Tube {i} (10⁻{i})",
mc_dil_factor_label: "Facteur : {f}",
mc_mp_result_sub: "Pour préparer {vol}mL à {conc}g/L, peser {mass}g de poudre déshydratée puis compléter au volume avec de l'eau distillée avant autoclavage.",
micropedia_eyebrow: "📚 MicroPedia", micropedia_title: "Référence ouverte",
micropedia_sub: "Fiches milieux de culture, protocoles de coloration, résumés de normes ISO, et quiz QCM d'entraînement.",
mped_tab_media: "Milieux", mped_tab_stain: "Colorations", mped_tab_norms: "Normes ISO", mped_tab_qcm: "Quiz QCM",
mped_media_h3: "Encyclopédie des milieux de culture",
mped_media_th_name: "Milieu", mped_media_th_type: "Type", mped_media_th_use: "Usage principal", mped_media_th_comp: "Composition clé",
mped_norms_h3: "Résumé des normes ISO en microbiologie",
mped_norms_th_code: "Norme", mped_norms_th_obj: "Objet", mped_norms_th_domain: "Domaine",
mped_stain_reading: "Lecture",
mped_qcm_reset: "Recommencer le quiz", mped_qcm_score: "Score final",
mped_qcm_score_text: "Score final : {score} / {total}",
microsteril_eyebrow: "🧴 MicroSteril", microsteril_title: "Stérilisation et désinfection",
microsteril_sub: "Cycles d'autoclave, calculateur de dilution de désinfectants, paramètres chaleur sèche et UV, guide des indicateurs biologiques.",
ms_tab_autoclave: "Autoclave", ms_tab_disinfect: "Désinfectants", ms_tab_dryheat: "Chaleur sèche / UV", ms_tab_indicators: "Indicateurs",
ms_auto_h3: "Référence des cycles d'autoclave",
ms_auto_th_material: "Matériel / charge", ms_auto_th_temp: "Température", ms_auto_th_time: "Temps de plateau", ms_auto_th_pressure: "Pression",
ms_dis_h3: "Calculateur de dilution de désinfectant",
ms_dis_product: "Désinfectant", ms_dis_stock: "Concentration mère (%)", ms_dis_target: "Concentration cible (%)",
ms_dis_volume: "Volume final souhaité (mL)", ms_dis_result: "Volume de solution mère à prélever",
ms_dis_table_h3: "Référence des désinfectants courants",
ms_dis_th_name: "Produit", ms_dis_th_conc: "Concentration d'usage", ms_dis_th_contact: "Temps de contact", ms_dis_th_use: "Spectre",
ms_dry_h3: "Stérilisation par chaleur sèche (four Poupinel)",
ms_dry_th_temp: "Température", ms_dry_th_time: "Temps minimum", ms_dry_th_use: "Usage typique",
ms_uv_h3: "Désinfection germicide UV",
ms_uv_p1: "Les UV-C (254nm) inactivent les micro-organismes en endommageant l'ADN/ARN. Efficace pour l'air, les surfaces et le traitement de l'eau.",
ms_uv_th_app: "Application", ms_uv_th_dose: "Dose typique", ms_uv_th_note: "Remarque",
ms_ind_h3: "Guide des indicateurs biologiques et chimiques",
ms_ind_th_type: "Type d'indicateur", ms_ind_th_organism: "Organisme test / classe", ms_ind_th_use: "Vérifie",
fav_title: "Favoris", fav_empty: "Aucun favori pour le moment. Touchez l'etoile sur un resultat pour le sauvegarder.",
conv_title: "Convertisseur rapide",
export_print: "Exporter / Imprimer",
cheatsheet_btn: "Imprimer la fiche recapitulative",
dq_badge: "Entrainement rapide", dq_streak: "jours consecutifs",
dq_correct: "Correct !", dq_wrong: "Pas tout a fait.", dq_next: "Question suivante",
support_btn: "Soutenir ce projet",
support_title: "Soutenir ce projet",
support_sub: "MicroLab Pro reste gratuit, sans publicite, et ouvert pour chaque etudiant. Si le site vous a aide, une petite contribution aide a le maintenir et le faire grandir.",
support_account: "Compte", support_key: "Cle", support_name: "Nom",
support_close: "Fermer",
other_sites_title: "Plus de projets"
},
ar: {
dir: "rtl",
nav_home: "الرئيسية", nav_microid: "MicroID", nav_micropath: "MicroPath",
nav_microcalc: "MicroCalc", nav_micropedia: "MicroPedia", nav_microsteril: "MicroSteril",
nav_about: "حول", nav_badge: "مجاني · مفتوح",
hero_eyebrow: "علم الأحياء الدقيقة · مراقبة الجودة · التشخيص",
hero_h1a: "مجموعة الأدوات الشاملة", hero_h1b: "لكل عالم أحياء دقيقة",
hero_sub: "تعرّف على البكتيريا، فسّر نتائج مراقبة الجودة، أجرِ حسابات المختبر، وصل إلى مراجع ميكروبيولوجية منظّمة. مجاني، يعمل بدون إنترنت، بدون تسجيل.",
stat1_num: "5", stat1_label: "أدوات متكاملة",
stat2_num: "+200", stat2_label: "أنواع بكتيرية",
stat3_num: "ISO", stat3_label: "معايير مرجعية",
stat4_num: "مجاني", stat4_label: "دائماً",
btn_start: "ابدأ التعرف", btn_explore: "استكشف الأدوات",
tools_eyebrow: "المجموعة", tools_title: "خمس أدوات. منصة واحدة.",
tools_sub: "صُمِّم من قِبَل متخصص في علم الأحياء الدقيقة، للطلاب والتقنيين والأطباء.",
t1_tag: "أداة 01 · التعرف", t1_name: "MicroID",
t1_desc: "شجرة قرار بيوكيماوية خطوة بخطوة. أدخل نتائج مختبرك بالتسلسل وصل إلى تعريف دقيق للجنس والنوع.",
t1_p1: "سريري", t1_p2: "غذائي", t1_p3: "بيئي", t1_p4: "+200 نوع",
t2_tag: "أداة 02 · التشخيص", t2_name: "MicroPath",
t2_desc: "مساعد تشخيصي في علم الأحياء الدقيقة السريري والغذائي. فسّر نتائج الأنتيبيوغرام وفق CASFM/EUCAST، واحصل على توصيات بيئات الزرع وأحكام التلوث.",
t2_p1: "أنتيبيوغرام", t2_p2: "CASFM/EUCAST", t2_p3: "بيئات الزرع", t2_p4: "حكم الجودة",
t3_tag: "أداة 03 · الحاسبات", t3_name: "MicroCalc",
t3_desc: "كل الحسابات التي يحتاجها عالم الأحياء الدقيقة: مصحح CFU/g، جدول MPN، مولّد خطة أخذ العينات، القيمة D، القيمة Z، سلاسل التخفيف، تحضير البيئات.",
t3_p1: "CFU / MPN", t3_p2: "ISO 2859", t3_p3: "القيمة D/Z", t3_p4: "التخفيفات",
t4_tag: "أداة 04 · المرجع", t4_name: "MicroPedia",
t4_desc: "مرجع مفتوح ومنظّم: بطاقات البكتيريا، موسوعة بيئات الزرع، بروتوكولات التلوين، ملخصات معايير ISO وأسئلة QCM تدريبية.",
t4_p1: "بيئات الزرع", t4_p2: "بروتوكولات", t4_p3: "QCM", t4_p4: "ع/FR/EN",
t5_tag: "أداة 05 · التعقيم", t5_name: "MicroSteril",
t5_desc: "مرجع التعقيم والتطهير. دورات الأوتوكلاف، حاسبة تخفيف المطهرات، معايير الحرارة الجافة والأشعة فوق البنفسجية، دليل المؤشرات البيولوجية.",
t5_p1: "أوتوكلاف", t5_p2: "مطهرات", t5_p3: "حرارة جافة", t5_p4: "مؤشرات",
about_eyebrow: "حول", about_title: "صُنع من قبل متخصص، ليس عاماً.",
about_p1: "MicroLab Pro أُنشئ من قِبَل طالب ماستر 2 في علم الأحياء الدقيقة ومراقبة الجودة (USTHB، الجزائر). كل أداة تعكس تجربة مختبرية حقيقية، الحسابات التي تجريها فعلاً، القرارات التي تتخذها، المراجع التي تحتاجها.",
about_p2: "بلا إعلانات. بلا تسجيل. بلا جمع بيانات. مفتوح بالكامل، مجاني للأبد. مصمم للطلاب الجزائريين، مفيد في كل مكان.",
about_sig: "المؤسس والمدير: ماستر 2 علم الأحياء الدقيقة ومراقبة الجودة",
spec1k: "الخادم", spec1v: "غير مطلوب",
spec2k: "التسجيل", spec2v: "غير مطلوب",
spec3k: "البيانات المجمّعة", spec3v: "لا شيء",
spec4k: "المعايير", spec4v: "ISO · Codex · CASFM · JORA",
spec5k: "يعمل بلا إنترنت", spec5v: "نعم",
spec6k: "اللغات", spec6v: "ع · FR · EN",
footer_tagline: "أدوات ميكروبيولوجية مجانية للطلاب والمهنيين حول العالم.",
copyright: "جميع الحقوق محفوظة لـ Zekraoui Rabah AllaaEddine 🦑 © 2026",
follow_link: "تابعنا على LinkedIn",
inquiry_title: "إرسال طلب",
inquiry_sub: "لديك سؤال أو ملاحظة أو موضوع تحتاج مساعدة فيه؟ املأ هذا النموذج وسيفتح تطبيق البريد الإلكتروني جاهزاً للإرسال.",
inquiry_name: "اسمك", inquiry_email: "بريدك الإلكتروني", inquiry_type: "الموضوع",
inquiry_type_q: "سؤال", inquiry_type_f: "ملاحظة", inquiry_type_r: "طلب دروس خصوصية", inquiry_type_o: "آخر",
inquiry_message: "رسالتك", inquiry_send: "إرسال عبر البريد الإلكتروني",
inquiry_note: "سيفتح هذا تطبيق بريدك الإلكتروني الافتراضي موجهاً إلى rabahallaa666@gmail.com. لا يتم تخزين أو إرسال أي شيء تلقائياً.",
loading_text: "جارٍ تحميل مجموعة الأدوات",
microid_eyebrow: "🧫 MicroID", microid_title: "التعرف الموجّه على البكتيريا",
microid_sub: "أجب عن الأسئلة بالتسلسل. الخوارزمية توجهك نحو الجنس والنوع بناءً على الاختبارات البيوكيميائية القياسية.",
microid_reset: "إعادة البدء", microid_new: "تعرف جديد", microid_error: "العقدة غير موجودة.",
micropath_eyebrow: "🔬 MicroPath", micropath_title: "مساعد التشخيص",
micropath_sub: "أنتيبيوغرام CASFM/EUCAST · توصية بيئات الزرع · حكم التلوث الغذائي",
mp_tab_ab: "أنتيبيوغرام", mp_tab_media: "بيئات الزرع", mp_tab_qc: "حكم الجودة الغذائية",
mp_ab_h3: "تفسير الأنتيبيوغرام (CASFM/EUCAST 2024)",
mp_ab_bact: "البكتيريا", mp_ab_abx: "المضاد الحيوي", mp_ab_diam: "قطر التثبيط (مم)",
mp_ab_result: "نتيجة CASFM/EUCAST", mp_ab_ref_h3: "جدول مرجعي سريع",
mp_ab_th_abx: "المضاد الحيوي", mp_ab_th_charge: "التركيز (µg)", mp_ab_th_s: "S ≥ (مم)", mp_ab_th_r: "R < (مم)",
mp_ab_s_label: "S : حساس", mp_ab_r_label: "R : مقاوم", mp_ab_i_label: "I : متوسط (SDD)",
mp_ab_s_text: "القطر {d}مم ≥ {s}مم. من المرجح أن يكون العلاج القياسي فعالاً.",
mp_ab_r_text: "القطر {d}مم < {r}مم. مقاومة محتملة. يوصى بعلاج بديل.",
mp_ab_i_text: "القطر {d}مم بين {r}مم و{s}مم. حساسية معتمدة على الجرعة. زد الجرعة أو استبدل الدواء.",
mp_ab_cmi_note: "يُفسَّر عبر MIC (لا يوجد قرص قياسي)",
mp_ab_disc_info: "قرص {disc} {charge}µg | S ≥ {s}مم | R < {r}مم",
mp_media_h3: "توصية بيئات الزرع",
mp_media_germ: "الجرثومة المستهدفة", mp_media_matrix: "السياق / المصدر",
mp_media_choose: "اختر جرثومة لعرض التوصيات.",
mp_media_choose_opt: "-- اختر جرثومة --",
mp_media_opt_coliformes: "القولونيات الكلية / البرازية", mp_media_opt_moisissures: "الخمائر والعفن",
mp_media_opt_anaerobes: "اللاهوائيات الصارمة (Bacteroides)",
mp_media_norm_ref: "المعيار المرجعي", mp_media_context: "السياق",
mp_media_enrichment: "الإثراء / الإثراء المسبق", mp_media_selective: "بيئات انتقائية / تفريقية",
mp_media_confirmation: "التأكيد", mp_media_incubation: "الحضانة",
mp_media_food: "غذائي", mp_media_clinical: "سريري", mp_media_water: "مياه", mp_media_env: "بيئي",
mp_qc_h3: "الحكم الميكروبيولوجي (Codex Alimentarius / JORA)",
mp_qc_germ: "الجرثومة / المعيار", mp_qc_product: "نوع المنتج",
mp_qc_rte: "جاهز للأكل (RTE)", mp_qc_raw: "منتج نيء", mp_qc_heat: "معالج حرارياً", mp_qc_dairy: "منتج ألبان",
mp_qc_count: "النتيجة (CFU/g أو CFU/mL)", mp_qc_limits: "الحدود المطبقة", mp_qc_verdict: "الحكم",
mp_qc_opt_aerobic: "الفلورا الهوائية المعتدلة الكلية (FTAM)", mp_qc_opt_coliforms: "القولونيات الكلية",
mp_qc_opt_ecoli: "E. coli", mp_qc_opt_staph: "المكورات العنقودية الممرضة",
mp_qc_opt_salmonella: "Salmonella (وجود/غياب)", mp_qc_opt_listeria: "Listeria monocytogenes",
mp_qc_opt_yeast: "الخمائر والعفن", mp_qc_opt_bcereus: "Bacillus cereus",
mp_qc_opt_cperfringens: "Clostridium perfringens", mp_qc_opt_enterococcus: "Enterococcus (مياه السباحة)",
mp_qc_opt_anaerobies: "اللاهوائيات المختزلة للكبريتيت",
mp_qc_absence: "يجب الغياب في 25غ (وجود/غياب)",
mp_qc_ok: "مُرضٍ", mp_qc_warn: "مقبول / حدّي", mp_qc_fail: "غير مُرضٍ / مرفوض",
mp_qc_ok_text: "{count} CFU/g ≤ m ({m}). مطابق للمعايير الميكروبيولوجية.",
mp_qc_warn_text: "m ({m}) < {count} CFU/g ≤ M ({M}). القبول يعتمد على خطة أخذ العينات (n, c).",
mp_qc_fail_text: "{count} CFU/g > M ({M}). دفعة غير مطابقة. إجراءات تصحيحية إلزامية.",
microcalc_eyebrow: "📊 MicroCalc", microcalc_title: "حاسبات المختبر",
microcalc_sub: "كل الصيغ والجداول التي يحتاجها عالم الأحياء الدقيقة، محسوبة فوراً في متصفحك.",
mc_tab_cfu: "CFU/g", mc_tab_mpn: "MPN", mc_tab_plan: "خطة n/c/m/M", mc_tab_dz: "القيمة D/Z",
mc_tab_dil: "التخفيفات", mc_tab_media: "تحضير البيئات",
mc_cfu_h3: "مصحح العد (CFU/g أو CFU/mL)", mc_cfu_formula: "صيغة NF ISO 7218: N = ΣC / [(n1 + 0.1×n2) × d]",
mc_cfu_sum: "مجموع المستعمرات (ΣC)", mc_cfu_n1: "عدد الأطباق المحتفظ بها، التخفيف الأول (n1)",
mc_cfu_n2: "عدد الأطباق المحتفظ بها، التخفيف الثاني (n2)", mc_cfu_d: "عامل أعلى تخفيف مركّز (d)",
mc_cfu_result: "النتيجة",
mc_mpn_h3: "جدول الرقم الأكثر احتمالاً (MPN)",
mc_mpn_desc: "طريقة 3 أنابيب لكل تخفيف (ملحق ISO 7218). أدخل عدد الأنابيب الإيجابية لكل 3 تخفيفات متتالية.",
mc_mpn_a: "إيجابي التخفيف الأول (/3)", mc_mpn_b: "إيجابي التخفيف الثاني (/3)", mc_mpn_c: "إيجابي التخفيف الثالث (/3)",
mc_mpn_calc: "احسب", mc_mpn_result: "MPN / 100مل (أو غ)",
mc_dz_z_sub: "درجة مئوية لازمة لتقسيم D على 10",
mc_plan_h3: "مولّد خطة أخذ العينات (n, c, m, M)",
mc_plan_desc: "وفق Codex Alimentarius / ISO 2859. اختر فئة شدة الخطر.",
mc_plan_class: "فئة الخطر",
mc_plan_c1: "الفئة 1: لا خطر صحي مباشر (n=5, c=3)",
mc_plan_c2: "الفئة 2: خطر غير مباشر منخفض (n=5, c=2)",
mc_plan_c3: "الفئة 3: خطر غير مباشر متوسط (n=5, c=1)",
mc_plan_c4: "الفئة 4: خطر متوسط، انتشار محدود (n=5, c=0)",
mc_plan_c5: "الفئة 5: خطر شديد (n=10, c=0)",
mc_plan_c6: "الفئة 6: خطر شديد، ممرض صارم (n=15, c=0)",
mc_plan_m: "m (CFU/g، الحد المقبول)", mc_plan_cap: "M (CFU/g، حد الرفض)",
mc_plan_samples: "عينات", mc_plan_tolerance: "تسامح", mc_plan_ufc: "CFU/g",
mc_dz_h3a: "القيمة D (زمن التخفيض العشري)", mc_dz_formula_d: "D = t / log(N0/N)",
mc_dz_n0: "التعداد الأولي N0 (CFU/mL)", mc_dz_n: "التعداد النهائي N (CFU/mL)", mc_dz_t: "زمن المعالجة t (دقيقة)",
mc_dz_result_d: "القيمة D",
mc_dz_h3b: "القيمة Z (الحساسية الحرارية)", mc_dz_formula_z: "Z = (T2 - T1) / (log D1 - log D2)",
mc_dz_t1: "الحرارة T1 (°C)", mc_dz_d1: "D1 (دقيقة)", mc_dz_t2: "الحرارة T2 (°C)", mc_dz_d2: "D2 (دقيقة)",
mc_dz_result_z: "القيمة Z",
mc_dil_h3: "مخطط سلسلة التخفيف العشري",
mc_dil_sample: "حجم العينة الأولي (مل أو غ)", mc_dil_diluent: "حجم المخفف لكل أنبوب (مل)", mc_dil_count: "عدد التخفيفات",
mc_dil_tube: "أنبوب", mc_dil_factor: "العامل",
mc_mp_h3: "حاسبة تحضير بيئات الزرع",
mc_mp_conc: "التركيز المحدد (غ/ل)", mc_mp_vol: "الحجم المراد تحضيره (مل)", mc_mp_result: "الكتلة المراد وزنها",
mc_mol_h3: "حاسبة المولارية", mc_mol_formula: "الكتلة (غ) = المولارية (مول/ل) × الحجم (ل) × الكتلة المولية (غ/مول)",
mc_mol_m: "المولارية المطلوبة (مول/ل)", mc_mol_v: "الحجم (مل)", mc_mol_mm: "الكتلة المولية (غ/مول)", mc_mol_result: "الكتلة المراد وزنها",
mc_cfu_raw: "القيمة الخام: {n} CFU/g. قرّب إلى رقمين معنويين وفق ISO 7218.",
mc_mpn_offtable: "مزيج خارج الجدول القياسي",
mc_mpn_offtable_sub: "راجع جدول MPN الكامل ISO 7218 الملحق C لهذا المزيج.",
mc_mpn_combo_sub: "المزيج {key} على جدول 3 أنابيب القياسي (فاصل ثقة 95%).",
mc_plan_explain: "من أصل n={n} وحدة محللة، يمكن لحد أقصى c={c} وحدات أن تُظهر نتيجة بين m و M. لا يجوز لأي وحدة تجاوز M. عند تجاوز c وحدات غير مطابقة، تُرفض الدفعة.",
mc_dz_d_sub: "الزمن اللازم لتخفيض التعداد بمعامل 10 عند هذه الحرارة.",
mc_dil_series_label: "سلسلة التخفيف",
mc_dil_tube_label: "أنبوب {i} (10⁻{i})",
mc_dil_factor_label: "العامل: {f}",
mc_mp_result_sub: "لتحضير {vol} مل بتركيز {conc}غ/ل، زن {mass}غ من المسحوق المجفف ثم أكمل الحجم بالماء المقطر قبل التعقيم بالأوتوكلاف.",
micropedia_eyebrow: "📚 MicroPedia", micropedia_title: "مرجع مفتوح",
micropedia_sub: "بطاقات بيئات الزرع، بروتوكولات التلوين، ملخصات معايير ISO، وأسئلة QCM تدريبية.",
mped_tab_media: "بيئات الزرع", mped_tab_stain: "التلوين", mped_tab_norms: "معايير ISO", mped_tab_qcm: "اختبار QCM",
mped_media_h3: "موسوعة بيئات الزرع",
mped_media_th_name: "البيئة", mped_media_th_type: "النوع", mped_media_th_use: "الاستخدام الرئيسي", mped_media_th_comp: "التركيب الأساسي",
mped_norms_h3: "ملخص معايير ISO في علم الأحياء الدقيقة",
mped_norms_th_code: "المعيار", mped_norms_th_obj: "الهدف", mped_norms_th_domain: "المجال",
mped_stain_reading: "القراءة",
mped_qcm_reset: "إعادة الاختبار", mped_qcm_score: "النتيجة النهائية",
mped_qcm_score_text: "النتيجة النهائية: {score} / {total}",
microsteril_eyebrow: "🧴 MicroSteril", microsteril_title: "التعقيم والتطهير",
microsteril_sub: "دورات الأوتوكلاف، حاسبة تخفيف المطهرات، معايير الحرارة الجافة والأشعة فوق البنفسجية، دليل المؤشرات البيولوجية.",
ms_tab_autoclave: "أوتوكلاف", ms_tab_disinfect: "مطهرات", ms_tab_dryheat: "حرارة جافة / UV", ms_tab_indicators: "مؤشرات",
ms_auto_h3: "مرجع دورات الأوتوكلاف",
ms_auto_th_material: "المادة / الحمولة", ms_auto_th_temp: "الحرارة", ms_auto_th_time: "زمن الثبات", ms_auto_th_pressure: "الضغط",
ms_dis_h3: "حاسبة تخفيف المطهر",
ms_dis_product: "المطهر", ms_dis_stock: "التركيز الأصلي (%)", ms_dis_target: "التركيز المستهدف (%)",
ms_dis_volume: "الحجم النهائي المطلوب (مل)", ms_dis_result: "حجم المحلول الأصلي المطلوب",
ms_dis_table_h3: "مرجع المطهرات الشائعة",
ms_dis_th_name: "المنتج", ms_dis_th_conc: "تركيز الاستخدام", ms_dis_th_contact: "زمن التماس", ms_dis_th_use: "الطيف",
ms_dry_h3: "التعقيم بالحرارة الجافة (فرن Poupinel)",
ms_dry_th_temp: "الحرارة", ms_dry_th_time: "الحد الأدنى للزمن", ms_dry_th_use: "الاستخدام النموذجي",
ms_uv_h3: "التطهير الجرثومي بالأشعة فوق البنفسجية",
ms_uv_p1: "الأشعة فوق البنفسجية UV-C (254 نانومتر) تعطل الكائنات الدقيقة بإتلاف DNA/RNA. فعالة للهواء والأسطح ومعالجة المياه.",
ms_uv_th_app: "التطبيق", ms_uv_th_dose: "الجرعة النموذجية", ms_uv_th_note: "ملاحظة",
ms_ind_h3: "دليل المؤشرات البيولوجية والكيميائية",
ms_ind_th_type: "نوع المؤشر", ms_ind_th_organism: "الكائن الاختباري / الفئة", ms_ind_th_use: "يتحقق من",
fav_title: "المفضلة", fav_empty: "لا توجد مفضلات بعد. اضغط على النجمة في أي نتيجة لحفظها.",
conv_title: "محول سريع",
export_print: "تصدير / طباعة",
cheatsheet_btn: "طباعة الورقة المرجعية",
dq_badge: "تدريب سريع", dq_streak: "أيام متتالية",
dq_correct: "صحيح!", dq_wrong: "ليس تماماً.", dq_next: "السؤال التالي",
support_btn: "ادعم هذا المشروع",
support_title: "ادعم هذا المشروع",
support_sub: "يبقى MicroLab Pro مجانياً وخالياً من الإعلانات ومفتوحاً لكل طالب. إذا ساعدك الموقع، فإن أي مساهمة بسيطة تساعد في صيانته وتطويره.",
support_account: "الحساب", support_key: "المفتاح", support_name: "الاسم",
support_close: "إغلاق",
other_sites_title: "مشاريع أخرى"
}
};
let currentLang = localStorage.getItem('mlp_lang') || 'fr';
function setLang(lang) {
currentLang = lang;
localStorage.setItem('mlp_lang', lang);
const t = LANG[lang];
document.documentElement.dir = t.dir;
document.documentElement.lang = lang;
document.querySelectorAll('[data-i18n]').forEach(el => {
const key = el.getAttribute('data-i18n');
if (t[key] !== undefined) el.innerHTML = t[key];
});
document.querySelectorAll('[data-i18n-placeholder]').forEach(el => {
const key = el.getAttribute('data-i18n-placeholder');
if (t[key] !== undefined) el.setAttribute('placeholder', t[key]);
});
document.querySelectorAll('.lang-btn').forEach(b => {
b.classList.toggle('active', b.dataset.lang === lang);
});
window.dispatchEvent(new CustomEvent('langchange', { detail: lang }));
}
function initLang() {
setLang(currentLang);
}