| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777 |
- # core/translations.py
- THEMES = ["System", "Dark", "Light"]
- TRANSLATIONS = {
- "English": {
- "onboarding": {
- "step1_title": "Welcome to A.L.I.G.",
- "step1_body": "Automated Laser Image Generator converts your images to G-Code for laser engravers. Setup takes under a minute.",
- "step11_body": "Accessibility and precision: the software lets you understand and control every step of the generation process.",
- "step12_body": "Full control: adjust advanced parameters like latency and overscan for sharp, accurate engraving.",
- "step13_body": "Clear visualization: analyze your G-Code path before execution to avoid any errors.",
- "step14_body": "Simplicity: an interface designed to make the process understandable without sacrificing precision.",
- "step2_title": "Machine Configuration",
- "step2_body": "Set how A.L.I.G. sends power commands to your controller.",
- "cmd_mode_lbl": "Command mode:",
- "m67_output_lbl": "M67 output number:",
- "firing_lbl": "Firing mode:",
- "firing_hint": "-",
- "ctrl_max_lbl": "Controller max value:",
- "ctrl_max_hint": "Usually 1000 (Grbl/Smoothieware) or 100 (% based).",
- "step3_title": "Finding Your Way",
- "step3_body": "Settings are accessible from two places:",
- "ptr_settings_topbar": "Top bar — gear icon",
- "ptr_settings_card": "Left panel — Settings card",
- "ptr_calib_body": "Run Latency and LineStep calibration before your first engrave:",
- "ptr_calib_card": "Left panel — Calibration card",
- "step_home_title": "Dashboard & Updates",
- "step_home_body": "Two more buttons in the top bar:",
- "ptr_home_desc": "Home button — returns to this dashboard from any view.",
- "ptr_github_desc": "GitHub Button — track the latest updates and releases, or share your suggestions and report any issues.",
- "step_checker_title": "G-Code Checker",
- "step_checker_body": "Load any G-Code file to visualize its trajectory, check for errors and simulate the engraving before sending it to the machine.",
- "step_checker_card": "Left panel — G-Code Check card",
- "step4_title": "Available Modes",
- "step4_body": "A.L.I.G. offers several modes. Grayed-out modes are coming soon.",
- "mode_raster": "Raster — engrave images with full grayscale control.",
- "mode_calib": "Calibration — laser latency, line step, overscan.",
- "mode_parser": "G-Code Parser — visualize and check existing files.",
- "mode_dither": "Dithering — Floyd-Steinberg, Bayer algorithms. Coming soon.",
- "mode_infill": "Infill — vector cutting and outline engraving. Coming soon.",
- "finish_note": "All set — click Finish to start.",
- "btn_skip": "Skip",
- "btn_prev": "Previous",
- "btn_next": "Next",
- "btn_finish": "Finish",
- "step_of": "Step {0} of {1}"
- },
- "settings": {
- "title": "SETTINGS",
- "sec_appearance": "SOFTWARE & INTERFACE",
- "label_theme": "Appearance Mode:",
- "label_lang": "Language:",
- "sec_gcode": "G-CODE & PROTOCOL",
- "label_cmd_mode": "Laser Command Mode:",
- "label_output_e": "M67 Output Number (E):",
- "label_ctrl_max": "Controller Max Value:",
- "label_firing": "Firing Mode:",
- "sec_hardware": "HARDWARE BEHAVIOR",
- "label_latency": "Laser Latency (ms):",
- "label_overscan": "Default Overscan (mm):",
- "hor_linestep": "Horizontal linestep (mm):",
- "ver_linestep": "Vertical linestep (mm):",
- "sec_scripts": "SYSTEM SCRIPTS",
- "label_header": "Global Header G-Code",
- "label_footer": "Global Footer G-Code",
- "btn_save": "SAVE SETTINGS",
- "msg_success": "Configuration saved successfully!",
- "msg_error_num": "Please verify that all numeric fields contain valid numbers.",
- "enable_thumbnails": "Enable Thumbnails",
- "maintenance_data": "MAINTENANCE & DATA",
- "erase_thumbnails": "Erase thumbnails",
- "erase_thumbnails_confirm": "Erase thumbnails ?",
- "erase_thumbnails_done": "Thumbnails erased !",
- "reset_all_parameters": "Reset all parameters",
- "reset_all_parameters_confirm": "Sure ?",
- "reset_all_parameters_done": "Reset done !",
- "reset_all_parameters_error": "Reset error",
- "label_extension": "Export Extension:"
- },
- "dashboard": {
- "raster_title": "IMAGE RASTERING",
- "raster_desc": "Grayscale Photo Engraving.",
- "dithering_title": "DITHERING MODE",
- "dithering_desc": "Converts grayscale into black and white patterns (1-bit). Best for glass or metal engraving.",
- "infill_title": "VECTOR INFILL",
- "infill_desc": "Fill vector paths with G-Code patterns.",
- "calibration_title": "CALIBRATION",
- "calibration_desc": "Run tests for latency, speed and power to optimize your machine settings.",
- "parser_title": "GCODE CHECK",
- "parser_desc": "Use the Gcode parser to check any 2D GcodeFile.\n(Coming Soon)",
- "settings_title": "SETTINGS",
- "settings_desc": "Configure G-Code commands, hardware offsets, and global laser limits.",
- "no_history": "No recent generations found",
- "history": "Recent Generations",
- "machine_stats": "Machine Statistics",
- "lines_generated": "Lines Generated",
- "gcode_saved": "G-Codes Saved",
- "total_engraving_time": "Total Engraving Time"
- },
- "calibration": {
- "sidebar_title": "CALIBRATION TESTS",
- "default_title": "Select a test",
- "default_desc": "Click on a calibration card on the left to display detailed instructions and prepare the laser generation.",
- "btn_prepare": "PREPARE TEST",
- "latency_title": "LASER LATENCY TEST",
- "latency_short": "Test beam alignment & internal delays.",
- "latency_long": "This test calibrates internal system delays by drawing a central vertical reference line and alternating horizontal lines on both sides. \n\nGoal:\nIf the horizontal lines stop exactly on the vertical line, your latency setting is perfect.\n\nInstructions:\n1. The test uses a 30x10mm area with the origin (G54) at the center.\n2. Choose your feedrate. Start with 0 if you are calibrating for the first time.\n3. Observe the junction points: \n - Gap (too short): Move towards a more negative value (ex: -10 to -15).\n - Overlap (too long): Move towards zero (ex: -10 to -5).\n4. Repeat until the horizontal strokes perfectly 'kiss' the vertical reference.",
- "latency_calculator": "Latency Calculator (from measurement):",
- "feedrate_calc": "Feedrate (mm/min):",
- "latency_calc": "Latency (ms):",
- "power_pct": "Power (%):",
- "measured_offset": "Measured Offset (mm):",
- "latency_results": "Result:",
- "apply_save": "Apply & Save",
- "linestep_title": "LINE STEP TEST",
- "linestep_short": "Check your ideal line step setting to avoid white stripes or overburning",
- "linestep_long": "This test is designed to optimize your scanning density (DPI/Line Interval). If the interval is too large, gaps will appear between engraving lines (white stripes). If it is too small, excessive overlap will occur, causing overburning, loss of fine detail, and unnecessary material stress. Find the value where lines perfectly touch without overlapping.",
- "power_title": "(!WIP!) POWER SCALE GRID",
- "power_short": "Intensity ramp from 0% to 100%.",
- "power_long": "Generates 10 squares with varying gray levels.\n\nGoal:\n- Observe how your material reacts to different power percentages.\n- Identify the threshold where the material starts to mark.\n- Determine the maximum effective black level.",
- "btn_generate": "Generate G-Code...",
- "overscan_title": "OVERSCAN CALCULATOR",
- "overscan_short": "Calculate the ideal overscan from your machine acceleration.",
- "overscan_long": "The overscan (premove) is the distance the laser head travels before the engraving area to reach the target speed before firing.\n\nFormula: overscan = v² / (2 × a)\n v = feedrate in mm/s\n a = max machine acceleration in mm/s²\n\nInstructions:\n1. Enter your engraving feedrate.\n2. Enter your machine's maximum acceleration (check your controller settings).\n3. The calculator returns the minimum required overscan with a 20% safety margin.\n4. Save the result directly as the Premove value in machine settings.",
- "max_accel": "Max Acceleration (mm/s²):",
- "overscan_calculator": "Overscan Calculator:",
- "overscan_formula": "Formula: overscan = (v²/(2a) + |lat_mm|) × 1.2",
- "overscan_result": "Recommended overscan:",
- "overscan_current": "Current premove:",
- "overscan_calc_btn": "Calculate",
- "overscan_save_btn": "Save as Premove",
- "overscan_saved": "Saved!",
- "error_title": "Error"
- },
- "topbar": {
- "support": "Support the project",
- "credits": "Developed by Alexandre 'MoMo'",
- "dashboard": "DASHBOARD",
- "settings": "SETTINGS",
- "raster": "Raster engraving",
- "simulation": "G-Code Simulation",
- "calibration": "Machine Calibration"
- },
- "common": {
- "loading": "Loading…",
- "import_profile": "IMPORT PROFILE",
- "export_profile": "EXPORT PROFILE",
- "geometry": "Geometry",
- "image": "Image",
- "laser": "Laser",
- "Gcode": "G-code",
- "target_width" :"Target Width (mm)",
- "simulate_gcode": "SIMULATE",
- "line_step": "Line Step / Resolution (mm)",
- "force_width": "Force Exact Width",
- "dpi_resolution": "Resolution (DPI)",
- "raster_mode": "Scanning Direction",
- "origin_point": "Origin Point",
- "custom_offset_x": "Custom Offset X (mm)",
- "custom_offset_y": "Custom Offset Y (mm)",
- "contrast": "Contrast Correction",
- "gamma": "Gamma Correction",
- "thermal": "Thermal Correction",
- "invert_color": "Invert Relief (Black / White)",
- "feedrate": "Feedrate (F)",
- "overscan": "Overscan (mm)",
- "min_power": "Min Power (%)",
- "max_power": "Max Power (%)",
- "laser_latency": "Laser Latency (ms)",
- "gray_steps": "Grayscale Steps",
- "cmd_mode": "Laser Command Mode:",
- "m67_output": "M67 Output (E):",
- "choose_image": "PLEASE SELECT AN IMAGE\nTO BEGIN",
- "mem_warn_hard": "⚠ Matrix too large ({total:.1f}M px) — image was rescaled. Try reducing DPI (e.g. {dpi_sug} instead of {dpi_now}).",
- "mem_warn_soft": "⚠ Large matrix ({total:.1f}M px) — may be slow. Consider reducing DPI (e.g. {dpi_sug} instead of {dpi_now}).",
- "ctrl_max_value": "Controller Max Value:",
- "firing_mode": "Firing Mode:",
- "gcode_header": "Header G-Code",
- "at_start": " (at start)",
- "gcode_footer": "Footer G-Code",
- "before_m30": " (before M30)",
- "point_fram_options": "Pointing & Framing options:",
- "pause_command": "Pause Command:",
- "void_pause": "(empty for no pause)",
- "origin_pointing": "Point Origin (Low power pointer)",
- "framing_option": "Framing",
- "framing_power": "Frame/Pointing Power (%):",
- "framing_ratio": "Framing Speed Ratio:",
- "hint_power": "(Keep low to avoid marking)",
- "confirm_title": "Confirmation",
- "confirm_subtitle": "This action is irreversible.",
- "btn_cancel": "Cancel",
- "btn_confirm": "Confirm",
- "horizontal": "Horizontal",
- "vertical": "Vertical",
- "target_height": "Target Height",
- "force_height": "Force Exact Height",
- "target_width": "Target Width",
- "force_width": "Force Exact Width",
- "select_image": "SELECT IMAGE",
- "select_output": "SELECT OUTPUT DIRECTORY",
- "laser_power_level": "Power Level (%)",
- "power_distribution": "POWER DISTRIBUTION",
- "power_value": "Power Value (%)",
- "power_pct": "Power Value (%)",
- "global_machine_params": "GLOBAL MACHINE PARAMETERS",
- "no_global_header": "(No Global Header)",
- "no_global_footer": "(No Global Footer)",
- "Distribution_label": "Distribution (%)",
- "reset_view": "Reset View"
- },
- "origin_options": {
- "Lower-Left": "Lower-Left",
- "Upper-Left": "Upper-Left",
- "Lower-Right": "Lower-Right",
- "Upper-Right": "Upper-Right",
- "Center": "Center",
- "Custom": "Custom"
- },
- "stats": {
- "real_dims": "REAL DIMENSIONS",
- "est_time": "ESTIMATED TIME",
- "file_size": "FILE SIZE",
- "matrix_size": "MATRIX SIZE",
- "scan_step": "SCAN STEP",
- "line_step": "LINE STEP",
- "power_distribution": "Power Distribution",
- "power_value": "Power (%)",
- "pixel_count": "Pixels (%)"
- },
- "simulation": {
- "path_sim": "PATH SIMULATION",
- "final_size": "Final Size (mm):",
- "output_file": "Output File:",
- "power_range": "Power Range (%)",
- "live_gcode": "LIVE G-CODE",
- "active_options": "Active Options",
- "quick_export": "QUICK EXPORT",
- "export_as": "EXPORT AS...",
- "cancel": "CANCEL",
- "speed": "Speed:",
- "progress": "Progress:",
- "time" : "Time:",
- "pointing_opt": "POINTING",
- "framing_opt": "FRAMING",
- "simulate_latency": "SIMULATE LATENCY",
- "select_gcode": "SELECT A GCODE FILE",
- "save_success" : "G-Code saved:",
- "save_failed": "Save failed:",
- "no_gcode": "No G-Code to save.",
- "generating": "Generating G-Code & Trajectory…",
- "open_file": "Open G-Code file…",
- "no_file": "No file loaded",
- "reset_zoom": "Reset zoom / pan",
- "parsing": "Parsing G-Code…",
- "error_title": "Error",
- "error_read_file": "Cannot read file:",
- "parse_error_title": "Parse Error",
- "line_step_lbl": "Line step (mm):",
- "open_gcode_hint": "Open a G-Code file to start"
- }
- },
- "Français": {
- "onboarding": {
- "step1_title": "Bienvenue dans A.L.I.G.",
- "step1_body": "A.L.I.G. convertit vos images en G-Code pour graveurs laser. La configuration prend moins d'une minute.",
- "step11_body": "Alliant accessibilité et technicité, le logiciel vous permet de comprendre et de contrôler chaque étape de la génération.",
- "step12_body": "Maîtrise totale : ajustez des paramètres avancés comme la latence et l'overscan pour une gravure nette.",
- "step13_body": "Visualisation claire : analysez votre trajet G-Code avant l'exécution pour éviter toute erreur.",
- "step14_body": "Simplicité : une interface pensée pour rendre le processus compréhensible, sans sacrifier la précision.",
- "step2_title": "Configuration machine",
- "step2_body": "Définissez comment A.L.I.G. envoie les commandes de puissance à votre contrôleur.",
- "cmd_mode_lbl": "Mode de commande :",
- "m67_output_lbl": "Numéro de sortie M67 :",
- "firing_lbl": "Mode d'allumage :",
- "firing_hint": "-",
- "ctrl_max_lbl": "Valeur max contrôleur :",
- "ctrl_max_hint": "Généralement 1000 (Grbl/Smoothieware) ou 100 (basé sur %).",
- "step3_title": "Se repérer",
- "step3_body": "Les réglages sont accessibles depuis deux endroits :",
- "ptr_settings_topbar": "Barre supérieure — icône engrenage",
- "ptr_settings_card": "Panneau gauche — carte Réglages",
- "ptr_calib_body": "Effectuez les tests Latence et LineStep avant la première gravure :",
- "ptr_calib_card": "Panneau gauche — carte Calibrage",
- "step_home_title": "Tableau de bord & Mises à jour",
- "step_home_body": "Deux autres boutons dans la barre supérieure :",
- "ptr_home_desc": "Bouton Home — revient sur ce tableau de bord depuis n'importe quelle vue.",
- "ptr_github_desc": "Bouton GitHub — suivez les dernières mises à jour et versions, partagez vos suggestions ou signalez d'éventuels problèmes.",
- "step_checker_title": "Vérificateur G-Code",
- "step_checker_body": "Chargez un fichier G-Code pour visualiser sa trajectoire, vérifier les erreurs et simuler la gravure avant envoi à la machine.",
- "step_checker_card": "Panneau gauche — carte Vérification G-Code",
- "step4_title": "Modes disponibles",
- "step4_body": "A.L.I.G. propose plusieurs modes. Les modes grisés sont à venir.",
- "mode_raster": "Raster — gravure d'images avec contrôle complet des niveaux de gris.",
- "mode_calib": "Calibrage — latence laser, pas de ligne, overscan.",
- "mode_parser": "Parseur G-Code — visualiser et vérifier des fichiers existants.",
- "mode_dither": "Dithering — algorithmes Floyd-Steinberg, Bayer. Bientôt.",
- "mode_infill": "Remplissage — gravure et découpe vectorielle. Bientôt.",
- "finish_note": "Tout est prêt — cliquez sur Terminer pour commencer.",
- "btn_skip": "Ignorer",
- "btn_prev": "Précédent",
- "btn_next": "Suivant",
- "btn_finish": "Terminer",
- "step_of": "Étape {0} sur {1}"
- },
- "settings": {
- "title": "RÉGLAGES",
- "sec_appearance": "LOGICIEL & INTERFACE",
- "label_theme": "Mode d'apparence :",
- "label_lang": "Langue :",
- "sec_gcode": "G-CODE & PROTOCOLE",
- "label_cmd_mode": "Mode commande laser :",
- "label_output_e": "Sortie M67 (E) :",
- "label_ctrl_max": "Valeur max contrôleur :",
- "label_firing": "Mode d'allumage :",
- "sec_hardware": "COMPORTEMENT MATÉRIEL",
- "label_latency": "Latence laser (ms) :",
- "label_overscan": "Overscan par défaut (mm) :",
- "hor_linestep": "Pas horizontal (mm) :",
- "ver_linestep": "Pas vertical (mm) :",
- "sec_scripts": "SCRIPTS SYSTÈME",
- "label_header": "G-Code d'en-tête global",
- "label_footer": "G-Code de fin global",
- "btn_save": "SAUVEGARDER",
- "msg_success": "Configuration enregistrée avec succès !",
- "msg_error_num": "Veuillez vérifier que les champs numériques sont valides.",
- "enable_thumbnails": "Autoriser la création de vignettes",
- "maintenance_data": "MAINTENANCE & DONNÉES",
- "erase_thumbnails": "Effacer les vignettes",
- "erase_thumbnails_confirm": "Effacer les vignettes ?",
- "erase_thumbnails_done": "Vignettes & Stats effacées !",
- "reset_all_parameters": "Réinitialiser tous les paramètres",
- "reset_all_parameters_confirm": "Réinitialiser tout ?",
- "reset_all_parameters_done": "Configuration réinitialisée !",
- "reset_all_parameters_error": "Erreur durant la réinitialisation",
- "label_extension": "Extension de sortie :"
- },
- "dashboard": {
- "raster_title": "GRAVURE RASTER",
- "raster_desc": "Gravure de photos en niveaux de gris.",
- "dithering_title": "DITHERING (TRAMAGE)",
- "dithering_desc": "Convertit les nuances de gris en points noirs (1-bit). Idéal pour les gravures sur verre ou métal.",
- "infill_title": "REMPLISSAGE VECTORIEL",
- "infill_desc": "Remplit les tracés vectoriels avec des motifs de G-Code (hachurage).",
- "calibration_title": "CALIBRAGE",
- "calibration_desc": "Réglage des décalages et de la puissance.",
- "parser_title": "Vérificateur de GCODE",
- "parser_desc": "Utilisez le parseur G-code pour vérifier n'importe quel fichier G-code 2D.\n(Prochainement)",
- "settings_title": "REGLAGES",
- "settings_desc": "Configurez les commandes G-Code, les décalages matériels et les limites globales du laser.",
- "no_history": "Aucune génération récente",
- "history": "Générations récentes",
- "machine_stats": "Statistiques",
- "lines_generated": "Lignes générées",
- "gcode_saved": "G-Codes sauvegardés",
- "total_engraving_time": "Temps total de gravure"
- },
- "calibration": {
- "sidebar_title": "TESTS DE CALIBRAGE",
- "default_title": "Sélectionnez un test",
- "default_desc": "Cliquez sur une carte de calibrage à gauche pour afficher les instructions détaillées et préparer la génération laser.",
- "btn_prepare": "PRÉPARER LE TEST",
- "latency_title": "TEST DE LATENCE LASER",
- "latency_short": "Teste l'alignement du faisceau et les délais internes.",
- "latency_long": "Ce test calibre les délais internes du système en traçant une ligne de référence verticale centrale et des lignes horizontales alternées de chaque côté.\n\nObjectif :\nSi les lignes horizontales s'arrêtent exactement sur la ligne verticale, votre réglage de latence est parfait.\n\nInstructions :\n1. Le test utilise une zone de 30x10mm avec l'origine (G54) au centre.\n2. Choisissez votre vitesse. Commencez à 0 si vous calibrez pour la première fois.\n3. Observez les points de jonction :\n - Écart (trop court) : Allez vers une valeur plus négative (ex: -10 vers -15).\n - Chevauchement (trop long) : Allez vers zéro (ex: -10 vers -5).\n4. Répétez jusqu'à ce que les traits horizontaux viennent 'effleurer' parfaitement la référence verticale.",
- "latency_calculator": "Calculatrice de latence :",
- "feedrate_calc": "Vitesse d'avance (mm/min):",
- "latency_calc": "Latence (ms):",
- "power_pct": "Puissance (%):",
- "measured_offset": "Décalage mesuré (mm):",
- "latency_results": "Resultat :",
- "apply_save": "Sauvegarder",
- "linestep_title": "TEST D'INTERVALLE DE LIGNES",
- "linestep_short": "Déterminez le réglage idéal pour éviter les bandes blanches ou les brûlures excessives",
- "linestep_long": "Ce test permet d'optimiser la densité du balayage (DPI). Un intervalle trop grand laissera apparaître des lignes vides (bandes blanches), tandis qu'un intervalle trop petit entraînera un chevauchement excessif, brûlant inutilement la matière et perdant les détails.",
- "power_title": "(!WIP!) GRILLE D'ÉCHELLE DE PUISSANCE",
- "power_short": "Rampe d'intensité de 0% à 100%.",
- "power_long": "Génère 10 carrés avec des niveaux de gris variables.\n\nObjectif :\n- Observer comment votre matériau réagit aux différents pourcentages de puissance.\n- Identifier le seuil où le matériau commence à être marqué.\n- Déterminer le niveau de noir maximal effectif.",
- "btn_generate": "Générer le G-code...",
- "overscan_title": "CALCULATEUR D'OVERSCAN",
- "overscan_short": "Calculez l'overscan idéal selon l'accélération de votre machine.",
- "overscan_long": "L'overscan (premove) est la distance parcourue par la tête laser avant la zone de gravure pour atteindre la vitesse cible avant le déclenchement.\n\nFormule : overscan = v² / (2 × a)\n v = vitesse d'avance en mm/s\n a = accélération maximale de la machine en mm/s²\n\nInstructions :\n1. Saisissez votre vitesse de gravure.\n2. Entrez l'accélération maximale de votre machine (voir paramètres du contrôleur).\n3. Le calculateur retourne l'overscan minimal requis avec une marge de sécurité de 20%.\n4. Sauvegardez directement la valeur comme Premove dans les réglages machine.",
- "max_accel": "Accélération max (mm/s²):",
- "overscan_calculator": "Calculateur d'overscan :",
- "overscan_formula": "Formule : overscan = (v²/(2a) + |lat_mm|) × 1.2",
- "overscan_result": "Overscan recommandé :",
- "overscan_current": "Premove actuel :",
- "overscan_calc_btn": "Calculer",
- "overscan_save_btn": "Sauvegarder comme Premove",
- "overscan_saved": "Sauvegardé !",
- "error_title": "Erreur"
- },
- "topbar": {
- "support": "Soutenir le projet",
- "credits": "Développé par Alexandre 'MoMo'",
- "dashboard": "Tableau de bord",
- "settings": "Réglages",
- "raster": "Gravure en boustrophédon",
- "simulation": "Simulation de G-Code",
- "calibration": "Calibrage machine"
- },
- "common": {
- "loading": "Chargement…",
- "import_profile": "Importer un profil",
- "export_profile": "Exporter un profil",
- "geometry": "Géometrie",
- "image": "Image",
- "laser": "Laser",
- "Gcode": "G-code",
- "target_width" :"Largeur cible (mm)",
- "simulate_gcode": "SIMULER",
- "line_step": "Résolution inter-lignes (mm)",
- "force_width": "Forcer largeur exacte",
- "dpi_resolution": "Résolution (DPI)",
- "raster_mode": "Sens de déplacement",
- "origin_point": "Origine",
- "custom_offset_x": "Décalage origine X (mm)",
- "custom_offset_y": "Décalage origine Y (mm)",
- "contrast": "Correction de contraste",
- "gamma": "Correction gamma",
- "thermal": "Correction thermique",
- "invert_color": "Inversion de couleurs (noir / blanc)",
- "feedrate": "Vitesse d'avance (F)",
- "overscan": "Dépassement (mm)",
- "min_power": "Puissance Min (%)",
- "max_power": "Puissance Max (%)",
- "laser_latency": "Latence Laser (ms)",
- "gray_steps": "Niveaux de gris",
- "cmd_mode": "Mode de commande laser :",
- "m67_output": "Sortie M67 (E) :",
- "choose_image": "VEUILLEZ SELECTIONNER UNE IMAGE\nPOUR COMMENCER",
- "mem_warn_hard": "⚠ Matrice trop grande ({total:.1f}M px) — l'image a été redimensionnée. Essayez de baisser le DPI (ex. {dpi_sug} au lieu de {dpi_now}).",
- "mem_warn_soft": "⚠ Grande matrice ({total:.1f}M px) — traitement peut être lent. Pensez à baisser le DPI (ex. {dpi_sug} au lieu de {dpi_now}).",
- "ctrl_max_value": "Pleine échelle :",
- "firing_mode": "Mode de commande :",
- "gcode_header": "En-tête de G-Code",
- "at_start": " (au début)",
- "gcode_footer": "Pied de G-Code",
- "before_m30": " (avant M30)",
- "point_fram_options": "Option de pointage & cadrage :",
- "pause_command": "Commande de pause :",
- "void_pause": "(vide = pas de pause)",
- "origin_pointing": "Pointage d'origine",
- "framing_option": "Encadrement",
- "framing_power": "Puisance encadrement/pointage (%)",
- "framing_ratio": "Ratio de vitesse d'encadrement :",
- "hint_power": "(Laisser bas pour éviter le marquage)",
- "confirm_title": "Confirmation",
- "confirm_subtitle": "Cette action est irréversible.",
- "btn_cancel": "Annuler",
- "btn_confirm": "Confirmer",
- "horizontal": "Horizontal",
- "vertical": "Vertical",
- "target_height": "Hauteur cible",
- "force_height": "Forcer hauteur exacte",
- "target_width": "Largeur cible",
- "force_width": "Forcer largeur exacte",
- "select_image": "SELECTIONNER UNE IMAGE",
- "select_output": "SELECTIONNER UN DOSSIER DE SORTIE",
- "laser_power_level": "puissance (%)",
- "power_distribution": "REPARTITION DE PUISSANCE",
- "power_value": "Puissance (%)",
- "global_machine_params": "PARAMETRES GLOBAUX",
- "no_global_header": "(Pas d'entête global)",
- "no_global_footer": "(Pas de pied de page global)",
- "Distribution_label": "Répartition (%)",
- "reset_view": "Réinitialiser la vue"
- },
- "origin_options": {
- "Lower-Left": "Bas-Gauche",
- "Upper-Left": "Haut-Gauche",
- "Lower-Right": "Bas-Droite",
- "Upper-Right": "Haut-Droite",
- "Center": "Centre",
- "Custom": "Personnalisé"
- },
- "stats": {
- "real_dims": "DIMENSIONS RÉELLES",
- "est_time": "TEMPS ESTIMÉ",
- "file_size": "TAILLE DU FICHIER",
- "matrix_size": "MATRICE",
- "scan_step": "PAS DE SCAN",
- "line_step": "PAS DE LIGNE",
- "power_distribution": "Distribution de puissance",
- "power_value": "Puissance (%)",
- "pixel_count": "Pixels (%)"
- },
- "simulation": {
- "path_sim": "SIMULATION",
- "final_size": "Taille finale (mm):",
- "output_file": "Fichier de sortie:",
- "power_range": "Plage de puissance (%)",
- "live_gcode": "G-CODE de sortie",
- "active_options": "Options actives",
- "quick_export": "EXPORT RAPIDE",
- "export_as": "EXPORTER VERS...",
- "cancel": "ANNULER",
- "speed": "Vitesse :",
- "progress": "Progression :",
- "time" : "Temps :",
- "pointing_opt": "POINTAGE",
- "framing_opt": "ENCADREMENT",
- "simulate_latency": "SIMULATER LA LATENCE",
- "select_gcode": "SELECTIONNER UN FICHIER GCODE",
- "save_success" : "G-Code sauvegardé :",
- "save_failed": "Problème durant la sauvegarde :",
- "no_gcode": "G-code vide.",
- "generating": "Génération du G-code et du rendu…",
- "open_file": "Ouvrir un fichier G-Code…",
- "no_file": "Aucun fichier chargé",
- "reset_zoom": "Réinitialiser zoom / déplacement",
- "parsing": "Analyse du G-Code…",
- "error_title": "Erreur",
- "error_read_file": "Impossible de lire le fichier :",
- "parse_error_title": "Erreur d'analyse",
- "line_step_lbl": "Pas de ligne (mm) :",
- "open_gcode_hint": "Ouvrez un fichier G-Code pour commencer"
- }
- },
- "Deutsch": {
- "onboarding": {
- "step1_title": "Willkommen bei A.L.I.G.",
- "step1_body": "A.L.I.G. wandelt Bilder in G-Code für Lasergraveure um. Die Einrichtung dauert weniger als eine Minute.",
- "step11_body": "Zugänglichkeit und Präzision: die Software lässt Sie jeden Schritt der Generierung verstehen und steuern.",
- "step12_body": "Volle Kontrolle: Passen Sie erweiterte Parameter wie Latenz und Overscan für scharfe Gravuren an.",
- "step13_body": "Klare Visualisierung: Analysieren Sie Ihren G-Code-Pfad vor der Ausführung, um Fehler zu vermeiden.",
- "step14_body": "Einfachheit: eine Oberfläche, die den Prozess verständlich macht, ohne Präzision zu opfern.",
- "step2_title": "Maschinenkonfiguration",
- "step2_body": "Legen Sie fest, wie A.L.I.G. Leistungsbefehle an Ihren Controller sendet.",
- "cmd_mode_lbl": "Befehlsmodus:",
- "m67_output_lbl": "M67-Ausgangsnummer:",
- "firing_lbl": "Zündmodus:",
- "firing_hint": "-",
- "ctrl_max_lbl": "Controller-Maximalwert:",
- "ctrl_max_hint": "Normalerweise 1000 (Grbl/Smoothieware) oder 100 (%-basiert).",
- "step3_title": "Orientierung",
- "step3_body": "Einstellungen sind an zwei Stellen zugänglich:",
- "ptr_settings_topbar": "Topbar — Zahnrad-Symbol",
- "ptr_settings_card": "Linkes Panel — Einstellungen-Karte",
- "ptr_calib_body": "Führen Sie Latenz- und LineStep-Tests vor dem ersten Gravieren durch:",
- "ptr_calib_card": "Linkes Panel — Kalibrierung-Karte",
- "step_home_title": "Dashboard & Updates",
- "step_home_body": "Zwei weitere Schaltflächen in der Topbar:",
- "ptr_home_desc": "Home-Schaltfläche — kehrt von jeder Ansicht zum Dashboard zurück.",
- "ptr_github_desc": "GitHub-Button — verfolgen Sie die neuesten Updates und Versionen oder teilen Sie Ihre Vorschläge und melden Sie mögliche Probleme.",
- "step_checker_title": "G-Code-Prüfer",
- "step_checker_body": "Laden Sie eine G-Code-Datei, um die Trajektorie zu visualisieren, Fehler zu prüfen und die Gravur vor dem Senden zu simulieren.",
- "step_checker_card": "Linkes Panel — G-Code-Prüfung-Karte",
- "step4_title": "Verfügbare Modi",
- "step4_body": "A.L.I.G. bietet mehrere Modi. Ausgegraute Modi kommen bald.",
- "mode_raster": "Raster — Bildgravur mit voller Graustufenkontrolle.",
- "mode_calib": "Kalibrierung — Laserlatenz, Zeilenabstand, Overscan.",
- "mode_parser": "G-Code-Parser — vorhandene Dateien visualisieren und prüfen.",
- "mode_dither": "Dithering — Floyd-Steinberg, Bayer-Algorithmen. Demnächst.",
- "mode_infill": "Füllung — Vektor-Gravur und -Schneiden. Demnächst.",
- "finish_note": "Alles bereit — klicken Sie auf Fertig zum Starten.",
- "btn_skip": "Überspringen",
- "btn_prev": "Zurück",
- "btn_next": "Weiter",
- "btn_finish": "Fertig",
- "step_of": "Schritt {0} von {1}"
- },
- "settings": {
- "title": "EINSTELLUNGEN",
- "sec_appearance": "SOFTWARE & OBERFLÄCHE",
- "label_theme": "Erscheinungsbild:",
- "label_lang": "Sprache:",
- "sec_gcode": "G-CODE & PROTOKOLL",
- "label_cmd_mode": "Laser-Befehlsmodus:",
- "label_output_e": "M67 Ausgangsnummer (E):",
- "label_ctrl_max": "Controller Max-Wert:",
- "label_firing": "Zündmodus:",
- "sec_hardware": "HARDWARE-VERHALTEN",
- "label_latency": "Laser-Latenz (ms):",
- "label_overscan": "Standard-Overscan (mm):",
- "sec_scripts": "SYSTEM-SKRIPTE",
- "label_header": "Globaler Header G-Code",
- "label_footer": "Globaler Footer G-Code",
- "btn_save": "EINSTELLUNGEN SPEICHERN",
- "msg_success": "Konfiguration erfolgreich gespeichert!",
- "msg_error_num": "Bitte überprüfen Sie, ob alle numerischen Felder gültige Zahlen enthalten.",
- "enable_thumbnails": "Miniaturansichten aktivieren",
- "maintenance_data": "WARTUNG & DATEN",
- "erase_thumbnails": "Miniaturansichten löschen",
- "erase_thumbnails_confirm": "Miniaturansichten löschen?",
- "erase_thumbnails_done": "Miniaturansichten & Statistiken gelöscht!",
- "reset_all_parameters": "Alle Parameter zurücksetzen",
- "reset_all_parameters_confirm": "Alles zurücksetzen?",
- "reset_all_parameters_done": "Konfiguration zurückgesetzt!",
- "reset_all_parameters_error": "Fehler beim Zurücksetzen",
- "label_extension": "Export-Dateiendung:"
- },
- "dashboard": {
- "raster_title": "BILD-RASTERUNG",
- "raster_desc": "Graustufen-Fotogravur.",
- "dithering_title": "DITHERING-MODUS",
- "dithering_desc": "Konvertiert Graustufen in Schwarz-Weiß-Muster (1-Bit). Bestens geeignet für Glas- oder Metallgravur.",
- "infill_title": "VEKTOR-FÜLLUNG",
- "infill_desc": "Vektorpfade mit G-Code-Mustern füllen.",
- "calibration_title": "KALIBRIERUNG",
- "calibration_desc": "Tests für Latenz, Geschwindigkeit und Leistung zur Optimierung der Maschineneinstellungen.",
- "parser_title": "GCODE PRÜFUNG",
- "parser_desc": "G-Code Parser zur Überprüfung von 2D G-Code-Dateien.\n(Demnächst verfügbar)",
- "settings_title": "EINSTELLUNGEN",
- "settings_desc": "G-Code-Befehle, Hardware-Offsets und globale Laser-Limits konfigurieren.",
- "no_history": "Keine aktuellen Generationen gefunden",
- "history": "Aktuelle Generationen",
- "machine_stats": "Maschinenstatistik",
- "lines_generated": "Generierte Zeilen",
- "gcode_saved": "Gespeicherte G-Codes",
- "total_engraving_time": "Gesamtgravurzeit"
- },
- "calibration": {
- "sidebar_title": "KALIBRIERUNGSTESTS",
- "default_title": "Test auswählen",
- "default_desc": "Klicken Sie links auf eine Kalibrierungskarte, um Details anzuzeigen und die Lasergenerierung vorzubereiten.",
- "btn_prepare": "TEST VORBEREITEN",
- "latency_title": "LASER-LATENZ-TEST",
- "latency_short": "Strahlausrichtung & interne Verzögerungen testen.",
- "latency_long": "Dieser Test kalibriert interne Systemverzögerungen, indem eine zentrale vertikale Referenzlinie und abwechselnde horizontale Linien auf beiden Seiten gezeichnet werden.\n\nZiel:\nWenn die horizontalen Linien exakt an der vertikalen Linie stoppen, ist Ihre Latenzeinstellung perfekt.\n\nAnweisungen:\n1. Der Test nutzt einen 30x10mm Bereich mit dem Ursprung (G54) in der Mitte.\n2. Vorschub wählen. Starten Sie bei 0 für die erste Kalibrierung.\n3. Verbindungspunkte beobachten:\n - Lücke (zu kurz): Zu negativerem Wert gehen (z.B. -10 zu -15).\n - Überlappung (zu lang): Richtung Null gehen (z.B. -10 zu -5).\n4. Wiederholen, bis die horizontalen Striche die vertikale Referenz perfekt berühren.",
- "latency_calculator": "Latenz-Rechner:",
- "feedrate_calc": "Vorschub (mm/min):",
- "latency_calc": "Latenz (ms):",
- "power_pct": "Leistung (%):",
- "measured_offset": "Gemessener Versatz (mm):",
- "latency_results": "Ergebnis:",
- "apply_save": "Anwenden & Speichern",
- "linestep_title": "ZEILENSCHRITT-TEST",
- "linestep_short": "Ideale Zeilenabstand-Einstellung prüfen, um weiße Streifen oder Verbrennungen zu vermeiden",
- "linestep_long": "Optimiert die Scandichte (DPI/Zeilenintervall). Ist das Intervall zu groß, entstehen Lücken (weiße Streifen). Ist es zu klein, führt Überlappung zu Verbrennungen und Detailverlust.",
- "power_title": "(!WIP!) LEISTUNGSSKALA-GITTER",
- "power_short": "Intensitätsrampe von 0% bis 100%.",
- "power_long": "Erzeugt 10 Quadrate mit variierenden Graustufen.\n\nZiel:\n- Reaktion des Materials auf verschiedene Leistungsprozentsätze beobachten.\n- Schwellenwert für Materialmarkierung identifizieren.\n- Maximalen effektiven Schwarzpegel bestimmen.",
- "btn_generate": "G-Code generieren...",
- "overscan_title": "OVERSCAN-RECHNER",
- "overscan_short": "Idealen Overscan aus der Maschinenbeschleunigung berechnen.",
- "overscan_long": "Der Overscan (Premove) ist die Strecke, die der Laserkopf vor dem Gravurbereich zurücklegt, um die Zielgeschwindigkeit zu erreichen.\n\nFormel: Overscan = v² / (2 × a)\n v = Vorschub in mm/s\n a = maximale Beschleunigung in mm/s²\n\nAnweisungen:\n1. Gravurvorschub eingeben.\n2. Maximale Beschleunigung eingeben (Controller-Einstellungen prüfen).\n3. Das Tool berechnet den minimalen Overscan mit 20% Sicherheitsmarge.\n4. Ergebnis direkt als Premove in den Maschineneinstellungen speichern.",
- "max_accel": "Max. Beschleunigung (mm/s²):",
- "overscan_calculator": "Overscan-Rechner:",
- "overscan_formula": "Formel: Overscan = (v²/(2a) + |lat_mm|) × 1.2",
- "overscan_result": "Empfohlener Overscan:",
- "overscan_current": "Aktueller Premove:",
- "overscan_calc_btn": "Berechnen",
- "overscan_save_btn": "Als Premove speichern",
- "overscan_saved": "Gespeichert!",
- "error_title": "Fehler"
- },
- "topbar": {
- "support": "Projekt unterstützen",
- "credits": "Entwickelt von Alexandre 'MoMo'",
- "dashboard": "DASHBOARD",
- "settings": "Einstellungen",
- "raster": "Raster-Gravur",
- "simulation": "G-Code Simulation",
- "calibration": "Maschinen-Kalibrierung"
- },
- "common": {
- "loading": "Laden…",
- "import_profile": "PROFIL IMPORTIEREN",
- "export_profile": "PROFIL EXPORTIEREN",
- "geometry": "Geometrie",
- "image": "Bild",
- "laser": "Laser",
- "Gcode": "G-Code",
- "target_width" :"Zielbreite (mm)",
- "simulate_gcode": "SIMULIEREN",
- "line_step": "Zeilenabstand / Auflösung (mm)",
- "force_width": "Exakte Breite erzwingen",
- "dpi_resolution": "Auflösung (DPI)",
- "raster_mode": "Scan-Richtung",
- "origin_point": "Ursprung",
- "custom_offset_x": "Benutzerdef. Offset X (mm)",
- "custom_offset_y": "Benutzerdef. Offset Y (mm)",
- "contrast": "Kontrast-Korrektur",
- "gamma": "Gamma-Korrektur",
- "thermal": "Thermische Korrektur",
- "invert_color": "Relief invertieren (Schwarz / Weiss)",
- "feedrate": "Vorschub (F)",
- "overscan": "Overscan (mm)",
- "min_power": "Min. Leistung (%)",
- "max_power": "Max. Leistung (%)",
- "laser_latency": "Laser-Latenz (ms)",
- "gray_steps": "Graustufen-Stufen",
- "cmd_mode": "Laser-Befehlsmodus:",
- "m67_output": "M67 Ausgangsnummer (E):",
- "choose_image": "BITTE WÄHLEN SIE EIN BILD\nUM ZU BEGINNEN",
- "mem_warn_hard": "⚠ Matrix zu groß ({total:.1f}M px) — Bild wurde skaliert. DPI senken (z.B. {dpi_sug} statt {dpi_now}).",
- "mem_warn_soft": "⚠ Große Matrix ({total:.1f}M px) — Verarbeitung kann langsam sein. DPI senken (z.B. {dpi_sug} statt {dpi_now}).",
- "ctrl_max_value": "Controller Max-Wert:",
- "firing_mode": "Zündmodus:",
- "gcode_header": "Header G-Code",
- "at_start": " (beim Start)",
- "gcode_footer": "Footer G-Code",
- "before_m30": " (vor M30)",
- "point_fram_options": "Punktier- & Framing-Optionen:",
- "pause_command": "Pause-Befehl:",
- "void_pause": "(leer lassen für keine Pause)",
- "origin_pointing": "Ursprung punktieren",
- "framing_option": "Einrahmen (Framing)",
- "framing_power": "Leistung Framing/Punktieren (%):",
- "framing_ratio": "Framing-Geschwindigkeitsverhältnis:",
- "hint_power": "(Niedrig halten, um Markierungen zu vermeiden)",
- "confirm_title": "Bestätigung",
- "confirm_subtitle": "Diese Aktion ist unwiderruflich.",
- "btn_cancel": "Abbrechen",
- "btn_confirm": "Bestätigen",
- "horizontal": "Horizontal",
- "vertical": "Vertikal",
- "target_height": "Zielhöhe",
- "force_height": "Exakte Höhe erzwingen",
- "target_width": "Zielbreite",
- "force_width": "Exakte Breite erzwingen",
- "select_image": "BILD AUSWÄHLEN",
- "select_output": "AUSGABEVERZEICHNIS WÄHLEN",
- "laser_power_level": "Laser-Leistungsstufe (%)",
- "power_distribution": "LEISTUNGSVERTEILUNG",
- "power_value": "Leistungswert (%)",
- "global_machine_params": "GLOBALE MASCHINENPARAMETER",
- "no_global_header": "(Kein globaler Header)",
- "no_global_footer": "(Kein globaler Footer)",
- "Distribution_label": "Verteilung (%)",
- "reset_view": "⊞ Ansicht zurücksetzen"
- },
- "origin_options": {
- "Lower-Left": "Unten-Links",
- "Upper-Left": "Oben-Links",
- "Lower-Right": "Unten-Rechts",
- "Upper-Right": "Oben-Rechts",
- "Center": "Mitte",
- "Custom": "Benutzerdefiniert"
- },
- "stats": {
- "real_dims": "REALE DIMENSIONEN",
- "est_time": "GESCHÄTZTE ZEIT",
- "file_size": "DATEIGRÖSSE",
- "matrix_size": "MATRIXGRÖSSE",
- "scan_step": "SCAN-SCHRITT",
- "line_step": "ZEILENSCHRITT",
- "power_distribution": "Leistungsverteilung",
- "power_value": "Leistung (%)",
- "pixel_count": "Pixel (%)"
- },
- "simulation": {
- "path_sim": "PFAD-SIMULATION",
- "final_size": "Endgröße (mm):",
- "output_file": "Ausgabedatei:",
- "power_range": "Leistungsbereich (%)",
- "live_gcode": "LIVE-G-CODE",
- "active_options": "Aktive Optionen",
- "quick_export": "SCHNELL-EXPORT",
- "export_as": "EXPORTIEREN ALS...",
- "cancel": "ABBRECHEN",
- "speed": "Tempo:",
- "progress": "Fortschritt:",
- "time" : "Zeit:",
- "pointing_opt": "PUNKTIEREN",
- "framing_opt": "FRAMING",
- "simulate_latency": "LATENZ SIMULIEREN",
- "save_success" : "G-Code gespeichert:",
- "save_failed": "Speichern fehlgeschlagen:",
- "no_gcode": "Kein G-Code zum Speichern.",
- "generating": "G-Code & Trajektorie werden generiert...",
- "open_file": "G-Code-Datei öffnen…",
- "no_file": "Keine Datei geladen",
- "reset_zoom": "Zoom / Ansicht zurücksetzen",
- "parsing": "G-Code wird analysiert…",
- "error_title": "Fehler",
- "error_read_file": "Datei kann nicht gelesen werden:",
- "parse_error_title": "Analysefehler",
- "line_step_lbl": "Zeilenschritt (mm):",
- "open_gcode_hint": "G-Code-Datei öffnen um zu beginnen"
- }
- }
- }
|