From d668ae4136713dc6f09300a30dd46e14bf217c29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?T=E1=BB=91ng=20Huy=20S=C6=A1n?= Date: Mon, 26 Oct 2026 10:44:34 +0700 Subject: [PATCH] i18n(vi): expand Vietnamese catalog with 421 missing interface messages --- crates/ui-egui/locales/vi.json | 423 ++++++++++++++++++++++++++++++++- docs/localization-parity.md | 3 +- docs/localization-vi.md | 6 +- 3 files changed, 427 insertions(+), 5 deletions(-) diff --git a/crates/ui-egui/locales/vi.json b/crates/ui-egui/locales/vi.json index e4fb8feb8..6e98d36f5 100644 --- a/crates/ui-egui/locales/vi.json +++ b/crates/ui-egui/locales/vi.json @@ -2235,5 +2235,426 @@ "Drop to open the face model": "Thả để mở mô hình khuôn mặt", "Dropped Files": "Tệp đã thả", "Finish Lightroom catalog import before adding photos": "Hoàn tất nhập danh mục Lightroom trước khi thêm ảnh", - "Import dropped files without review": "Nhập các tệp đã thả mà không xem lại" + "Import dropped files without review": "Nhập các tệp đã thả mà không xem lại", + "(not in the library)": "(không có trong thư viện)", + "1 raw can now be developed from its raw data": "Hiện có thể xử lý 1 tệp RAW từ dữ liệu thô", + "150 dpi · sRGB · current edits · fit without cropping": "150 dpi · sRGB · chỉnh sửa hiện tại · vừa khung không cắt xén", + "A 16:9 frame with black bars above and below, the title in the corner, fades through black and a closing card.": "Khung hình 16:9 với dải đen trên và dưới, tiêu đề ở góc, chuyển mờ qua nền đen và thẻ kết thúc.", + "A dark slate backdrop with the exposure, ISO and focal length, then the camera and lens, under each photo.": "Phông nền xám đá tối với thông số phơi sáng, ISO và tiêu cự, cùng máy ảnh và ống kính bên dưới mỗi ảnh.", + "A face model uses the GPU only when a check shows it gives the same results faster.": "Mô hình khuôn mặt chỉ dùng GPU khi kiểm tra cho thấy kết quả tương đương nhưng nhanh hơn.", + "A light grey wall with a white mat and a soft shadow; the caption and the rating under the photo.": "Tường xám nhạt với bo viền trắng và bóng đổ mềm; chú thích và đánh giá nằm dưới ảnh.", + "A pen's pressure sets the size and flow of the brush": "Lực nhấn bút điều chỉnh kích thước và lưu lượng của cọ", + "A slide stays up for its duration, its fade in included. A fade of 0 cuts.": "Mỗi trang trình chiếu hiển thị trong thời lượng đã đặt, tính cả lúc hiện dần. Đặt chuyển mờ bằng 0 để chuyển cảnh ngay.", + "AV1 video, each slide held for its duration with its fades. No sound: music is not exported yet.": "Video AV1, mỗi trang trình chiếu giữ theo thời lượng cùng hiệu ứng chuyển mờ. Không có âm thanh: chưa hỗ trợ xuất nhạc.", + "Add Print Cell": "Thêm ô in", + "Add a Face Recognition Model": "Thêm mô hình nhận diện khuôn mặt", + "Add a cell": "Thêm ô", + "Add a model file…": "Thêm tệp mô hình…", + "Add text overlay": "Thêm lớp phủ văn bản", + "Already installed. Installing again is harmless.": "Đã được cài đặt. Cài đặt lại cũng không gây ảnh hưởng gì.", + "Also the masks of the same name on the other selected photos": "Áp dụng cả cho các mặt nạ cùng tên trên những ảnh đã chọn khác", + "Anchored to": "Neo vào", + "Animal Eye Tracking": "Theo dõi mắt động vật", + "Another library was opened since the photos were dropped: nothing was moved": "Một thư viện khác đã được mở kể từ khi thả ảnh: chưa di chuyển tệp nào", + "Apply Mask Effect": "Áp dụng hiệu ứng mặt nạ", + "Apply Print Template": "Áp dụng mẫu in", + "Apply Slideshow Template": "Áp dụng mẫu trình chiếu", + "Apply to All Masks": "Áp dụng cho tất cả mặt nạ", + "Arrange Print Cell": "Sắp xếp ô in", + "Aspect preview": "Xem trước tỷ lệ", + "Auto Layout": "Bố cục tự động", + "Automatically show full screen": "Tự động hiển thị toàn màn hình", + "Backdrop": "Phông nền", + "Background colour": "Màu nền", + "Background image": "Ảnh nền", + "Before the last template": "Trước mẫu cuối cùng", + "Bottom": "Dưới", + "Built-in": "Tích hợp sẵn", + "CPU": "CPU", + "Can't be moved here": "Không thể chuyển vào đây", + "Cast shadow": "Đổ bóng", + "Center": "Giữa", + "Checking raw files": "Đang kiểm tra tệp RAW", + "Checking the GPU for faces": "Đang kiểm tra GPU cho nhận diện khuôn mặt", + "Checking the GPU…": "Đang kiểm tra GPU…", + "Choose Layout Image…": "Chọn ảnh bố cục…", + "Choose Monitor Profile": "Chọn hồ sơ màn hình", + "Choose a PDF destination after confirming. Print the PDF from your viewer.": "Chọn nơi lưu PDF sau khi xác nhận. Hãy in tệp PDF từ trình xem của bạn.", + "Choose a group": "Chọn một nhóm", + "Choose at least one setting to include": "Chọn ít nhất một cài đặt để bao gồm", + "Cinema Wide": "Điện ảnh rộng", + "Clear Print Layout": "Xóa bố cục in", + "Click a cell to move, resize or arrange it": "Nhấp vào ô để di chuyển, đổi kích thước hoặc sắp xếp", + "Click a template to apply it; point at one to preview it on the selected photo. Right-click your own to update, rename, export or delete it.": "Nhấp vào mẫu để áp dụng; trỏ vào mẫu để xem trước trên ảnh đã chọn. Nhấp chuột phải vào mẫu của bạn để cập nhật, đổi tên, xuất hoặc xóa.", + "Click to name this face": "Nhấp để đặt tên cho khuôn mặt này", + "Click to type a value, drag to change it": "Nhấp để nhập giá trị, kéo để thay đổi", + "Color Overlay": "Phủ màu", + "Color Overlay on B&W": "Phủ màu trên Đen & Trắng", + "Color space: Rec. 2020 HLG (HDR AVIF)": "Không gian màu: Rec. 2020 HLG (HDR AVIF)", + "Color space: Rec. 2020 PQ (HDR AVIF)": "Không gian màu: Rec. 2020 PQ (HDR AVIF)", + "Color space: Rec. 2020 PQ (HDR JPEG XL)": "Không gian màu: Rec. 2020 PQ (HDR JPEG XL)", + "Color space: Rec. 2020 PQ, 16-bit (HDR PNG)": "Không gian màu: Rec. 2020 PQ, 16-bit (HDR PNG)", + "Color wheel": "Bánh xe màu", + "Colour": "Màu", + "Colour only": "Chỉ màu", + "Colour wash": "Phủ sắc màu", + "Combine with the existing person": "Gộp với người đã có", + "Confirm before moving photos to another folder on disk": "Xác nhận trước khi di chuyển ảnh sang thư mục khác trên ổ đĩa", + "Contact Sheet PDF": "Bảng liên hệ PDF", + "Container": "Vùng chứa", + "Copy Settings…": "Sao chép cài đặt…", + "Curve channel": "Kênh đường cong", + "Custom AF Area": "Vùng AF tùy chỉnh", + "Cycle Flag": "Chuyển đổi cờ", + "Cycle Tool Overlay": "Chuyển đổi lớp phủ công cụ", + "Decrease Flag Status": "Giảm trạng thái cờ", + "Decrease Grid Thumbnail Size": "Giảm kích thước ảnh thu nhỏ trên lưới", + "Delete Cell": "Xóa ô", + "Delete Mask Effect": "Xóa hiệu ứng mặt nạ", + "Delete Print Cell": "Xóa ô in", + "Delete Print Template": "Xóa mẫu in", + "Delete Slideshow Template": "Xóa mẫu trình chiếu", + "Delete…": "Xóa…", + "Destination library": "Thư viện đích", + "Detection": "Phát hiện", + "Don't ask again": "Không hỏi lại", + "Duplicate Mask Effect": "Nhân bản hiệu ứng mặt nạ", + "Duration": "Thời lượng", + "Each photo as large as it fits, on black, with a short crossfade. Nothing drawn over it.": "Mỗi ảnh hiển thị lớn nhất vừa khung trên nền đen, với chuyển mờ ngắn. Không vẽ đè thông tin lên ảnh.", + "Edge to Edge": "Tràn viền", + "End": "Kết thúc", + "End Slideshow": "Kết thúc trình chiếu", + "Ending": "Kết thúc", + "Ending screen": "Màn hình kết thúc", + "Enter to confirm, Esc to cancel": "Enter để xác nhận, Esc để hủy", + "Every photo cropped to fill the whole screen, with slow crossfades.": "Mọi ảnh được cắt vừa kín toàn màn hình, với hiệu ứng chuyển mờ chậm.", + "Expanded Flexible Spot": "Điểm linh hoạt mở rộng", + "Export Effect Presets": "Xuất thiết lập hiệu ứng sẵn", + "Export Effect Presets…": "Xuất thiết lập hiệu ứng sẵn…", + "Export JPEG…": "Xuất JPEG…", + "Export Mask Effects": "Xuất hiệu ứng mặt nạ", + "Export PDF…": "Xuất PDF…", + "Export Slideshow": "Xuất bản trình chiếu", + "Export Slideshow Template": "Xuất mẫu trình chiếu", + "Export Slideshow: folder for the JPEG files": "Xuất bản trình chiếu: thư mục chứa tệp JPEG", + "Export Slideshow…": "Xuất bản trình chiếu…", + "Export Video…": "Xuất video…", + "Export to": "Xuất ra", + "Exporting slideshow": "Đang xuất bản trình chiếu", + "Face Models on the GPU": "Mô hình khuôn mặt trên GPU", + "Face Tracking": "Theo dõi khuôn mặt", + "Face models (ONNX)": "Mô hình khuôn mặt (ONNX)", + "Face tracking": "Theo dõi khuôn mặt", + "Fade": "Giảm dần", + "Fade duration": "Thời lượng chuyển mờ", + "Favorite": "Yêu thích", + "Favorite Mask Effect": "Yêu thích hiệu ứng mặt nạ", + "Filename captions": "Chú thích tên tệp", + "Filters": "Bộ lọc", + "Flexible Spot": "Điểm linh hoạt", + "Focus": "Lấy nét", + "Focus point": "Điểm lấy nét", + "Frame rate": "Tốc độ khung hình", + "Gallery Wall": "Tường trưng bày", + "Group (optional)": "Nhóm (tùy chọn)", + "Grouped by parent": "Nhóm theo mục cha", + "Grouped: keywords inside the same keyword share a line naming it, and long lists and the suggestions are shortened.": "Theo nhóm: các từ khóa con trong cùng một từ khóa cha sẽ chung một dòng có tên mục cha, đồng thời danh sách dài và gợi ý được rút gọn.", + "HDR TIFF needs 32-bit float.": "TIFF HDR cần định dạng dấu phẩy động 32-bit.", + "HDR for Each Bracket Set": "Tạo HDR cho mỗi bộ chụp bù trừ sáng", + "HDR output": "Đầu ra HDR", + "Highlighted: sliders this mask changes. Sliders left out stay as they are when the preset is applied.": "Được tô sáng: các thanh trượt mà mặt nạ này thay đổi. Những thanh trượt không chọn sẽ giữ nguyên khi áp dụng thiết lập sẵn.", + "Hold View Until Refreshed": "Giữ nguyên chế độ xem cho đến khi làm mới", + "Human Eye Tracking": "Theo dõi mắt người", + "ICC Profiles": "Hồ sơ ICC", + "Identity plate": "Biểu trưng định danh", + "Image on Black": "Ảnh trên nền đen", + "Image on White": "Ảnh trên nền trắng", + "Import Mask Effects": "Nhập hiệu ứng mặt nạ", + "Import Slideshow Template": "Nhập mẫu trình chiếu", + "Import Slideshow Templates": "Nhập các mẫu trình chiếu", + "Import photos to get started": "Nhập ảnh để bắt đầu", + "Import…": "Nhập…", + "Include Amount": "Bao gồm Mức tác động", + "Include brush size, feather and flow": "Bao gồm kích thước cọ, độ nhòe biên và lưu lượng", + "Increase Flag Status": "Tăng trạng thái cờ", + "Increase Grid Thumbnail Size": "Tăng kích thước ảnh thu nhỏ trên lưới", + "Intro": "Mở đầu", + "Intro screen": "Màn hình mở đầu", + "Keywords of the selection": "Từ khóa của vùng chọn", + "Layout": "Bố cục", + "Layout Image Matte": "Bo viền ảnh bố cục", + "Layout Image Opacity": "Độ mờ đục ảnh bố cục", + "Left": "Trái", + "Letter": "Thư", + "LightCraft Effect Presets": "Thiết lập hiệu ứng LightCraft", + "LightCraft stopped": "LightCraft đã dừng", + "Lightroom Catalog Import": "Nhập danh mục Lightroom", + "Lightroom catalogs import into the open library; no separate catalog folder is created.": "Danh mục Lightroom được nhập vào thư viện đang mở; không tạo thư mục danh mục riêng.", + "Link all margins": "Liên kết tất cả các lề", + "Local photos aren't in the library yet: Add to My Photos first, then move them": "Ảnh cục bộ chưa có trong thư viện: hãy Thêm vào Ảnh của tôi trước, sau đó mới di chuyển", + "Lock On AF": "AF bám nét khóa mục tiêu", + "Manage Effect Presets…": "Quản lý thiết lập hiệu ứng sẵn…", + "Manage Presets…": "Quản lý thiết lập sẵn…", + "Managed by Printer (Adobe RGB)": "Do máy in quản lý (Adobe RGB)", + "Managed by Printer (sRGB)": "Do máy in quản lý (sRGB)", + "Margins": "Lề", + "Margins are a share of the slide's shorter side, so slides look the same on any screen.": "Lề được tính theo tỷ lệ cạnh ngắn của trang chiếu, giúp trang chiếu hiển thị đồng nhất trên mọi màn hình.", + "Mask": "Mặt nạ", + "Mask Effect Presets": "Thiết lập hiệu ứng mặt nạ sẵn", + "Masks keep their sliders. Export presets first to keep a copy.": "Các mặt nạ vẫn giữ nguyên thanh trượt. Hãy xuất thiết lập sẵn trước để lưu bản sao.", + "Move Mask Effect to Group": "Chuyển hiệu ứng mặt nạ vào nhóm", + "Move Photos": "Di chuyển ảnh", + "Move Print Cell": "Di chuyển ô in", + "Move Print Cell to Page": "Chuyển ô in sang trang", + "Move to Group…": "Di chuyển vào nhóm…", + "Multi": "Đa vùng", + "Name the preset": "Đặt tên thiết lập sẵn", + "New Print Page": "Trang in mới", + "New group — Return": "Nhóm mới — nhấn Return", + "New spot (Return adds it here)": "Điểm mới (nhấn Return để thêm tại đây)", + "New template name": "Tên mẫu mới", + "Next Slide": "Trang chiếu tiếp theo", + "Next page": "Trang tiếp theo", + "No Matte": "Không bo viền", + "No change": "Không thay đổi", + "No effect matches": "Không có hiệu ứng phù hợp", + "No effect presets yet": "Chưa có thiết lập hiệu ứng sẵn", + "No lens data embedded in this file.": "Không có dữ liệu ống kính nhúng trong tệp này.", + "None yet: save the current settings as a template below.": "Chưa có mẫu nào: hãy lưu cài đặt hiện tại thành mẫu ở bên dưới.", + "Not loaded yet": "Chưa tải", + "Numbered JPEG files (name-001.jpg…) in a new folder named in the next step.": "Các tệp JPEG đánh số thứ tự (tên-001.jpg…) trong thư mục mới được đặt tên ở bước tiếp theo.", + "Offset": "Dịch lệch", + "One page per slide (the long side in pixels = points), with the slide duration and fade for the viewer's presentation mode.": "Mỗi trang trình chiếu là một trang (cạnh dài tính bằng pixel = point), kèm thời lượng và hiệu ứng chuyển mờ cho chế độ thuyết trình của trình xem.", + "One photo fills each page inside the margins.": "Mỗi ảnh lấp đầy một trang bên trong phần lề.", + "Open Settings": "Mở Cài đặt", + "Overlay color": "Màu lớp phủ", + "Overlays": "Lớp phủ", + "Override colour": "Ghi đè màu", + "Own duration (off: the slide duration)": "Thời lượng riêng (tắt: dùng thời lượng trang chiếu)", + "Page": "Trang", + "Page Options": "Tùy chọn trang", + "Pause / Resume Slideshow": "Tạm dừng / Tiếp tục trình chiếu", + "Pen Pressure": "Áp lực bút", + "Photos edited in HDR: JPEG with an HDR gain map (looks right everywhere, brighter highlights on HDR displays), AVIF as 10-bit, PNG and JPEG XL as 16-bit Rec. 2020 PQ; TIFF needs 32-bit float": "Ảnh chỉnh sửa ở chế độ HDR: JPEG kèm bản đồ khuếch đại HDR (hiển thị chuẩn ở mọi nơi và sáng rõ vùng cao quang trên màn hình HDR), AVIF 10-bit, PNG và JPEG XL ở dạng 16-bit Rec. 2020 PQ; TIFF cần định dạng dấu phẩy động 32-bit", + "Photos you import show up here. Nothing is copied or moved unless you choose to.": "Những ảnh bạn nhập sẽ hiển thị tại đây. Không có tệp nào bị sao chép hay di chuyển trừ khi bạn chọn.", + "Plain Black": "Đen tuyền", + "Playback": "Phát trình chiếu", + "Previous Slide": "Trang chiếu trước", + "Previous page": "Trang trước", + "Previous settings": "Cài đặt trước đó", + "Print Settings": "Cài đặt in", + "Print Templates": "Mẫu in", + "Print to PDF": "In thành PDF", + "Rating stars": "Sao đánh giá", + "Read Focus Points": "Đọc điểm lấy nét", + "Read Focus Points in the Background": "Đọc điểm lấy nét trong nền", + "Reading focus points": "Đang đọc điểm lấy nét", + "Recheck Preview-Only Raws": "Kiểm tra lại các tệp RAW chỉ có xem trước", + "Recognition": "Nhận diện", + "Refresh View": "Làm mới chế độ xem", + "Remove Folder Color Label": "Xóa nhãn màu thư mục", + "Remove region": "Xóa vùng", + "Rename Mask Effect": "Đổi tên hiệu ứng mặt nạ", + "Rename Mask Effect Group": "Đổi tên nhóm hiệu ứng mặt nạ", + "Rename Person": "Đổi tên người", + "Rename Person…": "Đổi tên người…", + "Rename Slideshow Template": "Đổi tên mẫu trình chiếu", + "Render behind image": "Kết xuất phía sau ảnh", + "Renders the next slides while the current one is up, so fades never wait. Off: each slide renders when it is due (less memory and work).": "Kết xuất trước các trang chiếu kế tiếp trong khi trang hiện tại đang hiển thị để hiệu ứng chuyển mờ luôn mượt. Tắt: chỉ kết xuất từng trang khi đến lượt (tiết kiệm bộ nhớ và tài nguyên hơn).", + "Reset Print Settings": "Đặt lại cài đặt in", + "Reset Sliders": "Đặt lại thanh trượt", + "Reset all edits": "Đặt lại mọi chỉnh sửa", + "Reset layout": "Đặt lại bố cục", + "Resize Print Cell": "Đổi kích thước ô in", + "Resize region": "Đổi kích thước vùng", + "Return creates this keyword and gives it to the selected photos": "Nhấn Return để tạo từ khóa này và gắn cho các ảnh đã chọn", + "Right": "Phải", + "Run face models on the CPU only": "Chỉ chạy mô hình khuôn mặt trên CPU", + "Same folder as original photo": "Cùng thư mục với ảnh gốc", + "Save Current Settings as New Effect Preset…": "Lưu cài đặt hiện tại thành thiết lập hiệu ứng mới…", + "Save Current Settings as New Preset…": "Lưu cài đặt hiện tại thành thiết lập sẵn mới…", + "Save Mask Effect": "Lưu hiệu ứng mặt nạ", + "Save Print Template": "Lưu mẫu in", + "Save Slideshow Template": "Lưu mẫu trình chiếu", + "Save as Template": "Lưu thành mẫu", + "Search effects": "Tìm hiệu ứng", + "Select Only Active Photo": "Chỉ chọn ảnh đang mở", + "Select a mask to apply or update presets.": "Chọn một mặt nạ để áp dụng hoặc cập nhật thiết lập sẵn.", + "Select a photo to preview its slide": "Chọn một ảnh để xem trước trang trình chiếu", + "Select a photo, then turn this on to fill the slide behind every photo with it.": "Chọn một ảnh, sau đó bật tùy chọn này để dùng ảnh đó làm nền trang chiếu phía sau mọi ảnh.", + "Select all": "Chọn tất cả", + "Select none": "Bỏ chọn tất cả", + "Separate several keywords with commas. Return gives them to the selected photos.": "Ngăn cách nhiều từ khóa bằng dấu phẩy. Nhấn Return để gắn cho các ảnh đã chọn.", + "Set Effect for New Masks": "Đặt hiệu ứng cho mặt nạ mới", + "Set Print Cell Photo": "Đặt ảnh cho ô in", + "Set Print Settings": "Đặt cài đặt in", + "Settings → Confirm before moving photos to another folder on disk turns it back on": "Có thể bật lại trong Cài đặt → Xác nhận trước khi di chuyển ảnh sang thư mục khác trên ổ đĩa", + "Shooting Data": "Thông số chụp", + "Show / hide": "Hiện / ẩn", + "Show Layout Image": "Hiện ảnh bố cục", + "Show every keyword of the selected photos": "Hiện mọi từ khóa của các ảnh đã chọn", + "Show fewer": "Hiện ít hơn", + "Show guides": "Hiện đường gióng", + "Show in Library": "Hiện trong Thư viện", + "Show mask": "Hiện mặt nạ", + "Show photos": "Hiện ảnh", + "Show the import review when a camera or card is connected": "Hiện hộp thoại xem lại nhập ảnh khi kết nối máy ảnh hoặc thẻ nhớ", + "Show this wheel's effect": "Hiện hiệu ứng của bánh xe màu này", + "Shows": "Hiển thị", + "Slide": "Trang chiếu", + "Slide duration": "Thời lượng trang chiếu", + "Slides use the slideshow's layout, overlays and intro and ending screens, in view order.": "Các trang chiếu sử dụng bố cục, lớp phủ cùng màn hình mở đầu và kết thúc của bản trình chiếu, theo thứ tự đang xem.", + "Slideshow Export Status": "Trạng thái xuất bản trình chiếu", + "Slideshow Layout Settings": "Cài đặt bố cục trình chiếu", + "Slideshow Options…": "Tùy chọn trình chiếu…", + "Slideshow Overlay Settings": "Cài đặt lớp phủ trình chiếu", + "Slideshow Playback Settings": "Cài đặt phát trình chiếu", + "Slideshow Slide Preview": "Xem trước trang trình chiếu", + "Slideshow Templates": "Mẫu trình chiếu", + "Slideshow Title Settings": "Cài đặt tiêu đề trình chiếu", + "Slideshow in the View menu plays the photos in view from the selected one. These settings are saved with the library.": "Trình chiếu trong trình đơn Xem sẽ phát các ảnh đang hiển thị bắt đầu từ ảnh đang chọn. Những cài đặt này được lưu cùng thư viện.", + "Smart albums update automatically: change their rules, or use Photo ▸ Delete Photo": "Album thông minh tự động cập nhật: hãy thay đổi quy tắc hoặc dùng Ảnh → Xóa ảnh", + "Solo Mode": "Chế độ đơn (Solo)", + "Specific folder": "Thư mục cụ thể", + "Spot": "Chấm", + "Stroke border": "Đường viền nét", + "Template name": "Tên mẫu", + "Templates": "Mẫu", + "Text overlays": "Lớp phủ văn bản", + "The ending screen, after the last photo.": "Màn hình kết thúc, hiển thị sau bức ảnh cuối cùng.", + "The export watermark, drawn on the photo and sized relative to it.": "Hình mờ xuất ảnh, được vẽ lên ảnh và co giãn tỷ lệ theo kích thước ảnh.", + "The intro plays once before the first photo; the ending after the last photo when Repeat is off. The identity plate is the one set under Overlays. Titles fade like slides and random order never moves them.": "Màn hình mở đầu phát một lần trước ảnh đầu tiên; màn hình kết thúc phát sau ảnh cuối cùng khi tắt Lặp lại. Biểu trưng định danh được lấy từ phần Lớp phủ. Tiêu đề chuyển mờ giống như trang chiếu và không bị đổi vị trí khi bật thứ tự ngẫu nhiên.", + "The intro screen, before the first photo.": "Màn hình mở đầu, hiển thị trước bức ảnh đầu tiên.", + "The layout image can't be shown": "Không thể hiển thị ảnh bố cục", + "The photos in view as slides, with the settings above. Progress shows in the activity stack.": "Xuất các ảnh đang xem thành trang trình chiếu với cài đặt ở trên. Tiến độ sẽ hiển thị trong ngăn hoạt động.", + "The selected photo as a slide. Playback fills the screen; the aspect preview only changes this preview.": "Hiển thị ảnh đang chọn dưới dạng trang trình chiếu. Khi phát sẽ lấp đầy màn hình; xem trước tỷ lệ chỉ thay đổi khung xem trước này.", + "Their files and XMP sidecars move on disk. Edit → Undo moves them back.": "Các tệp ảnh và tệp phụ XMP sẽ được di chuyển trên ổ đĩa. Chọn Chỉnh sửa → Hoàn tác để chuyển về chỗ cũ.", + "Their photos in the grid": "Ảnh của họ trong lưới", + "These photos are only in memory. Open a library on disk and import the catalog again to save them.": "Những ảnh này chỉ đang lưu trong bộ nhớ. Hãy mở một thư viện trên ổ đĩa và nhập lại danh mục để lưu chúng.", + "This page setup is not valid": "Thiết lập trang này không hợp lệ", + "This raw is now developed from its raw data": "Tệp RAW này hiện đã được xử lý từ dữ liệu thô", + "This raw variant still can't be decoded": "Biến thể RAW này hiện vẫn chưa thể giải mã", + "This row covers more than one disk: drop on a folder inside it": "Dòng này bao gồm nhiều ổ đĩa: hãy thả vào một thư mục cụ thể bên trong", + "This screen is off: turn it on under Titles to play it.": "Màn hình này đang tắt: hãy bật trong mục Tiêu đề để phát.", + "Thumbnail size": "Kích thước ảnh thu nhỏ", + "Tidying the thumbnail cache": "Đang dọn dẹp bộ nhớ đệm ảnh thu nhỏ", + "Title bar": "Thanh tiêu đề", + "Title text": "Văn bản tiêu đề", + "Titles": "Tiêu đề", + "Tokens: {file}, {name}, {title}, {caption}, {date}, {exposure}, {iso}, {focal}, {camera}, {lens}, {rating}, {creator}, {copyright}. Other text shows as typed.": "Thẻ đại diện: {file}, {name}, {title}, {caption}, {date}, {exposure}, {iso}, {focal}, {camera}, {lens}, {rating}, {creator}, {copyright}. Các văn bản khác sẽ hiển thị đúng như bạn nhập.", + "Tool Overlay": "Lớp phủ công cụ", + "Top": "Trên", + "Tracking": "Giãn ký tự", + "Ungrouped": "Chưa phân nhóm", + "Unknown date": "Không rõ ngày", + "Unnamed face": "Khuôn mặt chưa đặt tên", + "Update Mask Effect": "Cập nhật hiệu ứng mặt nạ", + "Update Slideshow Template": "Cập nhật mẫu trình chiếu", + "Use export watermark": "Dùng hình mờ khi xuất", + "Use selected photo": "Dùng ảnh đang chọn", + "Viewers that don't read the PNG cICP chunk show PQ values as sRGB: flat and washed out. For a picture that looks right everywhere, use JPEG (gain map).": "Các trình xem không đọc khối cICP của PNG sẽ hiển thị giá trị PQ như sRGB: nhợt nhạt và thiếu tương phản. Để ảnh hiển thị chuẩn ở mọi nơi, hãy dùng JPEG (kèm bản đồ khuếch đại).", + "When pins show on the photo (Shift+H cycles)": "Khi ghim hiển thị trên ảnh (nhấn Shift+H để chuyển đổi)", + "White on Black": "Trắng trên nền đen", + "Whole names": "Toàn bộ tên", + "Wide": "Rộng", + "Write Waiting XMP Sidecars": "Ghi các tệp phụ XMP đang chờ", + "Wrote the XMP sidecars that were waiting": "Đã ghi xong các tệp phụ XMP đang chờ", + "Your library is empty": "Thư viện của bạn đang trống", + "Your name or studio": "Tên của bạn hoặc studio", + "Your own templates need a settings folder, which this build doesn't have; the built-in ones work.": "Mẫu riêng của bạn cần có thư mục cài đặt mà bản dựng này không có; các mẫu tích hợp sẵn vẫn hoạt động bình thường.", + "Your templates": "Mẫu của bạn", + "Zone": "Vùng", + "Zoom to Focus Point": "Phóng tới điểm lấy nét", + "Zoom to fill frame": "Phóng lấp đầy khung", + "cells": "ô", + "cells overlap": "các ô bị chồng lấp", + "current edits": "chỉnh sửa hiện tại", + "new keyword": "từ khóa mới", + "or drop a .onnx file on the window": "hoặc kéo thả tệp .onnx vào cửa sổ", + "or drop photos and folders into this window": "hoặc kéo thả ảnh và thư mục vào cửa sổ này", + "or drop photos into this window": "hoặc kéo thả ảnh vào cửa sổ này", + "size": "kích thước", + "source": "nguồn", + "★ Favorites": "★ Yêu thích", + "Always merge into the open library": "Luôn gộp vào thư viện đang mở", + "Another library was opened since this window appeared: nothing was imported": "Một thư viện khác đã được mở kể từ khi cửa sổ này xuất hiện: chưa nhập mục nào", + "Ask me": "Hỏi tôi", + "Ask me lists your recent libraries at launch. Holding Alt (Option on a Mac) as the window appears asks once.": "Tùy chọn Hỏi tôi sẽ liệt kê các thư viện gần đây khi khởi động. Giữ phím Alt (Option trên máy Mac) khi cửa sổ xuất hiện để hỏi một lần.", + "Ask where to import it": "Hỏi nơi nhập danh mục", + "At launch": "Khi khởi động", + "Burst: how alike (loose … strict)": "Chụp liên tiếp: mức độ tương đồng (lỏng … chặt)", + "Burst: shots at most this far apart": "Chụp liên tiếp: khoảng cách tối đa giữa các lần chụp", + "Camera & Lens": "Máy ảnh & Ống kính", + "Checking recent libraries": "Đang kiểm tra các thư viện gần đây", + "Choose the library to open.": "Chọn thư viện cần mở.", + "Click to hide clipping warnings for shadows and highlights.": "Nhấp để ẩn cảnh báo cháy sáng và bết tối.", + "Click to show clipping warnings for shadows and highlights.": "Nhấp để hiện cảnh báo cháy sáng và bết tối.", + "Close a dialog by clicking outside it": "Đóng hộp thoại khi nhấp ra bên ngoài", + "Create Library and Import": "Tạo thư viện và nhập", + "Create a new library": "Tạo thư viện mới", + "Dimensions": "Kích thước", + "Don't ask again (always merge into the open library)": "Không hỏi lại (luôn gộp vào thư viện đang mở)", + "Grid: add the next photo to the selection": "Lưới: thêm ảnh tiếp theo vào vùng chọn", + "Grid: add the previous photo to the selection": "Lưới: thêm ảnh trước đó vào vùng chọn", + "Grid: first photo of the view": "Lưới: ảnh đầu tiên trong khung xem", + "Grid: last photo of the view": "Lưới: ảnh cuối cùng trong khung xem", + "Hide this wheel's effect": "Ẩn hiệu ứng của vòng màu này", + "It is not a denoise model LightCraft understands": "Đây không phải là mô hình khử nhiễu mà LightCraft hỗ trợ", + "Last opened": "Mở lần cuối", + "LightCraft opens the new library, then imports the catalog into it. Its folder must be new or empty.": "LightCraft sẽ mở thư viện mới rồi nhập danh mục vào đó. Thư mục của thư viện phải là thư mục mới hoặc trống.", + "Loupe Info 1": "Thông tin kính lúp 1", + "Loupe Info 2": "Thông tin kính lúp 2", + "Loupe Overlay": "Lớp phủ kính lúp", + "Loupe View": "Chế độ kính lúp", + "Lower it when a panning or moving burst splits into several groups.": "Giảm giá trị này khi loạt chụp lia máy hoặc chuyển động bị tách thành nhiều nhóm.", + "M50, R100 and R8. CR3 files the decoder can't read yet still open from their embedded JPEG, as before.": "M50, R100 và R8. Các tệp CR3 mà bộ giải mã chưa đọc được vẫn mở từ ảnh JPEG nhúng như trước.", + "My Preset": "Thiết lập sẵn của tôi", + "No clipping detected in this preview.": "Không phát hiện vùng cháy sáng hay bết tối trong bản xem trước này.", + "No faces by that name": "Không có khuôn mặt nào mang tên đó", + "No horizon or vertical lines to level by": "Không tìm thấy đường chân trời hoặc đường thẳng đứng để cân chỉnh", + "No named people yet. Name the faces below to start.": "Chưa có người nào được đặt tên. Hãy đặt tên cho các khuôn mặt bên dưới để bắt đầu.", + "No people yet": "Chưa có người nào", + "No person by that name": "Không có người nào mang tên đó", + "No recent libraries. Open one from a folder, or make a new one.": "Không có thư viện gần đây. Hãy mở một thư viện từ thư mục hoặc tạo thư viện mới.", + "No unnamed faces. Faces found in your photos appear here until you name them.": "Không có khuôn mặt chưa đặt tên. Các khuôn mặt tìm thấy trong ảnh sẽ xuất hiện tại đây cho đến khi bạn đặt tên.", + "Not answering yet: the drive may be asleep or offline": "Chưa phản hồi: ổ đĩa có thể đang ở chế độ ngủ hoặc ngoại tuyến", + "Not found: moved, renamed or on a disconnected drive": "Không tìm thấy: đã di chuyển, đổi tên hoặc nằm trên ổ đĩa đã ngắt kết nối", + "Open": "Mở", + "Open Another…": "Mở thư viện khác…", + "Open a Library": "Mở thư viện", + "Open a library first, then drop the presets again": "Hãy mở một thư viện trước, sau đó thả lại các thiết lập sẵn", + "Open now": "Mở ngay", + "Open the last library": "Mở thư viện gần nhất", + "Remove from List": "Xóa khỏi danh sách", + "Show Info Overlay": "Hiện lớp phủ thông tin", + "Show briefly when photo changes": "Hiện thoáng qua khi đổi ảnh", + "Show in Folders": "Hiển thị trong Thư mục", + "Show message when loading or rendering photos": "Hiện thông báo khi đang tải hoặc kết xuất ảnh", + "The catalog's photos, collections and edits join the ones already in this library.": "Ảnh, bộ sưu tập và các chỉnh sửa của danh mục sẽ được gộp vào thư viện hiện tại.", + "The import reads the catalog without changing it. Next, choose whether its photos, edits, keywords and collections join the library open now or go into a new library.": "Quá trình nhập chỉ đọc danh mục mà không làm thay đổi danh mục gốc. Tiếp theo, hãy chọn gộp ảnh, chỉnh sửa, từ khóa và bộ sưu tập vào thư viện đang mở hoặc đưa vào một thư viện mới.", + "The library is empty: the catalog's photos, collections and edits become its first.": "Thư viện đang trống: ảnh, bộ sưu tập và các chỉnh sửa của danh mục sẽ là những mục đầu tiên trong thư viện.", + "The library itself stays where it is.": "Bản thân thư viện vẫn giữ nguyên ở vị trí hiện tại.", + "The library's catalog can't be read:": "Không thể đọc danh mục của thư viện:", + "The photos are imported once a library is open": "Ảnh sẽ được nhập ngay khi mở một thư viện", + "There is no LightCraft library in this folder any more": "Không còn thư viện LightCraft nào trong thư mục này nữa", + "This folder can't be read:": "Không thể đọc thư mục này:", + "This is a file, not a library folder": "Đây là một tệp, không phải thư mục thư viện", + "This library couldn't be checked": "Không thể kiểm tra thư viện này", + "This library couldn't be checked:": "Không thể kiểm tra thư viện này:", + "To be asked again: Settings → General → When importing a Lightroom catalog.": "Để được hỏi lại: Cài đặt → Chung → Khi nhập danh mục Lightroom.", + "Tool Overlay: Always": "Lớp phủ công cụ: Luôn hiện", + "Tool Overlay: Auto": "Lớp phủ công cụ: Tự động", + "Tool Overlay: Never": "Lớp phủ công cụ: Không bao giờ", + "Tool Overlay: Selected": "Lớp phủ công cụ: Khi chọn", + "Use Defaults": "Dùng mặc định", + "View Options": "Tùy chọn hiển thị", + "View Options…": "Tùy chọn hiển thị…", + "View → View Options chooses the lines Info 1 and Info 2 show.": "Xem → Tùy chọn hiển thị để chọn các dòng hiển thị trong Thông tin 1 và Thông tin 2.", + "When importing a Lightroom catalog": "Khi nhập danh mục Lightroom", + "Width & Height": "Chiều rộng & Chiều cao", + "Check for Updates…": "Kiểm tra cập nhật…", + "Checking for updates…": "Đang kiểm tra cập nhật…", + "LightCraft {version} is currently the newest version available.": "LightCraft {version} hiện là phiên bản mới nhất.", + "Could not check for updates:\n{error}": "Không thể kiểm tra cập nhật:\n{error}", + "LightCraft Updates": "Cập nhật LightCraft" } diff --git a/docs/localization-parity.md b/docs/localization-parity.md index 7813b6257..c194680e5 100644 --- a/docs/localization-parity.md +++ b/docs/localization-parity.md @@ -60,7 +60,7 @@ string follows that. | 9 | Japanese | `ja` | 2,383 / 2,398 (99%; 2026-10-12) | as zh-hans; vertical export watermarks | Jpan via craft-fonts (BIZ UDPGothic / UDMincho); IME through winit | no (community edits) | partial | 2–4 h (native review, lower-layer errors) | | 10 | German | `de` | 3,644 / 3,754 (97%; 2026-10-16: every interface message and every What's New line except 59: the distinct What's New lines whose English text has a ▸ menu path have no German entry yet and wait for #2016; the rest are words spelled the same) | as zh-hans; What's New translated line by line | Latin | partly (2026-10-24: every interface string and formats message, reviewed with an agent and spot-checked by a native speaker; What's New lines not reviewed) | partial | 1–2 h (What's New review, lower-layer errors) | | 11 | Korean | `ko` | 0 (0%) | none | **no Korean (Hangul) face**: needs a non-Adobe OFL face in craft-fonts (Noto CJK is allowed only for Chinese) | no | none | 14–22 h | -| 12 | Vietnamese | `vi` | 2,471 / 2,471 (100% key coverage of current union; intentional English like `ISO`/`OK` kept) | menus, panels, dialogs, presets, profiles, dates, formats; lower-layer errors English | Latin with stacked diacritics (Inter) | no (community contribution) | partial (catalog complete; lower-layer errors English) | 1–3 h | +| 12 | Vietnamese | `vi` | 2,965 / 2,965 (2,658 plain + 307 formats; 100% of every non-What's New plain and format message across all catalogs) | menus, panels, dialogs, presets, profiles, dates, formats; lower-layer errors English | Latin with stacked diacritics (Inter) | no (community contribution) | partial (catalog complete; lower-layer errors English) | 1–3 h | ## Other languages LightCraft ships (7) @@ -99,6 +99,7 @@ Target languages LightCraft lacks: Korean, Dutch, Norwegian Bokmål, Thai | Date | Change | Summary | |---|---|---| +| 2026-10-26 | minor | Vietnamese (`vi`): 421 missing plain interface messages translated (2,658 plain + 307 formats = 2,965 messages; 0 missing non-What's New plain or format messages in `translation_gaps_report`) | | 2026-10-19 | minor | Indonesian interface catalog (`id`): every plain and formats message any catalog has, plus 69 command labels; What's New left in English | | 2026-10-17 | minor | Finnish interface catalog (`fi`): 2,610 of 3,308 messages (2,313 plain + 297 formats), What's New left in English | | 2026-10-15 | minor | Polish row added: the format messages still in English translated, counts made right for every number, dates day.month.year ([localization-pl.md](localization-pl.md)) | diff --git a/docs/localization-vi.md b/docs/localization-vi.md index 02862bc4c..2d8776d8a 100644 --- a/docs/localization-vi.md +++ b/docs/localization-vi.md @@ -8,10 +8,10 @@ Các tag locale hệ thống sau cũng chọn tiếng Việt: `vi`, `vi-VN`, `vi ## Phạm vi Catalog tiếng Việt phủ **toàn bộ** bề mặt localization hiện tại của LightCraft -(đo 2026-10-13: union plain **2 222** + formats **249** = **2 471** thông điệp): +(đo 2026-10-26: union plain **2 658** + formats **307** = **2 965** thông điệp): -- `crates/ui-egui/locales/vi.json` — thông điệp plain / nhãn hiển thị (2 222 khóa) -- `crates/ui-egui/locales/vi-formats.json` — thông điệp có giá trị runtime và mẫu ngày (249 khóa) +- `crates/ui-egui/locales/vi.json` — thông điệp plain / nhãn hiển thị (2 658 khóa) +- `crates/ui-egui/locales/vi-formats.json` — thông điệp có giá trị runtime và mẫu ngày (307 khóa) Điều này là **100% bề mặt localizable/runtime hiện tại**, không phải “mọi chuỗi tiếng Anh trong toàn bộ repository”. Lỗi kỹ thuật từ crate tầng dưới vẫn có thể là tiếng Anh, giống