Commit Graph
100 Commits
Author SHA1 Message Date
aiongg 3dd1b88ff9 Merge PR #2349: the sidebar trees narrow their indent step before names are cut (test follow-ups) 2026-10-22 03:45:54 +00:00
aiongg 1847cbd3e3 Integration: #1997 test picks the 3:4 crop by its named ratio, which follows the photo's orientation 2026-10-22 03:28:46 +00:00
aiongg 04275ce9da Integration: #1484 vi format messages use → instead of the unpaintable ▸ 2026-10-22 03:28:46 +00:00
aiongg c25f7a238f Integration: list Bahasa Indonesia and Tiếng Việt in the README's interface languages 2026-10-22 03:00:44 +00:00
aiongg bf96159526 Integration: regenerate the parity checklist summary 2026-10-22 02:59:01 +00:00
aiongg ec264876fc Integration: English text for the folder-listing message in the fi, id, sv and vi format catalogues 2026-10-22 02:57:56 +00:00
aiongg 8daa25c4c9 Merge track r2-t04 into next
# Conflicts:
#	ROADMAP.md
#	docs/gaps.md
#	docs/parity-checklist.md
#	docs/target-app-parity.md
#	docs/whats-new.md
2026-10-22 02:53:42 +00:00
aiongg 727e66babe Merge track r2-t03 into next
# Conflicts:
#	docs/gaps.md
#	docs/parity-checklist.md
#	docs/ui-parity.md
#	docs/whats-new.md
2026-10-22 02:53:00 +00:00
aiongg 1f2f94cd4f Integration: #1855 #2172 #2295 #1484 English text for format messages the new catalogs lack
build.rs requires every *-formats.json to carry the same messages. The sv (7), fi (1),
id (1) and vi (49) format catalogs predate messages main has added; those entries use the
English text until they are translated.
2026-10-22 02:51:28 +00:00
aiongg 3300e6dad8 Merge track r2-t01 into next
# Conflicts:
#	docs/gaps.md
#	docs/parity-checklist.md
#	docs/raw/coverage.tsv
#	docs/whats-new.md
2026-10-22 02:49:52 +00:00
aiongg 5991f9de61 Integration: #1809 smart preview SourceInfo takes native_long (None; the catalog fills it) 2026-10-22 02:47:31 +00:00
aiongg d26c11a676 Merge track r2-t02 into next
# Conflicts:
#	docs/gaps.md
#	docs/parity-checklist.md
#	docs/whats-new.md
2026-10-22 02:42:47 +00:00
aiongg fa6f5b285b Integration: one LOOK_VERSION (12) and RENDER_CACHE_VERSION (69) bump for the merged camera-look changes 2026-10-22 02:42:38 +00:00
aiongg e705eb563c Merge PR #2380: LR-EDIT-DETAIL-DENOISE: GPU denoise gives the right result on DX12 with NVIDIA Pascal 2026-10-22 02:42:06 +00:00
aiongg 93c55d7c89 Merge PR #2041: fix(camera-profiles): invalidate cached renders after subsecond profile changes 2026-10-22 02:42:06 +00:00
aiongg 731b511295 Merge PR #1985: Imported LUTs no longer leave a copy in the temp folder without a library on disk 2026-10-22 02:42:06 +00:00
aiongg 17b9bdefc7 Merge PR #1984: GPU: a lost device is not polled again, and a poll that panics fails the render (#1858) 2026-10-22 02:42:06 +00:00
aiongg 12c096669a Merge PR #1304: RW2: decode tiled format 8 (DC-S1RM2 high-resolution mode) (#1276) 2026-10-22 02:42:05 +00:00
aiongg 70e9338085 Merge PR #1040: LR-IMP-FORMATS: decode Minolta MRW
docs/parity-checklist.md: header keeps the newer date; LR-IMP-FORMATS row keeps both sides' changes.
docs/raw-parity.md: header change note names both sides' changes.
docs/raw/coverage.tsv: merged cleanly; same rows as both sides, no duplicates (regenerated on the combined branch).
2026-10-22 02:42:05 +00:00
aiongg 3ea9db95f5 Merge track r2-t05 into next 2026-10-22 02:41:40 +00:00
aiongg cd3e6941e7 Integration: #2054 one parity-checklist header line
The PR's branch carried a second header line; its change note joins the existing one.
2026-10-22 02:41:38 +00:00
aiongg 2fc56a5374 Merge PR #2441: feat(ui): add "Show in Folders" to the photo menu (#2437)
docs/parity-checklist.md: header and revision rows from both sides; generated summary line left for cargo xtask parity --write
2026-10-22 02:41:14 +00:00
aiongg 91744336d0 Merge PR #2006: LR-EDIT-COLOR-TEMP: Kelvin white balance for the Nikon Z5II from built-in presets
crates/raw/src/kelvin_presets.rs: covered_models keeps the Z5II asserts (#2006) and the Canon cases (#2009).
docs/parity-checklist.md: LR-EDIT-COLOR-TEMP row keeps both sides' preset clauses.
2026-10-22 02:41:12 +00:00
aiongg b1d36f6b36 Merge PR #2417: Carry rounded GPS minutes into degrees in XMP writer 2026-10-22 02:41:08 +00:00
aiongg dbf4b2b428 Merge PR #2409: Drop non-finite elevation values in the GPX parser 2026-10-22 02:41:08 +00:00
aiongg 1e99e2e1d9 Merge PR #2386: The Windows x64 installer is verified on Windows 11
Conflicts:
- docs/gaps.md: header keeps both changes; revision rows are the union
- docs/target-app-parity.md: revision rows are the union
2026-10-22 02:41:08 +00:00
aiongg 136330a0a5 Merge PR #2385: Smart album rules: + and − never cover a rule, and hovering a field doesn't wrap it 2026-10-22 02:40:59 +00:00
aiongg d598092f6a Merge PR #2349: LRC-LIB-LIBFOLDERS: the sidebar trees narrow their indent step before names are cut (#2298)
docs/parity-checklist.md: header and revision rows from both sides
2026-10-22 02:40:59 +00:00
aiongg b05bb535e6 Merge PR #2271: Analyse a photo listed twice once in Assisted Culling 2026-10-22 02:40:53 +00:00
aiongg 61ad2ff853 Merge PR #2054: LR-VIEW-PHOTOGRID: the grid reads only the photos an import batch or an edit touched
crates/ui-egui/src/tests_grid.rs: both sides' tests

docs/whats-new.md: both entries under one 2026-10-16 heading

docs/parity-checklist.md: header and revision rows from both sides
2026-10-22 02:40:53 +00:00
aiongg 6e7d733ab5 Merge PR #2309: Fix trailing dot in All Metadata rational formatter 2026-10-22 02:40:48 +00:00
aiongg aea654b59a Merge PR #2257: LR-META-XMP: fewer false "XMP adjustments were not imported" warnings for raws edited elsewhere
Conflicts:
- docs/parity-checklist.md: LR-META-XMP row carries both changes (JPEG embedded XMP, bookkeeping crs fields)
2026-10-22 02:40:48 +00:00
aiongg d158d75b59 Merge PR #1917: KEYC-RATING: backslash shows and hides the Filter Bar in the grids
docs/parity-checklist.md: header and revision rows from both sides

docs/ui-parity.md: header keeps the newer dates and both change notes
2026-10-22 02:40:33 +00:00
aiongg 9e80884add Merge PR #2106: docs: add Traditional Chinese (Taiwan) README 2026-10-22 02:40:30 +00:00
aiongg 5acc4dead6 Merge PR #2066: LR-BEHAV-LOCALIZE: German catalog filled, 217 interface strings and 862 What's New lines (80% → 97%)
Conflicts:
- docs/localization-parity.md: header keeps the newer date and both changes
2026-10-22 02:40:30 +00:00
aiongg 2959b3a7e8 Merge PR #2009: Kelvin white balance from Canon CR2 ColorData presets (PowerShot G1 X Mark III)
docs/raw-parity.md: header change note and revision rows keep both sides (newest first).
2026-10-22 02:40:28 +00:00
aiongg 3ec8b08ad8 Merge PR #2042: LR-META-XMP: reread embedded JPEG metadata
Conflicts:
- crates/engine/src/sidecar.rs: imports keep HashSet and add Read, Seek, SeekFrom
- docs/parity-checklist.md: LR-META-XMP and LR-META-EXIF-FULL rows carry both changes (import stem ranking, JPEG embedded XMP)
- docs/xmp-interop.md: Read row carries both changes
2026-10-22 02:40:19 +00:00
aiongg 792b2517e5 Merge PR #1468: Issue #1449: Search Photos finds named people, and quotes keep a name together (steps 1 and 2) 2026-10-22 02:40:15 +00:00
aiongg 8dec1e1183 Merge PR #2444: LR-EDIT-OPTICS-PROFILE: read Fujifilm's nine-knot lens tables at the plain radius
crates/engine/src/media.rs: RENDER_CACHE_VERSION keeps the higher value.
2026-10-22 02:40:15 +00:00
aiongg df319373cc Merge PR #2450: LRC-LIB-COMPARE: the Info panel labels the active photo while culling…
crates/ui-egui/src/tests_compare.rs: both sides' tests

docs/parity-checklist.md: header and revision rows from both sides
2026-10-22 02:40:11 +00:00
aiongg 04b099a4f5 Merge PR #1901: LR-EDIT-OPTICS-PROFILE: apply A7CR embedded distortion for corrected full-frame raws
crates/engine/src/camera_preview.rs: LOOK_VERSION keeps both history lines and the higher value.
crates/engine/src/media.rs: RENDER_CACHE_VERSION keeps the higher value.
docs/whats-new.md: both 2026-10-14 entries under one heading.
2026-10-22 02:40:09 +00:00
aiongg d0583f77ee Merge PR #1173: LRC-LIB-REFVIEW: fix Escape and catalog-local reference lifecycle
docs/parity-checklist.md: header and revision rows from both sides
2026-10-22 02:39:58 +00:00
aiongg 055362cb1d Merge PR #2481: LR-MERGE-HDR: merge warps sample Lanczos-3 instead of bilinear (1/3 of #1887)
docs/parity-checklist.md: header keeps 2026-10-21 and lists both sides' change notes
2026-10-22 02:39:55 +00:00
aiongg 195340da77 Merge PR #2263: LR-IMP-PREVIEW-READ: thumbnails of merged HDR/panorama DNGs develop from their reduced raw copies (38 s → 1 s)
crates/engine/src/media.rs, crates/engine/src/smart.rs: DecodedSource keeps both new fields, from_proxy (#1809) and reduced (#2263); a smart preview loads with from_proxy true, reduced false.
crates/engine/src/cmd/previews.rs: original_only refuses both proxy-loaded and reduced sources.
2026-10-22 02:39:46 +00:00
aiongg 29565bbad0 Merge PR #1861: LR-EXP-DIM: Width & Height limits each edge to its own number (#1620)
Conflicts:
- docs/parity-checklist.md: header keeps the newer date; revision rows are the union
2026-10-22 02:39:44 +00:00
aiongg c61ad57601 Merge PR #2425: LR-IMP-ADD-DIALOG: preserve album hierarchy in Import Photos
docs/parity-checklist.md: header keeps 2026-10-21 and lists both sides' change notes
2026-10-22 02:39:44 +00:00
aiongg fdb93026b4 Merge PR #2456: Fix/strict ids params 2026-10-22 02:39:38 +00:00
aiongg 5cd029a40c Merge PR #1628: #1617: placeholder GPS block (NUL refs, 0/0 rationals) reads as no location 2026-10-22 02:39:34 +00:00
aiongg b81b6d9f3d Merge PR #2300: LR-LIB-STACK: the filmstrip stack badge expands/collapses the stack; badges work on unselected stacks
crates/ui-egui/src/panels/grid.rs: badge keeps main's double-click guard and calls #2300's toggle_stack

crates/ui-egui/src/tests_grid.rs: both sides' badge tests

docs/parity-checklist.md: header and revision rows from both sides; rows take both changes
2026-10-22 02:39:32 +00:00
aiongg f460cbd90c Merge PR #2449: Settings and Edit ▸ Language: list the languages alphabetically by their own name
Conflicts:
- crates/ui-egui/src/menus.rs: LANGUAGE_COMMANDS lists every language, including sv, fi, id and vi, in Locale::for_picker order
2026-10-22 02:39:29 +00:00
aiongg 65ec95997e Merge PR #2296: test(ui): wait for menu registration and visible sync rows 2026-10-22 02:39:27 +00:00
aiongg 45c590757b Merge PR #2024: LR-IMP-LOCAL: Opening on Missing Photos no longer checks every original 2026-10-22 02:39:26 +00:00
aiongg d586360401 Merge PR #1959: Photo Merge: Merge a photo named twice only once (#1947) 2026-10-22 02:39:26 +00:00
aiongg 0e59398375 Integration: #1746 whats-new entry under the existing 2026-10-14 heading, without a duplicate heading 2026-10-22 02:39:25 +00:00
aiongg 758f2e2f21 Merge PR #671: LR-IMP-FORMATS: decode table-less Nikon 34713 NEFs stored as packed 12/14-bit data
crates/engine/src/media.rs: RENDER_CACHE_VERSION keeps the higher value.
docs/parity-checklist.md: LR-IMP-FORMATS row keeps both sides' changes.
2026-10-22 02:39:20 +00:00
aiongg b4df27022f Merge PR #1746: LR-IMP-LOCAL: Record folders browsed from the sidebar as browsed 2026-10-22 02:39:13 +00:00
aiongg 2d32b263ba Merge PR #1450: Add a security policy 2026-10-22 02:39:13 +00:00
aiongg a104372c92 Integration: #1165 Sony maker row counts match coverage.tsv (94 / 43 / 10 / 2) 2026-10-22 02:39:09 +00:00
aiongg 91c465a29c Merge PR #1165: LR-IMP-FORMATS: folder import finds Sony SR2 and SRF files
docs/parity-checklist.md: LR-IMP-FORMATS row keeps main's DNG/Hasselblad text and adds #1165's SR2/SRF phrase; revision rows are the union
docs/raw-parity.md, docs/gaps.md: revision rows are the union
2026-10-22 02:39:08 +00:00
aiongg 9d9df1cbe2 Integration: #2304 use Renderer.requests from #1913 in place of request_ids 2026-10-22 02:39:00 +00:00
aiongg 90eee2208f Integration: #1258 restore the pipeline local tests the PR head truncated
Drops the unfinished nr_contrast_keeps_fine_texture test and restores exposure_doubles and
fast_tests::fast_guided_close_to_reference; keeps the hidden/empty mask test.
2026-10-22 02:38:57 +00:00
aiongg 5aab69a059 Integration: #1484 report Vietnamese coverage gaps, list vi in the keyword-label test, attribute the vi catalogs
The vi coverage test reports missing catalog messages and display labels instead of
failing on them, like the Italian and Finnish tests; the English-fallback check stays.
2026-10-22 02:38:50 +00:00
aiongg 0c659d5576 Merge PR #2304: LR-VIEW-PHOTOGRID: preserve embedded previews through priority changes and Undo 2026-10-22 02:38:46 +00:00
aiongg 72c34a1673 Merge PR #1913: fix(render): identify source files in render-failure logs 2026-10-22 02:38:45 +00:00
aiongg bf2f3df0ac Merge PR #1809: engine: keep the decoder facts a smart preview's offline edits need
crates/engine/src/cmd/previews.rs: the opening refresh takes every photo on disk (#1809) with the preview_fitted_look flag of #1545 (vendor raws and DNGs); SmartJob and refresh docs name both.
2026-10-22 02:38:42 +00:00
aiongg 27f608ab03 Merge PR #2499: LR-VIEW-ZOOM: a pinch holds the loupe's fit size, so it no longer renders at every zoom step
docs/parity-checklist.md: header from HEAD; both revision rows.
docs/whats-new.md: both entries under 2026-10-21.
2026-10-22 02:38:42 +00:00
aiongg a4335731aa Merge PR #1965: LRC-DEV-VIEWOPTIONS: View Options (Cmd+J) chooses the lines of the loupe's Info 1 and Info 2
crates/ui-egui/src/panels/detail.rs: #2317's split (info_overlay / info_overlay_lines / info_overlay_extent) kept; info_overlay_lines builds its lines from #1965's View Options fields (info_line) and returns None when off or when no line is left

crates/ui-egui/src/panels/dialogs.rs: only_shows keeps Dialog::ViewOptions and the up-to-date Synchronize Folder case

crates/ui-egui/locales/it.json: union of keys
2026-10-22 02:38:41 +00:00
aiongg 05f31758fd Merge PR #1484: Add Vietnamese interface translation
Conflicts:
- crates/ui-egui/src/i18n.rs, crates/ui-egui/src/menus.rs: language table and commands keep every language plus vi
- docs/localization.md: language list, note links and table excerpt keep every language plus vi
- docs/localization-parity.md: header keeps the newer date and both changes; the newer per-language measurements are kept, Vietnamese row from the PR; links and revision rows are the union
2026-10-22 02:38:28 +00:00
aiongg d27b56447b Merge PR #2454: KEYC-PANELS: F8 shows and hides the right panel
docs/parity-checklist.md: header and generated summary from HEAD (summary is regenerated later); both revision rows, newest first.
2026-10-22 02:38:23 +00:00
aiongg 2ba2c38d3f Merge PR #2431: Keep file name and query for fragment-only redirect Location 2026-10-22 02:38:11 +00:00
aiongg f0951e819c Merge PR #2410: Match URL schemes case-insensitively in Url::parse and Url::join
crates/fetch/src/http.rs: keeps #2406's remove_dot_segments and #2410's strip_scheme helpers; tests keep all three PRs' cases
2026-10-22 02:38:10 +00:00
aiongg fd2503f125 Merge PR #2451: LR-MASK-OVERLAY: a new or picked mask shows its overlay again (#1800)
docs/parity-checklist.md: newer header (2026-10-21); both revision rows.
2026-10-22 02:38:08 +00:00
aiongg bb930900af Merge PR #1545: LR-RAW-DNG: preserve lens corrections in the existing DNG tone-fit proxy
crates/engine/src/camera_preview.rs: LOOK_VERSION keeps both history lines and the higher value.
crates/engine/src/media.rs: RENDER_CACHE_VERSION keeps the higher value.
2026-10-22 02:38:07 +00:00
aiongg 4ba72fa0eb Merge PR #2420: PERF-SMART: File Path rules compare in place instead of building strings per photo
docs/whats-new.md: both entries, newest first.
2026-10-22 02:38:00 +00:00
aiongg 4438e2bb64 Merge PR #2406: Remove dot segments when resolving redirect Locations
crates/fetch/src/http.rs: tests keep #2404's join_query_only_keeps_file_name and #2406's join_removes_dot_segments
2026-10-22 02:37:54 +00:00
aiongg 0068d9040b Merge PR #2295: i18n: Indonesian (id) interface language
Conflicts:
- crates/ui-egui/src/i18n.rs, crates/ui-egui/src/menus.rs: language table and commands keep sv, fi and id
- crates/ui-egui/src/panels/keyword_list.rs: code list gains id; Locale::ALL.len() is 17
- docs/localization.md: language list and note links keep every language
- docs/localization-parity.md: header keeps the newer date and both changes; links and revision rows are the union
2026-10-22 02:37:53 +00:00
aiongg 53ce89fc11 Integration: #1616 move the overcast-scene doc comment back to its test 2026-10-22 02:37:51 +00:00
aiongg 73c61cf655 Merge PR #2400: Crop: the spiral guide is complete at every aspect ratio 2026-10-22 02:37:50 +00:00
aiongg eee3b799fe Merge PR #2371: #2365: centre the search field on the window, not inside the bar's margins 2026-10-22 02:37:49 +00:00
aiongg fbc927f0b1 Merge PR #2347: feat(guided): Guided Upright guides select, start on the press and drag their endpoints
docs/parity-checklist.md: both revision rows.
2026-10-22 02:37:49 +00:00
aiongg 8bd9a3af1e Merge PR #1616: LR-PROF-CAMERACOLOR: near-black frames get a tone curve when no colour look fits (#1587)
crates/engine/src/camera_preview.rs: LOOK_VERSION keeps the higher value; fit_tone_only_pairs (from #1616) takes the HighlightCheck of #699 from fit_tone_only_on, and fit_dark_tone passes its frame's (empty, as no JPEG pixel reaches 0.85) check.
crates/engine/src/media.rs: RENDER_CACHE_VERSION keeps the higher value.
docs/parity-checklist.md: LR-PROF-CAMERACOLOR row keeps both sides' changes.
2026-10-22 02:37:46 +00:00
aiongg feaf1aa5bb Merge PR #2317: #2267: the Before label stays in view when zoomed in (stacked on #2274)
crates/ui-egui/src/tests_zoom.rs: both new Before-label tests, with #1968's comment wording on the crop test

docs/whats-new.md: both entries under 2026-10-19
2026-10-22 02:37:40 +00:00
aiongg 4de80f3ef9 Merge PR #2306: LR-CROP-RECT: a moved crop slides along a straightened photo's tilted edges (#2299) 2026-10-22 02:37:36 +00:00
aiongg cb8115b239 Merge PR #2217: LR-EDIT-OPTICS-PROFILE: look up Nikon DSLR lenses by their lens specification
docs/parity-checklist.md: newer header (2026-10-21); both revision rows.
2026-10-22 02:37:35 +00:00
aiongg 2aae31ecb4 Merge PR #2404: Keep file name when a redirect Location is query-only 2026-10-22 02:37:33 +00:00
aiongg 551defa04e Merge PR #2336: Treat Unicode minus and dash characters as negative in parse_gps
crates/engine/src/cmd/library.rs: gps_tests keeps both PRs' asserts
2026-10-22 02:37:33 +00:00
aiongg d8b2eb60d3 Merge PR #2172: i18n: add Finnish (fi) interface language
Conflicts:
- README.md, docs/localization.md: language lists keep every language, Finnish appended
- assets/ATTRIBUTION.md: union of rows
- crates/ui-egui/src/i18n.rs, crates/ui-egui/src/menus.rs: language table and commands keep sv and fi
- crates/ui-egui/src/panels/keyword_list.rs: code list gains fi; Locale::ALL.len() is 16
- docs/localization-parity.md: header keeps the newer date and both changes; revision rows are the union
2026-10-22 02:37:29 +00:00
aiongg 2965161505 Merge PR #1997: KEY-CROP-SWAP: X in the crop tool swaps the aspect once (#1866) 2026-10-22 02:37:24 +00:00
aiongg 590c17a8f3 Merge PR #1977: GUM-3203: Stress-test previews against full-size renders 2026-10-22 02:37:23 +00:00
aiongg b242cd6bfc Merge PR #1972: Tone: neutral display tone map is the identity up to white (#1945) 2026-10-22 02:37:23 +00:00
aiongg f8f68fa8b2 Merge PR #2341: Fix parse_gps for hemisphere-letter-first coordinates without comma 2026-10-22 02:37:22 +00:00
aiongg bb18036420 Merge PR #1909: docs(support): explain the Remove tool workflow (#1756) 2026-10-22 02:37:22 +00:00
aiongg b1c4cb7df9 Merge PR #1258: Ignore hidden and empty masks when choosing develop planes. 2026-10-22 02:37:22 +00:00
aiongg fb316ee5ea Merge PR #1402: Fix slider wheel edits after leaving and returning to the Edit panel
crates/ui-egui/src/widgets/tests_numeric_entry.rs: keep both sides' tests.
docs/parity-checklist.md: newer header (2026-10-21); KEY-SLIDER-NUDGE from #1402, KEY-SLIDER-TYPE from #1687; both revision rows.
2026-10-22 02:37:21 +00:00
aiongg 51bf538f27 Merge PR #1968: crop.set refuses a crop smaller than the crop tool allows, instead of exporting 1×1 2026-10-22 02:37:19 +00:00
aiongg 166380630b Merge PR #2366: LRC-LIB-LIBFOLDERS: Synchronize Folder says a folder is up to date, with one Close
docs/parity-checklist.md: header and revision rows from both sides; LRC-LIB-LIBFOLDERS row takes both wording changes
2026-10-22 02:37:19 +00:00
aiongg 67d6e1879f Merge PR #1991: Control port: don't clone the connection's socket (Windows: launched programs kept it open)
apps/lightcraft/src/control_server.rs: serve() keeps #2027's idle read timeout and #1991's single-stream serve_lines (no try_clone); #1991's Windows test passes IDLE_TIMEOUT
2026-10-22 02:37:18 +00:00
aiongg cf804ee9f6 Merge PR #699: LR-PROF-CAMERACOLOR: fit the tone curve of low-contrast scenes (range limit 1.5 to 1.2)
crates/engine/src/camera_preview.rs: LOOK_VERSION keeps both history lines and the higher value.
crates/engine/src/media.rs: RENDER_CACHE_VERSION keeps the higher value.
2026-10-22 02:37:09 +00:00
aiongg 4764767694 Merge PR #1855: i18n: Swedish (sv) interface translation
Conflicts:
- README.md, docs/localization.md: language lists keep every language, Swedish appended
- assets/ATTRIBUTION.md: union of rows
- crates/ui-egui/src/i18n.rs: language table and command test list keep it, ka and sv; both tests kept
- crates/ui-egui/src/menus.rs: language commands keep it, ka and sv
- crates/ui-egui/src/panels/keyword_list.rs: code list gains sv; Locale::ALL.len() is 15
2026-10-22 02:37:05 +00:00
aiongg 92c90ad743 Merge PR #1687: KEY-SLIDER-TYPE: a long click keeps the value field open; drag the value to scrub 2026-10-22 02:36:59 +00:00