Imported Upstream version 4.0
[platform/upstream/make.git] / po / vi.po
index 94b3402..ee0fea5 100644 (file)
--- a/po/vi.po
+++ b/po/vi.po
 # Vietnamese translation for Make.
-# Copyright © 2006 Free Software Foundation, Inc.
-# Clytie Siddall <clytie@riverland.net.au>, 2006.
+# Copyright © 2013 Free Software Foundation, Inc.
+# This file is distributed under the same license as the make package.
+# Clytie Siddall <clytie@riverland.net.au>, 2006-2010.
+# Nguyễn Thái Ngọc Duy <pclouds@gmail.com>, 2012.
+# Trần Ngọc Quân <vnwildman@gmail.com>, 2012-2013.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: make 3.81\n"
+"Project-Id-Version: make 3.99.93\n"
 "Report-Msgid-Bugs-To: bug-make@gnu.org\n"
-"POT-Creation-Date: 2010-07-28 01:42-0400\n"
-"PO-Revision-Date: 2006-05-04 20:26+0930\n"
-"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
-"Language-Team: Vietnamese <gnomevi-list@lists.sourceforge.net>\n"
+"POT-Creation-Date: 2013-10-09 02:12-0400\n"
+"PO-Revision-Date: 2013-10-02 07:35+0700\n"
+"Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n"
+"Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
+"Language: vi\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0\n"
-"X-Generator: LocFactoryEditor 1.6b36\n"
+"Team-Website: <http://translationproject.org/team/vi.html>\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: Poedit 1.5.5\n"
+"X-Poedit-SourceCharset: UTF-8\n"
+"X-Poedit-Language: Vietnamese\n"
+"X-Poedit-Country: VIET NAM\n"
 
-#: ar.c:48
+#: ar.c:46
 #, c-format
-msgid "attempt to use unsupported feature: `%s'"
-msgstr "đã cố sử dụng tính năng không được hỗ trợ « %s »"
+msgid "attempt to use unsupported feature: '%s'"
+msgstr "đã dùng tính năng chưa được hỗ trợ: “%s”"
 
-#: ar.c:125
+#: ar.c:123
 msgid "touch archive member is not available on VMS"
-msgstr "bộ phạn kho touch chưa sẵn sàng trên VMS"
+msgstr "“touch” thành viên kho không có trên VMS"
 
-#: ar.c:149
+#: ar.c:147
 #, c-format
-msgid "touch: Archive `%s' does not exist"
-msgstr "touch: kho « %s » không tồn tại"
+msgid "touch: Archive '%s' does not exist"
+msgstr "touch: Kho “%s” không tồn tại"
 
-#: ar.c:152
+#: ar.c:150
 #, c-format
-msgid "touch: `%s' is not a valid archive"
-msgstr "touch: « %s » không phải là một kho hợp lệ"
+msgid "touch: '%s' is not a valid archive"
+msgstr "touch: “%s” không phải là kho hợp lệ"
 
-#: ar.c:159
+#: ar.c:157
 #, c-format
-msgid "touch: Member `%s' does not exist in `%s'"
-msgstr "touch: bộ phạn « %s » không tồn tại trong « %s »"
+msgid "touch: Member '%s' does not exist in '%s'"
+msgstr "touch: Thành viên “%s” không tồn tại trong “%s”"
 
-#: ar.c:166
+#: ar.c:164
 #, c-format
-msgid "touch: Bad return code from ar_member_touch on `%s'"
-msgstr "touch: mới nhận mã trả lại sai từ « ar_member_touch » trên « %s »"
+msgid "touch: Bad return code from ar_member_touch on '%s'"
+msgstr "touch: Gặp mã trả lại sai từ ar_member_touch trên “%s”"
 
-#: arscan.c:69
-#, fuzzy, c-format
+#: arscan.c:67
+#, c-format
 msgid "lbr$set_module() failed to extract module info, status = %d"
-msgstr "« lbr$set_module » đã không rút được thông tin mô-đun, trạng thái = %d"
+msgstr ""
+"lbr$set_module() đã không giải nén thông tin về mô-đun, trạng thái = %d"
 
-#: arscan.c:175
-#, fuzzy, c-format
+#: arscan.c:173
+#, c-format
 msgid "lbr$ini_control() failed with status = %d"
-msgstr "« lbr$ini_control » bị lỗi với trạng thái = %d"
+msgstr "lbr$ini_control() bị lỗi với trạng thái = %d"
 
-#: arscan.c:187
+#: arscan.c:185
 #, c-format
-msgid "unable to open library `%s' to lookup member `%s'"
-msgstr "không thể mở thư viên « %s » để tra tìm bộ phạn « %s »"
+msgid "unable to open library '%s' to lookup member '%s'"
+msgstr "không thể mở thư viện “%s” để tra tìm thành viên “%s”"
 
-#: arscan.c:850
+#: arscan.c:847
 #, c-format
-msgid "Member `%s'%s: %ld bytes at %ld (%ld).\n"
-msgstr "Bộ phạn « %s »%s: %ld byte với %ld (%ld).\n"
+msgid "Member '%s'%s: %ld bytes at %ld (%ld).\n"
+msgstr "Thành viên “%s”%s: %ld byte tại %ld (%ld).\n"
 
-#: arscan.c:851
+#: arscan.c:848
 msgid " (name might be truncated)"
-msgstr " (có lẽ tên bá»\8b cụt)"
+msgstr " (có lẽ tên bá»\8b cắt ngắn)"
 
-#: arscan.c:853
+#: arscan.c:850
 #, c-format
 msgid "  Date %s"
 msgstr "  Ngày %s"
 
-#: arscan.c:854
+#: arscan.c:851
 #, c-format
 msgid "  uid = %d, gid = %d, mode = 0%o.\n"
 msgstr "  uid = %d, gid = %d, chế độ = 0%o.\n"
 
-#: commands.c:499
+#: commands.c:406
+#, c-format
+msgid "Recipe has too many lines (%ud)"
+msgstr "Công thức có quá nhiều dòng (%ud)"
+
+#: commands.c:507
 msgid "*** Break.\n"
-msgstr "*** Ngắt\n"
+msgstr "*** Ngắt.\n"
 
-#: commands.c:622
+#: commands.c:630
 #, c-format
-msgid "*** [%s] Archive member `%s' may be bogus; not deleted"
-msgstr "*** [%s] Có lẽ bộ phạn « %s » là giả; chưa bị xóa bỏ"
+msgid "*** [%s] Archive member '%s' may be bogus; not deleted"
+msgstr "*** [%s] Thành phần kho “%s” có thể là giả; chưa bị xóa bỏ"
 
-#: commands.c:625
+#: commands.c:633
 #, c-format
-msgid "*** Archive member `%s' may be bogus; not deleted"
-msgstr "*** Có lẽ bộ phạn « %s » là giả; chưa bị xóa bỏ"
+msgid "*** Archive member '%s' may be bogus; not deleted"
+msgstr "*** Thành phần kho “%s” có thể là giả; chưa bị xóa bỏ"
 
-#: commands.c:638
+#: commands.c:646
 #, c-format
-msgid "*** [%s] Deleting file `%s'"
-msgstr "*** [%s] Đang xóa bỏ tập tin « %s »..."
+msgid "*** [%s] Deleting file '%s'"
+msgstr "*** [%s] Đang xoá tập tin “%s”"
 
-#: commands.c:640
+#: commands.c:648
 #, c-format
-msgid "*** Deleting file `%s'"
-msgstr "*** Đang xóa bỏ tập tin « %s »..."
+msgid "*** Deleting file '%s'"
+msgstr "*** Đang xoá tập tin “%s”"
 
-#: commands.c:676
-#, fuzzy
+#: commands.c:684
 msgid "#  recipe to execute"
-msgstr "# các lệnh cần thi hành"
+msgstr "#  công thức cần thực hiện"
 
-#: commands.c:679
+#: commands.c:687
 msgid " (built-in):"
-msgstr " (sẵn có):"
+msgstr " (dựng-sẵn):"
 
-#: commands.c:681
+#: commands.c:689
 #, c-format
-msgid " (from `%s', line %lu):\n"
-msgstr " (từ « %s », dòng %lu):\n"
+msgid " (from '%s', line %lu):\n"
+msgstr " (từ “%s”, dòng %lu):\n"
 
-#: dir.c:996
+#: dir.c:989
 msgid ""
 "\n"
 "# Directories\n"
@@ -125,228 +138,219 @@ msgstr ""
 "\n"
 "# Thư mục\n"
 
-#: dir.c:1008
+#: dir.c:1001
 #, c-format
 msgid "# %s: could not be stat'd.\n"
-msgstr "# %s: không thể lấy các thông tin về nó.\n"
+msgstr "# %s: không thể lấy thống kê.\n"
 
-#: dir.c:1012
+#: dir.c:1005
 #, c-format
 msgid "# %s (key %s, mtime %d): could not be opened.\n"
-msgstr "# %s (khóa %s, giờ_m %d): không thể được mở.\n"
+msgstr "# %s (khoá %s, mtime %d): không thể mở.\n"
 
-#: dir.c:1016
+#: dir.c:1009
 #, c-format
 msgid "# %s (device %d, inode [%d,%d,%d]): could not be opened.\n"
-msgstr "# %s (thiết bị %d, nút thông tin [%d,%d,%d]): không thể được mở.\n"
+msgstr "# %s (thiết bị %d, nút thông tin [%d,%d,%d]): không thể mở.\n"
 
-#: dir.c:1021
+#: dir.c:1014
 #, c-format
 msgid "# %s (device %ld, inode %ld): could not be opened.\n"
-msgstr "# %s (thiết bị %ld, nút thông tin %ld): không thể được mở.\n"
+msgstr "# %s (thiết bị %ld, nút thông tin %ld): không thể mở.\n"
 
-#: dir.c:1048
+#: dir.c:1041
 #, c-format
 msgid "# %s (key %s, mtime %d): "
-msgstr "# %s (khóa %s, giờ_m %d): "
+msgstr "# %s (khoá %s, mtime %d): "
 
-#: dir.c:1052
+#: dir.c:1045
 #, c-format
 msgid "# %s (device %d, inode [%d,%d,%d]): "
-msgstr "# %s (thiết bị %d, nút thông tin [%d,%d,%d]): "
+msgstr "# %s (thiết bị %d, inode [%d,%d,%d]): "
 
-#: dir.c:1057
+#: dir.c:1050
 #, c-format
 msgid "# %s (device %ld, inode %ld): "
-msgstr "# %s (thiết bị %ld, nút thông tin %ld): "
+msgstr "# %s (thiết bị %ld, inode %ld): "
 
-#: dir.c:1063 dir.c:1084
+#: dir.c:1056 dir.c:1077
 msgid "No"
 msgstr "Không"
 
-#: dir.c:1066 dir.c:1087
+#: dir.c:1059 dir.c:1080
 msgid " files, "
 msgstr " tập tin, "
 
-#: dir.c:1068 dir.c:1089
+#: dir.c:1061 dir.c:1082
 msgid "no"
 msgstr "không"
 
-#: dir.c:1071
+#: dir.c:1064
 msgid " impossibilities"
-msgstr " điều không thể"
+msgstr " không thể"
 
-#: dir.c:1075
+#: dir.c:1068
 msgid " so far."
-msgstr " cho đến đây."
+msgstr " cho đến giờ."
 
-#: dir.c:1092
+#: dir.c:1085
 #, c-format
 msgid " impossibilities in %lu directories.\n"
-msgstr " điều không thể trong %lu thư mục.\n"
+msgstr " việc không thể làm được trong %lu thư mục.\n"
 
-#: expand.c:127
+#: expand.c:125
 #, c-format
-msgid "Recursive variable `%s' references itself (eventually)"
-msgstr "Biến đệ qui « %s » tham chiếu chính nó (cuối cùng)"
+msgid "Recursive variable '%s' references itself (eventually)"
+msgstr "Biến đệ quy “%s” (cuối cùng) lại tham chiếu đến chính nó"
 
-#: expand.c:276
+#: expand.c:269
 msgid "unterminated variable reference"
-msgstr "tham chiếu biến chưa có kết thúc"
+msgstr "tham chiếu biến chưa chấm dứt"
 
-#: file.c:267
-#, fuzzy, c-format
-msgid "Recipe was specified for file `%s' at %s:%lu,"
-msgstr "Các lệnh được ghi rõ cho tập tin « %s » vào %s:%lu,"
-
-#: file.c:272
-#, fuzzy, c-format
-msgid "Recipe for file `%s' was found by implicit rule search,"
-msgstr ""
-"Các lệnh cho tập tin « %s » đã được tìm bằng việc tìm kiếm quy tắc ngầm,"
+#: file.c:269
+#, c-format
+msgid "Recipe was specified for file '%s' at %s:%lu,"
+msgstr "Công thức được chỉ định cho tập tin “%s” tại %s:%lu,"
 
-#: file.c:275
+#: file.c:274
 #, c-format
-msgid "but `%s' is now considered the same file as `%s'."
-msgstr "nhưng « %s » hiện thời được xem là cùng một tập tin với « %s »."
+msgid "Recipe for file '%s' was found by implicit rule search,"
+msgstr "Tìm thấy công thức cho tập tin “%s” nhờ quy tắc tìm kiếm ngầm,"
 
-#: file.c:278
-#, fuzzy, c-format
-msgid "Recipe for `%s' will be ignored in favor of the one for `%s'."
-msgstr "Các lệnh cho « %s » sẽ bị bỏ qua để ủng hộ các điều cho « %s »."
+#: file.c:277
+#, c-format
+msgid "but '%s' is now considered the same file as '%s'."
+msgstr "nhưng “%s” bây giờ được cũng được xem là cùng tập tin “%s”."
 
-#: file.c:298
+#: file.c:280
 #, c-format
-msgid "can't rename single-colon `%s' to double-colon `%s'"
+msgid "Recipe for '%s' will be ignored in favor of the one for '%s'."
 msgstr ""
-"không thể thay đổi tên dấu hai chấm đơn « %s » thành dấu hai chấm đôi « %s »"
+"Công thức cho “%s” sẽ bị bỏ qua trong sự chấp thuận của một cái cho “%s”."
 
-#: file.c:303
+#: file.c:300
 #, c-format
-msgid "can't rename double-colon `%s' to single-colon `%s'"
-msgstr ""
-"không thể thay đổi tên dấu hai chấm đôi « %s » thành dấu hai chấm đơn « %s »"
+msgid "can't rename single-colon '%s' to double-colon '%s'"
+msgstr "không thể đổi tên “%s” hai chấm đơn thành “%s” hai chấm đôi"
 
-#: file.c:392
+#: file.c:305
 #, c-format
-msgid "*** Deleting intermediate file `%s'"
-msgstr "*** Đang xóa bỏ tập tin trung cấp « %s »..."
+msgid "can't rename double-colon '%s' to single-colon '%s'"
+msgstr "không thể đổi tên “%s” hai chấm đôi thành “%s” hai chấm đơn"
 
 #: file.c:396
+#, c-format
+msgid "*** Deleting intermediate file '%s'"
+msgstr "*** Đang xoá tập tin trung gian “%s”"
+
+#: file.c:400
 msgid "Removing intermediate files...\n"
-msgstr "Đang gỡ bỏ các tập tin trung cấp...\n"
+msgstr "Xoá các tập tin trung gian...\n"
 
-#: file.c:803
+#: file.c:808
 #, c-format
 msgid "%s: Timestamp out of range; substituting %s"
-msgstr "%s: Nhãn thời gian ở ngoại phạm vị nên thay thế %s"
+msgstr "%s: Thời gian của tập tin ở ngoài phạm vi nên thay thế bằng %s"
 
-#: file.c:804
+#: file.c:809
 msgid "Current time"
-msgstr "Giờ hiện thời"
+msgstr "Giờ hiện ti"
 
-#: file.c:924
+#: file.c:949
 msgid "# Not a target:"
-msgstr "# Không phải là đĩch:"
+msgstr "# Không phải là đích:"
 
-#: file.c:929
+#: file.c:954
 msgid "#  Precious file (prerequisite of .PRECIOUS)."
-msgstr "# Tập tin qúy (điều kiện tiên quyết của .PRECIOUS)."
+msgstr "#  Tập tin giá trị (điều kiện tiên quyết của .PRECIOUS)."
 
-#: file.c:931
+#: file.c:956
 msgid "#  Phony target (prerequisite of .PHONY)."
-msgstr "# Đích giả (điều kiện tiên quyết của .PHONY)."
+msgstr "#  Đích giả (điều kiện tiên quyết của .PHONY)."
 
-#: file.c:933
-#, fuzzy
+#: file.c:958
 msgid "#  Command line target."
-msgstr "# Đích dòng lệnh."
+msgstr "#  Đích dòng lệnh."
 
-#: file.c:935
+#: file.c:960
 msgid "#  A default, MAKEFILES, or -include/sinclude makefile."
-msgstr ""
-"#  Tập tin tạo (makefile) mặc định, kiểu MAKEFILES, hay kiểu « -include/"
-"sinclude »."
+msgstr "#  Mặc định, MAKEFILES, hoặc makefile kiểu -include/sinclude."
+
+#: file.c:962
+msgid "#  Builtin rule"
+msgstr "#  Quy tắc dựng sẵn"
 
-#: file.c:937
+#: file.c:964
 msgid "#  Implicit rule search has been done."
-msgstr "# Mới tìm kiếm kiểu quy tắc ngầm."
+msgstr "#  Hoàn tất tìm quy tắc ngầm."
 
-#: file.c:938
+#: file.c:965
 msgid "#  Implicit rule search has not been done."
-msgstr "# Chưa tìm kiếm kiểu quy tắc ngầm."
+msgstr "#  Chưa hoàn tất tìm quy tắc ngầm."
 
-#: file.c:940
+#: file.c:967
 #, c-format
-msgid "#  Implicit/static pattern stem: `%s'\n"
-msgstr "# Cuống mẫu ngầm/tĩnh: « %s »\n"
+msgid "#  Implicit/static pattern stem: '%s'\n"
+msgstr "#  Cuống mẫu ngầm/tĩnh: “%s”\n"
 
-#: file.c:942
+#: file.c:969
 msgid "#  File is an intermediate prerequisite."
-msgstr "# Tập tin là điều kiện tiên quyết trung cấp."
+msgstr "#  Tập tin là một điều kiện tiên quyết trung gian."
 
-#: file.c:946
+#: file.c:973
 msgid "#  Also makes:"
-msgstr "# Cũng tạo :"
+msgstr "#  Cũng tạo:"
 
-#: file.c:952
+#: file.c:979
 msgid "#  Modification time never checked."
-msgstr "# Chưa bao giờ kiểm tra giờ sửa đổi."
+msgstr "#  Chưa kiểm tra giờ sửa đổi."
 
-#: file.c:954
+#: file.c:981
 msgid "#  File does not exist."
-msgstr "# Tập tin không tồn tại."
+msgstr "#  Tập tin không tồn tại."
 
-#: file.c:956
+#: file.c:983
 msgid "#  File is very old."
-msgstr "# Tập tin rất cũ."
+msgstr "#  Tập tin rất cũ."
 
-#: file.c:961
+#: file.c:988
 #, c-format
 msgid "#  Last modified %s\n"
-msgstr "# Sửa đổi cuối cùng %s\n"
+msgstr "#  Lần sửa cuối cùng %s\n"
 
-#: file.c:964
+#: file.c:991
 msgid "#  File has been updated."
-msgstr "# Tập tin đã được cập nhật."
+msgstr "#  Tập tin đã được cập nhật."
 
-#: file.c:964
+#: file.c:991
 msgid "#  File has not been updated."
-msgstr "# Tập tin chưa được cập nhật."
+msgstr "#  Tập tin chưa được cập nhật."
 
-#: file.c:968
-#, fuzzy
+#: file.c:995
 msgid "#  Recipe currently running (THIS IS A BUG)."
-msgstr "# Các lệnh đang chạy (ĐÂY LÀ LỖI)."
+msgstr "#  Công thức đang chạy (ĐÂY LÀ MỘT LỖI)."
 
-#: file.c:971
-#, fuzzy
+#: file.c:998
 msgid "#  Dependencies recipe running (THIS IS A BUG)."
-msgstr "# Các lệnh phụ thuộc đang chạy (ĐÂY LÀ LỖI)."
+msgstr "#  Công thức phụ thuộc đang chạy (ĐÂY LÀ MỘT LỖI)."
 
-#: file.c:980
+#: file.c:1007
 msgid "#  Successfully updated."
-msgstr "# Đã được cập nhật."
+msgstr "#  Cập nhật thành công."
 
-#: file.c:984
+#: file.c:1011
 msgid "#  Needs to be updated (-q is set)."
-msgstr "# Cần thiết cập nhật (« -q » đã lập)."
+msgstr "#  Cần được cập nhật (-q được đặt)."
 
-#: file.c:987
+#: file.c:1014
 msgid "#  Failed to be updated."
-msgstr "# Việc cập nhật bị lỗi."
+msgstr "#  Gặp lỗi khi cập nhật."
 
-#: file.c:990
-msgid "#  Invalid value in `update_status' member!"
-msgstr ""
-"#  Giá trị không hợp lệ trong bộ phạn « update_status » (trạng thái cập nhật)!"
-
-#: file.c:997
-msgid "#  Invalid value in `command_state' member!"
-msgstr ""
-"#  Giá trị không hợp lệ trong bộ phạn « command_state » (tính trạng lệnh)!"
+#: file.c:1019
+msgid "#  Invalid value in 'command_state' member!"
+msgstr "#  Gặp giá trị sai trong thành phần “command_state”!"
 
-#: file.c:1016
+#: file.c:1038
 msgid ""
 "\n"
 "# Files"
@@ -354,142 +358,190 @@ msgstr ""
 "\n"
 "# Tập tin"
 
-#: file.c:1020
+#: file.c:1042
 msgid ""
 "\n"
 "# files hash-table stats:\n"
 "# "
 msgstr ""
 "\n"
-"# thống kê bảng băm các tập tin:\n"
+"# thống kê bảng băm tập tin:\n"
 "# "
 
-#: function.c:758
-msgid "non-numeric first argument to `word' function"
-msgstr "đối số thứ nhất không dạng số đối với hàm « word » (từ)"
+#: file.c:1051
+#, c-format
+msgid "%s: Field '%s' not cached: %s"
+msgstr "%s: Trường “%s” chưa được nhớ đệm: %s"
 
-#: function.c:763
-msgid "first argument to `word' function must be greater than 0"
-msgstr "đối số thứ nhất đối với hàm « word » (từ) phải là lớn hơn 0"
+#: function.c:742
+msgid "non-numeric first argument to 'word' function"
+msgstr "đối số thứ nhất không phải dạng số cho hàm “word”"
 
-#: function.c:783
-msgid "non-numeric first argument to `wordlist' function"
-msgstr "đối số thứ nhất không dạng số đối với hàm « wordlist » (danh sách từ)"
+#: function.c:747
+msgid "first argument to 'word' function must be greater than 0"
+msgstr "đối số thứ nhất cho hàm “word” phải lớn hơn 0"
 
-#: function.c:785
-msgid "non-numeric second argument to `wordlist' function"
-msgstr "đối số thứ hai không dạng số đối với hàm « wordlist » (danh sách từ)"
+#: function.c:767
+msgid "non-numeric first argument to 'wordlist' function"
+msgstr "đối số thứ nhất không phải số cho hàm “wordlist”"
 
-#: function.c:1458
-#, fuzzy, c-format
-msgid "windows32_openpipe(): DuplicateHandle(In) failed (e=%ld)\n"
-msgstr ""
-"Việc « create_child_process: DuplicateHandle(In) » (tạo tiến trình con: bộ "
-"quản lý trùng) bị lỗi (e=%ld)\n"
+#: function.c:769
+msgid "non-numeric second argument to 'wordlist' function"
+msgstr "đối số thứ hai không phải số cho hàm “wordlist”"
 
-#: function.c:1469
-#, fuzzy, c-format
-msgid "windows32_open_pipe(): DuplicateHandle(Err) failed (e=%ld)\n"
-msgstr ""
-"Việc « create_child_process: DuplicateHandle(Err) » (tạo tiến trình con: bộ "
-"quản lý trùng(lỗi)) bị lỗi (e=%ld)\n"
+#: function.c:1460
+#, c-format
+msgid "windows32_openpipe: DuplicateHandle(In) failed (e=%ld)\n"
+msgstr "windows32_openpipe: DuplicateHandle(In) gặp lỗi (e=%ld)\n"
 
-#: function.c:1474
+#: function.c:1483
+#, c-format
+msgid "windows32_openpipe: DuplicateHandle(Err) failed (e=%ld)\n"
+msgstr "windows32_openpipe: DuplicateHandle(Err) gặp lỗi (e=%ld)\n"
+
+#: function.c:1490
 #, c-format
 msgid "CreatePipe() failed (e=%ld)\n"
-msgstr "Việc « CreatePipe() » (tạo ống dẫn) bị lỗi (e=%ld)\n"
+msgstr "CreatePipe() bị lỗi (e=%ld)\n"
 
-#: function.c:1479
-#, fuzzy
+#: function.c:1498
 msgid "windows32_openpipe(): process_init_fd() failed\n"
-msgstr ""
-"Việc « windows32_openpipe (): process_init_fd() » (mở ống dẫn windows32: tiến "
-"trình sở khởi fd) bị lỗi\n"
+msgstr "windows32_openpipe(): process_init_fd() gặp lỗi\n"
 
-#: function.c:1728
+#: function.c:1792
 #, c-format
 msgid "Cleaning up temporary batch file %s\n"
-msgstr "Đang làm sạch tập tin bó tạm thời %s...\n"
+msgstr "Dọn dẹp tập tin bó tạm %s\n"
 
-#: function.c:2150
+# Variable: do not translate/ biến: đừng dịch
+#: function.c:2151
 #, c-format
-msgid "insufficient number of arguments (%d) to function `%s'"
-msgstr "Không có đủ đối số (%d) tới hàm « %s »"
+msgid "open: %s: %s"
+msgstr "mở: %s: %s"
 
-#: function.c:2162
+#: function.c:2158
 #, c-format
-msgid "unimplemented on this platform: function `%s'"
-msgstr "chưa được thực hiện trên nền tảng này: hàm « %s »"
+msgid "write: %s: %s"
+msgstr "ghi: %s: %s"
 
-#: function.c:2212
+#: function.c:2164
 #, c-format
-msgid "unterminated call to function `%s': missing `%c'"
-msgstr "cuộc gọi chưa được kết thúc cho hàm « %s »: thiếu « %c »"
+msgid "Invalid file operation: %s"
+msgstr "Thao tác tập tin không hợp lệ: %s"
 
-#: getopt.c:661
+#: function.c:2279
 #, c-format
-msgid "%s: option `%s' is ambiguous\n"
-msgstr "%s: tùy chọn « %s » là mơ hồ\n"
+msgid "insufficient number of arguments (%d) to function '%s'"
+msgstr "không đủ số đối số (%d) cho hàm “%s”"
 
-#: getopt.c:685
+#: function.c:2291
 #, c-format
-msgid "%s: option `--%s' doesn't allow an argument\n"
-msgstr "%s: tùy chọn « --%s » không cho phép đối số\n"
+msgid "unimplemented on this platform: function '%s'"
+msgstr "chưa được viết mã thi hành trên hệ thống này: hàm “%s”"
 
-#: getopt.c:690
+#: function.c:2354
 #, c-format
-msgid "%s: option `%c%s' doesn't allow an argument\n"
-msgstr "%s: tùy chọn « %c%s » không cho phép đối số\n"
+msgid "unterminated call to function '%s': missing '%c'"
+msgstr "cuộc gọi chưa được chấm dứt cho hàm “%s”: thiếu “%c”"
 
-#: getopt.c:707 getopt.c:880
+#: function.c:2546
+msgid "Empty function name\n"
+msgstr ""
+
+#: function.c:2548
+#, fuzzy, c-format
+msgid "Invalid function name: %s\n"
+msgstr "Thao tác tập tin không hợp lệ: %s"
+
+#: function.c:2550
+#, c-format
+msgid "Function name too long: %s\n"
+msgstr "Tên hàm quá dài: %s\n"
+
+#: function.c:2552
+#, c-format
+msgid "Invalid minimum argument count (%d) for function %s\n"
+msgstr "số lượng đối số tối thiểu (%d) là không hợp lệ cho hàm “%s”\n"
+
+#: function.c:2555
+#, c-format
+msgid "Invalid maximum argument count (%d) for function %s\n"
+msgstr "số lượng đối số tối đa (%d) là không hợp lệ cho hàm “%s”\n"
+
+#: getopt.c:659
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: tùy chọn “%s” chưa rõ ràng\n"
+
+#: getopt.c:683
 #, c-format
-msgid "%s: option `%s' requires an argument\n"
-msgstr "%s: tùy chọn « %s » cần đến đối số\n"
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: tùy chọn “--%s” không nhận một đối số\n"
 
-#: getopt.c:736
+#: getopt.c:688
 #, c-format
-msgid "%s: unrecognized option `--%s'\n"
-msgstr "%s: không nhận ra tùy chọn « --%s »\n"
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: tùy chọn “%c%s” không nhận một đối số\n"
 
-#: getopt.c:740
+#: getopt.c:705 getopt.c:878
 #, c-format
-msgid "%s: unrecognized option `%c%s'\n"
-msgstr "%s: không nhận ra tùy chọn « %c%s »\n"
+msgid "%s: option '%s' requires an argument\n"
+msgstr "%s: tùy chọn “%s” cần một đối số\n"
 
-#: getopt.c:766
+#: getopt.c:734
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: không nhận ra tùy chọn “--%s”\n"
+
+#: getopt.c:738
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: không nhận ra tùy chọn “%c%s”\n"
+
+#: getopt.c:764
 #, c-format
 msgid "%s: illegal option -- %c\n"
-msgstr "%s: không cho phép tùy chọn « -- %c »\n"
+msgstr "%s: tùy chọn không hợp lệ -- %c\n"
 
-#: getopt.c:769
+#: getopt.c:767
 #, c-format
 msgid "%s: invalid option -- %c\n"
-msgstr "%s: tùy chọn không hợp lệ « -- %c »\n"
+msgstr "%s: tùy chọn không hợp lệ -- %c\n"
 
-#: getopt.c:799 getopt.c:929
+#: getopt.c:797 getopt.c:927
 #, c-format
 msgid "%s: option requires an argument -- %c\n"
-msgstr "%s: tùy chọn cần đến đối số « -- %c »\n"
+msgstr "%s: tùy chọn cần một đối số -- %c\n"
+
+#: getopt.c:844
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: tùy chọn “-W %s” chưa rõ ràng\n"
 
-#: getopt.c:846
+#: getopt.c:862
 #, c-format
-msgid "%s: option `-W %s' is ambiguous\n"
-msgstr "%s: tùy chọn « -W %s » là mơ hồ\n"
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: tùy chọn “-W %s” không nhận một đối số\n"
 
-#: getopt.c:864
+#: guile.c:55
 #, c-format
-msgid "%s: option `-W %s' doesn't allow an argument\n"
-msgstr "%s: tùy chọn « -W %s » không cho phép đối số\n"
+msgid "guile: Expanding '%s'\n"
+msgstr "guile: Đang khai triển “%s”\n"
+
+#: guile.c:71
+#, c-format
+msgid "guile: Evaluating '%s'\n"
+msgstr "guile: Đang định giá “%s”\n"
 
 #: hash.c:49
-#, fuzzy, c-format
+#, c-format
 msgid "can't allocate %lu bytes for hash table: memory exhausted"
-msgstr "không thể cấp phát %ld byte cho bảng băm: hết bộ nhớ hoàn toàn"
+msgstr "không thể cấp phát %lu byte cho bảng băm: hết bộ nhớ"
 
 #: hash.c:280
 #, c-format
 msgid "Load=%ld/%ld=%.0f%%, "
-msgstr "Trọng tải=%ld/%ld=%.0f%%, "
+msgstr "Tải =%ld/%ld=%.0f%%, "
 
 #: hash.c:282
 #, c-format
@@ -499,464 +551,531 @@ msgstr "Băm lại=%d, "
 #: hash.c:283
 #, c-format
 msgid "Collisions=%ld/%ld=%.0f%%"
-msgstr "Xung đột=%ld/%ld=%.0f%%"
+msgstr "Xung đột  =%ld/%ld=%.0f%%"
 
-#: implicit.c:40
+#: implicit.c:38
 #, c-format
-msgid "Looking for an implicit rule for `%s'.\n"
-msgstr "Đang tìm quy tắc nguầm cho « %s ».\n"
+msgid "Looking for an implicit rule for '%s'.\n"
+msgstr "Tìm quy tắc ngầm cho “%s”.\n"
 
-#: implicit.c:56
+#: implicit.c:54
 #, c-format
-msgid "Looking for archive-member implicit rule for `%s'.\n"
-msgstr "Đang tìm quy tắc ngầm về bộ phạn kho cho « %s ».\n"
+msgid "Looking for archive-member implicit rule for '%s'.\n"
+msgstr "Tìm quy tắc ngầm về thành phần kho cho “%s”.\n"
 
-#: implicit.c:317
+#: implicit.c:310
 msgid "Avoiding implicit rule recursion.\n"
-msgstr "Đang tránh sự đệ qui quy tắc ngầm.\n"
+msgstr "Tránh quy tắc ngầm đệ quy.\n"
+
+#: implicit.c:486
+#, c-format
+msgid "Stem too long: '%.*s'.\n"
+msgstr "Stem quá dài: “%.*s”.\n"
 
 #: implicit.c:491
 #, c-format
-msgid "Trying pattern rule with stem `%.*s'.\n"
-msgstr "Đang thử quy tắc mẫu với cuống « %.*s ».\n"
+msgid "Trying pattern rule with stem '%.*s'.\n"
+msgstr "Thử quy tắc mẫu với cuống “%.*s”.\n"
 
-#: implicit.c:674
+#: implicit.c:697
 #, c-format
-msgid "Rejecting impossible rule prerequisite `%s'.\n"
-msgstr "Đang từ chối điều kiện tiên quyết không thể « %s ».\n"
+msgid "Rejecting impossible rule prerequisite '%s'.\n"
+msgstr "Từ chối điều kiện tiên quyết không thể thỏa “%s”.\n"
 
-#: implicit.c:675
+#: implicit.c:698
 #, c-format
-msgid "Rejecting impossible implicit prerequisite `%s'.\n"
-msgstr "Đang từ chối điều kiện tiên quyết ngầm không thể « %s ».\n"
+msgid "Rejecting impossible implicit prerequisite '%s'.\n"
+msgstr "Từ chối điều kiện tiên quyết ngầm không thể “%s”.\n"
 
-#: implicit.c:688
+#: implicit.c:711
 #, c-format
-msgid "Trying rule prerequisite `%s'.\n"
-msgstr "Đang thử điều kiện tiên quyết quy tắc « %s ».\n"
+msgid "Trying rule prerequisite '%s'.\n"
+msgstr "Thử điều kiện tiên quyết quy tắc “%s”.\n"
 
-#: implicit.c:689
+#: implicit.c:712
 #, c-format
-msgid "Trying implicit prerequisite `%s'.\n"
-msgstr "Đang thử điều kiện tiên quyết ngầm « %s ».\n"
+msgid "Trying implicit prerequisite '%s'.\n"
+msgstr "Thử điều kiện tiên quyết ngầm “%s”.\n"
 
-#: implicit.c:728
+#: implicit.c:751
 #, c-format
-msgid "Found prerequisite `%s' as VPATH `%s'\n"
-msgstr "Mới tìm điều kiện tiên quyết « %s » dạng VPATH « %s »\n"
+msgid "Found prerequisite '%s' as VPATH '%s'\n"
+msgstr "Tìm thấy điều kiện tiên quyết “%s” làm VPATH “%s”\n"
 
-#: implicit.c:742
+#: implicit.c:765
 #, c-format
-msgid "Looking for a rule with intermediate file `%s'.\n"
-msgstr "Đang tìm quy tắc với tập tin trung cấp « %s ».\n"
+msgid "Looking for a rule with intermediate file '%s'.\n"
+msgstr "Tìm quy tắc có tập tin trung gian “%s”.\n"
 
-#: job.c:335
+#: job.c:361
 msgid "Cannot create a temporary file\n"
-msgstr "Không thể tạo tên tập tin tạm thời\n"
+msgstr "Không thể tạo tập tin tạm\n"
 
-#: job.c:449
-#, c-format
-msgid "*** [%s] Error 0x%x (ignored)"
-msgstr "*** [%s] Lỗi 0x%x (bị bỏ qua)"
+#: job.c:482
+msgid " (core dumped)"
+msgstr " (đổ lõi)"
 
-#: job.c:450
+#: job.c:487
+msgid " (ignored)"
+msgstr " (bỏ qua)"
+
+#: job.c:491 job.c:1994
+msgid "<builtin>"
+msgstr "<dựng-sẵn>"
+
+#: job.c:501
 #, c-format
-msgid "*** [%s] Error 0x%x"
-msgstr "*** [%s] Lỗi 0x%x"
+msgid "%s: recipe for target '%s' failed"
+msgstr "%s: công thức cho đích “%s” gặp lỗi"
 
-#: job.c:454
+#: job.c:510
 #, c-format
-msgid "[%s] Error %d (ignored)"
-msgstr "[%s] Lỗi %d (bị bỏ qua)"
+msgid "%s[%s] Error 0x%x%s"
+msgstr "%s[%s] Lỗi 0x%x%s"
 
-#: job.c:455
+#: job.c:513
 #, c-format
-msgid "*** [%s] Error %d"
-msgstr "*** [%s] Lỗi %d"
+msgid "%s[%s] Error %d%s"
+msgstr "%s[%s] Lỗi %d%s"
 
-#: job.c:460
-msgid " (core dumped)"
-msgstr " (lõi bị đổ)"
+# Variable: don't translate / Biến: đừng dịch
+#: job.c:517
+#, c-format
+msgid "%s[%s] %s%s%s"
+msgstr "%s[%s] %s%s%s"
 
-#: job.c:549
+#: job.c:609
 msgid "*** Waiting for unfinished jobs...."
-msgstr "*** Đang đợi các việc chưa xong..."
+msgstr "*** Đang đợi những công việc chưa hoàn tất..."
 
-#: job.c:579
-#, fuzzy, c-format
+#: job.c:639
+#, c-format
 msgid "Live child %p (%s) PID %s %s\n"
-msgstr "Điều con động 0x%08lx (%s) PID %ld %s\n"
+msgstr "Tiến trình con còn sống %p (%s) PID %s %s\n"
 
-#: job.c:581 job.c:760 job.c:862 job.c:1527
+#: job.c:641 job.c:831 job.c:950 job.c:1687
 msgid " (remote)"
-msgstr " (từ xa)"
+msgstr " (máy chủ)"
 
-#: job.c:758
-#, fuzzy, c-format
+#: job.c:829
+#, c-format
 msgid "Reaping losing child %p PID %s %s\n"
-msgstr "Đang bắt điều con thua 0x%08lx PID %ld %s\n"
+msgstr "Đang mất tiến trình con %p PID %s %s\n"
 
-#: job.c:759
-#, fuzzy, c-format
+#: job.c:830
+#, c-format
 msgid "Reaping winning child %p PID %s %s\n"
-msgstr "Đang bắt điều con thắng 0x%08lx PID %ld %s\n"
+msgstr "Đang thắng lại tiến trình con %p PID %s %s\n"
 
-#: job.c:763
+#: job.c:837
 #, c-format
 msgid "Cleaning up temp batch file %s\n"
-msgstr "Đang làm sạch tập tin bó tạm thời: %s\n"
+msgstr "Dọn dẹp tập tin bó tạm %s\n"
 
-#: job.c:861
-#, fuzzy, c-format
+#: job.c:843
+#, c-format
+msgid "Cleaning up temp batch file %s failed (%d)\n"
+msgstr "Dọn dẹp tập tin bó tạm %s gặp lỗi (%d)\n"
+
+#: job.c:949
+#, c-format
 msgid "Removing child %p PID %s%s from chain.\n"
-msgstr "Đang gỡ bỏ điều con 0x%08lx PID %ld%s ra dây.\n"
+msgstr "Bỏ tiến trình con %p PID %s%s khỏi xâu.\n"
 
-#: job.c:920
-msgid "write jobserver"
-msgstr "ghi trình phục vụ công việc"
+#: job.c:1007
+#, c-format
+msgid "release jobserver semaphore: (Error %ld: %s)"
+msgstr "giải phóng tín hiệu jobserver: (Lỗi %ld: %s)"
 
-#: job.c:922
-#, fuzzy, c-format
+#: job.c:1011 job.c:1025
+#, c-format
 msgid "Released token for child %p (%s).\n"
-msgstr "Mới nhả hiệu bài cho điều con 0x%08lx (%s).\n"
+msgstr "Đã giải phóng thẻ bài cho tiến trình con %p (%s).\n"
+
+#: job.c:1023
+msgid "write jobserver"
+msgstr "ghi lại trình phục vụ công việc"
 
-#: job.c:1453 job.c:2094
+#: job.c:1612 job.c:2332
 #, c-format
 msgid "process_easy() failed to launch process (e=%ld)\n"
-msgstr ""
-"Việc « process_easy() » (tiến trình dễ) bị lỗi khi cố khởi chạy tiến trình (e="
-"%ld)\n"
+msgstr "process_easy() gặp lỗi khi chạy tiến trình (e=%ld)\n"
 
-#: job.c:1457 job.c:2098
+#: job.c:1616 job.c:2336
 #, c-format
 msgid ""
 "\n"
 "Counted %d args in failed launch\n"
 msgstr ""
 "\n"
-"Đã đếm %d đối số trong việc khởi chạy bị lỗi\n"
+"Đếm được %d đối số trong lần khởi chạy bị lỗi\n"
 
-#: job.c:1525
-#, fuzzy, c-format
+#: job.c:1685
+#, c-format
 msgid "Putting child %p (%s) PID %s%s on the chain.\n"
-msgstr "Đang để điều con 0x%08lx (%s) PID %ld%s trên dây.\n"
+msgstr "Đặt tiến trình con %p (%s) PID %s%s vào xâu.\n"
 
-#: job.c:1778
-#, fuzzy, c-format
+#: job.c:1953
+#, c-format
+msgid "semaphore or child process wait: (Error %ld: %s)"
+msgstr "chờ tín hiệu hay tiến trình con: (Lỗi %ld: %s)"
+
+#: job.c:1967
+#, c-format
 msgid "Obtained token for child %p (%s).\n"
-msgstr "Đã lấy hiệu bài cho điều con 0x%08lx (%s).\n"
+msgstr "Đã lấy thẻ bài cho điều con  %p (%s).\n"
 
-#: job.c:1787
+#: job.c:1977
 msgid "read jobs pipe"
-msgstr "đọc ống dẫn của các cộng việc"
+msgstr "đọc ống dẫn công việc"
 
-#: job.c:1798
+#: job.c:2003
 #, c-format
-msgid "Invoking recipe from %s:%lu to update target `%s'.\n"
-msgstr ""
+msgid "%s: target '%s' does not exist"
+msgstr "%s: đích “%s” không tồn tại"
 
-#: job.c:1802
-#, fuzzy, c-format
-msgid "Invoking builtin recipe to update target `%s'.\n"
-msgstr "Không cần tạo lại đích « %s »."
+#: job.c:2005
+#, c-format
+msgid "%s: update target '%s' due to: %s"
+msgstr "%s: cập nhật đích “%s”, cần bởi: %s"
 
-#: job.c:1910
+#: job.c:2118
 msgid "cannot enforce load limits on this operating system"
-msgstr "không thể buộc hạn chế trọng tải với hệ điều hành này"
+msgstr "không thể buộc giới hạn tải trên hệ điều hành này"
 
-#: job.c:1912
+#: job.c:2120
 msgid "cannot enforce load limit: "
-msgstr "không thể buộc hạn chế trọng tải: "
+msgstr "không thể buộc giới hạn tải: "
 
-#: job.c:1985
+#: job.c:2199
 msgid "no more file handles: could not duplicate stdin\n"
 msgstr ""
-"không có bộ quản lý tập tin nữa: không thể nhân bản thiết bị nhập chuẩn\n"
+"không thể xử lý thêm tập tin nào nữa: không thể nhân đôi đầu vào chuẩn\n"
 
-#: job.c:1987
+#: job.c:2210
 msgid "no more file handles: could not duplicate stdout\n"
 msgstr ""
-"không có bộ quản lý tập tin nữa: không thể nhân bản thiết bị xuất chuẩn\n"
+"không thể xử lý thêm tập tin nào nữa: không thể nhân đôi đầu ra chuẩn\n"
+
+#: job.c:2223
+msgid "no more file handles: could not duplicate stderr\n"
+msgstr ""
+"không thể xử lý thêm tập tin nào nữa: không thể nhân đôi đầu ra lỗi chuẩn\n"
 
-#: job.c:2015
+#: job.c:2238
 msgid "Could not restore stdin\n"
-msgstr "Không thể phục hồi thiết bị nhập chuẩn\n"
+msgstr "Không thể phục hồi đầu vào chuẩn\n"
 
-#: job.c:2023
+#: job.c:2246
 msgid "Could not restore stdout\n"
-msgstr "Không thể phục hồi thiết bị xuất chuẩn\n"
+msgstr "Không thể phục hồi đầu ra chuẩn\n"
 
-#: job.c:2127
-#, fuzzy, c-format
+#: job.c:2254
+msgid "Could not restore stderr\n"
+msgstr "Không thể phục hồi đầu ra lỗi tiêu chuẩn\n"
+
+#: job.c:2365
+#, c-format
 msgid "make reaped child pid %s, still waiting for pid %s\n"
-msgstr "đặt điều con đã bắt là PID %ld, vẫn còn đợi PID %ld\n"
+msgstr "đặt điều con đã bắt là PID %s, vẫn còn đợi PID %s\n"
 
-#: job.c:2168
+#: job.c:2403
 #, c-format
 msgid "%s: Command not found"
-msgstr "%s: Không tìm thấy lệnh."
+msgstr "%s: Không tìm thấy lệnh"
 
-#: job.c:2228
+#: job.c:2463
 #, c-format
 msgid "%s: Shell program not found"
 msgstr "%s: Không tìm thấy chương trình hệ vỏ"
 
-#: job.c:2237
+#: job.c:2472
 msgid "spawnvpe: environment space might be exhausted"
-msgstr "spawnvpe: có lẽ hết sức chứa môi trường hoàn toàn"
+msgstr "spawnvpe: cạn không gian dành cho biến môi trường"
 
-#: job.c:2461
+#: job.c:2709
 #, c-format
-msgid "$SHELL changed (was `%s', now `%s')\n"
-msgstr "$SHELL đã thay đổi (đã « %s », là « %s »)\n"
+msgid "$SHELL changed (was '%s', now '%s')\n"
+msgstr "$SHELL thay đổi (trước là “%s”, giờ là “%s”)\n"
 
-#: job.c:2951
+#: job.c:3140 job.c:3325
 #, c-format
 msgid "Creating temporary batch file %s\n"
-msgstr "Đang tạo tập tin bó tạm thời: %s\n"
+msgstr "Tạo tập tin bó lệnh tạm: %s\n"
 
-#: job.c:2963
+#: job.c:3148
+msgid ""
+"Batch file contents:\n"
+"\t@echo off\n"
+msgstr ""
+"Nội dung tập tin bó lệnh:\n"
+"\t@echo off\n"
+
+#: job.c:3337
 #, c-format
 msgid ""
 "Batch file contents:%s\n"
 "\t%s\n"
 msgstr ""
+"Nội dung tập tin bó lệnh:%s\n"
+"\t%s\n"
 
-#: job.c:3065
+#: job.c:3444
 #, c-format
 msgid "%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"
-msgstr "%s (dòng %d) Ngữ cảnh hệ vỏ sai (!unixy && !batch_mode_shell)\n"
+msgstr "%s (dòng %d) Ngữ cảnh shell sai (!unixy && !batch_mode_shell)\n"
 
-#: main.c:303
+#: job.h:43
+msgid "-O[TYPE] (--output-sync[=TYPE]) is not configured for this build."
+msgstr "-O[KIỂU] (--output-sync[=KIỂU]) chưa được cấu hình cho lần dịch này."
+
+#: load.c:53
+#, c-format
+msgid "Failed to open global symbol table: %s"
+msgstr "Gặp lỗi khi mở bảng ký hiệu toàn cục: %s"
+
+#: load.c:87
+#, c-format
+msgid "Loaded object %s is not declared to be GPL compatible"
+msgstr "Đối tượng %s đã được tải không được công bố là tương thích GPL"
+
+#: load.c:92
+#, c-format
+msgid "Failed to load symbol %s from %s: %s"
+msgstr "Gặp lỗi khi tải ký hiệu %s từ %s: %s"
+
+#: load.c:136
+#, c-format
+msgid "Empty symbol name for load: %s"
+msgstr "Tên ký hiệu là trống rỗng cho việc tải: %s"
+
+#: load.c:191
+#, c-format
+msgid "Loading symbol %s from %s\n"
+msgstr "Đang tải ký hiệu %s từ %s\n"
+
+#: load.c:229
+msgid "The 'load' operation is not supported on this platform."
+msgstr "không hỗ trợ thao tác “load” trên hệ thống này."
+
+#: main.c:312
 msgid "Options:\n"
 msgstr "Tùy chọn:\n"
 
-#: main.c:304
+#: main.c:313
 msgid "  -b, -m                      Ignored for compatibility.\n"
-msgstr "  -b, -m                      Bá»\8b bá»\8f qua Ä\91á»\83 tÆ°Æ¡ng thích.\n"
+msgstr "  -b, -m                      Bỏ qua để tương thích.\n"
 
-#: main.c:306
+#: main.c:315
 msgid "  -B, --always-make           Unconditionally make all targets.\n"
-msgstr ""
-"  -B, --always-make           _Luôn luôn tạo_ mọi đích (không điều kiện).\n"
+msgstr "  -B, --always-make           Tạo mọi đích vô điều kiện.\n"
 
-#: main.c:308
+#: main.c:317
 msgid ""
 "  -C DIRECTORY, --directory=DIRECTORY\n"
 "                              Change to DIRECTORY before doing anything.\n"
 msgstr ""
 "  -C THƯ_MỤC, --directory=THƯ_MỤC\n"
-"                              Chuyển đổi sang thư mục này, trước hết.\n"
+"                              Chuyển sang THƯ MỤC này trước khi làm.\n"
 
-#: main.c:311
+#: main.c:320
 msgid "  -d                          Print lots of debugging information.\n"
-msgstr "  -d                          In ra rất nhiều thông tin _gỡ lỗi_.\n"
+msgstr "  -d                          In rất nhiều thông tin gỡ rối.\n"
 
-#: main.c:313
+#: main.c:322
 msgid ""
 "  --debug[=FLAGS]             Print various types of debugging information.\n"
 msgstr ""
-"  --debug[=CỜ...]             In ra các kiểu thông tin _gỡ lỗi_ khác nhau.\n"
+"  --debug[=CỜ...]             In nhiều loại thông tin gỡ rối khác nhau.\n"
 
-#: main.c:315
+#: main.c:324
 msgid ""
 "  -e, --environment-overrides\n"
 "                              Environment variables override makefiles.\n"
 msgstr ""
 "  -e, --environment-overrides\n"
-"                              Các biến _môi trường có quyền cao hơn_\n"
-"\t\t\t\t\tcác tập tin tạo (makefile).\n"
+"                              Biến môi trường đè tập tin makefile.\n"
 
-#: main.c:318
+#: main.c:327
 msgid ""
 "  --eval=STRING               Evaluate STRING as a makefile statement.\n"
 msgstr ""
+"  --eval=CHUỖI                Định lượng CHUỖI như một lệnh makefile.\n"
 
-#: main.c:320
+#: main.c:329
 msgid ""
 "  -f FILE, --file=FILE, --makefile=FILE\n"
 "                              Read FILE as a makefile.\n"
 msgstr ""
-"  -f TẬP_TIN, --file=TẬP_TIN, --makefile=TẬP_TIN\n"
-"                              Đọc tập tin này dạng tập tin tạo (makefile).\n"
+"  -f TẬP-TIN, --file=TẬP-TIN, --makefile=TẬP-TIN\n"
+"                              Đọc TẬP-TIN dạng makefile.\n"
 
-#: main.c:323
+#: main.c:332
 msgid "  -h, --help                  Print this message and exit.\n"
-msgstr "  -h, --help                  Hiển thị _trợ giúp_ này rồi thoát.\n"
+msgstr "  -h, --help                  Hiển thị trợ giúp này và thoát.\n"
 
-#: main.c:325
-#, fuzzy
+#: main.c:334
 msgid "  -i, --ignore-errors         Ignore errors from recipes.\n"
-msgstr "  -i, --ignore-errors         _Bỏ qua các lỗi_ từ các lệnh.\n"
+msgstr "  -i, --ignore-errors         Bỏ qua lỗi từ công thức.\n"
 
-#: main.c:327
+#: main.c:336
 msgid ""
 "  -I DIRECTORY, --include-dir=DIRECTORY\n"
 "                              Search DIRECTORY for included makefiles.\n"
 msgstr ""
 "  -I THƯ_MỤC, --include-dir=THƯ_MỤC\n"
-"                              Tìm kiếm tập tin tạo (makefile) đã _bao gồm_\n"
-"\t\t\t\t\ttrong _thư mục_ này.\n"
+"                              Quét THƯ-MỤC này tìm makefile con.\n"
 
-#: main.c:330
+#: main.c:339
 msgid ""
 "  -j [N], --jobs[=N]          Allow N jobs at once; infinite jobs with no "
 "arg.\n"
 msgstr ""
-"  -j [N], --jobs[=N]          Cho phép N (số) _công việc_ đồng thời;\n"
-"\t\t\t\t\t\tvô hạn khi không có đối số\n"
+"  -j [N], --jobs[=N]          Cho phép N công việc đồng thời; không có đối "
+"số thì vô hạn.\n"
 
-#: main.c:332
+#: main.c:341
 msgid ""
 "  -k, --keep-going            Keep going when some targets can't be made.\n"
-msgstr ""
-"  -k, --keep-going            _Cứ làm_ khi không thể tạo một số đích.\n"
+msgstr "  -k, --keep-going            Cứ tiếp tục khi không thể tạo đích.\n"
 
-#: main.c:334
+#: main.c:343
 msgid ""
 "  -l [N], --load-average[=N], --max-load[=N]\n"
 "                              Don't start multiple jobs unless load is below "
 "N.\n"
 msgstr ""
-"  -l [N], --load-average[=N], --max-load[=N]\n"
-"                       Đừng khởi chạy nhiều công việc, trừ trọng tải dưới N "
-"(số).\n"
+"  -l [SỐ], --load-average[=N], --max-load[=N]\n"
+"                              Chỉ chạy nhiều công việc nếu tải dưới N.\n"
 
-#: main.c:337
+#: main.c:346
 msgid ""
 "  -L, --check-symlink-times   Use the latest mtime between symlinks and "
 "target.\n"
 msgstr ""
-"  -L, --check-symlink-times\n"
-"\t\t\tDùng giờ_m cuối cùng giữa liên kết tượng trưng và đích.\n"
-"\t(_kiểm tra giờ liên kết tượng trưng_)\n"
+"  -L, --check-symlink-times   Dùng mtime mới nhất giữa liên kết và đích.\n"
 
-#: main.c:339
-#, fuzzy
+#: main.c:348
 msgid ""
 "  -n, --just-print, --dry-run, --recon\n"
 "                              Don't actually run any recipe; just print "
 "them.\n"
 msgstr ""
 "  -n, --just-print, --dry-run, --recon\n"
-"                             Đừng thật chạy lệnh nào, chỉ in ra hết.\n"
-"\t(_chỉ in, chạy thực hành, sự thăm dò_)\n"
+"                              Không chạy công thức; chỉ in chúng ra.\n"
 
-#: main.c:342
+#: main.c:351
 msgid ""
 "  -o FILE, --old-file=FILE, --assume-old=FILE\n"
 "                              Consider FILE to be very old and don't remake "
 "it.\n"
 msgstr ""
-"  -o TẬP_TIN, --old-file=TẬP_TIN, --assume-old=TẬP_TIN\n"
-"                             Xem tập tin này là rất cũ nên đừng tạo lại nó.\n"
-"\t(_cũ, tập tin cũ, giả sử cũ_)\n"
+"  -o TẬP-TIN, --old-file=TẬP-TIN, --assume-old=TẬP-TIN\n"
+"                              Coi TẬP-TIN là rất cũ và không tạo lại.\n"
 
-#: main.c:345
-msgid "  -p, --print-data-base       Print make's internal database.\n"
+#: main.c:354
+msgid ""
+"  -O[TYPE], --output-sync[=TYPE]\n"
+"                              Synchronize output of parallel jobs by TYPE.\n"
 msgstr ""
-"  -p, --print-data-base      _In ra cơ sở dữ liệu_ nội bộ của trình make.\n"
+"  -O[KIỂU], --output-sync[=KIỂU]\n"
+"                              Đồng bộ hóa kết xuất công việc song song theo "
+"KIỂU.\n"
 
-#: main.c:347
-#, fuzzy
+#: main.c:357
+msgid "  -p, --print-data-base       Print make's internal database.\n"
+msgstr "  -p, --print-data-base       In cơ sở dữ liệu nội bộ của make.\n"
+
+#: main.c:359
 msgid ""
 "  -q, --question              Run no recipe; exit status says if up to "
 "date.\n"
 msgstr ""
-"  -q, --question\n"
-"\tĐừng chạy lệnh nào; trạng thái thoát nói nếu hiện thời hay không.\n"
-"\t(_câu hỏi_)\n"
+"  -q, --question              Không chạy; mã thoát là \"đã cập nhật\".\n"
 
-#: main.c:349
+#: main.c:361
 msgid "  -r, --no-builtin-rules      Disable the built-in implicit rules.\n"
-msgstr ""
-"  -r, --no-builtin-rules      \t\tTắt các quy tắc ngầm có sẵn.\n"
-"\t(_không có quy tắc có sẵn_)\n"
+msgstr "  -r, --no-builtin-rules      Tắt quy tắc ngầm dựng sẵn.\n"
 
-#: main.c:351
+#: main.c:363
 msgid "  -R, --no-builtin-variables  Disable the built-in variable settings.\n"
-msgstr ""
-"  -R, --no-builtin-variables  \tTắt các thiết lập biến có sẵn.\n"
-"\t(_không có biến có sẵn_)\n"
+msgstr "  -R, --no-builtin-variables  Tắt đặt biến dựng sẵn.\n"
 
-#: main.c:353
-#, fuzzy
+#: main.c:365
 msgid "  -s, --silent, --quiet       Don't echo recipes.\n"
-msgstr ""
-"  -s, --silent, --quiet       Đừng vọng (hiển thị) lệnh.\n"
-"\t(_câm, im_)\n"
+msgstr "  -s, --silent, --quiet       Không in lại công thức.\n"
 
-#: main.c:355
+#: main.c:367
 msgid ""
 "  -S, --no-keep-going, --stop\n"
 "                              Turns off -k.\n"
 msgstr ""
-"  -S, --no-keep-going, --stop\t\tTắt « -k ».\n"
-"\t(không cứ làm, dừng)\n"
+"  -S, --no-keep-going, --stop\n"
+"                              Tắt -k.\n"
 
-#: main.c:358
+#: main.c:370
 msgid "  -t, --touch                 Touch targets instead of remaking them.\n"
-msgstr ""
-"  -t, --touch                 Touch các đích thay vào tạo lại chúng.\n"
-"\t(_sờ_)\n"
+msgstr "  -t, --touch                 Sờ đích thay vì tạo lại.\n"
+
+#: main.c:372
+msgid "  --trace                     Print tracing information.\n"
+msgstr "  --trace                     Hiển thị thông tin dấu vết.\n"
 
-#: main.c:360
+#: main.c:374
 msgid ""
 "  -v, --version               Print the version number of make and exit.\n"
-msgstr ""
-"  -v, --version               In ra số thứ tự _phiên bản_ của trình make, "
-"rồi thoát.\n"
+msgstr "  -v, --version               Hiển thị phiên bản make và thoát.\n"
 
-#: main.c:362
+#: main.c:376
 msgid "  -w, --print-directory       Print the current directory.\n"
-msgstr "  -w, --print-directory       _In ra thư mục_ hiện thời.\n"
+msgstr "  -w, --print-directory       Hiển thị thư mục hiện thời.\n"
 
-#: main.c:364
+#: main.c:378
 msgid ""
 "  --no-print-directory        Turn off -w, even if it was turned on "
 "implicitly.\n"
-msgstr ""
-"  --no-print-directory        Tắt « -w », dù khi nó được bật ngầm\n"
-"\t(_không in ra thư mục_)\n"
+msgstr "  --no-print-directory        Tắt -w, thậm chí nếu được bật ngầm.\n"
 
-#: main.c:366
+#: main.c:380
 msgid ""
 "  -W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE\n"
 "                              Consider FILE to be infinitely new.\n"
 msgstr ""
-"  -W TẬP_TIN\n"
-"  --what-if=TẬP_TIN\n"
-"  --new-file=TẬP_TIN\n"
-"  --assume-new=TẬP_TIN\n"
-"                              \t\t\tXem là tập tin này là mới vô hạn.\n"
-"\t(_gì nếu, tập tin mới, giả sử mới_)\n"
-
-#: main.c:369
+"  -W TẬP-TIN, --what-if=TẬP-TIN, --new-file=TẬP-TIN, --assume-new=TẬP-TIN\n"
+"                              Giả định TẬP-TIN là mới vô hạn.\n"
+
+#: main.c:383
 msgid ""
 "  --warn-undefined-variables  Warn when an undefined variable is "
 "referenced.\n"
 msgstr ""
-"  --warn-undefined-variables\n"
-"\t\t_Cảnh báo_ khi tham chiếu một _biến chưa được định nghĩa_.\n"
+"  --warn-undefined-variables  Cảnh báo tham chiếu đến biến chưa xác định.\n"
 
-#: main.c:564
+#: main.c:647
 msgid "empty string invalid as file name"
-msgstr "chuỗi rỗng không hợp lệ dạng tên tập tin"
+msgstr "chuỗi rỗng không hợp lệ làm tên tập tin"
 
-#: main.c:650
+#: main.c:734
 #, c-format
-msgid "unknown debug level specification `%s'"
-msgstr "không biết đặc tả cấp gỡ lỗi « %s »"
+msgid "unknown debug level specification '%s'"
+msgstr "không rõ đặc tả cấp gỡ rối “%s”"
 
-#: main.c:690
-#, fuzzy, c-format
+#: main.c:777
+#, c-format
+msgid "unknown output-sync type '%s'"
+msgstr "không hiểu kiểu output-sync “%s”"
+
+#: main.c:787
+msgid "internal error: multiple --sync-mutex options"
+msgstr "lỗi nội bộ: có nhiều tùy chọn --sync-mutex"
+
+#: main.c:848
+#, c-format
 msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
-msgstr ""
-"%s: Mới bắt Interrupt/Exception (ngắt/ngoài lệ) (mã = 0x%lx, địa chỉ = 0x%"
-"lx)\n"
+msgstr "%s: Bắt được ngắt/ngoại lệ (mã = 0x%lx, địa chỉ = 0x%p)\n"
 
-#: main.c:697
-#, fuzzy, c-format
+#: main.c:855
+#, c-format
 msgid ""
 "\n"
 "Unhandled exception filter called from program %s\n"
@@ -965,228 +1084,233 @@ msgid ""
 "ExceptionAddress = 0x%p\n"
 msgstr ""
 "\n"
-"Bộ lọc ngoại lệ không đã quản lý được gọi từ chương trình %s\n"
-"ExceptionCode \t\tmã ngoại lệ\t       %lx\n"
-"ExceptionFlags \t\tcác cờ ngoại lệ      %lx\n"
-"ExceptionAddress \t\tđịa chỉ ngoại lệ     %lx\n"
+"Bộ lọc ngoại lệ không quản lý được gọi từ chương trình %s\n"
+"ExceptionCode (mã ngoại lệ) = %lx\n"
+"ExceptionFlags (các cờ ngoại lệ) = %lx\n"
+"ExceptionAddress (địa chỉ ngoại lệ) = 0x%p\n"
 
-#: main.c:705
-#, fuzzy, c-format
+#: main.c:863
+#, c-format
 msgid "Access violation: write operation at address 0x%p\n"
-msgstr "Vi phạm truy cập: thao tác ghi tại địa chỉ %lx\n"
+msgstr "Vi phạm truy cập: thao tác ghi tại địa chỉ 0x%p\n"
 
-#: main.c:706
-#, fuzzy, c-format
+#: main.c:864
+#, c-format
 msgid "Access violation: read operation at address 0x%p\n"
-msgstr "Vi phạm truy cập: thao tác đọc tại địa chỉ %lx\n"
+msgstr "Vi phạm truy cập: thao tác đọc tại địa chỉ 0x%p\n"
 
-#: main.c:781 main.c:792
-#, fuzzy, c-format
+#: main.c:940 main.c:955
+#, c-format
 msgid "find_and_set_shell() setting default_shell = %s\n"
-msgstr ""
-"« find_and_set_shell » (tìm và lập hệ vỏ) đang lập « default_shell » (hệ vỏ "
-"mặc định) = %s\n"
+msgstr "find_and_set_shell() đang đặt default_shell = %s\n"
 
-#: main.c:834
-#, fuzzy, c-format
+#: main.c:1008
+#, c-format
 msgid "find_and_set_shell() path search set default_shell = %s\n"
-msgstr ""
-"Việc tìm kiếm đường dẫn « find_and_set_shell » (tìm và lập hệ vỏ) đang lập « "
-"default_shell » (hệ vỏ mặc định) = %s\n"
+msgstr "find_and_set_shell() đã quét đường dẫn thì đặt default_shell = %s\n"
 
-#: main.c:1273
+#: main.c:1447
 #, c-format
 msgid "%s is suspending for 30 seconds..."
-msgstr "%s đang ngưng được 30 giây..."
+msgstr "%s đang ngưng trong 30 giây..."
 
-#: main.c:1275
+#: main.c:1449
 #, c-format
 msgid "done sleep(30). Continuing.\n"
-msgstr "đã ngủ(30). Đang tiếp tục.\n"
-
-#: main.c:1501
-msgid "Makefile from standard input specified twice."
-msgstr "Tập tin tạo (makefile) từ thiết bị nhập chuẩn đã được ghi rõ hai lần."
+msgstr "đã ngủ(30). Tiếp tục.\n"
 
-#: main.c:1539 vmsjobs.c:500
-msgid "fopen (temporary file)"
-msgstr ""
-"fopen (tập tin tạm thời)\n"
-"  (_mở tập tin_)"
+#: main.c:1534
+msgid "internal error: multiple --jobserver-fds options"
+msgstr "lỗi nội bộ: có nhiều tùy chọn --jobserver-fds"
 
-#: main.c:1545
-msgid "fwrite (temporary file)"
+#: main.c:1544
+#, c-format
+msgid ""
+"internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"
 msgstr ""
-"fwrite (tập tin tạm thời)\n"
-"  (_ghi tập tin_)"
+"lỗi nội tại: không thể mở cờ hiệu máy phục vụ công việc “%s”: (Lỗi %ld: %s)"
 
-#: main.c:1703
-msgid "Parallel jobs (-j) are not supported on this platform."
-msgstr "Công việc song song (-j) không được hỗ trợ trên nền tảng này."
-
-#: main.c:1704
-msgid "Resetting to single job (-j1) mode."
-msgstr "Đang lập lại thành chế độ công việc đơn (-j1)."
-
-#: main.c:1719
-msgid "internal error: multiple --jobserver-fds options"
-msgstr ""
-"lỗi nội bộ: có nhiều tùy chọn « --jobserver-fds » (trình phục vụ công việc -"
-"fds)."
+#: main.c:1547
+#, c-format
+msgid "Jobserver client (semaphore %s)\n"
+msgstr "Ứng dụng khách jobserver (cờ hiệu %s)\n"
 
-#: main.c:1727
+#: main.c:1551
 #, c-format
-msgid "internal error: invalid --jobserver-fds string `%s'"
-msgstr ""
-"lỗi nội bộ: gặp chuỗi « --jobserver-fds » (trình phục vụ công việc -fds) "
-"không hợp lệ « %s »."
+msgid "internal error: invalid --jobserver-fds string '%s'"
+msgstr "lỗi nội bộ: gặp chuỗi --jobserver-fds “%s” không hợp lệ"
 
-#: main.c:1730
+#: main.c:1554
 #, c-format
 msgid "Jobserver client (fds %d,%d)\n"
-msgstr ""
+msgstr "Ứng dụng khách jobserver (fds %d,%d)\n"
 
-#: main.c:1740
+#: main.c:1567
 msgid "warning: -jN forced in submake: disabling jobserver mode."
-msgstr ""
-"cảnh báo : « -jN » bị buộc trong tiến trình submake: nên tắt chế độ trình "
-"phục vụ công việc (jobserver)."
+msgstr "cảnh báo: -jN bị ép buộc trong make con: tắt chế độ jobserver."
 
-#: main.c:1750
+#: main.c:1583
 msgid "dup jobserver"
-msgstr "dup jobserver (sao lục trình phục vụ công việc)"
+msgstr "dup jobserver"
 
-#: main.c:1753
+#: main.c:1586
 msgid ""
-"warning: jobserver unavailable: using -j1.  Add `+' to parent make rule."
+"warning: jobserver unavailable: using -j1.  Add '+' to parent make rule."
 msgstr ""
-"cảnh báo : trình phục vụ công việc không sẵn sàng: nên dùng « -j1 ». Hãy thêm "
-"« + » vào quy tắc make mẹ."
+"cảnh báo: trình jobserver không sẵn sàng: dùng -j1. Thêm “+” vào quy tắc "
+"make cha."
+
+#: main.c:1752
+msgid "Makefile from standard input specified twice."
+msgstr "Tập tin makefile từ đầu vào chuẩn được ghi hai lần."
+
+#: main.c:1790 vmsjobs.c:496
+msgid "fopen (temporary file)"
+msgstr "fopen (tập tin tạm)"
+
+#: main.c:1796
+msgid "fwrite (temporary file)"
+msgstr "fwrite (tập tin tạm)"
 
-#: main.c:1777
+#: main.c:1984
+msgid "Parallel jobs (-j) are not supported on this platform."
+msgstr "Không hỗ trợ công việc song song (-j) trên hệ thống này."
+
+#: main.c:1985
+msgid "Resetting to single job (-j1) mode."
+msgstr "Đặt lại thành chế độ công việc đơn (-j1)."
+
+#: main.c:2006
+#, c-format
+msgid "Jobserver slots limited to %d\n"
+msgstr "Khe jobserver bị giới hạn thành %d\n"
+
+#: main.c:2012
+#, c-format
+msgid "creating jobserver semaphore: (Error %ld: %s)"
+msgstr "đang tạo tín hiệu jobserver: (Lỗi %ld: %s)"
+
+#: main.c:2019
 msgid "creating jobs pipe"
-msgstr "đang tạo ống dẫn công việc"
+msgstr "tạo ống dẫn công việc"
 
-#: main.c:1792
+#: main.c:2039
 msgid "init jobserver pipe"
-msgstr "init jobserver pipe (sở khởi ống dẫn trình phục vụ công việc)"
+msgstr "init jobserver pipe"
 
-#: main.c:1812
+#: main.c:2064
 msgid "Symbolic links not supported: disabling -L."
-msgstr "Không hỗ trợ liên kết tượng trưng: nên tắt « -L »."
+msgstr "Không hỗ trợ liên kết mềm: tắt -L."
 
-#: main.c:1892
+#: main.c:2149
 msgid "Updating makefiles....\n"
-msgstr "Đạng cập nhật các tập tin tạo (makefile)...\n"
+msgstr "Cập nhật makefile...\n"
 
-#: main.c:1917
+#: main.c:2174
 #, c-format
-msgid "Makefile `%s' might loop; not remaking it.\n"
-msgstr "Tập tin tạo (makefile) « %s » có lẽ sẽ vòng lặp; sẽ không tạo lại nó.\n"
+msgid "Makefile '%s' might loop; not remaking it.\n"
+msgstr "Makefile “%s” bị lặp; không tạo lại nó.\n"
 
-#: main.c:1996
+#: main.c:2253
 #, c-format
-msgid "Failed to remake makefile `%s'."
-msgstr "Việc tạo lại tập tin tạo (makefile) « %s » bị lỗi."
+msgid "Failed to remake makefile '%s'."
+msgstr "Gặp lỗi khi làm lại makefile “%s”."
 
-#: main.c:2013
+#: main.c:2270
 #, c-format
-msgid "Included makefile `%s' was not found."
-msgstr "Không tìm thấy tập tin tạo (makefile) đã bao gồm « %s »."
+msgid "Included makefile '%s' was not found."
+msgstr "Không tìm thấy makefile bao gồm “%s”."
 
-#: main.c:2018
+#: main.c:2275
 #, c-format
-msgid "Makefile `%s' was not found"
-msgstr "Không tìm thấy tập tin tạo (makefile) « %s »."
+msgid "Makefile '%s' was not found"
+msgstr "Không tìm thấy makefile “%s”."
 
-#: main.c:2086
+#: main.c:2341
 msgid "Couldn't change back to original directory."
-msgstr "Không thể chuyển đổi về thư mục gốc."
+msgstr "Không thể chuyển về thư mục gốc."
 
-#: main.c:2102
+#: main.c:2354
 #, c-format
 msgid "Re-executing[%u]:"
-msgstr "Đang thực hiện lại[%u]:"
+msgstr "Thực hiện lại[%u]:"
 
-#: main.c:2215
+#: main.c:2463
 msgid "unlink (temporary file): "
-msgstr "unlink (bỏ liên kết) (tập tin tạm thời): "
+msgstr "unlink (bỏ liên kết tập tin tạm): "
 
-#: main.c:2247
+#: main.c:2495
 msgid ".DEFAULT_GOAL contains more than one target"
-msgstr "« .DEFAULT_GOAL » (đích mặc định) chứa nhiều đích."
+msgstr ".DEFAULT_GOAL chứa nhiều đích"
 
-#: main.c:2270
+#: main.c:2518
 msgid "No targets specified and no makefile found"
-msgstr "Chưa ghi rõ đích nào, và không tìm thấy tập tin tạo (makefile) nào"
+msgstr "Chưa xác định đích, và không tìm thấy makefile"
 
-#: main.c:2272
+#: main.c:2520
 msgid "No targets"
 msgstr "Không có đích"
 
-#: main.c:2277
+#: main.c:2525
 msgid "Updating goal targets....\n"
-msgstr "Đạng cập nhật các đích mục tiêu...\n"
+msgstr "Cập nhật đích mục tiêu...\n"
 
-#: main.c:2306
+#: main.c:2550
 msgid "warning:  Clock skew detected.  Your build may be incomplete."
 msgstr ""
-"cảnh báo : mới phát hiện đối xứng lệch đồng hồ. Như thế thì bản xây dụng có "
-"lẽ không hoàn toàn."
+"cảnh báo: Phát hiện lệch giờ. Bản dịch của bạn có thể không hoàn thiện."
 
-#: main.c:2470
+#: main.c:2718
 #, c-format
 msgid "Usage: %s [options] [target] ...\n"
-msgstr "Cách sử dụng: %s [tùy_chọn...] [đích] ...\n"
+msgstr "Cách dùng: %s [các_tùy_chọn] [đích] ...\n"
 
-#: main.c:2476
+#: main.c:2724
 #, c-format
 msgid ""
 "\n"
 "This program built for %s\n"
 msgstr ""
 "\n"
-"Chương trình này đã được xây dụng cho %s\n"
+"Chương trình này đã được dịch cho %s\n"
 
-#: main.c:2478
+#: main.c:2726
 #, c-format
 msgid ""
 "\n"
 "This program built for %s (%s)\n"
 msgstr ""
 "\n"
-"Chương trình này đã được xây dụng cho %s (%s)\n"
+"Chương trình này đã được dịch cho %s (%s)\n"
 
-#: main.c:2481
+#: main.c:2729
 #, c-format
 msgid "Report bugs to <bug-make@gnu.org>\n"
-msgstr "Hãy thông báo lỗi cho <bug-make@gnu.org>.\n"
+msgstr ""
+"Hãy thông báo lỗi cho <bug-make@gnu.org>\n"
+"Hãy thông báo lỗi dịch cho <http://translationproject.org/team/vi.html>.\n"
 
-#: main.c:2562
-#, fuzzy, c-format
-msgid "the `%s%s' option requires a non-empty string argument"
-msgstr "tùy chọn « -%c » cần đến một đối số dạng chuỗi không rỗng"
+#: main.c:2810
+#, c-format
+msgid "the '%s%s' option requires a non-empty string argument"
+msgstr "tùy chọn “%s%s” cần một đối số là chuỗi khác rỗng"
 
-#: main.c:2617
+#: main.c:2864
 #, c-format
-msgid "the `-%c' option requires a positive integral argument"
-msgstr "tùy chọn « -%c » cần đến một đối số dạng số nguyên dương"
+msgid "the '-%c' option requires a positive integer argument"
+msgstr "tùy chọn “-%c” cần một đối số số nguyên dương"
 
-#: main.c:3054
-#, fuzzy, c-format
+#: main.c:3253
+#, c-format
 msgid "%sBuilt for %s\n"
-msgstr ""
-"\n"
-"%sChương trình này đã được xây dụng cho %s\n"
+msgstr "%sĐược dịch cho %s\n"
 
-#: main.c:3056
-#, fuzzy, c-format
+#: main.c:3255
+#, c-format
 msgid "%sBuilt for %s (%s)\n"
-msgstr ""
-"\n"
-"%sChương trình này đã được xây dụng cho %s (%s)\n"
+msgstr "%sĐược dịch cho %s (%s)\n"
 
-#: main.c:3066
+#: main.c:3266
 #, c-format
 msgid ""
 "%sLicense GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
@@ -1194,128 +1318,132 @@ msgid ""
 "%sThis is free software: you are free to change and redistribute it.\n"
 "%sThere is NO WARRANTY, to the extent permitted by law.\n"
 msgstr ""
+"%sGiấy phép GPL pb3+: Giấy phép Công cộng GNU phiên bản 3 hay sau <http://"
+"gnu.org/licenses/gpl.html>\n"
+"%sĐây là phần mềm tự do: bạn có quyền sửa đổi và phát hành lại nó.\n"
+"%sKHÔNG CÓ BẢO HÀNH GÌ CẢ, với điều khiển được pháp luật cho phép.\n"
 
-#: main.c:3086
+#: main.c:3287
 #, c-format
 msgid ""
 "\n"
 "# Make data base, printed on %s"
 msgstr ""
 "\n"
-"# Cơ sở dữ liệu Make, được in ra vào %s"
+"# Cơ sở dữ liệu Make, in lúc %s"
 
-#: main.c:3096
+#: main.c:3297
 #, c-format
 msgid ""
 "\n"
 "# Finished Make data base on %s\n"
 msgstr ""
 "\n"
-"# Mới xong cơ sở dữ liệu Make vào %s\n"
+"# Hoàn tất cơ sở dữ liệu Make lúc %s\n"
+
+#: misc.c:201
+#, c-format
+msgid "Unknown error %d"
+msgstr "Lỗi lạ %d"
+
+#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
+msgid "virtual memory exhausted"
+msgstr "hết bộ nhớ ảo"
+
+#: misc.c:522
+#, c-format
+msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
+msgstr "%s: người dùng %lu (thật %lu), nhóm %lu (thật %lu)\n"
+
+#: misc.c:543
+msgid "Initialized access"
+msgstr "Truy cập đã được khởi tạo"
+
+#: misc.c:622
+msgid "User access"
+msgstr "Truy cập người dùng"
 
-#: main.c:3237
+#: misc.c:670
+msgid "Make access"
+msgstr "Truy cập Make"
+
+#: misc.c:704
+msgid "Child access"
+msgstr "Truy cập con"
+
+#: output.c:128
 #, c-format
 msgid "%s: Entering an unknown directory\n"
-msgstr "%s: Đang vào một thư mục lạ\n"
+msgstr "%s: Vào thư mục lạ\n"
 
-#: main.c:3239
+#: output.c:130
 #, c-format
 msgid "%s: Leaving an unknown directory\n"
-msgstr "%s: Đang rời khỏi một thư mục lạ\n"
+msgstr "%s: Rời khỏi thư mục lạ\n"
 
-#: main.c:3242
+#: output.c:133
 #, c-format
-msgid "%s: Entering directory `%s'\n"
-msgstr "%s: Đang vào thư mục « %s »\n"
+msgid "%s: Entering directory '%s'\n"
+msgstr "%s: Vào thư mục “%s”\n"
 
-#: main.c:3245
+#: output.c:135
 #, c-format
-msgid "%s: Leaving directory `%s'\n"
-msgstr "%s: Đang rời khỏi thư mục « %s »\n"
+msgid "%s: Leaving directory '%s'\n"
+msgstr "%s: Rời thư mục “%s”\n"
 
-#: main.c:3250
+#: output.c:139
 #, c-format
 msgid "%s[%u]: Entering an unknown directory\n"
-msgstr "%s[%u]: Đang vào một thư mục lạ\n"
+msgstr "%s[%u]: Vào thư mục lạ\n"
 
-#: main.c:3253
+#: output.c:141
 #, c-format
 msgid "%s[%u]: Leaving an unknown directory\n"
-msgstr "%s[%u]: Đang rời khỏi một thư mục lạ\n"
+msgstr "%s[%u]: Rời thư mục lạ\n"
 
-#: main.c:3257
+#: output.c:144
 #, c-format
-msgid "%s[%u]: Entering directory `%s'\n"
-msgstr "%s[%u]: Đang vào thư mục « %s »\n"
+msgid "%s[%u]: Entering directory '%s'\n"
+msgstr "%s[%u]: Vào thư mục “%s”\n"
 
-#: main.c:3260
+#: output.c:146
 #, c-format
-msgid "%s[%u]: Leaving directory `%s'\n"
-msgstr "%s[%u]: Đang rời khỏi thư mục « %s »\n"
+msgid "%s[%u]: Leaving directory '%s'\n"
+msgstr "%s[%u]: Rời thư mục “%s”\n"
 
-#: misc.c:316
+#: output.c:515
+#, c-format
+msgid "write error: %s"
+msgstr "lỗi ghi: %s"
+
+#: output.c:517
+msgid "write error"
+msgstr "lỗi ghi"
+
+#: output.c:740
 msgid ".  Stop.\n"
 msgstr ".  Dừng.\n"
 
-#: misc.c:337
-#, c-format
-msgid "Unknown error %d"
-msgstr "Không biết lỗi: %d"
-
 # Variable: don't translate / Biến: đừng dịch
-#: misc.c:347
+#: output.c:751
 #, c-format
 msgid "%s%s: %s"
 msgstr "%s%s: %s"
 
 # Variable: do not translate/ biến: đừng dịch
-#: misc.c:355
+#: output.c:759
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
 
-#: misc.c:376 misc.c:387 misc.c:402 misc.c:419 misc.c:438 read.c:3118
-msgid "virtual memory exhausted"
-msgstr "hết bộ nhớ ảo hoàn toàn"
-
-#: misc.c:708
-#, c-format
-msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
-msgstr "%s: người dùng %lu (thật %lu), nhóm %lu (thật %lu)\n"
-
-#: misc.c:729
-msgid "Initialized access"
-msgstr "Truy cấp đã sở khởi"
-
-#: misc.c:808
-msgid "User access"
-msgstr "Truy cập người dùng"
-
-#: misc.c:856
-msgid "Make access"
-msgstr "Truy cập Make"
-
-#: misc.c:890
-msgid "Child access"
-msgstr "Truy cập điều con"
-
-#: misc.c:954
-#, c-format
-msgid "write error: %s"
-msgstr "lỗi ghi: %s"
-
-#: misc.c:956
-msgid "write error"
-msgstr "lỗi ghi"
-
-#: read.c:179
+#: read.c:180
 msgid "Reading makefiles...\n"
-msgstr "Ä\90ạng Ä\91á»\8dc các tập tin tạo (makefile)...\n"
+msgstr "Ä\90á»\8dc makefile...\n"
 
 #: read.c:333
 #, c-format
-msgid "Reading makefile `%s'"
-msgstr "Ä\90ạng Ä\91á»\8dc tập tin tạo (makefile) Â« %s Â»..."
+msgid "Reading makefile '%s'"
+msgstr "Ä\90á»\8dc makefile â\80\9c%sâ\80\9d"
 
 #: read.c:335
 #, c-format
@@ -1330,338 +1458,346 @@ msgstr " (đường dẫn tìm kiếm)"
 #: read.c:339
 #, c-format
 msgid " (don't care)"
-msgstr " (cũng được)"
+msgstr " (không quan tâm)"
 
 #: read.c:341
 #, c-format
 msgid " (no ~ expansion)"
-msgstr " (không mở rộng ~)"
+msgstr " (không nối thêm ~)"
 
-#: read.c:759
+#: read.c:652
+#, c-format
+msgid "Skipping UTF-8 BOM in makefile '%s'\n"
+msgstr "Bỏ qua UTF-8 BOM trong makefile “%s”\n"
+
+#: read.c:655
+#, c-format
+msgid "Skipping UTF-8 BOM in makefile buffer\n"
+msgstr "Bỏ qua UTF-8 BOM trong bộ đệm makefile\n"
+
+#: read.c:786
 msgid "invalid syntax in conditional"
-msgstr "gặp cú pháp không hợp lệ trong đồ điều kiện"
+msgstr "cú pháp không hợp lệ trong biểu thức điều kiện"
+
+#: read.c:961
+#, c-format
+msgid "%s: failed to load"
+msgstr "%s: gặp lỗi khi tải"
 
-#: read.c:891
-#, fuzzy
+#: read.c:987
 msgid "recipe commences before first target"
-msgstr "lệnh bắt đầu trước đích thứ nhất"
+msgstr "công thức bắt đầu trước đích thứ nhất"
 
-#: read.c:940
-#, fuzzy
+#: read.c:1036
 msgid "missing rule before recipe"
-msgstr "thiếu quy tắc trÆ°á»\9bc các lá»\87nh"
+msgstr "thiếu quy tắc trÆ°á»\9bc công thức"
 
-#: read.c:1027
+#: read.c:1123
 #, c-format
 msgid "missing separator%s"
-msgstr "thiếu bộ phân cách%s"
+msgstr "thiếu dấu cách%s"
 
-#: read.c:1029
+#: read.c:1125
 msgid " (did you mean TAB instead of 8 spaces?)"
-msgstr " (bạn có muốn dùng TAB thay vào 8 dấu cách chứ?)"
+msgstr " (bạn đã định dùng TAB thay vì 8 khoảng trắng phải không?)"
 
-#: read.c:1163
+#: read.c:1263
 msgid "missing target pattern"
 msgstr "thiếu mẫu đích"
 
-#: read.c:1165
+#: read.c:1265
 msgid "multiple target patterns"
 msgstr "nhiều mẫu đích"
 
-#: read.c:1169
+#: read.c:1269
 #, c-format
-msgid "target pattern contains no `%%'"
-msgstr "mẫu đích không chứa « %% »"
+msgid "target pattern contains no '%%'"
+msgstr "mẫu đích không chứa “%%”"
 
-#: read.c:1293
-msgid "missing `endif'"
-msgstr "thiếu « endif »"
+#: read.c:1391
+msgid "missing 'endif'"
+msgstr "thiếu “endif”"
 
-#: read.c:1332 read.c:1377 variable.c:1488
+#: read.c:1430 read.c:1475 variable.c:1554
 msgid "empty variable name"
 msgstr "tên biến rỗng"
 
-#: read.c:1367
-#, fuzzy
-msgid "extraneous text after `define' directive"
-msgstr "Gặp chuỗi chữ bắt nguồn ở ngoài sau chi thị « endef »"
+#: read.c:1465
+msgid "extraneous text after 'define' directive"
+msgstr "gặp các ký tự thừa đằng sau chỉ thị “define”"
 
-#: read.c:1392
-msgid "missing `endef', unterminated `define'"
-msgstr "thiếu « endef », « define » (định nghĩa) chưa kết thúc"
+#: read.c:1490
+msgid "missing 'endef', unterminated 'define'"
+msgstr "thiếu “endef”, chỉ thị “define” chưa hoàn tất"
 
-#: read.c:1420
-#, fuzzy
-msgid "extraneous text after `endef' directive"
-msgstr "Gặp chuỗi chữ bắt nguồn ở ngoài sau chi thị « endef »"
+#: read.c:1518
+msgid "extraneous text after 'endef' directive"
+msgstr "gặp các ký tự thừa đằng sau chỉ thị “endef”"
 
-#: read.c:1490
+#: read.c:1589
 #, c-format
-msgid "Extraneous text after `%s' directive"
-msgstr "Gặp chuỗi chữ bắt nguồn ở ngoài sau chi thị « %s »"
+msgid "extraneous text after '%s' directive"
+msgstr "gặp các ký tự thừa đằng sau chỉ thị “%s”"
 
-#: read.c:1499 read.c:1513
+#: read.c:1598 read.c:1612
 #, c-format
-msgid "extraneous `%s'"
-msgstr "gặp « %s » bắt nguồn ở ngoài"
+msgid "extraneous '%s'"
+msgstr "gặp “%s” thừa"
 
-#: read.c:1518
-msgid "only one `else' per conditional"
-msgstr "chỉ cho phép một « else » (nếu không thì) cho mỗi đồ điều kiện thôi"
+#: read.c:1617
+msgid "only one 'else' per conditional"
+msgstr "chỉ cho phép một “else” cho mỗi biểu thức điều kiện"
 
-#: read.c:1797
+#: read.c:1892
 msgid "Malformed target-specific variable definition"
-msgstr "Lời định nghĩa biến đặc trưng cho đích dạng sai"
+msgstr "Định nghĩa biến đích riêng biệt bị hỏng"
 
-#: read.c:1855
-#, fuzzy
+#: read.c:1951
 msgid "prerequisites cannot be defined in recipes"
-msgstr "không thể định nghĩa điều kiện tiên quyết trong tập lệnh kiểu lệnh"
+msgstr "không thể định nghĩa điều kiện tiên quyết cho công thức"
 
-#: read.c:1908
+#: read.c:2009
 msgid "mixed implicit and static pattern rules"
-msgstr "gặp quy tắc mẫu kiểu ngầm và tĩnh được trộn với nhau"
+msgstr "trộn lẫn quy tắc ngầm và mẫu tĩnh"
 
-#: read.c:1931 read.c:2112
+#: read.c:2032 read.c:2220
 msgid "mixed implicit and normal rules"
-msgstr "gặp quy tắc mẫu kiểu ngầm và chuẩn được trộn với nhau"
+msgstr "trộn quy tắc ngầm và thường"
 
-#: read.c:1976
+#: read.c:2084
 #, c-format
-msgid "target `%s' doesn't match the target pattern"
-msgstr "đích « %s » không khớp với mẫu đích"
+msgid "target '%s' doesn't match the target pattern"
+msgstr "đích “%s” không tương ứng với mẫu đích"
 
-#: read.c:1991 read.c:2036
+#: read.c:2099 read.c:2144
 #, c-format
-msgid "target file `%s' has both : and :: entries"
-msgstr "tập tin đích « %s » có mục nhập kiểu cả « : » lẫn « :: » đều"
+msgid "target file '%s' has both : and :: entries"
+msgstr "tập tin đích “%s” có cả hai mục nhập : và ::"
 
-#: read.c:1997
+#: read.c:2105
 #, c-format
-msgid "target `%s' given more than once in the same rule."
-msgstr "đích « %s » được đưa ra nhiều lần trong cùng một quy tắc"
+msgid "target '%s' given more than once in the same rule"
+msgstr "đích “%s” có nhiều hơn một trong cùng một quy tắc"
 
-#: read.c:2006
-#, fuzzy, c-format
-msgid "warning: overriding recipe for target `%s'"
-msgstr "cảnh báo : đang đè lên các lệnh cho đích « %s »"
+#: read.c:2114
+#, c-format
+msgid "warning: overriding recipe for target '%s'"
+msgstr "cảnh báo: đè công thức cho đích “%s”"
 
-#: read.c:2009
-#, fuzzy, c-format
-msgid "warning: ignoring old recipe for target `%s'"
-msgstr "cảnh báo : đang bỏ qua các lệnh cũ cho đích « %s »"
+#: read.c:2117
+#, c-format
+msgid "warning: ignoring old recipe for target '%s'"
+msgstr "cảnh báo: bỏ qua công thức cũ cho đích “%s”"
 
-#: read.c:2392
+#: read.c:2530
 msgid "warning: NUL character seen; rest of line ignored"
-msgstr "cảnh báo : đã xem ký tự NUL (rỗng) nên bỏ qua phần còn lại của dòng đó"
+msgstr "cảnh báo: thấy ký tự NUL; bỏ qua phần còn lại của dòng"
 
-#: remake.c:234
+#: remake.c:232
 #, c-format
-msgid "Nothing to be done for `%s'."
-msgstr "Không có gì cần làm cho « %s »."
+msgid "Nothing to be done for '%s'."
+msgstr "Không cần làm gì cho “%s”."
 
-#: remake.c:235
+#: remake.c:233
 #, c-format
-msgid "`%s' is up to date."
-msgstr "« %s » là hiện thời."
+msgid "'%s' is up to date."
+msgstr "Đã cập nhật “%s”."
 
-#: remake.c:306
+#: remake.c:305
 #, c-format
-msgid "Pruning file `%s'.\n"
-msgstr "Đang xén bớt tập tin « %s ».\n"
+msgid "Pruning file '%s'.\n"
+msgstr "Xén bớt tập tin “%s”.\n"
 
-#: remake.c:359
+#: remake.c:377
 #, c-format
-msgid "%sNo rule to make target `%s'%s"
-msgstr "%sKhông có quy tắc tới đích make « %s »%s"
+msgid "%sNo rule to make target '%s'%s"
+msgstr "%sKhông có quy tắc để tạo đích “%s”%s"
 
-#: remake.c:361
+#: remake.c:379
 #, c-format
-msgid "%sNo rule to make target `%s', needed by `%s'%s"
-msgstr "%sKhông có quy tắc tới đích make « %s », cần thiết bởi « %s »%s"
+msgid "%sNo rule to make target '%s', needed by '%s'%s"
+msgstr "%sKhông có quy tắc để tạo đích “%s”, cần bởi “%s”%s"
 
 #: remake.c:413
 #, c-format
-msgid "Considering target file `%s'.\n"
-msgstr "Đang suy nghĩ tập tin đích « %s ».\n"
+msgid "Considering target file '%s'.\n"
+msgstr "Coi tập tin đích “%s”.\n"
 
 #: remake.c:420
 #, c-format
-msgid "Recently tried and failed to update file `%s'.\n"
-msgstr "Vừa cố cập nhật tập tin « %s » nhưng bị lỗi.\n"
+msgid "Recently tried and failed to update file '%s'.\n"
+msgstr "Vừa thử và thất bại khi cập nhật “%s”.\n"
 
 #: remake.c:432
 #, c-format
-msgid "File `%s' was considered already.\n"
-msgstr "Tập tin « %s » đã được suy nghĩ.\n"
+msgid "File '%s' was considered already.\n"
+msgstr "Coi tập tin “%s” là đã sẵn sàng rồi.\n"
 
 #: remake.c:442
 #, c-format
-msgid "Still updating file `%s'.\n"
-msgstr "Vẫn còn đang cập nhật tập tin « %s »...\n"
+msgid "Still updating file '%s'.\n"
+msgstr "Vẫn đang cập nhật tập tin “%s”.\n"
 
 #: remake.c:445
 #, c-format
-msgid "Finished updating file `%s'.\n"
-msgstr "Mới cập nhật xong tập tin « %s ».\n"
+msgid "Finished updating file '%s'.\n"
+msgstr "Hoàn tất cập nhật tập tin “%s”.\n"
 
 #: remake.c:474
 #, c-format
-msgid "File `%s' does not exist.\n"
-msgstr "Tập tin « %s » không tồn tại.\n"
+msgid "File '%s' does not exist.\n"
+msgstr "Tập tin “%s” không tồn tại.\n"
 
 #: remake.c:481
 #, c-format
 msgid ""
-"*** Warning: .LOW_RESOLUTION_TIME file `%s' has a high resolution time stamp"
+"*** Warning: .LOW_RESOLUTION_TIME file '%s' has a high resolution time stamp"
 msgstr ""
-"*** Cảnh báo : tập tin « .LOW_RESOLUTION_TIME » (thời gian giải pháp thấp) « %"
-"s » có nhãn thời gian cao"
+"*** Cảnh báo: tập tin .LOW_RESOLUTION_TIME “%s” có nhãn thời gian độ phân "
+"giải cao"
 
-#: remake.c:494 remake.c:1016
+#: remake.c:494 remake.c:1019
 #, c-format
-msgid "Found an implicit rule for `%s'.\n"
-msgstr "Tìm thấy một quy tắc ngầm cho « %s ».\n"
+msgid "Found an implicit rule for '%s'.\n"
+msgstr "Tìm thấy quy tắc ngầm cho “%s”.\n"
 
-#: remake.c:496 remake.c:1018
+#: remake.c:496 remake.c:1021
 #, c-format
-msgid "No implicit rule found for `%s'.\n"
-msgstr "Không tìm thấy quy tắc ngầm cho « %s »\n"
+msgid "No implicit rule found for '%s'.\n"
+msgstr "Không tìm thấy quy tắc ngầm cho “%s”.\n"
 
 #: remake.c:502
-#, fuzzy, c-format
-msgid "Using default recipe for `%s'.\n"
-msgstr "Đang dùng các lệnh mặc định cho « %s ».\n"
+#, c-format
+msgid "Using default recipe for '%s'.\n"
+msgstr "Dùng công thức mặc định cho “%s”.\n"
 
-#: remake.c:535 remake.c:1057
+#: remake.c:535 remake.c:1067
 #, c-format
 msgid "Circular %s <- %s dependency dropped."
-msgstr "Cách phụ thuộc vòng tròn « %s ← %s » bị gỡ bỏ."
+msgstr "Bỏ phụ thuộc vòng tròn %s <- %s."
 
-#: remake.c:651
+#: remake.c:655
 #, c-format
-msgid "Finished prerequisites of target file `%s'.\n"
-msgstr "Mới xong các điều kiện tiên quyết của tập tin đích « %s ».\n"
+msgid "Finished prerequisites of target file '%s'.\n"
+msgstr "Hoàn tất điều kiện tiên quyết của tập tin đích “%s”.\n"
 
-#: remake.c:657
+#: remake.c:661
 #, c-format
-msgid "The prerequisites of `%s' are being made.\n"
-msgstr "Đang tạo các điều kiện tiên quyết của « %s ».\n"
+msgid "The prerequisites of '%s' are being made.\n"
+msgstr "Đang tạo điều kiện tiên quyết của “%s”.\n"
 
-#: remake.c:670
+#: remake.c:674
 #, c-format
-msgid "Giving up on target file `%s'.\n"
-msgstr "Đang chịu thua về tập tin đích « %s ».\n"
+msgid "Giving up on target file '%s'.\n"
+msgstr "Chịu thua tập tin đích “%s”.\n"
 
-#: remake.c:675
+#: remake.c:679
 #, c-format
-msgid "Target `%s' not remade because of errors."
-msgstr "Đích « %s » không được tạo lại vì gặp lỗi."
+msgid "Target '%s' not remade because of errors."
+msgstr "Đích “%s” không được tạo lại do lỗi."
 
-#: remake.c:727
+#: remake.c:731
 #, c-format
-msgid "Prerequisite `%s' is order-only for target `%s'.\n"
-msgstr ""
-"Điều kiện tiên quyết « %s » là order-only (chỉ thứ tự) cho đích « %s ».\n"
+msgid "Prerequisite '%s' is order-only for target '%s'.\n"
+msgstr "Điều kiện tiên quyết “%s” là order-only (chỉ thứ tự) cho đích “%s”.\n"
 
-#: remake.c:732
+#: remake.c:736
 #, c-format
-msgid "Prerequisite `%s' of target `%s' does not exist.\n"
-msgstr "Điều kiện tiên quyết « %s » của đích « %s » không tồn tại.\n"
+msgid "Prerequisite '%s' of target '%s' does not exist.\n"
+msgstr "Điều kiện tiên quyết “%s” của đích “%s” không tồn tại.\n"
 
-#: remake.c:737
+#: remake.c:741
 #, c-format
-msgid "Prerequisite `%s' is newer than target `%s'.\n"
-msgstr "Điều kiện tiên quyết « %s » là mới hơn đích « %s » .\n"
+msgid "Prerequisite '%s' is newer than target '%s'.\n"
+msgstr "Điều kiện tiên quyết “%s” là mới hơn đích “%s” .\n"
 
-#: remake.c:740
+#: remake.c:744
 #, c-format
-msgid "Prerequisite `%s' is older than target `%s'.\n"
-msgstr "Điều kiện tiên quyết « %s » là cũ hơn đích « %s » .\n"
+msgid "Prerequisite '%s' is older than target '%s'.\n"
+msgstr "Điều kiện tiên quyết “%s” cũ hơn đích “%s” .\n"
 
-#: remake.c:758
+#: remake.c:762
 #, c-format
-msgid "Target `%s' is double-colon and has no prerequisites.\n"
-msgstr ""
-"Đích « %s » là kiểu dấu hai chấm đôi và không có điều kiện tiên quyết nào.\n"
+msgid "Target '%s' is double-colon and has no prerequisites.\n"
+msgstr "Đích “%s” là hai chấm đôi và không có điều kiện tiên quyết.\n"
 
-#: remake.c:765
-#, fuzzy, c-format
-msgid "No recipe for `%s' and no prerequisites actually changed.\n"
+#: remake.c:769
+#, c-format
+msgid "No recipe for '%s' and no prerequisites actually changed.\n"
 msgstr ""
-"Không có lệnh cho « %s », và chưa thật sự thay đổi điều kiện tiên quyết nào.\n"
+"Không có công thức cho “%s” và chưa thay đổi điều kiện tiên quyết nào.\n"
 
-#: remake.c:770
+#: remake.c:774
 #, c-format
-msgid "Making `%s' due to always-make flag.\n"
-msgstr "Đang tạo « %s » vì gặp cờ always-make (luôn luôn tạo).\n"
+msgid "Making '%s' due to always-make flag.\n"
+msgstr "Tạo “%s” do cờ always-make.\n"
 
-#: remake.c:778
+#: remake.c:782
 #, c-format
-msgid "No need to remake target `%s'"
-msgstr "Không cần tạo lại đích « %s »."
+msgid "No need to remake target '%s'"
+msgstr "Không cần tạo lại đích “%s”."
 
-#: remake.c:780
+#: remake.c:784
 #, c-format
-msgid "; using VPATH name `%s'"
-msgstr "; đang dùng tên VPATH (đường dẫn V) « %s »"
+msgid "; using VPATH name '%s'"
+msgstr "; dùng tên VPATH “%s”"
 
-#: remake.c:800
+#: remake.c:804
 #, c-format
-msgid "Must remake target `%s'.\n"
-msgstr "Phải tạo lại đích « %s ».\n"
+msgid "Must remake target '%s'.\n"
+msgstr "Phải tạo lại đích “%s”.\n"
 
-#: remake.c:806
+#: remake.c:810
 #, c-format
-msgid "  Ignoring VPATH name `%s'.\n"
-msgstr "  Đang bỏ qua tên đường dẫn VPATH « %s ».\n"
+msgid "  Ignoring VPATH name '%s'.\n"
+msgstr "  Bỏ qua tên VPATH “%s”.\n"
 
-#: remake.c:815
-#, fuzzy, c-format
-msgid "Recipe of `%s' is being run.\n"
-msgstr "Ä\90ang chạy các lá»\87nh của Â« %s Â».\n"
+#: remake.c:819
+#, c-format
+msgid "Recipe of '%s' is being run.\n"
+msgstr "Ä\90ang chạy công thức của â\80\9c%sâ\80\9d.\n"
 
-#: remake.c:822
+#: remake.c:826
 #, c-format
-msgid "Failed to remake target file `%s'.\n"
-msgstr "Việc tạo lại tập tin đích « %s » bị lỗi.\n"
+msgid "Failed to remake target file '%s'.\n"
+msgstr "Gặp lỗi khi tạo lại được tập tin đích “%s”.\n"
 
-#: remake.c:825
+#: remake.c:829
 #, c-format
-msgid "Successfully remade target file `%s'.\n"
-msgstr "Mới  tạo lại tập tin đích « %s ».\n"
+msgid "Successfully remade target file '%s'.\n"
+msgstr "Tạo lại thành công tập tin đích “%s”.\n"
 
-#: remake.c:828
+#: remake.c:832
 #, c-format
-msgid "Target file `%s' needs remade under -q.\n"
-msgstr "Tập tin đích « %s » cần được tạo lại dưới « -q ».\n"
+msgid "Target file '%s' needs to be remade under -q.\n"
+msgstr "Tập tin đích “%s” cần được tạo lại dưới tùy chọn “-q”.\n"
 
-#: remake.c:1024
+#: remake.c:1027
 #, c-format
-msgid "Using default commands for `%s'.\n"
-msgstr "Đang dùng các lệnh mặc định cho « %s ».\n"
+msgid "Using default commands for '%s'.\n"
+msgstr "Dùng lệnh mặc định cho “%s”.\n"
 
-#: remake.c:1357
+#: remake.c:1372
 #, c-format
-msgid "Warning: File `%s' has modification time in the future"
-msgstr "Cảnh báo : tập tin « %s » có giờ sửa đổi trong tương lai."
+msgid "Warning: File '%s' has modification time in the future"
+msgstr "Cảnh báo: Tập tin “%s” có giờ sửa đổi ở thì tương lai."
 
-#: remake.c:1370
-#, fuzzy, c-format
-msgid "Warning: File `%s' has modification time %s s in the future"
-msgstr "Cảnh báo : tập tin « %s » có giờ sửa đổi « %.2g s » trong tương lai."
+#: remake.c:1385
+#, c-format
+msgid "Warning: File '%s' has modification time %s s in the future"
+msgstr "Cảnh báo: Tập tin “%s” có giờ sửa đổi %s giây trong thì tương lai."
 
-#: remake.c:1569
+#: remake.c:1583
 #, c-format
-msgid ".LIBPATTERNS element `%s' is not a pattern"
-msgstr "Yếu tố « .LIBPATTERNS » (các mẫu thư viên) « %s » không phải là mẫu"
+msgid ".LIBPATTERNS element '%s' is not a pattern"
+msgstr "Phần tử .LIBPATTERNS “%s” không phải là một mẫu"
 
-#: remote-cstms.c:125
+#: remote-cstms.c:122
 #, c-format
 msgid "Customs won't export: %s\n"
-msgstr "Thuế quan không xuất được: %s\n"
+msgstr "Customs không xuất được: %s\n"
 
-#: rule.c:499
+#: rule.c:496
 msgid ""
 "\n"
 "# Implicit Rules"
@@ -1669,7 +1805,7 @@ msgstr ""
 "\n"
 "# Quy tắc ngầm"
 
-#: rule.c:514
+#: rule.c:511
 msgid ""
 "\n"
 "# No implicit rules."
@@ -1677,7 +1813,7 @@ msgstr ""
 "\n"
 "# Không có quy tắc ngầm."
 
-#: rule.c:517
+#: rule.c:514
 #, c-format
 msgid ""
 "\n"
@@ -1686,248 +1822,269 @@ msgstr ""
 "\n"
 "# %u quy tắc ngầm, %u"
 
-#: rule.c:526
+#: rule.c:523
 msgid " terminal."
-msgstr " thiết bị cuối"
+msgstr " thiết bị cuối."
 
-#: rule.c:534
-#, fuzzy, c-format
+#: rule.c:531
+#, c-format
 msgid "BUG: num_pattern_rules is wrong!  %u != %u"
-msgstr "LỖI: « num_pattern_rules » (số quy tắc mẫu) không đúng!  %u != %u"
+msgstr "LỖI: num_pattern_rules không đúng!  %u != %u"
 
-#: signame.c:86
+#: signame.c:84
 msgid "unknown signal"
 msgstr "tín hiệu lạ"
 
-#: signame.c:94
+#: signame.c:92
 msgid "Hangup"
-msgstr "Ngừng nói"
+msgstr "Treo"
 
-#: signame.c:97
+#: signame.c:95
 msgid "Interrupt"
 msgstr "Ngắt"
 
-#: signame.c:100
+#: signame.c:98
 msgid "Quit"
 msgstr "Thoát"
 
-#: signame.c:103
+#: signame.c:101
 msgid "Illegal Instruction"
-msgstr "Lệnh cấm"
+msgstr "Chỉ lệnh không hợp lệ"
 
-#: signame.c:106
+#: signame.c:104
 msgid "Trace/breakpoint trap"
 msgstr "Bẫy vết/điểm ngắt"
 
-#: signame.c:111
+#: signame.c:109
 msgid "Aborted"
 msgstr "Bị hủy bỏ"
 
-#: signame.c:114
+#: signame.c:112
 msgid "IOT trap"
 msgstr "Bẫy IOT"
 
-#: signame.c:117
+#: signame.c:115
 msgid "EMT trap"
 msgstr "Bẫy EMT"
 
-#: signame.c:120
+#: signame.c:118
 msgid "Floating point exception"
-msgstr "Ngoại lệ điểm phù động"
+msgstr "Ngoại lệ dấu chấm động"
 
-#: signame.c:123
+#: signame.c:121
 msgid "Killed"
 msgstr "Bị buộc kết thúc"
 
-#: signame.c:126
+#: signame.c:124
 msgid "Bus error"
-msgstr "Lỗi mạch nối"
+msgstr "Lỗi bus"
 
-#: signame.c:129
+#: signame.c:127
 msgid "Segmentation fault"
 msgstr "Lỗi phân đoạn"
 
-#: signame.c:132
+#: signame.c:130
 msgid "Bad system call"
-msgstr "Cuộc gọi hệ thống sai"
+msgstr "Lệnh gọi hệ thống sai"
 
-#: signame.c:135
+#: signame.c:133
 msgid "Broken pipe"
-msgstr "Ống dẫn bị ngắt"
+msgstr "Ống dẫn hỏng"
 
-#: signame.c:138
+#: signame.c:136
 msgid "Alarm clock"
 msgstr "Đồng hồ báo động"
 
-#: signame.c:141
+#: signame.c:139
 msgid "Terminated"
-msgstr "Bị kết thúc"
+msgstr "Đã chấm dứt"
 
-#: signame.c:144
+#: signame.c:142
 msgid "User defined signal 1"
 msgstr "Tín hiệu tự định nghĩa 1"
 
-#: signame.c:147
+#: signame.c:145
 msgid "User defined signal 2"
 msgstr "Tín hiệu tự định nghĩa 2"
 
-#: signame.c:152 signame.c:155
+#: signame.c:150 signame.c:153
 msgid "Child exited"
 msgstr "Tiến trình con đã thoát"
 
-#: signame.c:158
+#: signame.c:156
 msgid "Power failure"
-msgstr "Bị cúp điện đột ngột"
+msgstr "Mất điện đột ngột"
 
-#: signame.c:161
+#: signame.c:159
 msgid "Stopped"
 msgstr "Bị ngừng"
 
-#: signame.c:164
+#: signame.c:162
 msgid "Stopped (tty input)"
-msgstr "Bị ngừng (kết nhập tty)"
+msgstr "Bị ngừng (đầu vào tty)"
 
-#: signame.c:167
+#: signame.c:165
 msgid "Stopped (tty output)"
-msgstr "Bị ngừng (kết xuất tty)"
+msgstr "Bị ngừng (đầu ra tty)"
 
-#: signame.c:170
+#: signame.c:168
 msgid "Stopped (signal)"
 msgstr "Bị ngừng (tín hiệu)"
 
-#: signame.c:173
+#: signame.c:171
 msgid "CPU time limit exceeded"
-msgstr "Giới hạn thời gian CPU (đơn vị xử lý trung tâm) bị vượt quá"
+msgstr "Vượt giới hạn thời gian CPU"
 
-#: signame.c:176
+#: signame.c:174
 msgid "File size limit exceeded"
-msgstr "Giới hạn kích cỡ tập tin bị vượt quá"
+msgstr "Vượt giới hạn kích cỡ tập tin"
 
-#: signame.c:179
+#: signame.c:177
 msgid "Virtual timer expired"
-msgstr "Bộ đếm thời gian ảo đã mãn hạn"
+msgstr "Bộ đếm thời gian ảo đã hết hạn"
 
-#: signame.c:182
+#: signame.c:180
 msgid "Profiling timer expired"
-msgstr "Bộ đếm khi theo dõi cách sử dụng tiềm năng hệ thống đã mãn hạn"
+msgstr "Hết hạn đếm thời gian khi theo dõi cách sử dụng tiềm năng hệ thống"
 
-#: signame.c:188
+#: signame.c:186
 msgid "Window changed"
-msgstr "Cửa sổ đã thay đổi"
+msgstr "Cửa sổ bị thay đổi"
 
-#: signame.c:191
+#: signame.c:189
 msgid "Continued"
 msgstr "Đã tiếp tục"
 
-#: signame.c:194
+#: signame.c:192
 msgid "Urgent I/O condition"
-msgstr "Tình trạng I/O (nhập/xuất) khẩn cấp"
+msgstr "Điều kiện I/O khẩn cấp"
 
-#: signame.c:201 signame.c:210
+#: signame.c:199 signame.c:208
 msgid "I/O possible"
-msgstr "I/O (nhập/xuất) có thể"
+msgstr "I/O có thể"
 
 # Literal: don't translate / Nghĩa chữ: đừng dịch
-#: signame.c:204
+#: signame.c:202
 msgid "SIGWIND"
 msgstr "SIGWIND"
 
 # Literal: don't translate / Nghĩa chữ: đừng dịch
-#: signame.c:207
+#: signame.c:205
 msgid "SIGPHONE"
 msgstr "SIGPHONE"
 
-#: signame.c:213
+#: signame.c:211
 msgid "Resource lost"
 msgstr "Tài nguyên bị mất"
 
-#: signame.c:216
+#: signame.c:214
 msgid "Danger signal"
 msgstr "Tín hiệu nguy hiểm"
 
-#: signame.c:219
+#: signame.c:217
 msgid "Information request"
 msgstr "Yêu cầu thông tin"
 
-#: signame.c:222
+#: signame.c:220
 msgid "Floating point co-processor not available"
-msgstr "Không có sẵn sàng bộ đồng xử lý điểm phù động"
+msgstr "Không có bộ đồng xử lý số thực dấu chấm động"
 
-#: strcache.c:235
-#, fuzzy, c-format
+#: strcache.c:236
+#, c-format
 msgid ""
 "\n"
-"%s # of strings in strcache: %d / lookups = %lu / hits = %lu\n"
+"%s No strcache buffers\n"
 msgstr ""
 "\n"
-"%s # chuỗi trong bộ nhớ tạm chuỗi : %d\n"
+"%s Không có bộ đệm strcache\n"
 
-#: strcache.c:237
-#, fuzzy, c-format
-msgid "%s # of strcache buffers: %d (* %d B/buffer = %d B)\n"
-msgstr "%s # bộ đệm nhớ tạm chuỗi: %d\n"
+#: strcache.c:266
+#, c-format
+msgid ""
+"\n"
+"%s strcache buffers: %lu (%lu) / strings = %lu / storage = %lu B / avg = %lu "
+"B\n"
+msgstr ""
+"\n"
+"%s bộ đệm strcache:  %lu (%lu) / chuỗi   = %lu / lưu     = %lu B / t.bình = "
+"%lu B\n"
 
-#: strcache.c:239
-#, fuzzy, c-format
-msgid "%s strcache used: total = %d (%d) / max = %d / min = %d / avg = %d\n"
+#: strcache.c:270
+#, c-format
+msgid ""
+"%s current buf: size = %hu B / used = %hu B / count = %hu / avg = %hu B\n"
 msgstr ""
-"%s cỡ bộ nhớ tạm chuỗi: tổng = %d / đa = %d / thiểu = %d / tbình = %d\n"
+"%s đệm hiện tại: kcỡ = %hu B / đã dùng = %hu B / slượng = %hu / tbình = %hu "
+"B\n"
 
-#: strcache.c:241
-#, fuzzy, c-format
-msgid "%s strcache free: total = %d (%d) / max = %d / min = %d / avg = %d\n"
+#: strcache.c:280
+#, c-format
+msgid "%s other used: total = %lu B / count = %lu / avg = %lu B\n"
+msgstr "%s được dùng khác: tổng = %lu B / s.lượng = %lu / t.bình = %lu B\n"
+
+#: strcache.c:283
+#, c-format
+msgid ""
+"%s other free: total = %lu B / max = %lu B / min = %lu B / avg = %hu B\n"
 msgstr ""
-"%s rảnh bộ nhớ tạm chuỗi: tổng = %d / đa = %d / thiểu = %d / tbình = %d\n"
+"%s trống khác:  tổng = %lu B / tđa = %lu B / t.thiểu = %lu B / t.bình = %hu "
+"B\n"
 
-#: strcache.c:244
-#, fuzzy
+#: strcache.c:287
+#, c-format
 msgid ""
 "\n"
-"# strcache hash-table stats:\n"
-"# "
+"%s strcache performance: lookups = %lu / hit rate = %lu%%\n"
 msgstr ""
 "\n"
-"# thống kê bảng băm các tập tin:\n"
+"%s hiệu năng strcache:   tra cứu = %lu / tỷ lệ trúng = %lu%%\n"
+
+#: strcache.c:289
+msgid ""
+"# hash-table stats:\n"
+"# "
+msgstr ""
+"# thống kê bảng băm tập tin:\n"
 "# "
 
-#: variable.c:1541
+#: variable.c:1607
+msgid "automatic"
+msgstr "tự động"
+
+#: variable.c:1610
 msgid "default"
 msgstr "mặc định"
 
-#: variable.c:1544
+#: variable.c:1613
 msgid "environment"
 msgstr "môi trường"
 
-#: variable.c:1547
+#: variable.c:1616
 msgid "makefile"
-msgstr "tập tin tạo"
+msgstr "makefile"
 
-#: variable.c:1550
+#: variable.c:1619
 msgid "environment under -e"
-msgstr "môi trường dưới « -e »"
+msgstr "môi trường với -e"
 
-#: variable.c:1553
+#: variable.c:1622
 msgid "command line"
 msgstr "dòng lệnh"
 
-#: variable.c:1556
-msgid "`override' directive"
-msgstr "chỉ thị « override » (đè)"
-
-#: variable.c:1559
-msgid "automatic"
-msgstr "tự động"
+#: variable.c:1625
+msgid "'override' directive"
+msgstr "chỉ thị “override”"
 
-#: variable.c:1570
+#: variable.c:1636
 #, c-format
-msgid " (from `%s', line %lu)"
-msgstr " (từ « %s », dòng %lu)"
+msgid " (from '%s', line %lu)"
+msgstr " (từ “%s”, dòng %lu)"
 
-#: variable.c:1612
+#: variable.c:1699
 msgid "# variable set hash-table stats:\n"
-msgstr "# thống kê bảng băm lập biến:\n"
+msgstr "# thống kê bảng băm biến được đặt:\n"
 
-#: variable.c:1623
+#: variable.c:1710
 msgid ""
 "\n"
 "# Variables\n"
@@ -1935,118 +2092,117 @@ msgstr ""
 "\n"
 "# Biến\n"
 
-#: variable.c:1627
+#: variable.c:1714
 msgid ""
 "\n"
 "# Pattern-specific Variable Values"
 msgstr ""
 "\n"
-"# Giá trị biến đặc trưng cho mẫu"
+"# Giá trị biến đặc t cho mẫu"
 
-#: variable.c:1641
+#: variable.c:1728
 msgid ""
 "\n"
 "# No pattern-specific variable values."
 msgstr ""
 "\n"
-"# Không có giá trị biến đặc trưng cho mẫu"
+"# Không có giá trị biến đặc t cho mẫu"
 
-#: variable.c:1643
+#: variable.c:1730
 #, c-format
 msgid ""
 "\n"
 "# %u pattern-specific variable values"
 msgstr ""
 "\n"
-"# %u giá trị biến đặc trưng cho mẫu"
+"# %u giá trị biến đặc t cho mẫu"
 
-#: variable.h:219
+#: variable.h:224
 #, c-format
-msgid "warning: undefined variable `%.*s'"
-msgstr "cảnh báo : chưa định nghĩa biến « %.*s »"
+msgid "warning: undefined variable '%.*s'"
+msgstr "cảnh báo: biến “%.*s” chưa được định nghĩa"
 
-#: vmsfunctions.c:92
-#, fuzzy, c-format
+#: vmsfunctions.c:91
+#, c-format
 msgid "sys$search() failed with %d\n"
-msgstr "việc « search » (tìm kiếm hệ thống) bị lỗi với %d\n"
+msgstr "sys$search() gặp lỗi với %d\n"
 
-#: vmsjobs.c:71
+#: vmsjobs.c:70
 #, c-format
 msgid "Warning: Empty redirection\n"
-msgstr "Cảnh báo : việc chuyển hướng rỗng\n"
+msgstr "Cảnh báo: Chuyển hướng trống rỗng\n"
 
-#: vmsjobs.c:184
+#: vmsjobs.c:178
 #, c-format
-msgid "internal error: `%s' command_state"
-msgstr "lỗi nội bộ : tính trạng lệnh « %s »"
+msgid "internal error: '%s' command_state"
+msgstr "lỗi nội bộ: command_state “%s”"
 
-#: vmsjobs.c:289
+#: vmsjobs.c:286
 #, c-format
 msgid "-warning, you may have to re-enable CTRL-Y handling from DCL.\n"
-msgstr ""
-"• cảnh báo, có lẽ bạn sẽ phải bật lại khả năng quản lý bằng CTRL-Y từ DCL.\n"
+msgstr "-warning, có lẽ bạn cần phải bật lại xử lý CTRL-Y từ DCL.\n"
 
-#: vmsjobs.c:421
+#: vmsjobs.c:417
 #, c-format
 msgid "BUILTIN [%s][%s]\n"
 msgstr "BUILTIN [%s][%s]\n"
 
-#: vmsjobs.c:432
+#: vmsjobs.c:428
 #, c-format
 msgid "BUILTIN CD %s\n"
 msgstr "BUILTIN CD %s\n"
 
-#: vmsjobs.c:450
+#: vmsjobs.c:446
 #, c-format
 msgid "BUILTIN RM %s\n"
 msgstr "BUILTIN RM %s\n"
 
-#: vmsjobs.c:471
+#: vmsjobs.c:467
 #, c-format
 msgid "Unknown builtin command '%s'\n"
-msgstr "Không biết lệnh builtin (có sẵn) « %s »\n"
+msgstr "Không hiểu lệnh dựng sẵn “%s”\n"
 
-#: vmsjobs.c:493
+#: vmsjobs.c:489
 #, c-format
 msgid "Error, empty command\n"
-msgstr "Lỗi, lệnh rỗng\n"
+msgstr "Lỗi, lệnh trống rỗng\n"
 
-#: vmsjobs.c:506
+#: vmsjobs.c:502
 #, c-format
 msgid "Redirected input from %s\n"
-msgstr "Kết nhập đã được chuyển hướng từ %s\n"
+msgstr "Đã chuyển hướng đầu vào từ %s\n"
 
-#: vmsjobs.c:513
+#: vmsjobs.c:509
 #, c-format
 msgid "Redirected error to %s\n"
-msgstr "Lỗi đã được chuyển hướng đến %s\n"
+msgstr "Đã chuyển hướng lỗi tới %s\n"
 
-#: vmsjobs.c:523
-#, fuzzy, c-format
+#: vmsjobs.c:518
+#, c-format
 msgid "Append output to %s\n"
-msgstr "Kết xuất đã được chuyển hướng đến %s\n"
+msgstr "Nối thêm đầu ra vào %s\n"
 
-#: vmsjobs.c:529
+#: vmsjobs.c:524
 #, c-format
 msgid "Redirected output to %s\n"
-msgstr "Kết xuất đã được chuyển hướng đến %s\n"
+msgstr "Đã chuyển hướng đầu ra tới %s\n"
 
-#: vmsjobs.c:599
+#: vmsjobs.c:593
 #, c-format
 msgid "Append %.*s and cleanup\n"
-msgstr ""
+msgstr "Nối thêm %.*s và dọn dẹp\n"
 
-#: vmsjobs.c:606
+#: vmsjobs.c:600
 #, c-format
 msgid "Executing %s instead\n"
-msgstr "Đang thực hiện %s thay thế\n"
+msgstr "Thực hiện %s để thay thế\n"
 
-#: vmsjobs.c:712
+#: vmsjobs.c:706
 #, c-format
 msgid "Error spawning, %d\n"
-msgstr "Gặp lỗi khi tạo và thực hiện (spawn), %d\n"
+msgstr "Gặp lỗi sản sinh tiến trình, %d\n"
 
-#: vpath.c:586
+#: vpath.c:583
 msgid ""
 "\n"
 "# VPATH Search Paths\n"
@@ -2054,41 +2210,68 @@ msgstr ""
 "\n"
 "# Đường dẫn tìm kiếm VPATH\n"
 
-#: vpath.c:603
-msgid "# No `vpath' search paths."
-msgstr "# Không có đường dẫn tìm kiếm VPATH nào"
+#: vpath.c:600
+msgid "# No 'vpath' search paths."
+msgstr "# Không có đường dẫn tìm kiếm “vpath”."
 
-#: vpath.c:605
+#: vpath.c:602
 #, c-format
 msgid ""
 "\n"
-"# %u `vpath' search paths.\n"
+"# %u 'vpath' search paths.\n"
 msgstr ""
 "\n"
-"# %u Ä\90Æ°á»\9dng dẫn tìm kiếm Â« vpath Â».\n"
+"# %u Ä\91Æ°á»\9dng dẫn tìm kiếm â\80\9cvpathâ\80\9d.\n"
 
-#: vpath.c:608
+#: vpath.c:605
 msgid ""
 "\n"
-"# No general (`VPATH' variable) search path."
+"# No general ('VPATH' variable) search path."
 msgstr ""
 "\n"
-"# Không có đường dẫn tìm kiếm chung (biến « VPATH »)."
+"# Không có đường dẫn tìm kiếm chung (biến “VPATH”)."
 
-#: vpath.c:614
+#: vpath.c:611
 msgid ""
 "\n"
-"# General (`VPATH' variable) search path:\n"
+"# General ('VPATH' variable) search path:\n"
 "# "
 msgstr ""
 "\n"
-"# Đường dẫn tìm kiếm chung (biến « VPATH »).\n"
+"# Đường dẫn tìm kiếm chung (biến “VPATH”):\n"
 "# "
 
+#~ msgid "#  Invalid value in 'update_status' member!"
+#~ msgstr "#  Gặp giá trị sai trong thành phần “update_status”!"
+
+#~ msgid "unknown trace mode '%s'"
+#~ msgstr "không hiểu chế độ theo vết “%s”"
+
+#~ msgid "*** [%s] Error 0x%x (ignored)"
+#~ msgstr "*** [%s] Lỗi 0x%x (bỏ qua)"
+
+#~ msgid "Invoking recipe from %s:%lu to update target `%s'.\n"
+#~ msgstr "Gọi công thức từ %s:%lu để cập nhật đích “%s”.\n"
+
+#~ msgid "Invoking builtin recipe to update target `%s'.\n"
+#~ msgstr "Gọi công thức dựng sẵn để cập nhật đích “%s”.\n"
+
+#~ msgid "%s # of strcache buffers: %d (* %d B/buffer = %d B)\n"
+#~ msgstr "%s # vùng đệm strcache: %d (* %d B/buffer = %d B)\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "# strcache hash-table stats:\n"
+#~ "# "
+#~ msgstr ""
+#~ "\n"
+#~ "# thống kê bảng băm strcache:\n"
+#~ "# "
+
 #~ msgid "process_easy() failed failed to launch process (e=%ld)\n"
 #~ msgstr ""
-#~ "Việc « process_easy() » (tiến trình dễ) bị lỗi khi cố khởi chạy tiến trình "
-#~ "(e=%ld)\n"
+#~ "Việc process_easy() (tiến trình dễ) bị lỗi khi cố khởi chạy tiến trình (e="
+#~ "%ld)\n"
 
 #~ msgid ""
 #~ "%sThis is free software; see the source for copying conditions.\n"
@@ -2100,19 +2283,19 @@ msgstr ""
 #~ "%s\n"
 
 #~ msgid "extraneous `endef'"
-#~ msgstr "gặp « endef » bắt nguồn ở ngoài"
+#~ msgstr "gặp “endef” bắt nguồn ở ngoài"
 
 #~ msgid "empty `override' directive"
-#~ msgstr "chỉ thị « override » (đè) rỗng"
+#~ msgstr "chỉ thị “override” (đè) rỗng"
 
 #~ msgid "invalid `override' directive"
-#~ msgstr "chỉ thị « override » (đè) không hợp lệ"
+#~ msgstr "chỉ thị “override” (đè) không hợp lệ"
 
 #~ msgid "-warning, CTRL-Y will leave sub-process(es) around.\n"
 #~ msgstr "• cảnh báo, CTRL-Y sẽ để một số tiến trình con còn lại.\n"
 
 #~ msgid "Do not specify -j or --jobs if sh.exe is not available."
-#~ msgstr "Đừng ghi rõ « -j » hay « --jobs » nếu <sh.exe> không sẵn sàng."
+#~ msgstr "Đừng ghi rõ “-j” hay “--jobs” nếu <sh.exe> không sẵn sàng."
 
 #~ msgid "Resetting make for single job mode."
-#~ msgstr "Đang lập lại trình make cho chế độ công việc đơn."
+#~ msgstr "Đang đặt lại trình make cho chế độ công việc đơn."