diff --git a/crates/ui-egui/locales/vi-formats.json b/crates/ui-egui/locales/vi-formats.json index 62e1ef46d..79d4661d9 100644 --- a/crates/ui-egui/locales/vi-formats.json +++ b/crates/ui-egui/locales/vi-formats.json @@ -35,7 +35,7 @@ "Added “{keyword}” to {n} photo{}": "Đã thêm «{keyword}» vào {n} ảnh{:.0}", "Adding photos… {} of {}": "Đang thêm ảnh… {} / {}", "All {n} selected photos move by the same amount.": "Tất cả {n} ảnh đã chọn dịch chuyển cùng một lượng.", - "Already in the library, in Recently Deleted: {} photo{} selected · right-click ▸ Restore, or Delete Permanently to import afresh": "Đã có trong thư viện, trong Đã xóa gần đây: đã chọn {} ảnh{:.0} · nhấp chuột phải ▸ Khôi phục, hoặc Xóa vĩnh viễn để nhập lại", + "Already in the library, in Recently Deleted: {} photo{} selected · right-click ▸ Restore, or Delete Permanently to import afresh": "Đã có trong thư viện, trong Đã xóa gần đây: đã chọn {} ảnh{:.0} · nhấp chuột phải → Khôi phục, hoặc Xóa vĩnh viễn để nhập lại", "Already in the library: {} photo{} selected in All Photos": "Đã có trong thư viện: đã chọn {} ảnh{:.0} trong Tất cả ảnh", "Auto ({})": "Tự động ({})", "Auto Import: added {} photo{}": "Tự động nhập: đã thêm {} ảnh{:.0}", @@ -80,7 +80,7 @@ "Imported {n} point curve preset{}": "Đã nhập {n} thiết lập sẵn đường cong điểm{:.0}", "Imported {n} preset{}": "Đã nhập {n} thiết lập sẵn{:.0}", "Imported {n} preset{}, {f} file{} not readable": "Đã nhập {n} thiết lập sẵn{:.0}, {f} tệp{:.0} không đọc được", - "Imported {profiles} profile{} (Profile browser ▸ their groups)": "Đã nhập {profiles} hồ sơ{:.0} (Trình duyệt hồ sơ ▸ nhóm của chúng)", + "Imported {profiles} profile{} (Profile browser ▸ their groups)": "Đã nhập {profiles} hồ sơ{:.0} (Trình duyệt hồ sơ → nhóm của chúng)", "Imported {} photo{}": "Đã nhập {} ảnh{:.0}", "In line for AI Denoise ({ahead} ahead)…": "Đang xếp hàng Khử nhiễu AI (trước bạn: {ahead})…", "Insert at the cursor (also written {})": "Chèn tại con trỏ (cũng ghi là {})", @@ -205,7 +205,7 @@ "{n} photo{}": "{n} ảnh{:.0}", "{n} photo{} match · updates automatically as photos change": "{n} ảnh{:.0} khớp · tự cập nhật khi ảnh thay đổi", "{n} photo{} now · updates automatically as photos change": "Hiện {n} ảnh{:.0} · tự cập nhật khi ảnh thay đổi", - "{n} similar photo{} · View ▸ Clear Filters to see all": "{n} ảnh tương tự{:.0} · Xem ▸ Xóa bộ lọc để thấy tất cả", + "{n} similar photo{} · View ▸ Clear Filters to see all": "{n} ảnh tương tự{:.0} · Xem → Xóa bộ lọc để thấy tất cả", "{n} tasks are still running: {names}. Quitting stops them.": "Còn {n} tác vụ đang chạy: {names}. Thoát sẽ dừng chúng.", "{n} {noun}": "{noun}: {n}", "{pct} %": "{pct} %", diff --git a/crates/ui-egui/locales/vi.json b/crates/ui-egui/locales/vi.json index 24da889ca..c73a26195 100644 --- a/crates/ui-egui/locales/vi.json +++ b/crates/ui-egui/locales/vi.json @@ -7,7 +7,7 @@ "#106): a DNG is checked against the raw data, written to a temp file, synced and read back before it gets its": "#106): một DNG được đối chiếu với dữ liệu raw, ghi vào tệp tạm, đồng bộ và đọc lại trước khi nhận", "% of all commits": "% tất cả commit", "& Containing": "& Chứa", - "(`gpuReason`, `gpuFallback`), Help ▸ System Info and Settings ▸ Performance say why the GPU isn't": "(`gpuReason`, `gpuFallback`), Trợ giúp ▸ Thông tin hệ thống và Cài đặt ▸ Hiệu năng giải thích vì sao GPU không", + "(`gpuReason`, `gpuFallback`), Help ▸ System Info and Settings ▸ Performance say why the GPU isn't": "(`gpuReason`, `gpuFallback`), Trợ giúp → Thông tin hệ thống và Cài đặt → Hiệu năng giải thích vì sao GPU không", "(e.g. D750, D780, D850, D7500, Z 50) no longer render nearly black or with crushed shadows: their black level was": "(ví dụ D750, D780, D850, D7500, Z 50) không còn hiển thị gần như đen hoặc vùng tối bị nén: mức đen của chúng đã được", "(issue #94): an HTTP request from a web page can no longer carry a command in its body. Lines are capped at": "(issue #94): yêu cầu HTTP từ trang web không còn mang lệnh trong phần thân. Số dòng được giới hạn ở", "+ Group": "+ Nhóm", @@ -111,6 +111,7 @@ "Appearance": "Giao diện", "Appearance Mode": "Chế độ giao diện", "Appearance Settings…": "Cài đặt giao diện…", + "Apple Photos Imports": "Ảnh nhập từ Apple Photos", "Application": "Ứng dụng", "Apply": "Áp dụng", "Apply Color Label Set": "Áp dụng bộ nhãn màu", @@ -176,6 +177,7 @@ "Back to Grid": "Quay lại lưới", "Back to this person": "Quay lại người này", "Background": "Nền", + "Background Tasks": "Tác vụ nền", "Balance": "Cân bằng", "Basic": "Cơ bản", "Before": "Trước", @@ -211,7 +213,7 @@ "Browse Folder": "Duyệt thư mục", "Browse Folder…": "Duyệt thư mục…", "Browse Profiles": "Duyệt hồ sơ", - "Browser version (experimental), keeping a library safe (issue #107): File ▸ Back Up Library… downloads the catalog": "Phiên bản trình duyệt (thử nghiệm), giữ thư viện an toàn (issue #107): Tệp ▸ Sao lưu thư viện… tải catalog", + "Browser version (experimental), keeping a library safe (issue #107): File ▸ Back Up Library… downloads the catalog": "Phiên bản trình duyệt (thử nghiệm), giữ thư viện an toàn (issue #107): Tệp → Sao lưu thư viện… tải catalog", "Browse…": "Duyệt…", "Brush": "Cọ", "Brush Settings": "Cài đặt cọ", @@ -233,6 +235,7 @@ "Cameras and Cards": "Máy ảnh và thẻ nhớ", "Cancel": "Hủy", "Cancel AI Mask Model Download": "Hủy tải mô hình mặt nạ AI", + "Cancel Background Task": "Hủy tác vụ nền", "Cancel Denoise": "Hủy khử nhiễu", "Cancel Denoise Model Download": "Hủy tải mô hình khử nhiễu", "Cancel Download": "Hủy tải", @@ -270,6 +273,7 @@ "Choose Edit Settings to Copy…": "Chọn cài đặt chỉnh sửa để sao chép…", "Choose Face Recognition Model": "Chọn mô hình nhận diện khuôn mặt", "Choose Folder…": "Chọn thư mục…", + "Choose Profile…": "Chọn hồ sơ…", "Choose a model below (Use) to start.": "Chọn một mô hình bên dưới (Dùng) để bắt đầu.", "Choose a photo in the grid or filmstrip": "Chọn một ảnh trên lưới hoặc dải phim", "Choose an album…": "Chọn một album…", @@ -347,6 +351,7 @@ "Confirm before deleting": "Xác nhận trước khi xóa", "Confirm before moving photos to Recently Deleted": "Xác nhận trước khi chuyển ảnh vào Đã xóa gần đây", "Constrain Crop": "Giới hạn cắt", + "Contact Sheet PDF…": "PDF tờ tiếp xúc…", "Content-Aware": "Nhận biết nội dung", "Continue": "Tiếp tục", "Continue Without Saving": "Tiếp tục không lưu", @@ -382,6 +387,7 @@ "Create Album…": "Tạo album…", "Create Folder": "Tạo thư mục", "Create Folder…": "Tạo thư mục…", + "Create Keyword": "Tạo từ khóa", "Create Keyword Tag": "Tạo thẻ từ khóa", "Create New Mask": "Tạo mặt nạ mới", "Create PDF from clipboard": "Tạo PDF từ bảng tạm", @@ -498,7 +504,9 @@ "Discarding smart previews": "Đang hủy smart preview", "Display": "Màn hình", "Display P3": "Display P3", + "Display Profile": "Hồ sơ màn hình", "Display name": "Tên hiển thị", + "Display profile not used": "Không dùng hồ sơ màn hình", "Display theme": "Chủ đề hiển thị", "Distortion": "Méoc", "Document properties…": "Thuộc tính tài liệu…", @@ -517,13 +525,14 @@ "Drag Crop Handle": "Kéo tay nắm cắt", "Drag along the horizon; double-click for Auto": "Kéo theo đường chân trời; nhấp đúp để Tự động", "Drag over an eye on the photo; the pupil inside is found automatically.": "Kéo qua mắt trên ảnh; đồng tử bên trong được tìm tự động.", + "Drag to set hue and saturation. Hold Shift to keep the hue, Cmd/Ctrl to keep the saturation, Alt/Option to fine-adjust. Double-click to reset.": "Kéo để đặt hue và độ bão hòa. Giữ Shift để giữ hue, Cmd/Ctrl để giữ độ bão hòa, Alt/Option để chỉnh tinh. Nhấp đúp để đặt lại.", "Draw Guides": "Vẽ đường dẫn", "Drop here for the top level": "Thả vào đây cho cấp cao nhất", "Duplicate": "Nhân bản", "Duplicate Component": "Nhân bản thành phần", "Duplicate Mask": "Nhân bản mặt nạ", "Duplicate and Invert Mask": "Nhân bản và đảo mặt nạ", - "Each / starts a folder level; tags are filled in per photo (a level with missing metadata is \"unknown\").": "Mỗi / bắt đầu một cấp thư mục; thẻ được điền theo từng ảnh (cấp thiếu metadata là \"unknown\").", + "Each / starts a folder level; tags are filled in per photo (a level with missing metadata is \"unknown\").": "Mỗi / bắt đầu một cấp thư mục; thẻ được điền theo từng ảnh (cấp thiếu siêu dữ liệu thành \"unknown\").", "Edge": "Cạnh", "Edge setting, and get a sharper zoomed-in pass in the background. The model runs inside LightCraft in pure Rust": "Cài đặt Edge và nhận lượt phóng to sắc nét hơn ở nền. Mô hình chạy trong LightCraft bằng pure Rust", "Edit": "Chỉnh sửa", @@ -534,7 +543,9 @@ "Edit Color Label Names…": "Sửa tên nhãn màu…", "Edit Copy for External Editor": "Sửa bản sao cho trình chỉnh sửa ngoài", "Edit Date": "Ngày chỉnh sửa", + "Edit In": "Chỉnh trong", "Edit Info": "Thông tin chỉnh sửa", + "Edit Keyword": "Sửa từ khóa", "Edit Keyword Set": "Sửa bộ từ khóa", "Edit Keyword Tag": "Sửa thẻ từ khóa", "Edit Keyword Tag…": "Sửa thẻ từ khóa…", @@ -549,6 +560,10 @@ "Edit Spot": "Sửa điểm", "Edit in External Editor": "Chỉnh trong trình ngoài", "Edit in External Editor (⇧⌘E): a 16-bit TIFF copy, stacked, refreshed when you come back.": "Chỉnh trong trình soạn ngoài (⇧⌘E): bản sao TIFF 16 bit, xếp chồng, làm mới khi bạn quay lại.", + "Edit in HDR: highlights above SDR white, for HDR exports and displays": "Chỉnh HDR: vùng sáng trên trắng SDR, cho xuất và màn hình HDR", + "Edit in Other Editor": "Chỉnh trong trình khác", + "Edit in Other Editor (⌥⌘E) opens the copy in this application (an app name on macOS, a program path elsewhere).": "Chỉnh trong trình khác (⌥⌘E) mở bản sao trong ứng dụng này (tên app trên macOS, đường dẫn chương trình ở nơi khác).", + "Edit in PhotoCraft": "Chỉnh trong PhotoCraft", "Edit settings copied": "Đã sao chép cài đặt chỉnh sửa", "Edited": "Đã chỉnh sửa", "Edited or not": "Đã chỉnh hoặc chưa", @@ -575,6 +590,7 @@ "Export Album with Preset": "Xuất album với thiết lập sẵn", "Export Album…": "Xuất album…", "Export As…": "Xuất thành…", + "Export Contact Sheet PDF": "Xuất PDF tờ tiếp xúc", "Export Containing Keywords": "Xuất từ khóa chứa", "Export Group…": "Xuất nhóm…", "Export Keywords": "Xuất từ khóa", @@ -599,6 +615,7 @@ "Exposure": "Phơi sáng", "Exposure (shutter · aperture · ISO)": "Phơi sáng (cửa trập · khẩu độ · ISO)", "Extended Description": "Mô tả mở rộng", + "External Editing": "Chỉnh sửa ngoài", "External Editor": "Trình chỉnh sửa ngoài", "Face Boxes": "Khung khuôn mặt", "Face Model Downloads": "Tải mô hình khuôn mặt", @@ -646,6 +663,7 @@ "Filter Presets": "Thiết lập sẵn bộ lọc", "Filter bar": "Thanh bộ lọc", "Filter fields": "Trường bộ lọc", + "Find Blemishes": "Tìm khuyết điểm", "Find Dust Spots": "Tìm điểm bụi", "Find Missing Photos": "Tìm ảnh bị thiếu", "Find Missing Photos…": "Tìm ảnh bị thiếu…", @@ -691,6 +709,7 @@ "Form fields panel": "Bảng trường biểu mẫu", "Format": "Định dạng", "Forward": "Tiến", + "Found automatically": "Tìm tự động", "Fr": "T6", "Frame time": "Thời gian khung", "Frame update": "Cập nhật khung", @@ -745,6 +764,8 @@ "Guided": "Có hướng dẫn", "Guided Upright": "Chỉnh thẳng có hướng dẫn", "Guided Upright Guides": "Đường hướng dẫn chỉnh thẳng", + "HDR": "HDR", + "HDR Headroom": "Dự trữ HDR", "HDR Merge": "Ghép HDR", "HDR Merge Preview": "Xem trước ghép HDR", "HDR Panorama Merge": "Ghép panorama HDR", @@ -813,8 +834,8 @@ "Import new photos": "Nhập ảnh mới", "Import photos with File → Import Photos… (Cmd+Shift+I), or drop them here": "Nhập ảnh bằng Tệp → Nhập ảnh… (Cmd+Shift+I), hoặc thả vào đây", "Import presets from other editors: XMP presets, classic `.lrtemplate` files, \"DNG presets\" from mobile apps and `.zip`": "Nhập thiết lập sẵn từ trình soạn khác: preset XMP, tệp `.lrtemplate` cổ điển, \"DNG presets\" từ app di động và `.zip`", - "Import ▸ Copy verifies every copy, like Move (issue #96): each file is written as a new file, synced to disk and": "Nhập ▸ Sao chép xác minh mọi bản sao, như Di chuyển (issue #96): mỗi tệp ghi thành tệp mới, đồng bộ ra đĩa và", - "Import ▸ Move: photos go into the destination (with the same folders and renaming as Copy, e.g.": "Nhập ▸ Di chuyển: ảnh vào đích (cùng thư mục và đổi tên như Sao chép, ví dụ", + "Import ▸ Copy verifies every copy, like Move (issue #96): each file is written as a new file, synced to disk and": "Nhập → Sao chép xác minh mọi bản sao, như Di chuyển (issue #96): mỗi tệp ghi thành tệp mới, đồng bộ ra đĩa và", + "Import ▸ Move: photos go into the destination (with the same folders and renaming as Copy, e.g.": "Nhập → Di chuyển: ảnh vào đích (cùng thư mục và đổi tên như Sao chép, ví dụ", "Import: copy to any folder, by day / by month / one folder, rename on import, metadata preset, Copy as DNG.": "Nhập: sao chép vào thư mục bất kỳ, theo ngày / theo tháng / một thư mục, đổi tên khi nhập, thiết lập metadata, Sao chép dạng DNG.", "Imported": "Đã nhập", "Imported Photos": "Ảnh đã nhập", @@ -882,6 +903,7 @@ "Keyboard shortcuts": "Phím tắt", "Keyword": "Từ khóa", "Keyword Count": "Số từ khóa", + "Keyword Info": "Thông tin từ khóa", "Keyword List": "Danh sách từ khóa", "Keyword Lists": "Danh sách từ khóa", "Keyword Name": "Tên từ khóa", @@ -896,6 +918,7 @@ "Keywords (K)": "Từ khóa (K)", "Keywords (⌥1–⌥9)": "Từ khóa (⌥1–⌥9)", "Keywords you add appear here; ⌥1–⌥9 apply them.": "Từ khóa bạn thêm hiện ở đây; ⌥1–⌥9 áp dụng chúng.", + "LUT-based": "Dựa trên LUT", "Label": "Nhãn", "Label Set": "Bộ nhãn", "Landscape": "Ngang", @@ -910,6 +933,7 @@ "Layer": "Lớp", "Layers": "Lớp", "Leave them": "Giữ nguyên", + "Left: the standard (SDR) range up to SDR white. Right: the HDR range, one band per stop above SDR white (the orange line: the HDR headroom). With Visualize HDR range on, the bands take its colours.": "Trái: dải chuẩn (SDR) đến trắng SDR. Phải: dải HDR, mỗi dải một stop trên trắng SDR (đường cam: dự trữ HDR). Khi bật Hình dung dải HDR, các dải lấy màu của nó.", "Lens": "Ống kính", "Lens Blur": "Làm mờ ống kính", "Lens Corrections": "Hiệu chỉnh ống kính", @@ -996,6 +1020,7 @@ "Masks": "Mặt nạ", "Match": "Khớp", "Match Total Exposures": "Khớp tổng phơi sáng", + "Matrix/TRC": "Matrix/TRC", "Matte": "Mờ", "Matte Soft": "Mờ mềm", "Med": "TB", @@ -1037,6 +1062,7 @@ "Models": "Mô hình", "Modified Date": "Ngày sửa đổi", "Monday": "Thứ Hai", + "Monitor profile": "Hồ sơ màn hình", "Mono Red Filter": "Lọc đỏ đơn sắc", "Mono Rich": "Đơn sắc đậm", "Mono Soft": "Đơn sắc mềm", @@ -1052,6 +1078,7 @@ "Move Down in Stack": "Di chuyển xuống trong chồng", "Move Folder": "Di chuyển thư mục", "Move Folder To…": "Di chuyển thư mục tới…", + "Move Keyword": "Di chuyển từ khóa", "Move Mask": "Di chuyển mặt nạ", "Move Preset to Group": "Chuyển thiết lập sẵn vào nhóm", "Move Preset to New Group": "Chuyển thiết lập sẵn vào nhóm mới", @@ -1110,9 +1137,11 @@ "New time": "Thời gian mới", "New…": "Mới…", "Next Appearance Mode": "Chế độ giao diện tiếp theo", + "Next History Step": "Bước lịch sử sau", "Next Photo": "Ảnh tiếp theo", "Next up for AI Denoise…": "Tiếp theo cho AI Khử nhiễu…", "Night Blue": "Xanh đêm", + "Nikon High Efficiency NEF (HE / HE★) uses intoPIX TicoRAW compression. LightCraft does not currently have a license for this codec, so only the camera's embedded JPEG preview is available, not the raw sensor data. To edit raw data, shoot Lossless compressed NEF or convert existing HE files to DNG using a licensed converter.": "Nikon High Efficiency NEF (HE / HE★) dùng nén intoPIX TicoRAW. LightCraft hiện chưa có giấy phép codec này, nên chỉ có JPEG xem trước nhúng của máy, không có dữ liệu cảm biến raw. Để chỉnh raw, hãy chụp NEF nén Lossless hoặc chuyển HE sang DNG bằng bộ chuyển có giấy phép.", "Nikon NEFs start from a colour and tone look fitted to the camera's own JPEG, as Sony ARWs do, instead of a muted,": "Nikon NEF bắt đầu từ màu và tông khớp JPEG của máy, như Sony ARW, thay vì tông mờ,", "Nikon splits into two differently compressed halves still use the preview for now.)": "Nikon chia hai nửa nén khác nhau vẫn dùng xem trước tạm thời.)", "No": "Không", @@ -1163,6 +1192,7 @@ "Noise Reduction": "Giảm nhiễu", "Non-raw photos": "Ảnh không phải RAW", "None": "Không có", + "None (the display is treated as sRGB)": "Không (màn hình được coi là sRGB)", "Not Now": "Không phải lúc này", "Not saved": "Chưa lưu", "Nothing is fetched until you accept. The model is kept on this computer only; LightCraft never uploads or shares it.": "Không tải gì cho đến khi bạn chấp nhận. Mô hình chỉ lưu trên máy này; LightCraft không tải lên hay chia sẻ.", @@ -1186,6 +1216,7 @@ "Open Library": "Mở thư viện", "Open Library…": "Mở thư viện…", "Open Log Folder": "Mở thư mục nhật ký", + "Open Original in Other Editor (RAW, no copy)": "Mở bản gốc trong trình khác (RAW, không sao chép)", "Open Recent Library": "Mở thư viện gần đây", "Open in": "Mở trong", "Open in Detail": "Mở chi tiết", @@ -1211,6 +1242,7 @@ "Original offline · editing the smart preview": "Gốc ngoại tuyến · đang chỉnh smart preview", "Original offline · no smart preview": "Gốc ngoại tuyến · không có smart preview", "Originals": "Bản gốc", + "Other editor": "Trình chỉnh sửa khác", "Other images (JPEG, PNG, TIFF, HEIC…)": "Ảnh khác (JPEG, PNG, TIFF, HEIC…)", "Other…": "Khác…", "Overlay": "Lớp phủ", @@ -1253,15 +1285,21 @@ "Pet Eye": "Mắt thú cưng", "Pet Eye Catchlight": "Điểm sáng mắt thú cưng", "Photo": "Ảnh", + "Photo Above": "Ảnh bên trên", + "Photo Below": "Ảnh bên dưới", "Photo Grid": "Lưới ảnh", "Photo Grid (G)": "Lưới ảnh (G)", "Photo Merge": "Ghép ảnh", "Photo menu. The filmstrip has the photo context menu too. Adding a file again that is in Recently Deleted no": "Menu Ảnh. Dải phim cũng có menu ngữ cảnh ảnh. Thêm lại tệp đang ở Đã xóa gần đây không", - "Photo ▸ Edit in External Editor (⇧⌘E) renders a 16-bit TIFF copy, stacks it with the original and opens it here (an app name on macOS, a program path elsewhere).": "Ảnh ▸ Chỉnh trong trình soạn ngoài (⇧⌘E) kết xuất bản sao TIFF 16 bit, xếp chồng với bản gốc và mở tại đây (tên app trên macOS, đường dẫn chương trình ở nơi khác).", + "Photo ▸ Edit In ▸ Edit in PhotoCraft (⇧⌘E, or right-click a photo) renders a copy with your edits, stacks it with the original and opens it in PhotoCraft. Save there and the copy updates here. As PSD, PhotoCraft saves straight back to it. Leave the location empty unless you use a portable copy.": "Ảnh → Chỉnh trong → Chỉnh trong PhotoCraft (⇧⌘E, hoặc nhấp phải ảnh) kết xuất bản sao kèm chỉnh sửa, xếp chồng với bản gốc và mở trong PhotoCraft. Lưu ở đó thì bản sao cập nhật tại đây. Dạng PSD, PhotoCraft lưu thẳng lại. Để trống vị trí trừ khi dùng bản portable.", + "Photo ▸ Edit in External Editor (⇧⌘E) renders a 16-bit TIFF copy, stacks it with the original and opens it here (an app name on macOS, a program path elsewhere).": "Ảnh → Chỉnh trong trình soạn ngoài (⇧⌘E) kết xuất bản sao TIFF 16 bit, xếp chồng với bản gốc và mở tại đây (tên app trên macOS, đường dẫn chương trình ở nơi khác).", + "PhotoCraft": "PhotoCraft", "Photos": "Ảnh", - "Photos in Recently Deleted can be restored from the app: right-click ▸ Restore (or Delete Permanently), also in the": "Ảnh trong Đã xóa gần đây có thể khôi phục trong app: nhấp phải ▸ Khôi phục (hoặc Xóa vĩnh viễn), cũng trong", + "Photos are shown through your monitor's ICC profile, so colours are right on wide-gamut and calibrated displays, and the Detail view uses the display's whole gamut. The histogram, the preview caches and exports are not affected.": "Ảnh hiện qua hồ sơ ICC màn hình, nên màu đúng trên màn hình gam rộng và đã hiệu chuẩn, và khung Chi tiết dùng toàn gam của màn hình. Histogram, bộ nhớ đệm xem trước và xuất không bị ảnh hưởng.", + "Photos in Recently Deleted can be restored from the app: right-click ▸ Restore (or Delete Permanently), also in the": "Ảnh trong Đã xóa gần đây có thể khôi phục trong app: nhấp phải → Khôi phục (hoặc Xóa vĩnh viễn), cũng trong", "Photos per bracket (0 = auto)": "Ảnh mỗi nhóm bracket (0 = tự động)", "Photos seen in Local but never added or changed leave the catalog when their folder hasn't been browsed for this long (checked when the library opens). Files stay on disk; browsing the folder shows them again.": "Ảnh chỉ xem trong Local mà chưa thêm hay sửa sẽ rời catalog khi thư mục không được duyệt trong thời gian này (kiểm tra khi mở thư viện). Tệp vẫn trên đĩa; duyệt lại thư mục sẽ thấy chúng.", + "Photos stay in All Photos. Deleting a folder also deletes its albums. You can undo this.": "Ảnh vẫn ở Tất cả ảnh. Xóa thư mục cũng xóa album bên trong. Bạn có thể hoàn tác.", "Photos that arrive in this folder (tethering, a scanner, a sync app) are added as soon as they're complete.": "Ảnh đến thư mục này (tethering, máy quét, app đồng bộ) được thêm ngay khi hoàn tất.", "Photos); importing (also by drag and drop), Find Missing Photos, Build / Discard Smart Previews, the Rename preview,": "Ảnh); nhập (cả kéo thả), Tìm ảnh thiếu, Tạo / Hủy Smart Preview, xem trước Đổi tên,", "Pick": "Đã chọn", @@ -1292,7 +1330,7 @@ "Presets & Profiles": "Thiết lập sẵn & Hồ sơ", "Presets (Shift+P)": "Thiết lập sẵn (Shift+P)", "Presets and profiles": "Thiết lập sẵn và hồ sơ", - "Presets ▾": "Thiết lập sẵn ▾", + "Presets ▾": "Thiết lập sẵn ⌄", "Press keys…": "Nhấn phím…", "Preview": "Xem trước", "Preview Build Progress": "Tiến độ tạo xem trước", @@ -1301,7 +1339,9 @@ "Preview size": "Kích thước xem trước", "Preview unavailable": "Không có xem trước", "Previews": "Xem trước", + "Previous History Step": "Bước lịch sử trước", "Previous Photo": "Ảnh trước", + "Primaries (x, y)": "Màu gốc (x, y)", "Print": "In", "Print…": "In…", "Processor": "Bộ xử lý", @@ -1312,6 +1352,8 @@ "Profile Vignetting": "Hồ sơ tối góc", "Profile:": "Hồ sơ:", "Profiles": "Hồ sơ", + "Profiles assigned in your desktop's colour settings are usually in ~/.local/share/icc.": "Hồ sơ gán trong cài đặt màu máy tính thường nằm ở ~/.local/share/icc.", + "Progressive": "Tiến dần", "Projection": "Chiếu", "Proof copy created": "Đã tạo bản proof", "Properties": "Thuộc tính", @@ -1326,6 +1368,7 @@ "Purple Hue Low": "Sắc tím thấp", "Purple Luminance": "Độ sáng tím", "Purple Saturation": "Độ bão hòa tím", + "Put New Keywords Inside": "Đặt từ khóa mới vào trong", "Put New Keywords Inside This Keyword": "Đặt từ khóa mới vào trong từ khóa này", "Put the locations you removed from Local back (no files change)": "Đưa các vị trí đã gỡ khỏi Local trở lại (không đổi tệp)", "Quality": "Chất lượng", @@ -1416,7 +1459,7 @@ "Relinked": "Đã liên kết lại", "Reload Changed Files": "Tải lại tệp đã đổi", "Reload from Disk": "Tải lại từ đĩa", - "Remove": "Gỡ", + "Remove": "Xóa", "Remove (H)": "Xóa (H)", "Remove CA": "Xóa quang sai sắc", "Remove Chromatic Aberration": "Xóa quang sai sắc", @@ -1440,7 +1483,7 @@ "Remove location info": "Xóa thông tin vị trí", "Remove missing photos from the library": "Gỡ ảnh mất khỏi thư viện", "Remove shortcut": "Gỡ lối tắt", - "Remove this face box (undo with Edit ▸ Undo)": "Gỡ khung khuôn mặt này (hoàn tác bằng Chỉnh sửa ▸ Hoàn tác)", + "Remove this face box (undo with Edit ▸ Undo)": "Gỡ khung khuôn mặt này (hoàn tác bằng Chỉnh sửa → Hoàn tác)", "Remove this filter": "Gỡ bộ lọc này", "Remove this group": "Gỡ nhóm này", "Remove this rule": "Gỡ quy tắc này", @@ -1499,7 +1542,7 @@ "Revert": "Hoàn tác", "Review": "Xem lại", "Review Import": "Xem lại nhập", - "Right-click a photo ▸ Set as Reference Photo, then View → Reference View (Shift+R)": "Nhấp phải ảnh ▸ Đặt làm ảnh tham chiếu, rồi Xem → Chế độ tham chiếu (Shift+R)", + "Right-click a photo ▸ Set as Reference Photo, then View → Reference View (Shift+R)": "Nhấp phải ảnh → Đặt làm ảnh tham chiếu, rồi Xem → Chế độ tham chiếu (Shift+R)", "Right-click a preset to delete it": "Nhấp phải thiết lập sẵn để xóa", "Rights Usage Terms": "Điều khoản sử dụng quyền", "Rotate": "Xoay", @@ -1511,6 +1554,13 @@ "Roundness": "Độ tròn", "Rules": "Quy tắc", "SAM 3 download stopped: it resumes where it left off next time.": "Tải SAM 3 đã dừng: lần sau sẽ tiếp tục từ chỗ dừng.", + "SDR": "SDR", + "SDR Brightness": "Độ sáng SDR", + "SDR Clarity": "Độ rõ SDR", + "SDR Contrast": "Tương phản SDR", + "SDR Highlights": "Vùng sáng SDR", + "SDR Shadows": "Vùng tối SDR", + "SDR Whites": "Vùng trắng SDR", "Sa": "T7", "Same as raw default": "Giống mặc định RAW", "Sample Mask Color": "Lấy mẫu màu mặt nạ", @@ -1541,6 +1591,7 @@ "Saving Lightroom import index…": "Đang lưu chỉ mục nhập Lightroom…", "Saving metadata to an XMP sidecar another application wrote no longer replaces it (issue #92): LightCraft merges its": "Lưu metadata vào sidecar XMP do ứng dụng khác ghi không còn thay thế (issue #92): LightCraft gộp", "Scale": "Tỷ lệ", + "Scan Folder for Changes": "Quét thư mục tìm thay đổi", "Scan failed": "Quét thất bại", "Scanning": "Đang quét", "Scanning folder": "Đang quét thư mục", @@ -1584,6 +1635,7 @@ "Set Crop": "Đặt cắt", "Set Develop Values": "Đặt giá trị chỉnh sửa", "Set Flag": "Đặt cờ", + "Set Folder Color Label": "Đặt nhãn màu thư mục", "Set Image Zoom and Pan": "Đặt thu phóng và pan ảnh", "Set Keyboard Shortcut": "Đặt phím tắt", "Set Mask Adjustments": "Đặt điều chỉnh mặt nạ", @@ -1645,6 +1697,7 @@ "Show destination gamut warning": "Hiện cảnh báo gamut đích", "Show display gamut warning": "Hiện cảnh báo gamut màn hình", "Show file names": "Hiện tên tệp", + "Show in Compare": "Hiện trong So sánh", "Show in Explorer": "Hiện trong Explorer", "Show in File Manager": "Hiện trong trình quản lý tệp", "Show in Finder": "Hiện trong trình quản lý tệp", @@ -1766,6 +1819,7 @@ "Tags: see Tags beside the template. Files are renamed on disk (with their XMP sidecars); existing names get -1, -2…": "Thẻ: xem Thẻ bên cạnh mẫu. Tệp đổi tên trên đĩa (kèm sidecar XMP); tên có sẵn thêm -1, -2…", "Take a snapshot": "Chụp snapshot", "Targeted Adjustment": "Điều chỉnh có mục tiêu", + "Targeted adjustment on: drag up or down on the photo · Esc to stop": "Chỉnh theo vùng đang bật: kéo lên/xuống trên ảnh · Esc để dừng", "Targeted adjustment: drag up/down on the photo to adjust the colours there": "Chỉnh có mục tiêu: kéo lên/xuống trên ảnh để chỉnh màu tại đó", "Targeted adjustment: drag up/down on the photo to adjust the curve there": "Chỉnh có mục tiêu: kéo lên/xuống trên ảnh để chỉnh đường cong tại đó", "Teal & Amber": "Xanh mòng két & hổ phách", @@ -1826,6 +1880,7 @@ "Tint": "Tông", "Title": "Tiêu đề", "Title metadata": "Siêu dữ liệu tiêu đề", + "To hand this editor the original file itself instead (the raw, without a copy: DxO PhotoLab, for example), right-click a photo → Edit In → Open Original in Other Editor (RAW, no copy).": "Để đưa tệp gốc cho trình này (raw, không sao chép: ví dụ DxO PhotoLab), nhấp phải ảnh → Chỉnh trong → Mở bản gốc trong trình khác (RAW, không sao chép).", "Toggle Keyword from Set": "Bật/tắt từ khóa từ bộ", "Toggle Mask": "Bật/tắt mặt nạ", "Toggle Section": "Bật/tắt mục", @@ -1868,6 +1923,7 @@ "Update Rules from Current Filter": "Cập nhật quy tắc từ bộ lọc hiện tại", "Update Version": "Cập nhật phiên bản", "Update Version with Current Settings": "Cập nhật phiên bản bằng thiết lập hiện tại", + "Update to Current Process": "Cập nhật lên quy trình hiện tại", "Update with Current Settings": "Cập nhật bằng thiết lập hiện tại", "Updated the edits saved in the external editor": "Đã cập nhật chỉnh sửa lưu trong trình soạn ngoài", "Upright": "Chỉnh thẳng", @@ -1875,7 +1931,9 @@ "Use": "Dùng", "Use Keyword Set": "Dùng bộ từ khóa", "Use Library Folder": "Dùng thư mục thư viện", + "Use Screen Profile": "Dùng hồ sơ màn hình", "Use camera-specific defaults": "Dùng mặc định theo máy ảnh", + "Use sRGB": "Dùng sRGB", "Use the GPU for rendering": "Dùng GPU để kết xuất", "User Presets": "Thiết lập sẵn người dùng", "Username": "Tên người dùng", @@ -1899,6 +1957,7 @@ "Vintage": "Vintage", "Virtual Copy": "Bản sao ảo", "Visible": "Hiển thị", + "Visualize HDR": "Hình dung HDR", "Visualize Spots": "Hiển thị điểm bụi", "Visualize Spots (A)": "Hiển thị điểm bụi (A)", "Visualize range": "Hiển thị dải", @@ -1962,7 +2021,7 @@ "already has a `thumbs/` folder of other pictures no longer loses them when the cache is trimmed or cleared.": "đã có thư mục `thumbs/` của ảnh khác không còn mất chúng khi cắt gọn hoặc xóa cache.", "and": "và", "and checks the file before using it. Masks keep their selection, so they render and export without the model.": "và kiểm tra tệp trước khi dùng. Mặt nạ giữ vùng chọn, nên kết xuất và xuất không cần mô hình.", - "and every imported photo as one zip, and File ▸ Restore Library from Backup… brings it back (the current library": "và mọi ảnh đã nhập thành một zip, và Tệp ▸ Khôi phục thư viện từ bản sao lưu… đưa lại (thư viện hiện tại", + "and every imported photo as one zip, and File ▸ Restore Library from Backup… brings it back (the current library": "và mọi ảnh đã nhập thành một zip, và Tệp → Khôi phục thư viện từ bản sao lưu… đưa lại (thư viện hiện tại", "and never freezes the window. It is optional and not part of LightCraft (Meta's SAM License, about 3.4 GB): the": "và không bao giờ đóng băng cửa sổ. Tùy chọn và không thuộc LightCraft (SAM License của Meta, khoảng 3,4 GB):", "any": "bất kỳ", "are empty": "trống", @@ -1988,7 +2047,7 @@ "contains": "chứa", "copy is verified and in the library. Duplicates and files that fail stay where they were.": "bản sao được xác minh và có trong thư viện. Trùng lặp và tệp lỗi giữ nguyên chỗ.", "copyrighted": "có bản quyền", - "data is not decoded yet, so they stay preview-only. For CR3s imported earlier, Photo ▸ Reload from Disk (now in": "dữ liệu chưa giải mã, nên vẫn chỉ xem trước. Với CR3 nhập trước đó, Ảnh ▸ Tải lại từ đĩa (giờ trong", + "data is not decoded yet, so they stay preview-only. For CR3s imported earlier, Photo ▸ Reload from Disk (now in": "dữ liệu chưa giải mã, nên vẫn chỉ xem trước. Với CR3 nhập trước đó, Ảnh → Tải lại từ đĩa (giờ trong", "day 01–31": "ngày 01–31", "days": "ngày", "denoiseModel.accept": "denoiseModel.accept", @@ -2017,7 +2076,7 @@ "immutable, and HOSTING.md describes the actual build.": "bất biến, và HOSTING.md mô tả bản build thực tế.", "import — so \"import complete\" means the copies are good before you format the card — and a name that is taken": "nhập — nên \"nhập xong\" nghĩa là bản sao ổn trước khi format thẻ — và tên đã được dùng", "imported as \"preview only\" switch over on Reload.": "đã nhập \"chỉ xem trước\" chuyển sang khi Tải lại.", - "imported earlier switch over with Photo ▸ Reload from Disk.": "nhập trước đó chuyển sang với Ảnh ▸ Tải lại từ đĩa.", + "imported earlier switch over with Photo ▸ Reload from Disk.": "nhập trước đó chuyển sang với Ảnh → Tải lại từ đĩa.", "in short pieces so slow integrated GPUs aren't reset by their watchdog. `ui.inspect` → `perf`": "theo đoạn ngắn để GPU tích hợp chậm không bị watchdog reset. `ui.inspect` → `perf`", "in use": "đang dùng", "includes the folders inside it": "bao gồm thư mục bên trong", @@ -2034,7 +2093,7 @@ "is kept). A failed save (storage full) now shows the unsaved warning and is retried, a photo that can't be stored": "được giữ). Lưu thất bại (hết dung lượng) giờ hiện cảnh báo chưa lưu và thử lại, ảnh không lưu được", "is refused and nothing is overwritten.": "bị từ chối và không gì bị ghi đè.", "is unknown": "không rõ", - "is up, and only when Settings ▸ Performance ▸ Use the GPU for rendering is on; if LightCraft ever dies while": "sẵn sàng, và chỉ khi Cài đặt ▸ Hiệu năng ▸ Dùng GPU để kết xuất bật; nếu LightCraft thoát đột ngột khi", + "is up, and only when Settings ▸ Performance ▸ Use the GPU for rendering is on; if LightCraft ever dies while": "sẵn sàng, và chỉ khi Cài đặt → Hiệu năng → Dùng GPU để kết xuất bật; nếu LightCraft thoát đột ngột khi", "is yes or no": "là có hoặc không", "is ≤": "≤", "is ≥": "≥", @@ -2120,7 +2179,7 @@ "starts using it for AI Denoise": "bắt đầu dùng nó cho Khử nhiễu AI", "starts with": "bắt đầu bằng", "still saves your queued changes in the closing snapshot.": "vẫn lưu thay đổi đang chờ trong snapshot khi đóng.", - "synced. Import ▸ Copy now checks each copy against the content hash taken while scanning the card instead of": "đồng bộ. Nhập ▸ Sao chép giờ kiểm tra mỗi bản sao với hash nội dung lấy khi quét thẻ thay vì", + "synced. Import ▸ Copy now checks each copy against the content hash taken while scanning the card instead of": "đồng bộ. Nhập → Sao chép giờ kiểm tra mỗi bản sao với hash nội dung lấy khi quét thẻ thay vì", "terms unclear": "điều khoản không rõ", "the JPEG uses `IMG_0001.JPG.xmp`.": "JPEG dùng `IMG_0001.JPG.xmp`.", "the Local folder tree and Auto Import read the disk on worker threads too. The import progress window has Cancel.": "cây thư mục Local và Tự động nhập cũng đọc đĩa trên worker thread. Cửa sổ tiến trình nhập có Hủy.", @@ -2133,6 +2192,7 @@ "the selected photos": "ảnh đã chọn", "their folder has not been browsed for 30 days — your files and sidecars stay, and browsing the folder shows them": "thư mục không được duyệt 30 ngày — tệp và sidecar vẫn còn, duyệt lại thư mục sẽ thấy chúng", "this photo": "ảnh này", + "this screen's profile": "hồ sơ màn hình này", "to the camera's own JPEG.": "sang JPEG của máy ảnh.", "true": "true", "unknown": "không xác định", diff --git a/crates/ui-egui/src/i18n.rs b/crates/ui-egui/src/i18n.rs index 3a2f4158d..97be29b6a 100644 --- a/crates/ui-egui/src/i18n.rs +++ b/crates/ui-egui/src/i18n.rs @@ -1355,13 +1355,61 @@ mod tests { set_language(Locale::En); } - /// English values that Vietnamese intentionally keeps unchanged (product names, standards, - /// acronyms). Every other required display label must differ from its English source. + /// English catalog values Vietnamese keeps on purpose. Grouped by reason: + /// standards/acronyms (`ISO`, `HDR`, …), product names (`LightCraft`, `PhotoCraft`), + /// file-type tokens (`Raw`/`raw`, `video`), look names left as established labels + /// (`Bleach Bypass`, `Vintage`), and machine ids that must stay byte-identical + /// (`publicDomain`, `denoiseModel.accept`). `Album` stays as the common loanword. + /// Every other required label must differ from its English source. const VI_INTENTIONAL_ENGLISH: &[&str] = &[ - "OK", "ISO", "RGB", "HDR", "JPEG", "PNG", "TIFF", "WebP", "AVIF", "HEIF", "HEIC", "DNG", "ICC", "EXIF", "XMP", - "GPU", "MCP", "SAM", "RAW", "Raw", "raw", "B&W", "LUT", "LightCraft", "ArtCraft", "GitHub", "Discord", "English", - "日本語", "繁體中文(台灣)", "Display P3", "Bleach Bypass", "Cross Process", "HDR…", "video", "Video", "true", - "false", "Album", "Vintage", "publicDomain", "denoiseModel.accept", "Panorama", "Panorama…", + "OK", + "ISO", + "RGB", + "HDR", + "JPEG", + "PNG", + "TIFF", + "WebP", + "AVIF", + "HEIF", + "HEIC", + "DNG", + "ICC", + "EXIF", + "XMP", + "GPU", + "MCP", + "SAM", + "RAW", + "Raw", + "raw", + "B&W", + "LUT", + "LightCraft", + "ArtCraft", + "GitHub", + "Discord", + "English", + "日本語", + "繁體中文(台灣)", + "Display P3", + "Bleach Bypass", + "Cross Process", + "HDR…", + "video", + "Video", + "true", + "false", + "Album", + "Vintage", + "publicDomain", + "denoiseModel.accept", + "Panorama", + "Panorama…", + "PhotoCraft", + "SDR", + "Matrix/TRC", + "LUT-based", ]; /// Vietnamese covers every current catalog message and every required display label. @@ -1472,12 +1520,13 @@ mod tests { ctx.fonts_mut(|fonts| { for family in [egui::FontFamily::Proportional, egui::FontFamily::Name(crate::theme::FONT_SEMIBOLD.into())] { let font = egui::FontId::new(13.0, family); - for ch in "ĂăÂâÊêÔôƠơƯưĐđáàảãạéèẻẽẹíìỉĩịóòỏõọúùủũụýỳỷỹỵ" - .chars() - .chain(Locale::Vi.catalog().values().flat_map(|text| text.chars()).filter(|ch| { - ('\u{00c0}'..='\u{024f}').contains(ch) || ('\u{1ea0}'..='\u{1ef9}').contains(ch) - })) - { + for ch in "ĂăÂâÊêÔôƠơƯưĐđáàảãạéèẻẽẹíìỉĩịóòỏõọúùủũụýỳỷỹỵ".chars().chain( + Locale::Vi + .catalog() + .values() + .flat_map(|text| text.chars()) + .filter(|ch| ('\u{00c0}'..='\u{024f}').contains(ch) || ('\u{1ea0}'..='\u{1ef9}').contains(ch)), + ) { assert!(fonts.has_glyph(&font, ch), "missing Vietnamese glyph {ch}"); } }