diff --git a/ATTRIBUTION.md b/ATTRIBUTION.md index 17be64a9..ca761a29 100644 --- a/ATTRIBUTION.md +++ b/ATTRIBUTION.md @@ -93,6 +93,7 @@ Editable drawing code, native projects and shipped exports are collected under ` | assets/locales/es.json | jawler | Spanish (Spain) translation of the English catalog, contributed upstream | MIT OR Apache-2.0 | | assets/locales/fr.json | rlartot | French translation of the English catalog, contributed upstream | MIT OR Apache-2.0 | | assets/locales/gl.json | Pablo López (pablopeza) | Galician translation of the English catalog, contributed upstream | MIT OR Apache-2.0 | +| assets/locales/it.json | SolidCraft contributors | Original Italian translation of SolidCraft's English catalog; no commercial CAD text used | MIT OR Apache-2.0 | | assets/locales/ja.json | SolidCraft contributors | Original SolidCraft resource data or drawing code, collected without redesign | MIT OR Apache-2.0 | | assets/locales/ko.json | SolidCraft contributors | Original SolidCraft resource data or drawing code, collected without redesign | MIT OR Apache-2.0 | | assets/locales/ru.json | Alex Pro (del000) | Russian translation of the English catalog, contributed upstream | MIT OR Apache-2.0 | diff --git a/assets/locales/it.json b/assets/locales/it.json new file mode 100644 index 00000000..ef7ac388 --- /dev/null +++ b/assets/locales/it.json @@ -0,0 +1,1511 @@ +{ + "0 turns it off": "0 disattiva la funzione", + "1. Open GitHub draft below, then paste the report copied to your clipboard.": "1. Apri la bozza su GitHub qui sotto, poi incolla la segnalazione copiata negli appunti.", + "1. Open GitHub draft below. Your title and report will be filled in.": "1. Apri la bozza su GitHub qui sotto. Il titolo e la segnalazione saranno compilati.", + "2. Attach your screenshot: copy and paste it, or save and upload the PNG.": "2. Allega la schermata: copiala e incollala, oppure salva e carica il PNG.", + "3. Click Submit new issue on GitHub to send your report.": "3. Fai clic su Submit new issue su GitHub per inviare la segnalazione.", + "A new configuration, a copy of the active one": "Una nuova configurazione, copia di quella attiva", + "AI": "IA", + "About SolidCraft": "Informazioni su SolidCraft", + "Acceleration": "Accelerazione", + "Active": "Attivo", + "Active rule": "Regola attiva", + "Add": "Aggiungi", + "Add Key": "Aggiungi fotogramma chiave", + "Add Mid Radius": "Aggiungi raggio intermedio", + "Add Row": "Aggiungi riga", + "Add condition": "Aggiungi condizione", + "Against": "Rispetto a", + "Alignment": "Allineamento", + "All Sketch Points": "Tutti i punti dello schizzo", + "All components": "Tutti i componenti", + "All open designs": "Tutti i progetti aperti", + "Allowed expressions, separated by semicolons": "Espressioni consentite, separate da punti e virgola", + "Also deletes": "Elimina anche", + "Angle 2": "Angolo 2", + "Animate": "Anima", + "Appearance name": "Nome dell'aspetto", + "Applied Radius": "Raggio applicato", + "Apply To": "Applica a", + "Apply to selection": "Applica alla selezione", + "Arc length": "Lunghezza dell'arco", + "Area": "Area", + "Attachment": "Collegamento", + "BROWSER": "STRUTTURA", + "Bend Line Position": "Posizione della linea di piega", + "Bend Position": "Posizione della piega", + "Bend Radius": "Raggio di piega", + "Bends": "Pieghe", + "Body": "Corpo", + "Boundary": "Contorno", + "Bounding box": "Riquadro di ingombro", + "CSV or JSON: updates existing parameters, adds new ones": "CSV o JSON: aggiorna i parametri esistenti e ne aggiunge di nuovi", + "Capture All Positions": "Acquisisci tutte le posizioni", + "Catch Direction": "Direzione di aggancio", + "Cells": "Celle", + "Center X": "Centro X", + "Center Y": "Centro Y", + "Center of mass": "Centro di massa", + "Centre to centre": "Interasse", + "Chamfer Type": "Tipo di smusso", + "Check collisions": "Controlla collisioni", + "Checked": "Controllato", + "Choose a new plane. Sketch geometry and dimensions stay unchanged in its two-dimensional coordinates.": "Scegli un nuovo piano. La geometria e le quote dello schizzo restano invariate nelle sue coordinate bidimensionali.", + "Circumference": "Circonferenza", + "Close draft": "Chiudi bozza", + "Collisions": "Collisioni", + "Colour": "Colore", + "Component1": "Componente1", + "Configuration": "Configurazione", + "Configuration rules": "Regole di configurazione", + "Construction": "Costruzione", + "Contact": "Contatto", + "Contact sets": "Gruppi di contatto", + "Continuity": "Continuità", + "Copy Error Message": "Copia messaggio di errore", + "Copy Warning Message": "Copia messaggio di avviso", + "Copy all licences": "Copia tutte le licenze", + "Copy diagnostic information": "Copia informazioni diagnostiche", + "Copy report": "Copia segnalazione", + "Copy screenshot": "Copia schermata", + "Corner Relief": "Scarico d'angolo", + "Corner Relief Shape": "Forma dello scarico d'angolo", + "Counterbore depth": "Profondità della lamatura", + "Countersink angle": "Angolo di svasatura", + "Create Issue — review draft": "Crea segnalazione — rivedi bozza", + "Cube": "Cubo", + "Current orthographic view (1:1 mm)": "Vista ortografica corrente (1:1 mm)", + "Current perspective view": "Vista prospettica corrente", + "Curvature (G2)": "Curvatura (G2)", + "Customize Toolbar": "Personalizza barra degli strumenti", + "Delete all": "Elimina tutto", + "Delete rule": "Elimina regola", + "Delete the row": "Elimina la riga", + "Delete the set": "Elimina il gruppo", + "Delete this parameter": "Elimina questo parametro", + "Density": "Densità", + "Designs you open or save appear here.": "I progetti aperti o salvati vengono visualizzati qui.", + "Determined by To Object. Choose Angle to edit the angular extent.": "Determinato da Fino all'oggetto. Scegli Angolo per modificare l'estensione angolare.", + "Discard": "Scarta", + "Do not export hidden edges": "Non esportare gli spigoli nascosti", + "Don't ask again": "Non chiedere più", + "Double-click to rename": "Fai doppio clic per rinominare", + "Double-clicking the middle button in the view: Home (the home view, framing what is shown), Fit (frame what is shown, keeping the orientation) or nothing": "Doppio clic con il pulsante centrale nella vista: Vista iniziale (inquadra gli oggetti visibili nell'orientamento iniziale), Adatta (inquadra gli oggetti visibili mantenendo l'orientamento) o nessuna azione", + "Drive Joint": "Aziona giunto", + "Duration": "Durata", + "Edges": "Spigoli", + "Edit Profile Sketch": "Modifica schizzo del profilo", + "Enable rule": "Abilita regola", + "Enabled": "Abilitato", + "Explode": "Esplodi", + "Explode Text": "Esplodi testo", + "Export Animation…": "Esporta animazione…", + "Export Current View as DXF": "Esporta vista corrente come DXF", + "Export Current View as DXF…": "Esporta vista corrente come DXF…", + "Export DXF…": "Esporta DXF…", + "Export hidden edges as dashed lines": "Esporta gli spigoli nascosti come linee tratteggiate", + "Extents": "Estensioni", + "Face": "Faccia", + "Face attachment lost": "Collegamento alla faccia perso", + "Faces": "Facce", + "Faces / edges / vertices": "Facce / spigoli / vertici", + "Favourite": "Preferito", + "Files from many CAD programs have Y up, so they open lying on their back here (Z up).": "Molti programmi CAD usano Y come asse verticale: qui, dove l'asse verticale è Z, i loro file si aprono coricati.", + "Filter": "Filtro", + "Find in Browser": "Trova nella struttura", + "Flat": "Piatto", + "Flat size": "Dimensioni dello sviluppo", + "Follow camera (Look At sketches)": "Segui la camera (Vista normale agli schizzi)", + "Follow the camera (Look At sketches)": "Segui la camera (Vista normale agli schizzi)", + "Font": "Carattere", + "Full Length": "Lunghezza totale", + "Gap": "Gioco", + "Grid": "Griglia", + "Height": "Altezza", + "Hidden edges": "Spigoli nascosti", + "Holes": "Fori", + "Holes (edges on them)": "Fori (spigoli dei fori)", + "Home view": "Vista iniziale", + "In This Design": "In questo progetto", + "In place (surfaces)": "In posizione (superfici)", + "Inside": "Interno", + "Interferes": "Interferisce", + "Issue title": "Titolo della segnalazione", + "Joint Origin1": "Origine giunto1", + "Keep Tools": "Mantieni corpi utensile", + "Later": "Più tardi", + "Leave it": "Lascia invariato", + "Legacy face attachment. Rebinding to a certified face creates an exact attachment.": "Collegamento alla faccia di vecchio tipo. Ricollegandolo a una faccia certificata si crea un collegamento esatto.", + "Length": "Lunghezza", + "Length units": "Unità di lunghezza", + "Letter Spacing": "Spaziatura dei caratteri", + "Library": "Libreria", + "Line Spacing": "Interlinea", + "Loop": "Ciclo", + "Margin": "Margine", + "Mass": "Massa", + "Material": "Materiale", + "Max": "Max", + "Mid Radius": "Raggio intermedio", + "Middle double-click": "Doppio clic centrale", + "Min": "Min", + "Mitre": "Giunzione ad angolo", + "Modeled": "Modellato", + "More toolbar panels": "Altri pannelli della barra degli strumenti", + "Motion": "Movimento", + "Move Type": "Tipo di spostamento", + "Move earlier": "Sposta prima", + "Move later": "Sposta dopo", + "Name": "Nome", + "Nearest": "Più vicini", + "New study": "Nuovo studio", + "No crash reports.": "Nessun rapporto di arresto anomalo.", + "No matching appearances": "Nessun aspetto corrispondente", + "No visible bodies to export.": "Nessun corpo visibile da esportare.", + "None": "Nessuno", + "Not available yet": "Non ancora disponibile", + "Notch": "Intaglio", + "Opacity": "Opacità", + "Open GitHub draft": "Apri bozza su GitHub", + "Open-source parametric 3D CAD in Rust. Licensed MIT OR Apache-2.0.": "CAD 3D parametrico open source in Rust. Licenza MIT OR Apache-2.0.", + "Other side": "Lato opposto", + "Outside": "Esterno", + "Overall length": "Lunghezza complessiva", + "Parameter values": "Valori dei parametri", + "Pass through": "Passante", + "Path": "Percorso", + "Per Edge": "Per spigolo", + "Pick the tool bodies": "Seleziona i corpi utensile", + "Picked": "Selezionato", + "Picked point": "Punto selezionato", + "Place at the origin instead": "Posiziona invece nell'origine", + "Playback": "Riproduzione", + "Plot": "Grafico", + "Position": "Posizione", + "Position (0 to 1)": "Posizione (da 0 a 1)", + "Position (G0)": "Posizione (G0)", + "Position along the edge, 0 at the start end, 1 at the other": "Posizione lungo lo spigolo: 0 all'estremità iniziale, 1 a quella opposta", + "Preferences › Design turns the offer back on": "Puoi riattivare la proposta in Preferenze › Progettazione", + "Preview Row": "Anteprima della riga", + "Preview leaves the current design unchanged.": "L'anteprima lascia invariato il progetto corrente.", + "Profiles/Curves": "Profili/Curve", + "Projection": "Proiezione", + "Quantity": "Quantità", + "RECENT": "RECENTI", + "RULED SURFACE": "SUPERFICIE RIGATA", + "Radius Fit": "Adattamento del raggio", + "Ratio": "Rapporto", + "Reattach selected face": "Ricollega la faccia selezionata", + "Recover": "Recupera", + "Recover unsaved design?": "Recuperare il progetto non salvato?", + "Rectangular": "Rettangolare", + "Reference face": "Faccia di riferimento", + "Remove Tools": "Rimuovi corpi utensile", + "Remove from list": "Rimuovi dall'elenco", + "Remove override": "Rimuovi personalizzazione", + "Remove private design details or paths before sharing.": "Rimuovi dettagli riservati del progetto o percorsi privati prima di condividere.", + "Remove screenshot": "Rimuovi schermata", + "Remove the column": "Rimuovi la colonna", + "Remove the track": "Rimuovi la traccia", + "Remove this point": "Rimuovi questo punto", + "Report a bug — review a screenshot and open a GitHub draft": "Segnala un errore — controlla la schermata e apri una bozza su GitHub", + "Reset Toolbar": "Reimposta barra degli strumenti", + "Restore outer boundary": "Ripristina contorno esterno", + "Restore the inherited component or physical material appearance": "Ripristina l'aspetto ereditato dal componente o dal materiale fisico", + "Result": "Risultato", + "Retake screenshot": "Acquisisci di nuovo la schermata", + "Reverse": "Inverti", + "Reverse Direction": "Inverti direzione", + "Revert": "Ripristina", + "Revert All Positions": "Ripristina tutte le posizioni", + "Revert Position": "Ripristina posizione", + "Review the report and screenshot before opening GitHub.": "Controlla la segnalazione e la schermata prima di aprire GitHub.", + "Rim Edge": "Spigolo del bordo", + "Roll History Marker Here": "Sposta qui il marcatore della cronologia", + "Round": "Arrotondato", + "Rule": "Regola", + "Save Rule": "Salva regola", + "Save the study as an animated GIF, seen as the viewport shows it": "Salva lo studio come GIF animata, così come appare nella vista", + "Saved preview. Geometry is being checked before editing.": "Anteprima salvata. Verifica della geometria in corso prima della modifica.", + "Scale factor": "Fattore di scala", + "Search": "Cerca", + "Search commands": "Cerca comandi", + "Select Other: hold the left button still on the model (or right-click › Select Other…) to list everything under the cursor; click again on the same spot to select the next thing there. Double-click the middle button to go Home (Preferences › Navigation).": "Seleziona altro: tieni premuto il pulsante sinistro senza muovere il puntatore sul modello (o fai clic destro › Seleziona altro…) per elencare gli oggetti sotto il cursore; fai di nuovo clic nello stesso punto per selezionare l'oggetto successivo. Fai doppio clic con il pulsante centrale per tornare alla vista iniziale (Preferenze › Navigazione).", + "Select bodies (a face picks its body)": "Seleziona corpi (una faccia seleziona il corpo a cui appartiene)", + "Select bodies or faces instead": "Seleziona invece corpi o facce", + "Selection filter": "Filtro di selezione", + "Semantic faces share their appearance across instances.": "Le facce semantiche condividono l'aspetto tra le istanze.", + "Send your report on GitHub": "Invia la segnalazione su GitHub", + "Shape": "Forma", + "Show Agent Cursor": "Mostra cursore dell'agente", + "Show in folder": "Mostra nella cartella", + "Show the pointer an AI agent moves (#35)": "Mostra il puntatore mosso da un agente IA (#35)", + "Signed axes": "Assi con segno", + "Size": "Dimensioni", + "Sketch constraints": "Vincoli dello schizzo", + "Sketch curves": "Curve dello schizzo", + "Sketch dimensions": "Quote dello schizzo", + "Sketch geometry and profiles": "Geometria e profili dello schizzo", + "Sketch plane has no body-face attachment.": "Il piano dello schizzo non è collegato a una faccia di un corpo.", + "Sketch points": "Punti dello schizzo", + "Slot width": "Larghezza dell'asola", + "SolidCraft closed before these designs were saved. Their last autosave can be opened.": "SolidCraft si è chiuso prima del salvataggio di questi progetti. È possibile aprire il loro ultimo salvataggio automatico.", + "Speed": "Velocità", + "Stand it up": "Raddrizza", + "Stand it up: a quarter turn about X, as one Move feature you can undo.": "Raddrizza: un quarto di giro attorno a X, come singola lavorazione Sposta annullabile.", + "Stand this part up?": "Raddrizzare questa parte?", + "Step": "Passo", + "Steps": "Passi", + "Study": "Studio", + "Style": "Stile", + "Suppressed": "Sospeso", + "Swap Ends": "Scambia estremità", + "Tangent (G1)": "Tangenza (G1)", + "Tangent Chain": "Catena tangente", + "Tear": "A strappo", + "The dashed sketch is a saved plane guide. Select a new face to repair the attachment.": "Lo schizzo tratteggiato è una guida del piano salvata. Seleziona una nuova faccia per riparare il collegamento.", + "The saved author occurrence is missing. Select a valid author placement before rebinding.": "L'occorrenza di creazione salvata non è presente. Seleziona un posizionamento di creazione valido prima di ricollegare.", + "Then": "Allora", + "These features will be deleted:": "Queste lavorazioni saranno eliminate:", + "These features will fail:": "Queste lavorazioni non riusciranno:", + "Thickness Outside": "Spessore all'esterno", + "Thin": "Sottile", + "Thin Extrude": "Estrusione sottile", + "This child is shared. Deleting it removes it from every copy of its parent.": "Questo elemento figlio è condiviso. Eliminandolo verrà rimosso da ogni copia del padre.", + "This child is shared. Position changes apply to every copy of its parent.": "Questo elemento figlio è condiviso. Le modifiche alla posizione si applicano a ogni copia del padre.", + "This face cannot provide a durable attachment. Choose another face or explicitly use a fixed plane.": "Questa faccia non consente un collegamento persistente. Scegli un'altra faccia o usa esplicitamente un piano fisso.", + "To Offset": "Fino a una distanza", + "Tolerance": "Tolleranza", + "Too close": "Troppo vicini", + "Turn off section analysis before exporting the view.": "Disattiva l'analisi in sezione prima di esportare la vista.", + "Type": "Tipo", + "UNTRIM": "RIPRISTINA SUPERFICIE", + "Updating the preview": "Aggiornamento dell'anteprima", + "Use active author placement": "Usa posizionamento di creazione attivo", + "Use fixed plane": "Usa piano fisso", + "Use saved fixed plane": "Usa piano fisso salvato", + "Use selected face as fixed plane": "Usa faccia selezionata come piano fisso", + "VIEW": "VISTA", + "Value": "Valore", + "Velocity": "Velocità", + "Vertices": "Vertici", + "View navigator": "Navigatore della vista", + "Visible bodies only. Curves use line segments (0.01 mm tolerance).": "Solo corpi visibili. Le curve usano segmenti di retta (tolleranza 0.01 mm).", + "Volume": "Volume", + "Wall": "Parete", + "Wall Location": "Posizione della parete", + "Wall Thickness": "Spessore della parete", + "When": "Quando", + "Width": "Larghezza", + "Will fail": "Non riuscirà", + "angle, height": "angolo, altezza", + "appearance.dielectric_ior": "Indice di rifrazione dielettrico", + "appearance.metallic": "Metallicità", + "appearance.pbr_help": "Visualizza questa superficie in Rendering o in un PNG del prodotto. Senza rifrazione né trasmissione.", + "appearance.pbr_opaque": "PBR opaco", + "appearance.roughness": "Rugosità", + "appearance.surface_response": "Risposta della superficie", + "browser.body_name": "Corpo{number}", + "browser.component_name": "Componente{number}", + "browser.parameters": "Parametri ({count})", + "browser.precision": "Precisione: {precision}", + "browser.sketch_name": "Schizzo{number}", + "browser.units": "Unità: {units}", + "cam.flat": "Faccia piana", + "cam.follower": "Cedente", + "cam.knife": "A coltello", + "cam.needs_joints": "richiede un giunto rotante e uno scorrevole o oscillante", + "cam.roller": "Rullo", + "cam.roller_pick": "Rullo (facoltativo)", + "cam.tip_pick": "Punta (facoltativa)", + "cmd.appearance_assign": "Aspetto", + "cmd.appearance_library": "Libreria degli aspetti", + "cmd.appearance_list": "Elenca aspetti", + "cmd.body_rename": "Rinomina corpo", + "cmd.browser_group": "Nuovo gruppo", + "cmd.browser_move": "Sposta elementi della struttura", + "cmd.browser_order": "Ordina elementi della struttura", + "cmd.browser_rename_group": "Rinomina gruppo", + "cmd.browser_ungroup": "Separa gruppo", + "cmd.browser_visibility": "Mostra/Nascondi", + "cmd.canvas_calibrate": "Calibra immagine di riferimento", + "cmd.canvas_decal": "Decalcomania", + "cmd.canvas_delete": "Elimina immagine di riferimento", + "cmd.canvas_edit": "Modifica immagine di riferimento", + "cmd.canvas_insert": "Immagine di riferimento", + "cmd.component_activate": "Attiva componente", + "cmd.component_break_link": "Interrompi collegamento", + "cmd.component_capture_position": "Acquisisci posizione", + "cmd.component_create": "Nuovo componente", + "cmd.component_delete": "Elimina componente", + "cmd.component_from_bodies": "Crea componenti da corpi", + "cmd.component_insert_design": "Inserisci progetto", + "cmd.component_links": "Elenca collegamenti", + "cmd.component_list": "Elenca componenti", + "cmd.component_move_bodies": "Sposta corpi nel componente", + "cmd.component_move_sketches": "Sposta schizzi nel componente", + "cmd.component_paste_new": "Incolla come nuovo", + "cmd.component_properties": "Proprietà fisiche del componente", + "cmd.component_rename": "Rinomina componente", + "cmd.component_revert_position": "Ripristina posizione", + "cmd.component_unlock": "Sblocca contenuto", + "cmd.component_update_links": "Aggiorna collegamenti", + "cmd.config_activate": "Attiva configurazione", + "cmd.config_column": "Colonna di configurazione", + "cmd.config_configure": "Configura", + "cmd.config_preview": "Anteprima della configurazione", + "cmd.config_row": "Riga di configurazione", + "cmd.config_rule": "Regola di configurazione", + "cmd.config_rules": "Regole di configurazione", + "cmd.config_table": "Mostra tabella delle configurazioni", + "cmd.construct_axis_edge": "Asse lungo uno spigolo", + "cmd.construct_axis_normal_to_face": "Asse perpendicolare a una faccia", + "cmd.construct_axis_through_cylinder": "Asse di cilindro/cono/toro", + "cmd.construct_axis_two_planes": "Asse per due piani", + "cmd.construct_axis_two_points": "Asse per due punti", + "cmd.construct_plane_along_path": "Piano lungo un percorso", + "cmd.construct_plane_midplane": "Piano mediano", + "cmd.construct_plane_perpendicular": "Piano perpendicolare", + "cmd.construct_plane_tangent": "Piano tangente", + "cmd.construct_plane_three_points": "Piano per tre punti", + "cmd.construct_plane_two_edges": "Piano per due spigoli", + "cmd.construct_point_along_path": "Punto lungo un percorso", + "cmd.construct_point_center": "Punto al centro di cerchio/sfera/toro", + "cmd.construct_point_edge_plane": "Punto tra spigolo e piano", + "cmd.construct_point_three_planes": "Punto tra tre piani", + "cmd.construct_point_two_edges": "Punto tra due spigoli", + "cmd.construct_point_vertex": "Punto su un vertice", + "cmd.contact_check": "Controlla contatto", + "cmd.contact_create": "Nuovo gruppo di contatto", + "cmd.contact_disable_all": "Disabilita contatto", + "cmd.contact_edit": "Modifica gruppo di contatto", + "cmd.contact_enable_all": "Abilita tutti i contatti", + "cmd.contact_enable_sets": "Abilita gruppi di contatto", + "cmd.contact_list": "Elenca gruppi di contatto", + "cmd.diagnostics_crash_report": "Rapporto di arresto anomalo", + "cmd.diagnostics_crash_reports": "Rapporti di arresto anomalo", + "cmd.diagnostics_crash_reports_clear": "Elimina rapporti di arresto anomalo", + "cmd.diagnostics_crash_test": "Prova di arresto anomalo", + "cmd.doc_recover": "Recupera progetto", + "cmd.doc_recovery_discard": "Scarta progetto recuperato", + "cmd.doc_recovery_list": "Progetti recuperabili", + "cmd.document_inspect": "Esamina progetto", + "cmd.document_metadata": "Proprietà del progetto", + "cmd.document_metadata_remove": "Rimuovi proprietà del progetto", + "cmd.document_metadata_set": "Modifica proprietà del progetto", + "cmd.document_units": "Modifica unità del progetto", + "cmd.edit_checkpoint": "Punto di ripristino", + "cmd.edit_restore_checkpoint": "Ripristina punto di ripristino", + "cmd.engine_commands": "Elenca comandi", + "cmd.explode_create": "Vista esplosa", + "cmd.explode_delete": "Elimina vista esplosa", + "cmd.explode_list": "Elenca viste esplose", + "cmd.explode_show": "Mostra vista esplosa", + "cmd.expr_evaluate": "Valuta espressione", + "cmd.face_delete": "Elimina faccia", + "cmd.file_export": "Esporta", + "cmd.file_insert_mesh": "Inserisci mesh", + "cmd.file_insert_step": "Inserisci STEP", + "cmd.file_save_mesh": "Salva come mesh", + "cmd.file_slicers": "Slicer installati", + "cmd.inspect_accessibility": "Analisi di accessibilità", + "cmd.inspect_center_of_mass": "Centro di massa", + "cmd.inspect_clearance": "Distanza libera", + "cmd.inspect_compare": "Confronta corpi", + "cmd.inspect_continuity": "Analisi di continuità", + "cmd.inspect_curvature_comb": "Analisi del pettine di curvatura", + "cmd.inspect_curvature_map": "Analisi della mappa di curvatura", + "cmd.inspect_draft": "Analisi dello sformo", + "cmd.inspect_environment_map": "Analisi della mappa ambientale", + "cmd.inspect_interference": "Interferenza", + "cmd.inspect_isocurve": "Analisi delle isocurve", + "cmd.inspect_minimum_radius": "Analisi del raggio minimo", + "cmd.inspect_zebra": "Analisi zebrata", + "cmd.joint_as_built": "Giunto in posizione", + "cmd.joint_cam": "Camma", + "cmd.joint_create": "Giunto", + "cmd.joint_delete": "Elimina giunto", + "cmd.joint_drive": "Aziona giunti", + "cmd.joint_edit": "Modifica giunto", + "cmd.joint_gear": "Ingranaggio", + "cmd.joint_limits": "Limiti del giunto", + "cmd.joint_list": "Elenca giunti", + "cmd.joint_motion_link": "Collegamento di movimento", + "cmd.joint_origin": "Origine del giunto", + "cmd.joint_rack_pinion": "Pignone e cremagliera", + "cmd.joint_reach": "Raggiungi punto", + "cmd.joint_rigid_group": "Gruppo rigido", + "cmd.joint_screw": "Vite", + "cmd.joint_solve": "Risolvi giunti", + "cmd.library_apply": "Applica elemento della libreria locale", + "cmd.library_export": "Esporta libreria del progetto", + "cmd.library_inspect": "Esamina libreria locale", + "cmd.material_assign": "Materiale fisico", + "cmd.material_create": "Nuovo materiale fisico", + "cmd.material_delete": "Elimina materiale fisico", + "cmd.material_edit": "Modifica materiale fisico", + "cmd.material_list": "Elenca materiali", + "cmd.material_properties_directional": "Modulo elastico direzionale", + "cmd.material_properties_validate": "Convalida dati del materiale fisico", + "cmd.mesh_convert": "Converti mesh", + "cmd.model_edges": "Elenca spigoli", + "cmd.model_faces": "Elenca facce", + "cmd.model_threads": "Elenca filettature", + "cmd.motion_delete": "Elimina studio del movimento", + "cmd.motion_export": "Esporta studio del movimento", + "cmd.motion_export_animation": "Esporta animazione del movimento", + "cmd.motion_interference": "Interferenza durante il movimento", + "cmd.motion_list": "Elenca studi del movimento", + "cmd.motion_play": "Riproduci studio del movimento", + "cmd.motion_plot": "Grafico dello studio del movimento", + "cmd.motion_study": "Studio del movimento", + "cmd.motion_trace": "Traiettoria del movimento", + "cmd.motion_trace_keep": "Mantieni traiettoria del movimento", + "cmd.occurrence_copy": "Incolla (istanza)", + "cmd.occurrence_ground": "Fissa a terra", + "cmd.occurrence_move": "Sposta occorrenza", + "cmd.occurrence_properties": "Proprietà fisiche dell'occorrenza", + "cmd.parameters_add": "Aggiungi parametro utente", + "cmd.parameters_change": "Modifica parametri", + "cmd.parameters_comment": "Commenta parametro", + "cmd.parameters_complete": "Completa espressione", + "cmd.parameters_delete": "Elimina parametro", + "cmd.parameters_export": "Esporta parametri", + "cmd.parameters_favorite": "Parametro preferito", + "cmd.parameters_graph": "Grafo dei parametri", + "cmd.parameters_import": "Importa parametri", + "cmd.parameters_list": "Elenca parametri", + "cmd.parameters_move": "Sposta parametro", + "cmd.parameters_rename": "Rinomina parametro", + "cmd.parameters_users": "Utilizzatori del parametro", + "cmd.parts_fastener": "Inserisci elemento di fissaggio", + "cmd.parts_insert": "Inserisci parte", + "cmd.parts_library": "Parti standard", + "cmd.parts_resize": "Modifica dimensioni della parte", + "cmd.plastic_assign_rule": "Assegna regola per plastica", + "cmd.plastic_boss": "Risalto", + "cmd.plastic_lip": "Labbro", + "cmd.plastic_manage_rules": "Gestisci regole per plastica", + "cmd.plastic_rest": "Appoggio", + "cmd.plastic_rules": "Elenca regole per plastica", + "cmd.plastic_snap_fit": "Aggancio a scatto", + "cmd.render_backends": "Motori di rendering", + "cmd.render_cancel": "Annulla rendering", + "cmd.render_export": "Esporta immagine renderizzata", + "cmd.render_preflight": "Verifica richiesta di rendering", + "cmd.render_scene": "Esamina scena di rendering", + "cmd.render_settings_apply": "Applica camera di rendering", + "cmd.render_settings_get": "Impostazioni di rendering", + "cmd.render_settings_set": "Salva impostazioni di rendering", + "cmd.render_start": "Renderizza immagine", + "cmd.render_status": "Avanzamento del rendering", + "cmd.select_clear": "Deseleziona tutto", + "cmd.sheet_convert": "Converti in lamiera", + "cmd.sheet_export_bend_table": "Esporta tabella delle pieghe", + "cmd.sheet_export_dxf": "Esporta sviluppo piano come DXF", + "cmd.sheet_flange": "Flangia", + "cmd.sheet_flat_pattern": "Crea sviluppo piano", + "cmd.sheet_fold": "Piega", + "cmd.sheet_hem": "Orlo", + "cmd.sheet_manage_rules": "Regole per lamiera", + "cmd.sheet_perforate": "Perfora", + "cmd.sheet_refold": "Ripiega", + "cmd.sheet_rules": "Elenca regole per lamiera", + "cmd.sheet_unfold": "Spiega", + "cmd.sketch_arc_center_point": "Arco per centro", + "cmd.sketch_arc_tangent": "Arco tangente", + "cmd.sketch_arc_three_point": "Arco per 3 punti", + "cmd.sketch_auto_constrain": "Vincola automaticamente", + "cmd.sketch_auto_constrain_from_datum": "Vincola automaticamente da riferimento", + "cmd.sketch_auto_project": "Proietta automaticamente gli spigoli di riferimento", + "cmd.sketch_blend_curve": "Curva di raccordo", + "cmd.sketch_chain": "Catena", + "cmd.sketch_chamfer_distance_angle": "Smusso per distanza e angolo", + "cmd.sketch_chamfer_equal_distance": "Smusso a distanze uguali", + "cmd.sketch_chamfer_two_distance": "Smusso a due distanze", + "cmd.sketch_circle_center": "Cerchio per centro e diametro", + "cmd.sketch_circle_three_point": "Cerchio per 3 punti", + "cmd.sketch_circle_three_tangent": "Cerchio tangente a 3 elementi", + "cmd.sketch_circle_two_point": "Cerchio per 2 punti", + "cmd.sketch_circle_two_tangent": "Cerchio tangente a 2 elementi", + "cmd.sketch_constrainer": "Strumento vincoli dello schizzo", + "cmd.sketch_constraint_fix": "Fissa/Libera", + "cmd.sketch_constraint_midpoint": "Punto medio", + "cmd.sketch_construction": "Normale/Costruzione", + "cmd.sketch_copy": "Copia entità dello schizzo", + "cmd.sketch_cut": "Taglia entità dello schizzo", + "cmd.sketch_delete": "Elimina entità dello schizzo", + "cmd.sketch_dimension_text": "Sposta testo della quota", + "cmd.sketch_drag": "Trascina geometria dello schizzo", + "cmd.sketch_drag_end": "Termina trascinamento dello schizzo", + "cmd.sketch_draw_dimensioned": "Disegna geometria quotata dello schizzo", + "cmd.sketch_edit": "Modifica schizzo", + "cmd.sketch_edit_text": "Modifica testo", + "cmd.sketch_export_dxf": "Salva come DXF", + "cmd.sketch_finish_auto_constrain": "Termina con vincoli automatici", + "cmd.sketch_fit_curves_to_section": "Adatta curve alla sezione della mesh", + "cmd.sketch_glyphs": "Simboli dei vincoli", + "cmd.sketch_include_3d": "Includi geometria 3D", + "cmd.sketch_infinite": "Retta infinita", + "cmd.sketch_insert_dxf": "Inserisci DXF", + "cmd.sketch_insert_svg": "Inserisci SVG", + "cmd.sketch_inspect": "Esamina schizzo", + "cmd.sketch_intersection_curve": "Curva di intersezione", + "cmd.sketch_isoparametric_curve": "Curva isoparametrica", + "cmd.sketch_line3d": "Linea 3D", + "cmd.sketch_line_midpoint": "Linea dal punto medio", + "cmd.sketch_move": "Sposta/Copia entità dello schizzo", + "cmd.sketch_move3d": "Sposta punto 3D", + "cmd.sketch_move_point": "Trascina punto dello schizzo", + "cmd.sketch_offset_break": "Interrompi associazione dell'offset", + "cmd.sketch_options": "Opzioni della tavolozza schizzo", + "cmd.sketch_paste": "Incolla entità dello schizzo", + "cmd.sketch_point3d": "Punto 3D", + "cmd.sketch_polygon_circumscribed": "Poligono circoscritto", + "cmd.sketch_polygon_edge": "Poligono per lato", + "cmd.sketch_polygon_inscribed": "Poligono inscritto", + "cmd.sketch_project_to_surface": "Proietta sulla superficie", + "cmd.sketch_rectangle_center": "Rettangolo per centro", + "cmd.sketch_rectangle_rounded": "Rettangolo arrotondato", + "cmd.sketch_rectangle_three_point": "Rettangolo per 3 punti", + "cmd.sketch_rectangle_two_point": "Rettangolo per 2 punti", + "cmd.sketch_redefine": "Ridefinisci piano dello schizzo", + "cmd.sketch_slot_arc_center": "Asola ad arco per centro", + "cmd.sketch_slot_arc_three_point": "Asola ad arco per tre punti", + "cmd.sketch_slot_center_point": "Asola per centro", + "cmd.sketch_slot_center_to_center": "Asola per interasse", + "cmd.sketch_slot_overall": "Asola per lunghezza complessiva", + "cmd.sketch_snap": "Inferenza di aggancio", + "cmd.sketch_solve": "Risolvi schizzo", + "cmd.sketch_spline3d": "Spline 3D", + "cmd.sketch_spline_control_point": "Spline per punti di controllo", + "cmd.sketch_spline_control_point_5": "Spline per punti di controllo (grado 5)", + "cmd.sketch_spline_fit_point": "Spline interpolante", + "cmd.sketch_spun_profile": "Profilo di tornitura", + "cmd.sketch_toggle_driven": "Attiva/Disattiva quota di riferimento", + "cmd.solid_align": "Allinea", + "cmd.solid_boundary_fill": "Riempimento del contorno", + "cmd.solid_bounding_solid": "Solido di ingombro", + "cmd.solid_emboss": "Rilievo", + "cmd.solid_move": "Sposta/Copia", + "cmd.solid_offset_face": "Offset della faccia", + "cmd.solid_press_pull": "Premi/Trascina", + "cmd.solid_remove": "Rimuovi", + "cmd.solid_replace_face": "Sostituisci faccia", + "cmd.solid_rib": "Nervatura", + "cmd.solid_split_face": "Dividi faccia", + "cmd.solid_web": "Reticolo di nervature", + "cmd.surface_blend": "Superficie di raccordo", + "cmd.surface_boundary": "Superficie da contorni", + "cmd.surface_extrude": "Estrusione di superficie", + "cmd.surface_fair": "Regolarizza superficie", + "cmd.surface_fillet": "Raccordo di superfici", + "cmd.surface_loft": "Loft di superficie", + "cmd.surface_match": "Raccorda superficie", + "cmd.surface_offset": "Offset di superficie", + "cmd.surface_patch": "Superficie di chiusura", + "cmd.surface_reverse_normal": "Inverti normale", + "cmd.surface_revolve": "Rivoluzione di superficie", + "cmd.surface_ruled": "Superficie rigata", + "cmd.surface_stitch": "Cuci", + "cmd.surface_sweep": "Sweep di superficie", + "cmd.surface_thicken": "Ispessisci", + "cmd.surface_unstitch": "Separa superfici", + "cmd.surface_untrim": "Ripristina superficie", + "cmd.timeline_add": "Aggiungi lavorazione registrata", + "cmd.timeline_compute_all": "Ricalcola tutto", + "cmd.timeline_copy": "Copia lavorazioni", + "cmd.timeline_dependents": "Lavorazioni dipendenti", + "cmd.timeline_export_script": "Esporta script dei comandi", + "cmd.timeline_inspect": "Esamina lavorazione", + "cmd.timeline_paste": "Incolla lavorazioni", + "cmd.timeline_redefine": "Modifica lavorazione", + "cmd.timeline_rename": "Rinomina", + "cmd.timeline_reorder": "Riordina lavorazione", + "cmd.timeline_roll_to": "Sposta marcatore della cronologia", + "cmd.timeline_rollback": "Sposta marcatore della sequenza temporale", + "cmd.timeline_suppress": "Sospendi lavorazione", + "cmd.view_apply": "Ripristina vista con nome", + "cmd.view_delete": "Elimina vista con nome", + "cmd.view_list": "Elenca viste con nome", + "cmd.view_navigate": "Naviga nella vista", + "cmd.view_rename": "Rinomina vista con nome", + "cmd.view_save": "Nuova vista con nome", + "command name": "nome del comando", + "coupling.gear_1": "Ruota dentata 1", + "coupling.gear_1_pick": "Ruota dentata 1 (facoltativa)", + "coupling.gear_2": "Ruota dentata 2", + "coupling.gear_2_pick": "Ruota dentata 2 (facoltativa)", + "coupling.internal": "Dentatura interna", + "coupling.needs_turn_and_slide": "richiede un giunto rotante e uno scorrevole", + "coupling.needs_turns": "richiede due giunti rotanti", + "coupling.not_round": "la faccia non è circolare", + "coupling.nut": "Dado", + "coupling.picked": "selezionato", + "coupling.pinion": "Pignone", + "coupling.pinion_pick": "Pignone (facoltativo)", + "coupling.pitch": "Passo", + "coupling.rack": "Cremagliera", + "coupling.radius_1": "Raggio 1", + "coupling.radius_2": "Raggio 2", + "dialog.computing": "Calcolo in corso… {seconds} s", + "dialog.custom_axis": "↖ Asse personalizzato", + "dialog.edit_title": "MODIFICA {title}", + "dialog.select": "↖ Seleziona", + "dialog.selected_count": "↖ Selezionati: {count}", + "dialog.selection_guidance": "Seleziona un dato di ingresso per modificarlo. Fai clic sugli oggetti selezionati per rimuoverli; anche Ctrl/Cmd-clic ne alterna la selezione. Controlla l'anteprima, poi premi OK.", + "dialog.selection_step": "{step} di {total}: seleziona {input}", + "dialog.step": "Passo", + "document.save_changes": "Salvare le modifiche a {name}?", + "document.unsaved_changes": "{name} contiene modifiche non salvate. Se non salvi, andranno perse.", + "drive.stopped_by_contact": "Arrestato a {value}: {a} attraverserebbe {b}", + "drive.stopped_by_loop": "Arrestato a {value}: la catena chiusa che passa per {joint} non può chiudersi ulteriormente", + "drive.unconnected": "Nessun movimento: {part} non è collegato ad alcun elemento fissato a terra", + "dxf.cancel_wait": "In attesa dell'arresto dell'esportazione…", + "dxf.cancelled": "Esportazione DXF annullata", + "dxf.cancelling": "Annullamento dell'esportazione DXF", + "dxf.exporting": "Esportazione DXF", + "dxf.invalid_tolerance": "La tolleranza delle curve deve essere compresa tra 0.0001 e 1 mm.", + "dxf.progress.index": "Preparazione delle superfici (2/5)", + "dxf.progress.meshes": "Preparazione delle mesh (1/5)", + "dxf.progress.occlusion": "Risoluzione delle linee nascoste (4/5)", + "dxf.progress.projection": "Proiezione della geometria (3/5)", + "dxf.progress.write": "Scrittura DXF (5/5)", + "dxf.tolerance": "Tolleranza delle curve", + "dxf.tolerance_help": "Solo corpi visibili. Le curve usano segmenti rettilinei. Una tolleranza minore produce curve più precise e richiede più tempo e memoria.", + "expression, e.g. 25 mm": "espressione, ad es. 25 mm", + "fits the face, e.g. M8": "adatta alla faccia, ad es. M8", + "from the rule": "dalla regola", + "home.documentation": "Documentazione", + "home.in_this_browser": "in questo browser", + "home.missing": "non presente", + "home.open": "Apri…", + "home.opened_days_ago": "Aperto {count} giorni fa", + "home.opened_hours_ago": "Aperto {count} h fa", + "home.opened_just_now": "Appena aperto", + "home.opened_minutes_ago": "Aperto {count} min fa", + "home.opening": "apertura…", + "home.recent": "Recenti", + "home.report_issue": "Segnala un problema", + "home.samples": "Esempi", + "home.whats_new": "Novità", + "install.button_tip": "Installa SolidCraft come applicazione: si apre in una finestra dedicata e funziona offline", + "install.dock_1": "Scegli File › Aggiungi al Dock.", + "install.dock_2": "Fai clic su Aggiungi.", + "install.dock_after": "SolidCraft si aprirà dal Dock in una finestra dedicata e funzionerà offline.", + "install.done": "Fine", + "install.home_screen_1": "Tocca Condividi (nel menu … se non è nella barra degli strumenti).", + "install.home_screen_2": "Scegli Aggiungi alla schermata Home.", + "install.home_screen_3": "Tocca Aggiungi.", + "install.home_screen_after": "SolidCraft si aprirà dalla sua icona nella schermata Home, senza le barre degli strumenti di Safari, e funzionerà offline.", + "install.menu": "Installa applicazione…", + "install.steps_intro": "Safari installa le applicazioni web dai propri menu:", + "install.title": "Installa SolidCraft", + "joint.from_bodies_hint": "Ogni corpo selezionato viene spostato in un nuovo componente distinto, mantenendo la sua posizione.", + "joint.one_body": "Entrambe le selezioni sono su {body}. Seleziona il secondo elemento su un'altra parte.", + "joint.one_component": "Queste parti sono corpi di un unico componente: {bodies}. Un giunto muove un componente rispetto a un altro, quindi ogni parte richiede un componente distinto.", + "motion.checked_to": "Controllato solo fino al passo {step}: il controllo ha esaurito il limite di calcolo", + "motion.collision": "{a} · {b}: passi {steps}", + "motion.duration_hint": "secondi (vuoto: per passo)", + "motion.no_collisions": "Nessuna collisione durante lo studio", + "nav.touchpad.help": "Tieni premuto Shift e muovi il puntatore per eseguire una panoramica; tieni premuto Alt/Option e muovilo per orbitare. Non serve premere pulsanti del mouse. Lo scorrimento verticale regola lo zoom.", + "nav.touchpad.label": "Touchpad", + "nav.touchpad.orbit": "Orbita (tieni premuto Alt/Option e muovi il puntatore; senza pulsanti del mouse)", + "nav.touchpad.pan": "Panoramica (tieni premuto Shift e muovi il puntatore; senza pulsanti del mouse)", + "nav.touchpad.scroll": "Il touchpad usa lo scorrimento verticale per lo zoom. L'impostazione di panoramica a due dita viene conservata per le altre preimpostazioni.", + "nav.touchpad.zoom": "Zoom (scorrimento verticale o gesto di pizzicamento)", + "needs two joints": "richiede due giunti", + "new configuration": "nuova configurazione", + "new name": "nuovo nome", + "new parameter": "nuovo parametro", + "no interference": "nessuna interferenza", + "no joint that moves yet": "nessun giunto mobile ancora presente", + "no picture": "nessuna immagine", + "pattern.alignment_2": "Allineamento 2", + "pattern.alignment_hint": "Il conteggio include l'originale. Centro distribuisce le copie sui due lati; Inverti sceglie il lato con la copia in più per totali pari.", + "pattern.direction_1": "Direzione 1", + "pattern.direction_2": "Direzione 2", + "pattern.flip_direction": "Inverti direzione", + "pick a hole to seat it, or OK places it at the origin": "seleziona un foro in cui inserirlo, oppure premi OK per posizionarlo nell'origine", + "pick one or two vertices, edges or faces": "seleziona uno o due vertici, spigoli o facce", + "render.background": "Sfondo della scena", + "render.fit": "Inquadra prodotto", + "render.image_cancel": "Annulla rendering", + "render.image_cancelled": "Rendering annullato", + "render.image_cancelling": "Annullamento", + "render.image_check": "Verifica richiesta di rendering", + "render.image_completed": "Immagine pronta per l'esportazione", + "render.image_encoding": "Codifica PNG", + "render.image_export": "Esporta PNG", + "render.image_failed": "Rendering non riuscito", + "render.image_height": "Altezza", + "render.image_help": "Immagine di anteprima CPU · PNG · trasparenza approssimata", + "render.image_overwrite": "Sostituisci file esistente", + "render.image_preparing": "Preparazione dell'immagine", + "render.image_queued": "In attesa di rendering", + "render.image_reduce": "Prova un'immagine più piccola o una scena più semplice.", + "render.image_running": "Rendering dell'immagine", + "render.image_stale": "Questa immagine usa la scena acquisita prima delle modifiche successive.", + "render.image_start": "Avvia rendering", + "render.image_supported": "La richiesta di rendering è supportata; la coda e il pool di memoria saranno ricontrollati all'avvio.", + "render.image_title": "Renderizza immagine", + "render.image_too_large": "Limite dell'immagine superato: 4096 pixel per lato e 4,194,304 pixel complessivi.", + "render.image_transparent": "Sfondo trasparente", + "render.image_unknown": "Stato del rendering non disponibile", + "render.image_use_largest": "Usa le dimensioni massime con queste proporzioni:", + "render.image_width": "Larghezza", + "render.navigation_help": "La camera si muove come in Progettazione (Preferenze › Navigazione). Salva impostazione memorizza la camera corrente.", + "render.opaque_image_summary": "PNG di anteprima · PBR opaco · trasparenza miscelata", + "render.opaque_preview_help": "PBR opaco e colori semplici; trasparenza miscelata. Rifrazione, HDRI e rendering finale non sono ancora disponibili.", + "render.perspective": "Camera prospettica", + "render.preview": "Anteprima integrata", + "render.preview_help": "Ombreggiatura raster e trasparenza miscelata. Rifrazione, HDRI e rendering finale non sono ancora disponibili.", + "render.reload_settings": "Ricarica impostazioni salvate", + "render.restore_camera": "Ripristina camera salvata", + "render.return_design": "Torna a Progettazione", + "render.save_setup": "Salva impostazione", + "render.setup_name": "Nome dell'impostazione", + "render.unavailable_preview": "Questa impostazione richiede un profilo di anteprima non disponibile.", + "render.unsaved": "Modifiche all'anteprima non salvate", + "render.use_preview": "Usa anteprima integrata", + "sample.bracket.about": "Flangia di base con flange sui bordi e un orlo, con una regola da 2 mm", + "sample.bracket.name": "Staffa in lamiera", + "sample.enclosure.about": "Scatola svuotata con labbro, risalti per viti, appoggio e aggancio a scatto", + "sample.enclosure.name": "Contenitore in plastica", + "sample.flange.about": "Mozzo e flangia con una ripetizione circolare controllata da un parametro", + "sample.flange.name": "Flangia imbullonata", + "sample.hinge.about": "Due componenti e un giunto rotoidale, azionato fino a 60°", + "sample.hinge.name": "Assieme cerniera", + "sample.plate.about": "Piastra parametrica con raccordi, fori e un risalto forato", + "sample.plate.name": "Piastra di esempio", + "sample.vents.about": "Asole in ripetizione rettangolare: righe, colonne e passo sono parametri", + "sample.vents.name": "Piastra di ventilazione", + "settings.display_quality_note": "I livelli più fini rendono più uniformi le facce curve e gli spigoli e richiedono più tempo per la mesh. Cambia solo la vista, mai il progetto o le esportazioni.", + "settings.frame_rate_note": "Mostra i fotogrammi al secondo nell'angolo inferiore destro della vista. Quando è attivo, la vista viene ridisegnata continuamente.", + "settings.measure_axis_distances": "Mostra distanze X/Y/Z", + "settings.measure_axis_distances_help": "Mostra le componenti lungo gli assi globali accanto alla distanza totale quando Misura è aperto.", + "settings.msaa_applies_on_restart": "L'antialiasing verrà applicato al prossimo avvio di SolidCraft", + "settings.msaa_reset": "{setting}: {requested}× non è supportato da questo dispositivo grafico; ora è {reset}× (supportati: {supported}).", + "settings.msaa_unsupported": "Non supportato da questo dispositivo grafico", + "settings.reset_intro": "Queste impostazioni non funzionano su questo computer e impedirebbero l'avvio di SolidCraft, quindi sono state modificate:", + "settings.reset_title": "Le impostazioni sono state modificate", + "settings.supersampling_note": "Disegna la vista a una risoluzione maggiore e la riduce tramite filtro: spigoli, linee e griglia più uniformi sugli schermi sotto il 4K. Richiede tempo GPU: circa 2.25× i pixel a 1.5× e 4× a 2×.", + "sketch.degrees_of_freedom": "{count} gradi di libertà", + "sketch.draw_curves": "Disegna come {linetype}", + "sketch.make_selection": "Converti la selezione in {linetype}", + "sketch_text.align_center": "Centro", + "sketch_text.align_left": "Sinistra", + "sketch_text.align_right": "Destra", + "sketch_text.bold": "Grassetto", + "sketch_text.builtin_font": "{family} (integrato)", + "sketch_text.font_search": "Cerca caratteri", + "sketch_text.italic": "Corsivo", + "sketch_text.loading_fonts": "Ricerca dei caratteri installati…", + "sketch_text.on_path": "Il testo segue il percorso: la curva ne determina la posizione", + "sketch_text.path_clear": "Scollega il testo dalla curva", + "sketch_text.path_hint": "Una curva dello schizzo seguita dal testo: fai clic qui, poi sulla curva", + "sketch_text.use_font_file": "Usa il file di carattere {path}", + "the parts library is not available": "la libreria delle parti non è disponibile", + "thread.automatic_size": "Dimensione automatica", + "thread.designation": "Designazione", + "thread.iso_metric": "Metrica ISO", + "thread.select_size": "Seleziona dimensione", + "timeline.group": "Nuova cartella di lavorazioni", + "timeline.move_many": "Sposta elementi della sequenza temporale", + "timeline.move_to_group": "Sposta lavorazioni nella cartella", + "timeline.rename_group": "Rinomina cartella di lavorazioni", + "timeline.reorder_many": "Riordina lavorazioni", + "timeline.ungroup": "Rimuovi cartelle di lavorazioni", + "to the next face": "fino alla faccia successiva", + "toolbar.image": "IMMAGINE", + "toolbar.render": "RENDERING", + "toolbar.render_scene": "SCENA", + "trace.points": "{count} punti lungo il percorso", + "trace.stopped_by_contact": "Termina al campione {sample}: {a} attraverserebbe {b}", + "trace.stopped_by_loop": "Termina al campione {sample}: la catena chiusa che passa per {joint} non può chiudersi ulteriormente", + "ui.1_degree_of_freedom": "1 grado di libertà", + "ui.3d_mouse_speed": "Velocità del mouse 3D", + "ui.3d_mouse_windows": "Mouse 3D", + "ui.3d_sketch": "Schizzo 3D", + "ui.about": "Informazioni", + "ui.activate": "Attiva", + "ui.active_component": "Componente attivo", + "ui.agent_chat": "Chat con l'agente", + "ui.agent_chat_allow": "Consenti", + "ui.agent_chat_allowed": "Consentito", + "ui.agent_chat_answered": "Risposta: {option}", + "ui.agent_chat_approval": "Consentire questa azione all'agente?", + "ui.agent_chat_attach_view": "Allega vista", + "ui.agent_chat_attach_view_tip": "Invia un'immagine della vista corrente insieme al messaggio", + "ui.agent_chat_auth_agent": "Accedi con {name}", + "ui.agent_chat_auth_env": "Imposta {vars} nell'ambiente e riavvia SolidCraft.", + "ui.agent_chat_auth_needed": "L'agente richiede l'accesso. L'accesso avviene tramite l'agente stesso; SolidCraft non vede mai password o chiavi.", + "ui.agent_chat_auth_none": "L'agente non offre un metodo di accesso qui: accedi seguendo la sua documentazione.", + "ui.agent_chat_auth_retry": "Ho effettuato l'accesso: riconnetti", + "ui.agent_chat_auth_terminal": "Esegui questo comando in un terminale, poi premi di nuovo Connetti:", + "ui.agent_chat_auth_title": "Accedi all'agente", + "ui.agent_chat_cancel": "Annulla", + "ui.agent_chat_changes": "Modifiche: {n}, un solo passo di annullamento", + "ui.agent_chat_changes_of": "{n}/{limit} modifiche", + "ui.agent_chat_close": "Chiudi", + "ui.agent_chat_command": "Comando dell'agente", + "ui.agent_chat_connect": "Connetti", + "ui.agent_chat_copy": "Copia", + "ui.agent_chat_custom_hint": "Qualsiasi programma che comunica tramite Agent Client Protocol su stdin e stdout. Non viene eseguito da una shell.", + "ui.agent_chat_denied": "Negato", + "ui.agent_chat_deny": "Nega", + "ui.agent_chat_desktop_only": "La chat con l'agente richiede l'applicazione desktop.", + "ui.agent_chat_detecting": "Ricerca degli agenti…", + "ui.agent_chat_dock_left": "Aggancia a sinistra", + "ui.agent_chat_dock_right": "Aggancia a destra", + "ui.agent_chat_edit": "Modifica", + "ui.agent_chat_exited": "L'agente si è arrestato.", + "ui.agent_chat_failed_start": "Impossibile avviare l'agente: {error}", + "ui.agent_chat_intro": "Conversa con un agente di programmazione che già usi o con un endpoint di modello a tua scelta. Opera sul progetto aperto tramite gli strumenti di SolidCraft: le modifiche sono visibili mentre vengono eseguite e si annullano in un solo passo per messaggio. Le azioni consentite senza conferma si impostano in Preferenze > IA.", + "ui.agent_chat_key_in_env": "chiave impostata", + "ui.agent_chat_left": "Sinistra", + "ui.agent_chat_limit": "L'agente ha raggiunto il limite di {limit} modifiche per messaggio. Invia un altro messaggio per farlo proseguire.", + "ui.agent_chat_minimize": "Riduci a una striscia", + "ui.agent_chat_model_tip": "Il modello usato dall'agente. La scelta viene memorizzata per questo agente.", + "ui.agent_chat_new": "Nuova chat", + "ui.agent_chat_new_confirm": "Avviare una nuova chat? Quella corrente verrà cancellata.", + "ui.agent_chat_new_yes": "Nuova chat", + "ui.agent_chat_no_cli": "solidcraft-cli non è stato trovato accanto all'applicazione, quindi l'agente non può accedere al progetto.", + "ui.agent_chat_no_control": "L'endpoint della chat con l'agente non si è avviato, quindi l'agente non può accedere al progetto.", + "ui.agent_chat_no_images": "Questo agente non accetta immagini", + "ui.agent_chat_none_found": "Nessun agente di programmazione trovato. Installane uno tra questi, poi premi Aggiorna:", + "ui.agent_chat_none_found_short": "Nessun agente trovato", + "ui.agent_chat_not_installed": "Non installato", + "ui.agent_chat_not_signed_in": "accesso non effettuato", + "ui.agent_chat_permission": "L'agente chiede di eseguire: {title}", + "ui.agent_chat_pick": "Agente", + "ui.agent_chat_placeholder": "Chiedi all'agente di modificare il progetto…", + "ui.agent_chat_placeholder_busy": "Metti in coda un messaggio per quando l'agente avrà terminato (Ctrl+Enter: invia subito)", + "ui.agent_chat_privacy": "I dati vengono inviati solo all'agente che esegui, con il tuo account.", + "ui.agent_chat_privacy_note": "SolidCraft non invia dati ad alcun servizio: l'agente che esegui comunica con il proprio servizio usando il tuo account. SolidCraft non vede né memorizza mai chiavi o password.", + "ui.agent_chat_queue": "Metti in coda", + "ui.agent_chat_queue_full": "Troppi messaggi in attesa: rimuovine uno o attendi l'agente.", + "ui.agent_chat_queued": "In coda", + "ui.agent_chat_queued_stopped": "In coda (arrestato, non inviato)", + "ui.agent_chat_refresh": "Aggiorna", + "ui.agent_chat_refused": "Non consentito all'agente: {reason}", + "ui.agent_chat_remove": "Rimuovi dalla coda", + "ui.agent_chat_right": "Destra", + "ui.agent_chat_save": "Salva", + "ui.agent_chat_send": "Invia", + "ui.agent_chat_send_now": "Invia subito", + "ui.agent_chat_send_now_tip": "Interrompi il passo corrente dell'agente e invia questo messaggio come successivo (Ctrl+Enter)", + "ui.agent_chat_side": "Lato della chat con l'agente", + "ui.agent_chat_signed_in": "accesso effettuato", + "ui.agent_chat_state_auth": "Accesso richiesto", + "ui.agent_chat_state_busy": "Elaborazione…", + "ui.agent_chat_state_exited": "Agente arrestato", + "ui.agent_chat_state_off": "Non connesso", + "ui.agent_chat_state_ready": "Pronto", + "ui.agent_chat_state_starting": "Avvio…", + "ui.agent_chat_stop": "Arresta", + "ui.agent_chat_stop_tip": "Arresta l'agente e tutto ciò che ha avviato", + "ui.agent_chat_stop_turn_tip": "Arresta l'agente (Esc). I messaggi in coda restano in coda.", + "ui.agent_chat_turn_limit": "Modifiche per messaggio", + "ui.agent_chat_undo_changes": "Annulla queste modifiche", + "ui.agent_chat_undo_label": "Chat con l'agente: {message}", + "ui.agent_chat_undone": "(annullato)", + "ui.agent_chat_view_attached": "Vista allegata", + "ui.agent_cursor": "Cursore dell'agente", + "ui.agent_cursor_speed": "Velocità del cursore dell'agente", + "ui.ai_add": "Aggiungi", + "ui.ai_add_agent": "Aggiungi agente…", + "ui.ai_add_agent_title": "Aggiungi agente", + "ui.ai_add_api": "API compatibile con OpenAI", + "ui.ai_add_custom": "Comando personalizzato", + "ui.ai_add_installed": "Agente installato", + "ui.ai_add_installed_note": "Una voce personalizzata per un agente installato, ad esempio con argomenti diversi. Gli agenti installati vengono elencati automaticamente.", + "ui.ai_added": "aggiunto", + "ui.ai_agent_mode_tip": "La modalità dell'agente: i suoi strumenti (shell, modifiche ai file) la rispettano. Gli strumenti di SolidCraft rispettano le autorizzazioni in Preferenze > IA.", + "ui.ai_agents": "Agenti", + "ui.ai_always_allow": "Consenti sempre", + "ui.ai_always_allow_tip": "Consenti {tool} a questo agente d'ora in poi, senza chiedere", + "ui.ai_always_allowed": "Sempre consentito", + "ui.ai_always_allowed_none": "Nessuna azione è ancora sempre consentita. Le risposte «Consenti sempre» date nella chat sono elencate qui.", + "ui.ai_auto_allowed": "Consentito automaticamente: {title} ({why})", + "ui.ai_auto_mode": "la tua impostazione delle autorizzazioni", + "ui.ai_auto_ours": "SolidCraft controlla direttamente i propri strumenti", + "ui.ai_auto_remembered": "hai scelto Consenti sempre", + "ui.ai_bad_url": "Inserisci un URL che inizi con http:// o https://", + "ui.ai_base_url": "URL di base", + "ui.ai_button": "IA", + "ui.ai_copy_suffix": "copia", + "ui.ai_custom_url": "URL personalizzato", + "ui.ai_default": "Predefinito", + "ui.ai_http_busy": "l'endpoint è occupato o ha superato il limite; riprova più tardi", + "ui.ai_http_key": "l'endpoint ha rifiutato la chiave: controllala in Preferenze > IA", + "ui.ai_http_not_found": "endpoint o modello inesistente: controlla l'URL di base e il nome del modello", + "ui.ai_key": "Chiave API", + "ui.ai_key_hint": "facoltativa; conservata nel portachiavi di sistema", + "ui.ai_key_needs_https": "La chiave viene inviata solo tramite HTTPS o a questo computer.", + "ui.ai_key_note": "Memorizzata nel portachiavi di sistema, mai nelle impostazioni di SolidCraft. Lascia vuoto per un server locale.", + "ui.ai_keychain_error": "Il portachiavi di sistema ha rifiutato l'operazione: {error}", + "ui.ai_mode_all": "Consenti tutto", + "ui.ai_mode_all_note": "Nessuna richiesta di conferma. I rapporti di arresto anomalo restano inaccessibili e i limiti delle cartelle restano validi.", + "ui.ai_mode_all_warning": "L'agente può salvare, sovrascrivere, esportare e sostituire il progetto senza chiedere. Usa questa opzione solo con un agente fidato e su progetti già salvati.", + "ui.ai_mode_ask": "Chiedi ogni volta", + "ui.ai_mode_ask_note": "Ogni modifica al progetto e ogni azione sui file attende la tua autorizzazione.", + "ui.ai_mode_edits": "Consenti automaticamente modifiche al modello", + "ui.ai_mode_edits_note": "I comandi di modellazione vengono eseguiti senza chiedere; salvataggio, apertura, esportazione e altre azioni sui file o distruttive richiedono comunque conferma.", + "ui.ai_mode_global": "Come impostato sopra", + "ui.ai_model": "Modello", + "ui.ai_modes_scope": "Queste impostazioni riguardano gli strumenti di SolidCraft. Gli strumenti dell'agente (shell, modifiche ai file) seguono la modalità dell'agente, selezionabile nell'intestazione del pannello chat quando l'agente supporta le modalità.", + "ui.ai_name": "Nome", + "ui.ai_need_command": "Inserisci il comando che avvia l'agente", + "ui.ai_need_model": "Inserisci il nome del modello", + "ui.ai_no_answer": "L'agente non ha risposto in tempo", + "ui.ai_no_http": "Questa build non può accedere agli endpoint API", + "ui.ai_no_keychain": "Il portachiavi di sistema non è disponibile, quindi non è possibile memorizzare una chiave. Un server locale senza chiave funziona comunque.", + "ui.ai_panel": "Pannello", + "ui.ai_permissions": "Autorizzazioni", + "ui.ai_preset": "Preimpostazione", + "ui.ai_remove": "Rimuovi", + "ui.ai_request_limit": "arrestato dopo 24 richieste per un messaggio; invia un altro messaggio per proseguire", + "ui.ai_reset": "Reimposta", + "ui.ai_settings": "Impostazioni IA…", + "ui.ai_show_features": "Mostra funzioni IA", + "ui.ai_show_features_note": "La chat con l'agente: un pannello in cui un agente di programmazione che già usi o un endpoint di modello a tua scelta opera sul progetto aperto. Se disattivata: nessun pulsante IA, scorciatoia, voce di menu o pannello, e nessuna ricerca o avvio.", + "ui.ai_switch_tip": "Cambia agente per questa conversazione", + "ui.ai_test": "Prova", + "ui.ai_test_acp_ok": "Risponde: {agent}", + "ui.ai_test_acp_tip": "Avvia brevemente l'agente e richiede una sessione, poi lo arresta", + "ui.ai_test_api_tip": "Richiede all'endpoint l'elenco dei modelli", + "ui.ai_test_no_model": "Raggiunto: {count} modelli, ma non {model}", + "ui.ai_test_ok": "Raggiunto: {count} modelli", + "ui.ai_testing": "Verifica…", + "ui.ai_tool_done": "completato", + "ui.ai_tool_failed": "non riuscito", + "ui.ai_tool_running": "in esecuzione", + "ui.ai_tool_unfold": "Fai clic per mostrare il risultato restituito", + "ui.ai_tool_waiting": "in attesa", + "ui.ai_toolbar_button": "Mostra pulsante nella barra degli strumenti", + "ui.ai_toolbar_button_note": "Il pulsante IA all'estremità destra della barra degli strumenti. Ctrl+Shift+A e il menu Vista aprono comunque il pannello.", + "ui.ai_undo_tip": "Annulla in un solo passo tutte le modifiche dell'agente per questo messaggio", + "ui.all": "Tutti", + "ui.analysis": "Analisi", + "ui.angle": "Angolo", + "ui.angle_decimals": "Decimali degli angoli", + "ui.animateJoint": "Anima giunto", + "ui.animate_view_changes": "Anima cambi di vista", + "ui.animation": "Animazione", + "ui.animation_speed": "Velocità dell'animazione", + "ui.anti_aliasing": "Antialiasing", + "ui.apply": "Applica", + "ui.arc": "Arco", + "ui.assemble": "Assembla", + "ui.autosave_every": "Salvataggio automatico ogni", + "ui.axes": "Assi", + "ui.axis": "Asse", + "ui.base_point": "Punto base", + "ui.blocked": "Bloccato", + "ui.bodies": "Corpi", + "ui.box": "Parallelepipedo", + "ui.break": "Spezza", + "ui.calibrate": "Calibra", + "ui.cancel": "Annulla", + "ui.canvases": "Immagini di riferimento", + "ui.center": "Centro", + "ui.centerline": "Linea d'asse", + "ui.chain": "Catena", + "ui.chamfer": "Smusso", + "ui.chamfer_type": "Tipo di smusso", + "ui.change_workspace": "Cambia area di lavoro", + "ui.chord_length": "Lunghezza della corda", + "ui.circle": "Cerchio", + "ui.circular_pattern": "Ripetizione circolare", + "ui.clear": "Cancella", + "ui.clear_recent": "Cancella recenti", + "ui.clear_the_selection": "Deseleziona tutto", + "ui.click_selects_whole_bodies": "Il clic seleziona corpi interi", + "ui.click_then_press_key": "Fai clic, poi premi il nuovo tasto", + "ui.close": "Chiudi", + "ui.coil": "Elica", + "ui.coincident": "Coincidente", + "ui.collapse": "Comprimi", + "ui.collinear": "Collineare", + "ui.colour_vision": "Visione dei colori", + "ui.colour_vision_deutan": "Deuteranopia", + "ui.colour_vision_deutan_tip": "Per una percezione del verde ridotta o assente", + "ui.colour_vision_failed": "Non riuscito", + "ui.colour_vision_fixed": "Fisso", + "ui.colour_vision_mode": "Modalità", + "ui.colour_vision_note": "Modifica i colori che veicolano un significato: stati degli schizzi, assi, pieghe, analisi e icone. Se usi i filtri colore di Windows, lascia questa opzione disattivata.", + "ui.colour_vision_off": "Disattivato", + "ui.colour_vision_off_tip": "I colori originali del tema", + "ui.colour_vision_projected": "Proiettato", + "ui.colour_vision_protan": "Protanopia", + "ui.colour_vision_protan_tip": "Per una percezione del rosso ridotta o assente", + "ui.colour_vision_sample": "Esempio", + "ui.colour_vision_tritan": "Tritanopia", + "ui.colour_vision_tritan_tip": "Per una percezione del blu ridotta o assente", + "ui.combine": "Combina", + "ui.coming_later": "in arrivo", + "ui.command_done": "{command} completato", + "ui.command_palette_hint": "Digita un comando, ad es. {example} — oppure premi S per cercare", + "ui.concentric": "Concentrico", + "ui.configurations": "Configurazioni", + "ui.conic_curve": "Curva conica", + "ui.constant": "Costante", + "ui.constraints_conflict": "Vincoli in conflitto", + "ui.construct": "Costruisci", + "ui.construction": "Costruzione", + "ui.context_menu": "Menu contestuale", + "ui.copy": "Copia", + "ui.corner": "Angolo", + "ui.corners": "Angoli", + "ui.counterbore": "Lamatura", + "ui.countersink": "Svasatura", + "ui.create": "Crea", + "ui.create_copy": "Crea copia", + "ui.create_sketch": "Crea schizzo", + "ui.current": "corrente", + "ui.curvature": "Curvatura", + "ui.curvature_g2": "Curvatura (G2)", + "ui.curves": "Curve", + "ui.custom_program": "Personalizzato…", + "ui.custom_program_tip": "Scegli uno slicer da aggiungere all'elenco", + "ui.customizeToolbar": "Personalizza barra degli strumenti…", + "ui.cut": "Taglia", + "ui.cylinder": "Cilindro", + "ui.dark": "Scuro", + "ui.default_modelling_orientation": "Orientamento di modellazione predefinito", + "ui.degrees_of_freedom": "gradi di libertà", + "ui.delete": "Elimina", + "ui.depth": "Profondità", + "ui.design": "Progettazione", + "ui.design_properties.author": "Autore", + "ui.design_properties.description": "Descrizione", + "ui.design_properties.exports": "Le esportazioni STEP, IGES e 3MF includono questi dati quando il formato li prevede.", + "ui.design_properties.license": "Licenza", + "ui.design_properties.not_text": "Salvato in un formato diverso dal testo; digitando qui verrà sostituito.", + "ui.design_properties.organization": "Organizzazione", + "ui.design_properties.others": "Dati di altri strumenti", + "ui.design_properties.others_note": "Conservati invariati nel progetto e mai esportati.", + "ui.design_properties.part_number": "Codice parte", + "ui.design_properties.project": "Progetto", + "ui.design_properties.revision": "Revisione", + "ui.diameter": "Diametro", + "ui.dimension": "Quota", + "ui.direction": "Direzione", + "ui.display_quality": "Qualità di visualizzazione", + "ui.display_quality_coarse": "Grossolana", + "ui.display_quality_fine": "Fine", + "ui.display_quality_normal": "Normale", + "ui.display_quality_ultra": "Ultra", + "ui.distance": "Distanza", + "ui.distance_1": "Distanza 1", + "ui.distance_2": "Distanza 2", + "ui.document_settings": "Impostazioni del documento", + "ui.don_t_save": "Non salvare", + "ui.draft": "Sformo", + "ui.drawing": "Disegno", + "ui.drill_point": "Punta del trapano", + "ui.edit": "Modifica", + "ui.editJointLimits": "Modifica limiti del giunto", + "ui.edit_section_analysis": "Modifica analisi in sezione", + "ui.ellipse": "Ellisse", + "ui.end_radius": "Raggio finale", + "ui.end_scale": "Scala finale", + "ui.entities": "Entità", + "ui.equal": "Uguale", + "ui.equivalent_radius": "Raggio equivalente", + "ui.expand": "Espandi", + "ui.exportDxf": "Esporta DXF…", + "ui.export_ellipsis": "Esporta...", + "ui.export_ellipsis_keymap": "Esporta…", + "ui.export_keymap_tip": "Tasti, preferiti del riquadro S e barra degli strumenti, in un file", + "ui.extend": "Estendi", + "ui.extent_type": "Tipo di estensione", + "ui.extrude": "Estrusione", + "ui.factor": "Fattore", + "ui.feature_history": "Cronologia delle lavorazioni", + "ui.feature_options": "Opzioni della lavorazione", + "ui.features": "Lavorazioni", + "ui.file": "File", + "ui.fillet": "Raccordo", + "ui.filter_commands_or_keys": "Filtra comandi o tasti", + "ui.findInTimeline": "Trova nella sequenza temporale", + "ui.findInWindow": "Trova nella finestra", + "ui.finish_sketch": "Termina schizzo", + "ui.fit": "Adatta", + "ui.fix_unfix": "Fissa/Libera", + "ui.flat": "Piatto", + "ui.flip": "Inverti", + "ui.format": "Formato", + "ui.frame_rate": "Frequenza dei fotogrammi", + "ui.front": "Frontale", + "ui.fully_constrained": "Completamente vincolato", + "ui.general": "Generali", + "ui.graphics": "Grafica", + "ui.ground_shadow": "Ombra sul piano di appoggio", + "ui.groupSelected": "Raggruppa selezionati", + "ui.heading_add_ins": "COMPONENTI AGGIUNTIVI", + "ui.heading_assemble": "ASSEMBLA", + "ui.heading_box": "PARALLELEPIPEDO", + "ui.heading_chamfer": "SMUSSO", + "ui.heading_circular_pattern": "RIPETIZIONE CIRCOLARE", + "ui.heading_coil": "ELICA", + "ui.heading_combine": "COMBINA", + "ui.heading_configure": "CONFIGURA", + "ui.heading_constraints": "VINCOLI", + "ui.heading_construct": "COSTRUISCI", + "ui.heading_create": "CREA", + "ui.heading_create_sketch": "CREA SCHIZZO", + "ui.heading_cylinder": "CILINDRO", + "ui.heading_design": "PROGETTAZIONE", + "ui.heading_draft": "SFORMO", + "ui.heading_edit": "MODIFICA", + "ui.heading_extrude": "ESTRUSIONE", + "ui.heading_fillet": "RACCORDO", + "ui.heading_finish_sketch": "TERMINA SCHIZZO", + "ui.heading_front": "FRONTALE", + "ui.heading_hole": "FORO", + "ui.heading_home": "INIZIO", + "ui.heading_insert": "INSERISCI", + "ui.heading_inspect": "ESAMINA", + "ui.heading_loft": "LOFT", + "ui.heading_make": "REALIZZA", + "ui.heading_measure": "MISURA", + "ui.heading_mesh": "MESH", + "ui.heading_mirror": "SPECCHIA", + "ui.heading_modify": "MODIFICA", + "ui.heading_move": "SPOSTA", + "ui.heading_move_copy": "SPOSTA/COPIA", + "ui.heading_offset": "OFFSET", + "ui.heading_offset_plane": "PIANO OFFSET", + "ui.heading_ok": "OK", + "ui.heading_parameters": "PARAMETRI", + "ui.heading_pattern": "RIPETIZIONE", + "ui.heading_pattern_on_path": "RIPETIZIONE SU PERCORSO", + "ui.heading_pipe": "TUBO", + "ui.heading_plane_at_angle": "PIANO INCLINATO", + "ui.heading_plastic": "PLASTICA", + "ui.heading_position": "POSIZIONE", + "ui.heading_prepare": "PREPARA", + "ui.heading_rectangular_pattern": "RIPETIZIONE RETTANGOLARE", + "ui.heading_revolve": "RIVOLUZIONE", + "ui.heading_right": "DESTRA", + "ui.heading_save_mesh": "SALVA COME MESH", + "ui.heading_scale": "SCALA", + "ui.heading_section_analysis": "ANALISI IN SEZIONE", + "ui.heading_select": "SELEZIONA", + "ui.heading_setup": "IMPOSTAZIONE", + "ui.heading_sheet_metal": "LAMIERA", + "ui.heading_shell": "SVUOTA", + "ui.heading_sketch": "SCHIZZO", + "ui.heading_sketch_palette": "TAVOLOZZA SCHIZZO", + "ui.heading_sketch_scale": "SCALA SCHIZZO", + "ui.heading_solid": "SOLIDO", + "ui.heading_sphere": "SFERA", + "ui.heading_split_body": "DIVIDI CORPO", + "ui.heading_surface": "SUPERFICIE", + "ui.heading_sweep": "SWEEP", + "ui.heading_thread": "FILETTATURA", + "ui.heading_top": "SUPERIORE", + "ui.heading_torus": "TORO", + "ui.heading_utilities": "UTILITÀ", + "ui.heading_utility": "UTILITÀ", + "ui.help": "Aiuto", + "ui.hide": "Nascondi", + "ui.hideAxes": "Nascondi assi", + "ui.hideDimension": "Nascondi quota", + "ui.hideOrigin": "Nascondi origine", + "ui.hidePlanes": "Nascondi piani", + "ui.hideProfile": "Nascondi profilo", + "ui.hole": "Foro", + "ui.hole_tap_type": "Tipo di maschiatura del foro", + "ui.hole_type": "Tipo di foro", + "ui.home": "Inizio", + "ui.homeView": "Vista iniziale", + "ui.horizontal_vertical": "Orizzontale/Verticale", + "ui.import_ellipsis": "Importa…", + "ui.infinite": "Infinito", + "ui.insert": "Inserisci", + "ui.inspect": "Esamina", + "ui.intersect": "Interseca", + "ui.isolate": "Isola", + "ui.join": "Unisci", + "ui.joints": "Giunti", + "ui.keyboard_shortcuts": "Scorciatoie da tastiera", + "ui.language": "Lingua", + "ui.length_decimals": "Decimali delle lunghezze", + "ui.light": "Chiaro", + "ui.line": "Linea", + "ui.linetype": "Tipo di linea", + "ui.lock": "Blocca", + "ui.loft": "Loft", + "ui.look_at": "Vista normale", + "ui.look_at_anim_desc": "Viste degli assi, Vista normale, Vista iniziale e Adatta", + "ui.manufacture": "Produzione", + "ui.material_review.axes": "Assi locali del materiale; nessun orientamento del corpo assegnato.", + "ui.material_review.claims": "Fonti e licenze sono dichiarazioni non verificate. I valori mancanti restano sconosciuti.", + "ui.material_review.compressive_strength": "Resistenza a compressione", + "ui.material_review.conditions": "Condizioni dichiarate", + "ui.material_review.density": "Densità", + "ui.material_review.derived": "Moduli isotropi derivati", + "ui.material_review.elasticity": "Elasticità", + "ui.material_review.input": "Incolla una scheda materiale schema-1 (JSON)", + "ui.material_review.limit": "La scheda supera il limite di ingresso di 256 KiB.", + "ui.material_review.moisture_unit": "kg acqua / kg materiale secco", + "ui.material_review.properties": "Proprietà", + "ui.material_review.review": "Esamina scheda", + "ui.material_review.scope": "Solo candidato: non assegnato né salvato. La convalida numerica non è una certificazione ingegneristica.", + "ui.material_review.shear_strength": "Resistenza a taglio", + "ui.material_review.source": "Fonte", + "ui.material_review.specific_heat": "Calore specifico", + "ui.material_review.tensile_strength": "Resistenza a trazione", + "ui.material_review.thermal_conductivity": "Conducibilità termica", + "ui.material_review.thermal_expansion": "Dilatazione termica", + "ui.material_review.title": "Esamina dati del materiale fisico", + "ui.material_review.unknown": "Sconosciuto", + "ui.material_review.yield_strength": "Limite di snervamento", + "ui.measure": "Misura", + "ui.mesh_format_3mf": "3MF", + "ui.mesh_format_3mf_tagged": "3MF con etichette delle facce", + "ui.mesh_format_stl": "STL", + "ui.midpoint": "Punto medio", + "ui.mirror": "Specchia", + "ui.mirror_line": "Asse di simmetria", + "ui.modify": "Modifica", + "ui.move": "Sposta", + "ui.multiple": "Multiplo", + "ui.named_views": "Viste con nome", + "ui.navigation": "Navigazione", + "ui.needs_design": "{command}: apri prima un progetto", + "ui.newSketchGroup": "Nuovo gruppo di schizzi", + "ui.new_body": "Nuovo corpo", + "ui.new_design": "Nuovo progetto", + "ui.no_slicer_found": "Nessuno slicer trovato", + "ui.normal": "Normale", + "ui.normalConstruction": "Normale / Costruzione", + "ui.not_a_program": "{path} non è un programma avviabile", + "ui.object_type": "Tipo di oggetto", + "ui.objects": "Oggetti", + "ui.offer_to_stand_up_y_up_files": "Proponi di raddrizzare i file con asse Y verticale", + "ui.offset": "Offset", + "ui.offset_plane": "Piano offset", + "ui.one_side": "Un lato", + "ui.open": "Apri", + "ui.open_ellipsis": "Apri...", + "ui.open_preferences": "Apri preferenze", + "ui.open_recent": "Apri recenti", + "ui.operation": "Operazione", + "ui.options": "Opzioni", + "ui.orbit": "Orbita", + "ui.orbit_around": "Orbita attorno a", + "ui.orientation": "Orientamento", + "ui.origin": "Origine", + "ui.palette_points": "Punti", + "ui.palette_profile": "Profilo", + "ui.pan": "Panoramica", + "ui.pan_zoom_orbit": "Panoramica, zoom, orbita", + "ui.parallel": "Parallelo", + "ui.parameters": "Parametri", + "ui.paste": "Incolla", + "ui.path": "Percorso", + "ui.pattern_on_path": "Ripetizione su percorso", + "ui.perpendicular": "Perpendicolare", + "ui.perspective_view": "Vista prospettica", + "ui.pinToShortcuts": "Aggiungi alle scorciatoie", + "ui.pinToToolbar": "Aggiungi alla barra degli strumenti", + "ui.pipe": "Tubo", + "ui.placement": "Posizionamento", + "ui.plane": "Piano", + "ui.plane_at_angle": "Piano inclinato", + "ui.point": "Punto", + "ui.point_under_the_cursor": "Punto sotto il cursore", + "ui.points": "Punti", + "ui.polygon": "Poligono", + "ui.preferences": "Preferenze", + "ui.press_a_key": "premi un tasto…", + "ui.profile": "Profilo", + "ui.profile_plane": "Piano del profilo", + "ui.profiles": "Profili", + "ui.project": "Proietta", + "ui.project_face_edges_sketch": "Proietta gli spigoli delle facce nei nuovi schizzi", + "ui.properties": "Proprietà", + "ui.pull_direction": "Direzione di estrazione", + "ui.quantity": "Quantità", + "ui.quantity_2": "Quantità 2", + "ui.quit": "Esci", + "ui.radial_context_menu": "Menu contestuale radiale", + "ui.radius": "Raggio", + "ui.radius_type": "Tipo di raggio", + "ui.rail": "Guida", + "ui.rail_fit": "Adattamento alla guida", + "ui.reachable": "Raggiungibile", + "ui.rectangle": "Rettangolo", + "ui.rectangular_pattern": "Ripetizione rettangolare", + "ui.redo": "Ripeti", + "ui.removeFromToolbar": "Rimuovi dalla barra degli strumenti", + "ui.removeSection": "Rimuovi sezione", + "ui.render": "Rendering", + "ui.renderer": "Motore di rendering", + "ui.repeat": "Ripeti", + "ui.report_a_bug": "Segnala un errore", + "ui.reset": "Reimposta", + "ui.reset_all": "Reimposta tutto", + "ui.reset_the_settings_on_this_page": "Reimposta le impostazioni di questa pagina", + "ui.restore": "Ripristina", + "ui.restore_defaults": "Ripristina valori predefiniti", + "ui.reverse_zoom_direction": "Inverti direzione dello zoom", + "ui.revolve": "Rivoluzione", + "ui.right": "Destra", + "ui.save": "Salva", + "ui.save_as": "Salva con nome", + "ui.save_as_ellipsis": "Salva con nome...", + "ui.save_mesh_no_slicer": "Nessuno slicer trovato: scegli Personalizzato… e seleziona lo slicer, oppure disattiva Invia allo slicer", + "ui.save_mesh_pick_bodies": "Seleziona i corpi da salvare", + "ui.save_mesh_temp_failed": "Impossibile creare {folder}: {error}", + "ui.saved_to": "Salvato {path}", + "ui.scale": "Scala", + "ui.second_rail": "Seconda guida", + "ui.section_analysis": "Analisi in sezione", + "ui.select": "Seleziona", + "ui.selectOther": "Seleziona altro…", + "ui.selectTangentChain": "Seleziona catena tangente", + "ui.select_other_hint": "Seleziona altro: tieni premuto il pulsante sinistro senza muovere il puntatore sul modello (o fai clic destro › Seleziona altro…) per elencare gli oggetti sotto il cursore; fai di nuovo clic nello stesso punto per selezionare l'oggetto successivo.", + "ui.selection": "Selezione", + "ui.send": "Invia", + "ui.send_to_slicer": "Invia allo slicer", + "ui.sent_to_slicer": "Inviato a {slicer}", + "ui.shell": "Svuota", + "ui.show": "Mostra", + "ui.showAll": "Mostra tutto", + "ui.showAllBodies": "Mostra tutti i corpi", + "ui.showAxes": "Mostra assi", + "ui.showDimension": "Mostra quota", + "ui.showOrigin": "Mostra origine", + "ui.showPlanes": "Mostra piani", + "ui.show_constraints": "Vincoli", + "ui.show_construction_geometries": "Geometrie di costruzione", + "ui.show_dimensions": "Quote", + "ui.show_points": "Mostra punti", + "ui.show_profile": "Mostra profilo", + "ui.show_projected_geometries": "Geometrie proiettate", + "ui.simple": "Semplice", + "ui.simulation": "Simulazione", + "ui.single": "Singolo", + "ui.sketch": "Schizzo", + "ui.sketch_dimension": "Quota dello schizzo", + "ui.sketch_grid": "Griglia dello schizzo", + "ui.sketch_scale": "Scala schizzo", + "ui.sketch_status": "Stato dello schizzo", + "ui.sketches": "Schizzi", + "ui.slice": "Genera sezioni", + "ui.slicer": "Slicer", + "ui.slicer_delete_tip": "{program}\nPremi Delete per rimuoverlo dall'elenco", + "ui.slot": "Asola", + "ui.smooth": "Continuità di curvatura", + "ui.smooth_wheel_zoom": "Zoom fluido con rotellina", + "ui.smooth_wheel_zoom_tip": "Disattiva per applicare immediatamente ogni evento della rotellina, senza coda di interpolazione", + "ui.snap": "Aggancio", + "ui.space_mouse_hint": "Sposta e ruota la vista insieme; gli schizzi usano solo panoramica e zoom.", + "ui.space_mouse_navigate": "Naviga con SpaceNavigator / SpaceMouse", + "ui.spacing": "Spaziatura", + "ui.spacing_2": "Spaziatura 2", + "ui.sphere": "Sfera", + "ui.spline": "Spline", + "ui.split_body": "Dividi corpo", + "ui.stand_up_tip": "Dopo l'apertura di un file STEP o IGES con asse Z verticale, proponi un quarto di giro attorno a X", + "ui.start": "Inizio", + "ui.start_radius": "Raggio iniziale", + "ui.stretch": "Stira", + "ui.supersampling": "Sovracampionamento (SSAA)", + "ui.supersampling_adaptive": "Solo quando la vista è ferma", + "ui.supersampling_off": "Disattivato (1×)", + "ui.suppress": "Sospendi", + "ui.sweep": "Sweep", + "ui.sweep_follow_direction": "Segui direzione", + "ui.sweep_keep_as_drawn": "Mantieni come disegnato", + "ui.sweep_turn_with_path": "Ruota con il percorso", + "ui.symmetric": "Simmetrico", + "ui.symmetry": "Simmetria", + "ui.system": "Sistema", + "ui.tangent": "Tangente", + "ui.taper_angle": "Angolo di rastremazione", + "ui.tapped": "Maschiato", + "ui.text": "Testo", + "ui.theme": "Tema", + "ui.thickness": "Spessore", + "ui.thread": "Filettatura", + "ui.timeline_bottom": "Sequenza temporale in basso", + "ui.timeline_left_note": "La disposizione a sinistra mostra la barra di ripristino sopra la struttura delle parti e della scena.", + "ui.timeline_left_sidebar": "Barra laterale sinistra", + "ui.tip_angle": "Angolo della punta", + "ui.to_object": "Fino all'oggetto", + "ui.tool_direction": "Direzione dell'utensile", + "ui.top": "Superiore", + "ui.torus": "Toro", + "ui.total_angle": "Angolo totale", + "ui.trackpad_pan_tip": "I gesti del trackpad eseguono la panoramica (se disattivato: zoom come la rotellina); la rotellina regola lo zoom, la rotella del pollice esegue la panoramica laterale, il pizzicamento regola sempre lo zoom", + "ui.trim": "Ritaglia", + "ui.twist": "Torsione", + "ui.two_finger_scroll_pans": "Scorrimento a due dita per la panoramica", + "ui.two_sides": "Due lati", + "ui.ui_scale": "Scala dell'interfaccia", + "ui.undo": "Annulla", + "ui.unground": "Libera da terra", + "ui.unisolate": "Termina isolamento", + "ui.units": "Unità", + "ui.units_of_new_designs": "Unità dei nuovi progetti", + "ui.unlock": "Sblocca", + "ui.unsuppress": "Riattiva", + "ui.untitled": "Senza titolo", + "ui.up_axis_note": "L'asse verticale nelle viste (viste degli assi, Vista iniziale, Vista normale). I progetti restano invariati.", + "ui.updateToCurrentView": "Aggiorna alla vista corrente", + "ui.variable": "Variabile", + "ui.view_centre": "Centro della vista", + "ui.visual_shaded_hidden_edges": "Ombreggiato con spigoli nascosti", + "ui.visual_shaded_with_edges": "Ombreggiato con spigoli", + "ui.visual_style": "Stile di visualizzazione", + "ui.visual_wireframe": "Reticolo", + "ui.workspace": "area di lavoro", + "ui.x_distance": "Distanza X", + "ui.y_distance": "Distanza Y", + "ui.y_up": "Y verticale", + "ui.z_up": "Z verticale", + "ui.zoom": "Zoom", + "ui.zoom_to_cursor_tip": "La rotellina esegue lo zoom verso il punto sotto il cursore (se disattivato: verso il centro della vista)", + "ui.zoom_to_the_cursor": "Zoom verso il cursore", + "update.available": "È disponibile SolidCraft {version}", + "update.button": "Aggiorna", + "update.button_tip": "È disponibile SolidCraft {version}", + "update.button_version": "Aggiorna a {version}", + "update.check_automatically": "Controlla automaticamente gli aggiornamenti", + "update.check_now": "Controlla ora", + "update.checking": "Controllo…", + "update.copy": "Copia", + "update.dmg_opened": "L'immagine disco è aperta e verificata: trascina SolidCraft in Applicazioni sostituendo la copia precedente, poi riavvia SolidCraft.", + "update.download": "Scarica", + "update.download_open": "Scarica e apri", + "update.downloading": "Download e verifica… {done} di {total} MB", + "update.failed": "Impossibile controllare: {error}", + "update.file": "Scarica permette di ottenere {file}.", + "update.install_failed": "L'aggiornamento non è stato installato: {error}. Nessuna modifica effettuata; Scarica permette invece di ottenere il pacchetto.", + "update.install_msi": "Installa (chiude SolidCraft)", + "update.installed": "SolidCraft {version} è installato. Riavvia per usarlo.", + "update.installer_started": "Il programma di installazione si avvia alla chiusura di SolidCraft.", + "update.later": "Ricordamelo più tardi", + "update.no_notes": "Questa versione non contiene note.", + "update.package_hint": "Questa copia proviene da un {kind}. Scarica il nuovo pacchetto, poi installalo con:", + "update.prefs_dev": "Questa è una build di sviluppo ({version}): non controlla gli aggiornamenti.", + "update.prefs_flatpak": "Questa copia ({version}) viene aggiornata da Flatpak: esegui {command} o usa il centro software. SolidCraft non effettua controlli.", + "update.prefs_label": "Aggiornamenti", + "update.prefs_note": "Questa è la versione SolidCraft {version} ({kind}). Il controllo richiede a GitHub l'ultima versione e non invia altri dati.", + "update.release_page": "Apri pagina della versione", + "update.restart": "Riavvia ora", + "update.restart_later": "Più tardi", + "update.show": "Mostra aggiornamento a {version}", + "update.skip": "Ignora questa versione", + "update.system_hint": "Questa copia è un {kind}. Aggiornala con:", + "update.title": "Aggiornamento disponibile", + "update.up_to_date": "SolidCraft è aggiornato.", + "update.update_now": "Aggiorna ora", + "update.you_have": "La tua versione è {version}." +} diff --git a/crates/ui-egui/src/i18n.rs b/crates/ui-egui/src/i18n.rs index 49fddeef..8658e8b2 100644 --- a/crates/ui-egui/src/i18n.rs +++ b/crates/ui-egui/src/i18n.rs @@ -37,6 +37,7 @@ static GERMAN: Catalog = Catalog::new("de", "Deutsch", include_str!(concat!(env! static SPANISH: Catalog = Catalog::new("es", "Español (España)", include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/../../assets/locales/es.json"))); static FRENCH: Catalog = Catalog::new("fr", "Français", include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/../../assets/locales/fr.json"))); static GALICIAN: Catalog = Catalog::new("gl", "Galego", include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/../../assets/locales/gl.json"))); +static ITALIAN: Catalog = Catalog::new("it", "Italiano", include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/../../assets/locales/it.json"))); static JAPANESE: Catalog = Catalog::new("ja", "日本語", include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/../../assets/locales/ja.json"))); static KOREAN: Catalog = Catalog::new("ko", "한국어", include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/../../assets/locales/ko.json"))); static PORTUGUESE_BR: Catalog = @@ -55,6 +56,7 @@ pub const LOCALES: &[&Catalog] = &[ &SPANISH, &FRENCH, &GALICIAN, + &ITALIAN, &JAPANESE, &KOREAN, &PORTUGUESE_BR, @@ -238,8 +240,8 @@ mod tests { ENGLISH.messages().values().map(String::as_str).collect() } - /// Catalogs delivered complete. English is the source catalog; Japanese was completed - /// upstream, Chinese and Czech land complete here. German, Korean, Russian, French and Ukrainian + /// Catalogs delivered complete. English is the source catalog; Czech, Italian, Japanese and Chinese + /// are complete. German, Korean, Russian, French and Ukrainian /// are partial (German and Korean predate the coverage guards; Russian, French and Ukrainian /// are kept partial so a new label doesn't need more translations), so their gaps fall back /// to English and are reported by `cargo xtask i18n` without failing the build, while @@ -392,6 +394,39 @@ mod tests { assert_eq!(Locale(&PARTIAL).text("ui.extrude"), "Extrude"); } + #[test] + fn italian_labels_templates_and_names_preserve_technical_values() { + assert!(is_supported("it")); + let it = Locale::for_language("it"); + assert_eq!(it.name(), "Italiano"); + for (source, expected) in [ + ("Sketch", "Schizzo"), + ("Extrude", "Estrusione"), + ("Fillet", "Raccordo"), + ("Chamfer", "Smusso"), + ("Body", "Corpo"), + ("New Component", "Nuovo componente"), + ("CONSTRAINTS", "VINCOLI"), + ("Draft", "Sformo"), + ("Counterbore", "Lamatura"), + ("Countersink", "Svasatura"), + ] { + assert_eq!(it.label(source), expected, "{source}"); + } + assert_eq!(it.dynamic("Sketch12"), "Schizzo12"); + assert_eq!(it.dynamic("Body2"), "Corpo2"); + assert_eq!(it.dynamic("Component3"), "Componente3"); + assert_eq!(it.dynamic("Units: mm"), "Unità: mm"); + assert_eq!(it.dynamic("4 degrees of freedom"), "4 gradi di libertà"); + assert_eq!(it.given_name("Fillet"), "Fillet"); + assert_eq!(it.label("solid.extrude"), "solid.extrude"); + assert_eq!(it.format("document.save_changes", &[("name", "Staffa {v2}")]), "Salvare le modifiche a Staffa {v2}?"); + assert_eq!( + it.format("ui.command_palette_hint", &[("example", "solid.extrude {\"distance\": 20}")]), + "Digita un comando, ad es. solid.extrude {\"distance\": 20} — oppure premi S per cercare" + ); + } + /// `label()`'s id fallback (an argument that matches no other entry's English text is /// looked up as an id directly) is how the Sketch Palette reaches `ui.palette_profile` and /// `ui.palette_points` without colliding with "Profile" / "Points" elsewhere (see the diff --git a/crates/ui-egui/src/i18n_ui_tests.rs b/crates/ui-egui/src/i18n_ui_tests.rs index 039b1c5b..26bd8551 100644 --- a/crates/ui-egui/src/i18n_ui_tests.rs +++ b/crates/ui-egui/src/i18n_ui_tests.rs @@ -21,6 +21,24 @@ fn japanese_dialog_keeps_english_scenario_handles() { assert!(h.widget("Cancel").is_some()); } +#[test] +fn italian_dialog_keeps_english_scenario_handles() { + let mut h = Harness::new(); + h.app.preferences.language = "it".into(); + h.app.home.open = false; + h.call("ui.start", json!({"command":"sketch.create"})); + h.frames(3); + assert!(h.widget("Piano").is_some()); + assert!(h.widget("Annulla").is_some()); + assert!(!scenario::handles("dialog:Plane").is_empty()); + assert_eq!(crate::i18n::tr("ui.preferences"), "Preferences"); + + h.app.preferences.language = "en".into(); + h.frames(3); + assert!(h.widget("Plane").is_some()); + assert!(h.widget("Cancel").is_some()); +} + #[test] fn sketch_palette_profile_and_points_rows_show_their_own_translation() { // ui.palette_profile / ui.palette_points are reached by id, not by the usual English-text @@ -67,6 +85,7 @@ fn window_chrome_renders_in_the_active_language() { ("ko", "브라우저", "선택 필터", "면"), ("ru", "БРАУЗЕР", "Фильтр выделения", "Грани"), ("fr", "NAVIGATEUR", "Filtre de sélection", "Faces"), + ("it", "STRUTTURA", "Filtro di selezione", "Facce"), ("uk", "БРАУЗЕР", "Фільтр виділення", "Грані"), ] { let mut h = Harness::new(); @@ -135,6 +154,22 @@ fn home_page_renders_in_the_active_language() { } } let cases = [ + ( + "it", + [ + "Nuovo progetto", + "Apri…", + "Documentazione", + "Segnala un problema", + "Novità", + "Scorciatoie da tastiera", + "Preferenze", + "Recenti", + "Esempi", + "Piastra di esempio", + ], + "non presente\nAperto 2 h fa", + ), ( "ja", [ diff --git a/docs/localization.md b/docs/localization.md index ab2cced7..f5dbbe2a 100644 --- a/docs/localization.md +++ b/docs/localization.md @@ -1,7 +1,7 @@ # UI localization -SolidCraft embeds its translations and works offline. English, Japanese, German, French, Galician, Korean, -Brazilian Portuguese, Russian, Ukrainian, Turkish and Chinese are currently registered in `crates/ui-egui/src/i18n.rs`. Adding a language requires an +SolidCraft embeds its translations and works offline. English, Czech, German, Spanish, French, Galician, Italian, +Japanese, Korean, Brazilian Portuguese, Russian, Turkish, Ukrainian and Chinese are currently registered in `crates/ui-egui/src/i18n.rs`. Adding a language requires an embedded catalog and one registration there; the preferences selector and validation use the same registry. @@ -31,7 +31,7 @@ that looks untranslated. Two guards catch that in the build: - `every_complete_catalog_carries_every_english_message` — adding a key to `en.json` without giving it to a complete catalog fails the tests. English is the source catalog, - Japanese and Chinese are delivered complete; German, Galician, Korean, Brazilian Portuguese, Russian, French, Ukrainian and + Japanese and Chinese are delivered complete; German, Spanish, Galician, Italian, Korean, Brazilian Portuguese, Russian, French, Ukrainian and Turkish are partial — their gaps fall back to English and are reported by `cargo xtask i18n` without failing the build. A new label needs en, ja, zh, de and ko; Russian, French and Ukrainian may follow later. @@ -59,6 +59,14 @@ claim it, or the English-text lookup would silently pick one. ## Rendering and coverage +The Italian catalog uses original translations of SolidCraft's English messages, not text +extracted from commercial CAD software. Its core terminology is Schizzo (Sketch), +Estrusione (Extrude), Raccordo (Fillet), Smusso (Chamfer), Corpo (Body), Componente +(Component) and Vincolo (Constraint). Draft geometry is Sformo, while a report draft +is Bozza; Counterbore is Lamatura and Countersink is Svasatura. Established technical +terms such as Loft, Sweep, Spline and Offset remain unchanged. Command IDs, shortcuts, +file formats, units and user-provided names are not translated. + One immutable `Locale` type handles all translations. Table widgets without an app reference use a render scope that restores the previous locale when it exits, including nested renders. Standalone translated panels enter the same scope. Measure rendered text to size custom