Rà soát nguồn: 4 tháng 10 năm 2026
Trả lời nhanh
Giữ danh tính nguồn và ngữ cảnh, dịch msgstr, kiểm đối số và mục số nhiều theo quy ước gettext dự án. Trích xuất template, merge nguồn đổi, xử lý fuzzy và thiếu, rồi biên dịch, thử sản phẩm. Bản dịch khác rỗng chưa chắc đã duyệt; danh mục biên dịch được chưa chứng minh giao diện dùng đúng.
Điểm cần nhớ
- Giữ nguồn và ngữ cảnh nếu chưa đổi kỹ thuật.
- Dùng comment, tham chiếu để rà soát.
- Chọn header số nhiều theo ngôn ngữ đích.
- Duyệt fuzzy với nguồn mới.
- Kiểm định dạng trước biên dịch.
- Thử tải danh mục và hành vi màn hình.

PO và POT dùng để làm gì?
PO là danh mục dịch có thể biên tập cho ngôn ngữ đích. POT là template thông điệp nguồn. Gắn cả hai với bản mã nguồn để theo thay đổi, không đoán.
GNU mô tả mục ghép msgid nguồn với msgstr dịch, cùng comment, tham chiếu và flag tùy chọn.[1] Người dịch thường sửa đích được phép; công cụ quản lý quan hệ nguồn.
Không dùng danh mục để tự đổi hành vi. “Đã nhận yêu cầu” không được thành “đã nhận hợp đồng”. Nguồn sai hoặc mơ hồ cần câu hỏi, lưu cách xử lý và sửa cả hai ngôn ngữ cùng nhau.
Danh tính và ngữ cảnh nên giữ thế nào?
Xem nguồn và ngữ cảnh như hợp đồng lookup. GNU có msgctxt phân biệt thông điệp cùng chữ.[2] Chọn ngữ cảnh theo ý nghĩa ổn định, không thay mỗi khi đổi tên tệp.
“Open” có thể là thao tác mở tài liệu hoặc trạng thái yêu cầu chưa đóng. “Mở” phù hợp hành động; “Chưa đóng” phù hợp trạng thái đã mô tả. Không dùng chung chỉ vì chữ nguồn giống nhau.
Mẫu tự xây dựng sau có header UTF-8, ngữ cảnh và thông điệp đếm. Đây là tập dạy nhỏ, chưa phải danh mục sản xuất với đủ trường quản trị.
msgid ""
msgstr ""
"Project-Id-Version: example 1.0\n"
"Language: vi\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. Button that opens the selected document.
msgctxt "document.action"
msgid "Open"
msgstr "Mở"
#. Request status: the request has not been closed.
msgctxt "request.status"
msgid "Open"
msgstr "Chưa đóng"
#. Number of documents included in this request.
#, c-format
msgid "%d document"
msgid_plural "%d documents"
msgstr[0] "%d tài liệu"
Comment giải thích ý định. Trạng thái thứ hai không hứa nhân viên đang xử lý. Nếu sản phẩm định nghĩa Open khác, cần xem lại ngữ cảnh và bản dịch thay vì áp dụng mẫu máy móc.
Số nhiều tiếng Việt biểu diễn thế nào?
Dùng quy tắc catalog đích nhưng giữ danh tính nguồn số ít, số nhiều. GNU liệt kê tiếng Việt ở nhóm một dạng với nplurals=1; plural=0;.[3] Đó là cơ sở mục msgstr có chỉ số trong mẫu.
Ứng dụng vẫn cần truyền count qua lookup và định dạng đúng. Một dạng đích không có nghĩa bỏ số. “3 tài liệu” khác nhãn không đếm; trạng thái không có tài liệu có thể cần thông điệp riêng của sản phẩm.
Thử không, một và nhiều tài liệu trên màn hình. Không sao header tiếng Việt cho ngôn ngữ khác. Mỗi catalog cần quy tắc và mục phù hợp ngôn ngữ của nó.
Đối số định dạng ảnh hưởng gì?
Giữ hợp đồng định dạng khi đổi câu. %d trong mẫu là số nguyên do chương trình cung cấp. Đích giữ kiểu này; đổi chữ trong token có thể đổi hành vi formatter.
GNU mô tả kiểm định dạng cho mục được đánh dấu và tùy chọn --check.[4] Dùng kiểm phù hợp môi trường. Các framework có quy ước khác; xác định flag đúng, không đánh dấu mọi chuỗi bất kể loại.
Với nhiều giá trị, xem cú pháp vị trí được hỗ trợ và thử đảo thứ tự. Tên, số lượng, hạn có thể cần vị trí khác trong tiếng Việt. Không giải quyết bằng cắt câu thành mảnh không thể sắp tự nhiên.
| Thành phần | Công việc ngôn ngữ | Hợp đồng giữ |
|---|---|---|
| msgid | Hiểu nguồn, đặt câu hỏi | Danh tính theo quy trình |
| msgctxt | Giải nghĩa mơ hồ | Ngữ cảnh lookup ổn định |
| msgstr | Dịch và rà đích | Nghĩa, định dạng cho phép |
| Đối số | Đặt tự nhiên khi hỗ trợ | Kiểu, mã, giá trị bắt buộc |
| Số nhiều | Duyệt dạng đích cần | Header và cấu trúc chỉ số |
| Comment, tham chiếu | Dùng ngữ cảnh liên quan | Thông tin cho lần rà sau |
Comment và fuzzy cho biết gì?
Comment giúp hiểu; flag có thể chứa quy trình hoặc định dạng. GNU mô tả các dạng comment PO.[1] Giữ thông tin nguồn, người dịch hữu ích thay vì chỉ xuất cặp văn bản.
Fuzzy là tín hiệu cần duyệt. GNU giải thích merge nguồn đổi có thể ghép gợi ý với bản dịch cũ và cần sửa.[5] So nguồn mới, chữ cũ và ngữ cảnh trước khi nhận.
Không bỏ fuzzy hàng loạt để tỷ lệ hoàn thành đẹp hơn. Giải quyết nghĩa, lưu thuật ngữ rồi cập nhật trạng thái. Nguồn sửa ít vẫn có thể đảo hướng dẫn, đổi giới hạn hoặc sự kiện xác nhận.
Theo dõi cả mục thiếu và không còn dùng. Quyết định fallback, ai được bỏ mục không còn trích xuất. Không xóa lịch sử trước khi xác nhận tài nguyên không dùng nữa.
Trích xuất và merge nên hoạt động ra sao?
Trích thông điệp được đánh dấu thành template, merge vào từng catalog. GNU có xgettext cho trích xuất và msgmerge cho cập nhật.[6][7] Lệnh phụ thuộc ngôn ngữ mã, wrapper và build.
Lệnh dưới minh họa C và các hàm nêu tên; chưa được chạy trên ứng dụng khách cho bài này.
xgettext --language=C --keyword=gettext --keyword=ngettext:1,2 --keyword=pgettext:1c,2 --output=messages.pot src/*.c
msgmerge --output-file=app_vi.updated.po app_vi.po messages.pot
msgfmt --check --statistics --output-file=app_vi.mo app_vi.updated.po
Merge ghi tệp mới để giữ bản cũ so sánh. Rà diff trước thay tài nguyên đã duyệt. Kiểm wrapper riêng có được trích không, không chỉ lời gọi trực tiếp; xử lý biểu thức động theo cách dự án hỗ trợ.
Biên dịch sau duyệt. Dòng lệnh không quyết định “Chưa đóng” đúng trạng thái sản phẩm không. Nó kiểm cấu trúc, định dạng được hỗ trợ. Gắn phê duyệt ngôn ngữ với kỹ thuật nhưng không coi là một việc.
Encoding và thông điệp nhiều dòng cần rà gì?
Dùng encoding khai báo nhất quán, xem tiếng Việt sau toàn đường xuất và nhập. Mẫu khai báo UTF-8. Một editor hiển thị đúng chưa chắc bước khác hiểu byte đúng.
Dòng tiếp nối trong ngoặc kép có thể góp vào một thông điệp, không phải nhiều dòng màn hình. \n có thể mã hóa xuống dòng; hiển thị cuối còn theo renderer.
Không thay ngoặc và escape rộng làm hỏng cú pháp. Ưu tiên editor hiểu PO, rồi kiểm theo dự án. Thử dấu tiếng Việt, dấu câu, chuỗi dài và sao chép trong giao diện chạy thật.

Danh sách kiểm phát hành cần gì?
Tách danh tính, nghĩa, định dạng và tải sản phẩm. Mỗi kiểm có cách tái hiện. Bảng là tập đại diện tự xây dựng, cần mở rộng theo ứng dụng.
| Kiểm | Tái hiện | Bằng chứng mong đợi |
|---|---|---|
| Bản nguồn | So trích xuất với nguồn phát hành | Catalog đúng phiên bản |
| Ngữ cảnh | Lookup hai mục Open | Hành động, trạng thái khác nhau |
| Đối số | Dựng thông điệp số, chuỗi | Kiểu và giá trị được giữ |
| Số lượng | Gọi không, một, nhiều | Đúng thông điệp và số |
| Duyệt | Xem fuzzy, thiếu | Ngoại lệ chính sách rõ |
| Encoding | Đọc, dựng tiếng Việt | Dấu qua quy trình đúng |
| Tải | Chạy ngôn ngữ đích | Đúng catalog, domain |
| Giao diện | Thao tác màn hình đại diện | Có nghĩa, đọc và dùng được |
Thêm nguồn đã đổi rồi merge lại. Người duyệt phải thấy thay đổi, không thừa hưởng phê duyệt mù. Thử fallback khi thiếu: cách hữu ích lúc phát triển chưa chắc đạt nghiệm thu ra mắt.
Bàn giao dự án LocalizeZone ra sao?
Gửi catalog, template, bản nguồn, quy ước cùng màn hình và thuật ngữ. Trong yêu cầu bản địa hóa phần mềm, nêu marker trích xuất, flag, runtime loader. Phân biệt rà catalog, kiểm kỹ thuật hay thử build chạy được.
Gửi tệp đại diện và lỗi biết qua trang báo giá. Nguồn mơ hồ cần xử lý câu hỏi; nhiều mục đổi cần rà, không chỉ thay từ. Đầu vào rõ giúp dự trù công việc bảo vệ phát hành.
Giữ catalog đã duyệt cùng quy trình cập nhật. Nguồn mới cần trích, merge, duyệt và QA liên quan lại. Sản phẩm tiếp tục thay đổi thì bản địa hóa không chỉ một lần giao tệp.
Câu hỏi thường gặp
Người dịch sửa msgid không?
Thường không. Đặt vấn đề nguồn để kỹ thuật sửa mã và template đồng bộ, thay vì đổi danh tính trong catalog riêng.
Vì sao Open có hai bản dịch?
Nghĩa hành động khác trạng thái. msgctxt tách danh tính để mỗi mục có đích thích hợp.[2]
Một dạng số nhiều bỏ kiểm count được không?
Không. Cần thử lookup, định dạng và trạng thái rỗng. Số vẫn có nghĩa dù danh từ không đổi.
Fuzzy sẵn sàng xuất bản chưa?
Chưa. Rà với nguồn mới và ngữ cảnh.[5] Theo chính sách phê duyệt trước phát hành.
MO biên dịch được chứng minh dịch đúng chưa?
Chưa. Chỉ chứng minh kiểm đã thực hiện. Nghĩa, tải và giao diện cần xem riêng.
Gửi gì để báo giá chính xác hơn?
PO, POT, màn hình, bản nguồn, ngôn ngữ và lớp rà soát. Nêu quy ước riêng, thời điểm dự kiến.
Nguồn và phương pháp
Đọc tài liệu GNU chính thức ngày 4 tháng 10 năm 2026 qua bản lưu riêng khi trình duyệt hết thời gian. Catalog tiếng Việt, lệnh và bảng QA là ví dụ biên tập. Kiểm tập nhỏ tại máy không khẳng định đã chạy kiểm định dạng GNU hoặc build ứng dụng; trích xuất, merge, biên dịch và dựng sản xuất cần môi trường thật.
Tài liệu tham khảo
[1] GNU gettext manual. What an entry looks like.
[2] GNU gettext manual. Using contexts for solving ambiguities.
[3] GNU gettext manual. Additional functions for plural forms.
[4] GNU gettext manual. Invoking the msgfmt program.
[5] GNU gettext manual. Fuzzy entries.
[6] GNU gettext manual. Invoking the xgettext program.
[7] GNU gettext manual. Invoking the msgmerge program.
Bài viết liên quan
- So sánh XLIFF, JSON, PO và ARB trong bản địa hóa
- Thực hành tốt nhất với i18next trong ứng dụng production
- Cẩm nang bản địa hóa tiếng Việt cho phần mềm và SaaS
- Hướng dẫn định dạng ngày giờ, số và tiền tệ trong tiếng Việt
- Định dạng địa chỉ Việt Nam cho biểu mẫu, thương mại điện tử và cơ sở dữ liệu
- Tên người Việt: Hướng dẫn cho biểu mẫu, cơ sở dữ liệu và giao diện
