# soilKey Pro -- UI translation catalogue (v0.9.114).
# en values are the pre-i18n strings VERBATIM (byte-identity anchor);
# pt is Brazilian Portuguese. Keys are namespaced by module.
# Generated; review pt for pedological accuracy.

en:
  "pedon.geom_missing_depth": "Missing or non-numeric depth in row(s) %s."
  "pedon.geom_negative": "Negative depth in row(s) %s."
  "pedon.geom_inverted": "Top ≥ bottom (inverted or zero thickness) in row(s) %s."
  "pedon.geom_overlap": "Overlapping horizons at row(s) %s."
  "pedon.geom_gap": "Gap between horizons before row(s) %s."
  "pedon.geom_surface_gap": "Shallowest horizon starts at %g cm, not the surface."
  "pedon.geom_non_monotonic": "Horizons are not in increasing-depth order."
  "pedon.geom_duplicate": "Duplicate designation(s): %s."
  "pedon.geom_ok": "Horizon geometry looks good."
  "pedon.geom_errors_block": "Fix the horizon geometry before building: %s"
  "pedon.geom_warnings": "Horizon geometry: %s"
  "a11y.language": "Interface language"
  "a11y.theme_toggle": "Toggle light / dark theme"
  "app.brand_suffix": " Pro"
  "app.footer_tag": "Transparent, deterministic soil classification -- WRB 2022, SiBCS 5 and USDA Soil Taxonomy."
  "app.footer_license": "GPL-3 | (c) 2026 Hugo Rodrigues"
  "nav.pedon": "Pedon"
  "nav.classify": "Classify"
  "nav.photo": "Photo"
  "nav.chat": "Assistant"
  "nav.spectra": "Spectra"
  "nav.spatial": "Spatial"
  "nav.map": "Map"
  "nav.uncertainty": "Uncertainty"
  "nav.report": "Report"
  "nav.thanks": "Thanks"
  "nav.settings": "Settings"
  "nav.help": "Help"
  "nav.docs": "Docs"
  "nav.support": "Support"
  "nav.support_tip": "Report a problem or ask for help by email."
  "support.title": "Support"
  "support.body": "Found a problem or have a question? There are two ways to reach us:"
  "support.bullet_email": "By email -- use the button below; it opens your mail app with a pre-filled message."
  "support.bullet_issues": "Or open an issue on"
  "support.compose": "Compose email"
  "support.close": "Close"
  "thanks.title": "Acknowledgements & references"
  "thanks.intro": "soilKey stands on the shoulders of the soil-science community. The deterministic keys, the tools they run on, and the data that tests them are the work of many others. Thank you."
  "thanks.s_standards": "Classification standards"
  "thanks.s_packages": "Built on these R packages"
  "thanks.s_data": "Data sources & services"
  "thanks.s_feedback": "Review & feedback"
  "thanks.note": "If your work is used here and you would like the wording changed, or a credit added or removed, please reach out via Support. This list is maintained on a best-effort basis."
  "map.tab_point": "Explore point"
  "map.tab_batch": "Batch profiles"
  "map.tab_grid": "Grid prediction"
  "map.mode_title": "Map mode"
  "map.mode_point": "Explore point"
  "map.mode_batch": "Batch profiles"
  "map.mode_grid": "Grid prediction"
  "map.soilgrids_overlay": "SoilGrids overlay"
  "map.show_soilgrids": "Show the SoilGrids class overlay"
  "map.no_source": "No raster source available."
  "map.using_demo_raster": "Using the bundled demo raster (no source given)."
  "map.neighbour_profile": "Described demo profile"
  "map.sg_source": "SoilGrids source"
  "map.sg_source_help": "Demo = a small bundled raster (offline, instant). Live = the real ISRIC SoilGrids server (slower, needs internet)."
  "map.sg_demo": "Demo (offline)"
  "map.sg_live": "Live (online)"
  "map.using_live": "Using live SoilGrids (ISRIC). The first read may take a few seconds."
  "map.live_fell_back": "Live SoilGrids unavailable -- showing the offline demo raster."
  "map.loading_soilgrids": "Reading SoilGrids..."
  "map.legend_help_title": "What am I looking at?"
  "map.legend_overlay_body": "is the SoilGrids WRB MostProbable prior: the single most likely Reference Soil Group predicted for each cell in this area."
  "map.legend_overlay_demo": "Source: bundled offline demo raster."
  "map.legend_overlay_live": "Source: live ISRIC SoilGrids server (~250 m)."
  "map.legend_grid_body": "colours each grid cell by the %s class it keys to under the current method."
  "map.legend_point_body": "The dark dot is your point, the dashed ring is the query buffer, and the small dots are nearby demo profiles for context."
  "chat.settings": "Assistant settings"
  "chat.assistant": "Assistant"
  "chat.open_assistant": "Open the assistant"
  "chat.close": "Close"
  "chat.drawer_title": "Talk to soilKey Pro"
  "chat.groq_key": "Groq API key (optional)"
  "chat.groq_key_help": "Paste a free Groq API key to chat with a real open Llama/Qwen model. With no key, a built-in assistant still answers from your profile. The key stays in this browser session."
  "chat.get_key": "Get a free Groq key"
  "chat.attach_photo": "Soil photo (optional)"
  "chat.attach_photo_help": "Attach a soil-profile photo, then 'Read colours' to extract its Munsell colours into the profile."
  "chat.read_munsell": "Read colours from photo"
  "chat.grounding_note": "Answers are grounded in soilKey's deterministic keys -- the assistant explains the result, it never invents a classification."
  "chat.placeholder": "Ask about your profile, its classification, or soil science..."
  "chat.send": "Send"
  "chat.backend_groq": "Live model connected (Groq)"
  "chat.backend_scripted": "Demo assistant -- add a Groq key for a live model"
  "chat.empty": "Talk to soilKey Pro -- ask about the current profile and its WRB / SiBCS / USDA classification, or attach a photo to read its Munsell colours."
  "chat.system_prompt": "You are soilKey Pro, a soil-science assistant embedded in the soilKey app. Answer concisely and helpfully about soil profiles, horizons, diagnostics and the WRB 2022, SiBCS 5 and USDA Soil Taxonomy systems. The classification is computed DETERMINISTICALLY by soilKey's rule engine (shown below) -- explain and discuss it, but NEVER invent or override a classification. If asked for the class, report what soilKey found. Reply in the user's language."
  "chat.thinking": "Thinking..."
  "chat.groq_failed": "(The live model could not be reached, so here is the built-in answer.)"
  "chat.scripted_need_pedon": "Build or load a soil profile first (on the Profile tab), then I can tell you about it."
  "chat.scripted_horizons": "Here is the current profile:"
  "chat.reference_group": "Reference Soil Group"
  "chat.scripted_missing": "Evidence grade and any missing data for the current profile:"
  "chat.scripted_photo_hint": "To read Munsell colours from a soil photo, attach it in the settings panel (left) and press 'Read colours from photo'."
  "chat.scripted_summary": "Here is the current profile and its classification under all three systems:"
  "chat.scripted_addkey_hint": "_Tip: paste a free Groq API key in the settings panel for a full conversational model._"
  "chat.need_pedon": "Build or load a profile first."
  "chat.attach_first": "Attach a photo first (settings panel)."
  "chat.user_asked_munsell": "Read the Munsell colours from %s"
  "chat.reading_colour": "Reading colours from the photo..."
  "chat.munsell_failed": "Sorry, I could not read the colours: %s"
  "chat.munsell_ok": "Done -- I read the photo and added %s Munsell colour value(s) to the profile (see the Profile and Classify tabs)."
  "ribbon.no_pedon": "No pedon yet."
  "ribbon.load_example": "Load example"
  "ribbon.built": "Pedon built"
  "ribbon.id": "ID"
  "ribbon.horizons": "Horizons"
  "ribbon.site": "Site"
  "ribbon.no_coords": "no coords"
  "ribbon.unnamed": "(unnamed)"
  "help.title": "Welcome to soilKey Pro"
  "help.intro": "Classify a soil profile under WRB 2022, SiBCS 5 and USDA Soil Taxonomy 13 -- the deterministic key is never delegated to a language model."
  "help.workflow": "Workflow:"
  "help.step_pedon": " -- build a profile from a fixture, a CSV, or by hand."
  "help.step_classify": " -- run all three systems with the full key trace."
  "help.step_enrich_b": "Photo / Spectra"
  "help.step_enrich": " -- enrich the pedon from images or Vis-NIR spectra."
  "help.step_map": " -- point prior, batch soil map, or a gridded prediction."
  "help.step_robust_b": "Uncertainty / Report"
  "help.step_robust": " -- robustness and a downloadable cross-system report."
  "help.close": "Close"
  "help.load_classify": "Load example & classify"
  "welcome.title": "Welcome to soilKey Pro"
  "welcome.step_of": "Step %d of %d"
  "welcome.skip": "Skip tour"
  "welcome.back": "Back"
  "welcome.next": "Next"
  "welcome.take_tour": "Take the welcome tour"
  "welcome.s1_body": "soilKey names a soil profile under three systems at once -- WRB 2022, SiBCS 5 and USDA Soil Taxonomy -- using transparent, deterministic keys (never a language model). This quick tour shows the workflow."
  "welcome.s2_title": "1 - Build a profile"
  "welcome.s2_body": "On the Pedon tab, start from a ready-made example, upload a CSV of horizons, or a blank sheet. Every cell is editable; add site coordinates to unlock the SoilGrids and climate priors."
  "welcome.s3_title": "2 - Classify"
  "welcome.s3_body": "The Classify tab runs all three keys and shows the names side by side with the full decision trace. Missing a measurement? 'Complete missing data' fills blanks from SoilGrids, attached spectra, or interpolation -- flagged honestly as predicted, so the evidence grade drops."
  "welcome.s4_title": "3 - Go further"
  "welcome.s4_body": "Read colour from a field photo, gap-fill from a Vis-NIR spectrum, map many profiles at once, test robustness, and download a report. Save your session to JSON any time to pick up later."
  "welcome.load_example": "Load the example & classify"
  "welcome.start_scratch": "Start from scratch"
  "pedon.seed_profile": "1. Seed the profile"
  "pedon.source_fixture": "Fixture"
  "pedon.source_upload": "Upload CSV"
  "pedon.source_blank": "Blank"
  "pedon.canonical_profile": "Canonical profile"
  "pedon.horizons_csv_tsv": "Horizons CSV / TSV"
  "pedon.download_starter_csv": "Download a starter CSV"
  "pedon.load_horizons": "Load horizons"
  "pedon.site_metadata": "2. Site metadata"
  "pedon.profile_id": "Profile ID"
  "pedon.latitude": "Latitude"
  "pedon.longitude": "Longitude"
  "pedon.country_iso2": "Country (ISO-2)"
  "pedon.parent_material": "Parent material"
  "pedon.build_update_pedon": "Build / update pedon"
  "pedon.horizons_click_edit": "Horizons (click a cell to edit)"
  "pedon.csv": "CSV"
  "pedon.add_row": "Add row"
  "pedon.depth_profile": "Depth profile"
  "pedon.no_horizons_download": "No horizons to download."
  "pedon.save_open_session": "Save / open session"
  "pedon.save_session": "Save session (.json)"
  "pedon.open_session": "Open a saved session (.json)"
  "pedon.session_loaded": "Session loaded: %d horizon(s). Press Build pedon to classify."
  "pedon.session_loaded_built": "Session restored: pedon '%s' with %d horizon(s) is ready."
  "pedon.session_load_failed": "Could not read the session file: %s"
  "pedon.loaded_example_ferralsol": "Loaded the example Ferralsol — press Classify to see all three systems."
  "pedon.could_not_load_fixture": "Could not load that fixture."
  "pedon.choose_csv_first": "Choose a CSV first."
  "pedon.csv_parse_failed": "CSV parse failed: %s"
  "pedon.loaded_n": "Loaded %d horizon(s)."
  "pedon.load_add_horizon_first": "Load or add at least one horizon first."
  "pedon.latitude_range": "Latitude must be between -90 and 90."
  "pedon.longitude_range": "Longitude must be between -180 and 180."
  "pedon.could_not_build_pedon": "Could not build pedon: %s"
  "pedon.pedon_built_ready": "Pedon built -- ready to classify."
  "pedon.no_pedon_yet": " No pedon built yet."
  "pedon.pedon_ready": "Pedon '%s' ready (%d horizons)."
  "classify.run_classification": "Run classification"
  "classify.systems": "Systems"
  "classify.run": "Classify"
  "classify.deepest_level": "Deepest level"
  "classify.usda_family": "USDA family (5th level)"
  "classify.wrb_depth_specifiers": "WRB depth specifiers"
  "classify.key_deterministic": "The taxonomic key is deterministic -- identical inputs always give the same class. Engine and strict mode are set on the Settings tab."
  "classify.pick_one_system": "Pick at least one system."
  "classify.classifying": "Classifying..."
  "classify.engine_note": "Engine: %s%s"
  "classify.tier3_strict_on": " | Tier-3 strict ON"
  "classify.press_classify": " Press Classify to run the keys."
  "classify.decision_detail": "Decision detail"
  "classify.key_trace": "Key trace"
  "classify.system": "System"
  "classify.ambiguities": "Ambiguities"
  "classify.missing_data": "Missing data"
  "classify.measuring_refine": "These are measurements the key still wants. Providing them (in the Pedon table, or via Complete missing data / Photo / Spectra) would confirm the class or resolve a close call -- and usually raise the evidence grade."
  "classify.no_trace_available": "No trace available"
  "classify.note_col": "Note"
  "classify.status_pass": "met"
  "classify.status_fail": "not met"
  "classify.status_indeterminate": "needs data"
  "classify.status_selected": "assigned"
  "classify.status_info": "note"
  "classify.col_phase": "level"
  "classify.col_code": "code"
  "classify.col_name": "name"
  "classify.col_status": "criteria"
  "classify.col_missing": "missing"
  "classify.no_close_calls": "No close calls -- the assigned class was a clear match."
  "classify.amb_sep": " -- "
  "classify.near_miss": "near miss"
  "classify.no_missing_complete": "(no missing data -- profile is complete)"
  "classify.applies_on_run": "Applied the next time you press Classify."
  "classify.hint_need_pedon": "Build a pedon first (Pedon tab)."
  "classify.hint_press": "Press Classify to run the keys."
  "classify.hint_stale": "Settings changed -- press Classify to update."
  "classify.hint_current": "Results are up to date."
  "classify.stale_banner": "These results are from the previous settings. Press Classify to update them."
  "classify.trace_intro": "Every candidate class the key tested, in key order. 'not met' just means that class's criteria did not apply -- it is expected for most rows; the 'assigned' row is the class that matched. 'needs data' means a criterion could not be checked for want of a measurement."
  "classify.amb_intro": "Reference soil groups that nearly matched too. The key chose the assigned class over these; each line is the near-miss and why."
  "photo.live_needs_chat": "Live mode needs a configured ellmer chat. In R, run e.g. options(soilKey.vlm_chat = ellmer::chat_anthropic()) before launching the app."
  "photo.step1_provider": "1. Provider"
  "photo.provider_demo": "Demo"
  "photo.provider_demo_hint": " -- offline, no model or key"
  "photo.provider_local": "Local model (Ollama)"
  "photo.provider_local_hint": " -- free, runs on your machine"
  "photo.provider_live": "Cloud model (ellmer)"
  "photo.provider_live_hint": " -- a chat you preconfigured"
  "photo.provider_desc": "Choose how the photo is read: an offline demo, or a free local model."
  "photo.route_note": "This tab reads soil colour <b>from your photo</b> -- a vision model estimates each horizon\u0027s Munsell hue/value/chroma <b>directly from the image</b> (best with a Munsell colour card in frame). The <b>Spectra</b> tab is a separate, physics-based route: a Vis-NIR reflectance spectrum &rarr; CIE XYZ &rarr; Munsell via the <b>munsellinterpol</b> package (Glenn Davis; D65-to-Illuminant-C). Same Munsell target, two independent ways to reach it."
  "photo.provider_help": "Demo returns a canned, schema-valid response offline (no model, no key). Local runs a free open-source vision model on your own computer via Ollama -- no API key, and no image leaves the machine (default llama3.2-vision; qwen2.5vl also works)."
  "photo.ollama_detected": "Local Ollama server detected -- ready."
  "photo.ollama_not_running": "No local Ollama server found. Install it from ollama.com, then run 'ollama pull llama3.2-vision' and 'ollama serve', and reselect Local."
  "photo.ellmer_missing": "The 'ellmer' package is required for the Local model. Install it with install.packages('ellmer')."
  "photo.extract_explainer": "Colour is read <b>per horizon</b>: for each layer, the vision model looks at the matching <b>depth band</b> of the profile photo and <b>estimates its Munsell</b> hue/value/chroma directly, with a <b>confidence</b> for each value. (The CIE-anchored <b>munsellinterpol</b> conversion -- reflectance &rarr; XYZ &rarr; Munsell -- is the <b>Spectra</b> route, not this one.) The colour only fills the profile -- it never drives the classification."
  "photo.card_where_read": "Where each colour was read"
  "photo.where_read_none": "Run 'Extract Munsell colour' to see which region of the photo each horizon's colour was sampled from."
  "photo.use_demo": "Use the illustrative demo photo"
  "photo.demo_name": "demo_profile.jpg (illustrative)"
  "photo.step2_munsell": "2. Profile photo -> Munsell"
  "photo.profile_photograph": "Profile photograph"
  "photo.extract_munsell": "Extract Munsell colour"
  "photo.step3_site": "3. Field sheet -> site"
  "photo.field_sheet_image": "Field-sheet image"
  "photo.extract_site": "Extract site metadata"
  "photo.build_pedon_first": "Build a pedon first."
  "photo.choose_profile_photo_first": "Choose a profile photo first."
  "photo.extracting_munsell": "Extracting Munsell colour..."
  "photo.extraction_failed": "Extraction failed: %s"
  "photo.log_munsell_extraction": "[%s] Munsell extraction: %d field(s) added across %d attempt(s)."
  "photo.munsell_merged": "Munsell colour merged into the pedon."
  "photo.choose_field_sheet_first": "Choose a field-sheet image first."
  "photo.extracting_site": "Extracting site metadata..."
  "photo.log_site_extraction": "[%s] Site metadata extraction complete."
  "photo.site_merged": "Site metadata merged into the pedon."
  "photo.card_profile_photo": "Profile photo"
  "photo.card_munsell_in_pedon": "Munsell colour in the pedon"
  "photo.card_extraction_log": "Extraction log"
  "photo.alt_no_photo": "No photo uploaded yet."
  "photo.alt_uploaded_photo": "Uploaded soil profile photograph"
  "photo.upload_in_sidebar": "Upload a profile photo in the sidebar."
  "photo.pct_conf": "%.0f%% conf."
  "photo.no_horizons": "No horizons"
  "photo.note_col": "Note"
  "photo.no_extraction_yet": "(no extraction run yet)"
  "spectra.step1_attach": "1. Attach a spectrum"
  "spectra.vnir_csv_label": "Vis-NIR CSV (row = horizon)"
  "spectra.help_one_row": "One row per horizon, one column per wavelength. Row count must match the number of horizons in the pedon."
  "spectra.use_demo": "Use the demo spectrum"
  "spectra.demo_missing": "Demo spectrum file not found."
  "spectra.attach_to_pedon": "Attach to pedon"
  "spectra.step2_gapfill": "2. Gap-fill options"
  "spectra.prediction_method": "Prediction method"
  "spectra.method_mbl": "Memory-based learning"
  "spectra.method_plsr_local": "Local PLSR"
  "spectra.method_pretrained": "Pre-trained PLSR"
  "spectra.ossl_region": "OSSL region"
  "spectra.overwrite_existing": "Overwrite existing values"
  "spectra.gapfill_from_spectra": "Gap-fill from spectra"
  "spectra.help_first_use": "First use downloads an OSSL cache; this can take a minute and needs network access."
  "spectra.build_pedon_first": "Build a pedon first."
  "spectra.choose_vnir_csv_first": "Choose a Vis-NIR CSV first."
  "spectra.could_not_read": "Could not read spectrum: %s"
  "spectra.row_count_mismatch": "Spectrum has %d rows but the pedon has %d horizons."
  "spectra.attached_matrix": "Attached a %d x %d Vis-NIR matrix."
  "spectra.attach_spectrum_first": "Attach a Vis-NIR spectrum first."
  "spectra.predicting_progress": "Predicting from spectra..."
  "spectra.gapfill_failed": "Gap-fill failed: %s"
  "spectra.gapfill_done": "Horizon attributes gap-filled from spectra."
  "spectra.card_status": "Spectrum status"
  "spectra.card_attached_spectrum": "Attached Vis-NIR spectrum"
  "spectra.step_preproc": "Spectral preprocessing"
  "spectra.pp_absorbance": "Absorbance (log 1/R)"
  "spectra.pp_smooth": "Savitzky-Golay smoothing"
  "spectra.pp_derivative": "Derivative"
  "spectra.pp_deriv_none": "None"
  "spectra.pp_deriv_1": "1st"
  "spectra.pp_deriv_2": "2nd"
  "spectra.pp_advanced": "Advanced (window / polynomial)"
  "spectra.pp_window": "SG window"
  "spectra.pp_poly": "SG polynomial"
  "spectra.status_none_short": "no spectrum"
  "spectra.ylab_absorbance": "Absorbance (log 1/R)"
  "spectra.ylab_deriv1": "SG 1st derivative"
  "spectra.ylab_deriv2": "SG 2nd derivative"
  "spectra.card_attributes": "Horizon attributes (post gap-fill)"
  "spectra.status_none": "No spectrum attached. Upload a Vis-NIR CSV and press 'Attach'."
  "spectra.status_attached": "Vis-NIR matrix attached: %d horizon row(s) x %d wavelength(s)."
  "spatial.title": "SoilGrids prior"
  "spatial.raster_path_label": "Raster path or URL"
  "spatial.raster_path_placeholder": "GeoTIFF / COG, or leave blank for test raster"
  "spatial.raster_help": "Point at a SoilGrids WRB raster (files.isric.org/soilgrids). If blank, the option soilKey.test_raster is used (handy for demos)."
  "spatial.buffer_label": "Buffer radius (m)"
  "spatial.topn_label": "Keep top N classes"
  "spatial.run": "Query spatial prior"
  "spatial.requires_terra": "Requires the 'terra' package."
  "spatial.terra_not_installed": "Package 'terra' is not installed."
  "spatial.querying": "Querying SoilGrids..."
  "spatial.no_pedon_yet": "No pedon yet."
  "spatial.coordinates": "Coordinates: "
  "spatial.press_to_run": " Press 'Query spatial prior' to run."
  "spatial.unavailable_header": "Spatial prior (SoilGrids) — optional"
  "spatial.unavailable_body": "This tab cross-checks the key against the SoilGrids WRB map at your coordinates. It needs a raster source, which is not bundled (the global grid is large). The classification key works fine without it — and the Batch classify tab needs no raster at all."
  "spatial.unavailable_details": "Show the technical message"
  "spatial.provide_raster_pre": "To enable it, paste a GeoTIFF/COG path or URL above, or set "
  "spatial.provide_raster_post": " before launching the app."
  "spatial.rsg_probabilities": "RSG probabilities"
  "spatial.distribution": "Distribution"
  "spatial.na": "n/a"
  "spatial.probability": "Probability"
  "mpoint.sidebar_title": "Map & spatial prior"
  "mpoint.base_map": "Base map"
  "mpoint.classification_system": "Classification system"
  "mpoint.soilgrids_raster": "SoilGrids raster (path or URL)"
  "mpoint.raster_placeholder": "GeoTIFF / COG, or blank for test raster"
  "mpoint.raster_help": "Point at a SoilGrids WRB raster (files.isric.org/soilgrids). If blank, the option soilKey.test_raster is used (handy for demos)."
  "mpoint.buffer_radius": "Buffer radius (m)"
  "mpoint.keep_top_n": "Keep top N classes"
  "mpoint.col_rank": "#"
  "mpoint.prior_system": "Report classes as"
  "mpoint.prior_system_help": "The prior is the SoilGrids WRB MostProbable layer. WRB is native; SiBCS is a WRB->SiBCS (Schad 2023) translation of the same pixels. USDA is not offered here (no USDA SoilGrids layer) -- use the Classify tab for USDA from profile data."
  "mpoint.prior_wrb": "WRB 2022 (SoilGrids native)"
  "mpoint.prior_sibcs": "SiBCS 5 (WRB crosswalk)"
  "mpoint.buffer_circle": "Query buffer (%s m)"
  "mpoint.topn_caption": "Top %d classes within a %s m buffer"
  "mpoint.query_prior": "Query prior here"
  "mpoint.click_to_place": " Click the map to place the point. Requires 'leaflet' and 'terra'."
  "mpoint.location": "Location"
  "mpoint.class_distribution": "Class distribution at point"
  "mpoint.typical_attributes": "Typical attributes"
  "mpoint.no_point_yet": "No point yet -- click the map to place one."
  "mpoint.point_label": "Point: "
  "mpoint.from_pedon": "from pedon"
  "mpoint.map_click": "map click"
  "mpoint.place_point_first": "Place a point on the map first."
  "mpoint.terra_not_installed": "Package 'terra' is not installed."
  "mpoint.querying_prior": "Querying SoilGrids prior..."
  "mpoint.no_pixels_here": "No SoilGrids pixels here. Set a raster source."
  "mpoint.popup_top_class": "<b>%s</b><br/>%s (%.0f%%)<br/><span style='color:#666'>buffer %g m</span>"
  "mpoint.na": "n/a"
  "mpoint.no_pixels_buffer": "No SoilGrids pixels in the buffer. Provide a raster path/URL, or set options(soilKey.test_raster = '...')."
  "mpoint.col_code": "Code"
  "mpoint.col_class": "Class"
  "mpoint.col_probability": "Probability"
  "mpoint.query_for_attrs": "Query a point with a configured raster to see typical attributes."
  "mbatch.title": "Batch classify & map"
  "mbatch.point_source": "Point source"
  "mbatch.source_demo": "Demo (fixtures)"
  "mbatch.source_upload": "Upload CSV"
  "mbatch.n_demo": "Number of demo points"
  "mbatch.long_csv": "Long-format CSV"
  "mbatch.csv_help": "One row per horizon. Columns: an id (profile_id / id), lat & lon, top_cm, bottom_cm, plus any horizon attributes (designation, clay_pct, ph_h2o, ...)."
  "mbatch.download_template": "Download a template CSV"
  "mbatch.csv_read_failed": "Could not read the CSV: %s"
  "mbatch.colour_by_system": "Colour by system"
  "mbatch.run": "Classify & map"
  "mbatch.export": "Export GeoPackage"
  "mbatch.report": "Download report (HTML)"
  "mbatch.no_profiles_report": "Run the classification first, then download the report."
  "mbatch.deterministic_help": "Each point is a described profile, classified by the deterministic key. GeoPackage export needs 'sf'."
  "mbatch.soil_map": "Soil map"
  "mbatch.classified_points": "Classified points"
  "mbatch.classifying": "Classifying profiles..."
  "mbatch.upload_first": "Upload a CSV first."
  "mbatch.n_points": "%d points"
  "mbatch.no_classifiable": "No classifiable points."
  "mbatch.col_id": "ID"
  "mbatch.col_lat": "Lat"
  "mbatch.col_lon": "Lon"
  "mbatch.nothing_to_export": "Nothing to export -- classify a point set first."
  "mbatch.sf_required": "Package 'sf' is required for GeoPackage export."
  "mbatch.err_no_id": "No profile-id column found (expected one of: profile_id, id, perfil)."
  "mbatch.err_no_latlon": "No lat/lon columns found (expected lat/latitude and lon/longitude)."
  "mbatch.err_no_depth": "Horizon rows need at least top_cm and bottom_cm columns."
  "mgrid.grid_prediction": "Grid prediction"
  "mgrid.method": "Method"
  "mgrid.method_covariates": "SoilGrids + key"
  "mgrid.method_interpolate": "Interpolate pts"
  "mgrid.method_overlay": "SoilGrids overlay"
  "mgrid.classification_system": "Classification system"
  "mgrid.area_of_interest": "Area of interest (bbox)"
  "mgrid.lat_max": "Lat max"
  "mgrid.lat_min": "Lat min"
  "mgrid.lon_min": "Lon min"
  "mgrid.lon_max": "Lon max"
  "mgrid.use_current_view": "Use current map view"
  "mgrid.cells_per_side": "Grid cells per side"
  "mgrid.soilgrids_raster": "SoilGrids raster (path/URL)"
  "mgrid.raster_placeholder": "blank = test raster / overlay source"
  "mgrid.predict_grid": "Predict grid"
  "mgrid.export_geotiff": "Export GeoTIFF"
  "mgrid.predicted_class_raster": "Predicted class raster"
  "mgrid.class_summary": "Class summary"
  "mgrid.cells_capped": "%d cells -- capped to %d."
  "mgrid.cells_count": "%d cells."
  "mgrid.help_covariates": "Builds a pseudo-pedon per cell from SoilGrids covariates and runs the key. Samples SoilGrids live over the network (in parallel) -- allow a couple of minutes. Morphological diagnostics are unavailable, so the evidence grade is C."
  "mgrid.help_interpolate": "Nearest-neighbour of the Batch-classify points (or demo points). Offline; quality follows point density."
  "mgrid.help_overlay": "Samples the SoilGrids MostProbable WRB raster -- ML prediction, shown for comparison with the key."
  "mgrid.err_invalid_bbox": "Set a valid bounding box."
  "mgrid.err_empty_bbox": "Bounding box is empty (min must be < max)."
  "mgrid.err_no_terra": "Package 'terra' is not installed."
  "mgrid.predicting_grid": "Predicting grid..."
  "mgrid.progress_sampling": "sampling SoilGrids over the network (a couple of minutes)..."
  "mgrid.progress_classifying": "classifying cells"
  "mgrid.err_no_classes": "No classes produced. For SoilGrids methods, check the area is on land / the raster source; for interpolation, classify some points first."
  "mgrid.err_no_raster_source": "This overlay compares the SoilGrids WRB prediction with the key, and needs a raster source (not bundled — the global grid is large). Paste a WRB raster URL/path above, or set options(soilKey.test_raster = '...'). Optional: the 'Interpolate pts' method and the Batch classify tab work without a raster."
  "mgrid.legend_class": "Class"
  "mgrid.na": "n/a"
  "mgrid.col_class": "Class"
  "mgrid.col_cells": "Cells"
  "mgrid.col_share": "Share"
  "mgrid.err_nothing_to_export": "Nothing to export -- predict a grid first."
  "uncert.analysis_title": "Uncertainty analysis"
  "uncert.source_title": "Source"
  "uncert.click_row_hint": "Click a row to see that point\u0027s full distribution and sensitivity."
  "uncert.drill_title": "%s -- %s (full distribution)"
  "uncert.source_active": "Active profile"
  "uncert.source_group": "Group of points"
  "uncert.group_none": "No group loaded yet -- add points in the Map tab (Batch mode)."
  "uncert.group_available": "%d points available from the Map batch."
  "uncert.running_group": "Analysing each point..."
  "uncert.group_none_body": "No group of points yet. Load them in the Map tab (Batch mode), then press Run analysis here."
  "uncert.group_n_points": "Points"
  "uncert.group_mean_conf": "Mean confidence"
  "uncert.group_stable": "Stable (>=80%)"
  "uncert.group_per_point": "Per-point uncertainty"
  "uncert.col_point": "Point"
  "uncert.system": "System"
  "uncert.compare_at": "Compare at"
  "uncert.level_rsg_order": "RSG / Order"
  "uncert.level_full_name": "Full name"
  "uncert.mc_runs": "Monte-Carlo runs"
  "uncert.compute_sensitivity": "Compute attribute sensitivity"
  "uncert.run_analysis": "Run uncertainty analysis"
  "uncert.perturb_help": "Each cell is perturbed by an amount scaled to its provenance evidence grade: measured values barely move, assumed values move a lot. The posterior reflects how trustworthy the inputs are."
  "uncert.running_mc": "Running provenance-weighted Monte-Carlo..."
  "uncert.press_run": " Press 'Run uncertainty analysis' to start."
  "uncert.analysis_failed": "Analysis failed"
  "uncert.not_enough_data": "Not enough data"
  "uncert.no_perturbable": "This pedon has no perturbable attributes."
  "uncert.most_likely_class": "Most likely class"
  "uncert.na": "n/a"
  "uncert.posterior_probability": "Posterior probability"
  "uncert.entropy": "Entropy"
  "uncert.posterior_distribution": "Posterior distribution"
  "uncert.attribute_sensitivity": "Attribute sensitivity"
  "uncert.no_posterior": "no posterior"
  "uncert.p_class": "P(class)"
  "uncert.sensitivity_not_computed": "Sensitivity not computed"
  "uncert.note_col": "Note"
  "report.title": "Cross-system report"
  "report.report_title_label": "Report title"
  "report.help_runs_all_keys": "The report runs all three keys on the current pedon and embeds the horizon table and provenance log."
  "report.download_html": "Download HTML"
  "report.download_pdf": "Download PDF"
  "report.pdf_needs_latex": "PDF needs LaTeX; falls back to HTML if unavailable."
  "report.rendering_html": "Rendering HTML report..."
  "report.rendering_pdf": "Rendering PDF report..."
  "report.pdf_failed_fallback": "PDF rendering failed (LaTeX missing?) -- wrote HTML instead."
  "report.preview": "Report preview"
  "report.bundles_intro": "The downloadable report bundles:"
  "report.bundle_results": "WRB 2022, SiBCS 5 and USDA ST 13 results"
  "report.bundle_trace": "Per-system key trace and evidence grade"
  "report.bundle_table_log": "The horizon table and provenance log"
  "report.active_depth_options": "Active depth-level options:"
  "report.state_on": "on"
  "report.state_off": "off"
  "report.opt_family": "USDA family (5th level) prepended to the subgroup"
  "report.opt_specifiers": "WRB depth specifiers on depth-anchored qualifiers"
  "report.summary_pedon": "Pedon:"
  "report.unnamed": "(unnamed)"
  "report.summary_horizons": "Horizons:"
  "report.summary_provenance_rows": "Provenance rows:"
  "settings.diagnostic_engine": "Diagnostic engine"
  "settings.threshold_engine": "Threshold engine"
  "settings.engine_soilkey": "soilKey (strict WRB)"
  "settings.engine_aqp": "aqp (regional tolerance)"
  "settings.engine_help": "soilKey applies canonical WRB 2022 thresholds; aqp relaxes a few horizon thresholds to match KSSL / regional lab methodology."
  "settings.strict_mode": "WRB Tier-3 strict mode"
  "settings.strict_help": "Strengthens per-RSG numerical gates (e.g. Ferralsol CEC, Vertisol clay). Borderline profiles may fall through to a different RSG."
  "settings.specifiers": "WRB depth specifiers"
  "settings.specifiers_help": "Auto-attach Epi-/Endo-/Bathy-/Amphi- to depth-anchored qualifiers from the feature's depth (e.g. Gleyic -> Endogleyic)."
  "settings.missing_data_policy": "Missing-data policy"
  "settings.on_missing_label": "When an attribute the key needs is absent"
  "settings.on_missing_warn": "Warn"
  "settings.on_missing_silent": "Silent"
  "settings.on_missing_error": "Error"
  "settings.on_missing_help": "Silent is recommended in the app -- missing attributes surface in the Classify tab as 'measurements that would refine the result'."
  "settings.include_familia": "Resolve SiBCS 5th level (familia)"
  "settings.include_family": "Resolve USDA 5th level (family)"
  "settings.family_help": "USDA family prepends class modifiers (particle-size, mineralogy, CEC-activity, temperature regime, ...) to the subgroup name."
  "ui.na": "n/a"
  "ui.evidence": "Evidence"
  "ui.not_run": "not run"
  "ui.no_result": "No result --"
  "ui.unnamed": "(unnamed)"
  "ui.rsg_order": "RSG / Order"
  "ui.principal_qualifiers": "Principal qualifiers"
  "ui.supplementary": "Supplementary"
  "ui.add_one_horizon": "Add at least one horizon"
  "ui.horizons_need_topbot": "Horizons need top_cm / bottom_cm"
  "ui.column_not_present": "Column '%s' not present"
  "ui.depth_cm": "Depth (cm)"
  "ui.attach_spectrum": "Attach a Vis-NIR spectrum to see it here"
  "ui.horizon_prefix": "Horizon "
  "ui.wavelength_nm": "Wavelength (nm)"
  "ui.reflectance": "Reflectance"
  "ui.build_pedon_on": "Build a pedon on the "
  "ui.pedon_tab": "Pedon"
  "ui.tab_first": " tab first."

pt:
  "pedon.geom_missing_depth": "Profundidade ausente ou não numérica na(s) linha(s) %s."
  "pedon.geom_negative": "Profundidade negativa na(s) linha(s) %s."
  "pedon.geom_inverted": "Topo ≥ base (invertido ou espessura zero) na(s) linha(s) %s."
  "pedon.geom_overlap": "Horizontes sobrepostos na(s) linha(s) %s."
  "pedon.geom_gap": "Lacuna entre horizontes antes da(s) linha(s) %s."
  "pedon.geom_surface_gap": "O horizonte mais raso começa em %g cm, não na superfície."
  "pedon.geom_non_monotonic": "Os horizontes não estão em ordem crescente de profundidade."
  "pedon.geom_duplicate": "Designação(ões) duplicada(s): %s."
  "pedon.geom_ok": "Geometria dos horizontes OK."
  "pedon.geom_errors_block": "Corrija a geometria dos horizontes antes de construir: %s"
  "pedon.geom_warnings": "Geometria dos horizontes: %s"
  "a11y.language": "Idioma da interface"
  "a11y.theme_toggle": "Alternar tema claro / escuro"
  "app.brand_suffix": " Pro"
  "app.footer_tag": "Classificação de solos transparente e determinística -- WRB 2022, SiBCS 5 e USDA Soil Taxonomy."
  "app.footer_license": "GPL-3 | (c) 2026 Hugo Rodrigues"
  "nav.pedon": "Perfil"
  "nav.classify": "Classificar"
  "nav.photo": "Foto"
  "nav.chat": "Assistente"
  "nav.spectra": "Espectro"
  "nav.spatial": "Espacial"
  "nav.map": "Mapa"
  "nav.uncertainty": "Incerteza"
  "nav.report": "Relatório"
  "nav.thanks": "Agradecimentos"
  "nav.settings": "Configurações"
  "nav.help": "Ajuda"
  "nav.docs": "Docs"
  "nav.support": "Suporte"
  "nav.support_tip": "Reportar um problema ou pedir ajuda por e-mail."
  "support.title": "Suporte"
  "support.body": "Encontrou um problema ou tem uma dúvida? Há duas formas de falar conosco:"
  "support.bullet_email": "Por e-mail -- use o botão abaixo; ele abre o seu aplicativo de e-mail com uma mensagem pré-preenchida."
  "support.bullet_issues": "Ou abra uma issue no"
  "support.compose": "Escrever e-mail"
  "support.close": "Fechar"
  "thanks.title": "Agradecimentos & referências"
  "thanks.intro": "O soilKey se apoia nos ombros da comunidade de ciência do solo. As chaves determinísticas, as ferramentas em que rodam e os dados que as testam são trabalho de muitos outros. Obrigado."
  "thanks.s_standards": "Padrões de classificação"
  "thanks.s_packages": "Construído sobre estes pacotes R"
  "thanks.s_data": "Fontes de dados & serviços"
  "thanks.s_feedback": "Revisão & feedback"
  "thanks.note": "Se o seu trabalho é usado aqui e você gostaria de mudar o texto, ou de adicionar/remover um crédito, entre em contato pelo Suporte. Esta lista é mantida da melhor forma possível."
  "map.tab_point": "Explorar ponto"
  "map.tab_batch": "Perfis em lote"
  "map.tab_grid": "Predição em grade"
  "map.mode_title": "Modo do mapa"
  "map.mode_point": "Explorar ponto"
  "map.mode_batch": "Perfis em lote"
  "map.mode_grid": "Predição em grade"
  "map.soilgrids_overlay": "Sobreposição SoilGrids"
  "map.show_soilgrids": "Mostrar a sobreposição de classes do SoilGrids"
  "map.no_source": "Nenhuma fonte de raster disponível."
  "map.using_demo_raster": "Usando o raster de demonstração incluído (nenhuma fonte informada)."
  "map.neighbour_profile": "Perfil de demonstração descrito"
  "map.sg_source": "Fonte SoilGrids"
  "map.sg_source_help": "Demo = um raster pequeno incluído (offline, instantâneo). Ao vivo = o servidor real ISRIC SoilGrids (mais lento, requer internet)."
  "map.sg_demo": "Demo (offline)"
  "map.sg_live": "Ao vivo (online)"
  "map.using_live": "Usando o SoilGrids ao vivo (ISRIC). A primeira leitura pode levar alguns segundos."
  "map.live_fell_back": "SoilGrids ao vivo indisponível -- mostrando o raster de demonstração offline."
  "map.loading_soilgrids": "Lendo o SoilGrids..."
  "map.legend_help_title": "O que estou vendo?"
  "map.legend_overlay_body": "é o prior WRB MostProbable do SoilGrids: o Grupo de Solo de Referência mais provável previsto para cada célula nesta área."
  "map.legend_overlay_demo": "Fonte: raster de demonstração offline incluído."
  "map.legend_overlay_live": "Fonte: servidor ISRIC SoilGrids ao vivo (~250 m)."
  "map.legend_grid_body": "colore cada célula da grade pela classe %s à qual ela é atribuída pelo método atual."
  "map.legend_point_body": "O ponto escuro é o seu ponto, o anel tracejado é o buffer de consulta e os pontos pequenos são perfis de demonstração próximos para contexto."
  "chat.settings": "Configurações do assistente"
  "chat.assistant": "Assistente"
  "chat.open_assistant": "Abrir o assistente"
  "chat.close": "Fechar"
  "chat.drawer_title": "Fale com o soilKey Pro"
  "chat.groq_key": "Chave da API Groq (opcional)"
  "chat.groq_key_help": "Cole uma chave gratuita da API Groq para conversar com um modelo aberto Llama/Qwen real. Sem chave, um assistente interno ainda responde a partir do seu perfil. A chave fica nesta sessão do navegador."
  "chat.get_key": "Obter uma chave Groq gratuita"
  "chat.attach_photo": "Foto do solo (opcional)"
  "chat.attach_photo_help": "Anexe uma foto do perfil de solo e clique em 'Ler cores' para extrair as cores de Munsell para o perfil."
  "chat.read_munsell": "Ler cores da foto"
  "chat.grounding_note": "As respostas se baseiam nas chaves determinísticas do soilKey -- o assistente explica o resultado, nunca inventa uma classificação."
  "chat.placeholder": "Pergunte sobre o seu perfil, a classificação ou ciência do solo..."
  "chat.send": "Enviar"
  "chat.backend_groq": "Modelo ao vivo conectado (Groq)"
  "chat.backend_scripted": "Assistente demo -- adicione uma chave Groq para um modelo ao vivo"
  "chat.empty": "Converse com o soilKey Pro -- pergunte sobre o perfil atual e a sua classificação WRB / SiBCS / USDA, ou anexe uma foto para ler as cores de Munsell."
  "chat.system_prompt": "Você é o soilKey Pro, um assistente de ciência do solo embutido no aplicativo soilKey. Responda de forma concisa e útil sobre perfis de solo, horizontes, diagnósticos e os sistemas WRB 2022, SiBCS 5 e USDA Soil Taxonomy. A classificação é calculada DETERMINISTICAMENTE pelo motor de regras do soilKey (mostrado abaixo) -- explique e discuta, mas NUNCA invente nem sobreponha uma classificação. Se perguntarem a classe, informe o que o soilKey encontrou. Responda no idioma do usuário."
  "chat.thinking": "Pensando..."
  "chat.groq_failed": "(Não foi possível acessar o modelo ao vivo, então aqui está a resposta interna.)"
  "chat.scripted_need_pedon": "Construa ou carregue um perfil de solo primeiro (na aba Perfil) para eu poder falar sobre ele."
  "chat.scripted_horizons": "Aqui está o perfil atual:"
  "chat.reference_group": "Grupo de Solo de Referência"
  "chat.scripted_missing": "Grau de evidência e dados ausentes do perfil atual:"
  "chat.scripted_photo_hint": "Para ler cores de Munsell de uma foto de solo, anexe-a no painel de configurações (esquerda) e clique em 'Ler cores da foto'."
  "chat.scripted_summary": "Aqui estão o perfil atual e a sua classificação nos três sistemas:"
  "chat.scripted_addkey_hint": "_Dica: cole uma chave gratuita da API Groq no painel de configurações para um modelo conversacional completo._"
  "chat.need_pedon": "Construa ou carregue um perfil primeiro."
  "chat.attach_first": "Anexe uma foto primeiro (painel de configurações)."
  "chat.user_asked_munsell": "Ler as cores de Munsell de %s"
  "chat.reading_colour": "Lendo as cores da foto..."
  "chat.munsell_failed": "Desculpe, não consegui ler as cores: %s"
  "chat.munsell_ok": "Pronto -- li a foto e adicionei %s valor(es) de cor de Munsell ao perfil (veja as abas Perfil e Classificar)."
  "ribbon.no_pedon": "Nenhum perfil ainda."
  "ribbon.load_example": "Carregar exemplo"
  "ribbon.built": "Perfil construído"
  "ribbon.id": "ID"
  "ribbon.horizons": "Horizontes"
  "ribbon.site": "Local"
  "ribbon.no_coords": "sem coordenadas"
  "ribbon.unnamed": "(sem nome)"
  "help.title": "Bem-vindo ao soilKey Pro"
  "help.intro": "Classifique um perfil de solo sob WRB 2022, SiBCS 5 e USDA Soil Taxonomy 13 -- a chave determinística nunca é delegada a um modelo de linguagem."
  "help.workflow": "Fluxo de trabalho:"
  "help.step_pedon": " -- construa um perfil a partir de um exemplo canônico, um CSV ou manualmente."
  "help.step_classify": " -- rode os três sistemas com o traço completo da chave."
  "help.step_enrich_b": "Foto / Espectro"
  "help.step_enrich": " -- enriqueça o perfil a partir de imagens ou espectros Vis-NIR."
  "help.step_map": " -- prior pontual, mapa de solos em lote ou predição em grade."
  "help.step_robust_b": "Incerteza / Relatório"
  "help.step_robust": " -- robustez e um relatório multissistema para download."
  "help.close": "Fechar"
  "help.load_classify": "Carregar exemplo e classificar"
  "welcome.title": "Bem-vindo ao soilKey Pro"
  "welcome.step_of": "Passo %d de %d"
  "welcome.skip": "Pular tour"
  "welcome.back": "Voltar"
  "welcome.next": "Avançar"
  "welcome.take_tour": "Fazer o tour de boas-vindas"
  "welcome.s1_body": "O soilKey nomeia um perfil de solo em três sistemas ao mesmo tempo -- WRB 2022, SiBCS 5 e USDA Soil Taxonomy -- usando chaves determinísticas e transparentes (nunca um modelo de linguagem). Este tour rápido mostra o fluxo de trabalho."
  "welcome.s2_title": "1 - Monte um perfil"
  "welcome.s2_body": "Na aba Perfil, comece de um exemplo pronto, envie um CSV de horizontes, ou uma folha em branco. Toda célula é editável; adicione as coordenadas do local para liberar os priors do SoilGrids e do clima."
  "welcome.s3_title": "2 - Classifique"
  "welcome.s3_body": "A aba Classificar roda as três chaves e mostra os nomes lado a lado com o rastro completo de decisão. Falta alguma medida? 'Completar dados faltantes' preenche lacunas a partir do SoilGrids, de espectros anexados, ou por interpolação -- marcado honestamente como previsto, então o grau de evidência cai."
  "welcome.s4_title": "3 - Vá além"
  "welcome.s4_body": "Leia a cor de uma foto de campo, complete lacunas a partir de um espectro Vis-NIR, mapeie muitos perfis de uma vez, teste a robustez e baixe um relatório. Salve sua sessão em JSON a qualquer momento para retomar depois."
  "welcome.load_example": "Carregar o exemplo e classificar"
  "welcome.start_scratch": "Começar do zero"
  "pedon.seed_profile": "1. Inicie o perfil"
  "pedon.source_fixture": "Exemplo canônico"
  "pedon.source_upload": "Enviar CSV"
  "pedon.source_blank": "Em branco"
  "pedon.canonical_profile": "Perfil canônico"
  "pedon.horizons_csv_tsv": "CSV / TSV de horizontes"
  "pedon.download_starter_csv": "Baixar um CSV inicial"
  "pedon.load_horizons": "Carregar horizontes"
  "pedon.site_metadata": "2. Metadados do local"
  "pedon.profile_id": "ID do perfil"
  "pedon.latitude": "Latitude"
  "pedon.longitude": "Longitude"
  "pedon.country_iso2": "País (ISO-2)"
  "pedon.parent_material": "Material de origem"
  "pedon.build_update_pedon": "Construir / atualizar perfil"
  "pedon.horizons_click_edit": "Horizontes (clique numa célula para editar)"
  "pedon.csv": "CSV"
  "pedon.add_row": "Adicionar linha"
  "pedon.depth_profile": "Perfil de profundidade"
  "pedon.no_horizons_download": "Nenhum horizonte para baixar."
  "pedon.save_open_session": "Salvar / abrir sessão"
  "pedon.save_session": "Salvar sessão (.json)"
  "pedon.open_session": "Abrir uma sessão salva (.json)"
  "pedon.session_loaded": "Sessão carregada: %d horizonte(s). Clique em Construir perfil para classificar."
  "pedon.session_loaded_built": "Sessão restaurada: perfil '%s' com %d horizonte(s) pronto."
  "pedon.session_load_failed": "Não foi possível ler o arquivo de sessão: %s"
  "pedon.loaded_example_ferralsol": "Ferralsol de exemplo carregado — pressione Classificar para ver os três sistemas."
  "pedon.could_not_load_fixture": "Não foi possível carregar esse exemplo canônico."
  "pedon.choose_csv_first": "Escolha um CSV primeiro."
  "pedon.csv_parse_failed": "Falha ao analisar o CSV: %s"
  "pedon.loaded_n": "%d horizonte(s) carregado(s)."
  "pedon.load_add_horizon_first": "Carregue ou adicione pelo menos um horizonte primeiro."
  "pedon.latitude_range": "A latitude deve estar entre -90 e 90."
  "pedon.longitude_range": "A longitude deve estar entre -180 e 180."
  "pedon.could_not_build_pedon": "Não foi possível construir o perfil: %s"
  "pedon.pedon_built_ready": "Perfil construído -- pronto para classificar."
  "pedon.no_pedon_yet": " Nenhum perfil construído ainda."
  "pedon.pedon_ready": "Perfil '%s' pronto (%d horizontes)."
  "classify.run_classification": "Rodar classificação"
  "classify.systems": "Sistemas"
  "classify.run": "Classificar"
  "classify.deepest_level": "Nível mais profundo"
  "classify.usda_family": "Família USDA (5º nível)"
  "classify.wrb_depth_specifiers": "Especificadores de profundidade WRB"
  "classify.key_deterministic": "A chave taxonômica é determinística -- entradas idênticas sempre dão a mesma classe. O motor e o modo estrito são definidos na aba Configurações."
  "classify.pick_one_system": "Selecione ao menos um sistema."
  "classify.classifying": "Classificando..."
  "classify.engine_note": "Motor: %s%s"
  "classify.tier3_strict_on": " | Tier-3 estrito ATIVO"
  "classify.press_classify": " Pressione Classificar para rodar as chaves."
  "classify.decision_detail": "Detalhe da decisão"
  "classify.key_trace": "Rastro da chave"
  "classify.system": "Sistema"
  "classify.ambiguities": "Ambiguidades"
  "classify.missing_data": "Dados ausentes"
  "classify.measuring_refine": "Estas são medidas que a chave ainda quer. Fornecê-las (na tabela do Perfil, ou via Completar dados faltantes / Foto / Espectro) confirmaria a classe ou resolveria um caso limítrofe -- e geralmente eleva o grau de evidência."
  "classify.no_trace_available": "Nenhum rastro disponível"
  "classify.note_col": "Nota"
  "classify.status_pass": "atende"
  "classify.status_fail": "não atende"
  "classify.status_indeterminate": "faltam dados"
  "classify.status_selected": "atribuído"
  "classify.status_info": "nota"
  "classify.col_phase": "nível"
  "classify.col_code": "código"
  "classify.col_name": "nome"
  "classify.col_status": "critérios"
  "classify.col_missing": "ausente"
  "classify.no_close_calls": "Nenhum caso limítrofe -- a classe atribuída foi um enquadramento claro."
  "classify.amb_sep": " -- "
  "classify.near_miss": "quase enquadrou"
  "classify.no_missing_complete": "(nenhum dado ausente -- o perfil está completo)"
  "classify.applies_on_run": "Aplicado na próxima vez que você clicar em Classificar."
  "classify.hint_need_pedon": "Construa um perfil primeiro (aba Perfil)."
  "classify.hint_press": "Clique em Classificar para rodar as chaves."
  "classify.hint_stale": "As configurações mudaram -- clique em Classificar para atualizar."
  "classify.hint_current": "Os resultados estão atualizados."
  "classify.stale_banner": "Estes resultados são das configurações anteriores. Clique em Classificar para atualizá-los."
  "classify.trace_intro": "Cada classe candidata que a chave testou, na ordem da chave. 'não atende' significa apenas que os critérios daquela classe não se aplicaram -- é esperado na maioria das linhas; a linha 'atribuído' é a classe que enquadrou. 'faltam dados' significa que um critério não pôde ser verificado por falta de uma medida."
  "classify.amb_intro": "Grupos de referência de solo que quase também enquadraram. A chave escolheu a classe atribuída em vez destes; cada linha é o quase-enquadramento e o porquê."
  "photo.live_needs_chat": "O modo Live precisa de um chat ellmer configurado. No R, execute por exemplo options(soilKey.vlm_chat = ellmer::chat_anthropic()) antes de iniciar o app."
  "photo.step1_provider": "1. Provedor"
  "photo.provider_demo": "Demo"
  "photo.provider_demo_hint": " -- offline, sem modelo ou chave"
  "photo.provider_local": "Modelo local (Ollama)"
  "photo.provider_local_hint": " -- gratuito, roda na sua máquina"
  "photo.provider_live": "Modelo na nuvem (ellmer)"
  "photo.provider_live_hint": " -- um chat que você configurou"
  "photo.provider_desc": "Escolha como a foto é lida: um demo offline, ou um modelo local gratuito."
  "photo.route_note": "Esta aba lê a cor do solo <b>a partir da sua foto</b> -- um modelo de visão estima o matiz/valor/croma de Munsell de cada horizonte <b>diretamente da imagem</b> (idealmente com uma carta de cores Munsell no enquadramento). A aba <b>Espectro</b> é um caminho separado, baseado em física: um espectro de reflectância Vis-NIR &rarr; CIE XYZ &rarr; Munsell via o pacote <b>munsellinterpol</b> (Glenn Davis; adaptação D65 para Iluminante C). O mesmo alvo Munsell, dois caminhos independentes."
  "photo.provider_help": "O Demo retorna uma resposta pré-definida e válida pelo esquema, offline (sem modelo, sem chave). O Local roda um modelo de visão livre e de código aberto no seu próprio computador via Ollama -- sem chave de API, e nenhuma imagem sai da máquina (padrão llama3.2-vision; qwen2.5vl também funciona)."
  "photo.ollama_detected": "Servidor Ollama local detectado -- pronto."
  "photo.ollama_not_running": "Nenhum servidor Ollama local encontrado. Instale em ollama.com, então rode 'ollama pull llama3.2-vision' e 'ollama serve', e selecione Local novamente."
  "photo.ellmer_missing": "O pacote 'ellmer' é necessário para o modelo Local. Instale com install.packages('ellmer')."
  "photo.extract_explainer": "A cor é lida <b>por horizonte</b>: para cada camada, o modelo de visão observa a <b>faixa de profundidade</b> correspondente na foto do perfil e <b>estima o Munsell</b> (matiz/valor/croma) diretamente, com uma <b>confiança</b> para cada valor. (A conversão ancorada em CIE via <b>munsellinterpol</b> -- reflectância &rarr; XYZ &rarr; Munsell -- é o caminho da aba <b>Espectro</b>, não deste.) A cor apenas preenche o perfil -- ela nunca conduz a classificação."
  "photo.card_where_read": "De onde cada cor foi lida"
  "photo.where_read_none": "Rode 'Extrair cor Munsell' para ver de qual região da foto a cor de cada horizonte foi amostrada."
  "photo.use_demo": "Usar a foto de demonstração (ilustrativa)"
  "photo.demo_name": "demo_profile.jpg (ilustrativa)"
  "photo.step2_munsell": "2. Foto do perfil -> Munsell"
  "photo.profile_photograph": "Fotografia do perfil"
  "photo.extract_munsell": "Extrair cor Munsell"
  "photo.step3_site": "3. Ficha de campo -> sítio"
  "photo.field_sheet_image": "Imagem da ficha de campo"
  "photo.extract_site": "Extrair metadados do sítio"
  "photo.build_pedon_first": "Construa um perfil primeiro."
  "photo.choose_profile_photo_first": "Escolha uma foto do perfil primeiro."
  "photo.extracting_munsell": "Extraindo cor Munsell..."
  "photo.extraction_failed": "Falha na extração: %s"
  "photo.log_munsell_extraction": "[%s] Extração Munsell: %d campo(s) adicionado(s) em %d tentativa(s)."
  "photo.munsell_merged": "Cor Munsell incorporada ao perfil."
  "photo.choose_field_sheet_first": "Escolha uma imagem da ficha de campo primeiro."
  "photo.extracting_site": "Extraindo metadados do sítio..."
  "photo.log_site_extraction": "[%s] Extração de metadados do sítio concluída."
  "photo.site_merged": "Metadados do sítio incorporados ao perfil."
  "photo.card_profile_photo": "Foto do perfil"
  "photo.card_munsell_in_pedon": "Cor Munsell no perfil"
  "photo.card_extraction_log": "Registro de extração"
  "photo.alt_no_photo": "Nenhuma foto enviada ainda."
  "photo.alt_uploaded_photo": "Fotografia enviada do perfil de solo"
  "photo.upload_in_sidebar": "Envie uma foto do perfil na barra lateral."
  "photo.pct_conf": "%.0f%% conf."
  "photo.no_horizons": "Sem horizontes"
  "photo.note_col": "Nota"
  "photo.no_extraction_yet": "(nenhuma extração executada ainda)"
  "spectra.step1_attach": "1. Anexar um espectro"
  "spectra.vnir_csv_label": "CSV Vis-NIR (linha = horizonte)"
  "spectra.help_one_row": "Uma linha por horizonte, uma coluna por comprimento de onda. O número de linhas deve corresponder ao número de horizontes do perfil."
  "spectra.use_demo": "Usar o espectro de demonstração"
  "spectra.demo_missing": "Arquivo do espectro de demonstração não encontrado."
  "spectra.attach_to_pedon": "Anexar ao perfil"
  "spectra.step2_gapfill": "2. Opções de preenchimento de lacunas"
  "spectra.prediction_method": "Método de predição"
  "spectra.method_mbl": "Aprendizado baseado em memória"
  "spectra.method_plsr_local": "PLSR local"
  "spectra.method_pretrained": "PLSR pré-treinado"
  "spectra.ossl_region": "Região OSSL"
  "spectra.overwrite_existing": "Sobrescrever valores existentes"
  "spectra.gapfill_from_spectra": "Preencher lacunas a partir do espectro"
  "spectra.help_first_use": "O primeiro uso baixa um cache OSSL; isso pode levar um minuto e requer acesso à rede."
  "spectra.build_pedon_first": "Construa um perfil primeiro."
  "spectra.choose_vnir_csv_first": "Escolha um CSV Vis-NIR primeiro."
  "spectra.could_not_read": "Não foi possível ler o espectro: %s"
  "spectra.row_count_mismatch": "O espectro tem %d linhas, mas o perfil tem %d horizontes."
  "spectra.attached_matrix": "Anexada uma matriz Vis-NIR de %d x %d."
  "spectra.attach_spectrum_first": "Anexe um espectro Vis-NIR primeiro."
  "spectra.predicting_progress": "Predizendo a partir do espectro..."
  "spectra.gapfill_failed": "Falha no preenchimento de lacunas: %s"
  "spectra.gapfill_done": "Atributos do horizonte preenchidos a partir do espectro."
  "spectra.card_status": "Status do espectro"
  "spectra.card_attached_spectrum": "Espectro Vis-NIR anexado"
  "spectra.step_preproc": "Pré-processamento espectral"
  "spectra.pp_absorbance": "Absorbância (log 1/R)"
  "spectra.pp_smooth": "Suavização Savitzky-Golay"
  "spectra.pp_derivative": "Derivada"
  "spectra.pp_deriv_none": "Nenhuma"
  "spectra.pp_deriv_1": "1ª"
  "spectra.pp_deriv_2": "2ª"
  "spectra.pp_advanced": "Avançado (janela / polinômio)"
  "spectra.pp_window": "Janela SG"
  "spectra.pp_poly": "Polinômio SG"
  "spectra.status_none_short": "sem espectro"
  "spectra.ylab_absorbance": "Absorbância (log 1/R)"
  "spectra.ylab_deriv1": "1ª derivada SG"
  "spectra.ylab_deriv2": "2ª derivada SG"
  "spectra.card_attributes": "Atributos do horizonte (após preenchimento)"
  "spectra.status_none": "Nenhum espectro anexado. Envie um CSV Vis-NIR e pressione 'Anexar'."
  "spectra.status_attached": "Matriz Vis-NIR anexada: %d linha(s) de horizonte x %d comprimento(s) de onda."
  "spatial.title": "Prior SoilGrids"
  "spatial.raster_path_label": "Caminho ou URL do raster"
  "spatial.raster_path_placeholder": "GeoTIFF / COG, ou deixe em branco para o raster de teste"
  "spatial.raster_help": "Aponte para um raster WRB do SoilGrids (files.isric.org/soilgrids). Se em branco, a opção soilKey.test_raster é usada (útil para demonstrações)."
  "spatial.buffer_label": "Raio do buffer (m)"
  "spatial.topn_label": "Manter as N principais classes"
  "spatial.run": "Consultar prior espacial"
  "spatial.requires_terra": "Requer o pacote 'terra'."
  "spatial.terra_not_installed": "O pacote 'terra' não está instalado."
  "spatial.querying": "Consultando o SoilGrids..."
  "spatial.no_pedon_yet": "Nenhum perfil ainda."
  "spatial.coordinates": "Coordenadas: "
  "spatial.press_to_run": " Pressione 'Consultar prior espacial' para rodar."
  "spatial.unavailable_header": "Prior espacial (SoilGrids) — opcional"
  "spatial.unavailable_body": "Esta aba cruza a chave com o mapa WRB do SoilGrids nas suas coordenadas. Precisa de um raster, que não vem embutido (a grade global é pesada). A chave de classificação funciona sem isto — e a aba Batch classify não precisa de raster nenhum."
  "spatial.unavailable_details": "Mostrar a mensagem técnica"
  "spatial.provide_raster_pre": "Para ativar, cole acima o caminho/URL de um GeoTIFF/COG, ou defina "
  "spatial.provide_raster_post": " antes de iniciar o aplicativo."
  "spatial.rsg_probabilities": "Probabilidades de GSR"
  "spatial.distribution": "Distribuição"
  "spatial.na": "n/d"
  "spatial.probability": "Probabilidade"
  "mpoint.sidebar_title": "Mapa e prior espacial"
  "mpoint.base_map": "Mapa base"
  "mpoint.classification_system": "Sistema de classificação"
  "mpoint.soilgrids_raster": "Raster SoilGrids (caminho ou URL)"
  "mpoint.raster_placeholder": "GeoTIFF / COG, ou em branco para o raster de teste"
  "mpoint.raster_help": "Aponte para um raster WRB do SoilGrids (files.isric.org/soilgrids). Se em branco, a opção soilKey.test_raster é usada (útil para demonstrações)."
  "mpoint.buffer_radius": "Raio do buffer (m)"
  "mpoint.keep_top_n": "Manter as N melhores classes"
  "mpoint.col_rank": "#"
  "mpoint.prior_system": "Reportar classes como"
  "mpoint.prior_system_help": "O prior é a camada WRB MostProbable do SoilGrids. WRB é nativo; SiBCS é uma tradução WRB->SiBCS (Schad 2023) dos mesmos pixels. USDA não é oferecido aqui (não há camada USDA do SoilGrids) -- use a aba Classificar para USDA a partir de dados do perfil."
  "mpoint.prior_wrb": "WRB 2022 (nativo do SoilGrids)"
  "mpoint.prior_sibcs": "SiBCS 5 (correspondência WRB)"
  "mpoint.buffer_circle": "Buffer de consulta (%s m)"
  "mpoint.topn_caption": "As %d principais classes num buffer de %s m"
  "mpoint.query_prior": "Consultar prior aqui"
  "mpoint.click_to_place": " Clique no mapa para posicionar o ponto. Requer 'leaflet' e 'terra'."
  "mpoint.location": "Localização"
  "mpoint.class_distribution": "Distribuição de classes no ponto"
  "mpoint.typical_attributes": "Atributos típicos"
  "mpoint.no_point_yet": "Nenhum ponto ainda -- clique no mapa para posicionar um."
  "mpoint.point_label": "Ponto: "
  "mpoint.from_pedon": "do perfil"
  "mpoint.map_click": "clique no mapa"
  "mpoint.place_point_first": "Posicione um ponto no mapa primeiro."
  "mpoint.terra_not_installed": "O pacote 'terra' não está instalado."
  "mpoint.querying_prior": "Consultando o prior do SoilGrids..."
  "mpoint.no_pixels_here": "Nenhum pixel do SoilGrids aqui. Defina uma fonte de raster."
  "mpoint.popup_top_class": "<b>%s</b><br/>%s (%.0f%%)<br/><span style='color:#666'>buffer %g m</span>"
  "mpoint.na": "n/d"
  "mpoint.no_pixels_buffer": "Nenhum pixel do SoilGrids no buffer. Forneça um caminho/URL de raster, ou defina options(soilKey.test_raster = '...')."
  "mpoint.col_code": "Código"
  "mpoint.col_class": "Classe"
  "mpoint.col_probability": "Probabilidade"
  "mpoint.query_for_attrs": "Consulte um ponto com um raster configurado para ver os atributos típicos."
  "mbatch.title": "Classificar em lote e mapear"
  "mbatch.point_source": "Fonte de pontos"
  "mbatch.source_demo": "Demonstração (exemplos canônicos)"
  "mbatch.source_upload": "Enviar CSV"
  "mbatch.n_demo": "Número de pontos de demonstração"
  "mbatch.long_csv": "CSV em formato longo"
  "mbatch.csv_help": "Uma linha por horizonte. Colunas: um id (profile_id / id), lat e lon, top_cm, bottom_cm, mais quaisquer atributos do horizonte (designation, clay_pct, ph_h2o, ...)."
  "mbatch.download_template": "Baixar um CSV modelo"
  "mbatch.csv_read_failed": "Não foi possível ler o CSV: %s"
  "mbatch.colour_by_system": "Colorir por sistema"
  "mbatch.run": "Classificar e mapear"
  "mbatch.export": "Exportar GeoPackage"
  "mbatch.report": "Baixar relatório (HTML)"
  "mbatch.no_profiles_report": "Rode a classificação primeiro e então baixe o relatório."
  "mbatch.deterministic_help": "Cada ponto é um perfil descrito, classificado pela chave determinística. A exportação para GeoPackage requer o 'sf'."
  "mbatch.soil_map": "Mapa de solos"
  "mbatch.classified_points": "Pontos classificados"
  "mbatch.classifying": "Classificando perfis..."
  "mbatch.upload_first": "Envie um CSV primeiro."
  "mbatch.n_points": "%d pontos"
  "mbatch.no_classifiable": "Nenhum ponto classificável."
  "mbatch.col_id": "ID"
  "mbatch.col_lat": "Lat"
  "mbatch.col_lon": "Lon"
  "mbatch.nothing_to_export": "Nada a exportar -- classifique um conjunto de pontos primeiro."
  "mbatch.sf_required": "O pacote 'sf' é necessário para a exportação para GeoPackage."
  "mbatch.err_no_id": "Nenhuma coluna de id de perfil encontrada (esperava uma de: profile_id, id, perfil)."
  "mbatch.err_no_latlon": "Nenhuma coluna de lat/lon encontrada (esperava lat/latitude e lon/longitude)."
  "mbatch.err_no_depth": "As linhas de horizonte precisam de ao menos as colunas top_cm e bottom_cm."
  "mgrid.grid_prediction": "Predição em grade"
  "mgrid.method": "Método"
  "mgrid.method_covariates": "SoilGrids + chave"
  "mgrid.method_interpolate": "Interpolar pontos"
  "mgrid.method_overlay": "Sobreposição SoilGrids"
  "mgrid.classification_system": "Sistema de classificação"
  "mgrid.area_of_interest": "Área de interesse (bbox)"
  "mgrid.lat_max": "Lat máx"
  "mgrid.lat_min": "Lat mín"
  "mgrid.lon_min": "Lon mín"
  "mgrid.lon_max": "Lon máx"
  "mgrid.use_current_view": "Usar vista atual do mapa"
  "mgrid.cells_per_side": "Células da grade por lado"
  "mgrid.soilgrids_raster": "Raster SoilGrids (caminho/URL)"
  "mgrid.raster_placeholder": "vazio = raster de teste / fonte de sobreposição"
  "mgrid.predict_grid": "Predizer grade"
  "mgrid.export_geotiff": "Exportar GeoTIFF"
  "mgrid.predicted_class_raster": "Raster de classe predita"
  "mgrid.class_summary": "Resumo das classes"
  "mgrid.cells_capped": "%d células -- limitado a %d."
  "mgrid.cells_count": "%d células."
  "mgrid.help_covariates": "Constrói um pseudo-perfil por célula a partir de covariáveis do SoilGrids e roda a chave. Amostra o SoilGrids ao vivo pela rede (em paralelo) -- aguarde alguns minutos. Diagnósticos morfológicos não estão disponíveis, então o grau de evidência é C."
  "mgrid.help_interpolate": "Vizinho mais próximo dos pontos da classificação em lote (ou pontos de demonstração). Offline; a qualidade segue a densidade de pontos."
  "mgrid.help_overlay": "Amostra o raster WRB MostProbable do SoilGrids -- predição por aprendizado de máquina, mostrada para comparação com a chave."
  "mgrid.err_invalid_bbox": "Defina uma caixa delimitadora válida."
  "mgrid.err_empty_bbox": "A caixa delimitadora está vazia (mín deve ser < máx)."
  "mgrid.err_no_terra": "O pacote 'terra' não está instalado."
  "mgrid.predicting_grid": "Predizendo grade..."
  "mgrid.progress_sampling": "amostrando SoilGrids pela rede (alguns minutos)..."
  "mgrid.progress_classifying": "classificando células"
  "mgrid.err_no_classes": "Nenhuma classe produzida. Para métodos SoilGrids, verifique se a área está em terra / a fonte do raster; para interpolação, classifique alguns pontos primeiro."
  "mgrid.err_no_raster_source": "Esta sobreposição compara a predição WRB do SoilGrids com a chave, e precisa de um raster (não vem embutido — a grade global é pesada). Cole acima uma URL/caminho de raster WRB, ou defina options(soilKey.test_raster = '...'). Opcional: o método 'Interpolate pts' e a aba Batch classify funcionam sem raster."
  "mgrid.legend_class": "Classe"
  "mgrid.na": "n/d"
  "mgrid.col_class": "Classe"
  "mgrid.col_cells": "Células"
  "mgrid.col_share": "Proporção"
  "mgrid.err_nothing_to_export": "Nada para exportar -- prediga uma grade primeiro."
  "uncert.analysis_title": "Análise de incerteza"
  "uncert.source_title": "Fonte"
  "uncert.click_row_hint": "Clique numa linha para ver a distribuição completa e a sensibilidade daquele ponto."
  "uncert.drill_title": "%s -- %s (distribuição completa)"
  "uncert.source_active": "Perfil ativo"
  "uncert.source_group": "Grupo de pontos"
  "uncert.group_none": "Nenhum grupo carregado -- adicione pontos na aba Mapa (modo Lote)."
  "uncert.group_available": "%d pontos disponíveis do lote do Mapa."
  "uncert.running_group": "Analisando cada ponto..."
  "uncert.group_none_body": "Ainda não há grupo de pontos. Carregue-os na aba Mapa (modo Lote) e clique em Rodar análise aqui."
  "uncert.group_n_points": "Pontos"
  "uncert.group_mean_conf": "Confiança média"
  "uncert.group_stable": "Estáveis (>=80%)"
  "uncert.group_per_point": "Incerteza por ponto"
  "uncert.col_point": "Ponto"
  "uncert.system": "Sistema"
  "uncert.compare_at": "Comparar em"
  "uncert.level_rsg_order": "GSR / Ordem"
  "uncert.level_full_name": "Nome completo"
  "uncert.mc_runs": "Rodadas de Monte-Carlo"
  "uncert.compute_sensitivity": "Calcular sensibilidade dos atributos"
  "uncert.run_analysis": "Rodar análise de incerteza"
  "uncert.perturb_help": "Cada célula é perturbada por um valor proporcional ao grau de evidência de sua proveniência: valores medidos quase não se movem, valores assumidos se movem bastante. O posterior reflete o quão confiáveis são as entradas."
  "uncert.running_mc": "Rodando Monte-Carlo ponderado por proveniência..."
  "uncert.press_run": " Pressione 'Rodar análise de incerteza' para começar."
  "uncert.analysis_failed": "Falha na análise"
  "uncert.not_enough_data": "Dados insuficientes"
  "uncert.no_perturbable": "Este perfil não tem atributos perturbáveis."
  "uncert.most_likely_class": "Classe mais provável"
  "uncert.na": "n/d"
  "uncert.posterior_probability": "Probabilidade posterior"
  "uncert.entropy": "Entropia"
  "uncert.posterior_distribution": "Distribuição posterior"
  "uncert.attribute_sensitivity": "Sensibilidade dos atributos"
  "uncert.no_posterior": "sem posterior"
  "uncert.p_class": "P(classe)"
  "uncert.sensitivity_not_computed": "Sensibilidade não calculada"
  "uncert.note_col": "Nota"
  "report.title": "Relatório multissistema"
  "report.report_title_label": "Título do relatório"
  "report.help_runs_all_keys": "O relatório roda as três chaves no perfil atual e incorpora a tabela de horizontes e o log de proveniência."
  "report.download_html": "Baixar HTML"
  "report.download_pdf": "Baixar PDF"
  "report.pdf_needs_latex": "O PDF requer LaTeX; recorre ao HTML se indisponível."
  "report.rendering_html": "Renderizando relatório HTML..."
  "report.rendering_pdf": "Renderizando relatório PDF..."
  "report.pdf_failed_fallback": "Falha ao renderizar o PDF (LaTeX ausente?) -- gravado HTML no lugar."
  "report.preview": "Pré-visualização do relatório"
  "report.bundles_intro": "O relatório para download reúne:"
  "report.bundle_results": "Resultados de WRB 2022, SiBCS 5 e USDA ST 13"
  "report.bundle_trace": "Rastreamento da chave por sistema e grau de evidência"
  "report.bundle_table_log": "A tabela de horizontes e o log de proveniência"
  "report.active_depth_options": "Opções de nível de profundidade ativas:"
  "report.state_on": "ativado"
  "report.state_off": "desativado"
  "report.opt_family": "Família USDA (5º nível) precedendo o subgrupo"
  "report.opt_specifiers": "Especificadores de profundidade WRB nos qualificadores ancorados em profundidade"
  "report.summary_pedon": "Perfil:"
  "report.unnamed": "(sem nome)"
  "report.summary_horizons": "Horizontes:"
  "report.summary_provenance_rows": "Linhas de proveniência:"
  "settings.diagnostic_engine": "Motor diagnóstico"
  "settings.threshold_engine": "Motor de limiares"
  "settings.engine_soilkey": "soilKey (WRB estrito)"
  "settings.engine_aqp": "aqp (tolerância regional)"
  "settings.engine_help": "O soilKey aplica os limiares canônicos do WRB 2022; o aqp relaxa alguns limiares de horizonte para corresponder à metodologia laboratorial do KSSL / regional."
  "settings.strict_mode": "Modo estrito WRB Tier-3"
  "settings.strict_help": "Reforça os critérios numéricos por GSR (ex.: CTC de Ferralsol, argila de Vertisol). Perfis limítrofes podem cair em um GSR diferente."
  "settings.specifiers": "Especificadores de profundidade WRB"
  "settings.specifiers_help": "Anexa automaticamente Epi-/Endo-/Bathy-/Amphi- aos qualificadores ancorados em profundidade, a partir da profundidade da feição (ex.: Gleyic -> Endogleyic)."
  "settings.missing_data_policy": "Política de dados ausentes"
  "settings.on_missing_label": "Quando um atributo que a chave precisa está ausente"
  "settings.on_missing_warn": "Avisar"
  "settings.on_missing_silent": "Silencioso"
  "settings.on_missing_error": "Erro"
  "settings.on_missing_help": "Silencioso é recomendado no aplicativo -- atributos ausentes aparecem na aba Classificar como 'medições que refinariam o resultado'."
  "settings.include_familia": "Resolver o 5º nível do SiBCS (família)"
  "settings.include_family": "Resolver o 5º nível do USDA (família)"
  "settings.family_help": "A família USDA antepõe modificadores de classe (tamanho de partícula, mineralogia, atividade da CTC, regime de temperatura, ...) ao nome do subgrupo."
  "ui.na": "n/d"
  "ui.evidence": "Evidência"
  "ui.not_run": "não executado"
  "ui.no_result": "Sem resultado --"
  "ui.unnamed": "(sem nome)"
  "ui.rsg_order": "GSR / Ordem"
  "ui.principal_qualifiers": "Qualificadores principais"
  "ui.supplementary": "Suplementares"
  "ui.add_one_horizon": "Adicione ao menos um horizonte"
  "ui.horizons_need_topbot": "Horizontes precisam de top_cm / bottom_cm"
  "ui.column_not_present": "Coluna '%s' ausente"
  "ui.depth_cm": "Profundidade (cm)"
  "ui.attach_spectrum": "Anexe um espectro Vis-NIR para vê-lo aqui"
  "ui.horizon_prefix": "Horizonte "
  "ui.wavelength_nm": "Comprimento de onda (nm)"
  "ui.reflectance": "Reflectância"
  "ui.build_pedon_on": "Construa um perfil na aba "
  "ui.pedon_tab": "Perfil"
  "ui.tab_first": " primeiro."
