setiastrosuitepro 1.6.5.post3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- setiastro/__init__.py +2 -0
- setiastro/data/SASP_data.fits +0 -0
- setiastro/data/catalogs/List_of_Galaxies_with_Distances_Gly.csv +488 -0
- setiastro/data/catalogs/astrobin_filters.csv +890 -0
- setiastro/data/catalogs/astrobin_filters_page1_local.csv +51 -0
- setiastro/data/catalogs/cali2.csv +63 -0
- setiastro/data/catalogs/cali2color.csv +65 -0
- setiastro/data/catalogs/celestial_catalog - original.csv +16471 -0
- setiastro/data/catalogs/celestial_catalog.csv +24031 -0
- setiastro/data/catalogs/detected_stars.csv +24784 -0
- setiastro/data/catalogs/fits_header_data.csv +46 -0
- setiastro/data/catalogs/test.csv +8 -0
- setiastro/data/catalogs/updated_celestial_catalog.csv +16471 -0
- setiastro/images/Astro_Spikes.png +0 -0
- setiastro/images/Background_startup.jpg +0 -0
- setiastro/images/HRDiagram.png +0 -0
- setiastro/images/LExtract.png +0 -0
- setiastro/images/LInsert.png +0 -0
- setiastro/images/Oxygenation-atm-2.svg.png +0 -0
- setiastro/images/RGB080604.png +0 -0
- setiastro/images/abeicon.png +0 -0
- setiastro/images/aberration.png +0 -0
- setiastro/images/andromedatry.png +0 -0
- setiastro/images/andromedatry_satellited.png +0 -0
- setiastro/images/annotated.png +0 -0
- setiastro/images/aperture.png +0 -0
- setiastro/images/astrosuite.ico +0 -0
- setiastro/images/astrosuite.png +0 -0
- setiastro/images/astrosuitepro.icns +0 -0
- setiastro/images/astrosuitepro.ico +0 -0
- setiastro/images/astrosuitepro.png +0 -0
- setiastro/images/background.png +0 -0
- setiastro/images/background2.png +0 -0
- setiastro/images/benchmark.png +0 -0
- setiastro/images/big_moon_stabilizer_timeline.png +0 -0
- setiastro/images/big_moon_stabilizer_timeline_clean.png +0 -0
- setiastro/images/blaster.png +0 -0
- setiastro/images/blink.png +0 -0
- setiastro/images/clahe.png +0 -0
- setiastro/images/collage.png +0 -0
- setiastro/images/colorwheel.png +0 -0
- setiastro/images/contsub.png +0 -0
- setiastro/images/convo.png +0 -0
- setiastro/images/copyslot.png +0 -0
- setiastro/images/cosmic.png +0 -0
- setiastro/images/cosmicsat.png +0 -0
- setiastro/images/crop1.png +0 -0
- setiastro/images/cropicon.png +0 -0
- setiastro/images/curves.png +0 -0
- setiastro/images/cvs.png +0 -0
- setiastro/images/debayer.png +0 -0
- setiastro/images/denoise_cnn_custom.png +0 -0
- setiastro/images/denoise_cnn_graph.png +0 -0
- setiastro/images/disk.png +0 -0
- setiastro/images/dse.png +0 -0
- setiastro/images/exoicon.png +0 -0
- setiastro/images/eye.png +0 -0
- setiastro/images/fliphorizontal.png +0 -0
- setiastro/images/flipvertical.png +0 -0
- setiastro/images/font.png +0 -0
- setiastro/images/freqsep.png +0 -0
- setiastro/images/functionbundle.png +0 -0
- setiastro/images/graxpert.png +0 -0
- setiastro/images/green.png +0 -0
- setiastro/images/gridicon.png +0 -0
- setiastro/images/halo.png +0 -0
- setiastro/images/hdr.png +0 -0
- setiastro/images/histogram.png +0 -0
- setiastro/images/hubble.png +0 -0
- setiastro/images/imagecombine.png +0 -0
- setiastro/images/invert.png +0 -0
- setiastro/images/isophote.png +0 -0
- setiastro/images/isophote_demo_figure.png +0 -0
- setiastro/images/isophote_demo_image.png +0 -0
- setiastro/images/isophote_demo_model.png +0 -0
- setiastro/images/isophote_demo_residual.png +0 -0
- setiastro/images/jwstpupil.png +0 -0
- setiastro/images/linearfit.png +0 -0
- setiastro/images/livestacking.png +0 -0
- setiastro/images/mask.png +0 -0
- setiastro/images/maskapply.png +0 -0
- setiastro/images/maskcreate.png +0 -0
- setiastro/images/maskremove.png +0 -0
- setiastro/images/morpho.png +0 -0
- setiastro/images/mosaic.png +0 -0
- setiastro/images/multiscale_decomp.png +0 -0
- setiastro/images/nbtorgb.png +0 -0
- setiastro/images/neutral.png +0 -0
- setiastro/images/nuke.png +0 -0
- setiastro/images/openfile.png +0 -0
- setiastro/images/pedestal.png +0 -0
- setiastro/images/pen.png +0 -0
- setiastro/images/pixelmath.png +0 -0
- setiastro/images/platesolve.png +0 -0
- setiastro/images/ppp.png +0 -0
- setiastro/images/pro.png +0 -0
- setiastro/images/project.png +0 -0
- setiastro/images/psf.png +0 -0
- setiastro/images/redo.png +0 -0
- setiastro/images/redoicon.png +0 -0
- setiastro/images/rescale.png +0 -0
- setiastro/images/rgbalign.png +0 -0
- setiastro/images/rgbcombo.png +0 -0
- setiastro/images/rgbextract.png +0 -0
- setiastro/images/rotate180.png +0 -0
- setiastro/images/rotatearbitrary.png +0 -0
- setiastro/images/rotateclockwise.png +0 -0
- setiastro/images/rotatecounterclockwise.png +0 -0
- setiastro/images/satellite.png +0 -0
- setiastro/images/script.png +0 -0
- setiastro/images/selectivecolor.png +0 -0
- setiastro/images/simbad.png +0 -0
- setiastro/images/slot0.png +0 -0
- setiastro/images/slot1.png +0 -0
- setiastro/images/slot2.png +0 -0
- setiastro/images/slot3.png +0 -0
- setiastro/images/slot4.png +0 -0
- setiastro/images/slot5.png +0 -0
- setiastro/images/slot6.png +0 -0
- setiastro/images/slot7.png +0 -0
- setiastro/images/slot8.png +0 -0
- setiastro/images/slot9.png +0 -0
- setiastro/images/spcc.png +0 -0
- setiastro/images/spin_precession_vs_lunar_distance.png +0 -0
- setiastro/images/spinner.gif +0 -0
- setiastro/images/stacking.png +0 -0
- setiastro/images/staradd.png +0 -0
- setiastro/images/staralign.png +0 -0
- setiastro/images/starnet.png +0 -0
- setiastro/images/starregistration.png +0 -0
- setiastro/images/starspike.png +0 -0
- setiastro/images/starstretch.png +0 -0
- setiastro/images/statstretch.png +0 -0
- setiastro/images/supernova.png +0 -0
- setiastro/images/uhs.png +0 -0
- setiastro/images/undoicon.png +0 -0
- setiastro/images/upscale.png +0 -0
- setiastro/images/viewbundle.png +0 -0
- setiastro/images/whitebalance.png +0 -0
- setiastro/images/wimi_icon_256x256.png +0 -0
- setiastro/images/wimilogo.png +0 -0
- setiastro/images/wims.png +0 -0
- setiastro/images/wrench_icon.png +0 -0
- setiastro/images/xisfliberator.png +0 -0
- setiastro/qml/ResourceMonitor.qml +126 -0
- setiastro/saspro/__init__.py +20 -0
- setiastro/saspro/__main__.py +958 -0
- setiastro/saspro/_generated/__init__.py +7 -0
- setiastro/saspro/_generated/build_info.py +3 -0
- setiastro/saspro/abe.py +1346 -0
- setiastro/saspro/abe_preset.py +196 -0
- setiastro/saspro/aberration_ai.py +698 -0
- setiastro/saspro/aberration_ai_preset.py +224 -0
- setiastro/saspro/accel_installer.py +218 -0
- setiastro/saspro/accel_workers.py +30 -0
- setiastro/saspro/add_stars.py +624 -0
- setiastro/saspro/astrobin_exporter.py +1010 -0
- setiastro/saspro/astrospike.py +153 -0
- setiastro/saspro/astrospike_python.py +1841 -0
- setiastro/saspro/autostretch.py +198 -0
- setiastro/saspro/backgroundneutral.py +611 -0
- setiastro/saspro/batch_convert.py +328 -0
- setiastro/saspro/batch_renamer.py +522 -0
- setiastro/saspro/blemish_blaster.py +491 -0
- setiastro/saspro/blink_comparator_pro.py +3149 -0
- setiastro/saspro/bundles.py +61 -0
- setiastro/saspro/bundles_dock.py +114 -0
- setiastro/saspro/cheat_sheet.py +213 -0
- setiastro/saspro/clahe.py +368 -0
- setiastro/saspro/comet_stacking.py +1442 -0
- setiastro/saspro/common_tr.py +107 -0
- setiastro/saspro/config.py +38 -0
- setiastro/saspro/config_bootstrap.py +40 -0
- setiastro/saspro/config_manager.py +316 -0
- setiastro/saspro/continuum_subtract.py +1617 -0
- setiastro/saspro/convo.py +1400 -0
- setiastro/saspro/convo_preset.py +414 -0
- setiastro/saspro/copyastro.py +190 -0
- setiastro/saspro/cosmicclarity.py +1589 -0
- setiastro/saspro/cosmicclarity_preset.py +407 -0
- setiastro/saspro/crop_dialog_pro.py +983 -0
- setiastro/saspro/crop_preset.py +189 -0
- setiastro/saspro/curve_editor_pro.py +2562 -0
- setiastro/saspro/curves_preset.py +375 -0
- setiastro/saspro/debayer.py +673 -0
- setiastro/saspro/debug_utils.py +29 -0
- setiastro/saspro/dnd_mime.py +35 -0
- setiastro/saspro/doc_manager.py +2664 -0
- setiastro/saspro/exoplanet_detector.py +2166 -0
- setiastro/saspro/file_utils.py +284 -0
- setiastro/saspro/fitsmodifier.py +748 -0
- setiastro/saspro/fix_bom.py +32 -0
- setiastro/saspro/free_torch_memory.py +48 -0
- setiastro/saspro/frequency_separation.py +1349 -0
- setiastro/saspro/function_bundle.py +1596 -0
- setiastro/saspro/generate_translations.py +3092 -0
- setiastro/saspro/ghs_dialog_pro.py +663 -0
- setiastro/saspro/ghs_preset.py +284 -0
- setiastro/saspro/graxpert.py +637 -0
- setiastro/saspro/graxpert_preset.py +287 -0
- setiastro/saspro/gui/__init__.py +0 -0
- setiastro/saspro/gui/main_window.py +8792 -0
- setiastro/saspro/gui/mixins/__init__.py +33 -0
- setiastro/saspro/gui/mixins/dock_mixin.py +375 -0
- setiastro/saspro/gui/mixins/file_mixin.py +450 -0
- setiastro/saspro/gui/mixins/geometry_mixin.py +503 -0
- setiastro/saspro/gui/mixins/header_mixin.py +441 -0
- setiastro/saspro/gui/mixins/mask_mixin.py +421 -0
- setiastro/saspro/gui/mixins/menu_mixin.py +390 -0
- setiastro/saspro/gui/mixins/theme_mixin.py +367 -0
- setiastro/saspro/gui/mixins/toolbar_mixin.py +1619 -0
- setiastro/saspro/gui/mixins/update_mixin.py +323 -0
- setiastro/saspro/gui/mixins/view_mixin.py +435 -0
- setiastro/saspro/gui/statistics_dialog.py +47 -0
- setiastro/saspro/halobgon.py +488 -0
- setiastro/saspro/header_viewer.py +448 -0
- setiastro/saspro/headless_utils.py +88 -0
- setiastro/saspro/histogram.py +756 -0
- setiastro/saspro/history_explorer.py +941 -0
- setiastro/saspro/i18n.py +168 -0
- setiastro/saspro/image_combine.py +417 -0
- setiastro/saspro/image_peeker_pro.py +1604 -0
- setiastro/saspro/imageops/__init__.py +37 -0
- setiastro/saspro/imageops/mdi_snap.py +292 -0
- setiastro/saspro/imageops/scnr.py +36 -0
- setiastro/saspro/imageops/starbasedwhitebalance.py +210 -0
- setiastro/saspro/imageops/stretch.py +236 -0
- setiastro/saspro/isophote.py +1182 -0
- setiastro/saspro/layers.py +208 -0
- setiastro/saspro/layers_dock.py +714 -0
- setiastro/saspro/lazy_imports.py +193 -0
- setiastro/saspro/legacy/__init__.py +2 -0
- setiastro/saspro/legacy/image_manager.py +2360 -0
- setiastro/saspro/legacy/numba_utils.py +3676 -0
- setiastro/saspro/legacy/xisf.py +1213 -0
- setiastro/saspro/linear_fit.py +537 -0
- setiastro/saspro/live_stacking.py +1854 -0
- setiastro/saspro/log_bus.py +5 -0
- setiastro/saspro/logging_config.py +460 -0
- setiastro/saspro/luminancerecombine.py +510 -0
- setiastro/saspro/main_helpers.py +201 -0
- setiastro/saspro/mask_creation.py +1086 -0
- setiastro/saspro/masks_core.py +56 -0
- setiastro/saspro/mdi_widgets.py +353 -0
- setiastro/saspro/memory_utils.py +666 -0
- setiastro/saspro/metadata_patcher.py +75 -0
- setiastro/saspro/mfdeconv.py +3909 -0
- setiastro/saspro/mfdeconv_earlystop.py +71 -0
- setiastro/saspro/mfdeconvcudnn.py +3312 -0
- setiastro/saspro/mfdeconvsport.py +2459 -0
- setiastro/saspro/minorbodycatalog.py +567 -0
- setiastro/saspro/morphology.py +407 -0
- setiastro/saspro/multiscale_decomp.py +1747 -0
- setiastro/saspro/nbtorgb_stars.py +541 -0
- setiastro/saspro/numba_utils.py +3145 -0
- setiastro/saspro/numba_warmup.py +141 -0
- setiastro/saspro/ops/__init__.py +9 -0
- setiastro/saspro/ops/command_help_dialog.py +623 -0
- setiastro/saspro/ops/command_runner.py +217 -0
- setiastro/saspro/ops/commands.py +1594 -0
- setiastro/saspro/ops/script_editor.py +1105 -0
- setiastro/saspro/ops/scripts.py +1476 -0
- setiastro/saspro/ops/settings.py +637 -0
- setiastro/saspro/parallel_utils.py +554 -0
- setiastro/saspro/pedestal.py +121 -0
- setiastro/saspro/perfect_palette_picker.py +1105 -0
- setiastro/saspro/pipeline.py +110 -0
- setiastro/saspro/pixelmath.py +1604 -0
- setiastro/saspro/plate_solver.py +2445 -0
- setiastro/saspro/project_io.py +797 -0
- setiastro/saspro/psf_utils.py +136 -0
- setiastro/saspro/psf_viewer.py +549 -0
- setiastro/saspro/pyi_rthook_astroquery.py +95 -0
- setiastro/saspro/remove_green.py +331 -0
- setiastro/saspro/remove_stars.py +1599 -0
- setiastro/saspro/remove_stars_preset.py +446 -0
- setiastro/saspro/resources.py +503 -0
- setiastro/saspro/rgb_combination.py +208 -0
- setiastro/saspro/rgb_extract.py +19 -0
- setiastro/saspro/rgbalign.py +723 -0
- setiastro/saspro/runtime_imports.py +7 -0
- setiastro/saspro/runtime_torch.py +754 -0
- setiastro/saspro/save_options.py +73 -0
- setiastro/saspro/selective_color.py +1611 -0
- setiastro/saspro/sfcc.py +1472 -0
- setiastro/saspro/shortcuts.py +3116 -0
- setiastro/saspro/signature_insert.py +1102 -0
- setiastro/saspro/stacking_suite.py +19066 -0
- setiastro/saspro/star_alignment.py +7380 -0
- setiastro/saspro/star_alignment_preset.py +329 -0
- setiastro/saspro/star_metrics.py +49 -0
- setiastro/saspro/star_spikes.py +765 -0
- setiastro/saspro/star_stretch.py +507 -0
- setiastro/saspro/stat_stretch.py +538 -0
- setiastro/saspro/status_log_dock.py +78 -0
- setiastro/saspro/subwindow.py +3407 -0
- setiastro/saspro/supernovaasteroidhunter.py +1719 -0
- setiastro/saspro/swap_manager.py +134 -0
- setiastro/saspro/torch_backend.py +89 -0
- setiastro/saspro/torch_rejection.py +434 -0
- setiastro/saspro/translations/all_source_strings.json +4726 -0
- setiastro/saspro/translations/ar_translations.py +4096 -0
- setiastro/saspro/translations/de_translations.py +3728 -0
- setiastro/saspro/translations/es_translations.py +4169 -0
- setiastro/saspro/translations/fr_translations.py +4090 -0
- setiastro/saspro/translations/hi_translations.py +3803 -0
- setiastro/saspro/translations/integrate_translations.py +271 -0
- setiastro/saspro/translations/it_translations.py +4728 -0
- setiastro/saspro/translations/ja_translations.py +3834 -0
- setiastro/saspro/translations/pt_translations.py +3847 -0
- setiastro/saspro/translations/ru_translations.py +3082 -0
- setiastro/saspro/translations/saspro_ar.qm +0 -0
- setiastro/saspro/translations/saspro_ar.ts +16019 -0
- setiastro/saspro/translations/saspro_de.qm +0 -0
- setiastro/saspro/translations/saspro_de.ts +14548 -0
- setiastro/saspro/translations/saspro_es.qm +0 -0
- setiastro/saspro/translations/saspro_es.ts +16202 -0
- setiastro/saspro/translations/saspro_fr.qm +0 -0
- setiastro/saspro/translations/saspro_fr.ts +15870 -0
- setiastro/saspro/translations/saspro_hi.qm +0 -0
- setiastro/saspro/translations/saspro_hi.ts +14855 -0
- setiastro/saspro/translations/saspro_it.qm +0 -0
- setiastro/saspro/translations/saspro_it.ts +19046 -0
- setiastro/saspro/translations/saspro_ja.qm +0 -0
- setiastro/saspro/translations/saspro_ja.ts +14980 -0
- setiastro/saspro/translations/saspro_pt.qm +0 -0
- setiastro/saspro/translations/saspro_pt.ts +15024 -0
- setiastro/saspro/translations/saspro_ru.qm +0 -0
- setiastro/saspro/translations/saspro_ru.ts +11835 -0
- setiastro/saspro/translations/saspro_sw.qm +0 -0
- setiastro/saspro/translations/saspro_sw.ts +15237 -0
- setiastro/saspro/translations/saspro_uk.qm +0 -0
- setiastro/saspro/translations/saspro_uk.ts +15248 -0
- setiastro/saspro/translations/saspro_zh.qm +0 -0
- setiastro/saspro/translations/saspro_zh.ts +15289 -0
- setiastro/saspro/translations/sw_translations.py +3897 -0
- setiastro/saspro/translations/uk_translations.py +3929 -0
- setiastro/saspro/translations/zh_translations.py +3910 -0
- setiastro/saspro/versioning.py +77 -0
- setiastro/saspro/view_bundle.py +1558 -0
- setiastro/saspro/wavescale_hdr.py +645 -0
- setiastro/saspro/wavescale_hdr_preset.py +101 -0
- setiastro/saspro/wavescalede.py +680 -0
- setiastro/saspro/wavescalede_preset.py +230 -0
- setiastro/saspro/wcs_update.py +374 -0
- setiastro/saspro/whitebalance.py +513 -0
- setiastro/saspro/widgets/__init__.py +48 -0
- setiastro/saspro/widgets/common_utilities.py +306 -0
- setiastro/saspro/widgets/graphics_views.py +122 -0
- setiastro/saspro/widgets/image_utils.py +518 -0
- setiastro/saspro/widgets/minigame/game.js +991 -0
- setiastro/saspro/widgets/minigame/index.html +53 -0
- setiastro/saspro/widgets/minigame/style.css +241 -0
- setiastro/saspro/widgets/preview_dialogs.py +280 -0
- setiastro/saspro/widgets/resource_monitor.py +263 -0
- setiastro/saspro/widgets/spinboxes.py +290 -0
- setiastro/saspro/widgets/themed_buttons.py +13 -0
- setiastro/saspro/widgets/wavelet_utils.py +331 -0
- setiastro/saspro/wimi.py +7996 -0
- setiastro/saspro/wims.py +578 -0
- setiastro/saspro/window_shelf.py +185 -0
- setiastro/saspro/xisf.py +1213 -0
- setiastrosuitepro-1.6.5.post3.dist-info/METADATA +278 -0
- setiastrosuitepro-1.6.5.post3.dist-info/RECORD +368 -0
- setiastrosuitepro-1.6.5.post3.dist-info/WHEEL +4 -0
- setiastrosuitepro-1.6.5.post3.dist-info/entry_points.txt +6 -0
- setiastrosuitepro-1.6.5.post3.dist-info/licenses/LICENSE +674 -0
- setiastrosuitepro-1.6.5.post3.dist-info/licenses/license.txt +2580 -0
|
@@ -0,0 +1,3092 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
"""Generate translation .ts files for Seti Astro Suite Pro."""
|
|
3
|
+
import os
|
|
4
|
+
import subprocess
|
|
5
|
+
|
|
6
|
+
# Translation data: {lang_code: {context: {source: translation}}}
|
|
7
|
+
TRANSLATIONS = {
|
|
8
|
+
"it": {
|
|
9
|
+
"SettingsDialog": {
|
|
10
|
+
"Preferences": "Preferenze",
|
|
11
|
+
"Check for updates on startup": "Controlla aggiornamenti all'avvio",
|
|
12
|
+
"Reset": "Ripristina",
|
|
13
|
+
"Browse…": "Sfoglia…",
|
|
14
|
+
"Theme:": "Tema:",
|
|
15
|
+
"Language:": "Lingua:",
|
|
16
|
+
"<b>Display</b>": "<b>Visualizzazione</b>",
|
|
17
|
+
"<b>Paths & Integrations</b>": "<b>Percorsi e integrazioni</b>",
|
|
18
|
+
"<b>What's In My Sky — Defaults</b>": "<b>What's In My Sky — Predefiniti</b>",
|
|
19
|
+
"Latitude (°):": "Latitudine (°):",
|
|
20
|
+
"Longitude (°):": "Longitudine (°):",
|
|
21
|
+
"Date (YYYY-MM-DD):": "Data (AAAA-MM-GG):",
|
|
22
|
+
"Time (HH:MM):": "Ora (HH:MM):",
|
|
23
|
+
"Time Zone:": "Fuso orario:",
|
|
24
|
+
"Min Altitude (°):": "Altitudine minima (°):",
|
|
25
|
+
"Object Limit:": "Limite oggetti:",
|
|
26
|
+
"<b>RA/Dec Overlay</b>": "<b>Overlay RA/Dec</b>",
|
|
27
|
+
"Show RA/Dec grid": "Mostra griglia RA/Dec",
|
|
28
|
+
"Mode:": "Modalità:",
|
|
29
|
+
"Step:": "Passo:",
|
|
30
|
+
"<b>Updates</b>": "<b>Aggiornamenti</b>",
|
|
31
|
+
"Updates JSON URL:": "URL JSON aggiornamenti:",
|
|
32
|
+
"Background Opacity:": "Opacità sfondo:",
|
|
33
|
+
"Background Image:": "Immagine sfondo:",
|
|
34
|
+
},
|
|
35
|
+
"MenuMixin": {
|
|
36
|
+
"&File": "&File",
|
|
37
|
+
"&Edit": "&Modifica",
|
|
38
|
+
"&Functions": "&Funzioni",
|
|
39
|
+
"&Smart Tools": "&Strumenti Smart",
|
|
40
|
+
"&Tools": "&Strumenti",
|
|
41
|
+
"&Geometry": "&Geometria",
|
|
42
|
+
"&Star Stuff": "&Stelle",
|
|
43
|
+
"&Masks": "&Maschere",
|
|
44
|
+
"&What's In My...": "&What's In My...",
|
|
45
|
+
"&Scripts": "&Script",
|
|
46
|
+
"&Header Mods && Misc": "&Modifica Header e Varie",
|
|
47
|
+
"&History": "&Cronologia",
|
|
48
|
+
"&Shortcuts": "&Scorciatoie",
|
|
49
|
+
"&View": "&Vista",
|
|
50
|
+
"&Settings": "&Impostazioni",
|
|
51
|
+
"&About": "&Info",
|
|
52
|
+
"Preferences...": "Preferenze...",
|
|
53
|
+
"About...": "Informazioni...",
|
|
54
|
+
"Open Recent Images": "Immagini recenti",
|
|
55
|
+
"Open Recent Projects": "Progetti recenti",
|
|
56
|
+
"No recent images": "Nessuna immagine recente",
|
|
57
|
+
"No recent projects": "Nessun progetto recente",
|
|
58
|
+
"Clear List": "Cancella lista",
|
|
59
|
+
"Keyboard Shortcut Cheat Sheet...": "Schema scorciatoie tastiera...",
|
|
60
|
+
"Export Shortcuts...": "Esporta scorciatoie...",
|
|
61
|
+
"Import Shortcuts...": "Importa scorciatoie...",
|
|
62
|
+
"Clear All Shortcuts": "Cancella tutte le scorciatoie",
|
|
63
|
+
"None": "Nessuno",
|
|
64
|
+
"Group A": "Gruppo A",
|
|
65
|
+
"Group B": "Gruppo B",
|
|
66
|
+
"Group C": "Gruppo C",
|
|
67
|
+
"Group D": "Gruppo D",
|
|
68
|
+
},
|
|
69
|
+
"ToolbarMixin": {
|
|
70
|
+
"Open...": "Apri...",
|
|
71
|
+
"Open image(s)": "Apri immagine/i",
|
|
72
|
+
"New Project": "Nuovo progetto",
|
|
73
|
+
"Save Project...": "Salva progetto...",
|
|
74
|
+
"Load Project...": "Carica progetto...",
|
|
75
|
+
"Clear All Views": "Chiudi tutte le viste",
|
|
76
|
+
"Save As...": "Salva come...",
|
|
77
|
+
"Save the active image": "Salva l'immagine attiva",
|
|
78
|
+
"&Exit": "&Esci",
|
|
79
|
+
"Cascade Views": "Cascata viste",
|
|
80
|
+
"Tile Views": "Affianca viste",
|
|
81
|
+
"Tile Vertically": "Affianca verticalmente",
|
|
82
|
+
"Tile Horizontally": "Affianca orizzontalmente",
|
|
83
|
+
"Smart Grid": "Griglia intelligente",
|
|
84
|
+
"Link Pan/Zoom": "Collega Pan/Zoom",
|
|
85
|
+
"Undo": "Annulla",
|
|
86
|
+
"Redo": "Ripeti",
|
|
87
|
+
},
|
|
88
|
+
"AstroSuiteProMainWindow": {
|
|
89
|
+
"Exit Seti Astro Suite Pro?": "Uscire da Seti Astro Suite Pro?",
|
|
90
|
+
"Confirm Exit": "Conferma uscita",
|
|
91
|
+
"Open images:": "Immagini aperte:",
|
|
92
|
+
"Edited since open:": "Modificate dall'apertura:",
|
|
93
|
+
"New Project": "Nuovo progetto",
|
|
94
|
+
"This will close all views and clear desktop shortcuts. Continue?": "Questo chiuderà tutte le viste e cancellerà le scorciatoie. Continuare?",
|
|
95
|
+
"Clear All Views": "Chiudi tutte le viste",
|
|
96
|
+
"Close all views and documents? Desktop shortcuts will be preserved.": "Chiudere tutte le viste e i documenti? Le scorciatoie saranno conservate.",
|
|
97
|
+
"Loading a project will close current views and replace desktop shortcuts.": "Caricare un progetto chiuderà le viste attuali e sostituirà le scorciatoie.",
|
|
98
|
+
"System Log": "Log di sistema",
|
|
99
|
+
"Show System Log Panel": "Mostra pannello log di sistema",
|
|
100
|
+
"Explorer": "Esplora",
|
|
101
|
+
"Console / Status": "Console / Stato",
|
|
102
|
+
"Invert": "Inverti",
|
|
103
|
+
"Flip Horizontal": "Rifletti orizzontalmente",
|
|
104
|
+
"Flip Vertical": "Rifletti verticalmente",
|
|
105
|
+
"Rotate 90° CW": "Ruota 90° Orario",
|
|
106
|
+
"Rotate 90° CCW": "Ruota 90° Antiorario",
|
|
107
|
+
"Rotate 180°": "Ruota 180°",
|
|
108
|
+
"Rescale Image": "Ridimensiona immagine",
|
|
109
|
+
"Active view has no image.": "La vista attiva non ha immagini.",
|
|
110
|
+
"Mask Overlay": "Maschera sovrapposta",
|
|
111
|
+
"No active mask on this image.": "Nessuna maschera attiva su questa immagine.",
|
|
112
|
+
"No header": "Nessun header",
|
|
113
|
+
"Checking for updates...": "Controllo aggiornamenti...",
|
|
114
|
+
"Update Available": "Aggiornamento disponibile",
|
|
115
|
+
"You're up to date.": "Il software è aggiornato.",
|
|
116
|
+
"Open Images": "Apri immagini",
|
|
117
|
+
"Open failed": "Apertura fallita",
|
|
118
|
+
"Save failed": "Salvataggio fallito",
|
|
119
|
+
"File not found": "File non trovato",
|
|
120
|
+
"Project not found": "Progetto non trovato",
|
|
121
|
+
"Save Project": "Salva progetto",
|
|
122
|
+
"Load Project": "Carica progetto",
|
|
123
|
+
"Saving project...": "Salvataggio progetto...",
|
|
124
|
+
"No documents to save.": "Nessun documento da salvare.",
|
|
125
|
+
},
|
|
126
|
+
"GhsDialogPro": {
|
|
127
|
+
"Hyperbolic Stretch": "Stiramento Iperbolico",
|
|
128
|
+
"Tip: Ctrl+Click (or double-click) the image to set the symmetry pivot": "Consiglio: Ctrl+Click (o doppio clic) sull'immagine per impostare il pivot di simmetria",
|
|
129
|
+
"Ctrl+Click (or double-click) the image to set the symmetry pivot": "Ctrl+Click (o doppio clic) sull'immagine per impostare il pivot di simmetria",
|
|
130
|
+
"Channel:": "Canale:",
|
|
131
|
+
"Apply": "Applica",
|
|
132
|
+
"Reset": "Reimposta",
|
|
133
|
+
"Histogram": "Istogramma",
|
|
134
|
+
"Zoom Out": "Riduci",
|
|
135
|
+
"Zoom In": "Ingrandisci",
|
|
136
|
+
"Fit to Preview": "Adatta all'anteprima",
|
|
137
|
+
"Could not import histogram module:\n{0}": "Impossibile importare il modulo istogramma:\n{0}",
|
|
138
|
+
"Apply failed": "Applicazione fallita",
|
|
139
|
+
"No image": "Nessuna immagine",
|
|
140
|
+
"Open an image first.": "Apri prima un'immagine.",
|
|
141
|
+
},
|
|
142
|
+
"HistogramDialog": {
|
|
143
|
+
"Histogram": "Istogramma",
|
|
144
|
+
"Ctrl+Click on the histogram to send that intensity as the pivot to Hyperbolic Stretch (if open).": "Ctrl+Click sull'istogramma per inviare quell'intensità come pivot allo Stiramento Iperbolico (se aperto).",
|
|
145
|
+
"Min": "Min",
|
|
146
|
+
"Max": "Max",
|
|
147
|
+
"Median": "Mediana",
|
|
148
|
+
"StdDev": "DevStd",
|
|
149
|
+
"MAD": "MAD",
|
|
150
|
+
"Low Clipped": "Taglio Bassi",
|
|
151
|
+
"High Clipped": "Taglio Alti",
|
|
152
|
+
"Zoom:": "Zoom:",
|
|
153
|
+
"Toggle Log X-Axis": "Assi X Logaritmici",
|
|
154
|
+
"Toggle Log Y-Axis": "Assi Y Logaritmici",
|
|
155
|
+
"Close": "Chiudi",
|
|
156
|
+
"True Max {0:.4f}": "Vero Max {0:.4f}",
|
|
157
|
+
"Sensor True Max (ADU)": "Vero Max Sensore (ADU)",
|
|
158
|
+
"Enter your sensor's true saturation value in native ADU.\n(Typical max for this file type is {0})\n\nYou can measure this by taking a deliberately overexposed frame\nand reading its maximum pixel value.": "Inserisci il valore di saturazione reale del sensore in ADU nativi.\n(Il max tipico per questo tipo di file è {0})\n\nPuoi misurarlo scattando un frame deliberatamente sovraesposto\ne leggendo il suo valore massimo di pixel.",
|
|
159
|
+
"Histogram Effective Max": "Max Efficace Istogramma",
|
|
160
|
+
"Enter effective maximum for clipping (normalized units).": "Inserisci il massimo efficace per il clipping (unità normalizzate).",
|
|
161
|
+
},
|
|
162
|
+
"CurvesDialogPro": {
|
|
163
|
+
"Zoom Out": "Riduci",
|
|
164
|
+
"Zoom In": "Ingrandisci",
|
|
165
|
+
"Fit to Preview": "Adatta all'anteprima",
|
|
166
|
+
"Inflection @ K={0:.3f}": "Flesso @ K={0:.3f}",
|
|
167
|
+
"Cursor ({0}, {1}) K: {2:.3f}": "Cursore ({0}, {1}) K: {2:.3f}",
|
|
168
|
+
"Cursor ({0}, {1}) R: {2:.3f} G: {3:.3f} B: {4:.3f}": "Cursore ({0}, {1}) R: {2:.3f} G: {3:.3f} B: {4:.3f}",
|
|
169
|
+
"Save Curves Preset": "Salva Preset Curve",
|
|
170
|
+
"Preset name:": "Nome preset:",
|
|
171
|
+
"Saved preset “{0}”.": "Preset “{0}” salvato.",
|
|
172
|
+
"Save failed": "Salvataggio fallito",
|
|
173
|
+
"Could not save preset.": "Impossibile salvare il preset.",
|
|
174
|
+
"Built-ins": "Predefiniti",
|
|
175
|
+
"Custom": "Personalizzati",
|
|
176
|
+
"(No custom presets yet)": "(Nessun preset personalizzato)",
|
|
177
|
+
"Manage Presets": "Gestisci Preset",
|
|
178
|
+
"No custom presets.": "Nessun preset personalizzato.",
|
|
179
|
+
"Delete Preset": "Elimina Preset",
|
|
180
|
+
"Choose preset to delete:": "Scegli preset da eliminare:",
|
|
181
|
+
"No image": "Nessuna immagine",
|
|
182
|
+
"Open an image first.": "Apri prima un'immagine.",
|
|
183
|
+
"Preview ON": "Anteprima ON",
|
|
184
|
+
"Preview OFF": "Anteprima OFF",
|
|
185
|
+
"Bk {0:,} ({1:.2f}%) Wt {2:,} ({3:.2f}%)": "Neri {0:,} ({1:.2f}%) Bianchi {2:,} ({3:.2f}%)",
|
|
186
|
+
"Clipping — R: {0} G: {1} B: {2}": "Clipping — R: {0} G: {1} B: {2}",
|
|
187
|
+
"Clipping — Bk {0:,} ({1:.2f}%) Wt {2:,} ({3:.2f}%)": "Clipping — N {0:,} ({1:.2f}%) B {2:,} ({3:.2f}%)",
|
|
188
|
+
"Full-res ready (not shown).": "Alta ris. pronta (non mostrata).",
|
|
189
|
+
"Applied. Image reloaded. All curves reset — keep tweaking.": "Applicato. Immagine ricaricata. Curve resettate — continua a modificare.",
|
|
190
|
+
"Apply failed": "Applicazione fallita",
|
|
191
|
+
"Added point at x={0:.3f}": "Punto aggiunto a x={0:.3f}",
|
|
192
|
+
"All curves reset.": "Tutte le curve resettate.",
|
|
193
|
+
"Preset: {0} {1}": "Preset: {0} {1}",
|
|
194
|
+
"(built-in)": "(predefinito)",
|
|
195
|
+
},
|
|
196
|
+
"PixelMathDialogPro": {
|
|
197
|
+
"Pixel Math": "Pixel Math",
|
|
198
|
+
"Variables": "Variabili",
|
|
199
|
+
"Output": "Output",
|
|
200
|
+
"Overwrite active": "Sovrascrivi attiva",
|
|
201
|
+
"Create new view": "Crea nuova vista",
|
|
202
|
+
"Single Expression": "Espressione Singola",
|
|
203
|
+
"Separate (R / G / B)": "Separati (R / G / B)",
|
|
204
|
+
"e.g. (img + otherView) / 2": "es. (img + altraVista) / 2",
|
|
205
|
+
"Red": "Rosso",
|
|
206
|
+
"Green": "Verde",
|
|
207
|
+
"Blue": "Blu",
|
|
208
|
+
"Glossary…": "Glossario…",
|
|
209
|
+
"Preview": "Anteprima",
|
|
210
|
+
"Compute Pixel Math and show the result here without committing.": "Calcola Pixel Math e mostra il risultato qui senza applicarlo.",
|
|
211
|
+
"Auto-stretch": "Auto-stretch",
|
|
212
|
+
"Enable Auto-stretch": "Abilita Auto-stretch",
|
|
213
|
+
"Target median": "Mediana target",
|
|
214
|
+
"0.18 (soft)": "0.18 (morbido)",
|
|
215
|
+
"0.25 (default)": "0.25 (default)",
|
|
216
|
+
"0.35 (brighter)": "0.35 (più luminoso)",
|
|
217
|
+
"Black-point sigma": "Sigma punto nero",
|
|
218
|
+
"σ=2.5": "σ=2.5",
|
|
219
|
+
"σ=3 (default)": "σ=3 (default)",
|
|
220
|
+
"σ=4 (deeper black)": "σ=4 (nero profondo)",
|
|
221
|
+
"Linked channels (use luminance)": "Canali collegati (usa luminanza)",
|
|
222
|
+
"Use 16-bit stats": "Usa statistiche 16-bit",
|
|
223
|
+
"Zoom In": "Ingrandisci",
|
|
224
|
+
"Zoom Out": "Riduci",
|
|
225
|
+
"1:1": "1:1",
|
|
226
|
+
"Fit to Preview": "Adatta all'anteprima",
|
|
227
|
+
"Examples:": "Esempi:",
|
|
228
|
+
"Insert example…": "Inserisci esempio…",
|
|
229
|
+
"Select a favorite expression": "Seleziona un'espressione preferita",
|
|
230
|
+
"Save as Favorite": "Salva nei preferiti",
|
|
231
|
+
"Delete Favorite": "Elimina preferito",
|
|
232
|
+
"Delete this favorite": "Elimina questo preferito",
|
|
233
|
+
"Help": "Aiuto",
|
|
234
|
+
"Pixel Math Preview": "Anteprima Pixel Math",
|
|
235
|
+
"Failed:\n{0}": "Fallito:\n{0}",
|
|
236
|
+
"Average two views": "Media due viste",
|
|
237
|
+
"Difference (A - B)": "Differenza (A - B)",
|
|
238
|
+
"Invert active": "Inverti attiva",
|
|
239
|
+
"Subtract median (bias remove)": "Sottrai mediana (rimuovi bias)",
|
|
240
|
+
"Zero-center by mean": " centra zero sulla media",
|
|
241
|
+
"Min + Max combine": "Combina Min + Max",
|
|
242
|
+
"Log transform": "Trasformazione Log",
|
|
243
|
+
"Midtones transform m=0.25": "Trasformazione mezzitoni m=0.25",
|
|
244
|
+
"If darker than median → 0 else 1": "Se più scuro della mediana → 0 altrimenti 1",
|
|
245
|
+
"Per-channel: swap R↔B": "Per-canale: scambia R↔B",
|
|
246
|
+
"Per-channel: avg A & B": "Per-canale: media A & B",
|
|
247
|
+
"Per-channel: build RGB from A,B,C": "Per-canale: costruisci RGB da A,B,C",
|
|
248
|
+
"Normalize to 0–1 (per-channel)": "Normalizza a 0–1 (per-canale)",
|
|
249
|
+
"Sigmoid contrast (k=12, mid=0.4)": "Contrasto Sigmoide (k=12, mid=0.4)",
|
|
250
|
+
"Gamma 0.6 (brighten midtones)": "Gamma 0.6 (schiarisci mezzitoni)",
|
|
251
|
+
"Percentile stretch 0.5–99.5%": "Stiramento percentile 0.5–99.5%",
|
|
252
|
+
"Blend A→B by horizontal gradient X": "Fondi A→B con gradiente orizzontale X",
|
|
253
|
+
"Apply active mask to blend A→B": "Applica maschera attiva per fondere A→B",
|
|
254
|
+
"Masked unsharp (luma-based)": "Unsharp mascherato (basato su luma)",
|
|
255
|
+
"Match medians of A to B": "Corrispondi mediane di A a B",
|
|
256
|
+
"Gaussian blur σ=2": "Sfocatura Gaussiana σ=2",
|
|
257
|
+
"Median filter k=3": "Filtro Mediana k=3",
|
|
258
|
+
"Per-channel: luma to all channels": "Per-canale: luma su tutti i canali",
|
|
259
|
+
"Per-channel: A’s R, B’s G, C’s B (normed)": "Per-canale: R di A, G di B, B di C (norm)",
|
|
260
|
+
"Pixel Math Glossary": "Glossario Pixel Math",
|
|
261
|
+
"Double-click to insert a template at the cursor.": "Doppio clic per inserire un modello al cursore.",
|
|
262
|
+
"Search…": "Cerca…",
|
|
263
|
+
"Insert": "Inserisci",
|
|
264
|
+
"Pixel Math Help": "Aiuto Pixel Math",
|
|
265
|
+
"Operators: + - * / ^(power) ~(invert)": "Operatori: + - * / ^(potenza) ~(inverto)",
|
|
266
|
+
"Comparisons: <, == (use inside iff)": "Confronti: <, == (usa dentro iff)",
|
|
267
|
+
"Variables:": "Variabili:",
|
|
268
|
+
" • img (active) and one per open view (by window title, auto-mapped).": " • img (attiva) e una per vista aperta (dal titolo finestra, auto-mappata).",
|
|
269
|
+
" • Coordinates: X, Y in [0..1].": " • Coordinate: X, Y in [0..1].",
|
|
270
|
+
" • Sizes: H, W, C, shape.": " • Dimensioni: H, W, C, shape.",
|
|
271
|
+
"Per-channel indexing: view[0], view[1], view[2].": "Indicizzazione per canale: view[0], view[1], view[2].",
|
|
272
|
+
"Multiline: last line is the result.": "Multiline: l'ultima riga è il risultato.",
|
|
273
|
+
"Output: Overwrite active or Create new view.": "Output: Sovrascrivi attiva o Crea nuova vista.",
|
|
274
|
+
"Functions:": "Funzioni:",
|
|
275
|
+
"Limit values to [lo..hi].": "Limita valori a [lo..hi].",
|
|
276
|
+
"Map range [a..b] to [lo..hi].": "Mappa intervallo [a..b] a [lo..hi].",
|
|
277
|
+
"Apply gamma curve.": "Applica curva gamma.",
|
|
278
|
+
"Power with EPS floor.": "Potenza con soglia EPS.",
|
|
279
|
+
"Absolute value.": "Valore assoluto.",
|
|
280
|
+
"Exponential.": "Esponenziale.",
|
|
281
|
+
"Square root (clamped to ≥0).": "Radice quadrata (limitata a ≥0).",
|
|
282
|
+
"Inverse sine (radians), input clipped to [-1,1].": "Seno inverso (radianti), input limitato a [-1,1].",
|
|
283
|
+
"S-shaped tone curve.": "Curva di tono a S.",
|
|
284
|
+
"Cubic smooth ramp.": "Rampa cubica morbida.",
|
|
285
|
+
"Linear blend.": "Miscela lineare.",
|
|
286
|
+
"Per-channel percentile image.": "Immagine percentile per canale.",
|
|
287
|
+
"Per-channel [0..1] normalization.": "Normalizzazione [0..1] per canale.",
|
|
288
|
+
"Per-channel (x-mean)/std.": "Per canale (x-media)/std.",
|
|
289
|
+
"Extract channel i (0/1/2) as 2-D.": "Estrai canale i (0/1/2) come 2-D.",
|
|
290
|
+
"Rec.709 luminance as 2-D.": "Luminanza Rec.709 come 2-D.",
|
|
291
|
+
"Stack three planes to RGB.": "Impila tre piani in RGB.",
|
|
292
|
+
"Active mask (2-D, [0..1]).": "Maschera attiva (2-D, [0..1]).",
|
|
293
|
+
"Blend by mask.": "Miscela con maschera.",
|
|
294
|
+
"Box blur (cv2 if available).": "Sfocatura Box (cv2 se disponibile).",
|
|
295
|
+
"Gaussian blur.": "Sfocatura Gaussiana.",
|
|
296
|
+
"Median filter (cv2 if avail).": "Filtro Mediana (se disp cv2).",
|
|
297
|
+
"Unsharp mask.": "Maschera di contrasto (Unsharp).",
|
|
298
|
+
"Midtones transfer (existing).": "Trasferimento mezzitoni (esistente).",
|
|
299
|
+
"Conditional (existing).": "Condizionale (esistente).",
|
|
300
|
+
"Normalized coordinates in [0..1].": "Coordinate normalizzate in [0..1].",
|
|
301
|
+
"Image dimensions.": "Dimensioni immagine.",
|
|
302
|
+
"img (active)": "img (attiva)",
|
|
303
|
+
"Tip: double-click to insert the identifier at the cursor": "Consiglio: doppio clic per inserire l'identificatore al cursore",
|
|
304
|
+
"\n\nTip: use the identifier listed in Variables (or the raw title; it’s auto-mapped).": "\n\nConsiglio: usa l'identificatore elencato in Variabili (o il titolo grezzo; è auto-mappato).",
|
|
305
|
+
"\n\nTip: use the identifier shown beside Variables (e.g. 'andromeda_png'), ": "\n\nConsiglio: usa l'identificatore mostrato accanto a Variabili (es. 'andromeda_png'), ",
|
|
306
|
+
"CropDialogPro": {
|
|
307
|
+
"Crop Tool": "Strumento Ritaglio",
|
|
308
|
+
"• Click–drag to draw a crop\n• Drag corner handles to resize\n• Shift + drag on box to rotate": "• Clic-trascina per disegnare ritaglio\n• Trascina maniglie per ridimensionare\n• Shift + trascina sul riquadro per ruotare",
|
|
309
|
+
"Aspect Ratio:": "Proporzioni:",
|
|
310
|
+
"Free": "Libero",
|
|
311
|
+
"Original": "Originale",
|
|
312
|
+
"Margins (px):": "Margini (px):",
|
|
313
|
+
"Top": "Alto",
|
|
314
|
+
"Right": "Destra",
|
|
315
|
+
"Bottom": "Basso",
|
|
316
|
+
"Left": "Sinistra",
|
|
317
|
+
"Zoom Out": "Riduci",
|
|
318
|
+
"Zoom In": "Ingrandisci",
|
|
319
|
+
"Zoom 100%": "Zoom 100%",
|
|
320
|
+
"Fit to View": "Adatta alla vista",
|
|
321
|
+
"Selection: —": "Selezione: —",
|
|
322
|
+
"Selection: {0}×{1} px": "Selezione: {0}×{1} px",
|
|
323
|
+
"Toggle Autostretch": "Attiva/Disattiva Autostretch",
|
|
324
|
+
"Load Previous Crop": "Carica ritaglio precedente",
|
|
325
|
+
"Apply": "Applica",
|
|
326
|
+
"Batch Crop (all open)": "Ritaglio Batch (tutti aperti)",
|
|
327
|
+
"Close": "Chiudi",
|
|
328
|
+
"No Previous": "Nessun precedente",
|
|
329
|
+
"No previous crop stored.": "Nessun ritaglio precedente salvato.",
|
|
330
|
+
"No Selection": "Nessuna selezione",
|
|
331
|
+
"Draw & finalize a crop first.": "Disegna e finalizza un ritaglio prima.",
|
|
332
|
+
"Apply failed": "Applicazione fallita",
|
|
333
|
+
"Invalid crop bounds.": "Limiti ritaglio non validi.",
|
|
334
|
+
"Batch Processing": "Elaborazione Batch",
|
|
335
|
+
},
|
|
336
|
+
"ImagePeekerDialogPro": {
|
|
337
|
+
"Image Peeker": "Anteprima Immagine",
|
|
338
|
+
"Grid parameters": "Parametri griglia",
|
|
339
|
+
"Grid size:": "Dimensione griglia:",
|
|
340
|
+
"Panel size:": "Dimensione pannello:",
|
|
341
|
+
"Separation:": "Separazione:",
|
|
342
|
+
"Pixel size (µm):": "Dimensione pixel (µm):",
|
|
343
|
+
"Focal length (mm):": "Lunghezza focale (mm):",
|
|
344
|
+
"Aperture (mm):": "Apertura (mm):",
|
|
345
|
+
"Analysis:": "Analisi:",
|
|
346
|
+
"None": "Nessuna",
|
|
347
|
+
"Tilt Analysis": "Analisi Tilt",
|
|
348
|
+
"Focal Plane Analysis": "Analisi Piano Focale",
|
|
349
|
+
"Astrometric Distortion Analysis": "Analisi Distorsione Astrometrica",
|
|
350
|
+
"Save Settings && Exit": "Salva e Esci",
|
|
351
|
+
"Exit without Saving": "Esci senza Salvare",
|
|
352
|
+
"Processing…": "Elaborazione…",
|
|
353
|
+
"Running {0}…": "Esecuzione {0}…",
|
|
354
|
+
"Sensor Tilt (µm)": "Tilt Sensore (µm)",
|
|
355
|
+
"FWHM Heatmap": "Mappa FWHM",
|
|
356
|
+
"Eccentricity Map": "Mappa Eccentricità",
|
|
357
|
+
"Orientation Map": "Mappa Orientamento",
|
|
358
|
+
"Plate Solve": "Risoluzione Astrometrica",
|
|
359
|
+
"ASTAP/Astrometry failed:\n{0}": "ASTAP/Astrometry fallito:\n{0}",
|
|
360
|
+
"WCS Error": "Errore WCS",
|
|
361
|
+
"Plate solve did not produce a readable WCS header.": "La risoluzione non ha prodotto un header WCS leggibile.",
|
|
362
|
+
"No Distortion Model": "Nessun Modello di Distorsione",
|
|
363
|
+
"This image has a valid WCS, but no SIP distortion terms...": "L'immagine ha un WCS valido, ma nessun termine di distorsione SIP... Risolvi di nuovo abilitando il fitting della distorsione in ASTAP.",
|
|
364
|
+
"Cannot determine pixel scale.": "Impossibile determinare la scala dei pixel.",
|
|
365
|
+
"Choose separation color": "Scegli colore separazione",
|
|
366
|
+
"No image": "Nessuna immagine",
|
|
367
|
+
"No image loaded to peek at!": "Nessuna immagine caricata per l'anteprima!",
|
|
368
|
+
},
|
|
369
|
+
"PlateSolver": {
|
|
370
|
+
"Plate Solving": "Risoluzione Astrometrica",
|
|
371
|
+
"Starting…": "Avvio…",
|
|
372
|
+
"Hide": "Nascondi",
|
|
373
|
+
"Status:": "Stato:",
|
|
374
|
+
"Status: process timed out.": "Stato: timeout del processo.",
|
|
375
|
+
"Status: process did not exit normally.": "Stato: il processo non è terminato correttamente.",
|
|
376
|
+
"Status: {0} retry {1}/{2}…": "Stato: {0} tentativo {1}/{2}…",
|
|
377
|
+
"Status: Downloading WCS file (with SIP) from Astrometry.net…": "Stato: Scaricamento file WCS (con SIP) da Astrometry.net…",
|
|
378
|
+
"solve-field returned no header.": "solve-field non ha restituito un header.",
|
|
379
|
+
"requests not available for astrometry.net API.": "requests non disponibile per API astrometry.net.",
|
|
380
|
+
"Status: Preparing full-res 16-bit FITS for web solve…": "Stato: Preparazione FITS 16-bit piena ris. per web…",
|
|
381
|
+
"Temp FITS for web upload is empty/tiny ({0} bytes).": "File FITS temporaneo vuoto/piccolo ({0} bytes).",
|
|
382
|
+
"Astrometry.net login failed.": "Login Astrometry.net fallito.",
|
|
383
|
+
"Astrometry.net upload failed.": "Caricamento Astrometry.net fallito.",
|
|
384
|
+
"Astrometry.net job ID not received in time.": "Job ID Astrometry.net non ricevuto in tempo.",
|
|
385
|
+
"Astrometry.net calibration not received in time.": "Calibrazione Astrometry.net non ricevuta in tempo.",
|
|
386
|
+
"Status: Building WCS header from calibration…": "Stato: Costruzione header WCS dalla calibrazione…",
|
|
387
|
+
"Status: Solving with ASTAP…": "Stato: Risoluzione con ASTAP…",
|
|
388
|
+
"Status: Solved with ASTAP.": "Stato: Risolto con ASTAP.",
|
|
389
|
+
"Status: ASTAP failed ({0}). Falling back to Astrometry.net…": "Stato: ASTAP fallito ({0}). Ripiego su Astrometry.net…",
|
|
390
|
+
"Status: Solved via Astrometry.net.": "Stato: Risolto via Astrometry.net.",
|
|
391
|
+
"Status: Astrometry.net failed ({0}).": "Stato: Astrometry.net fallito ({0}).",
|
|
392
|
+
},
|
|
393
|
+
"BlinkComparatorPro": {
|
|
394
|
+
"Blink Comparator": "Blink Comparator",
|
|
395
|
+
},
|
|
396
|
+
"BlinkTab": {
|
|
397
|
+
"Press 'F' to flag/unflag an image.\nRight-click on an image for more options.": "Premi 'F' per marcare/smarcare un'immagine.\nTasto destro su un'immagine per più opzioni.",
|
|
398
|
+
"Select Images": "Seleziona Immagini",
|
|
399
|
+
"Select Directory": "Seleziona Cartella",
|
|
400
|
+
"Add Additional": "Aggiungi",
|
|
401
|
+
"Show Metrics": "Mostra Metriche",
|
|
402
|
+
"→ Stacking: Lights": "→ Stacking: Lights",
|
|
403
|
+
"Send selected (or all) blink files to the Stacking Suite → Light tab": "Invia file selezionati (o tutti) alla Stacking Suite → tab Light",
|
|
404
|
+
"→ Stacking: Integration": "→ Stacking: Integrazione",
|
|
405
|
+
"Send selected (or all) blink files to the Stacking Suite → Image Integration tab": "Invia file selezionati (o tutti) alla Stacking Suite → tab Integrazione Immagini",
|
|
406
|
+
"Speed:": "Velocità:",
|
|
407
|
+
"Playback speed (0.1–10.0 fps)": "Velocità riproduzione (0.1–10.0 fps)",
|
|
408
|
+
"Export Video…": "Esporta Video…",
|
|
409
|
+
"Image Files": "File Immagine",
|
|
410
|
+
"Clear Flags": "Cancella Marcature",
|
|
411
|
+
"Clear Images": "Cancella Immagini",
|
|
412
|
+
"Loading images...": "Caricamento immagini...",
|
|
413
|
+
"Aggressive Stretch": "Stiramento Aggressivo",
|
|
414
|
+
"There are no images to send.": "Non ci sono immagini da inviare.",
|
|
415
|
+
"Load images before exporting.": "Carica immagini prima di esportare.",
|
|
416
|
+
"No individual frames selected.": "Nessun frame individuale selezionato.",
|
|
417
|
+
"Nothing to export.": "Nulla da esportare.",
|
|
418
|
+
"Only one frame": "Solo un frame",
|
|
419
|
+
"You're about to export a video with a single frame. Continue?": "Stai per esportare un video con un solo frame. Continuare?",
|
|
420
|
+
"Export Blink Video": "Esporta Video Blink",
|
|
421
|
+
"No compatible video codec found.\n\nTip: install FFmpeg or `pip install imageio[ffmpeg]` for a portable fallback.": "Nessun codec video compatibile trovato.\n\nConsiglio: installa FFmpeg o `pip install imageio[ffmpeg]`.",
|
|
422
|
+
},
|
|
423
|
+
"MetricsPanel": {
|
|
424
|
+
"FWHM (px)": "FWHM (px)",
|
|
425
|
+
"Eccentricity": "Eccentricità",
|
|
426
|
+
"Background": "Sfondo",
|
|
427
|
+
"Star Count": "Conteggio Stelle",
|
|
428
|
+
"Heads-up": "Attenzione",
|
|
429
|
+
"This is going to use ALL your CPU cores and the UI may lock up until it finishes.\n\nContinue?": "Questo utilizzerà TUTTI i core della CPU e l'interfaccia potrebbe bloccarsi fino al termine.\n\nContinuare?",
|
|
430
|
+
"Don't show again": "Non mostrare più",
|
|
431
|
+
"Computing frame metrics…": "Calcolo metriche frame…",
|
|
432
|
+
},
|
|
433
|
+
"MetricsWindow": {
|
|
434
|
+
"Frame Metrics": "Metriche Frame",
|
|
435
|
+
"Instructions:\n • Use the filter dropdown to restrict by FILTER.\n • Click a dot to flag/unflag a frame.\n • Shift-click a dot to preview the image.\n • Drag the red lines to set thresholds.": "Istruzioni:\n • Usa il menu filtro per restringere per FILTER.\n • Clicca un punto per marcare/smarcare un frame.\n • Shift-clic su un punto per anteprima.\n • Trascina le linee rosse per impostare le soglie.",
|
|
436
|
+
"Flagged Items {0}/{1} ({2:.1f}%)": "Elementi marcati {0}/{1} ({2:.1f}%)",
|
|
437
|
+
"All": "Tutti",
|
|
438
|
+
},
|
|
439
|
+
"or just type the raw title; it will be auto-mapped.": "o scrivi semplicemente il titolo grezzo; sarà auto-mappato."
|
|
440
|
+
},
|
|
441
|
+
"SaspViewer": {
|
|
442
|
+
"SASP Viewer (Pickles + RGB Responses)": "Visualizzatore SASP (Pickles + Risposte RGB)",
|
|
443
|
+
"Star Template:": "Template Stella:",
|
|
444
|
+
"R-Filter:": "Filtro R:",
|
|
445
|
+
"G-Filter:": "Filtro G:",
|
|
446
|
+
"B-Filter:": "Filtro B:",
|
|
447
|
+
"LP/Cut Filter1:": "Filtro LP/Cut 1:",
|
|
448
|
+
"LP/Cut Filter2:": "Filtro LP/Cut 2:",
|
|
449
|
+
"Sensor (QE):": "Sensore (QE):",
|
|
450
|
+
"Plot": "Grafico",
|
|
451
|
+
"No channels selected": "Nessun canale selezionato",
|
|
452
|
+
"{0} Response": "Risposta {0}",
|
|
453
|
+
"Wavelength (Å)": "Lunghezza d'onda (Å)",
|
|
454
|
+
"Flux (erg s⁻¹ cm⁻² Å⁻¹)": "Flusso (erg s⁻¹ cm⁻² Å⁻¹)",
|
|
455
|
+
"Relative Throughput": "Resa Relativa",
|
|
456
|
+
"R filter×QE": "Filtro R×QE",
|
|
457
|
+
"G filter×QE": "Filtro G×QE",
|
|
458
|
+
"B filter×QE": "Filtro B×QE",
|
|
459
|
+
},
|
|
460
|
+
"SFCCDialog": {
|
|
461
|
+
"Spectral Flux Color Calibration": "Spectral Flux Color Calibration",
|
|
462
|
+
"Orientation: N/A": "Orientamento: N/D",
|
|
463
|
+
"Step 1: Fetch Stars from Current View": "Passo 1: Recupera stelle dalla vista attuale",
|
|
464
|
+
"Open SASP Viewer": "Apri Visualizzatore SASP",
|
|
465
|
+
"Select White Reference:": "Seleziona riferimento bianco:",
|
|
466
|
+
"Vega (A0V)": "Vega (A0V)",
|
|
467
|
+
"R Filter:": "Filtro R:",
|
|
468
|
+
"G Filter:": "Filtro G:",
|
|
469
|
+
"B Filter:": "Filtro B:",
|
|
470
|
+
"Sensor (QE):": "Sensore (QE):",
|
|
471
|
+
"LP/Cut Filter1:": "Filtro LP/Cut 1:",
|
|
472
|
+
"LP/Cut Filter2:": "Filtro LP/Cut 2:",
|
|
473
|
+
"Step 2: Run Color Calibration": "Passo 2: Esegui calibrazione colore",
|
|
474
|
+
"Background Neutralization": "Neutralizzazione sfondo",
|
|
475
|
+
"Run Gradient Extraction (Beta)": "Esegui estrazione gradiente (Beta)",
|
|
476
|
+
"Star detect σ:": "σ rilevamento stelle:",
|
|
477
|
+
"Add Custom Filter/Sensor Curve…": "Aggiungi curva filtro/sensore personalizzata…",
|
|
478
|
+
"Remove Filter/Sensor Curve…": "Rimuovi curva filtro/sensore personalizzata…",
|
|
479
|
+
"Close": "Chiudi",
|
|
480
|
+
"Reset View/Close": "Ripristina Vista/Chiudi",
|
|
481
|
+
"Click 3 points, then close": "Clicca 3 punti, poi chiudi",
|
|
482
|
+
"Need exactly three clicks for calibration.": "Servono esattamente tre clic per la calibrazione.",
|
|
483
|
+
"Curve Name": "Nome Curva",
|
|
484
|
+
"Enter curve name (EXTNAME):": "Inserisci nome curva (EXTNAME):",
|
|
485
|
+
"Channel": "Canale",
|
|
486
|
+
"Enter channel (R,G,B or Q for sensor):": "Inserisci canale (R,G,B o Q per sensore):",
|
|
487
|
+
"Add Custom Curve": "Aggiungi Curva Personalizzata",
|
|
488
|
+
"Choose how to add the curve:": "Scegli come aggiungere la curva:",
|
|
489
|
+
"Import CSV": "Importa CSV",
|
|
490
|
+
"Digitize Image": "Digitalizza Immagine",
|
|
491
|
+
"Select 2-column CSV (λ_nm, response)": "Seleziona CSV a 2 colonne (λ_nm, risposta)",
|
|
492
|
+
"CSV Error": "Errore CSV",
|
|
493
|
+
"Could not read CSV:\n{0}": "Impossibile leggere il CSV:\n{0}",
|
|
494
|
+
"Done": "Fatto",
|
|
495
|
+
"CSV curve '{0}' added.": "Curva CSV '{0}' aggiunta.",
|
|
496
|
+
"Select Curve Image to Digitize": "Seleziona immagine della curva da digitalizzare",
|
|
497
|
+
"Error": "Errore",
|
|
498
|
+
"Could not load image:\n{0}": "Impossibile caricare l'immagine:\n{0}",
|
|
499
|
+
"Digitization Error": "Errore Digitalizzazione",
|
|
500
|
+
"λ_min": "λ_min",
|
|
501
|
+
"Enter λ_min (in nm):": "Inserisci λ_min (in nm):",
|
|
502
|
+
"λ_max": "λ_max",
|
|
503
|
+
"Enter λ_max (in nm):": "Inserisci λ_max (in nm):",
|
|
504
|
+
"Input Error": "Errore Input",
|
|
505
|
+
"λ_min and λ_max must be numbers.": "λ_min e λ_max devono essere numeri.",
|
|
506
|
+
"Extraction Error": "Errore Estrazione",
|
|
507
|
+
"Interpolation Error": "Errore Interpolazione",
|
|
508
|
+
"Added curve '{0}'.": "Curva '{0}' aggiunta.",
|
|
509
|
+
"Remove Curve": "Rimuovi Curva",
|
|
510
|
+
"No custom curves to remove.": "Nessuna curva personalizzata da rimuovere.",
|
|
511
|
+
"Select a FILTER or SENSOR curve to delete:": "Seleziona una curva FILTRO o SENSORE da eliminare:",
|
|
512
|
+
"Confirm Deletion": "Conferma Eliminazione",
|
|
513
|
+
"Delete '{0}'?": "Eliminare '{0}'?",
|
|
514
|
+
"Removed": "Rimosso",
|
|
515
|
+
"Deleted curve '{0}'.": "Curva '{0}' eliminata.",
|
|
516
|
+
},
|
|
517
|
+
"ImagePreviewWindow": {
|
|
518
|
+
"Fit": "Adatta",
|
|
519
|
+
"1:1": "1:1",
|
|
520
|
+
"Zoom In": "Ingrandisci",
|
|
521
|
+
"Zoom Out": "Riduci",
|
|
522
|
+
"Push to New View": "Invia a nuova Vista",
|
|
523
|
+
"Pushed": "Inviato",
|
|
524
|
+
"New View Created.": "Nuova Vista creata.",
|
|
525
|
+
},
|
|
526
|
+
"SupernovaAsteroidHunterDialog": {
|
|
527
|
+
"Supernova / Asteroid Hunter": "Cacciatore di Supernovae / Asteroidi",
|
|
528
|
+
"Select the reference image and search images. Then click Process to hunt for anomalies.": "Seleziona l'immagine di riferimento e le immagini di ricerca. Poi clicca Processa per cercare anomalie.",
|
|
529
|
+
"No reference image selected": "Nessuna immagine di riferimento selezionata",
|
|
530
|
+
"Select Reference Image": "Seleziona Immagine di Riferimento",
|
|
531
|
+
"Select Search Images": "Seleziona Immagini di Ricerca",
|
|
532
|
+
"Apply Cosmetic Correction before Preprocessing": "Applica Correzione Cosmetica prima del Preprocessing",
|
|
533
|
+
"Anomaly Detection Threshold: 0.10": "Soglia rilevamento anomalie: 0.10",
|
|
534
|
+
"Process (Cosmetic Correction, Preprocess, and Search)": "Processa (Correzione Cosmetica, Preprocessing e Ricerca)",
|
|
535
|
+
"Preprocessing progress: 0 / 0": "Progresso Preprocessing: 0 / 0",
|
|
536
|
+
"Processing progress: 0 / 0": "Progresso Elaborazione: 0 / 0",
|
|
537
|
+
"Status: Idle": "Stato: Inattivo",
|
|
538
|
+
"New Instance": "Nuova Istanza",
|
|
539
|
+
"Anomaly Detection Threshold: {0:.2f}": "Soglia rilevamento anomalie: {0:.2f}",
|
|
540
|
+
"Process started...": "Processo avviato...",
|
|
541
|
+
"Running Cosmetic Correction...": "Esecuzione Correzione Cosmetica...",
|
|
542
|
+
"Preprocessing images...": "Preprocessing immagini...",
|
|
543
|
+
"Analyzing anomalies...": "Analisi anomalie...",
|
|
544
|
+
"Process complete.": "Processo completato.",
|
|
545
|
+
"Cosmetic Correction: {0}/{1} => {2}": "Correzione Cosmetica: {0}/{1} => {2}",
|
|
546
|
+
"Preprocessing reference image...": "Preprocessing immagine di riferimento...",
|
|
547
|
+
"Error": "Errore",
|
|
548
|
+
"No reference image selected.": "Nessuna immagine di riferimento selezionata.",
|
|
549
|
+
"Preprocessing reference image... Done.": "Preprocessing immagine di riferimento... Fatto.",
|
|
550
|
+
"Failed to preprocess reference image: {0}": "Impossibile preprocessare l'immagine di riferimento: {0}",
|
|
551
|
+
"Preprocessing search image {0}/{1} => {2}": "Preprocessing immagine di ricerca {0}/{1} => {2}",
|
|
552
|
+
"Preprocessing image {0} of {1}... Done.": "Preprocessing immagine {0} di {1}... Fatto.",
|
|
553
|
+
"All search images preprocessed.": "Tutte le immagini di ricerca preprocessate.",
|
|
554
|
+
"Minor-body Search Limits": "Limiti ricerca corpi minori",
|
|
555
|
+
"Asteroid H ≤": "Asteroide H ≤",
|
|
556
|
+
"Max asteroid": "Max asteroidi",
|
|
557
|
+
"Comet H ≤": "Cometa H ≤",
|
|
558
|
+
"Max comet": "Max comete",
|
|
559
|
+
"Time offset (hours)": "Offset temporale (ore)",
|
|
560
|
+
"OK": "OK",
|
|
561
|
+
"Cancel": "Annulla",
|
|
562
|
+
"Minor-body Search": "Ricerca Corpi Minori",
|
|
563
|
+
"Minor-body prediction failed:\n{0}": "Predizione corpi minori fallita:\n{0}",
|
|
564
|
+
"Minor-body search failed.": "Ricerca corpi minori fallita.",
|
|
565
|
+
"Minor-body search complete: no catalogued objects in this field for the current magnitude limits.": "Ricerca corpi minori completata: nessun oggetto catalogato in questo campo per i limiti attuali.",
|
|
566
|
+
"No catalogued minor bodies (within the configured magnitude limits) were found in this field.": "Nessun corpo minore catalogato trovato in questo campo.",
|
|
567
|
+
"Minor-body search complete: {0} objects in field.": "Ricerca corpi minori completata: {0} oggetti nel campo.",
|
|
568
|
+
"Minor bodies in field have been computed.\n\nRun the anomaly search (Process) to cross-match detections against the predicted objects.": "Corpi minori nel campo calcolati.\n\nEsegui la ricerca anomalie (Processa) per confrontare i rilevamenti con gli oggetti predetti.",
|
|
569
|
+
"No reference image selected.\n\nPlease select a reference image and run Process first.": "Nessuna immagine di riferimento selezionata.\n\nSeleziona un'immagine e avvia Processa prima.",
|
|
570
|
+
"Reference image has not been preprocessed yet.\n\nPlease click 'Process' before running the minor-body search.": "L'immagine di riferimento non è stata ancora preprocessata.\n\nClicca 'Processa' prima di cercare corpi minori.",
|
|
571
|
+
"Settings object is not available; cannot locate the minor-body database path.": "Oggetto impostazioni non disponibile; impossibile localizzare il database dei corpi minori.",
|
|
572
|
+
"Minor-body search: preparing catalog query...": "Ricerca corpi minori: preparazione interrogazione catalogo...",
|
|
573
|
+
},
|
|
574
|
+
"WaveScaleHDRDialogPro": {
|
|
575
|
+
"WaveScale HDR": "WaveScale HDR",
|
|
576
|
+
"HDR Controls": "Controlli HDR",
|
|
577
|
+
"Number of Scales:": "Numero di scale:",
|
|
578
|
+
"Coarse Compression:": "Compressione grossolana:",
|
|
579
|
+
"Mask Gamma:": "Gamma Maschera:",
|
|
580
|
+
"Preview": "Anteprima",
|
|
581
|
+
"Show Original": "Mostra Originale",
|
|
582
|
+
"Zoom In": "Ingrandisci",
|
|
583
|
+
"Zoom Out": "Riduci",
|
|
584
|
+
"Fit to Preview": "Adatta all'Anteprima",
|
|
585
|
+
"Processing Progress": "Progresso Elaborazione",
|
|
586
|
+
"Idle": "Inattivo",
|
|
587
|
+
"Apply to Document": "Applica al Documento",
|
|
588
|
+
"Reset": "Ripristina",
|
|
589
|
+
"Close": "Chiudi",
|
|
590
|
+
"Show Preview": "Mostra Anteprima",
|
|
591
|
+
"A headless HDR run appears to be in progress. This window will remain open; you can still preview safely.": "Un'esecuzione HDR automatica sembra essere in corso. Questa finestra rimarrà aperta; puoi comunque usare l'anteprima.",
|
|
592
|
+
"Processing failed.": "Elaborazione fallita.",
|
|
593
|
+
"HDR Mask (L × Active Mask)": "Maschera HDR (L × Maschera Attiva)",
|
|
594
|
+
"HDR Mask (L-based)": "Maschera HDR (basata su L)",
|
|
595
|
+
"Preview ready": "Anteprima pronta",
|
|
596
|
+
"Failed to write to document:\n{0}": "Impossibile scrivere nel documento:\n{0}",
|
|
597
|
+
},
|
|
598
|
+
"WaveScaleHDRPresetDialog": {
|
|
599
|
+
"WaveScale HDR — Preset": "WaveScale HDR — Preset",
|
|
600
|
+
"Number of Scales:": "Numero di scale:",
|
|
601
|
+
"Coarse Compression:": "Compressione grossolana:",
|
|
602
|
+
"Mask Gamma:": "Gamma Maschera:",
|
|
603
|
+
"Load an image first.": "Carica prima un'immagine.",
|
|
604
|
+
},
|
|
605
|
+
"HDRWorker": {
|
|
606
|
+
"Converting to Lab color space…": "Conversione in spazio colore Lab…",
|
|
607
|
+
"Decomposing luminance with starlet…": "Decomposizione luminanza con starlet…",
|
|
608
|
+
"Finalizing…": "Finalizzazione…",
|
|
609
|
+
},
|
|
610
|
+
"MaskDisplayWindow": {
|
|
611
|
+
"HDR Mask (L-based)": "Maschera HDR (basata su L)",
|
|
612
|
+
},
|
|
613
|
+
"WhiteBalanceDialog": {
|
|
614
|
+
"White Balance": "Bilanciamento del bianco",
|
|
615
|
+
"White Balance Type:": "Tipo di bilanciamento del bianco:",
|
|
616
|
+
"Star-Based": "Basato sulle stelle",
|
|
617
|
+
"Manual": "Manuale",
|
|
618
|
+
"Auto": "Automatico",
|
|
619
|
+
"Manual Gains": "Guadagni manuali",
|
|
620
|
+
"Red gain:": "Guadagno rosso:",
|
|
621
|
+
"Green gain:": "Guadagno verde:",
|
|
622
|
+
"Blue gain:": "Guadagno blu:",
|
|
623
|
+
"Star-Based Settings": "Impostazioni basate sulle stelle",
|
|
624
|
+
"Detection threshold (σ):": "Soglia di rilevamento (σ):",
|
|
625
|
+
"Reuse cached star detections": "Riutilizza rilevamenti stelle memorizzati",
|
|
626
|
+
"Autostretch overlay preview": "Anteprima sovrapposta con autostretch",
|
|
627
|
+
"Detecting stars...": "Rilevamento stelle...",
|
|
628
|
+
"Detected {0} stars.": "Rilevate {0} stelle.",
|
|
629
|
+
"Detection failed.": "Rilevamento fallito.",
|
|
630
|
+
"Apply": "Applica",
|
|
631
|
+
"Cancel": "Annulla",
|
|
632
|
+
"Star-Based WB applied.\nDetected {0} stars.": "Bilanciamento del bianco basato sulle stelle applicato.\nRilevate {0} stelle.",
|
|
633
|
+
"Failed to apply White Balance:\n{0}": "Impossibile applicare il bilanciamento del bianco:\n{0}",
|
|
634
|
+
},
|
|
635
|
+
"WaveScaleDarkEnhancerDialogPro": {
|
|
636
|
+
"Dark Mask": "Maschera scura",
|
|
637
|
+
"WaveScale Dark Enhancer": "WaveScale Dark Enhancer",
|
|
638
|
+
"Dark Enhancer Controls": "Controlli Dark Enhancer",
|
|
639
|
+
"Number of Scales:": "Numero di scale:",
|
|
640
|
+
"Boost Factor:": "Fattore di boost:",
|
|
641
|
+
"Mask Gamma:": "Gamma della maschera:",
|
|
642
|
+
"Iterations:": "Iterazioni:",
|
|
643
|
+
"Preview": "Anteprima",
|
|
644
|
+
"Show Original": "Mostra originale",
|
|
645
|
+
"Show Preview": "Mostra anteprima",
|
|
646
|
+
"Progress": "Progresso",
|
|
647
|
+
"Idle": "Inattivo",
|
|
648
|
+
"Apply to Document": "Applica al documento",
|
|
649
|
+
"Reset": "Ripristina",
|
|
650
|
+
"Close": "Chiudi",
|
|
651
|
+
"Zoom Controls": "Controlli zoom",
|
|
652
|
+
"Zoom In": "Ingrandisci",
|
|
653
|
+
"Zoom Out": "Rimpicciolisci",
|
|
654
|
+
"Fit to Preview": "Adatta all'anteprima",
|
|
655
|
+
"Dark Mask (Algo × Active Mask)": "Maschera scura (Algo × Maschera attiva)",
|
|
656
|
+
"Analyzing dark structure…": "Analisi della struttura scura…",
|
|
657
|
+
"Finalizing…": "Finalizzazione…",
|
|
658
|
+
"Processing failed.": "Elaborazione fallita.",
|
|
659
|
+
"Preview ready": "Anteprima pronta",
|
|
660
|
+
"Failed to write to document:\n{0}": "Impossibile scrivere nel documento:\n{0}",
|
|
661
|
+
"No active image.": "Nessuna immagine attiva.",
|
|
662
|
+
},
|
|
663
|
+
"WaveScaleDSEPresetDialog": {
|
|
664
|
+
"WaveScale Dark Enhancer — Preset": "WaveScale Dark Enhancer — Predefinito",
|
|
665
|
+
"Number of Scales:": "Numero di scale:",
|
|
666
|
+
"Boost Factor:": "Fattore di boost:",
|
|
667
|
+
"Mask Gamma:": "Gamma della maschera:",
|
|
668
|
+
"Iterations:": "Iterazioni:",
|
|
669
|
+
"WaveScale Dark Enhancer": "WaveScale Dark Enhancer",
|
|
670
|
+
"Load an image first.": "Carica prima un'immagine.",
|
|
671
|
+
"Failed to write to document:\n{0}": "Impossibile scrivere nel documento:\n{0}",
|
|
672
|
+
},
|
|
673
|
+
},
|
|
674
|
+
"fr": {
|
|
675
|
+
"SettingsDialog": {
|
|
676
|
+
"Preferences": "Préférences",
|
|
677
|
+
"Check for updates on startup": "Vérifier mises à jour au démarrage",
|
|
678
|
+
"Reset": "Réinitialiser",
|
|
679
|
+
"Browse…": "Parcourir…",
|
|
680
|
+
"Theme:": "Thème :",
|
|
681
|
+
"Language:": "Langue :",
|
|
682
|
+
"<b>Display</b>": "<b>Affichage</b>",
|
|
683
|
+
"<b>Paths & Integrations</b>": "<b>Chemins et intégrations</b>",
|
|
684
|
+
"<b>What's In My Sky — Defaults</b>": "<b>What's In My Sky — Défauts</b>",
|
|
685
|
+
"Latitude (°):": "Latitude (°) :",
|
|
686
|
+
"Longitude (°):": "Longitude (°) :",
|
|
687
|
+
"Date (YYYY-MM-DD):": "Date (AAAA-MM-JJ) :",
|
|
688
|
+
"Time (HH:MM):": "Heure (HH:MM) :",
|
|
689
|
+
"Time Zone:": "Fuseau horaire :",
|
|
690
|
+
"Min Altitude (°):": "Altitude min (°) :",
|
|
691
|
+
"Object Limit:": "Limite objets :",
|
|
692
|
+
"<b>RA/Dec Overlay</b>": "<b>Overlay RA/Dec</b>",
|
|
693
|
+
"Show RA/Dec grid": "Afficher grille RA/Dec",
|
|
694
|
+
"Mode:": "Mode :",
|
|
695
|
+
"Step:": "Pas :",
|
|
696
|
+
"<b>Updates</b>": "<b>Mises à jour</b>",
|
|
697
|
+
"Updates JSON URL:": "URL JSON mises à jour :",
|
|
698
|
+
"Background Opacity:": "Opacité arrière-plan :",
|
|
699
|
+
"Background Image:": "Image arrière-plan :",
|
|
700
|
+
},
|
|
701
|
+
"MenuMixin": {
|
|
702
|
+
"&File": "&Fichier",
|
|
703
|
+
"&Edit": "&Édition",
|
|
704
|
+
"&Functions": "&Fonctions",
|
|
705
|
+
"&Smart Tools": "&Outils Smart",
|
|
706
|
+
"&Tools": "&Outils",
|
|
707
|
+
"&Geometry": "&Géométrie",
|
|
708
|
+
"&Star Stuff": "&Étoiles",
|
|
709
|
+
"&Masks": "&Masques",
|
|
710
|
+
"&What's In My...": "&What's In My...",
|
|
711
|
+
"&Scripts": "&Scripts",
|
|
712
|
+
"&Header Mods && Misc": "&Modif. Header et Divers",
|
|
713
|
+
"&History": "&Historique",
|
|
714
|
+
"&Shortcuts": "&Raccourcis",
|
|
715
|
+
"&View": "&Affichage",
|
|
716
|
+
"&Settings": "&Paramètres",
|
|
717
|
+
"&About": "&À propos",
|
|
718
|
+
"Preferences...": "Préférences...",
|
|
719
|
+
"About...": "À propos...",
|
|
720
|
+
"Open Recent Images": "Images récentes",
|
|
721
|
+
"Open Recent Projects": "Projets récents",
|
|
722
|
+
"No recent images": "Aucune image récente",
|
|
723
|
+
"No recent projects": "Aucun projet récent",
|
|
724
|
+
"Clear List": "Effacer liste",
|
|
725
|
+
"Keyboard Shortcut Cheat Sheet...": "Aide-mémoire raccourcis clavier...",
|
|
726
|
+
"Export Shortcuts...": "Exporter raccourcis...",
|
|
727
|
+
"Import Shortcuts...": "Importer raccourcis...",
|
|
728
|
+
"Clear All Shortcuts": "Effacer tous les raccourcis",
|
|
729
|
+
"None": "Aucun",
|
|
730
|
+
"Group A": "Groupe A",
|
|
731
|
+
"Group B": "Groupe B",
|
|
732
|
+
"Group C": "Groupe C",
|
|
733
|
+
"Group D": "Groupe D",
|
|
734
|
+
},
|
|
735
|
+
"ToolbarMixin": {
|
|
736
|
+
"Open...": "Ouvrir...",
|
|
737
|
+
"Open image(s)": "Ouvrir image(s)",
|
|
738
|
+
"New Project": "Nouveau projet",
|
|
739
|
+
"Save Project...": "Enregistrer projet...",
|
|
740
|
+
"Load Project...": "Charger projet...",
|
|
741
|
+
"Clear All Views": "Fermer toutes les vues",
|
|
742
|
+
"Save As...": "Enregistrer sous...",
|
|
743
|
+
"Save the active image": "Enregistrer l'image active",
|
|
744
|
+
"&Exit": "&Quitter",
|
|
745
|
+
"Cascade Views": "Cascade vues",
|
|
746
|
+
"Tile Views": "Mosaïque vues",
|
|
747
|
+
"Tile Vertically": "Mosaïque verticale",
|
|
748
|
+
"Tile Horizontally": "Mosaïque horizontale",
|
|
749
|
+
"Smart Grid": "Grille intelligente",
|
|
750
|
+
"Link Pan/Zoom": "Lier Pan/Zoom",
|
|
751
|
+
"Undo": "Annuler",
|
|
752
|
+
"Redo": "Rétablir",
|
|
753
|
+
},
|
|
754
|
+
"AstroSuiteProMainWindow": {
|
|
755
|
+
"Exit Seti Astro Suite Pro?": "Quitter Seti Astro Suite Pro ?",
|
|
756
|
+
"Confirm Exit": "Confirmer la sortie",
|
|
757
|
+
"Open images:": "Images ouvertes :",
|
|
758
|
+
"Edited since open:": "Modifiées depuis l'ouverture :",
|
|
759
|
+
"New Project": "Nouveau projet",
|
|
760
|
+
"This will close all views and clear desktop shortcuts. Continue?": "Cela fermera toutes les vues et effacera les raccourcis. Continuer ?",
|
|
761
|
+
"Clear All Views": "Fermer toutes les vues",
|
|
762
|
+
"Close all views and documents? Desktop shortcuts will be preserved.": "Fermer toutes les vues et documents ? Les raccourcis seront préservés.",
|
|
763
|
+
"Loading a project will close current views and replace desktop shortcuts.": "Charger un projet fermera les vues actuelles et remplacera les raccourcis.",
|
|
764
|
+
"System Log": "Journal système",
|
|
765
|
+
"Show System Log Panel": "Afficher le journal système",
|
|
766
|
+
"Explorer": "Explorateur",
|
|
767
|
+
"Console / Status": "Console / État",
|
|
768
|
+
"Invert": "Inverser",
|
|
769
|
+
"Flip Horizontal": "Miroir horizontal",
|
|
770
|
+
"Flip Vertical": "Miroir vertical",
|
|
771
|
+
"Rotate 90° CW": "Rotation 90° Horaire",
|
|
772
|
+
"Rotate 90° CCW": "Rotation 90° Anti-horaire",
|
|
773
|
+
"Rotate 180°": "Rotation 180°",
|
|
774
|
+
"Rescale Image": "Redimensionner l'image",
|
|
775
|
+
"Active view has no image.": "La vue active n'a pas d'image.",
|
|
776
|
+
"Mask Overlay": "Masque superposé",
|
|
777
|
+
"No active mask on this image.": "Aucun masque actif sur cette image.",
|
|
778
|
+
"No header": "Aucun en-tête",
|
|
779
|
+
"Checking for updates...": "Vérification des mises à jour...",
|
|
780
|
+
"Update Available": "Mise à jour disponible",
|
|
781
|
+
"You're up to date.": "Le logiciel est à jour.",
|
|
782
|
+
"Open Images": "Ouvrir images",
|
|
783
|
+
"Open failed": "Échec de l'ouverture",
|
|
784
|
+
"Save failed": "Échec de l'enregistrement",
|
|
785
|
+
"File not found": "Fichier introuvable",
|
|
786
|
+
"Project not found": "Projet introuvable",
|
|
787
|
+
"Save Project": "Enregistrer projet",
|
|
788
|
+
"Load Project": "Charger projet",
|
|
789
|
+
"Saving project...": "Enregistrement du projet...",
|
|
790
|
+
"No documents to save.": "Aucun document à enregistrer.",
|
|
791
|
+
},
|
|
792
|
+
"GhsDialogPro": {
|
|
793
|
+
"Hyperbolic Stretch": "Étirement Hyperbolique",
|
|
794
|
+
"Tip: Ctrl+Click (or double-click) the image to set the symmetry pivot": "Conseil : Ctrl+Clic (ou double-clic) sur l'image pour définir le pivot de symétrie",
|
|
795
|
+
"Ctrl+Click (or double-click) the image to set the symmetry pivot": "Ctrl+Clic (ou double-clic) sur l'image pour définir le pivot de symétrie",
|
|
796
|
+
"Channel:": "Canal :",
|
|
797
|
+
"Apply": "Appliquer",
|
|
798
|
+
"Reset": "Réinitialiser",
|
|
799
|
+
"Histogram": "Histogramme",
|
|
800
|
+
"Zoom Out": "Zoom arrière",
|
|
801
|
+
"Zoom In": "Zoom avant",
|
|
802
|
+
"Fit to Preview": "Ajuster à l'aperçu",
|
|
803
|
+
"Could not import histogram module:\n{0}": "Impossible d'importer le module histogramme :\n{0}",
|
|
804
|
+
"Apply failed": "Échec de l'application",
|
|
805
|
+
"No image": "Aucune image",
|
|
806
|
+
"Open an image first.": "Ouvrez d'abord une image.",
|
|
807
|
+
},
|
|
808
|
+
"HistogramDialog": {
|
|
809
|
+
"Histogram": "Histogramme",
|
|
810
|
+
"Ctrl+Click on the histogram to send that intensity as the pivot to Hyperbolic Stretch (if open).": "Ctrl+Clic sur l'histogramme pour envoyer cette intensité comme pivot à l'Étirement Hyperbolique (si ouvert).",
|
|
811
|
+
"Min": "Min",
|
|
812
|
+
"Max": "Max",
|
|
813
|
+
"Median": "Médiane",
|
|
814
|
+
"StdDev": "Écart-type",
|
|
815
|
+
"MAD": "MAD",
|
|
816
|
+
"Low Clipped": "Écrêtage bas",
|
|
817
|
+
"High Clipped": "Écrêtage haut",
|
|
818
|
+
"Zoom:": "Zoom :",
|
|
819
|
+
"Toggle Log X-Axis": "Axe X Logarithmique",
|
|
820
|
+
"Toggle Log Y-Axis": "Axe Y Logarithmique",
|
|
821
|
+
"Close": "Fermer",
|
|
822
|
+
"True Max {0:.4f}": "Vrai Max {0:.4f}",
|
|
823
|
+
"Sensor True Max (ADU)": "Vrai Max Capteur (ADU)",
|
|
824
|
+
"Enter your sensor's true saturation value in native ADU.\n(Typical max for this file type is {0})\n\nYou can measure this by taking a deliberately overexposed frame\nand reading its maximum pixel value.": "Entrez la valeur de saturation réelle de votre capteur en ADU natif.\n(Le max typique pour ce type de fichier est {0})\n\nVous pouvez mesurer cela en prenant une image délibérément surexposée\net en lisant sa valeur maximale de pixel.",
|
|
825
|
+
"Histogram Effective Max": "Max Efficace Histogramme",
|
|
826
|
+
"Enter effective maximum for clipping (normalized units).": "Entrez le maximum efficace pour l'écrêtage (unités normalisées).",
|
|
827
|
+
},
|
|
828
|
+
"CurvesDialogPro": {
|
|
829
|
+
"Zoom Out": "Zoom arrière",
|
|
830
|
+
"Zoom In": "Zoom avant",
|
|
831
|
+
"Fit to Preview": "Ajuster à l'aperçu",
|
|
832
|
+
"Inflection @ K={0:.3f}": "Inflexion @ K={0:.3f}",
|
|
833
|
+
"Cursor ({0}, {1}) K: {2:.3f}": "Curseur ({0}, {1}) K : {2:.3f}",
|
|
834
|
+
"Cursor ({0}, {1}) R: {2:.3f} G: {3:.3f} B: {4:.3f}": "Curseur ({0}, {1}) R : {2:.3f} G : {3:.3f} B : {4:.3f}",
|
|
835
|
+
"Save Curves Preset": "Enregistrer Préréglage Courbes",
|
|
836
|
+
"Preset name:": "Nom du préréglage :",
|
|
837
|
+
"Saved preset “{0}”.": "Préréglage “{0}” enregistré.",
|
|
838
|
+
"Save failed": "Échec de l'enregistrement",
|
|
839
|
+
"Could not save preset.": "Impossible d'enregistrer le préréglage.",
|
|
840
|
+
"Built-ins": "Intégrés",
|
|
841
|
+
"Custom": "Personnalisés",
|
|
842
|
+
"(No custom presets yet)": "(Aucun préréglage personnalisé)",
|
|
843
|
+
"Manage Presets": "Gérer les préréglages",
|
|
844
|
+
"No custom presets.": "Aucun préréglage personnalisé.",
|
|
845
|
+
"Delete Preset": "Supprimer le préréglage",
|
|
846
|
+
"Choose preset to delete:": "Choisir le préréglage à supprimer :",
|
|
847
|
+
"No image": "Aucune image",
|
|
848
|
+
"Open an image first.": "Ouvrez d'abord une image.",
|
|
849
|
+
"Preview ON": "Aperçu ON",
|
|
850
|
+
"Preview OFF": "Aperçu OFF",
|
|
851
|
+
"Bk {0:,} ({1:.2f}%) Wt {2:,} ({3:.2f}%)": "Noirs {0:,} ({1:.2f}%) Blancs {2:,} ({3:.2f}%)",
|
|
852
|
+
"Clipping — R: {0} G: {1} B: {2}": "Écrêtage — R : {0} G : {1} B : {2}",
|
|
853
|
+
"Clipping — Bk {0:,} ({1:.2f}%) Wt {2:,} ({3:.2f}%)": "Écrêtage — N {0:,} ({1:.2f}%) B {2:,} ({3:.2f}%)",
|
|
854
|
+
"Full-res ready (not shown).": "Haute rés. prête (non affichée).",
|
|
855
|
+
"Applied. Image reloaded. All curves reset — keep tweaking.": "Appliqué. Image rechargée. Courbes réinitialisées — continuez les ajustements.",
|
|
856
|
+
"Apply failed": "Échec de l'application",
|
|
857
|
+
"Added point at x={0:.3f}": "Point ajouté à x={0:.3f}",
|
|
858
|
+
"All curves reset.": "Toutes les courbes réinitialisées.",
|
|
859
|
+
"Preset: {0} {1}": "Préréglage : {0} {1}",
|
|
860
|
+
"(built-in)": "(intégré)",
|
|
861
|
+
},
|
|
862
|
+
"PixelMathDialogPro": {
|
|
863
|
+
"Pixel Math": "Pixel Math",
|
|
864
|
+
"Variables": "Variables",
|
|
865
|
+
"Output": "Sortie",
|
|
866
|
+
"Overwrite active": "Écraser l'actif",
|
|
867
|
+
"Create new view": "Créer une nouvelle vue",
|
|
868
|
+
"Single Expression": "Expression unique",
|
|
869
|
+
"Separate (R / G / B)": "Séparé (R / V / B)",
|
|
870
|
+
"e.g. (img + otherView) / 2": "ex. (img + autreVue) / 2",
|
|
871
|
+
"Red": "Rouge",
|
|
872
|
+
"Green": "Vert",
|
|
873
|
+
"Blue": "Bleu",
|
|
874
|
+
"Glossary…": "Glossaire…",
|
|
875
|
+
"Preview": "Aperçu",
|
|
876
|
+
"Compute Pixel Math and show the result here without committing.": "Calculer Pixel Math et afficher le résultat ici sans appliquer.",
|
|
877
|
+
"Auto-stretch": "Auto-étirement",
|
|
878
|
+
"Enable Auto-stretch": "Activer Auto-étirement",
|
|
879
|
+
"Target median": "Médiane cible",
|
|
880
|
+
"0.18 (soft)": "0.18 (doux)",
|
|
881
|
+
"0.25 (default)": "0.25 (défaut)",
|
|
882
|
+
"0.35 (brighter)": "0.35 (plus lumineux)",
|
|
883
|
+
"Black-point sigma": "Sigma point noir",
|
|
884
|
+
"σ=2.5": "σ=2.5",
|
|
885
|
+
"σ=3 (default)": "σ=3 (défaut)",
|
|
886
|
+
"σ=4 (deeper black)": "σ=4 (noir profond)",
|
|
887
|
+
"Linked channels (use luminance)": "Canaux liés (utiliser luminance)",
|
|
888
|
+
"Use 16-bit stats": "Utiliser stats 16-bit",
|
|
889
|
+
"Zoom In": "Zoom avant",
|
|
890
|
+
"Zoom Out": "Zoom arrière",
|
|
891
|
+
"1:1": "1:1",
|
|
892
|
+
"Fit to Preview": "Ajuster à l'aperçu",
|
|
893
|
+
"Examples:": "Exemples :",
|
|
894
|
+
"Insert example…": "Insérer exemple…",
|
|
895
|
+
"Select a favorite expression": "Sélectionner une expression favorite",
|
|
896
|
+
"Save as Favorite": "Enregistrer en favori",
|
|
897
|
+
"Delete Favorite": "Supprimer favori",
|
|
898
|
+
"Delete this favorite": "Supprimer ce favori",
|
|
899
|
+
"Help": "Aide",
|
|
900
|
+
"Pixel Math Preview": "Aperçu Pixel Math",
|
|
901
|
+
"Failed:\n{0}": "Échec :\n{0}",
|
|
902
|
+
"Average two views": "Moyenne de deux vues",
|
|
903
|
+
"Difference (A - B)": "Différence (A - B)",
|
|
904
|
+
"Invert active": "Inverser l'actif",
|
|
905
|
+
"Subtract median (bias remove)": "Soustraire médiane (retrait bias)",
|
|
906
|
+
"Zero-center by mean": "Centrer zéro sur la moyenne",
|
|
907
|
+
"Min + Max combine": "Combiner Min + Max",
|
|
908
|
+
"Log transform": "Transformation Log",
|
|
909
|
+
"Midtones transform m=0.25": "Transformation tons moyens m=0.25",
|
|
910
|
+
"If darker than median → 0 else 1": "Si plus sombre que médiane → 0 sinon 1",
|
|
911
|
+
"Per-channel: swap R↔B": "Par canal : échanger R↔B",
|
|
912
|
+
"Per-channel: avg A & B": "Par canal : moyenne A & B",
|
|
913
|
+
"Per-channel: build RGB from A,B,C": "Par canal : construire RGB de A,B,C",
|
|
914
|
+
"Normalize to 0–1 (per-channel)": "Normaliser à 0–1 (par canal)",
|
|
915
|
+
"Sigmoid contrast (k=12, mid=0.4)": "Contraste Sigmoïde (k=12, mid=0.4)",
|
|
916
|
+
"Gamma 0.6 (brighten midtones)": "Gamma 0.6 (éclaircir tons moyens)",
|
|
917
|
+
"Percentile stretch 0.5–99.5%": "Étirement percentile 0.5–99.5%",
|
|
918
|
+
"Blend A→B by horizontal gradient X": "Mélange A→B par gradient horizontal X",
|
|
919
|
+
"Apply active mask to blend A→B": "Appliquer masque actif pour mélanger A→B",
|
|
920
|
+
"Masked unsharp (luma-based)": "Netteté masquée (basée sur luma)",
|
|
921
|
+
"Match medians of A to B": "Correspondre médianes de A à B",
|
|
922
|
+
"Gaussian blur σ=2": "Flou Gaussien σ=2",
|
|
923
|
+
"Median filter k=3": "Filtre Médian k=3",
|
|
924
|
+
"Per-channel: luma to all channels": "Par canal : luma sur tous les canaux",
|
|
925
|
+
"Per-channel: A’s R, B’s G, C’s B (normed)": "Par canal : R de A, G de B, B de C (norm)",
|
|
926
|
+
"Pixel Math Glossary": "Glossaire Pixel Math",
|
|
927
|
+
"Double-click to insert a template at the cursor.": "Double-clic pour insérer un modèle au curseur.",
|
|
928
|
+
"Search…": "Rechercher…",
|
|
929
|
+
"Insert": "Insérer",
|
|
930
|
+
"Pixel Math Help": "Aide Pixel Math",
|
|
931
|
+
"Operators: + - * / ^(power) ~(invert)": "Opérateurs : + - * / ^(puissance) ~(inverser)",
|
|
932
|
+
"Comparisons: <, == (use inside iff)": "Comparaisons : <, == (utiliser dans iff)",
|
|
933
|
+
"Variables:": "Variables :",
|
|
934
|
+
" • img (active) and one per open view (by window title, auto-mapped).": " • img (actif) et un par vue ouverte (par titre de fenêtre, auto-mappé).",
|
|
935
|
+
" • Coordinates: X, Y in [0..1].": " • Coordonnées : X, Y dans [0..1].",
|
|
936
|
+
" • Sizes: H, W, C, shape.": " • Dimensions : H, W, C, forme.",
|
|
937
|
+
"Per-channel indexing: view[0], view[1], view[2].": "Indexation par canal : vue[0], vue[1], vue[2].",
|
|
938
|
+
"Multiline: last line is the result.": "Multiligne : la dernière ligne est le résultat.",
|
|
939
|
+
"Output: Overwrite active or Create new view.": "Sortie : Écraser l'actif ou Créer nouvelle vue.",
|
|
940
|
+
"Functions:": "Fonctions :",
|
|
941
|
+
"Limit values to [lo..hi].": "Limiter valeurs à [lo..hi].",
|
|
942
|
+
"Map range [a..b] to [lo..hi].": "Mapper plage [a..b] à [lo..hi].",
|
|
943
|
+
"Apply gamma curve.": "Appliquer courbe gamma.",
|
|
944
|
+
"Power with EPS floor.": "Puissance avec seuil EPS.",
|
|
945
|
+
"Absolute value.": "Valeur absolue.",
|
|
946
|
+
"Exponential.": "Exponentielle.",
|
|
947
|
+
"Square root (clamped to ≥0).": "Racine carrée (limitée à ≥0).",
|
|
948
|
+
"Inverse sine (radians), input clipped to [-1,1].": "Sinus inverse (radians), entrée limitée à [-1,1].",
|
|
949
|
+
"S-shaped tone curve.": "Courbe de ton en S.",
|
|
950
|
+
"Cubic smooth ramp.": "Rampe cubique douce.",
|
|
951
|
+
"Linear blend.": "Mélange linéaire.",
|
|
952
|
+
"Per-channel percentile image.": "Image percentile par canal.",
|
|
953
|
+
"Per-channel [0..1] normalization.": "Normalisation [0..1] par canal.",
|
|
954
|
+
"Per-channel (x-mean)/std.": "Par canal (x-moyenne)/std.",
|
|
955
|
+
"Extract channel i (0/1/2) as 2-D.": "Extraire canal i (0/1/2) en 2-D.",
|
|
956
|
+
"Rec.709 luminance as 2-D.": "Luminance Rec.709 en 2-D.",
|
|
957
|
+
"Stack three planes to RGB.": "Empiler trois plans en RGB.",
|
|
958
|
+
"Active mask (2-D, [0..1]).": "Masque actif (2-D, [0..1]).",
|
|
959
|
+
"Blend by mask.": "Mélanger par masque.",
|
|
960
|
+
"Box blur (cv2 if available).": "Flou Boîte (cv2 si dispo).",
|
|
961
|
+
"Gaussian blur.": "Flou Gaussien.",
|
|
962
|
+
"Median filter (cv2 if avail).": "Filtre Médian (si cv2 dispo).",
|
|
963
|
+
"Unsharp mask.": "Masque flou.",
|
|
964
|
+
"Midtones transfer (existing).": "Transfert tons moyens (existant).",
|
|
965
|
+
"Conditional (existing).": "Conditionnel (existant).",
|
|
966
|
+
"Normalized coordinates in [0..1].": "Coordonnées normalisées dans [0..1].",
|
|
967
|
+
"Image dimensions.": "Dimensions de l'image.",
|
|
968
|
+
"img (active)": "img (actif)",
|
|
969
|
+
"Tip: double-click to insert the identifier at the cursor": "Conseil : double-clic pour insérer l'identifiant au curseur",
|
|
970
|
+
"\n\nTip: use the identifier listed in Variables (or the raw title; it’s auto-mapped).": "\n\nConseil : utilisez l'identifiant listé dans Variables (ou le titre brut ; auto-mappé).",
|
|
971
|
+
"\n\nTip: use the identifier shown beside Variables (e.g. 'andromeda_png'), ": "\n\nConseil : utilisez l'identifiant montré à côté de Variables (ex. 'andromeda_png'), ",
|
|
972
|
+
"CropDialogPro": {
|
|
973
|
+
"Crop Tool": "Outil Recadrage",
|
|
974
|
+
"• Click–drag to draw a crop\n• Drag corner handles to resize\n• Shift + drag on box to rotate": "• Clic-glisser pour dessiner\n• Glisser coins pour redimensionner\n• Maj + glisser pour pivoter",
|
|
975
|
+
"Aspect Ratio:": "Ratio d'aspect :",
|
|
976
|
+
"Free": "Libre",
|
|
977
|
+
"Original": "Original",
|
|
978
|
+
"Margins (px):": "Marges (px) :",
|
|
979
|
+
"Top": "Haut",
|
|
980
|
+
"Right": "Droite",
|
|
981
|
+
"Bottom": "Bas",
|
|
982
|
+
"Left": "Gauche",
|
|
983
|
+
"Zoom Out": "Zoom arrière",
|
|
984
|
+
"Zoom In": "Zoom avant",
|
|
985
|
+
"Zoom 100%": "Zoom 100%",
|
|
986
|
+
"Fit to View": "Ajuster à la vue",
|
|
987
|
+
"Selection: —": "Sélection : —",
|
|
988
|
+
"Selection: {0}×{1} px": "Sélection : {0}×{1} px",
|
|
989
|
+
"Toggle Autostretch": "Basculer Autostretch",
|
|
990
|
+
"Load Previous Crop": "Charger recadrage précédent",
|
|
991
|
+
"Apply": "Appliquer",
|
|
992
|
+
"Batch Crop (all open)": "Recadrage par lot (tous ouverts)",
|
|
993
|
+
"Close": "Fermer",
|
|
994
|
+
"No Previous": "Aucun précédent",
|
|
995
|
+
"No previous crop stored.": "Aucun recadrage précédent enregistré.",
|
|
996
|
+
"No Selection": "Aucune sélection",
|
|
997
|
+
"Draw & finalize a crop first.": "Dessinez et finalisez un recadrage d'abord.",
|
|
998
|
+
"Apply failed": "Échec de l'application",
|
|
999
|
+
"Invalid crop bounds.": "Limites de recadrage invalides.",
|
|
1000
|
+
"Batch Processing": "Traitement par lot",
|
|
1001
|
+
},
|
|
1002
|
+
"ImagePeekerDialogPro": {
|
|
1003
|
+
"Image Peeker": "Aperçu Image",
|
|
1004
|
+
"Grid parameters": "Paramètres de grille",
|
|
1005
|
+
"Grid size:": "Taille grille :",
|
|
1006
|
+
"Panel size:": "Taille panneau :",
|
|
1007
|
+
"Separation:": "Séparation :",
|
|
1008
|
+
"Pixel size (µm):": "Taille pixel (µm) :",
|
|
1009
|
+
"Focal length (mm):": "Focale (mm) :",
|
|
1010
|
+
"Aperture (mm):": "Ouverture (mm) :",
|
|
1011
|
+
"Analysis:": "Analyse :",
|
|
1012
|
+
"None": "Aucune",
|
|
1013
|
+
"Tilt Analysis": "Analyse Tilt",
|
|
1014
|
+
"Focal Plane Analysis": "Analyse Plan Focal",
|
|
1015
|
+
"Astrometric Distortion Analysis": "Analyse Distorsion Astrométrique",
|
|
1016
|
+
"Save Settings && Exit": "Enregistrer et Quitter",
|
|
1017
|
+
"Exit without Saving": "Quitter sans Enregistrer",
|
|
1018
|
+
"Processing…": "Traitement…",
|
|
1019
|
+
"Running {0}…": "Exécution {0}…",
|
|
1020
|
+
"Sensor Tilt (µm)": "Tilt Capteur (µm)",
|
|
1021
|
+
"FWHM Heatmap": "Carte FWHM",
|
|
1022
|
+
"Eccentricity Map": "Carte Excentricité",
|
|
1023
|
+
"Orientation Map": "Carte Orientation",
|
|
1024
|
+
"Plate Solve": "Résolution Astrométrique",
|
|
1025
|
+
"ASTAP/Astrometry failed:\n{0}": "Échec ASTAP/Astrometry :\n{0}",
|
|
1026
|
+
"WCS Error": "Erreur WCS",
|
|
1027
|
+
"Plate solve did not produce a readable WCS header.": "La résolution n'a pas produit d'en-tête WCS lisible.",
|
|
1028
|
+
"No Distortion Model": "Aucun Modèle de Distorsion",
|
|
1029
|
+
"This image has a valid WCS, but no SIP distortion terms...": "L'image a un WCS valide, mais pas de termes SIP... Résolvez à nouveau en activant l'ajustement de distorsione dans ASTAP.",
|
|
1030
|
+
"Cannot determine pixel scale.": "Impossible de déterminer l'échelle des pixels.",
|
|
1031
|
+
"Choose separation color": "Choisir couleur séparation",
|
|
1032
|
+
"No image": "Aucune image",
|
|
1033
|
+
"No image loaded to peek at!": "Aucune image chargée pour l'aperçu !",
|
|
1034
|
+
},
|
|
1035
|
+
"PlateSolver": {
|
|
1036
|
+
"Plate Solving": "Résolution Astrométrique",
|
|
1037
|
+
"Starting…": "Démarrage…",
|
|
1038
|
+
"Hide": "Masquer",
|
|
1039
|
+
"Status:": "État :",
|
|
1040
|
+
"Status: process timed out.": "État : processus expiré.",
|
|
1041
|
+
"Status: process did not exit normally.": "État : le processus ne s'est pas terminé normalement.",
|
|
1042
|
+
"Status: {0} retry {1}/{2}…": "État : {0} essai {1}/{2}…",
|
|
1043
|
+
"Status: Downloading WCS file (with SIP) from Astrometry.net…": "État : Téléchargement fichier WCS (avec SIP) depuis Astrometry.net…",
|
|
1044
|
+
"solve-field returned no header.": "solve-field n'a retourné aucun en-tête.",
|
|
1045
|
+
"requests not available for astrometry.net API.": "requests non disponible pour l'API astrometry.net.",
|
|
1046
|
+
"Status: Preparing full-res 16-bit FITS for web solve…": "État : Préparation FITS 16-bit pleine rés. pour web…",
|
|
1047
|
+
"Temp FITS for web upload is empty/tiny ({0} bytes).": "FITS temporaire vide/minuscule ({0} octets).",
|
|
1048
|
+
"Astrometry.net login failed.": "Échec connexion Astrometry.net.",
|
|
1049
|
+
"Astrometry.net upload failed.": "Échec envoi Astrometry.net.",
|
|
1050
|
+
"Astrometry.net job ID not received in time.": "Job ID Astrometry.net non reçu à temps.",
|
|
1051
|
+
"Astrometry.net calibration not received in time.": "Calibration Astrometry.net non reçue à temps.",
|
|
1052
|
+
"Status: Building WCS header from calibration…": "État : Construction en-tête WCS depuis calibration…",
|
|
1053
|
+
"Status: Solving with ASTAP…": "État : Résolution avec ASTAP…",
|
|
1054
|
+
"Status: Solved with ASTAP.": "État : Résolu avec ASTAP.",
|
|
1055
|
+
"Status: ASTAP failed ({0}). Falling back to Astrometry.net…": "État : ASTAP échoué ({0}). Repli sur Astrometry.net…",
|
|
1056
|
+
"Status: Solved via Astrometry.net.": "État : Résolu via Astrometry.net.",
|
|
1057
|
+
"Status: Astrometry.net failed ({0}).": "État : Astrometry.net échoué ({0}).",
|
|
1058
|
+
},
|
|
1059
|
+
"BlinkComparatorPro": {
|
|
1060
|
+
"Blink Comparator": "Blink Comparator",
|
|
1061
|
+
},
|
|
1062
|
+
"BlinkTab": {
|
|
1063
|
+
"Press 'F' to flag/unflag an image.\nRight-click on an image for more options.": "Appuyez sur 'F' pour marquer/démarquer.\nClic droit sur une image pour plus d'options.",
|
|
1064
|
+
"Select Images": "Sélectionner Images",
|
|
1065
|
+
"Select Directory": "Sélectionner Dossier",
|
|
1066
|
+
"Add Additional": "Ajouter",
|
|
1067
|
+
"Show Metrics": "Afficher Métriques",
|
|
1068
|
+
"→ Stacking: Lights": "→ Empilement : Lights",
|
|
1069
|
+
"Send selected (or all) blink files to the Stacking Suite → Light tab": "Envoyer les fichiers sélectionnés (ou tous) vers Stacking Suite → onglet Light",
|
|
1070
|
+
"→ Stacking: Integration": "→ Empilement : Intégration",
|
|
1071
|
+
"Send selected (or all) blink files to the Stacking Suite → Image Integration tab": "Envoyer les fichiers sélectionnés (ou tous) vers Stacking Suite → onglet Intégration",
|
|
1072
|
+
"Speed:": "Vitesse :",
|
|
1073
|
+
"Playback speed (0.1–10.0 fps)": "Vitesse lecture (0.1–10.0 fps)",
|
|
1074
|
+
"Export Video…": "Exporter Vidéo…",
|
|
1075
|
+
"Image Files": "Fichiers Image",
|
|
1076
|
+
"Clear Flags": "Effacer Marques",
|
|
1077
|
+
"Clear Images": "Effacer Images",
|
|
1078
|
+
"Loading images...": "Chargement images...",
|
|
1079
|
+
"Aggressive Stretch": "Étirement Agressif",
|
|
1080
|
+
"There are no images to send.": "Il n'y a aucune image à envoyer.",
|
|
1081
|
+
"Load images before exporting.": "Chargez des images avant d'exporter.",
|
|
1082
|
+
"No individual frames selected.": "Aucune trame individuelle sélectionnée.",
|
|
1083
|
+
"Nothing to export.": "Rien à exporter.",
|
|
1084
|
+
"Only one frame": "Une seule trame",
|
|
1085
|
+
"You're about to export a video with a single frame. Continue?": "Vous allez exporter une vidéo avec une seule trame. Continuer ?",
|
|
1086
|
+
"Export Blink Video": "Exporter Vidéo Blink",
|
|
1087
|
+
"No compatible video codec found.\n\nTip: install FFmpeg or `pip install imageio[ffmpeg]` for a portable fallback.": "Aucun codec vidéo compatible trouvé.\n\nConseil : installez FFmpeg ou `pip install imageio[ffmpeg]`.",
|
|
1088
|
+
},
|
|
1089
|
+
"MetricsPanel": {
|
|
1090
|
+
"FWHM (px)": "FWHM (px)",
|
|
1091
|
+
"Eccentricity": "Excentricité",
|
|
1092
|
+
"Background": "Fond",
|
|
1093
|
+
"Star Count": "Compte d'étoiles",
|
|
1094
|
+
"Heads-up": "Attention",
|
|
1095
|
+
"This is going to use ALL your CPU cores and the UI may lock up until it finishes.\n\nContinue?": "Cela va utiliser TOUS les cœurs CPU et l'interface peut se figer jusqu'à la fin.\n\nContinuer ?",
|
|
1096
|
+
"Don't show again": "Ne plus afficher",
|
|
1097
|
+
"Computing frame metrics…": "Calcul des métriques…",
|
|
1098
|
+
},
|
|
1099
|
+
"MetricsWindow": {
|
|
1100
|
+
"Frame Metrics": "Métriques de trame",
|
|
1101
|
+
"Instructions:\n • Use the filter dropdown to restrict by FILTER.\n • Click a dot to flag/unflag a frame.\n • Shift-click a dot to preview the image.\n • Drag the red lines to set thresholds.": "Instructions:\n • Utilisez le menu filtre pour restreindre par FILTER.\n • Cliquez un point pour marquer/démarquer.\n • Maj-clic un point pour l'aperçu.\n • Glissez les lignes rouges pour les seuils.",
|
|
1102
|
+
"Flagged Items {0}/{1} ({2:.1f}%)": "Éléments marqués {0}/{1} ({2:.1f}%)",
|
|
1103
|
+
"All": "Tous",
|
|
1104
|
+
},
|
|
1105
|
+
"or just type the raw title; it will be auto-mapped.": "ou tapez simplement le titre brut ; il sera auto-mappato."
|
|
1106
|
+
},
|
|
1107
|
+
"SaspViewer": {
|
|
1108
|
+
"SASP Viewer (Pickles + RGB Responses)": "Visionneur SASP (Pickles + Réponses RGB)",
|
|
1109
|
+
"Star Template:": "Modèle d'étoile :",
|
|
1110
|
+
"R-Filter:": "Filtre R :",
|
|
1111
|
+
"G-Filter:": "Filtre G :",
|
|
1112
|
+
"B-Filter:": "Filtre B :",
|
|
1113
|
+
"LP/Cut Filter1:": "Filtre LP/Cut 1 :",
|
|
1114
|
+
"LP/Cut Filter2:": "Filtre LP/Cut 2 :",
|
|
1115
|
+
"Sensor (QE):": "Capteur (QE) :",
|
|
1116
|
+
"Plot": "Tracer",
|
|
1117
|
+
"No channels selected": "Aucun canal sélectionné",
|
|
1118
|
+
"{0} Response": "Réponse {0}",
|
|
1119
|
+
"Wavelength (Å)": "Longueur d'onde (Å)",
|
|
1120
|
+
"Flux (erg s⁻¹ cm⁻² Å⁻¹)": "Flux (erg s⁻¹ cm⁻² Å⁻¹)",
|
|
1121
|
+
"Relative Throughput": "Rendement relatif",
|
|
1122
|
+
"R filter×QE": "Filtre R×QE",
|
|
1123
|
+
"G filter×QE": "Filtre G×QE",
|
|
1124
|
+
"B filter×QE": "Filtre B×QE",
|
|
1125
|
+
},
|
|
1126
|
+
"SFCCDialog": {
|
|
1127
|
+
"Spectral Flux Color Calibration": "Spectral Flux Color Calibration",
|
|
1128
|
+
"Orientation: N/A": "Orientation : N/A",
|
|
1129
|
+
"Step 1: Fetch Stars from Current View": "Étape 1 : Récupérer les étoiles de la vue actuelle",
|
|
1130
|
+
"Open SASP Viewer": "Ouvrir le visionneur SASP",
|
|
1131
|
+
"Select White Reference:": "Sélectionner la référence blanche :",
|
|
1132
|
+
"Vega (A0V)": "Vega (A0V)",
|
|
1133
|
+
"R Filter:": "Filtre R :",
|
|
1134
|
+
"G Filter:": "Filtre G :",
|
|
1135
|
+
"B Filter:": "Filtre B :",
|
|
1136
|
+
"Sensor (QE):": "Capteur (QE) :",
|
|
1137
|
+
"LP/Cut Filter1:": "Filtre LP/Cut 1 :",
|
|
1138
|
+
"LP/Cut Filter2:": "Filtre LP/Cut 2 :",
|
|
1139
|
+
"Step 2: Run Color Calibration": "Étape 2 : Exécuter la calibration des couleurs",
|
|
1140
|
+
"Background Neutralization": "Neutralisation du fond",
|
|
1141
|
+
"Run Gradient Extraction (Beta)": "Exécuter l'extraction de gradient (Bêta)",
|
|
1142
|
+
"Star detect σ:": "σ détection d'étoiles :",
|
|
1143
|
+
"Add Custom Filter/Sensor Curve…": "Ajouter une courbe de filtre/capteur personnalisée…",
|
|
1144
|
+
"Remove Filter/Sensor Curve…": "Supprimer une courbe de filtre/capteur personnalisée…",
|
|
1145
|
+
"Close": "Fermer",
|
|
1146
|
+
"Reset View/Close": "Réinitialiser la vue/Fermer",
|
|
1147
|
+
"Click 3 points, then close": "Cliquez sur 3 points, puis fermez",
|
|
1148
|
+
"Need exactly three clicks for calibration.": "Trois clics exactement sont nécessaires pour la calibration.",
|
|
1149
|
+
"Curve Name": "Nom de la courbe",
|
|
1150
|
+
"Enter curve name (EXTNAME):": "Entrez le nom de la courbe (EXTNAME) :",
|
|
1151
|
+
"Channel": "Canal",
|
|
1152
|
+
"Enter channel (R,G,B or Q for sensor):": "Entrez le canal (R, G, B ou Q pour le capteur) :",
|
|
1153
|
+
"Add Custom Curve": "Ajouter une courbe personnalisée",
|
|
1154
|
+
"Choose how to add the curve:": "Choisissez comment ajouter la courbe :",
|
|
1155
|
+
"Import CSV": "Importer un CSV",
|
|
1156
|
+
"Digitize Image": "Numériser une image",
|
|
1157
|
+
"Select 2-column CSV (λ_nm, response)": "Sélectionner un CSV à 2 colonnes (λ_nm, réponse)",
|
|
1158
|
+
"CSV Error": "Erreur CSV",
|
|
1159
|
+
"Could not read CSV:\n{0}": "Impossible de lire le CSV :\n{0}",
|
|
1160
|
+
"Done": "Terminé",
|
|
1161
|
+
"CSV curve '{0}' added.": "Courbe CSV '{0}' ajoutée.",
|
|
1162
|
+
"Select Curve Image to Digitize": "Sélectionner l'image de la courbe à numériser",
|
|
1163
|
+
"Error": "Erreur",
|
|
1164
|
+
"Could not load image:\n{0}": "Impossible de charger l'image :\n{0}",
|
|
1165
|
+
"Digitization Error": "Erreur de numérisation",
|
|
1166
|
+
"λ_min": "λ_min",
|
|
1167
|
+
"Enter λ_min (in nm):": "Entrez λ_min (en nm) :",
|
|
1168
|
+
"λ_max": "λ_max",
|
|
1169
|
+
"Enter λ_max (in nm):": "Entrez λ_max (en nm) :",
|
|
1170
|
+
"Input Error": "Erreur de saisie",
|
|
1171
|
+
"λ_min and λ_max must be numbers.": "λ_min et λ_max doivent être des nombres.",
|
|
1172
|
+
"Extraction Error": "Erreur d'extraction",
|
|
1173
|
+
"Interpolation Error": "Erreur d'interpolation",
|
|
1174
|
+
"Added curve '{0}'.": "Courbe '{0}' ajoutée.",
|
|
1175
|
+
"Remove Curve": "Supprimer la courbe",
|
|
1176
|
+
"No custom curves to remove.": "Aucune courbe personnalisée à supprimer.",
|
|
1177
|
+
"Select a FILTER or SENSOR curve to delete:": "Sélectionnez une courbe FILTRE ou CAPTEUR à supprimer :",
|
|
1178
|
+
"Confirm Deletion": "Confirmer la suppression",
|
|
1179
|
+
"Delete '{0}'?": "Supprimer '{0}' ?",
|
|
1180
|
+
"Removed": "Supprimé",
|
|
1181
|
+
"Deleted curve '{0}'.": "Courbe '{0}' supprimée.",
|
|
1182
|
+
},
|
|
1183
|
+
"ImagePreviewWindow": {
|
|
1184
|
+
"Fit": "Ajuster",
|
|
1185
|
+
"1:1": "1:1",
|
|
1186
|
+
"Zoom In": "Zoom avant",
|
|
1187
|
+
"Zoom Out": "Zoom arrière",
|
|
1188
|
+
"Push to New View": "Pousser vers une nouvelle vue",
|
|
1189
|
+
"Pushed": "Poussé",
|
|
1190
|
+
"New View Created.": "Nouvelle vue créée.",
|
|
1191
|
+
},
|
|
1192
|
+
"SupernovaAsteroidHunterDialog": {
|
|
1193
|
+
"Supernova / Asteroid Hunter": "Chasseur de supernova / astéroïde",
|
|
1194
|
+
"Select the reference image and search images. Then click Process to hunt for anomalies.": "Sélectionnez l'image de référence et les images de recherche. Puis cliquez sur Traiter pour chasser les anomalies.",
|
|
1195
|
+
"No reference image selected": "Aucune image de référence sélectionnée",
|
|
1196
|
+
"Select Reference Image": "Sélectionner l'image de référence",
|
|
1197
|
+
"Select Search Images": "Sélectionner les images de recherche",
|
|
1198
|
+
"Apply Cosmetic Correction before Preprocessing": "Appliquer la correction cosmétique avant le prétraitement",
|
|
1199
|
+
"Anomaly Detection Threshold: 0.10": "Seuil de détection d'anomalies : 0,10",
|
|
1200
|
+
"Process (Cosmetic Correction, Preprocess, and Search)": "Traiter (Correction cosmétique, Prétraitement et Recherche)",
|
|
1201
|
+
"Preprocessing progress: 0 / 0": "Progrès du prétraitement : 0 / 0",
|
|
1202
|
+
"Processing progress: 0 / 0": "Progrès du traitement : 0 / 0",
|
|
1203
|
+
"Status: Idle": "Statut : Inactif",
|
|
1204
|
+
"New Instance": "Nouvelle instance",
|
|
1205
|
+
"Anomaly Detection Threshold: {0:.2f}": "Seuil de détection d'anomalies : {0:.2f}",
|
|
1206
|
+
"Process started...": "Traitement démarré...",
|
|
1207
|
+
"Running Cosmetic Correction...": "Exécution de la correction cosmétique...",
|
|
1208
|
+
"Preprocessing images...": "Prétraitement des images...",
|
|
1209
|
+
"Analyzing anomalies...": "Analyse des anomalies...",
|
|
1210
|
+
"Process complete.": "Traitement terminé.",
|
|
1211
|
+
"Cosmetic Correction: {0}/{1} => {2}": "Correction cosmétique : {0}/{1} => {2}",
|
|
1212
|
+
"Preprocessing reference image...": "Prétraitement de l'image de référence...",
|
|
1213
|
+
"Error": "Erreur",
|
|
1214
|
+
"No reference image selected.": "Aucune image de référence sélectionnée.",
|
|
1215
|
+
"Preprocessing reference image... Done.": "Prétraitement de l'image de référence... Terminé.",
|
|
1216
|
+
"Failed to preprocess reference image: {0}": "Échec du prétraitement de l'image de référence : {0}",
|
|
1217
|
+
"Preprocessing search image {0}/{1} => {2}": "Prétraitement de l'image de recherche {0}/{1} => {2}",
|
|
1218
|
+
"Preprocessing image {0} of {1}... Done.": "Prétraitement de l'image {0} sur {1}... Terminé.",
|
|
1219
|
+
"All search images preprocessed.": "Toutes les images de recherche ont été prétraitées.",
|
|
1220
|
+
"Minor-body Search Limits": "Limites de recherche de corps mineurs",
|
|
1221
|
+
"Asteroid H ≤": "Astéroïde H ≤",
|
|
1222
|
+
"Max asteroid": "Max astéroïdes",
|
|
1223
|
+
"Comet H ≤": "Comète H ≤",
|
|
1224
|
+
"Max comet": "Max comètes",
|
|
1225
|
+
"Time offset (hours)": "Décalage temporel (heures)",
|
|
1226
|
+
"OK": "OK",
|
|
1227
|
+
"Cancel": "Annuler",
|
|
1228
|
+
"Minor-body Search": "Recherche de corps mineurs",
|
|
1229
|
+
"Minor-body prediction failed:\n{0}": "Échec de la prédiction de corps mineurs :\n{0}",
|
|
1230
|
+
"Minor-body search failed.": "Échec de la recherche de corps mineurs.",
|
|
1231
|
+
"Minor-body search complete: no catalogued objects in this field for the current magnitude limits.": "Recherche de corps mineurs terminée : aucun objet catalogué dans ce champ pour les limites de magnitude actuelles.",
|
|
1232
|
+
"No catalogued minor bodies (within the configured magnitude limits) n'ont été trouvés dans ce champ.": "Aucun corps mineur catalogué (dans les limites de magnitude configurées) n'a été trouvé dans ce champ.",
|
|
1233
|
+
"No catalogued minor bodies (within the configured magnitude limits) were found in this field.": "Aucun corps mineur catalogué (dans les limites de magnitude configurées) n'a été trouvé dans ce champ.",
|
|
1234
|
+
"Minor-body search complete: {0} objects in field.": "Recherche de corps mineurs terminée : {0} objets dans le champ.",
|
|
1235
|
+
"Minor bodies in field have been computed.\n\nRun the anomaly search (Process) to cross-match detections against the predicted objects.": "Les corps mineurs dans le champ ont été calculés.\n\nExécutez la recherche d'anomalies (Traiter) pour croiser les détections avec les objets prédits.",
|
|
1236
|
+
"No reference image selected.\n\nPlease select a reference image and run Process first.": "Aucune image de référence sélectionnée.\n\nVeuillez sélectionner une image de référence et exécuter Traiter d'abord.",
|
|
1237
|
+
"Reference image has not been preprocessed yet.\n\nPlease click 'Process' before running the minor-body search.": "L'image de référence n'a pas encore été prétraitée.\n\nVeuillez cliquer sur 'Traiter' avant d'exécuter la recherche de corps mineurs.",
|
|
1238
|
+
"Settings object is not available; cannot locate the minor-body database path.": "L'objet paramètres n'est pas disponible ; impossible de localiser le chemin de la base de données des corps mineurs.",
|
|
1239
|
+
"Minor-body search: preparing catalog query...": "Recherche de corps mineurs : préparation de la requête au catalogue...",
|
|
1240
|
+
},
|
|
1241
|
+
"WaveScaleHDRDialogPro": {
|
|
1242
|
+
"WaveScale HDR": "WaveScale HDR",
|
|
1243
|
+
"HDR Controls": "Commandes HDR",
|
|
1244
|
+
"Number of Scales:": "Nombre d'échelles :",
|
|
1245
|
+
"Coarse Compression:": "Compression grossière :",
|
|
1246
|
+
"Mask Gamma:": "Gamma du masque :",
|
|
1247
|
+
"Preview": "Aperçu",
|
|
1248
|
+
"Show Original": "Montrer l'original",
|
|
1249
|
+
"Zoom In": "Zoom avant",
|
|
1250
|
+
"Zoom Out": "Zoom arrière",
|
|
1251
|
+
"Fit to Preview": "Ajuster à l'aperçu",
|
|
1252
|
+
"Processing Progress": "Progrès du traitement",
|
|
1253
|
+
"Idle": "Inactif",
|
|
1254
|
+
"Apply to Document": "Appliquer au document",
|
|
1255
|
+
"Reset": "Réinitialiser",
|
|
1256
|
+
"Close": "Fermer",
|
|
1257
|
+
"Show Preview": "Montrer l'aperçu",
|
|
1258
|
+
"A headless HDR run appears to be in progress. This window will remain open; you can still preview safely.": "Un traitement HDR autonome semble être en cours. Cette fenêtre restera ouverte ; vous pouvez toujours utiliser l'aperçu en toute sécurité.",
|
|
1259
|
+
"Processing failed.": "Échec du traitement.",
|
|
1260
|
+
"HDR Mask (L × Active Mask)": "Masque HDR (L × Masque Actif)",
|
|
1261
|
+
"HDR Mask (L-based)": "Masque HDR (basé sur L)",
|
|
1262
|
+
"Preview ready": "Aperçu prêt",
|
|
1263
|
+
"Failed to write to document:\n{0}": "Échec de l'écriture dans le document :\n{0}",
|
|
1264
|
+
},
|
|
1265
|
+
"WaveScaleHDRPresetDialog": {
|
|
1266
|
+
"WaveScale HDR — Preset": "WaveScale HDR — Préréglage",
|
|
1267
|
+
"Number of Scales:": "Nombre d'échelles :",
|
|
1268
|
+
"Coarse Compression:": "Compression grossière :",
|
|
1269
|
+
"Mask Gamma:": "Gamma du masque :",
|
|
1270
|
+
"Load an image first.": "Chargez une image d'abord.",
|
|
1271
|
+
},
|
|
1272
|
+
"HDRWorker": {
|
|
1273
|
+
"Converting to Lab color space…": "Conversion vers l'espace colorimétrique Lab…",
|
|
1274
|
+
"Decomposing luminance with starlet…": "Décomposition de la luminance avec starlet…",
|
|
1275
|
+
"Finalizing…": "Finalisation…",
|
|
1276
|
+
},
|
|
1277
|
+
"MaskDisplayWindow": {
|
|
1278
|
+
"HDR Mask (L-based)": "Masque HDR (basé sur L)",
|
|
1279
|
+
},
|
|
1280
|
+
"WhiteBalanceDialog": {
|
|
1281
|
+
"White Balance": "Balance des blancs",
|
|
1282
|
+
"White Balance Type:": "Type de balance des blancs :",
|
|
1283
|
+
"Star-Based": "Basée sur les étoiles",
|
|
1284
|
+
"Manual": "Manuelle",
|
|
1285
|
+
"Auto": "Auto",
|
|
1286
|
+
"Manual Gains": "Gains manuels",
|
|
1287
|
+
"Red gain:": "Gain rouge :",
|
|
1288
|
+
"Green gain:": "Gain vert :",
|
|
1289
|
+
"Blue gain:": "Gain bleu :",
|
|
1290
|
+
"Star-Based Settings": "Paramètres basés sur les étoiles",
|
|
1291
|
+
"Detection threshold (σ):": "Seuil de détection (σ) :",
|
|
1292
|
+
"Reuse cached star detections": "Réutiliser les détections d'étoiles en cache",
|
|
1293
|
+
"Autostretch overlay preview": "Aperçu de superposition avec autostretch",
|
|
1294
|
+
"Detecting stars...": "Détection des étoiles...",
|
|
1295
|
+
"Detected {0} stars.": "{0} étoiles détectées.",
|
|
1296
|
+
"Detection failed.": "Échec de la détection.",
|
|
1297
|
+
"Apply": "Appliquer",
|
|
1298
|
+
"Cancel": "Annuler",
|
|
1299
|
+
"Star-Based WB applied.\nDetected {0} stars.": "Balance des blancs basée sur les étoiles appliquée.\n{0} étoiles détectées.",
|
|
1300
|
+
"Failed to apply White Balance:\n{0}": "Échec de l'application de la balance des blancs :\n{0}",
|
|
1301
|
+
},
|
|
1302
|
+
"WaveScaleDarkEnhancerDialogPro": {
|
|
1303
|
+
"Dark Mask": "Masque sombre",
|
|
1304
|
+
"WaveScale Dark Enhancer": "WaveScale Dark Enhancer",
|
|
1305
|
+
"Dark Enhancer Controls": "Contrôles Dark Enhancer",
|
|
1306
|
+
"Number of Scales:": "Nombre d'échelles :",
|
|
1307
|
+
"Boost Factor:": "Facteur de boost :",
|
|
1308
|
+
"Mask Gamma:": "Gamma du masque :",
|
|
1309
|
+
"Iterations:": "Itérations :",
|
|
1310
|
+
"Preview": "Aperçu",
|
|
1311
|
+
"Show Original": "Afficher l'original",
|
|
1312
|
+
"Show Preview": "Afficher l'aperçu",
|
|
1313
|
+
"Progress": "Progression",
|
|
1314
|
+
"Idle": "Inactif",
|
|
1315
|
+
"Apply to Document": "Appliquer au document",
|
|
1316
|
+
"Reset": "Réinitialiser",
|
|
1317
|
+
"Close": "Fermer",
|
|
1318
|
+
"Zoom Controls": "Contrôles du zoom",
|
|
1319
|
+
"Zoom In": "Zoom avant",
|
|
1320
|
+
"Zoom Out": "Zoom arrière",
|
|
1321
|
+
"Fit to Preview": "Ajuster à l'aperçu",
|
|
1322
|
+
"Dark Mask (Algo × Active Mask)": "Masque sombre (Algo × Masque actif)",
|
|
1323
|
+
"Analyzing dark structure…": "Analyse de la structure sombre…",
|
|
1324
|
+
"Finalizing…": "Finalisation…",
|
|
1325
|
+
"Processing failed.": "Échec du traitement.",
|
|
1326
|
+
"Preview ready": "Aperçu prêt",
|
|
1327
|
+
"Failed to write to document:\n{0}": "Impossible d'écrire dans le document :\n{0}",
|
|
1328
|
+
"No active image.": "Aucune image active.",
|
|
1329
|
+
},
|
|
1330
|
+
"WaveScaleDSEPresetDialog": {
|
|
1331
|
+
"WaveScale Dark Enhancer — Preset": "WaveScale Dark Enhancer — Préréglage",
|
|
1332
|
+
"Number of Scales:": "Nombre d'échelles :",
|
|
1333
|
+
"Boost Factor:": "Facteur de boost :",
|
|
1334
|
+
"Mask Gamma:": "Gamma du masque :",
|
|
1335
|
+
"Iterations:": "Itérations :",
|
|
1336
|
+
"WaveScale Dark Enhancer": "WaveScale Dark Enhancer",
|
|
1337
|
+
"Load an image first.": "Chargez d'abord une image.",
|
|
1338
|
+
"Failed to write to document:\n{0}": "Impossible d'écrire dans le document :\n{0}",
|
|
1339
|
+
},
|
|
1340
|
+
},
|
|
1341
|
+
"es": {
|
|
1342
|
+
"SettingsDialog": {
|
|
1343
|
+
"Preferences": "Preferencias",
|
|
1344
|
+
"Check for updates on startup": "Buscar actualizaciones al iniciar",
|
|
1345
|
+
"Reset": "Restablecer",
|
|
1346
|
+
"Browse…": "Examinar…",
|
|
1347
|
+
"Theme:": "Tema:",
|
|
1348
|
+
"Language:": "Idioma:",
|
|
1349
|
+
"<b>Display</b>": "<b>Visualización</b>",
|
|
1350
|
+
"<b>Paths & Integrations</b>": "<b>Rutas e integraciones</b>",
|
|
1351
|
+
"<b>What's In My Sky — Defaults</b>": "<b>What's In My Sky — Predeterminados</b>",
|
|
1352
|
+
"Latitude (°):": "Latitud (°):",
|
|
1353
|
+
"Longitude (°):": "Longitud (°):",
|
|
1354
|
+
"Date (YYYY-MM-DD):": "Fecha (AAAA-MM-DD):",
|
|
1355
|
+
"Time (HH:MM):": "Hora (HH:MM):",
|
|
1356
|
+
"Time Zone:": "Zona horaria:",
|
|
1357
|
+
"Min Altitude (°):": "Altitud mín (°):",
|
|
1358
|
+
"Object Limit:": "Límite objetos:",
|
|
1359
|
+
"<b>RA/Dec Overlay</b>": "<b>Overlay RA/Dec</b>",
|
|
1360
|
+
"Show RA/Dec grid": "Mostrar cuadrícula RA/Dec",
|
|
1361
|
+
"Mode:": "Modo:",
|
|
1362
|
+
"Step:": "Paso:",
|
|
1363
|
+
"<b>Updates</b>": "<b>Actualizaciones</b>",
|
|
1364
|
+
"Updates JSON URL:": "URL JSON actualizaciones:",
|
|
1365
|
+
"Background Opacity:": "Opacidad fondo:",
|
|
1366
|
+
"Background Image:": "Imagen fondo:",
|
|
1367
|
+
},
|
|
1368
|
+
"MenuMixin": {
|
|
1369
|
+
"&File": "&Archivo",
|
|
1370
|
+
"&Edit": "&Editar",
|
|
1371
|
+
"&Functions": "&Funciones",
|
|
1372
|
+
"&Smart Tools": "&Herramientas Smart",
|
|
1373
|
+
"&Tools": "&Herramientas",
|
|
1374
|
+
"&Geometry": "&Geometría",
|
|
1375
|
+
"&Star Stuff": "&Estrellas",
|
|
1376
|
+
"&Masks": "&Máscaras",
|
|
1377
|
+
"&What's In My...": "&What's In My...",
|
|
1378
|
+
"&Scripts": "&Scripts",
|
|
1379
|
+
"&Header Mods && Misc": "&Modif. Header y Varios",
|
|
1380
|
+
"&History": "&Historial",
|
|
1381
|
+
"&Shortcuts": "&Atajos",
|
|
1382
|
+
"&View": "&Ver",
|
|
1383
|
+
"&Settings": "&Configuración",
|
|
1384
|
+
"&About": "&Acerca de",
|
|
1385
|
+
"Preferences...": "Preferencias...",
|
|
1386
|
+
"About...": "Acerca de...",
|
|
1387
|
+
"Open Recent Images": "Imágenes recientes",
|
|
1388
|
+
"Open Recent Projects": "Proyectos recientes",
|
|
1389
|
+
"No recent images": "Sin imágenes recientes",
|
|
1390
|
+
"No recent projects": "Sin proyectos recientes",
|
|
1391
|
+
"Clear List": "Borrar lista",
|
|
1392
|
+
"Keyboard Shortcut Cheat Sheet...": "Guía de atajos de teclado...",
|
|
1393
|
+
"Export Shortcuts...": "Exportar atajos...",
|
|
1394
|
+
"Import Shortcuts...": "Importar atajos...",
|
|
1395
|
+
"Clear All Shortcuts": "Borrar todos los atajos",
|
|
1396
|
+
"None": "Ninguno",
|
|
1397
|
+
"Group A": "Grupo A",
|
|
1398
|
+
"Group B": "Grupo B",
|
|
1399
|
+
"Group C": "Grupo C",
|
|
1400
|
+
"Group D": "Grupo D",
|
|
1401
|
+
},
|
|
1402
|
+
"ToolbarMixin": {
|
|
1403
|
+
"Open...": "Abrir...",
|
|
1404
|
+
"Open image(s)": "Abrir imagen(es)",
|
|
1405
|
+
"New Project": "Nuevo proyecto",
|
|
1406
|
+
"Save Project...": "Guardar proyecto...",
|
|
1407
|
+
"Load Project...": "Cargar proyecto...",
|
|
1408
|
+
"Clear All Views": "Cerrar todas las vistas",
|
|
1409
|
+
"Save As...": "Guardar como...",
|
|
1410
|
+
"Save the active image": "Guardar imagen activa",
|
|
1411
|
+
"&Exit": "&Salir",
|
|
1412
|
+
"Cascade Views": "Cascada vistas",
|
|
1413
|
+
"Tile Views": "Mosaico vistas",
|
|
1414
|
+
"Tile Vertically": "Mosaico vertical",
|
|
1415
|
+
"Tile Horizontally": "Mosaico horizontal",
|
|
1416
|
+
"Smart Grid": "Cuadrícula inteligente",
|
|
1417
|
+
"Link Pan/Zoom": "Vincular Pan/Zoom",
|
|
1418
|
+
"Undo": "Deshacer",
|
|
1419
|
+
"Redo": "Rehacer",
|
|
1420
|
+
},
|
|
1421
|
+
"AstroSuiteProMainWindow": {
|
|
1422
|
+
"Exit Seti Astro Suite Pro?": "¿Salir de Seti Astro Suite Pro?",
|
|
1423
|
+
"Confirm Exit": "Confirmar salida",
|
|
1424
|
+
"Open images:": "Imágenes abiertas:",
|
|
1425
|
+
"Edited since open:": "Editadas desde apertura:",
|
|
1426
|
+
"New Project": "Nuevo proyecto",
|
|
1427
|
+
"This will close all views and clear desktop shortcuts. Continue?": "Esto cerrará todas las vistas y borrará los accesos directos. ¿Continuar?",
|
|
1428
|
+
"Clear All Views": "Cerrar todas las vistas",
|
|
1429
|
+
"Close all views and documents? Desktop shortcuts will be preserved.": "¿Cerrar todas las vistas y documentos? Los accesos directos se conservarán.",
|
|
1430
|
+
"Loading a project will close current views and replace desktop shortcuts.": "Cargar un proyecto cerrará las vistas actuales y reemplazará los accesos directos.",
|
|
1431
|
+
"System Log": "Registro del sistema",
|
|
1432
|
+
"Show System Log Panel": "Mostrar panel de registro",
|
|
1433
|
+
"Explorer": "Explorador",
|
|
1434
|
+
"Console / Status": "Consola / Estado",
|
|
1435
|
+
"Invert": "Invertir",
|
|
1436
|
+
"Flip Horizontal": "Voltear horizontalmente",
|
|
1437
|
+
"Flip Vertical": "Voltear verticalmente",
|
|
1438
|
+
"Rotate 90° CW": "Rotar 90° Horario",
|
|
1439
|
+
"Rotate 90° CCW": "Rotar 90° Antihorario",
|
|
1440
|
+
"Rotate 180°": "Rotar 180°",
|
|
1441
|
+
"Rescale Image": "Reescalar imagen",
|
|
1442
|
+
"Active view has no image.": "La vista activa no tiene imagen.",
|
|
1443
|
+
"Mask Overlay": "Superposición de máscara",
|
|
1444
|
+
"No active mask on this image.": "No hay máscara activa en esta imagen.",
|
|
1445
|
+
"No header": "Sin cabecera",
|
|
1446
|
+
"Checking for updates...": "Comprobando actualizaciones...",
|
|
1447
|
+
"Update Available": "Actualización disponible",
|
|
1448
|
+
"You're up to date.": "El software está actualizado.",
|
|
1449
|
+
"Open Images": "Abrir imágenes",
|
|
1450
|
+
"Open failed": "Fallo al abrir",
|
|
1451
|
+
"Save failed": "Fallo al guardar",
|
|
1452
|
+
"File not found": "Archivo no encontrado",
|
|
1453
|
+
"Project not found": "Proyecto no encontrado",
|
|
1454
|
+
"Save Project": "Guardar proyecto",
|
|
1455
|
+
"Load Project": "Cargar proyecto",
|
|
1456
|
+
"Saving project...": "Guardando proyecto...",
|
|
1457
|
+
"No documents to save.": "No hay documentos para guardar.",
|
|
1458
|
+
},
|
|
1459
|
+
"GhsDialogPro": {
|
|
1460
|
+
"Hyperbolic Stretch": "Estiramiento Hiperbólico",
|
|
1461
|
+
"Tip: Ctrl+Click (or double-click) the image to set the symmetry pivot": "Consejo: Ctrl+Clic (o doble clic) en la imagen para establecer el pivote de simetría",
|
|
1462
|
+
"Ctrl+Click (or double-click) the image to set the symmetry pivot": "Ctrl+Clic (o doble clic) en la imagen para establecer el pivote de simetría",
|
|
1463
|
+
"Channel:": "Canal:",
|
|
1464
|
+
"Apply": "Aplicar",
|
|
1465
|
+
"Reset": "Restablecer",
|
|
1466
|
+
"Histogram": "Histograma",
|
|
1467
|
+
"Zoom Out": "Alejar",
|
|
1468
|
+
"Zoom In": "Acercar",
|
|
1469
|
+
"Fit to Preview": "Ajustar a vista previa",
|
|
1470
|
+
"Could not import histogram module:\n{0}": "No se pudo importar el módulo de histograma:\n{0}",
|
|
1471
|
+
"Apply failed": "Aplicación fallida",
|
|
1472
|
+
"No image": "Sin imagen",
|
|
1473
|
+
"Open an image first.": "Abra primero una imagen.",
|
|
1474
|
+
},
|
|
1475
|
+
"HistogramDialog": {
|
|
1476
|
+
"Histogram": "Histograma",
|
|
1477
|
+
"Ctrl+Click on the histogram to send that intensity as the pivot to Hyperbolic Stretch (if open).": "Ctrl+Clic en el histograma para enviar esa intensidad como pivote al Estiramiento Hiperbólico (si está abierto).",
|
|
1478
|
+
"Min": "Mín",
|
|
1479
|
+
"Max": "Máx",
|
|
1480
|
+
"Median": "Mediana",
|
|
1481
|
+
"StdDev": "DesvEst",
|
|
1482
|
+
"MAD": "MAD",
|
|
1483
|
+
"Low Clipped": "Recorte Bajo",
|
|
1484
|
+
"High Clipped": "Recorte Alto",
|
|
1485
|
+
"Zoom:": "Zoom:",
|
|
1486
|
+
"Toggle Log X-Axis": "Eje X Logarítmico",
|
|
1487
|
+
"Toggle Log Y-Axis": "Eje Y Logarítmico",
|
|
1488
|
+
"Close": "Cerrar",
|
|
1489
|
+
"True Max {0:.4f}": "Máx Verdadero {0:.4f}",
|
|
1490
|
+
"Sensor True Max (ADU)": "Máx Verdadero Sensor (ADU)",
|
|
1491
|
+
"Enter your sensor's true saturation value in native ADU.\n(Typical max for this file type is {0})\n\nYou can measure this by taking a deliberately overexposed frame\nand reading its maximum pixel value.": "Introduzca el valor de saturación real de su sensor en ADU nativo.\n(El máx típico para este tipo de archivo es {0})\n\nPuede medir esto tomando un fotograma deliberadamente sobreexpuesto\ny leyendo su valor máximo de píxel.",
|
|
1492
|
+
"Histogram Effective Max": "Máx Efectivo Histograma",
|
|
1493
|
+
"Enter effective maximum for clipping (normalized units).": "Introduzca el máximo efectivo para el recorte (unidades normalizadas).",
|
|
1494
|
+
},
|
|
1495
|
+
"CurvesDialogPro": {
|
|
1496
|
+
"Zoom Out": "Alejar",
|
|
1497
|
+
"Zoom In": "Acercar",
|
|
1498
|
+
"Fit to Preview": "Ajustar a vista previa",
|
|
1499
|
+
"Inflection @ K={0:.3f}": "Inflexión @ K={0:.3f}",
|
|
1500
|
+
"Cursor ({0}, {1}) K: {2:.3f}": "Cursor ({0}, {1}) K: {2:.3f}",
|
|
1501
|
+
"Cursor ({0}, {1}) R: {2:.3f} G: {3:.3f} B: {4:.3f}": "Cursor ({0}, {1}) R: {2:.3f} G: {3:.3f} B: {4:.3f}",
|
|
1502
|
+
"Save Curves Preset": "Guardar Preajuste Curvas",
|
|
1503
|
+
"Preset name:": "Nombre preajuste:",
|
|
1504
|
+
"Saved preset “{0}”.": "Preajuste “{0}” guardado.",
|
|
1505
|
+
"Save failed": "Fallo al guardar",
|
|
1506
|
+
"Could not save preset.": "No se pudo guardar el preajuste.",
|
|
1507
|
+
"Built-ins": "Integrados",
|
|
1508
|
+
"Custom": "Personalizados",
|
|
1509
|
+
"(No custom presets yet)": "(Sin preajustes personalizados)",
|
|
1510
|
+
"Manage Presets": "Gestionar Preajustes",
|
|
1511
|
+
"No custom presets.": "Sin preajustes personalizados.",
|
|
1512
|
+
"Delete Preset": "Eliminar Preajuste",
|
|
1513
|
+
"Choose preset to delete:": "Elegir preajuste a eliminar:",
|
|
1514
|
+
"No image": "Sin imagen",
|
|
1515
|
+
"Open an image first.": "Abra primero una imagen.",
|
|
1516
|
+
"Preview ON": "Vista previa SI",
|
|
1517
|
+
"Preview OFF": "Vista previa NO",
|
|
1518
|
+
"Bk {0:,} ({1:.2f}%) Wt {2:,} ({3:.2f}%)": "Negros {0:,} ({1:.2f}%) Blancos {2:,} ({3:.2f}%)",
|
|
1519
|
+
"Clipping — R: {0} G: {1} B: {2}": "Recorte — R: {0} G: {1} B: {2}",
|
|
1520
|
+
"Clipping — Bk {0:,} ({1:.2f}%) Wt {2:,} ({3:.2f}%)": "Recorte — N {0:,} ({1:.2f}%) B {2:,} ({3:.2f}%)",
|
|
1521
|
+
"Full-res ready (not shown).": "Alta res lista (no mostrada).",
|
|
1522
|
+
"Applied. Image reloaded. All curves reset — keep tweaking.": "Aplicado. Imagen recargada. Curvas restablecidas — siga ajustando.",
|
|
1523
|
+
"Apply failed": "Aplicación fallida",
|
|
1524
|
+
"Added point at x={0:.3f}": "Punto añadido en x={0:.3f}",
|
|
1525
|
+
"All curves reset.": "Todas las curvas restablecidas.",
|
|
1526
|
+
"Preset: {0} {1}": "Preajuste: {0} {1}",
|
|
1527
|
+
"(built-in)": "(integrado)",
|
|
1528
|
+
},
|
|
1529
|
+
"PixelMathDialogPro": {
|
|
1530
|
+
"Pixel Math": "Pixel Math",
|
|
1531
|
+
"Variables": "Variables",
|
|
1532
|
+
"Output": "Salida",
|
|
1533
|
+
"Overwrite active": "Sobrescribir activa",
|
|
1534
|
+
"Create new view": "Crear nueva vista",
|
|
1535
|
+
"Single Expression": "Expresión única",
|
|
1536
|
+
"Separate (R / G / B)": "Separado (R / G / B)",
|
|
1537
|
+
"e.g. (img + otherView) / 2": "ej. (img + otraVista) / 2",
|
|
1538
|
+
"Red": "Rojo",
|
|
1539
|
+
"Green": "Verde",
|
|
1540
|
+
"Blue": "Azul",
|
|
1541
|
+
"Glossary…": "Glosario…",
|
|
1542
|
+
"Preview": "Vista previa",
|
|
1543
|
+
"Compute Pixel Math and show the result here without committing.": "Calcular Pixel Math y mostrar resultado aquí sin aplicar.",
|
|
1544
|
+
"Auto-stretch": "Auto-estirado",
|
|
1545
|
+
"Enable Auto-stretch": "Habilitar Auto-estirado",
|
|
1546
|
+
"Target median": "Mediana objetivo",
|
|
1547
|
+
"0.18 (soft)": "0.18 (suave)",
|
|
1548
|
+
"0.25 (default)": "0.25 (defecto)",
|
|
1549
|
+
"0.35 (brighter)": "0.35 (más brillante)",
|
|
1550
|
+
"Black-point sigma": "Sigma punto negro",
|
|
1551
|
+
"σ=2.5": "σ=2.5",
|
|
1552
|
+
"σ=3 (default)": "σ=3 (defecto)",
|
|
1553
|
+
"σ=4 (deeper black)": "σ=4 (ausencia de luz)",
|
|
1554
|
+
"Linked channels (use luminance)": "Canales vinculados (usar luminancia)",
|
|
1555
|
+
"Use 16-bit stats": "Usar estad. 16-bit",
|
|
1556
|
+
"Zoom In": "Acercar",
|
|
1557
|
+
"Zoom Out": "Alejar",
|
|
1558
|
+
"1:1": "1:1",
|
|
1559
|
+
"Fit to Preview": "Ajustar a vista previa",
|
|
1560
|
+
"Examples:": "Ejemplos:",
|
|
1561
|
+
"Insert example…": "Insertar ejemplo…",
|
|
1562
|
+
"Select a favorite expression": "Seleccionar expresión favorita",
|
|
1563
|
+
"Save as Favorite": "Guardar como favorito",
|
|
1564
|
+
"Delete Favorite": "Eliminar favorito",
|
|
1565
|
+
"Delete this favorite": "Eliminar este favorito",
|
|
1566
|
+
"Help": "Ayuda",
|
|
1567
|
+
"Pixel Math Preview": "Vista previa Pixel Math",
|
|
1568
|
+
"Failed:\n{0}": "Fallido:\n{0}",
|
|
1569
|
+
"Average two views": "Promedio dos vistas",
|
|
1570
|
+
"Difference (A - B)": "Diferencia (A - B)",
|
|
1571
|
+
"Invert active": "Invertir activa",
|
|
1572
|
+
"Subtract median (bias remove)": "Restar mediana (quitar bias)",
|
|
1573
|
+
"Zero-center by mean": "Centrar cero por media",
|
|
1574
|
+
"Min + Max combine": "Combinar Mín + Máx",
|
|
1575
|
+
"Log transform": "Transformación Log",
|
|
1576
|
+
"Midtones transform m=0.25": "Transformación medios tonos m=0.25",
|
|
1577
|
+
"If darker than median → 0 else 1": "Si más oscuro que mediana → 0 sino 1",
|
|
1578
|
+
"Per-channel: swap R↔B": "Por canal: intercambiar R↔B",
|
|
1579
|
+
"Per-channel: avg A & B": "Por canal: prom. A & B",
|
|
1580
|
+
"Per-channel: build RGB from A,B,C": "Por canal: construir RGB de A,B,C",
|
|
1581
|
+
"Normalize to 0–1 (per-channel)": "Normalizar a 0–1 (por canal)",
|
|
1582
|
+
"Sigmoid contrast (k=12, mid=0.4)": "Contraste Sigmoide (k=12, mid=0.4)",
|
|
1583
|
+
"Gamma 0.6 (brighten midtones)": "Gamma 0.6 (aclarar medios tonos)",
|
|
1584
|
+
"Percentile stretch 0.5–99.5%": "Estiramiento percentil 0.5–99.5%",
|
|
1585
|
+
"Blend A→B by horizontal gradient X": "Mezclar A→B por gradiente horiz. X",
|
|
1586
|
+
"Apply active mask to blend A→B": "Aplicar máscara activa para mezclar A→B",
|
|
1587
|
+
"Masked unsharp (luma-based)": "Enfoque enmascarado (basado en luma)",
|
|
1588
|
+
"Match medians of A to B": "Igualar medianas de A a B",
|
|
1589
|
+
"Gaussian blur σ=2": "Desenfoque gaussiano σ=2",
|
|
1590
|
+
"Median filter k=3": "Filtro de mediana k=3",
|
|
1591
|
+
"Per-channel: luma to all channels": "Por canal: luma a todos los canales",
|
|
1592
|
+
"Per-channel: A’s R, B’s G, C’s B (normed)": "Por canal: R de A, G de B, B de C (norm)",
|
|
1593
|
+
"Pixel Math Glossary": "Glosario Pixel Math",
|
|
1594
|
+
"Double-click to insert a template at the cursor.": "Doble clic para insertar plantilla en cursor.",
|
|
1595
|
+
"Search…": "Buscar…",
|
|
1596
|
+
"Insert": "Insertar",
|
|
1597
|
+
"Pixel Math Help": "Ayuda Pixel Math",
|
|
1598
|
+
"Operators: + - * / ^(power) ~(invert)": "Operadores: + - * / ^(potencia) ~(invertir)",
|
|
1599
|
+
"Comparisons: <, == (use inside iff)": "Comparaciones: <, == (usar dentro iff)",
|
|
1600
|
+
"Variables:": "Variables:",
|
|
1601
|
+
" • img (active) and one per open view (by window title, auto-mapped).": " • img (activa) y una por vista abierta (por título ventana, auto-mapeado).",
|
|
1602
|
+
" • Coordinates: X, Y in [0..1].": " • Coordenadas: X, Y en [0..1].",
|
|
1603
|
+
" • Sizes: H, W, C, shape.": " • Tamaños: H, W, C, forma.",
|
|
1604
|
+
"Per-channel indexing: view[0], view[1], view[2].": "Indexación por canal: view[0], view[1], view[2].",
|
|
1605
|
+
"Multiline: last line is the result.": "Multilínea: última línea es el resultado.",
|
|
1606
|
+
"Output: Overwrite active or Create new view.": "Salida: Sobrescribir activa o Crear nueva vista.",
|
|
1607
|
+
"Functions:": "Funciones:",
|
|
1608
|
+
"Limit values to [lo..hi].": "Limitar valores a [lo..hi].",
|
|
1609
|
+
"Map range [a..b] to [lo..hi].": "Mapear rango [a..b] a [lo..hi].",
|
|
1610
|
+
"Apply gamma curve.": "Aplicar curva gamma.",
|
|
1611
|
+
"Power with EPS floor.": "Potencia con suelo EPS.",
|
|
1612
|
+
"Absolute value.": "Valor absoluto.",
|
|
1613
|
+
"Exponential.": "Exponencial.",
|
|
1614
|
+
"Square root (clamped to ≥0).": "Raíz cuadrada (limitada a ≥0).",
|
|
1615
|
+
"Inverse sine (radians), input clipped to [-1,1].": "Seno inverso (radianes), entrada limitada a [ -1,1].",
|
|
1616
|
+
"S-shaped tone curve.": "Curva de tono en forma de S.",
|
|
1617
|
+
"Cubic smooth ramp.": "Rampa cúbica suave.",
|
|
1618
|
+
"Linear blend.": "Mezcla lineal.",
|
|
1619
|
+
"Per-channel percentile image.": "Imagen percentil por canal.",
|
|
1620
|
+
"Per-channel [0..1] normalization.": "Normalización [0..1] por canal.",
|
|
1621
|
+
"Per-channel (x-mean)/std.": "Por canal (x-media)/std.",
|
|
1622
|
+
"Extract channel i (0/1/2) as 2-D.": "Extraer canal i (0/1/2) como 2-D.",
|
|
1623
|
+
"Rec.709 luminance as 2-D.": "Luminance Rec.709 como 2-D.",
|
|
1624
|
+
"Stack three planes to RGB.": "Apilar tres planos a RGB.",
|
|
1625
|
+
"Active mask (2-D, [0..1]).": "Máscara activa (2-D, [0..1]).",
|
|
1626
|
+
"Blend by mask.": "Mezclar por máscara.",
|
|
1627
|
+
"Box blur (cv2 if available).": "Desenfoque de caja (cv2 si disponible).",
|
|
1628
|
+
"Gaussian blur.": "Desenfoque gaussiano.",
|
|
1629
|
+
"Median filter (cv2 if avail).": "Filtro de mediana (si cv2 dispo).",
|
|
1630
|
+
"Unsharp mask.": "Máscara de enfoque.",
|
|
1631
|
+
"Midtones transfer (existing).": "Transferencia medios tonos (existente).",
|
|
1632
|
+
"Conditional (existing).": "Condicional (existente).",
|
|
1633
|
+
"Normalized coordinates in [0..1].": "Coordenadas normalizadas en [0..1].",
|
|
1634
|
+
"Image dimensions.": "Dimensiones de imagen.",
|
|
1635
|
+
"img (active)": "img (activa)",
|
|
1636
|
+
"Tip: double-click to insert the identifier at the cursor": "Consejo: doble clic para insertar identificador",
|
|
1637
|
+
"\n\nTip: use the identifier listed in Variables (or the raw title; it’s auto-mapped).": "\n\nConsejo: use el identificador listado en Variables (o título bruto; auto-mapeado).",
|
|
1638
|
+
"\n\nTip: use the identifier shown beside Variables (e.g. 'andromeda_png'), ": "\n\nConsejo: use el identificador mostrado junto a Variables (ej. 'andromeda_png'), ",
|
|
1639
|
+
"CropDialogPro": {
|
|
1640
|
+
"Crop Tool": "Herramienta Recorte",
|
|
1641
|
+
"• Click–drag to draw a crop\n• Drag corner handles to resize\n• Shift + drag on box to rotate": "• Clic-arrastrar para dibujar recorte\n• Arrastrar esquinas para redimensionar\n• Shift + arrastrar para rotar",
|
|
1642
|
+
"Aspect Ratio:": "Relación de Aspecto:",
|
|
1643
|
+
"Free": "Libre",
|
|
1644
|
+
"Original": "Original",
|
|
1645
|
+
"Margins (px):": "Márgenes (px):",
|
|
1646
|
+
"Top": "Arriba",
|
|
1647
|
+
"Right": "Derecha",
|
|
1648
|
+
"Bottom": "Abajo",
|
|
1649
|
+
"Left": "Izquierda",
|
|
1650
|
+
"Zoom Out": "Alejar",
|
|
1651
|
+
"Zoom In": "Acercar",
|
|
1652
|
+
"Zoom 100%": "Zoom 100%",
|
|
1653
|
+
"Fit to View": "Ajustar a la vista",
|
|
1654
|
+
"Selection: —": "Selección: —",
|
|
1655
|
+
"Selection: {0}×{1} px": "Selección: {0}×{1} px",
|
|
1656
|
+
"Toggle Autostretch": "Alternar Autostretch",
|
|
1657
|
+
"Load Previous Crop": "Cargar recorte anterior",
|
|
1658
|
+
"Apply": "Aplicar",
|
|
1659
|
+
"Batch Crop (all open)": "Recorte por Lote (todos abiertos)",
|
|
1660
|
+
"Close": "Cerrar",
|
|
1661
|
+
"No Previous": "Sin anterior",
|
|
1662
|
+
"No previous crop stored.": "No hay recorte anterior guardado.",
|
|
1663
|
+
"No Selection": "Sin selección",
|
|
1664
|
+
"Draw & finalize a crop first.": "Dibuje y finalice un recorte primero.",
|
|
1665
|
+
"Apply failed": "Aplicación fallida",
|
|
1666
|
+
"Invalid crop bounds.": "Límites de recorte inválidos.",
|
|
1667
|
+
"Batch Processing": "Procesamiento por Lote",
|
|
1668
|
+
},
|
|
1669
|
+
"ImagePeekerDialogPro": {
|
|
1670
|
+
"Image Peeker": "Inspección de Imagen",
|
|
1671
|
+
"Grid parameters": "Parámetros de cuadrícula",
|
|
1672
|
+
"Grid size:": "Tamaño cuadrícula:",
|
|
1673
|
+
"Panel size:": "Tamaño panel:",
|
|
1674
|
+
"Separation:": "Separación:",
|
|
1675
|
+
"Pixel size (µm):": "Tamaño píxel (µm):",
|
|
1676
|
+
"Focal length (mm):": "Focal (mm):",
|
|
1677
|
+
"Aperture (mm):": "Apertura (mm):",
|
|
1678
|
+
"Analysis:": "Análisis:",
|
|
1679
|
+
"None": "Ninguno",
|
|
1680
|
+
"Tilt Analysis": "Análisis de Inclinación",
|
|
1681
|
+
"Focal Plane Analysis": "Análisis Plano Focal",
|
|
1682
|
+
"Astrometric Distortion Analysis": "Análisis Distorsión Astrométrica",
|
|
1683
|
+
"Save Settings && Exit": "Guardar y Salir",
|
|
1684
|
+
"Exit without Saving": "Salir sin Guardar",
|
|
1685
|
+
"Processing…": "Procesando…",
|
|
1686
|
+
"Running {0}…": "Ejecutando {0}…",
|
|
1687
|
+
"Sensor Tilt (µm)": "Inclinación Sensor (µm)",
|
|
1688
|
+
"FWHM Heatmap": "Mapa FWHM",
|
|
1689
|
+
"Eccentricity Map": "Mapa Excentricidad",
|
|
1690
|
+
"Orientation Map": "Mapa Orientación",
|
|
1691
|
+
"Plate Solve": "Resolución Astrométrica",
|
|
1692
|
+
"ASTAP/Astrometry failed:\n{0}": "Fallo ASTAP/Astrometry:\n{0}",
|
|
1693
|
+
"WCS Error": "Error WCS",
|
|
1694
|
+
"Plate solve did not produce a readable WCS header.": "La resolución no produjo una cabecera WCS legible.",
|
|
1695
|
+
"No Distortion Model": "Sin Modelo de Distorsión",
|
|
1696
|
+
"This image has a valid WCS, but no SIP distortion terms...": "La imagen tiene WCS válido, pero sin términos de distorsión SIP... Resuelva de nuevo habilitando el ajuste de distorsión en ASTAP.",
|
|
1697
|
+
"Cannot determine pixel scale.": "No se puede determinar la escala de píxeles.",
|
|
1698
|
+
"Choose separation color": "Elegir color separación",
|
|
1699
|
+
"No image": "Sin imagen",
|
|
1700
|
+
"No image loaded to peek at!": "¡No hay imagen cargada para inspeccionar!",
|
|
1701
|
+
},
|
|
1702
|
+
"PlateSolver": {
|
|
1703
|
+
"Plate Solving": "Resolución Astrométrica",
|
|
1704
|
+
"Starting…": "Iniciando…",
|
|
1705
|
+
"Hide": "Ocultar",
|
|
1706
|
+
"Status:": "Estado:",
|
|
1707
|
+
"Status: process timed out.": "Estado: tiempo de proceso agotado.",
|
|
1708
|
+
"Status: process did not exit normally.": "Estado: el proceso no terminó normalmente.",
|
|
1709
|
+
"Status: {0} retry {1}/{2}…": "Estado: {0} reintento {1}/{2}…",
|
|
1710
|
+
"Status: Downloading WCS file (with SIP) from Astrometry.net…": "Estado: Descargando archivo WCS (con SIP) de Astrometry.net…",
|
|
1711
|
+
"solve-field returned no header.": "solve-field no devolvió cabecera.",
|
|
1712
|
+
"requests not available for astrometry.net API.": "requests no disponible para API astrometry.net.",
|
|
1713
|
+
"Status: Preparing full-res 16-bit FITS for web solve…": "Estado: Preparando FITS 16-bit res. completa para web…",
|
|
1714
|
+
"Temp FITS for web upload is empty/tiny ({0} bytes).": "FITS temporal vacío/diminuto ({0} bytes).",
|
|
1715
|
+
"Astrometry.net login failed.": "Fallo inicio sesión Astrometry.net.",
|
|
1716
|
+
"Astrometry.net upload failed.": "Fallo subida Astrometry.net.",
|
|
1717
|
+
"Astrometry.net job ID not received in time.": "Job ID Astrometry.net no recibido a tiempo.",
|
|
1718
|
+
"Astrometry.net calibration not received in time.": "Calibración Astrometry.net no recibida a tiempo.",
|
|
1719
|
+
"Status: Building WCS header from calibration…": "Estado: Construyendo cabecera WCS desde calibración…",
|
|
1720
|
+
"Status: Solving with ASTAP…": "Estado: Resolviendo con ASTAP…",
|
|
1721
|
+
"Status: Solved with ASTAP.": "Estado: Resuelto con ASTAP.",
|
|
1722
|
+
"Status: ASTAP failed ({0}). Falling back to Astrometry.net…": "Estado: ASTAP falló ({0}). Recurriendo a Astrometry.net…",
|
|
1723
|
+
"Status: Solved via Astrometry.net.": "Estado: Resuelto vía Astrometry.net.",
|
|
1724
|
+
"Status: Astrometry.net failed ({0}).": "Estado: Astrometry.net falló ({0}).",
|
|
1725
|
+
},
|
|
1726
|
+
"BlinkComparatorPro": {
|
|
1727
|
+
"Blink Comparator": "Blink Comparator",
|
|
1728
|
+
},
|
|
1729
|
+
"BlinkTab": {
|
|
1730
|
+
"Press 'F' to flag/unflag an image.\nRight-click on an image for more options.": "Presione 'F' para marcar/desmarcar.\nClic derecho en imagen para más opciones.",
|
|
1731
|
+
"Select Images": "Seleccionar Imágenes",
|
|
1732
|
+
"Select Directory": "Seleccionar Carpeta",
|
|
1733
|
+
"Add Additional": "Añadir",
|
|
1734
|
+
"Show Metrics": "Mostrar Métricas",
|
|
1735
|
+
"→ Stacking: Lights": "→ Stacking: Lights",
|
|
1736
|
+
"Send selected (or all) blink files to the Stacking Suite → Light tab": "Enviar seleccionados (o todos) a Stacking Suite → pestaña Light",
|
|
1737
|
+
"→ Stacking: Integration": "→ Stacking: Integración",
|
|
1738
|
+
"Send selected (or all) blink files to the Stacking Suite → Image Integration tab": "Enviar seleccionados (o todos) a Stacking Suite → pestaña Integración",
|
|
1739
|
+
"Speed:": "Velocidad:",
|
|
1740
|
+
"Playback speed (0.1–10.0 fps)": "Velocidad reproducción (0.1–10.0 fps)",
|
|
1741
|
+
"Export Video…": "Exportar Video…",
|
|
1742
|
+
"Image Files": "Archivos de Imagen",
|
|
1743
|
+
"Clear Flags": "Borrar Marcas",
|
|
1744
|
+
"Clear Images": "Borrar Imágenes",
|
|
1745
|
+
"Loading images...": "Cargando imágenes...",
|
|
1746
|
+
"Aggressive Stretch": "Estiramiento Agresivo",
|
|
1747
|
+
"There are no images to send.": "No hay imágenes para enviar.",
|
|
1748
|
+
"Load images before exporting.": "Cargue imágenes antes de exportar.",
|
|
1749
|
+
"No individual frames selected.": "Ningún fotograma seleccionado.",
|
|
1750
|
+
"Nothing to export.": "Nada para exportar.",
|
|
1751
|
+
"Only one frame": "Solo un fotograma",
|
|
1752
|
+
"You're about to export a video with a single frame. Continue?": "Va a exportar un video con un solo fotograma. ¿Continuar?",
|
|
1753
|
+
"Export Blink Video": "Exportar Video Blink",
|
|
1754
|
+
"No compatible video codec found.\n\nTip: install FFmpeg or `pip install imageio[ffmpeg]` for a portable fallback.": "No se encontró códec de video compatible.\n\nConsejo: instale FFmpeg o `pip install imageio[ffmpeg]`.",
|
|
1755
|
+
},
|
|
1756
|
+
"MetricsPanel": {
|
|
1757
|
+
"FWHM (px)": "FWHM (px)",
|
|
1758
|
+
"Eccentricity": "Excentricidad",
|
|
1759
|
+
"Background": "Fondo",
|
|
1760
|
+
"Star Count": "Conteo de Estrellas",
|
|
1761
|
+
"Heads-up": "Atención",
|
|
1762
|
+
"This is going to use ALL your CPU cores and the UI may lock up until it finishes.\n\nContinue?": "Esto usará TODOS los núcleos de CPU y la interfaz puede congelarse hasta terminar.\n\n¿Continuar?",
|
|
1763
|
+
"Don't show again": "No mostrar de nuevo",
|
|
1764
|
+
"Computing frame metrics…": "Calculando métricas…",
|
|
1765
|
+
},
|
|
1766
|
+
"MetricsWindow": {
|
|
1767
|
+
"Frame Metrics": "Métricas de Fotogramas",
|
|
1768
|
+
"Instructions:\n • Use the filter dropdown to restrict by FILTER.\n • Click a dot to flag/unflag a frame.\n • Shift-click a dot to preview the image.\n • Drag the red lines to set thresholds.": "Instrucciones:\n • Use el menú filtro para restringir por FILTER.\n • Clic en un punto para marcar/desmarcar.\n • Shift-clic en un punto para vista previa.\n • Arrastre las líneas rojas para umbrales.",
|
|
1769
|
+
"Flagged Items {0}/{1} ({2:.1f}%)": "Items Marcados {0}/{1} ({2:.1f}%)",
|
|
1770
|
+
"All": "Todos",
|
|
1771
|
+
},
|
|
1772
|
+
"or just type the raw title; it will be auto-mapped.": "o escriba el título bruto; será auto-mapeado."
|
|
1773
|
+
},
|
|
1774
|
+
"SaspViewer": {
|
|
1775
|
+
"SASP Viewer (Pickles + RGB Responses)": "Visor SASP (Pickles + Respuestas RGB)",
|
|
1776
|
+
"Star Template:": "Plantilla de estrella:",
|
|
1777
|
+
"R-Filter:": "Filtro R:",
|
|
1778
|
+
"G-Filter:": "Filtro G:",
|
|
1779
|
+
"B-Filter:": "Filtro B:",
|
|
1780
|
+
"LP/Cut Filter1:": "Filtro LP/Cut 1:",
|
|
1781
|
+
"LP/Cut Filter2:": "Filtro LP/Cut 2:",
|
|
1782
|
+
"Sensor (QE):": "Sensor (QE):",
|
|
1783
|
+
"Plot": "Graficar",
|
|
1784
|
+
"No channels selected": "Ningún canal seleccionado",
|
|
1785
|
+
"{0} Response": "Respuesta {0}",
|
|
1786
|
+
"Wavelength (Å)": "Longitud de onda (Å)",
|
|
1787
|
+
"Flux (erg s⁻¹ cm⁻² Å⁻¹)": "Flujo (erg s⁻¹ cm⁻² Å⁻¹)",
|
|
1788
|
+
"Relative Throughput": "Rendimiento relativo",
|
|
1789
|
+
"R filter×QE": "Filtro R×QE",
|
|
1790
|
+
"G filter×QE": "Filtro G×QE",
|
|
1791
|
+
"B filter×QE": "Filtro B×QE",
|
|
1792
|
+
},
|
|
1793
|
+
"SFCCDialog": {
|
|
1794
|
+
"Spectral Flux Color Calibration": "Spectral Flux Color Calibration",
|
|
1795
|
+
"Orientation: N/A": "Orientación: N/A",
|
|
1796
|
+
"Step 1: Fetch Stars from Current View": "Paso 1: Obtener estrellas de la vista actual",
|
|
1797
|
+
"Open SASP Viewer": "Abrir visor SASP",
|
|
1798
|
+
"Select White Reference:": "Seleccionar referencia blanca:",
|
|
1799
|
+
"Vega (A0V)": "Vega (A0V)",
|
|
1800
|
+
"R Filter:": "Filtro R:",
|
|
1801
|
+
"G Filter:": "Filtro G:",
|
|
1802
|
+
"B Filter:": "Filtro B:",
|
|
1803
|
+
"Sensor (QE):": "Sensor (QE):",
|
|
1804
|
+
"LP/Cut Filter1:": "Filtro LP/Cut 1:",
|
|
1805
|
+
"LP/Cut Filter2:": "Filtro LP/Cut 2:",
|
|
1806
|
+
"Step 2: Run Color Calibration": "Paso 2: Ejecutar calibración de color",
|
|
1807
|
+
"Background Neutralization": "Neutralización de fondo",
|
|
1808
|
+
"Run Gradient Extraction (Beta)": "Ejecutar extracción de gradiente (Beta)",
|
|
1809
|
+
"Star detect σ:": "σ detección de estrellas:",
|
|
1810
|
+
"Add Custom Filter/Sensor Curve…": "Añadir curva de filtro/sensor personalizada…",
|
|
1811
|
+
"Remove Filter/Sensor Curve…": "Eliminar curva de filtro/sensor personalizada…",
|
|
1812
|
+
"Close": "Cerrar",
|
|
1813
|
+
"Reset View/Close": "Restablecer vista/Cerrar",
|
|
1814
|
+
"Click 3 points, then close": "Haz clic en 3 puntos, luego cierra",
|
|
1815
|
+
"Need exactly three clicks for calibration.": "Se necesitan exactamente tres clics para la calibración.",
|
|
1816
|
+
"Curve Name": "Nombre de la curva",
|
|
1817
|
+
"Enter curve name (EXTNAME):": "Introduce el nombre de la curva (EXTNAME):",
|
|
1818
|
+
"Channel": "Canal",
|
|
1819
|
+
"Enter channel (R,G,B or Q for sensor):": "Introduce el canal (R, G, B o Q para sensor):",
|
|
1820
|
+
"Add Custom Curve": "Añadir curva personalizada",
|
|
1821
|
+
"Choose how to add the curve:": "Elige cómo añadir la curva:",
|
|
1822
|
+
"Import CSV": "Importar CSV",
|
|
1823
|
+
"Digitize Image": "Digitalizar imagen",
|
|
1824
|
+
"Select 2-column CSV (λ_nm, response)": "Seleccionar CSV de 2 columnas (λ_nm, respuesta)",
|
|
1825
|
+
"CSV Error": "Error de CSV",
|
|
1826
|
+
"Could not read CSV:\n{0}": "No se pudo leer el CSV:\n{0}",
|
|
1827
|
+
"Done": "Hecho",
|
|
1828
|
+
"CSV curve '{0}' added.": "Curva CSV '{0}' añadida.",
|
|
1829
|
+
"Select Curve Image to Digitize": "Seleccionar imagen de curva para digitalizar",
|
|
1830
|
+
"Error": "Error",
|
|
1831
|
+
"Could not load image:\n{0}": "No se pudo cargar la imagen:\n{0}",
|
|
1832
|
+
"Digitization Error": "Error de digitalización",
|
|
1833
|
+
"λ_min": "λ_min",
|
|
1834
|
+
"Enter λ_min (in nm):": "Introduce λ_min (en nm):",
|
|
1835
|
+
"λ_max": "λ_max",
|
|
1836
|
+
"Enter λ_max (in nm):": "Introduce λ_max (en nm):",
|
|
1837
|
+
"Input Error": "Error de entrada",
|
|
1838
|
+
"λ_min and λ_max must be numbers.": "λ_min y λ_max deben ser números.",
|
|
1839
|
+
"Extraction Error": "Error de extracción",
|
|
1840
|
+
"Interpolation Error": "Error de interpolación",
|
|
1841
|
+
"Added curve '{0}'.": "Curva '{0}' añadida.",
|
|
1842
|
+
"Remove Curve": "Eliminar curva",
|
|
1843
|
+
"No custom curves to remove.": "No hay curvas personalizadas para eliminar.",
|
|
1844
|
+
"Select a FILTER or SENSOR curve to delete:": "Selecciona una curva de FILTRO o SENSOR para eliminar:",
|
|
1845
|
+
"Confirm Deletion": "Confirmar eliminación",
|
|
1846
|
+
"Delete '{0}'?": "¿Eliminar '{0}'?",
|
|
1847
|
+
"Removed": "Eliminado",
|
|
1848
|
+
"Deleted curve '{0}'.": "Curva '{0}' eliminada.",
|
|
1849
|
+
},
|
|
1850
|
+
"ImagePreviewWindow": {
|
|
1851
|
+
"Fit": "Ajustar",
|
|
1852
|
+
"1:1": "1:1",
|
|
1853
|
+
"Zoom In": "Aumentar",
|
|
1854
|
+
"Zoom Out": "Alejar",
|
|
1855
|
+
"Push to New View": "Empujar a nueva vista",
|
|
1856
|
+
"Pushed": "Enviado",
|
|
1857
|
+
"New View Created.": "Nueva vista creada.",
|
|
1858
|
+
},
|
|
1859
|
+
"SupernovaAsteroidHunterDialog": {
|
|
1860
|
+
"Supernova / Asteroid Hunter": "Cazador de supernovas / asteroides",
|
|
1861
|
+
"Select the reference image and search images. Then click Process to hunt for anomalies.": "Selecciona la imagen de referencia y las imágenes de búsqueda. Luego haz clic en Procesar para buscar anomalías.",
|
|
1862
|
+
"No reference image selected": "No se ha seleccionado ninguna imagen de referencia",
|
|
1863
|
+
"Select Reference Image": "Seleccionar imagen de referencia",
|
|
1864
|
+
"Select Search Images": "Seleccionar imágenes de búsqueda",
|
|
1865
|
+
"Apply Cosmetic Correction before Preprocessing": "Aplicar corrección cosmética antes del preprocesamiento",
|
|
1866
|
+
"Anomaly Detection Threshold: 0.10": "Umbral de detección de anomalías: 0.10",
|
|
1867
|
+
"Process (Cosmetic Correction, Preprocess, and Search)": "Procesar (Corrección cosmética, Preprocesamiento y Búsqueda)",
|
|
1868
|
+
"Preprocessing progress: 0 / 0": "Progreso del preprocesamiento: 0 / 0",
|
|
1869
|
+
"Processing progress: 0 / 0": "Progreso del procesamiento: 0 / 0",
|
|
1870
|
+
"Status: Idle": "Estado: Inactivo",
|
|
1871
|
+
"New Instance": "Nueva instancia",
|
|
1872
|
+
"Anomaly Detection Threshold: {0:.2f}": "Umbral de detección de anomalías: {0:.2f}",
|
|
1873
|
+
"Process started...": "Proceso iniciado...",
|
|
1874
|
+
"Running Cosmetic Correction...": "Ejecutando corrección cosmética...",
|
|
1875
|
+
"Preprocessing images...": "Preprocesando imágenes...",
|
|
1876
|
+
"Analyzing anomalies...": "Analizando anomalías...",
|
|
1877
|
+
"Process complete.": "Proceso completato.",
|
|
1878
|
+
"Cosmetic Correction: {0}/{1} => {2}": "Corrección cosmética: {0}/{1} => {2}",
|
|
1879
|
+
"Preprocessing reference image...": "Preprocesando imagen de referencia...",
|
|
1880
|
+
"Error": "Error",
|
|
1881
|
+
"No reference image selected.": "No se ha seleccionado ninguna imagen de referencia.",
|
|
1882
|
+
"Preprocessing reference image... Done.": "Preprocesamiento de imagen de referencia... Hecho.",
|
|
1883
|
+
"Failed to preprocess reference image: {0}": "Error al preprocesar la imagen de referencia: {0}",
|
|
1884
|
+
"Preprocessing search image {0}/{1} => {2}": "Preprocesando imagen de búsqueda {0}/{1} => {2}",
|
|
1885
|
+
"Preprocessing image {0} of {1}... Done.": "Preprocesamiento de imagen {0} de {1}... Hecho.",
|
|
1886
|
+
"All search images preprocessed.": "Todas las imágenes de búsqueda preprocesadas.",
|
|
1887
|
+
"Minor-body Search Limits": "Límites de búsqueda de cuerpos menores",
|
|
1888
|
+
"Asteroid H ≤": "Asteroide H ≤",
|
|
1889
|
+
"Max asteroid": "Máx asteroides",
|
|
1890
|
+
"Comet H ≤": "Cometa H ≤",
|
|
1891
|
+
"Max comet": "Máx cometas",
|
|
1892
|
+
"Time offset (hours)": "Desplazamiento temporal (horas)",
|
|
1893
|
+
"OK": "Aceptar",
|
|
1894
|
+
"Cancel": "Cancelar",
|
|
1895
|
+
"Minor-body Search": "Búsqueda de cuerpos menores",
|
|
1896
|
+
"Minor-body prediction failed:\n{0}": "Error en la predicción de cuerpos menores:\n{0}",
|
|
1897
|
+
"Minor-body search failed.": "Error en la búsqueda de cuerpos menores.",
|
|
1898
|
+
"Minor-body search complete: no catalogued objects in this field for the current magnitude limits.": "Búsqueda de cuerpos menores completa: no hay objetos catalogados en este campo para los límites actuales.",
|
|
1899
|
+
"No catalogued minor bodies (within the configured magnitude limits) were found in this field.": "No se encontraron cuerpos menores catalogados en este campo.",
|
|
1900
|
+
"Minor-body search complete: {0} objects in field.": "Búsqueda de cuerpos menores completa: {0} objetos en el campo.",
|
|
1901
|
+
"Minor bodies in field have been computed.\n\nRun the anomaly search (Process) to cross-match detections against the predicted objects.": "Cuerpos menores en el campo calculados.\n\nEjecuta la búsqueda de anomalías (Procesar) para cruzar las detecciones con los objetos predichos.",
|
|
1902
|
+
"No reference image selected.\n\nPlease select a reference image and run Process first.": "No se ha seleccionado ninguna imagen de referencia.\n\nSelecciona una imagen y ejecuta Procesar primero.",
|
|
1903
|
+
"Reference image has not been preprocessed yet.\n\nPlease click 'Process' before running the minor-body search.": "La imagen de referencia aún no ha sido preprocesada.\n\nHaz clic en 'Procesar' antes de buscar cuerpos menores.",
|
|
1904
|
+
"Settings object is not available; cannot locate the minor-body database path.": "Objeto de configuración no disponible; no se puede localizar la base de datos de cuerpos menores.",
|
|
1905
|
+
"Minor-body search: preparing catalog query...": "Búsqueda de cuerpos menores: preparando consulta al catálogo...",
|
|
1906
|
+
},
|
|
1907
|
+
"WaveScaleHDRDialogPro": {
|
|
1908
|
+
"WaveScale HDR": "WaveScale HDR",
|
|
1909
|
+
"HDR Controls": "Controles HDR",
|
|
1910
|
+
"Number of Scales:": "Número de escalas:",
|
|
1911
|
+
"Coarse Compression:": "Compresión gruesa:",
|
|
1912
|
+
"Mask Gamma:": "Gamma de máscara:",
|
|
1913
|
+
"Preview": "Previsualización",
|
|
1914
|
+
"Show Original": "Mostrar original",
|
|
1915
|
+
"Zoom In": "Aumentar",
|
|
1916
|
+
"Zoom Out": "Alejar",
|
|
1917
|
+
"Fit to Preview": "Ajustar a previsualización",
|
|
1918
|
+
"Processing Progress": "Progreso del procesamiento",
|
|
1919
|
+
"Idle": "Inactivo",
|
|
1920
|
+
"Apply to Document": "Aplicar al documento",
|
|
1921
|
+
"Reset": "Restablecer",
|
|
1922
|
+
"Close": "Cerrar",
|
|
1923
|
+
"Show Preview": "Mostrar previsualización",
|
|
1924
|
+
"A headless HDR run appears to be in progress. This window will remain open; you can still preview safely.": "Parece que hay una ejecución HDR automática en curso. Esta ventana permanecerá abierta; aún puedes usar la previsualización.",
|
|
1925
|
+
"Processing failed.": "El procesamiento falló.",
|
|
1926
|
+
"HDR Mask (L × Active Mask)": "Máscara HDR (L × Máscara Activa)",
|
|
1927
|
+
"HDR Mask (L-based)": "Máscara HDR (basada en L)",
|
|
1928
|
+
"Preview ready": "Previsualización lista",
|
|
1929
|
+
"Failed to write to document:\n{0}": "Error al escribir en el documento:\n{0}",
|
|
1930
|
+
},
|
|
1931
|
+
"WaveScaleHDRPresetDialog": {
|
|
1932
|
+
"WaveScale HDR — Preset": "WaveScale HDR — Preajuste",
|
|
1933
|
+
"Number of Scales:": "Número de escalas:",
|
|
1934
|
+
"Coarse Compression:": "Compresión gruesa:",
|
|
1935
|
+
"Mask Gamma:": "Gamma de máscara:",
|
|
1936
|
+
"Load an image first.": "Carga una imagen primero.",
|
|
1937
|
+
},
|
|
1938
|
+
"HDRWorker": {
|
|
1939
|
+
"Converting to Lab color space…": "Convirtiendo al espacio de color Lab…",
|
|
1940
|
+
"Decomposing luminance with starlet…": "Descomponiendo luminancia con starlet…",
|
|
1941
|
+
"Finalizing…": "Finalizando…",
|
|
1942
|
+
},
|
|
1943
|
+
"MaskDisplayWindow": {
|
|
1944
|
+
"HDR Mask (L-based)": "Máscara HDR (basada en L)",
|
|
1945
|
+
},
|
|
1946
|
+
"WhiteBalanceDialog": {
|
|
1947
|
+
"White Balance": "Balance de blancos",
|
|
1948
|
+
"White Balance Type:": "Tipo de balance de blancos:",
|
|
1949
|
+
"Star-Based": "Basado en estrellas",
|
|
1950
|
+
"Manual": "Manual",
|
|
1951
|
+
"Auto": "Automático",
|
|
1952
|
+
"Manual Gains": "Ganancias manuales",
|
|
1953
|
+
"Red gain:": "Ganancia roja:",
|
|
1954
|
+
"Green gain:": "Ganancia verde:",
|
|
1955
|
+
"Blue gain:": "Ganancia azul:",
|
|
1956
|
+
"Star-Based Settings": "Ajustes basados en estrellas",
|
|
1957
|
+
"Detection threshold (σ):": "Umbral de detección (σ):",
|
|
1958
|
+
"Reuse cached star detections": "Reutilizar detecciones de estrellas en caché",
|
|
1959
|
+
"Autostretch overlay preview": "Vista previa superpuesta con expansión automática",
|
|
1960
|
+
"Detecting stars...": "Detectando estrellas...",
|
|
1961
|
+
"Detected {0} stars.": "Detectadas {0} estrellas.",
|
|
1962
|
+
"Detection failed.": "Detección fallida.",
|
|
1963
|
+
"Apply": "Aplicar",
|
|
1964
|
+
"Cancel": "Cancelar",
|
|
1965
|
+
"Star-Based WB applied.\nDetected {0} stars.": "Balance de blancos basado en estrellas aplicado.\nDetectadas {0} estrellas.",
|
|
1966
|
+
"Failed to apply White Balance:\n{0}": "Error al aplicar el balance de blancos:\n{0}",
|
|
1967
|
+
},
|
|
1968
|
+
"WaveScaleDarkEnhancerDialogPro": {
|
|
1969
|
+
"Dark Mask": "Máscara oscura",
|
|
1970
|
+
"WaveScale Dark Enhancer": "WaveScale Dark Enhancer",
|
|
1971
|
+
"Dark Enhancer Controls": "Controles Dark Enhancer",
|
|
1972
|
+
"Number of Scales:": "Número de escalas:",
|
|
1973
|
+
"Boost Factor:": "Factor de boost:",
|
|
1974
|
+
"Mask Gamma:": "Gama de la máscara:",
|
|
1975
|
+
"Iterations:": "Iteraciones:",
|
|
1976
|
+
"Preview": "Previsualización",
|
|
1977
|
+
"Show Original": "Mostrar original",
|
|
1978
|
+
"Show Preview": "Mostrar previsualización",
|
|
1979
|
+
"Progress": "Progreso",
|
|
1980
|
+
"Idle": "Inactivo",
|
|
1981
|
+
"Apply to Document": "Aplicar al documento",
|
|
1982
|
+
"Reset": "Restablecer",
|
|
1983
|
+
"Close": "Cerrar",
|
|
1984
|
+
"Zoom Controls": "Controles de zoom",
|
|
1985
|
+
"Zoom In": "Aumentar",
|
|
1986
|
+
"Zoom Out": "Alejar",
|
|
1987
|
+
"Fit to Preview": "Ajustar a la previsualización",
|
|
1988
|
+
"Dark Mask (Algo × Active Mask)": "Máscara oscura (Algo × Máscara activa)",
|
|
1989
|
+
"Analyzing dark structure…": "Analizando la estructura oscura…",
|
|
1990
|
+
"Finalizing…": "Finalizando…",
|
|
1991
|
+
"Processing failed.": "El procesamiento falló.",
|
|
1992
|
+
"Preview ready": "Previsualización lista",
|
|
1993
|
+
"Failed to write to document:\n{0}": "Fallo al escribir en el documento:\n{0}",
|
|
1994
|
+
"No active image.": "Ninguna imagen activa.",
|
|
1995
|
+
},
|
|
1996
|
+
"WaveScaleDSEPresetDialog": {
|
|
1997
|
+
"WaveScale Dark Enhancer — Preset": "WaveScale Dark Enhancer — Preajuste",
|
|
1998
|
+
"Number of Scales:": "Número de escalas:",
|
|
1999
|
+
"Boost Factor:": "Factor de boost:",
|
|
2000
|
+
"Mask Gamma:": "Gama de la máscara:",
|
|
2001
|
+
"Iterations:": "Iteraciones:",
|
|
2002
|
+
"WaveScale Dark Enhancer": "WaveScale Dark Enhancer",
|
|
2003
|
+
"Load an image first.": "Carga una imagen primero.",
|
|
2004
|
+
"Failed to write to document:\n{0}": "Fallo al escribir en el documento:\n{0}",
|
|
2005
|
+
},
|
|
2006
|
+
},
|
|
2007
|
+
"uk": {
|
|
2008
|
+
"SettingsDialog": {
|
|
2009
|
+
"Preferences": "Налаштування",
|
|
2010
|
+
"Check for updates on startup": "Перевіряти оновлення при запуску",
|
|
2011
|
+
"Reset": "Скинути",
|
|
2012
|
+
"Browse…": "Огляд…",
|
|
2013
|
+
"Theme:": "Тема:",
|
|
2014
|
+
"Language:": "Мова:",
|
|
2015
|
+
"<b>Display</b>": "<b>Відображення</b>",
|
|
2016
|
+
"<b>Paths & Integrations</b>": "<b>Шляхи та інтеграції</b>",
|
|
2017
|
+
"<b>What's In My Sky — Defaults</b>": "<b>Що в моєму небі — Стандартно</b>",
|
|
2018
|
+
"Latitude (°):": "Широта (°):",
|
|
2019
|
+
"Longitude (°):": "Довгота (°):",
|
|
2020
|
+
"Date (YYYY-MM-DD):": "Дата (РРРР-ММ-ДД):",
|
|
2021
|
+
"Time (HH:MM):": "Час (ГГ:ХХ):",
|
|
2022
|
+
"Time Zone:": "Часовий пояс:",
|
|
2023
|
+
"Min Altitude (°):": "Мін. висота (°):",
|
|
2024
|
+
"Object Limit:": "Ліміт об'єктів:",
|
|
2025
|
+
"<b>RA/Dec Overlay</b>": "<b>Накладання RA/Dec</b>",
|
|
2026
|
+
"Show RA/Dec grid": "Показати сітку RA/Dec",
|
|
2027
|
+
"Mode:": "Режим:",
|
|
2028
|
+
"Step:": "Крок:",
|
|
2029
|
+
"<b>Updates</b>": "<b>Оновлення</b>",
|
|
2030
|
+
"Updates JSON URL:": "URL JSON оновлень:",
|
|
2031
|
+
"Background Opacity:": "Прозорість фону:",
|
|
2032
|
+
"Background Image:": "Фонове зображення:",
|
|
2033
|
+
},
|
|
2034
|
+
"MenuMixin": {
|
|
2035
|
+
"&File": "&Файл",
|
|
2036
|
+
"&Edit": "&Правка",
|
|
2037
|
+
"&Functions": "&Функції",
|
|
2038
|
+
"&Smart Tools": "&Розумні інструменти",
|
|
2039
|
+
"&Tools": "&Інструменти",
|
|
2040
|
+
"&Geometry": "&Геометрія",
|
|
2041
|
+
"&Star Stuff": "&Зірки",
|
|
2042
|
+
"&Masks": "&Маски",
|
|
2043
|
+
"&What's In My...": "&Що в моєму...",
|
|
2044
|
+
"&Scripts": "&Скрипти",
|
|
2045
|
+
"&Header Mods && Misc": "&Модиф. заголовків та інше",
|
|
2046
|
+
"&History": "&Історія",
|
|
2047
|
+
"&Shortcuts": "&Гарячі клавіші",
|
|
2048
|
+
"&View": "&Вигляд",
|
|
2049
|
+
"&Settings": "&Налаштування",
|
|
2050
|
+
"&About": "&Про програму",
|
|
2051
|
+
"Preferences...": "Налаштування...",
|
|
2052
|
+
"About...": "Про програму...",
|
|
2053
|
+
"Open Recent Images": "Відкрити нещодавні зображення",
|
|
2054
|
+
"Open Recent Projects": "Відкрити нещодавні проєкти",
|
|
2055
|
+
"No recent images": "Немає нещодавніх зображень",
|
|
2056
|
+
"No recent projects": "Немає нещодавніх проєктів",
|
|
2057
|
+
"Clear List": "Очистити список",
|
|
2058
|
+
"Keyboard Shortcut Cheat Sheet...": "Шпаргалка гарячих клавіш...",
|
|
2059
|
+
"Export Shortcuts...": "Експортувати гарячі клавіші...",
|
|
2060
|
+
"Import Shortcuts...": "Імпортувати гарячі клавіші...",
|
|
2061
|
+
"Clear All Shortcuts": "Очистити всі гарячі клавіші",
|
|
2062
|
+
"None": "Немає",
|
|
2063
|
+
"Group A": "Група A",
|
|
2064
|
+
"Group B": "Група B",
|
|
2065
|
+
"Group C": "Група C",
|
|
2066
|
+
"Group D": "Група D",
|
|
2067
|
+
},
|
|
2068
|
+
"ToolbarMixin": {
|
|
2069
|
+
"Open...": "Відкрити...",
|
|
2070
|
+
"Open image(s)": "Відкрити зображення",
|
|
2071
|
+
"New Project": "Новий проєкт",
|
|
2072
|
+
"Save Project...": "Зберегти проєкт...",
|
|
2073
|
+
"Load Project...": "Завантажити проєкт...",
|
|
2074
|
+
"Clear All Views": "Закрити всі вікна",
|
|
2075
|
+
"Save As...": "Зберегти як...",
|
|
2076
|
+
"Save the active image": "Зберегти активне зображення",
|
|
2077
|
+
"&Exit": "&Вихід",
|
|
2078
|
+
"Cascade Views": "Вікна каскадом",
|
|
2079
|
+
"Tile Views": "Вікна плиткою",
|
|
2080
|
+
"Tile Vertically": "Розташувати вертикально",
|
|
2081
|
+
"Tile Horizontally": "Розташувати горизонтально",
|
|
2082
|
+
"Smart Grid": "Розумна сітка",
|
|
2083
|
+
"Link Pan/Zoom": "Зв'язати панораму/зум",
|
|
2084
|
+
"Undo": "Скасувати",
|
|
2085
|
+
"Redo": "Повторити",
|
|
2086
|
+
},
|
|
2087
|
+
"AstroSuiteProMainWindow": {
|
|
2088
|
+
"Exit Seti Astro Suite Pro?": "Вийти з Seti Astro Suite Pro?",
|
|
2089
|
+
"Confirm Exit": "Підтвердити вихід",
|
|
2090
|
+
"Open images:": "Відкриті зображення:",
|
|
2091
|
+
"Edited since open:": "Змінено після відкриття:",
|
|
2092
|
+
"New Project": "Новий проєкт",
|
|
2093
|
+
"This will close all views and clear desktop shortcuts. Continue?": "Це закриє всі вікна та очистить гарячі клавіші. Продовжити?",
|
|
2094
|
+
"Clear All Views": "Закрити всі вікна",
|
|
2095
|
+
"Close all views and documents? Desktop shortcuts will be preserved.": "Закрити всі вікна та документи? Гарячі клавіші буде збережено.",
|
|
2096
|
+
"Loading a project will close current views and replace desktop shortcuts.": "Завантаження проєкту закриє поточні вікна та замінить гарячі клавіші.",
|
|
2097
|
+
"System Log": "Системний лог",
|
|
2098
|
+
"Show System Log Panel": "Показати панель логів",
|
|
2099
|
+
"Explorer": "Провідник",
|
|
2100
|
+
"Console / Status": "Консоль / Статус",
|
|
2101
|
+
"Invert": "Інвертувати",
|
|
2102
|
+
"Flip Horizontal": "Віддзеркалити горизонтально",
|
|
2103
|
+
"Flip Vertical": "Віддзеркалити вертикально",
|
|
2104
|
+
"Rotate 90° CW": "Повернути на 90° за год. ст.",
|
|
2105
|
+
"Rotate 90° CCW": "Повернути на 90° проти год. ст.",
|
|
2106
|
+
"Rotate 180°": "Повернути на 180°",
|
|
2107
|
+
"Rescale Image": "Змінити масштаб зображення",
|
|
2108
|
+
"Active view has no image.": "Активне вікно не має зображення.",
|
|
2109
|
+
"Mask Overlay": "Накладання маски",
|
|
2110
|
+
"No active mask on this image.": "На цьому зображенні немає активної маски.",
|
|
2111
|
+
"No header": "Немає заголовка",
|
|
2112
|
+
"Checking for updates...": "Перевірка оновлень...",
|
|
2113
|
+
"Update Available": "Доступне оновлення",
|
|
2114
|
+
"You're up to date.": "Програма оновлена.",
|
|
2115
|
+
"Open Images": "Відкрити зображення",
|
|
2116
|
+
"Open failed": "Не вдалося відкрити",
|
|
2117
|
+
"Save failed": "Не вдалося зберегти",
|
|
2118
|
+
"File not found": "Файл не знайдено",
|
|
2119
|
+
"Project not found": "Проєкт не знайдено",
|
|
2120
|
+
"Save Project": "Зберегти проєкт",
|
|
2121
|
+
"Load Project": "Завантажити проєкт",
|
|
2122
|
+
"Saving project...": "Збереження проєкту...",
|
|
2123
|
+
"No documents to save.": "Немає документів для збереження.",
|
|
2124
|
+
},
|
|
2125
|
+
"GhsDialogPro": {
|
|
2126
|
+
"Hyperbolic Stretch": "Гіперболічний стретч",
|
|
2127
|
+
"Tip: Ctrl+Click (or double-click) the image to set the symmetry pivot": "Порада: Ctrl+клік (або подвійний клік) на зображенні встановить точку симетрії",
|
|
2128
|
+
"Ctrl+Click (or double-click) the image to set the symmetry pivot": "Ctrl+клік (або подвійний клік) на зображенні встановить точку симетрії",
|
|
2129
|
+
"Channel:": "Канал:",
|
|
2130
|
+
"Apply": "Застосувати",
|
|
2131
|
+
"Reset": "Скинути",
|
|
2132
|
+
"Histogram": "Гістограма",
|
|
2133
|
+
"Zoom Out": "Зменшити",
|
|
2134
|
+
"Zoom In": "Збільшити",
|
|
2135
|
+
"Fit to Preview": "Вписати в перегляд",
|
|
2136
|
+
"Could not import histogram module:\n{0}": "Не вдалося імпортувати модуль гістограми:\n{0}",
|
|
2137
|
+
"Apply failed": "Застосування не вдалося",
|
|
2138
|
+
"No image": "Немає зображення",
|
|
2139
|
+
"Open an image first.": "Спочатку відкрийте зображення.",
|
|
2140
|
+
},
|
|
2141
|
+
"HistogramDialog": {
|
|
2142
|
+
"Histogram": "Гістограма",
|
|
2143
|
+
"Ctrl+Click on the histogram to send that intensity as the pivot to Hyperbolic Stretch (if open).": "Ctrl+клік на гістограмі встановить це значення як центр для гіперболічного стретчу.",
|
|
2144
|
+
"Min": "Мін",
|
|
2145
|
+
"Max": "Макс",
|
|
2146
|
+
"Median": "Медіана",
|
|
2147
|
+
"StdDev": "Сер. відх.",
|
|
2148
|
+
"MAD": "MAD",
|
|
2149
|
+
"Low Clipped": "Кліпінг знизу",
|
|
2150
|
+
"High Clipped": "Кліпінг зверху",
|
|
2151
|
+
"Zoom:": "Зум:",
|
|
2152
|
+
"Toggle Log X-Axis": "Лог. вісь X",
|
|
2153
|
+
"Toggle Log Y-Axis": "Лог. вісь Y",
|
|
2154
|
+
"Close": "Закрити",
|
|
2155
|
+
"True Max {0:.4f}": "Реальний макс. {0:.4f}",
|
|
2156
|
+
"Sensor True Max (ADU)": "Реальний макс. сенсора (ADU)",
|
|
2157
|
+
"Enter your sensor's true saturation value in native ADU.\n(Typical max for this file type is {0})\n\nYou can measure this by taking a deliberately overexposed frame\nand reading its maximum pixel value.": "Введіть реальне значення насичення сенсора в ADU.\n(Зазвичай для цього типу файлу це {0})\n\nВи можете виміряти це, зробивши переекспонований кадр.",
|
|
2158
|
+
"Histogram Effective Max": "Ефективний макс. гістограми",
|
|
2159
|
+
"Enter effective maximum for clipping (normalized units).": "Введіть ефективний максимум для кліпінгу (нормовані одиниці).",
|
|
2160
|
+
},
|
|
2161
|
+
"CurvesDialogPro": {
|
|
2162
|
+
"Zoom Out": "Зменшити",
|
|
2163
|
+
"Zoom In": "Збільшити",
|
|
2164
|
+
"Fit to Preview": "Вписати в перегляд",
|
|
2165
|
+
"Inflection @ K={0:.3f}": "Перегин @ K={0:.3f}",
|
|
2166
|
+
"Cursor ({0}, {1}) K: {2:.3f}": "Курсор ({0}, {1}) K: {2:.3f}",
|
|
2167
|
+
"Cursor ({0}, {1}) R: {2:.3f} G: {3:.3f} B: {4:.3f}": "Курсор ({0}, {1}) R: {2:.3f} G: {3:.3f} B: {4:.3f}",
|
|
2168
|
+
"Save Curves Preset": "Зберегти пресет кривих",
|
|
2169
|
+
"Preset name:": "Назва пресета:",
|
|
2170
|
+
"Saved preset “{0}”.": "Пресет «{0}» збережено.",
|
|
2171
|
+
"Save failed": "Не вдалося зберегти",
|
|
2172
|
+
"Could not save preset.": "Не вдалося зберегти пресет.",
|
|
2173
|
+
"Built-ins": "Вбудовані",
|
|
2174
|
+
"Custom": "Власні",
|
|
2175
|
+
"(No custom presets yet)": "(Власних пресетів ще немає)",
|
|
2176
|
+
"Manage Presets": "Керування пресетами",
|
|
2177
|
+
"No custom presets.": "Немає власних пресетів.",
|
|
2178
|
+
"Delete Preset": "Видалити пресет",
|
|
2179
|
+
"Choose preset to delete:": "Виберіть пресет для видалення:",
|
|
2180
|
+
"No image": "Немає зображення",
|
|
2181
|
+
"Open an image first.": "Спочатку відкрийте зображення.",
|
|
2182
|
+
"Preview ON": "Перегляд УВІМК",
|
|
2183
|
+
"Preview OFF": "Перегляд ВИМК",
|
|
2184
|
+
"Bk {0:,} ({1:.2f}%) Wt {2:,} ({3:.2f}%)": "Чорні {0:,} ({1:.2f}%) Білі {2:,} ({3:.2f}%)",
|
|
2185
|
+
"Clipping — R: {0} G: {1} B: {2}": "Кліпінг — R: {0} G: {1} B: {2}",
|
|
2186
|
+
"Clipping — Bk {0:,} ({1:.2f}%) Wt {2:,} ({3:.2f}%)": "Кліпінг — Ч {0:,} ({1:.2f}%) Б {2:,} ({3:.2f}%)",
|
|
2187
|
+
"Full-res ready (not shown).": "Повна роздільність готова (не показано).",
|
|
2188
|
+
"Applied. Image reloaded. All curves reset — keep tweaking.": "Застосовано. Зображення оновлено. Криві скинуто — продовжуйте налаштування.",
|
|
2189
|
+
"Apply failed": "Застосування не вдалося",
|
|
2190
|
+
"Added point at x={0:.3f}": "Додано точку на x={0:.3f}",
|
|
2191
|
+
"All curves reset.": "Усі криві скинуто.",
|
|
2192
|
+
"Preset: {0} {1}": "Пресет: {0} {1}",
|
|
2193
|
+
"(built-in)": "(вбудований)",
|
|
2194
|
+
},
|
|
2195
|
+
"PixelMathDialogPro": {
|
|
2196
|
+
"Pixel Math": "Pixel Math",
|
|
2197
|
+
"Variables": "Змінні",
|
|
2198
|
+
"Output": "Вихід",
|
|
2199
|
+
"Overwrite active": "Перезаписати активне",
|
|
2200
|
+
"Create new view": "Створити нове вікно",
|
|
2201
|
+
"Single Expression": "Один вираз",
|
|
2202
|
+
"Separate (R / G / B)": "Окремо (R / G / B)",
|
|
2203
|
+
"e.g. (img + otherView) / 2": "напр. (img + іншеВікно) / 2",
|
|
2204
|
+
"Red": "Червоний",
|
|
2205
|
+
"Green": "Зелений",
|
|
2206
|
+
"Blue": "Синій",
|
|
2207
|
+
"Glossary…": "Глосарій…",
|
|
2208
|
+
"Preview": "Перегляд",
|
|
2209
|
+
"Compute Pixel Math and show the result here without committing.": "Обчислити Pixel Math і показати результат без застосування.",
|
|
2210
|
+
"Auto-stretch": "Авто-стретч",
|
|
2211
|
+
"Enable Auto-stretch": "Увімкнути авто-стретч",
|
|
2212
|
+
"Target median": "Цільова медіана",
|
|
2213
|
+
"0.18 (soft)": "0.18 (м'яко)",
|
|
2214
|
+
"0.25 (default)": "0.25 (стандарт)",
|
|
2215
|
+
"0.35 (brighter)": "0.35 (яскравіше)",
|
|
2216
|
+
"Black-point sigma": "Сігма точки чорного",
|
|
2217
|
+
"σ=2.5": "σ=2.5",
|
|
2218
|
+
"σ=3 (default)": "σ=3 (стандарт)",
|
|
2219
|
+
"σ=4 (deeper black)": "σ=4 (глибокий чорний)",
|
|
2220
|
+
"Linked channels (use luminance)": "Пов'язані канали (яскравість)",
|
|
2221
|
+
"Use 16-bit stats": "Статистика 16-біт",
|
|
2222
|
+
"Zoom In": "Збільшити",
|
|
2223
|
+
"Zoom Out": "Зменшити",
|
|
2224
|
+
"1:1": "1:1",
|
|
2225
|
+
"Fit to Preview": "Вписати в перегляд",
|
|
2226
|
+
"Examples:": "Приклади:",
|
|
2227
|
+
"Insert example…": "Вставити приклад…",
|
|
2228
|
+
"Select a favorite expression": "Вибрати улюблений вираз",
|
|
2229
|
+
"Save as Favorite": "Зберегти в обране",
|
|
2230
|
+
"Delete Favorite": "Видалити з обраного",
|
|
2231
|
+
"Delete this favorite": "Видалити цей вираз",
|
|
2232
|
+
"Help": "Довідка",
|
|
2233
|
+
"Pixel Math Preview": "Перегляд Pixel Math",
|
|
2234
|
+
"Failed:\n{0}": "Помилка:\n{0}",
|
|
2235
|
+
"Average two views": "Середнє двох вікон",
|
|
2236
|
+
"Difference (A - B)": "Різниця (A - B)",
|
|
2237
|
+
"Invert active": "Інвертувати активне",
|
|
2238
|
+
"Subtract median (bias remove)": "Відняти медіану (видалення bias)",
|
|
2239
|
+
"Zero-center by mean": "Центрування за середнім",
|
|
2240
|
+
"Min + Max combine": "Комбінація Мін + Макс",
|
|
2241
|
+
"Log transform": "Лог. трансформація",
|
|
2242
|
+
"Midtones transform m=0.25": "Трансформація середніх тонів m=0.25",
|
|
2243
|
+
"If darker than median → 0 else 1": "Якщо темніше медіани → 0 інакше 1",
|
|
2244
|
+
"Per-channel: swap R↔B": "Поканільно: обмін R↔B",
|
|
2245
|
+
"Per-channel: avg A & B": "Поканільно: середнє A та B",
|
|
2246
|
+
"Per-channel: build RGB from A,B,C": "Поканільно: зібрати RGB з A,B,C",
|
|
2247
|
+
"Normalize to 0–1 (per-channel)": "Нормувати до 0–1 (поканільно)",
|
|
2248
|
+
"Sigmoid contrast (k=12, mid=0.4)": "Сигмоїдний контраст (k=12, mid=0.4)",
|
|
2249
|
+
"Gamma 0.6 (brighten midtones)": "Гамма 0.6 (освітлення середніх тонів)",
|
|
2250
|
+
"Percentile stretch 0.5–99.5%": "Перцентильний стретч 0.5–99.5%",
|
|
2251
|
+
"Blend A→B by horizontal gradient X": "Змішати A→B горизонтальним градієнтом X",
|
|
2252
|
+
"Apply active mask to blend A→B": "Маска для змішування A→B",
|
|
2253
|
+
"Masked unsharp (luma-based)": "Маскована нерізкість (за яскравістю)",
|
|
2254
|
+
"Match medians of A to B": "Узгодити медіани A та B",
|
|
2255
|
+
"Gaussian blur σ=2": "Гаусове розмиття σ=2",
|
|
2256
|
+
"Median filter k=3": "Медіанний фільтр k=3",
|
|
2257
|
+
"Per-channel: luma to all channels": "Поканільно: яскравість у всі канали",
|
|
2258
|
+
"Per-channel: A’s R, B’s G, C’s B (normed)": "Поканільно: R з A, G з B, B з C",
|
|
2259
|
+
"Pixel Math Glossary": "Глосарій Pixel Math",
|
|
2260
|
+
"Double-click to insert a template at the cursor.": "Подвійний клік вставить шаблон.",
|
|
2261
|
+
"Search…": "Пошук…",
|
|
2262
|
+
"Insert": "Вставити",
|
|
2263
|
+
"Pixel Math Help": "Довідка Pixel Math",
|
|
2264
|
+
"Operators: + - * / ^(power) ~(invert)": "Оператори: + - * / ^(степінь) ~(інверсія)",
|
|
2265
|
+
"Comparisons: <, == (use inside iff)": "Порівняння: <, == (всередині iff)",
|
|
2266
|
+
"Variables:": "Змінні:",
|
|
2267
|
+
" • img (active) and one per open view (by window title, auto-mapped).": " • img (активне) та імена відкритих вікон.",
|
|
2268
|
+
" • Coordinates: X, Y in [0..1].": " • Координати: X, Y у діапазоні [0..1].",
|
|
2269
|
+
" • Sizes: H, W, C, shape.": " • Розміри: H (вис), W (шир), C (кан), shape.",
|
|
2270
|
+
"Per-channel indexing: view[0], view[1], view[2].": "Індексація каналів: view[0], view[1], view[2].",
|
|
2271
|
+
"Multiline: last line is the result.": "Мультирядок: останній рядок — результат.",
|
|
2272
|
+
"Output: Overwrite active or Create new view.": "Вихід: Перезаписати або Створити нове вікно.",
|
|
2273
|
+
"Functions:": "Функції:",
|
|
2274
|
+
"Limit values to [lo..hi].": "Обмежити значення [від..до].",
|
|
2275
|
+
"Map range [a..b] to [lo..hi].": "Перенести діапазон [a..b] у [від..до].",
|
|
2276
|
+
"Apply gamma curve.": "Застосувати криву гамми.",
|
|
2277
|
+
"Power with EPS floor.": "Степінь з порогом EPS.",
|
|
2278
|
+
"Absolute value.": "Абсолютне значення.",
|
|
2279
|
+
"Exponential.": "Експонента.",
|
|
2280
|
+
"Square root (clamped to ≥0).": "Квадратний корінь (≥0).",
|
|
2281
|
+
"Inverse sine (radians), input clipped to [-1,1].": "Арксинус (радіани), вхід [-1,1].",
|
|
2282
|
+
"S-shaped tone curve.": "S-подібна крива тону.",
|
|
2283
|
+
"Cubic smooth ramp.": "Кубічний плавний перехід.",
|
|
2284
|
+
"Linear blend.": "Лінійне змішування.",
|
|
2285
|
+
"Per-channel percentile image.": "Поканільний перцентиль.",
|
|
2286
|
+
"Per-channel [0..1] normalization.": "Нормалізація [0..1] поканільно.",
|
|
2287
|
+
"Per-channel (x-mean)/std.": "Поканільно (x-сер)/відх.",
|
|
2288
|
+
"Extract channel i (0/1/2) as 2-D.": "Витягти канал i як 2D.",
|
|
2289
|
+
"Rec.709 luminance as 2-D.": "Яскравість Rec.709 як 2D.",
|
|
2290
|
+
"Stack three planes to RGB.": "Зібрати три площини в RGB.",
|
|
2291
|
+
"Active mask (2-D, [0..1]).": "Активна маска (2D, [0..1]).",
|
|
2292
|
+
"Blend by mask.": "Змішування за маскою.",
|
|
2293
|
+
"Box blur (cv2 if available).": "Розмиття Box blur.",
|
|
2294
|
+
"Gaussian blur.": "Гаусове розмиття.",
|
|
2295
|
+
"Median filter (cv2 if avail).": "Медіанний фільтр.",
|
|
2296
|
+
"Unsharp mask.": "Нерізка маска (Unsharp).",
|
|
2297
|
+
"Midtones transfer (existing).": "Перенесення середніх тонів.",
|
|
2298
|
+
"Conditional (existing).": "Умовна функція.",
|
|
2299
|
+
"Normalized coordinates in [0..1].": "Нормовані координати [0..1].",
|
|
2300
|
+
"Image dimensions.": "Розміри зображення.",
|
|
2301
|
+
"img (active)": "img (активне)",
|
|
2302
|
+
"Tip: double-click to insert the identifier at the cursor": "Порада: подвійний клік вставить ідентифікатор",
|
|
2303
|
+
"\n\nTip: use the identifier listed in Variables (or the raw title; it’s auto-mapped).": "\n\nВикористовуйте імена із розділу «Змінні».",
|
|
2304
|
+
"\n\nTip: use the identifier shown beside Variables (e.g. 'andromeda_png'), ": "\n\nВикористовуйте ідентифікатор біля Змінних (напр. 'andromeda_png'), ",
|
|
2305
|
+
},
|
|
2306
|
+
"CropDialogPro": {
|
|
2307
|
+
"Crop Tool": "Інструмент обрізки",
|
|
2308
|
+
"• Click–drag to draw a crop\n• Drag corner handles to resize\n• Shift + drag on box to rotate": "• Клік-перетягування для малювання\n• Тягніть за кути для зміни розміру\n• Shift + перетягування для обертання",
|
|
2309
|
+
"Aspect Ratio:": "Співвідношення сторін:",
|
|
2310
|
+
"Free": "Довільне",
|
|
2311
|
+
"Original": "Оригінальне",
|
|
2312
|
+
"Margins (px):": "Поля (px):",
|
|
2313
|
+
"Top": "Верх",
|
|
2314
|
+
"Right": "Право",
|
|
2315
|
+
"Bottom": "Низ",
|
|
2316
|
+
"Left": "Ліво",
|
|
2317
|
+
"Zoom Out": "Зменшити",
|
|
2318
|
+
"Zoom In": "Збільшити",
|
|
2319
|
+
"Zoom 100%": "Масштаб 100%",
|
|
2320
|
+
"Fit to View": "Вписати у вікно",
|
|
2321
|
+
"Selection: —": "Виділення: —",
|
|
2322
|
+
"Selection: {0}×{1} px": "Виділення: {0}×{1} px",
|
|
2323
|
+
"Toggle Autostretch": "Перемкнути авто-стретч",
|
|
2324
|
+
"Load Previous Crop": "Завантажити попередню обрізку",
|
|
2325
|
+
"Apply": "Застосувати",
|
|
2326
|
+
"Batch Crop (all open)": "Пакетна обрізка (всі відкриті)",
|
|
2327
|
+
"Close": "Закрити",
|
|
2328
|
+
"No Previous": "Немає попереднього",
|
|
2329
|
+
"No previous crop stored.": "Попередня обрізка не збережена.",
|
|
2330
|
+
"No Selection": "Нічого не вибрано",
|
|
2331
|
+
"Draw & finalize a crop first.": "Спочатку виділіть область обрізки.",
|
|
2332
|
+
"Apply failed": "Застосування не вдалося",
|
|
2333
|
+
"Invalid crop bounds.": "Некоректні межі обрізки.",
|
|
2334
|
+
"Batch Processing": "Пакетна обробка",
|
|
2335
|
+
},
|
|
2336
|
+
"ImagePeekerDialogPro": {
|
|
2337
|
+
"Image Peeker": "Інспектор зображення",
|
|
2338
|
+
"Grid parameters": "Параметри сітки",
|
|
2339
|
+
"Grid size:": "Розмір сітки:",
|
|
2340
|
+
"Panel size:": "Розмір панелі:",
|
|
2341
|
+
"Separation:": "Розділення:",
|
|
2342
|
+
"Pixel size (µm):": "Розмір пікселя (мкм):",
|
|
2343
|
+
"Focal length (mm):": "Фокус (мм):",
|
|
2344
|
+
"Aperture (mm):": "Апертура (мм):",
|
|
2345
|
+
"Analysis:": "Аналіз:",
|
|
2346
|
+
"None": "Нічого",
|
|
2347
|
+
"Tilt Analysis": "Аналіз нахилу",
|
|
2348
|
+
"Focal Plane Analysis": "Аналіз фокальної площини",
|
|
2349
|
+
"Astrometric Distortion Analysis": "Аналіз астрометричної дисторсії",
|
|
2350
|
+
"Save Settings && Exit": "Зберегти та вийти",
|
|
2351
|
+
"Exit without Saving": "Вийти без збереження",
|
|
2352
|
+
"Processing…": "Обробка…",
|
|
2353
|
+
"Running {0}…": "Запуск {0}…",
|
|
2354
|
+
"Sensor Tilt (µm)": "Нахил сенсора (мкм)",
|
|
2355
|
+
"FWHM Heatmap": "Теплокарта FWHM",
|
|
2356
|
+
"Eccentricity Map": "Карта ексцентриситету",
|
|
2357
|
+
"Orientation Map": "Карта орієнтації",
|
|
2358
|
+
"Plate Solve": "Plate Solve",
|
|
2359
|
+
"ASTAP/Astrometry failed:\n{0}": "Помилка ASTAP/Astrometry:\n{0}",
|
|
2360
|
+
"WCS Error": "Помилка WCS",
|
|
2361
|
+
"Plate solve did not produce a readable WCS header.": "Plate solve не створив зчитуваний заголовок WCS.",
|
|
2362
|
+
"No Distortion Model": "Немає моделі дисторсії",
|
|
2363
|
+
"This image has a valid WCS, but no SIP distortion terms...": "Зображення має дійсний WCS, але не має параметрів дисторсії SIP... Вирішіть координати з увімкненою корекцією в ASTAP.",
|
|
2364
|
+
"Cannot determine pixel scale.": "Не вдалося визначити масштаб пікселя.",
|
|
2365
|
+
"Choose separation color": "Вибрати колір розділення",
|
|
2366
|
+
"No image": "Немає зображення",
|
|
2367
|
+
"No image loaded to peek at!": "Немає зображення для інспекції!",
|
|
2368
|
+
},
|
|
2369
|
+
"PlateSolver": {
|
|
2370
|
+
"Plate Solving": "Вирішення координат",
|
|
2371
|
+
"Starting…": "Запуск…",
|
|
2372
|
+
"Hide": "Приховати",
|
|
2373
|
+
"Status:": "Статус:",
|
|
2374
|
+
"Status: process timed out.": "Статус: тайм-аут процесу.",
|
|
2375
|
+
"Status: process did not exit normally.": "Статус: процес завершився некоректно.",
|
|
2376
|
+
"Status: {0} retry {1}/{2}…": "Статус: {0} спроба {1}/{2}…",
|
|
2377
|
+
"Status: Downloading WCS file (with SIP) from Astrometry.net…": "Статус: Завантаження файлу WCS (з SIP) з Astrometry.net…",
|
|
2378
|
+
"solve-field returned no header.": "solve-field не повернув заголовок.",
|
|
2379
|
+
"requests not available for astrometry.net API.": "модуль requests недоступний для API Astrometry.net.",
|
|
2380
|
+
"Status: Preparing full-res 16-bit FITS for web solve…": "Статус: Підготовка 16-біт FITS для веб-вирішення…",
|
|
2381
|
+
"Temp FITS for web upload is empty/tiny ({0} bytes).": "Тимчасовий FITS порожній ({0} байт).",
|
|
2382
|
+
"Astrometry.net login failed.": "Помилка входу в Astrometry.net.",
|
|
2383
|
+
"Astrometry.net upload failed.": "Помилка завантаження в Astrometry.net.",
|
|
2384
|
+
"Astrometry.net job ID not received in time.": "ID завдання не отримано вчасно.",
|
|
2385
|
+
"Astrometry.net calibration not received in time.": "Калібрування не отримано вчасно.",
|
|
2386
|
+
"Status: Building WCS header from calibration…": "Статус: Створення заголовка WCS з калібрування…",
|
|
2387
|
+
"Status: Solving with ASTAP…": "Статус: Вирішення в ASTAP…",
|
|
2388
|
+
"Status: Solved with ASTAP.": "Статус: Вирішено в ASTAP.",
|
|
2389
|
+
"Status: ASTAP failed ({0}). Falling back to Astrometry.net…": "Статус: Помилка ASTAP ({0}). Перехід до Astrometry.net…",
|
|
2390
|
+
"Status: Solved via Astrometry.net.": "Статус: Вирішено через Astrometry.net.",
|
|
2391
|
+
"Status: Astrometry.net failed ({0}).": "Статус: Помилка Astrometry.net ({0}).",
|
|
2392
|
+
},
|
|
2393
|
+
"BlinkComparatorPro": {
|
|
2394
|
+
"Blink Comparator": "Компаратор Blink",
|
|
2395
|
+
},
|
|
2396
|
+
"BlinkTab": {
|
|
2397
|
+
"Press 'F' to flag/unflag an image.\nRight-click on an image for more options.": "Натисніть 'F' щоб позначити/зняти позначку.\nПКМ на зображенні для опцій.",
|
|
2398
|
+
"Select Images": "Вибрати зображення",
|
|
2399
|
+
"Select Directory": "Вибрати папку",
|
|
2400
|
+
"Add Additional": "Додати ще",
|
|
2401
|
+
"Show Metrics": "Показати метрики",
|
|
2402
|
+
"→ Stacking: Lights": "→ Складання: Лайти",
|
|
2403
|
+
"Send selected (or all) blink files to the Stacking Suite → Light tab": "Надіслати вибрані (або всі) файли Blink у вкладку Light",
|
|
2404
|
+
"→ Stacking: Integration": "→ Складання: Інтеграція",
|
|
2405
|
+
"Send selected (or all) blink files to the Stacking Suite → Image Integration tab": "Надіслати вибрані (або всі) файли Blink у вкладку Інтеграція",
|
|
2406
|
+
"Speed:": "Швидкість:",
|
|
2407
|
+
"Playback speed (0.1–10.0 fps)": "Швидкість відтворення (0.1–10.0 кадр/сек)",
|
|
2408
|
+
"Export Video…": "Експорт відео…",
|
|
2409
|
+
"Image Files": "Файли зображень",
|
|
2410
|
+
"Clear Flags": "Очистити позначки",
|
|
2411
|
+
"Clear Images": "Очистити зображення",
|
|
2412
|
+
"Loading images...": "Завантаження зображень...",
|
|
2413
|
+
"Aggressive Stretch": "Агресивний стретч",
|
|
2414
|
+
"There are no images to send.": "Немає зображень для відправки.",
|
|
2415
|
+
"Load images before exporting.": "Завантажте зображення перед експортом.",
|
|
2416
|
+
"No individual frames selected.": "Жодного окремого кадру не вибрано.",
|
|
2417
|
+
"Nothing to export.": "Нічого експортувати.",
|
|
2418
|
+
"Only one frame": "Тільки один кадр",
|
|
2419
|
+
"You're about to export a video with a single frame. Continue?": "Ви збираєтеся експортувати відео з одного кадру. Продовжити?",
|
|
2420
|
+
"Export Blink Video": "Експортувати відео Blink",
|
|
2421
|
+
"No compatible video codec found.\n\nTip: install FFmpeg or `pip install imageio[ffmpeg]` for a portable fallback.": "Сумісний відеокодек не знайдено.\n\nПорада: встановіть FFmpeg або `pip install imageio[ffmpeg]`.",
|
|
2422
|
+
},
|
|
2423
|
+
"MetricsPanel": {
|
|
2424
|
+
"FWHM (px)": "FWHM (px)",
|
|
2425
|
+
"Eccentricity": "Ексцентриситет",
|
|
2426
|
+
"Background": "Фон",
|
|
2427
|
+
"Star Count": "Кількість зірок",
|
|
2428
|
+
"Heads-up": "Увага",
|
|
2429
|
+
"This is going to use ALL your CPU cores and the UI may lock up until it finishes.\n\nContinue?": "Це задіє ВСІ ядра процесора, інтерфейс може зависнути до завершення.\n\nПродовжити?",
|
|
2430
|
+
"Don't show again": "Більше не показувати",
|
|
2431
|
+
"Computing frame metrics…": "Обчислення метрик…",
|
|
2432
|
+
},
|
|
2433
|
+
"MetricsWindow": {
|
|
2434
|
+
"Frame Metrics": "Метрики кадру",
|
|
2435
|
+
"Instructions:\n • Use the filter dropdown to restrict by FILTER.\n • Click a dot to flag/unflag a frame.\n • Shift-click a dot to preview the image.\n • Drag the red lines to set thresholds.": "Інструкції:\n • Фільтруйте за FILTER.\n • Клік на точку — позначити.\n • Shift+клік — перегляд.\n • Тягніть червоні лінії для порогів.",
|
|
2436
|
+
"Flagged Items {0}/{1} ({2:.1f}%)": "Позначено {0}/{1} ({2:.1f}%)",
|
|
2437
|
+
"All": "Всі",
|
|
2438
|
+
},
|
|
2439
|
+
"SaspViewer": {
|
|
2440
|
+
"SASP Viewer (Pickles + RGB Responses)": "SASP Viewer (Зірки + RGB відгук)",
|
|
2441
|
+
"Star Template:": "Шаблон зірки:",
|
|
2442
|
+
"R-Filter:": "R-фільтр:",
|
|
2443
|
+
"G-Filter:": "G-фільтр:",
|
|
2444
|
+
"B-Filter:": "B-фільтр:",
|
|
2445
|
+
"LP/Cut Filter1:": "LP/Cut фільтр 1:",
|
|
2446
|
+
"LP/Cut Filter2:": "LP/Cut фільтр 2:",
|
|
2447
|
+
"Sensor (QE):": "Сенсор (QE):",
|
|
2448
|
+
"Plot": "Графік",
|
|
2449
|
+
"No channels selected": "Канали не вибрані",
|
|
2450
|
+
"{0} Response": "Відгук {0}",
|
|
2451
|
+
"Wavelength (Å)": "Довжина хвилі (Å)",
|
|
2452
|
+
"Flux (erg s⁻¹ cm⁻² Å⁻¹)": "Потік (erg s⁻¹ cm⁻² Å⁻¹)",
|
|
2453
|
+
"Relative Throughput": "Відносна пропускна здатність",
|
|
2454
|
+
"R filter×QE": "Фільтр R × QE",
|
|
2455
|
+
"G filter×QE": "Фільтр G × QE",
|
|
2456
|
+
"B filter×QE": "Фільтр B × QE",
|
|
2457
|
+
},
|
|
2458
|
+
"SFCCDialog": {
|
|
2459
|
+
"Spectral Flux Color Calibration": "Калібрування кольору за спектральним потоком (SFCC)",
|
|
2460
|
+
"Orientation: N/A": "Орієнтація: Н/Д",
|
|
2461
|
+
"Step 1: Fetch Stars from Current View": "Крок 1: Отримати зірки з поточного вікна",
|
|
2462
|
+
"Open SASP Viewer": "Відкрити SASP Viewer",
|
|
2463
|
+
"Select White Reference:": "Вибрати еталон білого:",
|
|
2464
|
+
"Vega (A0V)": "Вега (A0V)",
|
|
2465
|
+
"R Filter:": "R-фільтр:",
|
|
2466
|
+
"G Filter:": "G-фільтр:",
|
|
2467
|
+
"B Filter:": "B-фільтр:",
|
|
2468
|
+
"Sensor (QE):": "Сенсор (QE):",
|
|
2469
|
+
"LP/Cut Filter1:": "LP/Cut фільтр 1:",
|
|
2470
|
+
"LP/Cut Filter2:": "LP/Cut фільтр 2:",
|
|
2471
|
+
"Step 2: Run Color Calibration": "Крок 2: Запустити калібрування кольору",
|
|
2472
|
+
"Background Neutralization": "Нейтралізація фону",
|
|
2473
|
+
"Run Gradient Extraction (Beta)": "Видалення градієнта (Beta)",
|
|
2474
|
+
"Star detect σ:": "σ виявлення зірок:",
|
|
2475
|
+
"Add Custom Filter/Sensor Curve…": "Додати власну криву фільтра/сенсора…",
|
|
2476
|
+
"Remove Filter/Sensor Curve…": "Видалити криву фільтра/сенсора…",
|
|
2477
|
+
"Close": "Закрити",
|
|
2478
|
+
"Reset View/Close": "Скинути вигляд/Закрити",
|
|
2479
|
+
"Click 3 points, then close": "Клікніть 3 точки, потім закрийте",
|
|
2480
|
+
"Need exactly three clicks for calibration.": "Для калібрування потрібно рівно три кліки.",
|
|
2481
|
+
"Curve Name": "Назва кривої",
|
|
2482
|
+
"Enter curve name (EXTNAME):": "Введіть назву (EXTNAME):",
|
|
2483
|
+
"Channel": "Канал",
|
|
2484
|
+
"Enter channel (R,G,B or Q for sensor):": "Введіть канал (R,G,B або Q для сенсора):",
|
|
2485
|
+
"Add Custom Curve": "Додати власну криву",
|
|
2486
|
+
"Choose how to add the curve:": "Виберіть спосіб додавання:",
|
|
2487
|
+
"Import CSV": "Імпорт CSV",
|
|
2488
|
+
"Digitize Image": "Оцифрувати зображення",
|
|
2489
|
+
"Select 2-column CSV (λ_nm, response)": "Виберіть 2-колонковий CSV (довжина_хвилі, відгук)",
|
|
2490
|
+
"CSV Error": "Помилка CSV",
|
|
2491
|
+
"Could not read CSV:\n{0}": "Не вдалося прочитати CSV:\n{0}",
|
|
2492
|
+
"Done": "Готово",
|
|
2493
|
+
"CSV curve '{0}' added.": "Крива '{0}' додана з CSV.",
|
|
2494
|
+
"Select Curve Image to Digitize": "Виберіть зображення кривої для оцифрування",
|
|
2495
|
+
"Error": "Помилка",
|
|
2496
|
+
"Could not load image:\n{0}": "Не вдалося завантажити зображення:\n{0}",
|
|
2497
|
+
"Digitization Error": "Помилка оцифрування",
|
|
2498
|
+
"λ_min": "λ_min",
|
|
2499
|
+
"Enter λ_min (in nm):": "Введіть λ_min (в нм):",
|
|
2500
|
+
"λ_max": "λ_max",
|
|
2501
|
+
"Enter λ_max (in nm):": "Введіть λ_max (в нм):",
|
|
2502
|
+
"Input Error": "Помилка вводу",
|
|
2503
|
+
"λ_min and λ_max must be numbers.": "λ_min та λ_max мають бути числами.",
|
|
2504
|
+
"Extraction Error": "Помилка витягування",
|
|
2505
|
+
"Interpolation Error": "Помилка інтерполяції",
|
|
2506
|
+
"Added curve '{0}'.": "Крива '{0}' додана.",
|
|
2507
|
+
"Remove Curve": "Видалити криву",
|
|
2508
|
+
"No custom curves to remove.": "Немає власних кривих для видалення.",
|
|
2509
|
+
"Select a FILTER or SENSOR curve to delete:": "Виберіть криву фільтра або сенсора для видалення:",
|
|
2510
|
+
"Confirm Deletion": "Підтвердити видалення",
|
|
2511
|
+
"Delete '{0}'?": "Видалити '{0}'?",
|
|
2512
|
+
"Removed": "Видалено",
|
|
2513
|
+
"Deleted curve '{0}'.": "Крива '{0}' видалена.",
|
|
2514
|
+
},
|
|
2515
|
+
"ImagePreviewWindow": {
|
|
2516
|
+
"Fit": "Вписати",
|
|
2517
|
+
"1:1": "1:1",
|
|
2518
|
+
"Zoom In": "Збільшити",
|
|
2519
|
+
"Zoom Out": "Зменшити",
|
|
2520
|
+
"Push to New View": "Створити нове вікно",
|
|
2521
|
+
"Pushed": "Надіслано",
|
|
2522
|
+
"New View Created.": "Нове вікно створено.",
|
|
2523
|
+
},
|
|
2524
|
+
"SupernovaAsteroidHunterDialog": {
|
|
2525
|
+
"Supernova / Asteroid Hunter": "Пошук наднових та астероїдів",
|
|
2526
|
+
"Select the reference image and search images. Then click Process to hunt for anomalies.": "Виберіть еталонне зображення та кадри для пошуку. Натисніть «Обробити».",
|
|
2527
|
+
"No reference image selected": "Еталонне зображення не вибрано",
|
|
2528
|
+
"Select Reference Image": "Вибрати еталонне зображення",
|
|
2529
|
+
"Select Search Images": "Вибрати кадри для пошуку",
|
|
2530
|
+
"Apply Cosmetic Correction before Preprocessing": "Косметична корекція перед обробкою",
|
|
2531
|
+
"Anomaly Detection Threshold: 0.10": "Поріг виявлення аномалій: 0.10",
|
|
2532
|
+
"Process (Cosmetic Correction, Preprocess, and Search)": "Обробити (Корекція, Обробка та Пошук)",
|
|
2533
|
+
"Preprocessing progress: 0 / 0": "Прогрес попередньої обробки: 0 / 0",
|
|
2534
|
+
"Processing progress: 0 / 0": "Прогрес обробки: 0 / 0",
|
|
2535
|
+
"Status: Idle": "Статус: Очікування",
|
|
2536
|
+
"New Instance": "Новий екземпляр",
|
|
2537
|
+
"Anomaly Detection Threshold: {0:.2f}": "Поріг виявлення: {0:.2f}",
|
|
2538
|
+
"Process started...": "Процес запущено...",
|
|
2539
|
+
"Running Cosmetic Correction...": "Виконання косметичної корекції...",
|
|
2540
|
+
"Preprocessing images...": "Попередня обробка кадрів...",
|
|
2541
|
+
"Analyzing anomalies...": "Аналіз аномалій...",
|
|
2542
|
+
"Process complete.": "Процес завершено.",
|
|
2543
|
+
"Cosmetic Correction: {0}/{1} => {2}": "Корекція: {0}/{1} => {2}",
|
|
2544
|
+
"Preprocessing reference image...": "Обробка еталона...",
|
|
2545
|
+
"Error": "Помилка",
|
|
2546
|
+
"No reference image selected.": "Еталон не вибрано.",
|
|
2547
|
+
"Preprocessing reference image... Done.": "Обробка еталона... Готово.",
|
|
2548
|
+
"Failed to preprocess reference image: {0}": "Помилка обробки еталона: {0}",
|
|
2549
|
+
"Preprocessing search image {0}/{1} => {2}": "Обробка кадру пошуку {0}/{1} => {2}",
|
|
2550
|
+
"Preprocessing image {0} of {1}... Done.": "Обробка кадру {0} з {1}... Готово.",
|
|
2551
|
+
"All search images preprocessed.": "Всі кадри попередньо оброблені.",
|
|
2552
|
+
"Minor-body Search Limits": "Межі пошуку малих тіл",
|
|
2553
|
+
"Asteroid H ≤": "Астероїд H ≤",
|
|
2554
|
+
"Max asteroid": "Макс. астероїдів",
|
|
2555
|
+
"Comet H ≤": "Комета H ≤",
|
|
2556
|
+
"Max comet": "Макс. комет",
|
|
2557
|
+
"Time offset (hours)": "Зміщення часу (години)",
|
|
2558
|
+
"OK": "OK",
|
|
2559
|
+
"Cancel": "Скасувати",
|
|
2560
|
+
"Minor-body Search": "Пошук малих тіл",
|
|
2561
|
+
"Minor-body prediction failed:\n{0}": "Прогноз малих тіл не вдався:\n{0}",
|
|
2562
|
+
"Minor-body search failed.": "Пошук малих тіл не вдався.",
|
|
2563
|
+
"Minor-body search complete: no catalogued objects in this field for the current magnitude limits.": "Пошук завершено: каталогізованих об'єктів у полі не знайдено.",
|
|
2564
|
+
"No catalogued minor bodies (within the configured magnitude limits) were found in this field.": "Малих тіл у цьому полі не знайдено.",
|
|
2565
|
+
"Minor-body search complete: {0} objects in field.": "Пошук завершено: у полі {0} об'єктів.",
|
|
2566
|
+
"Minor bodies in field have been computed.\n\nRun the anomaly search (Process) to cross-match detections against the predicted objects.": "Малі тіла обчислено. Запустіть «Обробити» для порівняння знахідок з прогнозом.",
|
|
2567
|
+
"No reference image selected.\n\nPlease select a reference image and run Process first.": "Еталон не вибрано. Спочатку виберіть його та натисніть «Обробити».",
|
|
2568
|
+
"Reference image has not been preprocessed yet.\n\nPlease click 'Process' before running the minor-body search.": "Еталон ще не оброблено. Натисніть «Обробити» перед пошуком малих тіл.",
|
|
2569
|
+
"Settings object is not available; cannot locate the minor-body database path.": "Об'єкт налаштувань недоступний; шлях до бази даних не знайдено.",
|
|
2570
|
+
"Minor-body search: preparing catalog query...": "Пошук малих тіл: підготовка запиту до каталогу...",
|
|
2571
|
+
},
|
|
2572
|
+
"WaveScaleHDRDialogPro": {
|
|
2573
|
+
"WaveScale HDR": "WaveScale HDR",
|
|
2574
|
+
"HDR Controls": "Керування HDR",
|
|
2575
|
+
"Number of Scales:": "Кількість масштабів:",
|
|
2576
|
+
"Coarse Compression:": "Грубе стиснення:",
|
|
2577
|
+
"Mask Gamma:": "Гамма маски:",
|
|
2578
|
+
"Preview": "Перегляд",
|
|
2579
|
+
"Show Original": "Показати оригінал",
|
|
2580
|
+
"Zoom In": "Збільшити",
|
|
2581
|
+
"Zoom Out": "Зменшити",
|
|
2582
|
+
"Fit to Preview": "Вписати в перегляд",
|
|
2583
|
+
"Processing Progress": "Прогрес обробки",
|
|
2584
|
+
"Idle": "Очікування",
|
|
2585
|
+
"Apply to Document": "Застосувати до документа",
|
|
2586
|
+
"Reset": "Скинути",
|
|
2587
|
+
"Close": "Закрити",
|
|
2588
|
+
"Show Preview": "Показати перегляд",
|
|
2589
|
+
"A headless HDR run appears to be in progress. This window will remain open; you can still preview safely.": "HDR обробка триває. Вікно залишиться відкритим.",
|
|
2590
|
+
"Processing failed.": "Обробка не вдалася.",
|
|
2591
|
+
"HDR Mask (L × Active Mask)": "Маска HDR (L × активна маска)",
|
|
2592
|
+
"HDR Mask (L-based)": "Маска HDR (за яскравістю)",
|
|
2593
|
+
"Preview ready": "Перегляд готовий",
|
|
2594
|
+
"Failed to write to document:\n{0}": "Не вдалося записати в документ:\n{0}",
|
|
2595
|
+
},
|
|
2596
|
+
"WaveScaleHDRPresetDialog": {
|
|
2597
|
+
"WaveScale HDR — Preset": "WaveScale HDR — Пресет",
|
|
2598
|
+
"Number of Scales:": "Кількість масштабів:",
|
|
2599
|
+
"Coarse Compression:": "Грубе стиснення:",
|
|
2600
|
+
"Mask Gamma:": "Гамма маски:",
|
|
2601
|
+
"Load an image first.": "Спочатку завантажте зображення.",
|
|
2602
|
+
},
|
|
2603
|
+
"HDRWorker": {
|
|
2604
|
+
"Converting to Lab color space…": "Конвертація в Lab простір…",
|
|
2605
|
+
"Decomposing luminance with starlet…": "Розкладання яскравості (starlet)…",
|
|
2606
|
+
"Finalizing…": "Завершення…",
|
|
2607
|
+
},
|
|
2608
|
+
"MaskDisplayWindow": {
|
|
2609
|
+
"HDR Mask (L-based)": "Маска HDR (за яскравістю)",
|
|
2610
|
+
},
|
|
2611
|
+
"WhiteBalanceDialog": {
|
|
2612
|
+
"White Balance": "Баланс білого",
|
|
2613
|
+
"White Balance Type:": "Тип балансу білого:",
|
|
2614
|
+
"Star-Based": "За зірками",
|
|
2615
|
+
"Manual": "Вручну",
|
|
2616
|
+
"Auto": "Авто",
|
|
2617
|
+
"Manual Gains": "Ручне посилення",
|
|
2618
|
+
"Red gain:": "Посилення червоного:",
|
|
2619
|
+
"Green gain:": "Посилення зеленого:",
|
|
2620
|
+
"Blue gain:": "Посилення синього:",
|
|
2621
|
+
"Star-Based Settings": "Налаштування за зірками",
|
|
2622
|
+
"Detection threshold (σ):": "Поріг виявлення (σ):",
|
|
2623
|
+
"Reuse cached star detections": "Використати кеш виявлення зірок",
|
|
2624
|
+
"Autostretch overlay preview": "Перегляд з авто-стретчем",
|
|
2625
|
+
"Detecting stars...": "Виявлення зірок...",
|
|
2626
|
+
"Detected {0} stars.": "Знайдено {0} зірок.",
|
|
2627
|
+
"Detection failed.": "Помилка виявлення.",
|
|
2628
|
+
"Apply": "Застосувати",
|
|
2629
|
+
"Cancel": "Скасувати",
|
|
2630
|
+
"Star-Based WB applied.\nDetected {0} stars.": "Баланс за зірками застосовано. Знайдено {0} зірок.",
|
|
2631
|
+
"Failed to apply White Balance:\n{0}": "Помилка балансу білого:\n{0}",
|
|
2632
|
+
},
|
|
2633
|
+
"WaveScaleDarkEnhancerDialogPro": {
|
|
2634
|
+
"Dark Mask": "Темна маска",
|
|
2635
|
+
"WaveScale Dark Enhancer": "WaveScale Dark Enhancer",
|
|
2636
|
+
"Dark Enhancer Controls": "Керування підсиленням тіней",
|
|
2637
|
+
"Number of Scales:": "Кількість масштабів:",
|
|
2638
|
+
"Boost Factor:": "Фактор підсилення:",
|
|
2639
|
+
"Mask Gamma:": "Гамма маски:",
|
|
2640
|
+
"Iterations:": "Ітерації:",
|
|
2641
|
+
"Preview": "Перегляд",
|
|
2642
|
+
"Show Original": "Показати оригінал",
|
|
2643
|
+
"Show Preview": "Показати перегляд",
|
|
2644
|
+
"Progress": "Прогрес",
|
|
2645
|
+
"Idle": "Очікування",
|
|
2646
|
+
"Apply to Document": "Застосувати до документа",
|
|
2647
|
+
"Reset": "Скинути",
|
|
2648
|
+
"Close": "Закрити",
|
|
2649
|
+
"Zoom Controls": "Керування зумом",
|
|
2650
|
+
"Zoom In": "Збільшити",
|
|
2651
|
+
"Zoom Out": "Зменшити",
|
|
2652
|
+
"Fit to Preview": "Вписати в перегляд",
|
|
2653
|
+
"Dark Mask (Algo × Active Mask)": "Темна маска (алго × активна маска)",
|
|
2654
|
+
"Analyzing dark structure…": "Аналіз темних структур…",
|
|
2655
|
+
"Finalizing…": "Завершення…",
|
|
2656
|
+
"Processing failed.": "Обробка не вдалася.",
|
|
2657
|
+
"Preview ready": "Перегляд готовий",
|
|
2658
|
+
"Failed to write to document:\n{0}": "Не вдалося записати в документ:\n{0}",
|
|
2659
|
+
"No active image.": "Немає активного зображення.",
|
|
2660
|
+
},
|
|
2661
|
+
"WaveScaleDSEPresetDialog": {
|
|
2662
|
+
"WaveScale Dark Enhancer — Preset": "WaveScale Dark Enhancer — Пресет",
|
|
2663
|
+
"Number of Scales:": "Кількість масштабів:",
|
|
2664
|
+
"Boost Factor:": "Фактор підсилення:",
|
|
2665
|
+
"Mask Gamma:": "Гамма маски:",
|
|
2666
|
+
"Iterations:": "Ітерації:",
|
|
2667
|
+
"WaveScale Dark Enhancer": "WaveScale Dark Enhancer",
|
|
2668
|
+
"Load an image first.": "Спочатку завантажте зображення.",
|
|
2669
|
+
"Failed to write to document:\n{0}": "Не вдалося записати в документ:\n{0}",
|
|
2670
|
+
},
|
|
2671
|
+
}
|
|
2672
|
+
}
|
|
2673
|
+
|
|
2674
|
+
# Common translations shared across all contexts
|
|
2675
|
+
COMMON_TRANSLATIONS = {
|
|
2676
|
+
"it": {
|
|
2677
|
+
"Apply": "Applica",
|
|
2678
|
+
"Cancel": "Annulla",
|
|
2679
|
+
"Close": "Chiudi",
|
|
2680
|
+
"OK": "OK",
|
|
2681
|
+
"Yes": "Sì",
|
|
2682
|
+
"No": "No",
|
|
2683
|
+
"Save": "Salva",
|
|
2684
|
+
"Save As...": "Salva come...",
|
|
2685
|
+
"Open...": "Apri...",
|
|
2686
|
+
"Browse...": "Sfoglia...",
|
|
2687
|
+
"Reset": "Ripristina",
|
|
2688
|
+
"Clear": "Cancella",
|
|
2689
|
+
"Delete": "Elimina",
|
|
2690
|
+
"Add": "Aggiungi",
|
|
2691
|
+
"Remove": "Rimuovi",
|
|
2692
|
+
"Preview": "Anteprima",
|
|
2693
|
+
"Apply to Document": "Applica al documento",
|
|
2694
|
+
"Zoom In": "Ingrandisci",
|
|
2695
|
+
"Zoom Out": "Riduci",
|
|
2696
|
+
"Fit to Preview": "Adatta all'anteprima",
|
|
2697
|
+
"Show Original": "Mostra originale",
|
|
2698
|
+
"Run": "Esegui",
|
|
2699
|
+
"Stop": "Ferma",
|
|
2700
|
+
"Export": "Esporta",
|
|
2701
|
+
"Import": "Importa",
|
|
2702
|
+
"Error": "Errore",
|
|
2703
|
+
"Warning": "Attenzione",
|
|
2704
|
+
"Information": "Informazione",
|
|
2705
|
+
"Confirm": "Conferma",
|
|
2706
|
+
"Success": "Completato",
|
|
2707
|
+
"Processing...": "Elaborazione...",
|
|
2708
|
+
"Please wait": "Attendere prego",
|
|
2709
|
+
"No image loaded.": "Nessuna immagine caricata.",
|
|
2710
|
+
"No active image.": "Nessuna immagine attiva.",
|
|
2711
|
+
"Load an image first.": "Caricare prima un'immagine.",
|
|
2712
|
+
"Processing failed.": "Elaborazione fallita.",
|
|
2713
|
+
"Operation complete.": "Operazione completata.",
|
|
2714
|
+
"Are you sure?": "Sei sicuro?",
|
|
2715
|
+
"You have unsaved changes.": "Hai modifiche non salvate.",
|
|
2716
|
+
"Do you really want to exit?": "Vuoi davvero uscire?",
|
|
2717
|
+
"Select": "Seleziona",
|
|
2718
|
+
"Select All": "Seleziona tutto",
|
|
2719
|
+
"Deselect All": "Deseleziona tutto",
|
|
2720
|
+
"Settings": "Impostazioni",
|
|
2721
|
+
"Help": "Aiuto",
|
|
2722
|
+
"About": "Informazioni",
|
|
2723
|
+
},
|
|
2724
|
+
"fr": {
|
|
2725
|
+
"Apply": "Appliquer",
|
|
2726
|
+
"Cancel": "Annuler",
|
|
2727
|
+
"Close": "Fermer",
|
|
2728
|
+
"OK": "OK",
|
|
2729
|
+
"Yes": "Oui",
|
|
2730
|
+
"No": "Non",
|
|
2731
|
+
"Save": "Enregistrer",
|
|
2732
|
+
"Save As...": "Enregistrer sous...",
|
|
2733
|
+
"Open...": "Ouvrir...",
|
|
2734
|
+
"Browse...": "Parcourir...",
|
|
2735
|
+
"Reset": "Réinitialiser",
|
|
2736
|
+
"Clear": "Effacer",
|
|
2737
|
+
"Delete": "Supprimer",
|
|
2738
|
+
"Add": "Ajouter",
|
|
2739
|
+
"Remove": "Supprimer",
|
|
2740
|
+
"Preview": "Aperçu",
|
|
2741
|
+
"Apply to Document": "Appliquer au document",
|
|
2742
|
+
"Zoom In": "Zoom avant",
|
|
2743
|
+
"Zoom Out": "Zoom arrière",
|
|
2744
|
+
"Fit to Preview": "Ajuster à l'aperçu",
|
|
2745
|
+
"Show Original": "Afficher l'original",
|
|
2746
|
+
"Run": "Exécuter",
|
|
2747
|
+
"Stop": "Arrêter",
|
|
2748
|
+
"Export": "Exporter",
|
|
2749
|
+
"Import": "Importer",
|
|
2750
|
+
"Error": "Erreur",
|
|
2751
|
+
"Warning": "Avertissement",
|
|
2752
|
+
"Information": "Information",
|
|
2753
|
+
"Confirm": "Confirmer",
|
|
2754
|
+
"Success": "Terminé",
|
|
2755
|
+
"Processing...": "Traitement...",
|
|
2756
|
+
"Please wait": "Veuillez patienter",
|
|
2757
|
+
"No image loaded.": "Aucune image chargée.",
|
|
2758
|
+
"No active image.": "Aucune image active.",
|
|
2759
|
+
"Load an image first.": "Chargez d'abord une image.",
|
|
2760
|
+
"Processing failed.": "Échec du traitement.",
|
|
2761
|
+
"Operation complete.": "Opération terminée.",
|
|
2762
|
+
"Are you sure?": "Êtes-vous sûr ?",
|
|
2763
|
+
"You have unsaved changes.": "Vous avez des modifications non enregistrées.",
|
|
2764
|
+
"Do you really want to exit?": "Voulez-vous vraiment quitter ?",
|
|
2765
|
+
"Select": "Sélectionner",
|
|
2766
|
+
"Select All": "Tout sélectionner",
|
|
2767
|
+
"Deselect All": "Tout désélectionner",
|
|
2768
|
+
"Settings": "Paramètres",
|
|
2769
|
+
"Help": "Aide",
|
|
2770
|
+
"About": "À propos",
|
|
2771
|
+
},
|
|
2772
|
+
"es": {
|
|
2773
|
+
"Apply": "Aplicar",
|
|
2774
|
+
"Cancel": "Cancelar",
|
|
2775
|
+
"Close": "Cerrar",
|
|
2776
|
+
"OK": "OK",
|
|
2777
|
+
"Yes": "Sí",
|
|
2778
|
+
"No": "No",
|
|
2779
|
+
"Save": "Guardar",
|
|
2780
|
+
"Save As...": "Guardar como...",
|
|
2781
|
+
"Open...": "Abrir...",
|
|
2782
|
+
"Browse...": "Examinar...",
|
|
2783
|
+
"Reset": "Restablecer",
|
|
2784
|
+
"Clear": "Borrar",
|
|
2785
|
+
"Delete": "Eliminar",
|
|
2786
|
+
"Add": "Añadir",
|
|
2787
|
+
"Remove": "Eliminar",
|
|
2788
|
+
"Preview": "Vista previa",
|
|
2789
|
+
"Apply to Document": "Aplicar al documento",
|
|
2790
|
+
"Zoom In": "Acercar",
|
|
2791
|
+
"Zoom Out": "Alejar",
|
|
2792
|
+
"Fit to Preview": "Ajustar a vista previa",
|
|
2793
|
+
"Show Original": "Mostrar original",
|
|
2794
|
+
"Run": "Ejecutar",
|
|
2795
|
+
"Stop": "Detener",
|
|
2796
|
+
"Export": "Exportar",
|
|
2797
|
+
"Import": "Importar",
|
|
2798
|
+
"Error": "Error",
|
|
2799
|
+
"Warning": "Advertencia",
|
|
2800
|
+
"Information": "Información",
|
|
2801
|
+
"Confirm": "Confirmar",
|
|
2802
|
+
"Success": "Completado",
|
|
2803
|
+
"Processing...": "Procesando...",
|
|
2804
|
+
"Please wait": "Por favor espere",
|
|
2805
|
+
"No image loaded.": "Ninguna imagen cargada.",
|
|
2806
|
+
"No active image.": "Ninguna imagen activa.",
|
|
2807
|
+
"Load an image first.": "Cargue primero una imagen.",
|
|
2808
|
+
"Processing failed.": "Procesamiento fallido.",
|
|
2809
|
+
"Operation complete.": "Operación completada.",
|
|
2810
|
+
"Are you sure?": "¿Está seguro?",
|
|
2811
|
+
"You have unsaved changes.": "Tiene cambios sin guardar.",
|
|
2812
|
+
"Do you really want to exit?": "¿Realmente quiere salir?",
|
|
2813
|
+
"Select": "Seleccionar",
|
|
2814
|
+
"Select All": "Seleccionar todo",
|
|
2815
|
+
"Deselect All": "Deseleccionar todo",
|
|
2816
|
+
"Settings": "Configuración",
|
|
2817
|
+
"Help": "Ayuda",
|
|
2818
|
+
"About": "Acerca de",
|
|
2819
|
+
},
|
|
2820
|
+
"uk": {
|
|
2821
|
+
"Apply": "Застосувати",
|
|
2822
|
+
"Cancel": "Скасувати",
|
|
2823
|
+
"Close": "Закрити",
|
|
2824
|
+
"OK": "OK",
|
|
2825
|
+
"Yes": "Так",
|
|
2826
|
+
"No": "Ні",
|
|
2827
|
+
"Save": "Зберегти",
|
|
2828
|
+
"Save As...": "Зберегти як...",
|
|
2829
|
+
"Open...": "Відкрити...",
|
|
2830
|
+
"Browse...": "Огляд...",
|
|
2831
|
+
"Reset": "Скинути",
|
|
2832
|
+
"Clear": "Очистити",
|
|
2833
|
+
"Delete": "Видалити",
|
|
2834
|
+
"Add": "Додати",
|
|
2835
|
+
"Remove": "Вилучити",
|
|
2836
|
+
"Preview": "Перегляд",
|
|
2837
|
+
"Apply to Document": "Застосувати до документа",
|
|
2838
|
+
"Zoom In": "Збільшити",
|
|
2839
|
+
"Zoom Out": "Зменшити",
|
|
2840
|
+
"Fit to Preview": "Вписати в перегляд",
|
|
2841
|
+
"Show Original": "Показати оригінал",
|
|
2842
|
+
"Run": "Запустити",
|
|
2843
|
+
"Stop": "Зупинити",
|
|
2844
|
+
"Export": "Експорт",
|
|
2845
|
+
"Import": "Імпорт",
|
|
2846
|
+
"Error": "Помилка",
|
|
2847
|
+
"Warning": "Попередження",
|
|
2848
|
+
"Information": "Інформація",
|
|
2849
|
+
"Confirm": "Підтвердити",
|
|
2850
|
+
"Success": "Виконано",
|
|
2851
|
+
"Processing...": "Обробка...",
|
|
2852
|
+
"Please wait": "Будь ласка, зачекайте",
|
|
2853
|
+
"No image loaded.": "Зображення не завантажено.",
|
|
2854
|
+
"No active image.": "Немає активного зображення.",
|
|
2855
|
+
"Load an image first.": "Спочатку завантажте зображення.",
|
|
2856
|
+
"Processing failed.": "Обробка не вдалася.",
|
|
2857
|
+
"Operation complete.": "Операцію завершено.",
|
|
2858
|
+
"Are you sure?": "Ви впевнені?",
|
|
2859
|
+
"You have unsaved changes.": "У вас є незбережені зміни.",
|
|
2860
|
+
"Do you really want to exit?": "Ви дійсно хочете вийти?",
|
|
2861
|
+
"Select": "Вибрати",
|
|
2862
|
+
"Select All": "Вибрати все",
|
|
2863
|
+
"Deselect All": "Зняти вибір з усіх",
|
|
2864
|
+
"Settings": "Налаштування",
|
|
2865
|
+
"Help": "Довідка",
|
|
2866
|
+
"About": "Про програму",
|
|
2867
|
+
}
|
|
2868
|
+
}
|
|
2869
|
+
|
|
2870
|
+
def escape_xml(s):
|
|
2871
|
+
"""Escape special XML characters."""
|
|
2872
|
+
return s.replace("&", "&").replace("<", "<").replace(">", ">")
|
|
2873
|
+
|
|
2874
|
+
def generate_ts(lang_code, lang_data, language_code):
|
|
2875
|
+
"""Generate a .ts file content."""
|
|
2876
|
+
lines = [
|
|
2877
|
+
'<?xml version="1.0" encoding="utf-8"?>',
|
|
2878
|
+
'<!DOCTYPE TS>',
|
|
2879
|
+
f'<TS version="2.1" language="{language_code}">',
|
|
2880
|
+
]
|
|
2881
|
+
|
|
2882
|
+
for context_name, messages in lang_data.items():
|
|
2883
|
+
lines.append("<context>")
|
|
2884
|
+
lines.append(f" <name>{context_name}</name>")
|
|
2885
|
+
for source, translation in messages.items():
|
|
2886
|
+
lines.append(" <message>")
|
|
2887
|
+
lines.append(f" <source>{escape_xml(source)}</source>")
|
|
2888
|
+
lines.append(f" <translation>{escape_xml(translation)}</translation>")
|
|
2889
|
+
lines.append(" </message>")
|
|
2890
|
+
lines.append("</context>")
|
|
2891
|
+
|
|
2892
|
+
lines.append("</TS>")
|
|
2893
|
+
return "\n".join(lines)
|
|
2894
|
+
|
|
2895
|
+
def run_lupdate(base_dir, lang_codes):
|
|
2896
|
+
"""Run pylupdate6 to scan source files and update .ts files."""
|
|
2897
|
+
print("Running pylupdate6...")
|
|
2898
|
+
|
|
2899
|
+
trans_dir = os.path.join(base_dir, "translations")
|
|
2900
|
+
os.makedirs(trans_dir, exist_ok=True)
|
|
2901
|
+
|
|
2902
|
+
# Collect all .py source files manually to avoid pylupdate6 scanning non-py files
|
|
2903
|
+
source_files = []
|
|
2904
|
+
for root, dirs, files in os.walk(base_dir):
|
|
2905
|
+
# Skip translations dir and __pycache__
|
|
2906
|
+
if "translations" in dirs:
|
|
2907
|
+
dirs.remove("translations")
|
|
2908
|
+
if "__pycache__" in dirs:
|
|
2909
|
+
dirs.remove("__pycache__")
|
|
2910
|
+
if "_generated" in dirs:
|
|
2911
|
+
dirs.remove("_generated")
|
|
2912
|
+
|
|
2913
|
+
for name in files:
|
|
2914
|
+
if name.endswith(".py") or name.endswith(".ui"):
|
|
2915
|
+
source_files.append(os.path.join(root, name))
|
|
2916
|
+
|
|
2917
|
+
if not source_files:
|
|
2918
|
+
print("No source files found!")
|
|
2919
|
+
return
|
|
2920
|
+
|
|
2921
|
+
for lang in lang_codes:
|
|
2922
|
+
ts_file = os.path.join(trans_dir, f"saspro_{lang}.ts")
|
|
2923
|
+
|
|
2924
|
+
# pylupdate6 -ts <ts_file> [files...]
|
|
2925
|
+
cmd = ["pylupdate6", "--no-obsolete", "-ts", ts_file] + source_files
|
|
2926
|
+
|
|
2927
|
+
try:
|
|
2928
|
+
# Command line might be too long on Windows?
|
|
2929
|
+
# If so, we might need to use an @file list if pylupdate6 supports it, or do it in batches?
|
|
2930
|
+
# pylupdate6 doesn't seem to mention @file support in help, but let's try direct list first.
|
|
2931
|
+
# Windows command limit is 8192 chars.
|
|
2932
|
+
# If we have 132 files, average 60 chars = 8000. It might be close.
|
|
2933
|
+
# Let's check command length.
|
|
2934
|
+
|
|
2935
|
+
subprocess.run(cmd, check=True)
|
|
2936
|
+
print(f"Updated {os.path.basename(ts_file)}")
|
|
2937
|
+
except subprocess.CalledProcessError as e:
|
|
2938
|
+
print(f"Error updating {lang}: {e}")
|
|
2939
|
+
except FileNotFoundError:
|
|
2940
|
+
print("Error: pylupdate6 not found. Ensure PyQt6-WebEngine/dev tools are installed.")
|
|
2941
|
+
return
|
|
2942
|
+
|
|
2943
|
+
def run_lrelease(base_dir, lang_codes):
|
|
2944
|
+
"""Run pyside6-lrelease to compile .ts files into .qm files."""
|
|
2945
|
+
print("Running pyside6-lrelease...")
|
|
2946
|
+
|
|
2947
|
+
trans_dir = os.path.join(base_dir, "translations")
|
|
2948
|
+
|
|
2949
|
+
for lang in lang_codes:
|
|
2950
|
+
ts_file = os.path.join(trans_dir, f"saspro_{lang}.ts")
|
|
2951
|
+
qm_file = os.path.join(trans_dir, f"saspro_{lang}.qm")
|
|
2952
|
+
|
|
2953
|
+
cmd = ["pyside6-lrelease", ts_file, "-qm", qm_file]
|
|
2954
|
+
|
|
2955
|
+
try:
|
|
2956
|
+
subprocess.run(cmd, check=True)
|
|
2957
|
+
print(f"Compiled {os.path.basename(qm_file)}")
|
|
2958
|
+
except subprocess.CalledProcessError as e:
|
|
2959
|
+
print(f"Error compiling {lang}: {e}")
|
|
2960
|
+
except FileNotFoundError:
|
|
2961
|
+
print("Error: pyside6-lrelease not found.")
|
|
2962
|
+
return
|
|
2963
|
+
|
|
2964
|
+
def inject_translations_into_ts(ts_path, lang_data):
|
|
2965
|
+
"""
|
|
2966
|
+
Parse the .ts XML, find <source> tags matching our dict,
|
|
2967
|
+
and fill/overwrite <translation>.
|
|
2968
|
+
"""
|
|
2969
|
+
try:
|
|
2970
|
+
import xml.etree.ElementTree as ET
|
|
2971
|
+
except ImportError:
|
|
2972
|
+
print("Error importing ElementTree")
|
|
2973
|
+
return
|
|
2974
|
+
|
|
2975
|
+
if not os.path.exists(ts_path):
|
|
2976
|
+
print(f"File not found: {ts_path}")
|
|
2977
|
+
return
|
|
2978
|
+
|
|
2979
|
+
tree = ET.parse(ts_path)
|
|
2980
|
+
root = tree.getroot()
|
|
2981
|
+
|
|
2982
|
+
# Map context -> source -> translation from keys
|
|
2983
|
+
# lang_data structure: {Context: {Source: Trans}}
|
|
2984
|
+
# Flatten/normalize for easier lookup if needed, but XML structure is <context><name>...<message><source>
|
|
2985
|
+
|
|
2986
|
+
updated_count = 0
|
|
2987
|
+
|
|
2988
|
+
for context_elem in root.findall("context"):
|
|
2989
|
+
name_elem = context_elem.find("name")
|
|
2990
|
+
if name_elem is None:
|
|
2991
|
+
continue
|
|
2992
|
+
context_name = name_elem.text
|
|
2993
|
+
|
|
2994
|
+
# Check if we have data for this context
|
|
2995
|
+
# We also support "Common" mixed in or special handling?
|
|
2996
|
+
# The original script merged Common into the dict before generating.
|
|
2997
|
+
# We should do the same.
|
|
2998
|
+
|
|
2999
|
+
if context_name not in lang_data:
|
|
3000
|
+
continue
|
|
3001
|
+
|
|
3002
|
+
context_dict = lang_data[context_name]
|
|
3003
|
+
|
|
3004
|
+
for message_elem in context_elem.findall("message"):
|
|
3005
|
+
source_elem = message_elem.find("source")
|
|
3006
|
+
if source_elem is None or source_elem.text is None:
|
|
3007
|
+
continue
|
|
3008
|
+
|
|
3009
|
+
source_text = source_elem.text
|
|
3010
|
+
|
|
3011
|
+
# Look up translation
|
|
3012
|
+
if source_text in context_dict:
|
|
3013
|
+
trans_text = context_dict[source_text]
|
|
3014
|
+
|
|
3015
|
+
# Find or create translation tag
|
|
3016
|
+
trans_elem = message_elem.find("translation")
|
|
3017
|
+
if trans_elem is None:
|
|
3018
|
+
trans_elem = ET.SubElement(message_elem, "translation")
|
|
3019
|
+
|
|
3020
|
+
# If currently type="unfinished", remove that attr?
|
|
3021
|
+
# lupdate marks new strings as type="unfinished" (or no type if empty? usually empty translation)
|
|
3022
|
+
# If we provide a translation, we should remove type="unfinished" if present?
|
|
3023
|
+
# Or just setting text is enough.
|
|
3024
|
+
|
|
3025
|
+
if trans_elem.get("type") == "unfinished":
|
|
3026
|
+
del trans_elem.attrib["type"]
|
|
3027
|
+
|
|
3028
|
+
trans_elem.text = trans_text
|
|
3029
|
+
updated_count += 1
|
|
3030
|
+
|
|
3031
|
+
if updated_count > 0:
|
|
3032
|
+
print(f" Injected {updated_count} translations into {os.path.basename(ts_path)}")
|
|
3033
|
+
tree.write(ts_path, encoding="utf-8", xml_declaration=True)
|
|
3034
|
+
|
|
3035
|
+
def main():
|
|
3036
|
+
"""Generate and update translation files."""
|
|
3037
|
+
base_dir = os.path.dirname(os.path.abspath(__file__))
|
|
3038
|
+
|
|
3039
|
+
lang_codes = {
|
|
3040
|
+
"it": "it_IT",
|
|
3041
|
+
"fr": "fr_FR",
|
|
3042
|
+
"es": "es_ES",
|
|
3043
|
+
"uk": "uk_UA",
|
|
3044
|
+
}
|
|
3045
|
+
|
|
3046
|
+
# 1. Run lupdate to scan code and create/update .ts files structure
|
|
3047
|
+
run_lupdate(base_dir, lang_codes.keys())
|
|
3048
|
+
|
|
3049
|
+
# 2. Inject manual translations from the dictionary
|
|
3050
|
+
trans_dir = os.path.join(base_dir, "translations")
|
|
3051
|
+
|
|
3052
|
+
for lang, data in TRANSLATIONS.items():
|
|
3053
|
+
# Merge Common context translations
|
|
3054
|
+
merged = dict(data)
|
|
3055
|
+
if lang in COMMON_TRANSLATIONS:
|
|
3056
|
+
# We can't just put "Common" Key.
|
|
3057
|
+
# Does the code use a "Common" context?
|
|
3058
|
+
# If the code uses self.tr() inside a class, context is class name.
|
|
3059
|
+
# If the dict has "ToolbarMixin" and that class uses strings, they match.
|
|
3060
|
+
# "Common" keys in COMMON_TRANSLATIONS might be used by various classes.
|
|
3061
|
+
# In the original script, it seems "Common" keys were NOT put under a "Common" context
|
|
3062
|
+
# but maybe mixed in?
|
|
3063
|
+
# Wait, line 555: merged["Common"] = COMMON_TRANSLATIONS[lang]
|
|
3064
|
+
# It created a <context><name>Common</name>...
|
|
3065
|
+
# Does the C++ code / python code use QCoreApplication.translate("Common", "Save")?
|
|
3066
|
+
# Probably not.
|
|
3067
|
+
# If `self.tr("Save")` is called in `MainWindow`, context is `MainWindow`.
|
|
3068
|
+
# If the dict only has "Common": {"Save": "Salva"}, it won't match `MainWindow` context in XML.
|
|
3069
|
+
# Unless we duplicate Common strings into every context?
|
|
3070
|
+
# Or unless the code explicitly uses a "Common" context helper.
|
|
3071
|
+
pass
|
|
3072
|
+
|
|
3073
|
+
# We will iterate over the MERGED dict (Context -> {Src: Tr})
|
|
3074
|
+
# Note: If COMMON_TRANSLATIONS are needed in specific contexts, they must be duplicated or logic changed.
|
|
3075
|
+
# For now, we assume the XML contexts match the keys in TRANSLATIONS.
|
|
3076
|
+
# If "Common" is a context in XML, we inject it.
|
|
3077
|
+
|
|
3078
|
+
target_ts = os.path.join(trans_dir, f"saspro_{lang}.ts")
|
|
3079
|
+
|
|
3080
|
+
# Prepare the data dict for injection
|
|
3081
|
+
injection_data = dict(data)
|
|
3082
|
+
if lang in COMMON_TRANSLATIONS:
|
|
3083
|
+
injection_data["Common"] = COMMON_TRANSLATIONS[lang]
|
|
3084
|
+
|
|
3085
|
+
inject_translations_into_ts(target_ts, injection_data)
|
|
3086
|
+
|
|
3087
|
+
# 3. Run lrelease to compile to .qm
|
|
3088
|
+
run_lrelease(base_dir, lang_codes.keys())
|
|
3089
|
+
|
|
3090
|
+
if __name__ == "__main__":
|
|
3091
|
+
main()
|
|
3092
|
+
|