setiastrosuitepro 1.6.1__py3-none-any.whl → 1.6.2__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.
Files changed (128) hide show
  1. setiastro/images/Background_startup.jpg +0 -0
  2. setiastro/qml/ResourceMonitor.qml +126 -0
  3. setiastro/saspro/__main__.py +159 -23
  4. setiastro/saspro/_generated/build_info.py +2 -1
  5. setiastro/saspro/abe.py +62 -11
  6. setiastro/saspro/aberration_ai.py +3 -3
  7. setiastro/saspro/add_stars.py +5 -2
  8. setiastro/saspro/astrobin_exporter.py +3 -0
  9. setiastro/saspro/astrospike_python.py +3 -1
  10. setiastro/saspro/autostretch.py +4 -2
  11. setiastro/saspro/backgroundneutral.py +52 -10
  12. setiastro/saspro/batch_convert.py +3 -0
  13. setiastro/saspro/batch_renamer.py +3 -0
  14. setiastro/saspro/blemish_blaster.py +3 -0
  15. setiastro/saspro/cheat_sheet.py +50 -15
  16. setiastro/saspro/clahe.py +27 -1
  17. setiastro/saspro/comet_stacking.py +103 -38
  18. setiastro/saspro/convo.py +3 -0
  19. setiastro/saspro/copyastro.py +3 -0
  20. setiastro/saspro/cosmicclarity.py +70 -45
  21. setiastro/saspro/crop_dialog_pro.py +17 -0
  22. setiastro/saspro/curve_editor_pro.py +18 -0
  23. setiastro/saspro/debayer.py +3 -0
  24. setiastro/saspro/doc_manager.py +39 -16
  25. setiastro/saspro/fitsmodifier.py +3 -0
  26. setiastro/saspro/frequency_separation.py +8 -2
  27. setiastro/saspro/function_bundle.py +2 -0
  28. setiastro/saspro/generate_translations.py +715 -1
  29. setiastro/saspro/ghs_dialog_pro.py +3 -0
  30. setiastro/saspro/graxpert.py +3 -0
  31. setiastro/saspro/gui/main_window.py +275 -32
  32. setiastro/saspro/gui/mixins/dock_mixin.py +100 -1
  33. setiastro/saspro/gui/mixins/file_mixin.py +7 -0
  34. setiastro/saspro/gui/mixins/menu_mixin.py +28 -0
  35. setiastro/saspro/gui/statistics_dialog.py +47 -0
  36. setiastro/saspro/halobgon.py +29 -3
  37. setiastro/saspro/histogram.py +3 -0
  38. setiastro/saspro/history_explorer.py +2 -0
  39. setiastro/saspro/i18n.py +22 -10
  40. setiastro/saspro/image_combine.py +3 -0
  41. setiastro/saspro/image_peeker_pro.py +3 -0
  42. setiastro/saspro/imageops/stretch.py +5 -13
  43. setiastro/saspro/isophote.py +3 -0
  44. setiastro/saspro/legacy/numba_utils.py +64 -47
  45. setiastro/saspro/linear_fit.py +3 -0
  46. setiastro/saspro/live_stacking.py +13 -2
  47. setiastro/saspro/mask_creation.py +3 -0
  48. setiastro/saspro/mfdeconv.py +5 -0
  49. setiastro/saspro/morphology.py +30 -5
  50. setiastro/saspro/multiscale_decomp.py +3 -0
  51. setiastro/saspro/nbtorgb_stars.py +12 -2
  52. setiastro/saspro/numba_utils.py +148 -47
  53. setiastro/saspro/ops/scripts.py +77 -17
  54. setiastro/saspro/ops/settings.py +1 -43
  55. setiastro/saspro/perfect_palette_picker.py +1 -0
  56. setiastro/saspro/pixelmath.py +6 -2
  57. setiastro/saspro/plate_solver.py +2 -1
  58. setiastro/saspro/remove_green.py +18 -1
  59. setiastro/saspro/remove_stars.py +136 -162
  60. setiastro/saspro/resources.py +7 -0
  61. setiastro/saspro/rgb_combination.py +1 -0
  62. setiastro/saspro/rgbalign.py +4 -4
  63. setiastro/saspro/save_options.py +1 -0
  64. setiastro/saspro/sfcc.py +50 -8
  65. setiastro/saspro/signature_insert.py +3 -0
  66. setiastro/saspro/stacking_suite.py +630 -341
  67. setiastro/saspro/star_alignment.py +16 -1
  68. setiastro/saspro/star_spikes.py +116 -32
  69. setiastro/saspro/star_stretch.py +38 -1
  70. setiastro/saspro/stat_stretch.py +35 -3
  71. setiastro/saspro/subwindow.py +63 -2
  72. setiastro/saspro/supernovaasteroidhunter.py +3 -0
  73. setiastro/saspro/translations/all_source_strings.json +3654 -0
  74. setiastro/saspro/translations/ar_translations.py +3865 -0
  75. setiastro/saspro/translations/de_translations.py +16 -0
  76. setiastro/saspro/translations/es_translations.py +16 -0
  77. setiastro/saspro/translations/fr_translations.py +16 -0
  78. setiastro/saspro/translations/hi_translations.py +3571 -0
  79. setiastro/saspro/translations/integrate_translations.py +36 -0
  80. setiastro/saspro/translations/it_translations.py +16 -0
  81. setiastro/saspro/translations/ja_translations.py +16 -0
  82. setiastro/saspro/translations/pt_translations.py +16 -0
  83. setiastro/saspro/translations/ru_translations.py +2848 -0
  84. setiastro/saspro/translations/saspro_ar.qm +0 -0
  85. setiastro/saspro/translations/saspro_ar.ts +255 -0
  86. setiastro/saspro/translations/saspro_de.qm +0 -0
  87. setiastro/saspro/translations/saspro_de.ts +3 -3
  88. setiastro/saspro/translations/saspro_es.qm +0 -0
  89. setiastro/saspro/translations/saspro_es.ts +3 -3
  90. setiastro/saspro/translations/saspro_fr.qm +0 -0
  91. setiastro/saspro/translations/saspro_fr.ts +3 -3
  92. setiastro/saspro/translations/saspro_hi.qm +0 -0
  93. setiastro/saspro/translations/saspro_hi.ts +257 -0
  94. setiastro/saspro/translations/saspro_it.qm +0 -0
  95. setiastro/saspro/translations/saspro_it.ts +3 -3
  96. setiastro/saspro/translations/saspro_ja.qm +0 -0
  97. setiastro/saspro/translations/saspro_ja.ts +4 -4
  98. setiastro/saspro/translations/saspro_pt.qm +0 -0
  99. setiastro/saspro/translations/saspro_pt.ts +3 -3
  100. setiastro/saspro/translations/saspro_ru.qm +0 -0
  101. setiastro/saspro/translations/saspro_ru.ts +237 -0
  102. setiastro/saspro/translations/saspro_sw.qm +0 -0
  103. setiastro/saspro/translations/saspro_sw.ts +257 -0
  104. setiastro/saspro/translations/saspro_uk.qm +0 -0
  105. setiastro/saspro/translations/saspro_uk.ts +10771 -0
  106. setiastro/saspro/translations/saspro_zh.qm +0 -0
  107. setiastro/saspro/translations/saspro_zh.ts +3 -3
  108. setiastro/saspro/translations/sw_translations.py +3671 -0
  109. setiastro/saspro/translations/uk_translations.py +3700 -0
  110. setiastro/saspro/translations/zh_translations.py +16 -0
  111. setiastro/saspro/versioning.py +12 -6
  112. setiastro/saspro/view_bundle.py +3 -0
  113. setiastro/saspro/wavescale_hdr.py +22 -1
  114. setiastro/saspro/wavescalede.py +23 -1
  115. setiastro/saspro/whitebalance.py +39 -3
  116. setiastro/saspro/widgets/minigame/game.js +986 -0
  117. setiastro/saspro/widgets/minigame/index.html +53 -0
  118. setiastro/saspro/widgets/minigame/style.css +241 -0
  119. setiastro/saspro/widgets/resource_monitor.py +237 -0
  120. setiastro/saspro/widgets/wavelet_utils.py +52 -20
  121. setiastro/saspro/wimi.py +7996 -0
  122. setiastro/saspro/wims.py +578 -0
  123. {setiastrosuitepro-1.6.1.dist-info → setiastrosuitepro-1.6.2.dist-info}/METADATA +15 -4
  124. {setiastrosuitepro-1.6.1.dist-info → setiastrosuitepro-1.6.2.dist-info}/RECORD +128 -103
  125. {setiastrosuitepro-1.6.1.dist-info → setiastrosuitepro-1.6.2.dist-info}/WHEEL +0 -0
  126. {setiastrosuitepro-1.6.1.dist-info → setiastrosuitepro-1.6.2.dist-info}/entry_points.txt +0 -0
  127. {setiastrosuitepro-1.6.1.dist-info → setiastrosuitepro-1.6.2.dist-info}/licenses/LICENSE +0 -0
  128. {setiastrosuitepro-1.6.1.dist-info → setiastrosuitepro-1.6.2.dist-info}/licenses/license.txt +0 -0
@@ -2004,6 +2004,671 @@ TRANSLATIONS = {
2004
2004
  "Failed to write to document:\n{0}": "Fallo al escribir en el documento:\n{0}",
2005
2005
  },
2006
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
+ }
2007
2672
  }
2008
2673
 
2009
2674
  # Common translations shared across all contexts
@@ -2152,6 +2817,54 @@ COMMON_TRANSLATIONS = {
2152
2817
  "Help": "Ayuda",
2153
2818
  "About": "Acerca de",
2154
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
+ }
2155
2868
  }
2156
2869
 
2157
2870
  def escape_xml(s):
@@ -2325,8 +3038,9 @@ def main():
2325
3038
 
2326
3039
  lang_codes = {
2327
3040
  "it": "it_IT",
2328
- "fr": "fr_FR",
3041
+ "fr": "fr_FR",
2329
3042
  "es": "es_ES",
3043
+ "uk": "uk_UA",
2330
3044
  }
2331
3045
 
2332
3046
  # 1. Run lupdate to scan code and create/update .ts files structure