Bash-4.3 distribution sources and documentation
[platform/upstream/bash.git] / po / vi.po
index 2f4484e..aaaeaf4 100644 (file)
--- a/po/vi.po
+++ b/po/vi.po
 # Vietnamese translation for BASH (Bourne Again SHell).
-# Copyright © 2010 Free Software Foundation, Inc.
+# Bản dịch tiếng Việt dành cho bash.
+# Copyright © 2014 Free Software Foundation, Inc.
 # This file is distributed under the same license as the bash package.
 # Clytie Siddall <clytie@riverland.net.au>, 2008, 2009, 2010.
+# Trần Ngọc Quân <vnwildman@gmail.com>, 2012-2014.
+# Nguyễn Thái Ngọc Duy <pclouds@gmail.com>, 2012.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: bash 4.1\n"
+"Project-Id-Version: bash-4.3-rc2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
-"PO-Revision-Date: 2010-02-11 19:42+0930\n"
-"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
-"Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
+"POT-Creation-Date: 2014-02-11 11:19-0500\n"
+"PO-Revision-Date: 2014-02-01 13:11+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-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: LocFactoryEditor 1.8\n"
+"X-Generator: Poedit 1.5.5\n"
+"X-Poedit-SourceCharset: UTF-8\n"
 
-#: arrayfunc.c:50
+#: arrayfunc.c:51
 msgid "bad array subscript"
-msgstr "sai mảng in thấp"
+msgstr "sai chỉ số mảng"
 
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:356 builtins/declare.def:566
 #, c-format
 msgid "%s: cannot convert indexed to associative array"
-msgstr "%s: không thể chuyển đổi mảng theo số mũ sang mảng kết hợp"
+msgstr "%s: không thể chuyển đổi mảng kiểu chỉ số sang mảng kết hợp"
 
-#: arrayfunc.c:480
+#: arrayfunc.c:539
 #, c-format
 msgid "%s: invalid associative array key"
-msgstr "%s: khoá màng kết hợp không hợp lệ"
+msgstr "%s: khoá mảng liên kết không hợp lệ"
 
-#: arrayfunc.c:482
+#: arrayfunc.c:541
 #, c-format
 msgid "%s: cannot assign to non-numeric index"
-msgstr "%s: không thể cấp phát cho chỉ số không thuộc số"
+msgstr "%s: không thể gán cho chỉ số không thuộc kiểu số"
 
-#: arrayfunc.c:518
+#: arrayfunc.c:586
 #, c-format
 msgid "%s: %s: must use subscript when assigning associative array"
-msgstr "%s: %s: phải sá»­ dụng chữ thấp khi gán mảng kết hợp"
+msgstr "%s: %s: phải sá»­ dụng chá»\89 sá»\91 phụ khi gán mảng kết hợp"
 
-#: bashhist.c:387
+#: bashhist.c:388
 #, c-format
 msgid "%s: cannot create: %s"
-msgstr "%s: không thể tạo %s"
+msgstr "%s: không thể tạo: %s"
 
-#: bashline.c:3498
+#: bashline.c:3982
 msgid "bash_execute_unix_command: cannot find keymap for command"
-msgstr "bash_execute_unix_command: không tìm thấy sơ đồ phím cho câu lệnh"
+msgstr "bash_execute_unix_command: không tìm thấy ánh xạ cho câu lệnh"
 
-#: bashline.c:3584
+#: bashline.c:4069
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
-msgstr ""
-"%s: ký tự khác khoảng trắng đầu tiên không phải là dấu sổ chéo ngược « / »"
+msgstr "%s: ký tự khác khoảng trắng đầu tiên không phải là “\"”"
 
-#: bashline.c:3613
+#: bashline.c:4098
 #, c-format
 msgid "no closing `%c' in %s"
-msgstr "thiếu « %c » đóng trong %s"
+msgstr "thiếu dấu đóng “%c” trong %s"
 
-#: bashline.c:3647
+#: bashline.c:4132
 #, c-format
 msgid "%s: missing colon separator"
-msgstr "%s: thiếu dấu hai chấm định giới"
+msgstr "%s: thiếu dấu hai chấm phân cách"
+
+#: braces.c:321
+#, c-format
+msgid "brace expansion: cannot allocate memory for %s"
+msgstr "khai triển ngoặc ôm: không thể phân bổ bộ nhớ cho %s"
+
+#: braces.c:413
+#, c-format
+msgid "brace expansion: failed to allocate memory for %d elements"
+msgstr "khai triển ngoặc ôm: gặp lỗi khi phân bổ bộ nhớ cho `%d' phần tử"
+
+#: braces.c:452
+#, c-format
+msgid "brace expansion: failed to allocate memory for `%s'"
+msgstr "khai triển ngoặc ôm: gặp lỗi khi phân bổ bộ nhớ cho `%s'"
 
 #: builtins/alias.def:132
 #, c-format
 msgid "`%s': invalid alias name"
-msgstr "« %s »: sai đặt tên bí danh"
+msgstr "“%s”: tên bí danh không hợp lệ"
 
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
 msgid "line editing not enabled"
 msgstr "chưa bật sửa đổi dòng"
 
-#: builtins/bind.def:206
+#: builtins/bind.def:212
 #, c-format
 msgid "`%s': invalid keymap name"
-msgstr "« %s »: tên sơ đồ phím không hợp lệ"
+msgstr "“%s”: tên sơ đồ phím không hợp lệ"
 
-#: builtins/bind.def:245
+#: builtins/bind.def:251
 #, c-format
 msgid "%s: cannot read: %s"
-msgstr "%s: không thể đọc %s"
+msgstr "%s: không thể đọc: %s"
 
-#: builtins/bind.def:260
+#: builtins/bind.def:266
 #, c-format
 msgid "`%s': cannot unbind"
-msgstr "« %s »: không thể hủy tổ hợp"
+msgstr "“%s”: không thể tháo"
 
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
 #, c-format
 msgid "`%s': unknown function name"
-msgstr "« %s »: tên hàm không rõ"
+msgstr "“%s”: không hiểu tên hàm"
 
-#: builtins/bind.def:303
+#: builtins/bind.def:312
 #, c-format
 msgid "%s is not bound to any keys.\n"
-msgstr "%s không được tổ hợp với phím.\n"
+msgstr "%s không được ràng buộc với bất kỳ phím nào.\n"
 
-#: builtins/bind.def:307
+#: builtins/bind.def:316
 #, c-format
 msgid "%s can be invoked via "
 msgstr "%s có thể được gọi thông qua "
@@ -111,65 +130,61 @@ msgstr "đếm vòng"
 
 #: builtins/break.def:137
 msgid "only meaningful in a `for', `while', or `until' loop"
-msgstr ""
-"chỉ có nghĩa trong vòng lặp:\n"
-" • for\ttrong\n"
-" • while\ttrong khi\n"
-" • until\tđến khi"
+msgstr "chỉ có nghĩa trong vòng lặp “for”, “while” hay “until”"
 
-#: builtins/caller.def:133
+#: builtins/caller.def:134
 msgid ""
 "Returns the context of the current subroutine call.\n"
 "    \n"
 "    Without EXPR, returns "
 msgstr ""
-"Trả lại ngữ cảnh của lời gọi thường trình con hiện thời.\n"
+"Trả lại ngữ cảnh của cú gọi thủ tục con hiện thời.\n"
 "\n"
-"    Không có BTHỰC thì trà lại "
+"    Nếu không có BTHỨC thì trả về "
 
-#: builtins/cd.def:235
+#: builtins/cd.def:319
 msgid "HOME not set"
-msgstr "Chưa đặt biến môi trường HOME (nhà)"
+msgstr "Chưa đặt biến môi trường HOME"
 
-#: builtins/cd.def:247
+#: builtins/cd.def:327 builtins/common.c:166 test.c:876
+msgid "too many arguments"
+msgstr "quá nhiều đối số"
+
+#: builtins/cd.def:338
 msgid "OLDPWD not set"
-msgstr "Chưa đặt biến môi trường OLDPWD (mật khẩu cũ)"
+msgstr "Chưa đặt biến môi trường OLDPWD"
 
 #: builtins/common.c:101
 #, c-format
 msgid "line %d: "
-msgstr "dòng %d:"
+msgstr "dòng %d: "
 
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
 #, c-format
 msgid "warning: "
-msgstr "cảnh báo :"
+msgstr "cảnh báo"
 
 #: builtins/common.c:153
 #, c-format
 msgid "%s: usage: "
-msgstr "%s: sử dụng:"
+msgstr "%s: cách dùng: "
 
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "quá nhiều đối số"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:506 shell.c:788
 #, c-format
 msgid "%s: option requires an argument"
-msgstr "%s: tùy chọn cần thiết một đối số"
+msgstr "%s: tùy chọn cần một đối số"
 
 #: builtins/common.c:198
 #, c-format
 msgid "%s: numeric argument required"
-msgstr "%s: cần thiết đối số thuộc số"
+msgstr "%s: cần đối số thuộc kiểu số"
 
 #: builtins/common.c:205
 #, c-format
 msgid "%s: not found"
 msgstr "%s: không tìm thấy"
 
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:801
 #, c-format
 msgid "%s: invalid option"
 msgstr "%s: tùy chọn không hợp lệ"
@@ -179,10 +194,10 @@ msgstr "%s: tùy chọn không hợp lệ"
 msgid "%s: invalid option name"
 msgstr "%s: tên tùy chọn không hợp lệ"
 
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:235 general.c:240
 #, c-format
 msgid "`%s': not a valid identifier"
-msgstr "« %s »: không phải đồ nhận diện hợp lệ"
+msgstr "“%s”: không phải là định danh hợp lệ"
 
 #: builtins/common.c:238
 msgid "invalid octal number"
@@ -192,21 +207,21 @@ msgstr "số bát phân không hợp lệ"
 msgid "invalid hex number"
 msgstr "số thập lục không hợp lệ"
 
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1470
 msgid "invalid number"
 msgstr "số không hợp lệ"
 
 #: builtins/common.c:250
 #, c-format
 msgid "%s: invalid signal specification"
-msgstr "%s: sai xác định tín hiệu"
+msgstr "%s: sai đặc tả tín hiệu"
 
 #: builtins/common.c:257
 #, c-format
 msgid "`%s': not a pid or valid job spec"
-msgstr "« %s »: không phải đặc tả hợp lệ cho PID hoặc công việc"
+msgstr "“%s”: không phải một pid hoặc đặc tả công việc hợp lệ"
 
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:488
 #, c-format
 msgid "%s: readonly variable"
 msgstr "%s: biến chỉ đọc"
@@ -214,7 +229,7 @@ msgstr "%s: biến chỉ đọc"
 #: builtins/common.c:272
 #, c-format
 msgid "%s: %s out of range"
-msgstr "%s: %s ở ngoại phạm vi"
+msgstr "%s: %s nằm ngoài phạm vi"
 
 #: builtins/common.c:272 builtins/common.c:274
 msgid "argument"
@@ -223,7 +238,7 @@ msgstr "đối số"
 #: builtins/common.c:274
 #, c-format
 msgid "%s out of range"
-msgstr "%s ở ngoại phạm vi"
+msgstr "%s nằm ngoài phạm vi"
 
 #: builtins/common.c:282
 #, c-format
@@ -251,7 +266,7 @@ msgstr "bị hạn chế"
 #: builtins/common.c:312
 #, c-format
 msgid "%s: not a shell builtin"
-msgstr "%s: không phải dựng sẵn trình bao"
+msgstr "%s: không phải là lệnh dựng sẵn trong hệ vỏ"
 
 #: builtins/common.c:321
 #, c-format
@@ -261,72 +276,82 @@ msgstr "lỗi ghi: %s"
 #: builtins/common.c:329
 #, c-format
 msgid "error setting terminal attributes: %s"
-msgstr "gặp lỗi khi đặt các thuộc tính về thiết bị cuối: %s"
+msgstr "lỗi đặt các thuộc tính thiết bị cuối: %s"
 
 #: builtins/common.c:331
 #, c-format
 msgid "error getting terminal attributes: %s"
-msgstr "gặp lỗi khi lấy các thuộc tính về thiết bị cuối: %s"
+msgstr "lỗi lấy các thuộc tính thiết bị cuối: %s"
 
 #: builtins/common.c:563
 #, c-format
 msgid "%s: error retrieving current directory: %s: %s\n"
-msgstr "%s: gặp lỗi khi lấy thư mục hiện thời: %s: %s\n"
+msgstr "%s: lỗi lấy thư mục hiện thời: %s: %s\n"
 
 #: builtins/common.c:629 builtins/common.c:631
 #, c-format
 msgid "%s: ambiguous job spec"
-msgstr "%s: đặc tả công việc mơ hồ"
+msgstr "%s: đặc tả công việc chưa rõ ràng"
 
-#: builtins/complete.def:276
+#: builtins/complete.def:277
 #, c-format
 msgid "%s: invalid action name"
-msgstr "%s: tên hành vi không hợp lệ"
+msgstr "%s: tên hành động không hợp lệ"
 
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
 #, c-format
 msgid "%s: no completion specification"
-msgstr "%s: không có đặc tả điền nốt"
+msgstr "%s: không có đặc tả tự hoàn thiện"
 
-#: builtins/complete.def:696
+#: builtins/complete.def:697
 msgid "warning: -F option may not work as you expect"
-msgstr "cảnh báo: tùy chọn « -F » có lẽ không hoạt động như mong đợi"
+msgstr "cảnh báo: tùy chọn “-F” có thể không hoạt động như mong đợi"
 
-#: builtins/complete.def:698
+#: builtins/complete.def:699
 msgid "warning: -C option may not work as you expect"
-msgstr "cảnh báo: tùy chọn « -C » có lẽ không hoạt động như mong đợi"
+msgstr "cảnh báo: tùy chọn “-C” có thể không hoạt động như bạn mong đợi"
 
-#: builtins/complete.def:826
+#: builtins/complete.def:828
 msgid "not currently executing completion function"
-msgstr "hiện thời không thực thi chức năng điền nốt"
+msgstr "hiện thời không thực thi chức năng tự hoàn thiện"
 
-#: builtins/declare.def:124
+#: builtins/declare.def:126
 msgid "can only be used in a function"
-msgstr "chỉ có thể được dùng trong một hàm"
+msgstr "chỉ có thể dùng trong một hàm"
 
-#: builtins/declare.def:366
+#: builtins/declare.def:315 builtins/declare.def:509
+#, c-format
+msgid "%s: reference variable cannot be an array"
+msgstr "%s: biến tham chiếu không thể là một mảng"
+
+#: builtins/declare.def:324
+#, c-format
+msgid "%s: nameref variable self references not allowed"
+msgstr "%s: biến nameref tự tham chiếu là không được phép"
+
+#: builtins/declare.def:398
 msgid "cannot use `-f' to make functions"
-msgstr "không thể dùng « -f » để tạo hàm"
+msgstr "không thể dùng “-f” để tạo hàm"
 
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:410 execute_cmd.c:5361
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: hàm chỉ đọc"
 
-#: builtins/declare.def:474
+#: builtins/declare.def:553
 #, c-format
 msgid "%s: cannot destroy array variables in this way"
-msgstr "%s: không thể phá hủy biến mảng bằng cách này"
+msgstr "%s: không thể hủy biến mảng bằng cách này"
 
-#: builtins/declare.def:481
+#: builtins/declare.def:560 builtins/read.def:733
 #, c-format
 msgid "%s: cannot convert associative to indexed array"
-msgstr "%s: không thể chuyển đổi mảng kết hợp sang mảng theo số mũ"
+msgstr "%s: không thể chuyển đổi mảng kết hợp sang mảng chỉ số"
 
 #: builtins/enable.def:137 builtins/enable.def:145
 msgid "dynamic loading not available"
-msgstr "không có sẵn chức năng nạp động"
+msgstr "không có chức năng nạp động"
 
 #: builtins/enable.def:312
 #, c-format
@@ -341,31 +366,30 @@ msgstr "không tìm thấy %s trong đối tượng dùng chung %s: %s"
 #: builtins/enable.def:459
 #, c-format
 msgid "%s: not dynamically loaded"
-msgstr "%s không phải được nạp động"
+msgstr "%s không được nạp động"
 
 #: builtins/enable.def:474
 #, c-format
 msgid "%s: cannot delete: %s"
 msgstr "%s: không thể xoá: %s"
 
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:140 builtins/hash.def:171 execute_cmd.c:5208
+#: shell.c:1481
 #, c-format
 msgid "%s: is a directory"
 msgstr "%s: là thư mục"
 
-#: builtins/evalfile.c:140
+#: builtins/evalfile.c:146
 #, c-format
 msgid "%s: not a regular file"
-msgstr "%s: không phải là tập tin chuẩn"
+msgstr "%s: không phải là tập tin thường"
 
-#: builtins/evalfile.c:148
+#: builtins/evalfile.c:155
 #, c-format
 msgid "%s: file is too large"
 msgstr "%s: tập tin quá lớn"
 
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:190 builtins/evalfile.c:208 shell.c:1491
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: không thể thực hiện tập tin nhị phân"
@@ -373,7 +397,7 @@ msgstr "%s: không thể thực hiện tập tin nhị phân"
 #: builtins/exec.def:154 builtins/exec.def:156 builtins/exec.def:228
 #, c-format
 msgid "%s: cannot execute: %s"
-msgstr "%s: không thể thực hiện: %s"
+msgstr "%s: không thể thực thi: %s"
 
 #: builtins/exit.def:65
 #, c-format
@@ -382,34 +406,34 @@ msgstr "đăng xuất\n"
 
 #: builtins/exit.def:88
 msgid "not login shell: use `exit'"
-msgstr "không phải trình bao đăng nhập: hãy dùng lệnh « exit » (thoát)"
+msgstr "không phải hệ vỏ đăng nhập: hãy dùng lệnh “exit”"
 
 #: builtins/exit.def:120
 #, c-format
 msgid "There are stopped jobs.\n"
-msgstr "Vẫn có công việc bị dừng.\n"
+msgstr "Có công việc bị dừng.\n"
 
 #: builtins/exit.def:122
 #, c-format
 msgid "There are running jobs.\n"
-msgstr "Vẫn có công việc đang chạy.\n"
+msgstr "Có công việc đang chạy.\n"
 
 #: builtins/fc.def:262
 msgid "no command found"
 msgstr "không tìm thấy lệnh"
 
-#: builtins/fc.def:312 builtins/fc.def:359
+#: builtins/fc.def:320 builtins/fc.def:369
 msgid "history specification"
 msgstr "đặc tả lịch sử"
 
-#: builtins/fc.def:380
+#: builtins/fc.def:390
 #, c-format
 msgid "%s: cannot open temp file: %s"
-msgstr "%s: không thể mở tập tin tạm thời: %s"
+msgstr "%s: không thể mở tập tin tạm: %s"
 
 #: builtins/fg_bg.def:149 builtins/jobs.def:282
 msgid "current"
-msgstr "hiện thời"
+msgstr "hiện ti"
 
 #: builtins/fg_bg.def:158
 #, c-format
@@ -424,44 +448,42 @@ msgstr "%s: tùy chọn không được phép -- %c\n"
 #: builtins/getopt.c:111
 #, c-format
 msgid "%s: option requires an argument -- %c\n"
-msgstr "%s: tùy chọn cần thiết đối số -- %c\n"
+msgstr "%s: tùy chọn cần đối số -- %c\n"
 
 #: builtins/hash.def:92
 msgid "hashing disabled"
-msgstr "chức năng tạo ký hiệu lộn xộn bị tắt"
+msgstr "tắt băm"
 
 #: builtins/hash.def:138
 #, c-format
 msgid "%s: hash table empty\n"
-msgstr "%s: bảng ký hiệu lộn xộn còn rỗng\n"
+msgstr "%s: bảng băm rỗng\n"
 
 #: builtins/hash.def:245
 #, c-format
 msgid "hits\tcommand\n"
-msgstr "gá»\8di nhá»\9b\tlệnh\n"
+msgstr "gợi Ã½\tlệnh\n"
 
 #: builtins/help.def:130
 #, c-format
 msgid "Shell commands matching keyword `"
 msgid_plural "Shell commands matching keywords `"
-msgstr[0] "Câu lệnh trình bao tương ứng với từ khoá `"
+msgstr[0] "Câu lệnh hệ vỏ tương ứng với từ khoá `"
 
-#: builtins/help.def:168
+#: builtins/help.def:182
 #, c-format
 msgid ""
 "no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
 msgstr ""
-"không có chủ đề trợ giúp tương ứng với « %s ». Hãy thử câu lệnh:\n"
-" • help help\n"
-" • man -k %s\n"
-" • info %s"
+"không có trợ giúp cho “%s”. Hãy chạy lệnh “help help” hoặc  “man -k %s” hay "
+"“info %s”."
 
-#: builtins/help.def:185
+#: builtins/help.def:199
 #, c-format
 msgid "%s: cannot open: %s"
-msgstr "%s: không thể mở : %s"
+msgstr "%s: không thể mở: %s"
 
-#: builtins/help.def:337
+#: builtins/help.def:485
 #, c-format
 msgid ""
 "These shell commands are defined internally.  Type `help' to see this list.\n"
@@ -472,27 +494,27 @@ msgid ""
 "A star (*) next to a name means that the command is disabled.\n"
 "\n"
 msgstr ""
-"Những câu lệnh trình bao này được xác định nội bộ. Hãy gõ :\n"
-" • help\t\tđể xem danh sách này.\n"
-" • info bash\tđể tìm thêm thông tin chung về trình bao.\n"
-" • man -k\t} • info\t\t} để tìm thêm thông tin về lệnh không có trong danh "
-"sách này.\n"
+"Những câu lệnh này được định nghĩa nội bộ. Gõ lệnh “help” để xem danh sách "
+"này.\n"
+"Gõ “help TÊN” để biết chi tiết về hàm “TÊN”.\n"
+"Dùng “info bash” để tìm thông tin chung về hệ vỏ nói chung.\n"
+"Dùng “man -k” hoặc “info” để tìm thông tin về lệnh ngoài danh sách này.\n"
 "\n"
-"Dấu sao « * » bên cạnh tên thì ngụ ý nó bị tắt.\n"
+"Dấu sao (*) bên cạnh tên nghĩa là lệnh bị tắt.\n"
 "\n"
 
 #: builtins/history.def:154
 msgid "cannot use more than one of -anrw"
-msgstr "chỉ có thể dùng một của những tùy chọn « -a », « -n », « -r », « -w »"
+msgstr "chỉ có thể dùng một của những tùy chọn -anrw"
 
 #: builtins/history.def:186
 msgid "history position"
 msgstr "vị trí lịch sử"
 
-#: builtins/history.def:365
+#: builtins/history.def:366
 #, c-format
 msgid "%s: history expansion failed"
-msgstr "%s: lỗi mở rộng lịch sử"
+msgstr "%s: gặp lỗi khi khai triển lịch sử"
 
 #: builtins/inlib.def:71
 #, c-format
@@ -501,105 +523,115 @@ msgstr "%s: inlib bị lỗi"
 
 #: builtins/jobs.def:109
 msgid "no other options allowed with `-x'"
-msgstr "không cho phép dùng tùy chọn thêm với « -x »"
+msgstr "không cho phép dùng tùy chọn thêm với “-x”"
 
-#: builtins/kill.def:198
+#: builtins/kill.def:200
 #, c-format
 msgid "%s: arguments must be process or job IDs"
-msgstr "%s: đối số phải là mã số của tiến trình (PID) hoặc công việc"
+msgstr "%s: đối số phải là ID tiến trình hoặc công việc"
 
-#: builtins/kill.def:261
+#: builtins/kill.def:263
 msgid "Unknown error"
 msgstr "Lỗi không rõ"
 
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:583 expr.c:598
 msgid "expression expected"
-msgstr "đợi biểu thức"
+msgstr "cần biểu thức"
 
 #: builtins/mapfile.def:172
 #, c-format
 msgid "%s: not an indexed array"
-msgstr "%s: không phải biến phụ lục"
+msgstr "%s: không phải là mảng chỉ số"
 
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:259 builtins/read.def:302
 #, c-format
 msgid "%s: invalid file descriptor specification"
-msgstr "%s: sai xác định bộ mô tả tập tin"
+msgstr "%s: đặc tả bộ mô tả tập tin không hợp lệ"
 
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:267 builtins/read.def:309
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: bộ mô tả tập tin không hợp lệ: %s"
 
-#: builtins/mapfile.def:273 builtins/mapfile.def:311
+#: builtins/mapfile.def:276 builtins/mapfile.def:314
 #, c-format
 msgid "%s: invalid line count"
-msgstr "%s: sai đếm dòng"
+msgstr "%s: sai số lượng dòng"
 
-#: builtins/mapfile.def:284
+#: builtins/mapfile.def:287
 #, c-format
 msgid "%s: invalid array origin"
 msgstr "%s: gốc mảng không hợp lệ"
 
-#: builtins/mapfile.def:301
+#: builtins/mapfile.def:304
 #, c-format
 msgid "%s: invalid callback quantum"
 msgstr "%s: lượng gọi ngược không hợp lệ"
 
-#: builtins/mapfile.def:333
+#: builtins/mapfile.def:336
 msgid "empty array variable name"
-msgstr "%s: tên biến mảng vẫn trống"
+msgstr "tên biến mảng vẫn trống"
 
-#: builtins/mapfile.def:354
+#: builtins/mapfile.def:357
 msgid "array variable support required"
-msgstr "cần thiết hỗ trợ biến mảng"
+msgstr "cần hỗ trợ biến mảng"
 
-#: builtins/printf.def:394
+#: builtins/printf.def:402
 #, c-format
 msgid "`%s': missing format character"
-msgstr "« %s »: thiếu ký tự định dạng"
+msgstr "“%s”: thiếu ký tự định dạng"
 
-#: builtins/printf.def:448
-#, fuzzy, c-format
+#: builtins/printf.def:456
+#, c-format
 msgid "`%c': invalid time format specification"
-msgstr "%s: sai xác định quá hạn"
+msgstr "“%c”: đặc tả định dạng thời gian không đúng"
 
-#: builtins/printf.def:635
+#: builtins/printf.def:658
 #, c-format
 msgid "`%c': invalid format character"
-msgstr "« %c »: ký tự định dạng không hợp lệ"
+msgstr "“%c”: ký tự định dạng không hợp lệ"
 
-#: builtins/printf.def:662
+#: builtins/printf.def:684
 #, c-format
 msgid "warning: %s: %s"
-msgstr "cảnh báo : %s: %s"
+msgstr "cảnh báo: %s: %s"
 
-#: builtins/printf.def:840
+#: builtins/printf.def:768
+#, c-format
+msgid "format parsing problem: %s"
+msgstr "vấn đề phân tích cú pháp định dạng: %s"
+
+#: builtins/printf.def:865
 msgid "missing hex digit for \\x"
-msgstr "thiếu chữ số thập phân cho \\x"
+msgstr "thiếu chữ số thập lục phân cho \\x"
 
-#: builtins/printf.def:855
-#, fuzzy, c-format
+#: builtins/printf.def:880
+#, c-format
 msgid "missing unicode digit for \\%c"
-msgstr "thiếu chữ số thập phân cho \\x"
+msgstr "thiếu chữ số unicode cho \\%c"
 
 #: builtins/pushd.def:195
 msgid "no other directory"
 msgstr "không có thư mục khác"
 
-#: builtins/pushd.def:462
+#: builtins/pushd.def:354
+#, c-format
+msgid "%s: invalid argument"
+msgstr "%s: đối số không hợp lệ"
+
+#: builtins/pushd.def:468
 msgid "<no current directory>"
 msgstr "<không có thư mục hiện thời>"
 
-#: builtins/pushd.def:506
+#: builtins/pushd.def:512
 msgid "directory stack empty"
-msgstr "đống thư mục vẫn trống"
+msgstr "chồng thư mục trống"
 
-#: builtins/pushd.def:508
+#: builtins/pushd.def:514
 msgid "directory stack index"
-msgstr "chỉ mục đống thư mục"
+msgstr "chỉ số chồng thư mục"
 
-#: builtins/pushd.def:683
+#: builtins/pushd.def:689
 msgid ""
 "Display the list of currently remembered directories.  Directories\n"
 "    find their way onto the list with the `pushd' command; you can get\n"
@@ -622,28 +654,24 @@ msgid ""
 "by\n"
 "\tdirs when invoked without options, starting with zero."
 msgstr ""
-"Hiển thị danh sách các thư mục được nhớ hiện thời.\n"
-"\tLệnh « pushd » thêm thư mục vào danh sách này;\n"
-"« popd » nâng thư mục lên danh sách.\n"
-"\n"
-"\tTùy chọn:\n"
-"\t\t-c\tgột đống thư mục bằng cách xoá mọi phần tử\n"
-"\t\t-l\tđừng in ra phiên bản thư mục có dấu ngã nằm trước\n"
-"\t\t\tmà tương ứng với thư mục chính của người dùng\n"
-"\t\t-p\tin ra đống thư mục mỗi dòng một mục\n"
-"\t\t-v\tin ra đống thư mục mỗi dòng một mục\n"
-"\t\t\tcó vị trí đống nằm trước\n"
-"\n"
-"\tĐối số :\n"
-"\t\t+N\thiển thị mục thứ N đếm từ bên trái danh sách\n"
-"\t\t\thiển thị theo thư mục khi không đưa ra tùy chọn,\n"
-"\t\t\tbắt đầu từ số không.\n"
-"\n"
-"\t\t-N\thiển thị mục thứ N đếm từ bên phải danh sách\n"
-"\t\t\thiển thị theo thư mục khi không đưa ra tùy chọn,\n"
-"\t\t\tbắt đầu từ số không."
-
-#: builtins/pushd.def:705
+"Hiển thị danh sách các thư mục được nhớ hiện thời. Lệnh “pushd” thêm\n"
+"    thư mục vào danh sách này. “popd” lấy thư mục khỏi danh sách.\n"
+"\n"
+"    Tùy chọn:\n"
+"      -c\txoá mọi phần tử trong chồng thư mục\n"
+"      -l\tkhông in phiên bản thư mục có dấu ngã nằm trước\n"
+"        \tmà tương ứng với thư mục chính của người dùng\n"
+"      -p\tin chồng thư mục mỗi dòng một mục\n"
+"      -v\tin chồng thư mục mỗi dòng một mục kèm vị trí trong chồng\n"
+"\n"
+"    Đối số:\n"
+"      +N\thiển thị mục thứ N đếm từ bên trái khi gọi không tuỳ chọn,\n"
+"                bắt đầu từ số không.\n"
+"\n"
+"      -N\thiển thị mục thứ N đếm từ bên phải khi gọi không tuỳ chọn,\n"
+"                bắt đầu từ số không."
+
+#: builtins/pushd.def:711
 msgid ""
 "Adds a directory to the top of the directory stack, or rotates\n"
 "    the stack, making the new top of the stack the current working\n"
@@ -667,29 +695,27 @@ msgid ""
 "    \n"
 "    The `dirs' builtin displays the directory stack."
 msgstr ""
-"Thêm một thư mục vào đầu của đống thư mục, hoặc xoay đống,\n"
-"\tlàm cho thư mục mới đầu đống là thư mục làm việc hiện thời.\n"
-"\tKhông có đối số thì trao đổi hai thư mục đầu.\n"
+"Thêm thư mục vào trên chồng thư mục, hoặc xoay chồng, làm cho thư mục\n"
+"    hiện thời nằm ở trên đầu. Đổi vị trí hai thư mục trên cùng nếu\n"
+"    không có đối số.\n"
 "\n"
-"\tTùy chọn:\n"
-"\t\t-n\tthu hồi chức năng chuyển đổi thư mục bình thường\n"
-"\tkhi thêm thư mục vào đống, thì chỉ thao tác đống chính nó.\n"
+"    Tùy chọn:\n"
+"      -n\tngăn thay đổi thư mục bình thường khi thêm, chỉ thao tác\n"
+"        \ttrên chồng thư mục.\n"
 "\n"
-"\tĐối số :\n"
-"\t\t+N\txoay đống để mà thư mục thứ N\n"
-"\t\t\t(đếm từ bên trái danh sách hiển thị theo thư mục,\n"
-"\t\t\tbắt đầu từ số không) nằm ở đầu.\n"
+"    Đối số:\n"
+"      +N\txoay chồng để thư mục thứ N (đếm từ bên trái “dirs”, bắt\n"
+"        \tđầu từ số không) nằm ở đầu.\n"
 "\n"
-"\t\t-N\txoay đống để mà thư mục thứ N\n"
-"\t\t\t(đếm từ bên phải danh sách hiển thị theo thư mục,\n"
-"\t\t\tbắt đầu từ số không) nằm ở đầu.\n"
+"      -N\txoay chồng để thư mục thứ N (đếm từ bên phải “dirs”, bắt\n"
+"        \tđầu từ số không) nằm ở đầu.\n"
 "\n"
-"\t\tdir\tthêm DIR vào đầu đống thư mục,\n"
-"\t\tthì làm cho nó thư mục làm việc hiện thời.\n"
+"      THƯ-MỤC\tthêm THƯ-MỤC vào đầu chồng thư mục và dùng làm thư mục\n"
+"        \tlàm việc hiện thời.\n"
 "\n"
-"\tDựng sẵn « dirs » hiển thị đống thư mục."
+"    Lệnh “dirs” hiển thị chồng thư mục."
 
-#: builtins/pushd.def:730
+#: builtins/pushd.def:736
 msgid ""
 "Removes entries from the directory stack.  With no arguments, removes\n"
 "    the top directory from the stack, and changes to the new top directory.\n"
@@ -709,82 +735,78 @@ msgid ""
 "    \n"
 "    The `dirs' builtin displays the directory stack."
 msgstr ""
-"Gỡ bỏ thư mục khỏi đống thư mục.\n"
-"Không đưa ra đối số thì gỡ bỏ thư mục đầu khỏi đống,\n"
-"\tvà chuyển đổi sang thư mục đầu mới.\n"
+"Gỡ bỏ thư mục khỏi chồng thư mục. Không đưa ra đối số thì bỏ thư mục\n"
+"    đầu khỏi chồng và chuyển đổi sang thư mục đầu mới.\n"
 "\n"
-"\tTùy chọn:\n"
-"\t\t-n\tthu hồi chức năng chuyển đổi thư mục bình thường\n"
-"\t\tkhi gỡ bỏ thư mục khỏi đống, thì chỉ thao tác đống chính nó.\n"
+"    Tùy chọn:\n"
+"      -n\tngăn thay đổi thư mục bình thường khi thêm, chỉ thao tác\n"
+"\t\ttrên chồng thư mục.\n"
 "\n"
-"\tĐối số :\n"
-"\t\t+N\tgỡ bỏ mục thứ N đếm từ bên trái danh sách\n"
-"\t\t\thiển thị bằng « dirs », bắt đầu từ số không.\n"
-"\tVí dụ : « popd +0 » sẽ gỡ bỏ thư mục đầu tiên,\n"
-"\t\t« popd +1 » gỡ bỏ thư mục thứ hai, v.v.\n"
+"    Đối số:\n"
+"      +N\txoay chồng để thư mục thứ N (đếm từ bên trái “dirs”. bắt\n"
+"        \tđầu từ số không) nằm ở đầu. Ví dụ “popd +0” bỏ thư mục\n"
+"                đầu tiên, “popd +1” bỏ thư mục thứ hai.\n"
 "\n"
-"\t\t-N\tgỡ bỏ mục thứ N đếm từ bên phải danh sách\n"
-"\t\t\thiển thị bằng « dirs », bắt đầu từ số không.\n"
-"\tVí dụ : « popd -0 » sẽ gỡ bỏ thư mục cuối cùng,\n"
-"\t\t« popd -1 » gỡ bỏ thư mục giáp cuối, v.v.\n"
+"      -N\txoay chồng để thư mục thứ N (đếm từ bên phải “dirs”. bắt\n"
+"        \tđầu từ số không) nằm ở đầu. Ví dụ “popd -0” bỏ thư mục\n"
+"                cuối cùng, “popd -1” bỏ thư mục kế cuối.\n"
 "\n"
-"\tDựng sẵn « dirs » sẽ hiển thị đống thư mục."
+"    Lệnh “dirs” hiển thị chồng thư mục."
 
-#: builtins/read.def:252
+#: builtins/read.def:275
 #, c-format
 msgid "%s: invalid timeout specification"
-msgstr "%s: sai xác định quá hạn"
+msgstr "%s: sai đặc tả thời gian chờ tối đa"
 
-#: builtins/read.def:588
+#: builtins/read.def:678
 #, c-format
 msgid "read error: %d: %s"
 msgstr "lỗi đọc: %d: %s"
 
-#: builtins/return.def:73
+#: builtins/return.def:75
 msgid "can only `return' from a function or sourced script"
-msgstr ""
-"chỉ có thể « return » (trở về) từ một hàm hoặc văn lệnh được gọi từ nguồn"
+msgstr "chỉ có thể “return” từ một hàm hoặc văn lệnh được “source”"
 
-#: builtins/set.def:771
+#: builtins/set.def:782
 msgid "cannot simultaneously unset a function and a variable"
 msgstr "không thể hủy đặt đồng thời một hàm VÀ một biến"
 
-#: builtins/set.def:808
+#: builtins/set.def:826
 #, c-format
 msgid "%s: cannot unset"
 msgstr "%s: không thể hủy đặt"
 
-#: builtins/set.def:815
+#: builtins/set.def:843
 #, c-format
 msgid "%s: cannot unset: readonly %s"
 msgstr "%s: không thể hủy đặt: %s chỉ đọc"
 
-#: builtins/set.def:826
+#: builtins/set.def:854
 #, c-format
 msgid "%s: not an array variable"
 msgstr "%s: không phải biến mảng"
 
-#: builtins/setattr.def:186
+#: builtins/setattr.def:187
 #, c-format
 msgid "%s: not a function"
 msgstr "%s: không phải hàm"
 
 #: builtins/shift.def:71 builtins/shift.def:77
 msgid "shift count"
-msgstr "đếm dời"
+msgstr "số lượng dịch"
 
-#: builtins/shopt.def:264
+#: builtins/shopt.def:279
 msgid "cannot set and unset shell options simultaneously"
-msgstr "không thể đồng thời đặt và hủy đặt các tùy chọn trình bao"
+msgstr "không thể đồng thời đặt và hủy đặt các tùy chọn hệ vỏ"
 
-#: builtins/shopt.def:329
+#: builtins/shopt.def:346
 #, c-format
 msgid "%s: invalid shell option name"
-msgstr "%s: tên tùy chọn trình bao không hợp lệ"
+msgstr "%s: tên tùy chọn hệ vỏ không hợp lệ"
 
 #: builtins/source.def:130
 msgid "filename argument required"
-msgstr "cần thiết đối số tên tập tin"
+msgstr "cần đối số tên tập tin"
 
 #: builtins/source.def:155
 #, c-format
@@ -797,29 +819,29 @@ msgstr "không thể ngưng"
 
 #: builtins/suspend.def:111
 msgid "cannot suspend a login shell"
-msgstr "không thể ngưng trình bao đăng nhập"
+msgstr "không thể ngưng hệ vỏ đăng nhập"
 
 #: builtins/type.def:234
 #, c-format
 msgid "%s is aliased to `%s'\n"
-msgstr "%s có bí danh tới « %s »\n"
+msgstr "%s là bí danh của “%s”\n"
 
 #: builtins/type.def:255
 #, c-format
 msgid "%s is a shell keyword\n"
-msgstr "%s là từ khoá trình bao\n"
+msgstr "%s là từ khoá của hệ vỏ\n"
 
 #: builtins/type.def:274
 #, c-format
 msgid "%s is a function\n"
-msgstr "%s là hàm\n"
+msgstr "%s là một hàm\n"
 
 #: builtins/type.def:296
 #, c-format
 msgid "%s is a shell builtin\n"
-msgstr "%s là dựng sẵn trình bao\n"
+msgstr "%s là lệnh dựng sẵn hệ vỏ\n"
 
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
 #, c-format
 msgid "%s is %s\n"
 msgstr "%s là %s\n"
@@ -827,361 +849,376 @@ msgstr "%s là %s\n"
 #: builtins/type.def:337
 #, c-format
 msgid "%s is hashed (%s)\n"
-msgstr "%s có ký hiệu lộn xộn (%s)\n"
+msgstr "%s được băm (%s)\n"
 
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:383
 #, c-format
 msgid "%s: invalid limit argument"
 msgstr "%s: đối số giới hạn không hợp lệ"
 
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:409
 #, c-format
 msgid "`%c': bad command"
-msgstr "« %c »: câu lệnh sai"
+msgstr "“%c”: câu lệnh sai"
 
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:438
 #, c-format
 msgid "%s: cannot get limit: %s"
 msgstr "%s: không thể lấy giới hạn: %s"
 
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:464
 msgid "limit"
 msgstr "giới hạn"
 
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:476 builtins/ulimit.def:776
 #, c-format
 msgid "%s: cannot modify limit: %s"
 msgstr "%s: không thể sửa đổi giới hạn: %s"
 
-#: builtins/umask.def:118
+#: builtins/umask.def:114
 msgid "octal number"
 msgstr "số bát phân"
 
-#: builtins/umask.def:231
+#: builtins/umask.def:227
 #, c-format
 msgid "`%c': invalid symbolic mode operator"
-msgstr "« %c »: toán từ chế độ tượng trưng không hợp lệ"
+msgstr "“%c”: toán tử chế độ ký hiệu không hợp lệ"
 
-#: builtins/umask.def:286
+#: builtins/umask.def:282
 #, c-format
 msgid "`%c': invalid symbolic mode character"
-msgstr "« %c »: ký tự chế độ tượng trưng không hợp lệ"
+msgstr "“%c”: ký tự chế độ ký hiệu không hợp lệ"
 
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
 msgid " line "
-msgstr "dòng"
+msgstr " dòng "
 
 #: error.c:165
 #, c-format
 msgid "last command: %s\n"
-msgstr "câu lệnh cuối cùng: %s\n"
+msgstr "lệnh cuối: %s\n"
 
 #: error.c:173
 #, c-format
 msgid "Aborting..."
 msgstr "Hủy bỏ..."
 
-#: error.c:406
+#: error.c:440
 msgid "unknown command error"
 msgstr "lỗi lệnh không rõ"
 
-#: error.c:407
+#: error.c:441
 msgid "bad command type"
 msgstr "kiểu lệnh sai"
 
-#: error.c:408
+#: error.c:442
 msgid "bad connector"
 msgstr "bộ kết nối sai"
 
-#: error.c:409
+#: error.c:443
 msgid "bad jump"
-msgstr "sai nhảy"
+msgstr "nhảy sai"
 
-#: error.c:447
+#: error.c:481
 #, c-format
 msgid "%s: unbound variable"
-msgstr "%s: biến chưa tổ hợp"
+msgstr "%s: biến chưa liên kết"
 
-#: eval.c:181
+#: eval.c:189
 #, c-format
 msgid "\atimed out waiting for input: auto-logout\n"
-msgstr "\tquá hạn trong khi đợi dữ liệu nhập nên tự động đăng xuất\n"
+msgstr "\aquá thời hạn đợi dữ liệu nhập: tự động đăng xuất\n"
 
-#: execute_cmd.c:504
+#: execute_cmd.c:512
 #, c-format
 msgid "cannot redirect standard input from /dev/null: %s"
-msgstr "không thể chuyển hướng đầu vào tiêu chuẩn từ « /dev/null »: %s"
+msgstr "không thể chuyển hướng đầu vào chuẩn từ /dev/null: %s"
 
-#: execute_cmd.c:1168
+#: execute_cmd.c:1233
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
-msgstr "ĐỊNH DẠNG THỜI GIAN: « %c »: ký tự định dạng không hợp lệ"
+msgstr "ĐỊNH DẠNG THỜI GIAN: “%c”: ký tự định dạng không hợp lệ"
 
-#: execute_cmd.c:2121
+#: execute_cmd.c:2287
 msgid "pipe error"
 msgstr "lỗi ống dẫn"
 
-#: execute_cmd.c:4640
+#: execute_cmd.c:4386
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr "%s: vượt quá mức độ tối đa các hàm lồng nhau (%d)."
+
+#: execute_cmd.c:4884
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
-msgstr "%s: bị hạn chế: không thể ghi rõ dấu sổ chéo « / » trong tên câu lệnh"
+msgstr "%s: bị hạn chế: không thể dùng “/” trong tên lệnh"
 
-#: execute_cmd.c:4735
+#: execute_cmd.c:4973
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: không tìm thấy lệnh"
 
-#: execute_cmd.c:4959
-#, fuzzy, c-format
+#: execute_cmd.c:5206
+#, c-format
 msgid "%s: %s"
-msgstr "%s là %s\n"
+msgstr "%s: %s"
 
-#: execute_cmd.c:4995
+#: execute_cmd.c:5243
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: bộ thông dịch sai"
 
-#: execute_cmd.c:5144
+#: execute_cmd.c:5280
+#, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: không thể thực hiện tập tin nhị phân: %s"
+
+#: execute_cmd.c:5352
+#, c-format
+msgid "`%s': is a special builtin"
+msgstr "“%s”: là lệnh dựng sẵn đặc biệt"
+
+#: execute_cmd.c:5404
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
-msgstr "không thể nhân đôi fd %d tới fd %d"
+msgstr "không thể nhân đôi fd %d thành fd %d"
 
-#: expr.c:256
+#: expr.c:259
 msgid "expression recursion level exceeded"
-msgstr "vượt quá giới hạn mức độ đệ quy của biểu thức"
+msgstr "vượt quá ngưỡng đệ quy của biểu thức"
 
-#: expr.c:280
+#: expr.c:283
 msgid "recursion stack underflow"
-msgstr "trán ngược đống đệ quy"
+msgstr "tràn ngược đống đệ quy"
 
-#: expr.c:422
+#: expr.c:431
 msgid "syntax error in expression"
 msgstr "lỗi cú pháp trong biểu thức"
 
-#: expr.c:463
+#: expr.c:475
 msgid "attempted assignment to non-variable"
-msgstr "thử gán cho đồ không phải biến"
+msgstr "thử gán cho thứ không phải biến"
 
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:495 expr.c:858
 msgid "division by 0"
 msgstr "chia cho không"
 
-#: expr.c:517
+#: expr.c:542
 msgid "bug: bad expassign token"
-msgstr "lỗi (bug): hiệu bài ấn định biểu thức sai"
+msgstr "lỗi: “token expassign” sai"
 
-#: expr.c:564
+#: expr.c:595
 msgid "`:' expected for conditional expression"
-msgstr "đợi dấu hai chấm « : » cho biểu thức điều kiện"
+msgstr "cần “:” cho biểu thức điều kiện"
 
-#: expr.c:832
+#: expr.c:919
 msgid "exponent less than 0"
 msgstr "số mũ nhỏ hơn 0"
 
-#: expr.c:887
+#: expr.c:976
 msgid "identifier expected after pre-increment or pre-decrement"
-msgstr "đợi đồ nhận diện đằng sau tăng/giảm dần sẵn"
+msgstr "cần định danh sau tăng/giảm dần trước"
 
-#: expr.c:910
+#: expr.c:1002
 msgid "missing `)'"
-msgstr "thiếu dấu ngoặc đóng « ) »"
+msgstr "thiếu “)”"
 
-#: expr.c:959 expr.c:1282
+#: expr.c:1053 expr.c:1390
 msgid "syntax error: operand expected"
-msgstr "lỗi cú pháp: đợi toán hạng"
+msgstr "lỗi cú pháp: cần toán hạng"
 
-#: expr.c:1284
+#: expr.c:1392
 msgid "syntax error: invalid arithmetic operator"
 msgstr "lỗi cú pháp: toán tử số học không hợp lệ"
 
-#: expr.c:1308
+#: expr.c:1416
 #, c-format
 msgid "%s%s%s: %s (error token is \"%s\")"
-msgstr "%s%s%s: %s (hiệu bài lỗi là « %s »)"
+msgstr "%s%s%s: %s (thẻ bài lỗi là \"%s\")"
 
-#: expr.c:1366
+#: expr.c:1474
 msgid "invalid arithmetic base"
-msgstr "cơ số (số học) không hợp lệ"
+msgstr "cơ số (toán học) không hợp lệ"
 
-#: expr.c:1386
+#: expr.c:1494
 msgid "value too great for base"
 msgstr "cơ số có giá trị quá lớn"
 
-#: expr.c:1435
+#: expr.c:1543
 #, c-format
 msgid "%s: expression error\n"
 msgstr "%s: lỗi biểu thức\n"
 
-#: general.c:61
+#: general.c:62
 msgid "getcwd: cannot access parent directories"
 msgstr "getcwd: không thể truy cập thư mục cấp trên"
 
-#: input.c:94 subst.c:5082
+#: input.c:102 subst.c:5168
 #, c-format
 msgid "cannot reset nodelay mode for fd %d"
-msgstr "không thể đặt lại chế độ nodelay (không hoãn) cho fd %d"
+msgstr "không thể đặt lại chế độ “nodelay” cho fd %d"
 
-#: input.c:260
+#: input.c:271
 #, c-format
 msgid "cannot allocate new file descriptor for bash input from fd %d"
-msgstr "không thể cấp phát bộ mô tả tập tin mớ cho dữ liệu nhập bash từ fd %d"
+msgstr "không thể cấp phát bộ mô tả tập tin mới cho dữ liệu nhập bash từ fd %d"
 
-#: input.c:268
+#: input.c:279
 #, c-format
 msgid "save_bash_input: buffer already exists for new fd %d"
 msgstr "save_bash_input: đã có bộ đệm cho fd mới %d"
 
 # Nghĩa chữ ?
-#: jobs.c:468
+#: jobs.c:471
 msgid "start_pipeline: pgrp pipe"
 msgstr "start_pipeline: pgrp pipe"
 
-#: jobs.c:889
+#: jobs.c:893
 #, c-format
 msgid "forked pid %d appears in running job %d"
-msgstr "tiến trình con đã tạo (PID %d) xuất hiện trong công việc đang chạy %d"
+msgstr "pid được tánh nhánh %d có vẻ đang chạy trong công việc %d"
 
-#: jobs.c:1007
+#: jobs.c:1012
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "đang xoá công việc bị dừng chạy %d với nhóm tiến trình %ld"
 
-#: jobs.c:1112
+#: jobs.c:1117
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr "add_process: tiến trình %5ld (%s) trong the_pipeline"
 
-#: jobs.c:1115
+#: jobs.c:1120
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr "add_process: pid %5ld (%s) được đánh dấu vẫn hoạt động"
 
-#: jobs.c:1430
+#: jobs.c:1435
 #, c-format
 msgid "describe_pid: %ld: no such pid"
-msgstr "describe_pid: %ld: không có PID (mã số tiến trình) như vậy"
+msgstr "describe_pid: %ld: không có pid như vậy"
 
-#: jobs.c:1445
+#: jobs.c:1450
 #, c-format
 msgid "Signal %d"
 msgstr "Tín hiệu %d"
 
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1464 jobs.c:1489
 msgid "Done"
-msgstr "Hoàn tất"
+msgstr "Xong"
 
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1469 siglist.c:123
 msgid "Stopped"
 msgstr "Bị dừng"
 
-#: jobs.c:1468
+#: jobs.c:1473
 #, c-format
 msgid "Stopped(%s)"
 msgstr "Bị dừng(%s)"
 
-#: jobs.c:1472
+#: jobs.c:1477
 msgid "Running"
 msgstr "Đang chạy"
 
-#: jobs.c:1486
+#: jobs.c:1491
 #, c-format
 msgid "Done(%d)"
-msgstr "Hoàn tất(%d)"
+msgstr "Xong(%d)"
 
-#: jobs.c:1488
+#: jobs.c:1493
 #, c-format
 msgid "Exit %d"
 msgstr "Thoát %d"
 
-#: jobs.c:1491
+#: jobs.c:1496
 msgid "Unknown status"
 msgstr "Không rõ trạng thái"
 
-#: jobs.c:1578
+#: jobs.c:1583
 #, c-format
 msgid "(core dumped) "
-msgstr "(lõi bị đổ)"
+msgstr "(xuất ra core)"
 
-#: jobs.c:1597
+#: jobs.c:1602
 #, c-format
 msgid "  (wd: %s)"
 msgstr "  (wd: %s)"
 
-#: jobs.c:1805
+#: jobs.c:1819
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr "setpgid tiến trình con (%ld thành %ld)"
 
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2138 nojobs.c:605
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
-msgstr "wait: pid %ld không phải là tiến trình con của trình bao này"
+msgstr "wait: pid %ld không phải là tiến trình con của hệ vỏ này"
 
-#: jobs.c:2360
+#: jobs.c:2385
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr "wait_for: Không có mục ghi về tiến trình %ld"
 
-#: jobs.c:2637
+#: jobs.c:2694
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "wait_for_job: công việc %d bị dừng chạy"
 
-#: jobs.c:2859
+#: jobs.c:2986
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: công việc bị chấm dứt"
 
-#: jobs.c:2868
+#: jobs.c:2995
 #, c-format
 msgid "%s: job %d already in background"
-msgstr "%s: công việc %d đã chạy trong nền"
+msgstr "%s: công việc %d đã đang chạy nền"
 
-#: jobs.c:3089
+#: jobs.c:3220
 msgid "waitchld: turning on WNOHANG to avoid indefinite block"
 msgstr "waitchld: đang bật WNOHANG để tránh bị chặn vô hạn"
 
-#: jobs.c:3538
+#: jobs.c:3711
 #, c-format
 msgid "%s: line %d: "
-msgstr "%s: dòng %d:"
+msgstr "%s: dòng %d: "
 
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3725 nojobs.c:843
 #, c-format
 msgid " (core dumped)"
-msgstr " (lõi bị đổ)"
+msgstr " (xuất ra core)"
 
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3737 jobs.c:3750
 #, c-format
 msgid "(wd now: %s)\n"
-msgstr "(wd bây giờ: %s)\n"
+msgstr "(wd ngay: %s)\n"
 
-#: jobs.c:3609
+#: jobs.c:3782
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_job_control: getpgrp bị lỗi"
 
-#: jobs.c:3669
+#: jobs.c:3843
 msgid "initialize_job_control: line discipline"
 msgstr "initialize_job_control: kỷ luật dòng"
 
 # Nghĩa chữ : dừng dịch
-#: jobs.c:3679
+#: jobs.c:3853
 msgid "initialize_job_control: setpgid"
 msgstr "initialize_job_control: setpgid"
 
-#: jobs.c:3707
+#: jobs.c:3874 jobs.c:3883
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr "không thể đặt nhóm tiến trình cuối cùng (%d)"
 
-#: jobs.c:3712
+#: jobs.c:3888
 msgid "no job control in this shell"
-msgstr "không có điều khiển công việc trong trình bao này"
+msgstr "không có điều khiển công việc trong hệ vỏ này"
 
 #: lib/malloc/malloc.c:296
 #, c-format
 msgid "malloc: failed assertion: %s\n"
-msgstr "malloc (cấp phát bộ nhớ): lỗi khẳng định: %s\n"
+msgstr "malloc: khẳng định gặp lỗi: %s\n"
 
 #: lib/malloc/malloc.c:312
 #, c-format
@@ -1190,62 +1227,62 @@ msgid ""
 "malloc: %s:%d: assertion botched\r\n"
 msgstr ""
 "\r\n"
-"malloc (cấp phát bộ nhớ): %s:%d: khẳng định bị hỏng\r\n"
+"malloc: %s:%d: khẳng định bị sai\r\n"
 
 #: lib/malloc/malloc.c:313
 msgid "unknown"
 msgstr "không rõ"
 
-#: lib/malloc/malloc.c:797
+#: lib/malloc/malloc.c:801
 msgid "malloc: block on free list clobbered"
 msgstr ""
 "malloc (cấp phát bộ nhớ): khối bộ nhớ dành riêng trên danh sách các khối còn "
-"rảnh bị ghi vào"
+"trống bị ghi vào"
 
-#: lib/malloc/malloc.c:874
+#: lib/malloc/malloc.c:878
 msgid "free: called with already freed block argument"
-msgstr "free: đã được gọi với đối số khối đã giải phỏng"
+msgstr "free: đã được gọi với đối số khối đã được giải phóng"
 
-#: lib/malloc/malloc.c:877
+#: lib/malloc/malloc.c:881
 msgid "free: called with unallocated block argument"
 msgstr "free: đã được gọi với đối số khối chưa cấp phát"
 
-#: lib/malloc/malloc.c:896
+#: lib/malloc/malloc.c:900
 msgid "free: underflow detected; mh_nbytes out of range"
 msgstr "free: phát hiện sự tràn ngược; mh_nbytes ở ngoại phạm vi"
 
-#: lib/malloc/malloc.c:902
+#: lib/malloc/malloc.c:906
 msgid "free: start and end chunk sizes differ"
 msgstr "free: kích cỡ đoạn đầu và cuối không trùng"
 
-#: lib/malloc/malloc.c:1001
+#: lib/malloc/malloc.c:1005
 msgid "realloc: called with unallocated block argument"
 msgstr "realloc: đã được gọi với đối số khối chưa cấp phát"
 
-#: lib/malloc/malloc.c:1016
+#: lib/malloc/malloc.c:1020
 msgid "realloc: underflow detected; mh_nbytes out of range"
-msgstr "realloc: phát hiện sự tràn ngược; mh_nbytes ở ngoại phạm vi"
+msgstr "realloc: phát hiện sự tràn ngược; mh_nbytes nằm ngoài phạm vi cho phép"
 
-#: lib/malloc/malloc.c:1022
+#: lib/malloc/malloc.c:1026
 msgid "realloc: start and end chunk sizes differ"
 msgstr "realloc: kích cỡ đoạn đầu và cuối không trùng"
 
-#: lib/malloc/table.c:177
+#: lib/malloc/table.c:194
 #, c-format
 msgid "register_alloc: alloc table is full with FIND_ALLOC?\n"
 msgstr "register_alloc: bảng cấp phát đầy với FIND_ALLOC?\n"
 
-#: lib/malloc/table.c:184
+#: lib/malloc/table.c:203
 #, c-format
 msgid "register_alloc: %p already in table as allocated?\n"
-msgstr "register_alloc: %p đã có trong bảng như được cấp phát ?\n"
+msgstr "register_alloc: %p đã có trong bảng như được cấp phát?\n"
 
-#: lib/malloc/table.c:220
+#: lib/malloc/table.c:256
 #, c-format
 msgid "register_free: %p already in table as free?\n"
-msgstr "register_free: %p đã có trong bảng như còn rảnh ?\n"
+msgstr "register_free: %p đã có trong bảng như còn trống?\n"
 
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
 msgid "invalid base"
 msgstr "cơ số không hợp lệ"
 
@@ -1268,306 +1305,301 @@ msgstr "%s: đặc tả đường dẫn mạng sai"
 msgid "network operations not supported"
 msgstr "không hỗ trợ thao tác mạng"
 
-#: locale.c:192
+#: locale.c:200
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s)"
 msgstr "setlocale: LC_ALL: không thể chuyển đổi miền địa phương (%s)"
 
-#: locale.c:194
+#: locale.c:202
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
 msgstr "setlocale: LC_ALL: không thể chuyển đổi miền địa phương (%s): %s"
 
-#: locale.c:247
+#: locale.c:259
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s)"
 msgstr "setlocale: %s: không thể chuyển đổi miền địa phương (%s)"
 
-#: locale.c:249
+#: locale.c:261
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s): %s"
 msgstr "setlocale: %s: không thể chuyển đổi miền địa phương (%s): %s"
 
-#: mailcheck.c:433
+#: mailcheck.c:439
 msgid "You have mail in $_"
 msgstr "Bạn có thư trong $_"
 
-#: mailcheck.c:458
+#: mailcheck.c:464
 msgid "You have new mail in $_"
 msgstr "Bạn có thư mới trong $_"
 
-#: mailcheck.c:474
+#: mailcheck.c:480
 #, c-format
 msgid "The mail in %s has been read\n"
-msgstr "Thư tín trong %s đã được đọc\n"
+msgstr "Đã đọc thư trong %s\n"
 
 #: make_cmd.c:323
 msgid "syntax error: arithmetic expression required"
-msgstr "lỗi cú pháp: cần thiết biểu thức số học"
+msgstr "lỗi cú pháp: cần biểu thức số học"
 
 #: make_cmd.c:325
 msgid "syntax error: `;' unexpected"
-msgstr "lỗi cú pháp: dấu chấm phẩy « ; » bất thường"
+msgstr "lỗi cú pháp: gặp dấu chấm phẩy “;” bất thường"
 
 #: make_cmd.c:326
 #, c-format
 msgid "syntax error: `((%s))'"
-msgstr "lỗi cú pháp: `((%s))'"
+msgstr "lỗi cú pháp: “((%s))”"
 
-#: make_cmd.c:575
+#: make_cmd.c:578
 #, c-format
 msgid "make_here_document: bad instruction type %d"
-msgstr "make_here_document: kiểu chỉ dẫn sai %d"
+msgstr "make_here_document: kiểu chỉ lệnh sai %d"
 
-#: make_cmd.c:659
+#: make_cmd.c:662
 #, c-format
 msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
-msgstr ""
-"tài liệu này ở dòng %d định giới bằng kết thúc tập tin (mong đợi « %s »)"
+msgstr "tài liệu này ở dòng %d định giới bằng kết thúc tập tin (muốn “%s”)"
 
-#: make_cmd.c:756
+#: make_cmd.c:759
 #, c-format
 msgid "make_redirection: redirection instruction `%d' out of range"
-msgstr "make_redirection: chỉ dẫn chuyển hướng « %d » ở ngoại phạm vi"
+msgstr "make_redirection: chỉ dẫn chuyển hướng “%d” nằm ngoài phạm vi"
 
-#: parse.y:3173 parse.y:3444
+#: parse.y:3278 parse.y:3561
 #, c-format
 msgid "unexpected EOF while looking for matching `%c'"
-msgstr "gặp kết thúc tập tin bất thường trong khi tìm « %c » tương ứng"
+msgstr "gặp kết thúc tập tin bất thường trong khi tìm “%c” tương ứng"
 
-#: parse.y:4025
+#: parse.y:4170
 msgid "unexpected EOF while looking for `]]'"
-msgstr "gặp kết thúc tập tin bất thường trong khi tìm « ]] »"
+msgstr "gặp kết thúc tập tin bất thường trong khi tìm “]]”"
 
-#: parse.y:4030
+#: parse.y:4175
 #, c-format
 msgid "syntax error in conditional expression: unexpected token `%s'"
-msgstr "gặp lỗi cú pháp trong biểu thức điều kiện: hiệu bài bất thường « %s »"
+msgstr "gặp lỗi cú pháp trong biểu thức điều kiện: thẻ bài bất thường “%s”"
 
-#: parse.y:4034
+#: parse.y:4179
 msgid "syntax error in conditional expression"
 msgstr "gặp lỗi cú pháp trong biểu thức điều kiện"
 
-#: parse.y:4112
+#: parse.y:4257
 #, c-format
 msgid "unexpected token `%s', expected `)'"
-msgstr "gặp hiệu bài bất thường « %s », còn mong đợi dấu ngoặc đóng « ) »"
+msgstr "gặp thẻ bài bất thường “%s”, cần “)”"
 
-#: parse.y:4116
+#: parse.y:4261
 msgid "expected `)'"
-msgstr "đợi dấu đóng ngoặc « ) »"
+msgstr "cần “)”"
 
-#: parse.y:4144
+#: parse.y:4289
 #, c-format
 msgid "unexpected argument `%s' to conditional unary operator"
-msgstr "đối số bất thường « %s » tới toán tử nguyên phân điều kiện"
+msgstr "đối số bất thường “%s” cho toán tử một ngôi điều kiện"
 
-#: parse.y:4148
+#: parse.y:4293
 msgid "unexpected argument to conditional unary operator"
-msgstr "đối số bất thường tới toán tử nguyên phân điều kiện"
+msgstr "đối số bất thường cho toán tử một ngôi điều kiện"
 
-#: parse.y:4194
+#: parse.y:4339
 #, c-format
 msgid "unexpected token `%s', conditional binary operator expected"
-msgstr "hiệu bài bất thường « %s » còn đợi toán tử nhị phân điều kiện"
+msgstr "thẻ bài bất thường “%s”, cần toán tử hai ngôi điều kiện"
 
-#: parse.y:4198
+#: parse.y:4343
 msgid "conditional binary operator expected"
-msgstr "đợi toán tử nhị phân điều kiện"
+msgstr "cần toán tử hai ngôi điều kiện"
 
-#: parse.y:4220
+#: parse.y:4365
 #, c-format
 msgid "unexpected argument `%s' to conditional binary operator"
-msgstr "đối số bất thường « %s » tới toán tử nhị phân điều kiện"
+msgstr "đối số bất thường “%s” cho toán tử hai ngôi điều kiện"
 
-#: parse.y:4224
+#: parse.y:4369
 msgid "unexpected argument to conditional binary operator"
-msgstr "đối số bất thường tới toán tử nhị phân điều kiện"
+msgstr "đối số bất thường cho toán tử hai ngôi điều kiện"
 
-#: parse.y:4235
+#: parse.y:4380
 #, c-format
 msgid "unexpected token `%c' in conditional command"
-msgstr "gặp hiệu bài bất thường « %c » trong câu lệnh điều kiện"
+msgstr "gặp thẻ bài bất thường “%c” trong câu lệnh điều kiện"
 
-#: parse.y:4238
+#: parse.y:4383
 #, c-format
 msgid "unexpected token `%s' in conditional command"
-msgstr "gặp hiệu bài bất thường « %s » trong câu lệnh điều kiện"
+msgstr "gặp thẻ bài bất thường “%s” trong câu lệnh điều kiện"
 
-#: parse.y:4242
+#: parse.y:4387
 #, c-format
 msgid "unexpected token %d in conditional command"
-msgstr "gặp hiệu bài bất thường « %d » trong câu lệnh điều kiện"
+msgstr "gặp thẻ bài bất thường “%d” trong câu lệnh điều kiện"
 
-#: parse.y:5566
+#: parse.y:5737
 #, c-format
 msgid "syntax error near unexpected token `%s'"
-msgstr "gặp lỗi cú pháp ở gần hiệu bài bất thường « %s »"
+msgstr "có lỗi cú pháp ở gần thẻ bài bất thường “%s”"
 
-#: parse.y:5584
+#: parse.y:5755
 #, c-format
 msgid "syntax error near `%s'"
-msgstr "gặp lỗi cú pháp gần « %s »"
+msgstr "lỗi cú pháp ở gần “%s”"
 
-#: parse.y:5594
+#: parse.y:5765
 msgid "syntax error: unexpected end of file"
 msgstr "lỗi cú pháp: kết thúc tập tin bất thường"
 
-#: parse.y:5594
+#: parse.y:5765
 msgid "syntax error"
 msgstr "lỗi cú pháp"
 
-#: parse.y:5656
+#: parse.y:5827
 #, c-format
 msgid "Use \"%s\" to leave the shell.\n"
-msgstr "Dùng « %s » để rời trình bao.\n"
+msgstr "Dùng \"%s\" để rời hệ vỏ.\n"
 
-#: parse.y:5818
+#: parse.y:5989
 msgid "unexpected EOF while looking for matching `)'"
-msgstr ""
-"gặp kết thúc tập tin bất thường trong khi tìm dấu ngoặc đóng « ) » tương ứng"
+msgstr "gặp kết thúc tập tin bất thường trong khi tìm “)” tương ứng"
 
-#: pcomplete.c:1030
+#: pcomplete.c:1094
 #, c-format
 msgid "completion: function `%s' not found"
-msgstr "completion: không tìm thấy hàm « %s »"
+msgstr "tự hoàn thiện: không tìm thấy hàm “%s”"
 
 #: pcomplib.c:182
 #, c-format
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr "progcomp_insert: %s: NULL COMPSPEC"
 
-#: print_cmd.c:296
+#: print_cmd.c:300
 #, c-format
 msgid "print_command: bad connector `%d'"
-msgstr "print_command: bộ kết nối sai « %d »"
+msgstr "print_command: bộ kết nối sai “%d”"
 
-#: print_cmd.c:368
+#: print_cmd.c:373
 #, c-format
 msgid "xtrace_set: %d: invalid file descriptor"
-msgstr "xtrace_set: %d: sai đặt bộ mô tả tập tin"
+msgstr "xtrace_set: %d: sai bộ mô tả tập tin"
 
-#: print_cmd.c:373
+#: print_cmd.c:378
 msgid "xtrace_set: NULL file pointer"
-msgstr "xtrace_set: con trỏ tập tin NULL (vô giá trị)"
+msgstr "xtrace_set: con trỏ tập tin NULL"
 
 # Nghĩa chữ ?
-#: print_cmd.c:377
+#: print_cmd.c:382
 #, c-format
 msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
 msgstr "xtrace fd (%d) != fileno xtrace fp (%d)"
 
-#: print_cmd.c:1478
+#: print_cmd.c:1518
 #, c-format
 msgid "cprintf: `%c': invalid format character"
-msgstr "cprintf: « %c »: ký tự định dạng không hợp lệ"
+msgstr "cprintf: “%c”: ký tự định dạng không hợp lệ"
 
-#: redir.c:122
+#: redir.c:123 redir.c:170
 msgid "file descriptor out of range"
 msgstr "bộ mô tả tập tin ở ngoại phạm vi"
 
-#: redir.c:178
+#: redir.c:177
 #, c-format
 msgid "%s: ambiguous redirect"
-msgstr "%s: lời chuyển hướng mơ hồ"
+msgstr "%s: chuyển hướng chưa rõ ràng"
 
-#: redir.c:182
+#: redir.c:181
 #, c-format
 msgid "%s: cannot overwrite existing file"
 msgstr "%s: không thể ghi đè lên tập tin đã có"
 
-#: redir.c:187
+#: redir.c:186
 #, c-format
 msgid "%s: restricted: cannot redirect output"
 msgstr "%s: bị hạn chế: không thể chuyển hướng kết xuất"
 
-#: redir.c:192
+#: redir.c:191
 #, c-format
 msgid "cannot create temp file for here-document: %s"
 msgstr "không thể tạo tập tin tạm thời cho tài liệu này: %s"
 
-#: redir.c:196
+#: redir.c:195
 #, c-format
 msgid "%s: cannot assign fd to variable"
-msgstr "%s: không thể gán cho biến bộ bô tả tập tin"
+msgstr "%s: không thể gán fd vào biến"
 
-#: redir.c:548
+#: redir.c:582
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
-msgstr ""
-"/dev/(tcp|udp)/host/port không được hỗ trợ khi không có chức năng chạy mạng"
+msgstr "/dev/(tcp|udp)/host/port không được hỗ trợ nếu không có mạng"
 
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:861 redir.c:973 redir.c:1034 redir.c:1199
 msgid "redirection error: cannot duplicate fd"
-msgstr "gặp lỗi chuyển hướng nên không thể nhân đôi fd"
+msgstr "lỗi chuyển hướng: không thể nhân đôi fd"
 
-#: shell.c:333
+#: shell.c:339
 msgid "could not find /tmp, please create!"
-msgstr "không tìm thấy « /tmp », hãy tạo."
+msgstr "không tìm thấy /tmp, hãy tạo mới!"
 
-#: shell.c:337
+#: shell.c:343
 msgid "/tmp must be a valid directory name"
-msgstr "« /tmp » phải là tên thư mục hợp lệ"
+msgstr "“/tmp” phải là tên thư mục hợp lệ"
 
-#: shell.c:884
+#: shell.c:890
 #, c-format
 msgid "%c%c: invalid option"
 msgstr "%c%c: tùy chọn không hợp lệ"
 
-#: shell.c:1652
+#: shell.c:1682
 msgid "I have no name!"
-msgstr "Không có tên."
+msgstr "Không có tên!"
 
-#: shell.c:1795
+#: shell.c:1827
 #, c-format
 msgid "GNU bash, version %s-(%s)\n"
-msgstr "bash của GNU, phiên bản %s-(%s)\n"
+msgstr "GNU bash, phiên bản %s-(%s)\n"
 
-#: shell.c:1796
+#: shell.c:1828
 #, c-format
 msgid ""
 "Usage:\t%s [GNU long option] [option] ...\n"
 "\t%s [GNU long option] [option] script-file ...\n"
 msgstr ""
-"Sử dụng:\t%s [tùy chọn GNU dài] [tùy chọn] ...\n"
+"Cách dùng:\t%s [tùy chọn GNU dài] [tùy chọn] ...\n"
 "\t%s [tùy chọn GNU dài] [tùy chọn] tập-tin-văn-lệnh ...\n"
 
-#: shell.c:1798
+#: shell.c:1830
 msgid "GNU long options:\n"
-msgstr "Tùy chọn GNU dài:\n"
+msgstr "Tùy chọn dài:\n"
 
-#: shell.c:1802
+#: shell.c:1834
 msgid "Shell options:\n"
-msgstr "Tùy chọn trình bao :\n"
+msgstr "Tùy chọn:\n"
 
-#: shell.c:1803
-msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
-msgstr "\t-irsD hoặc -c lệnh or -O shopt_option\t\t(chỉ cuộc gọi)\n"
+#: shell.c:1835
+msgid "\t-ilrsD or -c command or -O shopt_option\t\t(invocation only)\n"
+msgstr "\t-ilrsD hoặc -c lệnh hay -O tùy-chọn-ngắn\t\t(chỉ gọi)\n"
 
-#: shell.c:1818
+#: shell.c:1850
 #, c-format
 msgid "\t-%s or -o option\n"
-msgstr "\t-%s hoặc -o tùy chọn\n"
+msgstr "\t-%s hoặc -o tùy-chọn\n"
 
-#: shell.c:1824
+#: shell.c:1856
 #, c-format
 msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
-msgstr ""
-"Gõ câu lệnh trợ giúp « %s -c \"help set\" » để xem thêm thông tin về các tùy "
-"chọn trình bao.\n"
+msgstr "Gõ “%s -c \"help set\"” để xem thông tin về các tùy chọn hệ vỏ.\n"
 
-#: shell.c:1825
+#: shell.c:1857
 #, c-format
 msgid "Type `%s -c help' for more information about shell builtin commands.\n"
-msgstr ""
-"Gõ câu lệnh trợ giúp « %s -c help » để xem thêm thông tin về các câu lệnh "
-"trình bao dựng sẵn.\n"
+msgstr "Gõ “%s -c help” để xem thông tin về các lệnh hệ vỏ dựng sẵn.\n"
 
-#: shell.c:1826
+#: shell.c:1858
 #, c-format
 msgid "Use the `bashbug' command to report bugs.\n"
-msgstr "Dùng lệnh « bashbug » để thông báo lỗi.\n"
+msgstr ""
+"Dùng lệnh “bashbug” để thông báo lỗi.\n"
+"Báo cáo các lỗi dịch cho: <http://translationproject.org/team/vi.html>.\n"
 
-#: sig.c:638
+#: sig.c:691
 #, c-format
 msgid "sigprocmask: %d: invalid operation"
 msgstr "sigprocmask: %d: thao tác không hợp lệ"
@@ -1578,11 +1610,11 @@ msgstr "Tín hiệu giả"
 
 #: siglist.c:51
 msgid "Hangup"
-msgstr "Treo máy"
+msgstr "Treo"
 
 #: siglist.c:55
 msgid "Interrupt"
-msgstr "Gián đoạn"
+msgstr "Ngắt"
 
 #: siglist.c:59
 msgid "Quit"
@@ -1606,7 +1638,7 @@ msgstr "Câu lệnh EMT"
 
 #: siglist.c:83
 msgid "Floating point exception"
-msgstr "Ngoại lệ chấm động"
+msgstr "Lỗi dấu chấm động"
 
 #: siglist.c:87
 msgid "Killed"
@@ -1614,19 +1646,19 @@ msgstr "Bị giết"
 
 #: siglist.c:91
 msgid "Bus error"
-msgstr "lỗi mạch nối"
+msgstr "Lỗi bus"
 
 #: siglist.c:95
 msgid "Segmentation fault"
-msgstr "Lỗi chia ra từng đoạn"
+msgstr "Lỗi phân đoạn"
 
 #: siglist.c:99
 msgid "Bad system call"
-msgstr "Sai gọi hệ thống"
+msgstr "Lỗi lệnh gọi hệ thống"
 
 #: siglist.c:103
 msgid "Broken pipe"
-msgstr "Ống dẫn bị hỏng"
+msgstr "Ống dẫn hỏng"
 
 #: siglist.c:107
 msgid "Alarm clock"
@@ -1638,7 +1670,7 @@ msgstr "Bị chấm dứt"
 
 #: siglist.c:115
 msgid "Urgent IO condition"
-msgstr "Điều kiện VR gấp"
+msgstr "Điều kiện IO gấp"
 
 #: siglist.c:119
 msgid "Stopped (signal)"
@@ -1662,7 +1694,7 @@ msgstr "Bị dừng (tty xuất)"
 
 #: siglist.c:147
 msgid "I/O ready"
-msgstr "V/R sẵn sàng"
+msgstr "I/O sẵn sàng"
 
 #: siglist.c:151
 msgid "CPU limit"
@@ -1686,7 +1718,7 @@ msgstr "Cửa sổ bị thay đổi"
 
 #: siglist.c:171
 msgid "Record lock"
-msgstr "Mục ghi bị khoá"
+msgstr "Khóa bản ghi"
 
 #: siglist.c:175
 msgid "User signal 1"
@@ -1702,7 +1734,7 @@ msgstr "Dữ liệu nhập HFT bị hoãn"
 
 #: siglist.c:187
 msgid "power failure imminent"
-msgstr "sắp bị cúp điện đột ngột"
+msgstr "sắp bị mất điện đột ngột"
 
 #: siglist.c:191
 msgid "system crash imminent"
@@ -1734,251 +1766,257 @@ msgstr "yêu cầu thông tin"
 
 #: siglist.c:223
 msgid "Unknown Signal #"
-msgstr "Không rõ tín hiệu #"
+msgstr "Tín hiệu lạ #"
 
 #: siglist.c:225
 #, c-format
 msgid "Unknown Signal #%d"
-msgstr "Không rõ tín hiệu #%d"
+msgstr "Tín hiệu lạ #%d"
 
-#: subst.c:1333 subst.c:1502
+#: subst.c:1362 subst.c:1520
 #, c-format
 msgid "bad substitution: no closing `%s' in %s"
-msgstr "sai thay thế: không có « %s » đóng trong %s"
+msgstr "sai chỉ số phụ: không có đóng “%s” trong %s"
 
-#: subst.c:2795
+#: subst.c:2847
 #, c-format
 msgid "%s: cannot assign list to array member"
 msgstr "%s: không thể gán danh sách cho bộ phận của mảng"
 
-#: subst.c:4979 subst.c:4995
+#: subst.c:5065 subst.c:5081
 msgid "cannot make pipe for process substitution"
 msgstr "không thể tạo ống dẫn để thay thế tiến trình"
 
-#: subst.c:5027
+#: subst.c:5113
 msgid "cannot make child for process substitution"
 msgstr "không thể tạo tiến trình con để thay thế tiến trình"
 
-#: subst.c:5072
+#: subst.c:5158
 #, c-format
 msgid "cannot open named pipe %s for reading"
 msgstr "không thể mở ống dẫn đặt tên %s để đọc"
 
-#: subst.c:5074
+#: subst.c:5160
 #, c-format
 msgid "cannot open named pipe %s for writing"
-msgstr "không thể mở ống dẫn đặt tên %s để ghi"
+msgstr "không thể mở ống dẫn  tên %s để ghi"
 
-#: subst.c:5092
+#: subst.c:5178
 #, c-format
 msgid "cannot duplicate named pipe %s as fd %d"
 msgstr "không thể nhân đôi ống dẫn đặt tên %s thành fd %d"
 
-#: subst.c:5284
+#: subst.c:5376
 msgid "cannot make pipe for command substitution"
 msgstr "không thể tạo ống dẫn để thay thế lệnh"
 
-#: subst.c:5322
+#: subst.c:5414
 msgid "cannot make child for command substitution"
 msgstr "không thể tạo tiến trình con để thay thế lệnh"
 
-#: subst.c:5339
+#: subst.c:5433
 msgid "command_substitute: cannot duplicate pipe as fd 1"
 msgstr "command_substitute: không thể nhân đôi ống dẫn thành fd 1"
 
-#: subst.c:5859
+#: subst.c:5837 subst.c:8050
+#, c-format
+msgid "%s: invalid variable name for name reference"
+msgstr "%s: tên biến không hợp lệ cho một tham chiếu tên"
+
+#: subst.c:6048
 #, c-format
 msgid "%s: parameter null or not set"
-msgstr "%s: tham số vô giá trị hoặc chưa được đặt"
+msgstr "%s: tham số null hoặc chưa được đặt"
 
-#: subst.c:6125 subst.c:6140
+#: subst.c:6320 subst.c:6335
 #, c-format
 msgid "%s: substring expression < 0"
-msgstr "%s: biểu thức chuỗi phụ < 0"
+msgstr "%s: biểu thức chuỗi con < 0"
 
-#: subst.c:7271
+#: subst.c:7506
 #, c-format
 msgid "%s: bad substitution"
-msgstr "%s: sai thay thế"
+msgstr "%s: thay thế sai"
 
-#: subst.c:7347
+#: subst.c:7583
 #, c-format
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: không thể gán bằng cách này"
 
-#: subst.c:7684
+#: subst.c:7917
 msgid ""
 "future versions of the shell will force evaluation as an arithmetic "
 "substitution"
 msgstr ""
-"phiên bản trình bao mới sẽ ép buộc ước lượng dưới dạng một hàm thay thế số "
-"học"
+"phiên bản hệ vỏ mới sẽ ép buộc ước lượng dưới dạng một hàm thay thế số học"
 
-#: subst.c:8149
+#: subst.c:8421
 #, c-format
 msgid "bad substitution: no closing \"`\" in %s"
-msgstr "sai thay thế: không có « ` » đóng trong %s"
+msgstr "sai thay thế: không có \"`\" đóng trong %s"
 
-#: subst.c:9036
+#: subst.c:9322
 #, c-format
 msgid "no match: %s"
 msgstr "không khớp: %s"
 
-#: test.c:146
+#: test.c:147
 msgid "argument expected"
-msgstr "mong đợi đối số"
+msgstr "cần đối số"
 
-#: test.c:155
+#: test.c:156
 #, c-format
 msgid "%s: integer expression expected"
-msgstr "%s: đợi biểu thức số nguyên"
+msgstr "%s: cần biểu thức số nguyên"
 
-#: test.c:263
+#: test.c:264
 msgid "`)' expected"
-msgstr "đợi dấu ngoặc đóng « ) »"
+msgstr "cần “)”"
 
-#: test.c:265
+#: test.c:266
 #, c-format
 msgid "`)' expected, found %s"
-msgstr "đợi dấu ngoặc đóng « ) », còn tìm %s"
+msgstr "cần “)” nhưng lại nhận được %s"
 
-#: test.c:280 test.c:698 test.c:701
+#: test.c:281 test.c:742 test.c:745
 #, c-format
 msgid "%s: unary operator expected"
-msgstr "%s: đợi toán tử nguyên phân"
+msgstr "%s: cần toán tử một ngôi"
 
-#: test.c:449 test.c:741
+#: test.c:468 test.c:785
 #, c-format
 msgid "%s: binary operator expected"
-msgstr "%s: đợi toán tử nhị phân"
+msgstr "%s: cần toán tử hai ngôi"
 
-#: test.c:816
+#: test.c:860
 msgid "missing `]'"
-msgstr "thiếu dấu ngoặc vụ đóng « ] »"
+msgstr "thiếu “]”"
 
-#: trap.c:207
+#: trap.c:217
 msgid "invalid signal number"
 msgstr "số thứ tự tín hiệu không hợp lệ"
 
-#: trap.c:337
+#: trap.c:371
 #, c-format
 msgid "run_pending_traps: bad value in trap_list[%d]: %p"
 msgstr "run_pending_traps: giá trị sai trong danh sách trap_list[%d]: %p"
 
-#: trap.c:341
+#: trap.c:375
 #, c-format
 msgid ""
 "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
 msgstr ""
 "run_pending_traps: bộ xử lý tín hiệu là SIG_DFL, đang gửi lại %d (%s) cho "
-"mình"
+"chính mình"
 
-#: trap.c:393
+#: trap.c:428
 #, c-format
 msgid "trap_handler: bad signal %d"
 msgstr "trap_handler: tín hiệu sai %d"
 
-#: variables.c:363
+#: variables.c:382
 #, c-format
 msgid "error importing function definition for `%s'"
-msgstr "gặp lỗi khi nhập lời xác định hàm cho « %s »"
+msgstr "gặp lỗi khi nhập vào định nghĩa hàm cho “%s”"
 
-#: variables.c:755
+#: variables.c:780
 #, c-format
 msgid "shell level (%d) too high, resetting to 1"
-msgstr "cấp trình bao (%d) quá cao nên đặt lại thành 1"
+msgstr "cấp hệ vỏ (%d) quá cao nên đặt lại thành 1"
 
-#: variables.c:1932
+#: variables.c:1865
+#, c-format
+msgid "%s: circular name reference"
+msgstr "%s: tên tham chiếu quẩn tròn"
+
+#: variables.c:2228
 msgid "make_local_variable: no function context at current scope"
 msgstr "make_local_variable: không có ngữ cảnh hàm ở phạm vi hiện thời"
 
-#: variables.c:3182
+#: variables.c:2247
+#, c-format
+msgid "%s: variable may not be assigned value"
+msgstr "%s: không thể gán giá trị cho biến"
+
+#: variables.c:3646
 msgid "all_local_variables: no function context at current scope"
 msgstr "all_local_variables: không có ngữ cảnh hàm ở phạm vi hiện thời"
 
-#: variables.c:3427
+#: variables.c:3891
 #, c-format
 msgid "%s has null exportstr"
-msgstr "%s có chuỗi xuất (exportstr) vô giá trị"
+msgstr "%s có exportstr null"
 
-#: variables.c:3432 variables.c:3441
+#: variables.c:3896 variables.c:3905
 #, c-format
 msgid "invalid character %d in exportstr for %s"
-msgstr "sai ký tự %d trong chuỗi exportstr cho %s"
+msgstr "sai ký tự %d trong exportstr cho %s"
 
-#: variables.c:3447
+#: variables.c:3911
 #, c-format
 msgid "no `=' in exportstr for %s"
-msgstr "không có dấu bằng « = » trong chuỗi exportstr cho %s"
+msgstr "không có “=” trong exportstr cho %s"
 
-#: variables.c:3891
+#: variables.c:4344
 msgid "pop_var_context: head of shell_variables not a function context"
 msgstr ""
-"pop_var_context: đầu của shell_variables (các biến trình bao) không phải là "
-"ngữ cảnh hàm"
+"pop_var_context: đầu của shell_variables (các biến hệ vỏ) không phải là ngữ "
+"cảnh hàm"
 
-#: variables.c:3904
+#: variables.c:4357
 msgid "pop_var_context: no global_variables context"
 msgstr ""
 "pop_var_context: không có ngữ cảnh global_variables (các biến toàn cục)"
 
-#: variables.c:3978
+#: variables.c:4431
 msgid "pop_scope: head of shell_variables not a temporary environment scope"
 msgstr ""
-"pop_scope: đầu của shell_variables (các biến trình bao) không phải là phạm "
-"vi môi trường tạm thời"
+"pop_scope: đầu của shell_variables (các biến hệ vỏ) không phải là phạm vi "
+"môi trường tạm thời"
 
-#: variables.c:4786
+#: variables.c:5257
 #, c-format
 msgid "%s: %s: cannot open as FILE"
-msgstr "%s: %s: không thể mở dưới dạng TẬP_TIN"
+msgstr "%s: %s: không thể mở như là TẬP-TIN"
 
-#: variables.c:4791
+#: variables.c:5262
 #, c-format
 msgid "%s: %s: invalid value for trace file descriptor"
 msgstr "%s: %s: sai đặt giá trị cho bộ mô tả tập tin vết"
 
+#: variables.c:5307
+#, c-format
+msgid "%s: %s: compatibility value out of range"
+msgstr "%s: %s: giá trị so sánh nằm ngoài phạm vi"
+
 #: version.c:46
-#, fuzzy
-msgid "Copyright (C) 2011 Free Software Foundation, Inc."
-msgstr "Tác quyền © năm 2009 của Tổ chức Phần mềm Tự do."
+msgid "Copyright (C) 2013 Free Software Foundation, Inc."
+msgstr "Tác quyền (C) năm 2014 của Tổ chức Quỹ Phần mềm Tự do, Inc."
 
-#: version.c:47
+#: version.c:47 version2.c:47
 msgid ""
 "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
 "html>\n"
 msgstr ""
-"Giấy phép GPLv3+: Giấy Phép Công Cộng GNU phiên bản 3 hay sau <http://gnu."
-"org/licenses/gpl.html>\n"
+"Giấy phép GPLv3+: GNU GPL phiên bản 3 hoặc mới hơn <http://gnu.org/licenses/"
+"gpl.html>\n"
 
-#: version.c:86 version2.c:83
+#: version.c:86 version2.c:86
 #, c-format
 msgid "GNU bash, version %s (%s)\n"
-msgstr "bash của GNU, phiên bản %s (%s)\n"
+msgstr "GNU bash, phiên bản %s (%s)\n"
 
-#: version.c:91 version2.c:88
-#, c-format
-msgid "This is free software; you are free to change and redistribute it.\n"
-msgstr "Đây là phần mềm tự do thì bạn có quyền sửa đổi và phát hành lại nó.\n"
+#: version.c:91 version2.c:91
+msgid "This is free software; you are free to change and redistribute it."
+msgstr "Đây là phần mềm tự do; bạn có quyền sửa đổi và phát hành lại nó."
 
-#: version.c:92 version2.c:89
-#, c-format
-msgid "There is NO WARRANTY, to the extent permitted by law.\n"
-msgstr "KHÔNG BẢO ĐẢM GÌ CẢ, với điều kiện được pháp luật cho phép.\n"
+#: version.c:92 version2.c:92
+msgid "There is NO WARRANTY, to the extent permitted by law."
+msgstr "Ở đây KHÔNG BẢO HÀNH GÌ CẢ, với điều kiện được pháp luật cho phép."
 
-#: version2.c:86
-#, c-format
-msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
-msgstr "Tác quyền © năm 2009 của Tổ chức Phần mềm Tự do.\n"
-
-#: version2.c:87
-#, c-format
-msgid ""
-"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
-"html>\n"
-msgstr ""
-"Giấy phép GPLv2+: Giấy Phép Công Cộng GNU phiên bản 2 hay sau <http://gnu."
-"org/licenses/gpl.html>\n"
+#: version2.c:46
+msgid "Copyright (C) 2012 Free Software Foundation, Inc."
+msgstr "Tác quyền (C) năm 2014 của Tổ chức Quỹ Phần mềm Tự do, Inc."
 
 #: xmalloc.c:91
 #, c-format
@@ -2002,20 +2040,19 @@ msgstr "%s: %s:%d: không thể cấp phát %lu byte"
 
 #: builtins.c:43
 msgid "alias [-p] [name[=value] ... ]"
-msgstr "alias [-p] [tên[=giá-trị] ... ]"
+msgstr "alias [-p] [TÊN[=GIÁ-TRỊ] ... ]"
 
 #: builtins.c:47
 msgid "unalias [-a] name [name ...]"
-msgstr "unalias [-a] tên [tên ...]"
+msgstr "unalias [-a] TÊN [TÊN ...]"
 
 #: builtins.c:51
 msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
 "x keyseq:shell-command] [keyseq:readline-function or readline-command]"
 msgstr ""
-"bind [-lpvsPVS] [-m sơ_đồ_phím] [-f tên_tập_tin] [-q tên] [-u tên] [-r "
-"dãy_phím] [-x dãy_phím:lệnh_trình_bao] [dãy_phím:chức_năng-readline hay lệnh-"
-"readline]"
+"bind [-lpvsPVSX] [-m SƠ-ĐỒ-PHÍM] [-f TẬP-TIN] [-q TÊN] [-u TÊN] [-r DÃY-"
+"PHÍM] [-x DÃY-PHÍM:LỆNH] [DÃY-PHÍM:HÀM-READLINE hay LỆNH-READLINE]"
 
 #: builtins.c:54
 msgid "break [n]"
@@ -2023,20 +2060,19 @@ msgstr "break [n]"
 
 #: builtins.c:56
 msgid "continue [n]"
-msgstr "tiếp tục [n]"
+msgstr "continue [n]"
 
 #: builtins.c:58
 msgid "builtin [shell-builtin [arg ...]]"
-msgstr "builtin [shell-builtin [arg ...]]"
+msgstr "builtin [SHELL-BUILTIN [ĐỐI-SỐ ...]]"
 
 #: builtins.c:61
 msgid "caller [expr]"
-msgstr "caller [b_thức]"
+msgstr "caller [BTHỨC]"
 
 #: builtins.c:64
-#, fuzzy
-msgid "cd [-L|[-P [-e]]] [dir]"
-msgstr "cd [-L|-P] [tmục]"
+msgid "cd [-L|[-P [-e]] [-@]] [dir]"
+msgstr "cd [-L|[-P [-e]]] [-@]] [THƯ-MỤC]"
 
 #: builtins.c:66
 msgid "pwd [-LP]"
@@ -2048,53 +2084,51 @@ msgstr ":"
 
 #: builtins.c:70
 msgid "true"
-msgstr "đúng"
+msgstr "true"
 
 #: builtins.c:72
 msgid "false"
-msgstr "sai"
+msgstr "false"
 
 #: builtins.c:74
 msgid "command [-pVv] command [arg ...]"
-msgstr "command [-pVv] command [arg ...]"
+msgstr "command [-pVv] LỆNH [Đ.SỐ ...]"
 
 #: builtins.c:76
-#, fuzzy
-msgid "declare [-aAfFgilrtux] [-p] [name[=value] ...]"
-msgstr "declare [-aAfFilrtux] [-p] [tên[=giá_trị] ...]"
+msgid "declare [-aAfFgilnrtux] [-p] [name[=value] ...]"
+msgstr "declare [-aAfFgilnrtux] [-p] [TÊN[=GIÁ-TRỊ] ...]"
 
 #: builtins.c:78
-#, fuzzy
 msgid "typeset [-aAfFgilrtux] [-p] name[=value] ..."
-msgstr "typeset [-aAfFilrtux] [-p] tên[=giá_trị] ..."
+msgstr "typeset [-aAfFgilrtux] [-p] TÊN[=GIÁ-TRỊ] ..."
 
 #: builtins.c:80
 msgid "local [option] name[=value] ..."
-msgstr "local [tùy_chọn] tên[=giá_trị] ..."
+msgstr "local [tùy_chọn] TÊN[=GIÁ-TRỊ] ..."
 
 #: builtins.c:83
 msgid "echo [-neE] [arg ...]"
-msgstr "echo [-neE] [Ä\91á»\91i_sá»\91 ...]"
+msgstr "echo [-neE] [Ä\90.Sá»\90 ...]"
 
 #: builtins.c:87
 msgid "echo [-n] [arg ...]"
-msgstr "echo [-n] [Ä\91á»\91i_sá»\91 ...]"
+msgstr "echo [-n] [Ä\90.Sá»\90 ...]"
 
 #: builtins.c:90
 msgid "enable [-a] [-dnps] [-f filename] [name ...]"
-msgstr "enable [-a] [-dnps] [-f tên_tập_tin] [tên ...]"
+msgstr "enable [-a] [-dnps] [-f TẬP-TIN] [TÊN ...]"
 
 #: builtins.c:92
 msgid "eval [arg ...]"
-msgstr "eval [Ä\91á»\91i_sá»\91 ...]"
+msgstr "eval [Ä\90.Sá»\90 ...]"
 
 #: builtins.c:94
 msgid "getopts optstring name [arg]"
-msgstr "getopts chuỗi_tùy_chọn tên [đối_số]"
+msgstr "getopts CHUỖI-TÙY-CHỌN TÊN [Đ.SỐ]"
 
 #: builtins.c:96
 msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]"
-msgstr "exec [-cl] [-a tên] [lệnh [đối_số ...]] [chuyển_hướng ...]"
+msgstr "exec [-cl] [-a TÊN] [LỆNH [ĐỐI-SỐ ...]] [CHUYỂN-HƯỚNG ...]"
 
 #: builtins.c:98
 msgid "exit [n]"
@@ -2102,74 +2136,62 @@ msgstr "exit [n]"
 
 #: builtins.c:100
 msgid "logout [n]"
-msgstr "đăng xuất [n]"
+msgstr "logout [n]"
 
 #: builtins.c:103
 msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]"
-msgstr ""
-"fc [-e tên-e] [-lnr] [đầu] [cuối]\n"
-"\thay\n"
-"fc -s [mẫu=lập_lại] [lệnh]"
+msgstr "fc [-e ENAME] [-lnr] [ĐẦU] [CUỐI] hoặc fc -s [MẪU=LẶP_LẠI] [LỆNH]"
 
 #: builtins.c:107
 msgid "fg [job_spec]"
-msgstr "fg [Ä\91ặc_tả_công_viá»\87c]"
+msgstr "fg [Ä\90TCV]"
 
 #: builtins.c:111
 msgid "bg [job_spec ...]"
-msgstr "bg [Ä\91ặc_tả_công_viá»\87c ...]"
+msgstr "bg [Ä\90TCV ...]"
 
 #: builtins.c:114
 msgid "hash [-lr] [-p pathname] [-dt] [name ...]"
-msgstr "hash [-lr] [-p Ä\91Æ°á»\9dng_dẫn] [-dt] [tên ...]"
+msgstr "hash [-lr] [-p Ä\90Ưá»\9cNG-DẪN] [-dt] [TÃ\8aN ...]"
 
 #: builtins.c:117
 msgid "help [-dms] [pattern ...]"
-msgstr "help [-dms] [mẫu ...]"
+msgstr "help [-dms] [MẪU ...]"
 
 #: builtins.c:121
 msgid ""
 "history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg "
 "[arg...]"
 msgstr ""
-"history [-c] [-d hiệu] [n]\n"
-"\thay\n"
-"history -anrw [tên_tập_tin]\n"
-"\thay\n"
-"history -ps đối_số [đối_số...]"
+"history [-c] [-d OFFSET] [n] hay history -anrw [T.TIN] hay history -ps Đ.SỐ "
+"[Đ.SỐ...]"
 
 #: builtins.c:125
 msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]"
-msgstr ""
-"jobs [-lnprs] [đặc_tả_công_việc ...]\n"
-"\thoặc\n"
-"jobs -x lệnh [các_đối_số]"
+msgstr "jobs [-lnprs] [ĐTCV ...] hoặc jobs -x LỆNH [ĐỐI-SỐ]"
 
 #: builtins.c:129
 msgid "disown [-h] [-ar] [jobspec ...]"
-msgstr "disown [-h] [-ar] [Ä\91ặc_tả_công_viá»\87c ...]"
+msgstr "disown [-h] [-ar] [Ä\90TCV ...]"
 
 #: builtins.c:132
 msgid ""
 "kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l "
 "[sigspec]"
 msgstr ""
-"kill [-s đặc_tả_tín_hiệu | -n số_tín_hiệu | -đặc_tả_tín_hiệu] pid | "
-"đặc_tả_công_việc ...\n"
-"\thay\n"
-"kill -l [đặc_tả_tín_hiệu]"
+"kill [-s ĐTTH | -n số_tín_hiệu | -ĐTTH] pid | ĐTCV ... hoặc kill -l [ĐTTH]"
 
 #: builtins.c:134
 msgid "let arg [arg ...]"
-msgstr "let Ä\91á»\91i_sá»\91 [Ä\91á»\91i_sá»\91 ...]"
+msgstr "let Ä\90á»\90I-Sá»\90 [Ä\90á»\90I-Sá»\90 ...]"
 
 #: builtins.c:136
 msgid ""
 "read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p "
 "prompt] [-t timeout] [-u fd] [name ...]"
 msgstr ""
-"read [-ers] [-a mảng] [-d giới_hạn] [-i văn_bản] [-n số_ký_tự] [-N số_ký_tự] "
-"[-p nhắc] [-t thời_hạn] [-u fd] [tên ...]"
+"read [-ers] [-a MẢNG] [-d GIỚI-HẠN] [-i VĂN-BẢN] [-n SỐ-KÝ-TỰ] [-N SỐ-KÝ-TỰ] "
+"[-p NHẮC] [-t THỜI-HẠN] [-u fd] [TÊN ...]"
 
 # nghĩa chữ
 #: builtins.c:138
@@ -2177,28 +2199,20 @@ msgid "return [n]"
 msgstr "return [n]"
 
 #: builtins.c:140
-#, fuzzy
 msgid "set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]"
-msgstr "set [--abefhkmnptuvxBCHP] [-o tùy_chọn] [đối_số ...]"
+msgstr "set [-abefhkmnptuvxBCHP] [-o TÊN-TÙY-CHỌN] [--] [ĐỐI-SỐ ...]"
 
 #: builtins.c:142
-msgid "unset [-f] [-v] [name ...]"
-msgstr "unset [-f] [-v] [tên ...]"
+msgid "unset [-f] [-v] [-n] [name ...]"
+msgstr "unset [-f] [-v] [-n] [TÊN ...]"
 
 #: builtins.c:144
 msgid "export [-fn] [name[=value] ...] or export -p"
-msgstr ""
-"export [-fn] [tên[=giá_trị] ...]\n"
-"\thay\n"
-"export -p"
+msgstr "export [-fn] [TÊN[=GIÁ-TRỊ] ...] hoặc export -p"
 
 #: builtins.c:146
-#, fuzzy
 msgid "readonly [-aAf] [name[=value] ...] or readonly -p"
-msgstr ""
-"readonly [-af] [tên[=giá_trị] ...]\n"
-"\thay\n"
-"readonly -p"
+msgstr "readonly [-aAf] [TÊN[=GIÁ-TRỊ] ...] hay readonly -p"
 
 #: builtins.c:148
 msgid "shift [n]"
@@ -2206,118 +2220,115 @@ msgstr "shift [n]"
 
 #: builtins.c:150
 msgid "source filename [arguments]"
-msgstr "nguồn tên_tập_tin [đối_số ...]"
+msgstr "source TẬP-TIN [ĐỐI-SỐ ...]"
 
 #: builtins.c:152
 msgid ". filename [arguments]"
-msgstr ". tên_tập_tin [đối_số ...]"
+msgstr ". TẬP-TIN [ĐỐI-SỐ ...]"
 
 #: builtins.c:155
 msgid "suspend [-f]"
-msgstr "ngưng [-f]"
+msgstr "suspend [-f]"
 
 #: builtins.c:158
 msgid "test [expr]"
-msgstr "test [b_thức]"
+msgstr "test [BTHỨC]"
 
 #: builtins.c:160
 msgid "[ arg... ]"
-msgstr "[ Ä\91á»\91i_sá»\91 ... ]"
+msgstr "[ Ä\90.Sá»\90 ... ]"
 
 #: builtins.c:162
 msgid "times"
-msgstr "lần"
+msgstr "times"
 
 #: builtins.c:164
 msgid "trap [-lp] [[arg] signal_spec ...]"
-msgstr "trap [-lp] [[Ä\91á»\91i_sá»\91] Ä\91ặc_tả_tín_hiá»\87u ...]"
+msgstr "trap [-lp] [[Ä\90.Sá»\90] Ä\90TTH ...]"
 
 #: builtins.c:166
 msgid "type [-afptP] name [name ...]"
-msgstr "type [-afptP] tên [tên ...]"
+msgstr "type [-afptP] TÊN [TÊN ...]"
 
 #: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
-msgstr "ulimit [-SHacdefilmnpqrstuvx] [giới_hạn]"
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
+msgstr "ulimit [-SHabcdefilmnpqrstuvxT] [GIỚI-HẠN]"
 
 #: builtins.c:172
 msgid "umask [-p] [-S] [mode]"
-msgstr "umask [-p] [-S] [chế_độ]"
+msgstr "umask [-p] [-S] [CHẾ-ĐỘ]"
 
 #: builtins.c:175
-msgid "wait [id]"
-msgstr "đợi [id]"
+msgid "wait [-n] [id ...]"
+msgstr "wait [-n] [id ...]"
 
 #: builtins.c:179
-msgid "wait [pid]"
-msgstr "đợi [pid]"
+msgid "wait [pid ...]"
+msgstr "wait [pid ...]"
 
 #: builtins.c:182
 msgid "for NAME [in WORDS ... ] ; do COMMANDS; done"
-msgstr "for TÊN [in CÁC-TỪ ... ;] do các_CÂU_LỆNH; done"
+msgstr "for TÊN [in TỪ... ;] do CÁC;CÂU;LỆNH; done"
 
 #: builtins.c:184
 msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done"
-msgstr "for (( exp1; exp2; exp3 )); do các_CÂU_LỆNH; done"
+msgstr "for (( BTHỨC1; BTHỨC2; BTHỨC3 )); do CÁC;CÂU;LỆNH; done"
 
 #: builtins.c:186
 msgid "select NAME [in WORDS ... ;] do COMMANDS; done"
-msgstr "select TÊN [in CÁC-TỪ ... ;] do các_CÂU_LỆNH; done"
+msgstr "select TÊN [in CÁC TỪ ... ;] do CÁC;CÂU;LỆNH; done"
 
 #: builtins.c:188
 msgid "time [-p] pipeline"
-msgstr "thời hạn [-p] ống dẫn"
+msgstr "time [-p] ỐNG-DẪN"
 
 #: builtins.c:190
 msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac"
-msgstr "case TỪ in [MẪU [| MẪU]...) các_CÂU_LỆNH ;;]... esac"
+msgstr "case TỪ in [MẪU [| MẪU]...) CÁC;CÂU;LỆNH;;]... esac"
 
 #: builtins.c:192
 msgid ""
 "if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else "
 "COMMANDS; ] fi"
 msgstr ""
-"if các_CÂU_LỆNH; then các_CÂU_LỆNH; [ elif các_CÂU_LỆNH; then "
-"các_CÂU_LỆNH; ]... [ else các_CÂU_LỆNH; ] fi"
+"if LỆNH; then CÁC;CÂU;LỆNH; [ elif CÁC;CÂU;LỆNH; then CÁC;CÂU;LỆNH; ]... "
+"[ else CÁC;CÂU;LỆNH; ] fi"
 
 #: builtins.c:194
 msgid "while COMMANDS; do COMMANDS; done"
-msgstr "while các_CÂU_LỆNH; do các_CÂU_LỆNH; done"
+msgstr "while CÁC;CÂU;LỆNH; do CÁC;CÂU;LỆNH; done"
 
 #: builtins.c:196
 msgid "until COMMANDS; do COMMANDS; done"
-msgstr "until các_CÂU_LỆNH; do các_CÂU_LỆNH; done"
+msgstr "until CÁC;CÂU;LỆNH; do CÁC;CÂU;LỆNH; done"
 
 #: builtins.c:198
 msgid "coproc [NAME] command [redirections]"
-msgstr "coproc [TÊN] command [định vị lại]"
+msgstr "coproc [TÊN] LỆNH [CHUYỂN-HƯỚNG]"
 
 #: builtins.c:200
 msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
-msgstr ""
-"chức_năng tên { các_CÂU_LỆNH ; }\n"
-"\thay\n"
-"tên () { các_CÂU_LỆNH ; }"
+msgstr "function TÊN { CÁC;CÂU;LỆNH; } or TÊN () { CÁC;CÂU;LỆNH; }"
 
 #: builtins.c:202
 msgid "{ COMMANDS ; }"
-msgstr "{ các_CÂU_LỆNH ; }"
+msgstr "{ CÁC;CÂU;LỆNH ; }"
 
 #: builtins.c:204
 msgid "job_spec [&]"
-msgstr "Ä\91ặc_tả_công_viá»\87c [&]"
+msgstr "Ä\90TCV [&]"
 
 #: builtins.c:206
 msgid "(( expression ))"
-msgstr "(( biểu_thức ))"
+msgstr "(( BTHỨC ))"
 
 #: builtins.c:208
 msgid "[[ expression ]]"
-msgstr "[[ biểu_thức ]]"
+msgstr "[[ BTHỨC ]]"
 
 #: builtins.c:210
 msgid "variables - Names and meanings of some shell variables"
-msgstr "biến — tên và nghĩa của một số biến trình bao"
+msgstr "biến — tên và nghĩa của một số biến hệ vỏ"
 
 #: builtins.c:213
 msgid "pushd [-n] [+N | -N | dir]"
@@ -2333,11 +2344,11 @@ msgstr "dirs [-clpv] [+N] [-N]"
 
 #: builtins.c:224
 msgid "shopt [-pqsu] [-o] [optname ...]"
-msgstr "shopt [-pqsu] [-o] [tùy_chọn ...]"
+msgstr "shopt [-pqsu] [-o] [tên-tùy-chọn ...]"
 
 #: builtins.c:226
 msgid "printf [-v var] format [arguments]"
-msgstr "printf [-v biến] định_dạng [đối_số]"
+msgstr "printf [-v BIẾN] ĐỊNH-DẠNG [CÁC-ĐỐI-SỐ]"
 
 #: builtins.c:229
 msgid ""
@@ -2345,37 +2356,37 @@ msgid ""
 "W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S "
 "suffix] [name ...]"
 msgstr ""
-"complete [-abcdefgjksuv] [-pr] [-DE] [-o tùy_chọn] [-A hành_động] [-G "
-"mẫu_glob] [-W danh_sách_từ]  [-F hàm] [-C lệnh] [-X mẫu_lọc] [-P tiền_tố] [-"
-"S hậu_tố] [tên ...]"
+"complete [-abcdefgjksuv] [-pr] [-DE] [-o TÙY-CHỌN] [-A HÀNH-ĐỘNG] [-G MẪU-"
+"GLOB] [-W DANH-SÁCH-TỪ]  [-F HÀM] [-C LỆNH] [-X MẪU-LỌC] [-P TIỀN-TỐ] [-S "
+"HẬU-TỐ] [TÊN ...]"
 
 #: builtins.c:233
 msgid ""
 "compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  "
 "[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
 msgstr ""
-"compgen [-abcdefgjksuv] [-o tùy_chọn]  [-A hành_động] [-G mẫu_glob] [-W "
-"danh_sách_từ]  [-F hàm] [-C lệnh] [-X mẫu_lọc] [-P tiền_tố] [-S hậu_tố] [từ]"
+"compgen [-abcdefgjksuv] [-o TÙY-CHỌN]  [-A HÀNH-ĐỘNG] [-G MẪU-GLOB] [-W DANH-"
+"SÁCH-TỪ]  [-F HÀM] [-C LỆNH] [-X MẪU-LỌC] [-P TIỀN-TỐ] [-S HẬU-TỐ] [TỪ]"
 
 #: builtins.c:237
 msgid "compopt [-o|+o option] [-DE] [name ...]"
-msgstr "compopt [-o|+o tùy_chọn] [-DE] [tên ...]"
+msgstr "compopt [-o|+o TÙY-CHỌN] [-DE] [TÊN ...]"
 
 #: builtins.c:240
 msgid ""
 "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
 "quantum] [array]"
 msgstr ""
-"mapfile [-n Ä\91ếm] [-O gá»\91c] [-s Ä\91ếm] [-t] [-u fd] [-C gá»\8di_ngược] [-c lượng] "
-"[mảng]"
+"mapfile [-n Ä\90ẾM] [-O Gá»\90C] [-s Sá»\90-LƯỢNG] [-t] [-u fd] [-C Gá»\8cI-NGƯỢC] [-c "
+"LƯỢNG] [MẢNG]"
 
 #: builtins.c:242
 msgid ""
 "readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
 "quantum] [array]"
 msgstr ""
-"readarray [-n Ä\91ếm] [-O gá»\91c] [-s Ä\91ếm] [-t] [-u fd] [-C gá»\8di_ngược] [-c lượng] "
-"[mảng]"
+"readarray [-n Ä\90ẾM] [-O Gá»\90C] [-s Sá»\90-LƯỢNG] [-t] [-u FD] [-C Gá»\8cI-NGƯỢC] [-c "
+"LƯỢNG] [MẢNG]"
 
 #: builtins.c:254
 msgid ""
@@ -2396,22 +2407,22 @@ msgid ""
 "been\n"
 "    defined."
 msgstr ""
-"Xác định hoặc hiển thị bí danh.\n"
+"Định nghĩa hoặc hiển thị bí danh.\n"
 "\n"
-"\tKhông đưa ra đối số thì « alias » in ra danh sách các bí danh\n"
-"\ttheo định dạng có thể dùng lại được « bí_danh TÊN=GIÁ_TRỊ »\n"
-"\ttrên đầu ra tiêu chuẩn.\n"
+"    Không đưa ra đối số thì “alias” in danh sách các bí danh theo mấu\n"
+"    “alias TÊN=GIÁ-TRỊ” trên đầu ra chuẩn.\n"
 "\n"
-"\tCó đối số thì một bí danh được xác định cho mỗi TÊN có giá trị đưa ra.\n"
-"\tMột dấu cách theo sau trong GIÁ_TRỊ thì gây ra từ kế tiếp được kiểm tra\n"
-"\tcó bí danh được thay thế khi bí danh được mở rộng.\n"
+"    Có đối số thì một bí danh được định nghĩa cho mỗi TÊN theo giá trị\n"
+"    đưa ra. Khoảng trắng ở đâu trong GIÁ-TRỊ làm kiểm tra thay thế bí\n"
+"    danh cho từ kế tiếp, khi phân giải bí danh.\n"
 "\n"
-"\tTùy chọn:\n"
-"\t\t-p\tin ra tất cả các bí danh đã xác định theo một định dạng\n"
-"\t\t\tcó thể dùng lại được\n"
+"    Tùy chọn:\n"
+"      -p\tin tất cả các bí danh được định nghĩa theo định dạng\n"
+"        \tcó thể dùng lại được\n"
 "\n"
-"\tTrạng thái thoát:\n"
-"\tbí danh trả lại Đúng nếu không đưa ra TÊN chưa có bí danh được xác định."
+"   Trạng thái thoát:\n"
+"   alias trả lại thành công trừ khi TÊN đã cho không phải là\n"
+"   một bí danh đã được định nghĩa"
 
 #: builtins.c:276
 msgid ""
@@ -2422,12 +2433,12 @@ msgid ""
 "    \n"
 "    Return success unless a NAME is not an existing alias."
 msgstr ""
-"Gỡ bỏ mỗi TÊN khỏi danh sách các bí danh đã xác định.\n"
+"Gỡ bỏ TÊN khỏi danh sách các bí danh.\n"
 "\n"
-"\tTùy chọn:\n"
-"\t\t-a\tgỡ bỏ tất cả các lời xác định bí danh.\n"
+"    Tùy chọn:\n"
+"      -a\tbỏ tất cả các bí danh.\n"
 "\n"
-"Trả lại thành công nếu không có TÊN là một bí danh không tồn tại."
+"    Trả lại thành công trừ khi TÊN không phải là một bí danh."
 
 #: builtins.c:289
 msgid ""
@@ -2463,46 +2474,48 @@ msgid ""
 "      -f  filename       Read key bindings from FILENAME.\n"
 "      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
 "    \t\t\t\tKEYSEQ is entered.\n"
+"      -X\t\t     List key sequences bound with -x and associated commands\n"
+"                         in a form that can be reused as input.\n"
 "    \n"
 "    Exit Status:\n"
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
 msgstr ""
-"Đặt các tổ hợp phím và biến kiểu Readline.\n"
-"\n"
-"\tTổ hợp một dãy phím với một chức năng hay vĩ lệnh kiểu Readline,\n"
-"\t\thoặc đặt một biến Readline.\n"
-"\tCú pháp đối số khác tùy chọn cũng tương đương với cú pháp\n"
-"\t\ttrong « ~/.inputrc », nhưng phải được gửi dưới dạng\n"
-"\t\tmột đối số riêng lẻ.\n"
-"\t\tVí dụ : bind '\"\\C-x\\C-r\": re-read-init-file'.\n"
-"\n"
-"\tTùy chọn:\n"
-"\t\t-m sơ_đồ_phím\tdùng sơ đồ phím này làm sơ đồ phím\n"
-"\t\t\ttrong khoảng thời gian chạy câu lệnh này.\n"
-"\t\tTên sơ đồ phím hợp lệ:\n"
-"\t\t\temacs, emacs-standard, emacs-meta,\n"
-"\t\t\temacs-ctlx, vi, vi-move, vi-command,\n"
-"\t\t\tvi-insert\n"
-"\t\t-l\tliệt kê các tên chức năng\n"
-"\t\t-P\tliệt kê các tên và tổ hợp của chức năng\n"
-"\t\t-p\tliệt kê các chức năng và tổ hợp theo một định dạng\n"
-"\t\t\tcó thể dùng lại được làm dữ liệu nhập vào\n"
-"\t\t-S\tliệt kê các dãy phím mà gọi vĩ lệnh và giá trị tương ứng\n"
-"\t\t-S\tliệt kê các dãy phím mà gọi vĩ lệnh và giá trị tương ứng\n"
-"\t\t\ttheo một định dạng có thể dùng lại được\n"
-"\t\t\tlàm dữ liệu nhập vào\n"
-"\t\t-q tên_chức_năng\thỏi những phím nào gọi chức năng này\n"
-"\t\t-u tên_chức_năng\ttháo tổ hợp tất cả các phím tổ hợp\n"
-"\t\t\tvới chức năng này\n"
-"\t\t-r dãy_phím\tgỡ bỏ tổ hợp đối với dãy phím này\n"
-"\t\t-f tên_tập_tin\tđọc các tổ hợp phím từ tập tin này\n"
-"\t\t-x dãy_phím:lệnh_trình_bao\tchạy câu lệnh trình bào này\n"
-"\t\t\tkhi dãy phím này được nhập vào\n"
-"\n"
-"\tTrạng thái thoát:\n"
-"\tbind trả lại 0 nếu không đưa ra tùy chọn không nhận ra hay gặp lỗi."
-
-#: builtins.c:326
+"Đặt các tổ hợp phím và biến Readline.\n"
+"\n"
+"    Gắn tổ hợp phím với một chức năng hay vĩ lệnh Readline, hoặc\n"
+"    đặt biến Readline. Cú pháp đối số không tùy chọn giống như trong\n"
+"    ~/.inputrc, nhưng phải được gửi dưới dạng đối số đơn. Ví\n"
+"    dụ: bind “\"\\C-x\\C-r\": re-read-init-file”.\n"
+"\n"
+"    Tùy chọn:\n"
+"      -m SƠ-ĐỒ-PHÍM      dùng sơ_đồ_phím làm sơ đồ phím khi lệnh này\n"
+"                         chạy. Giá trị hợp lệ là emacs, emacs-standard,\n"
+"                         emacs-meta, emacs-ctlx, vi, vi-move, vi-command\n"
+"                         và vi-insert.\n"
+"      -l                 Liệt kê tên các hàm\n"
+"      -P                 Liệt kê tên hàm và tổ hợp phím\n"
+"      -p                 Liệt kê tên hàm và tổ hợp phím theo dạng dùng\n"
+"                          lại làm đầu vào được\n"
+"      -S                 Liệt kê chuỗi phím mà gọi vĩ lệnh và các giá-trị "
+"của chúng\n"
+"      -s                 Liệt kê chuỗi phím mà gọi vĩ lệnh và các giá-trị "
+"của chúng\n"
+"                          theo định dạng có thể dùng làm đầu vào\n"
+"      -V                 Liệt kê các biến và giá trị của chúng\n"
+"      -v                 Liệt kê các biến và giá trị của chúng\n"
+"                          theo định dạng có thể tái sử dụng làm đầu vào.\n"
+"      -q TÊN-HÀM         Hỏi phím nào gọi hàm này\n"
+"      -u TÊN-HÀM         Gỡ bỏ tất cả phím tắt gắn với hàm này\n"
+"      -r DÃY-PHÍM        Gỡ bỏ tổ hợp phím này\n"
+"      -f TẬP-TIN         Đọc tổ hợp phím từ tập tin này\n"
+"      -x DÃY-PHÍM:LỆNH   Chạy LỆNH khi nhập DÃY-PHÍM\n"
+"      -X\t\t     Liệt kê dãy phím với tùy-chọn -x và các lệnh kết hợp\n"
+"                          theo dạng có thể dùng làm đầu vào.\n"
+"\n"
+"    Trạng thái thoát:\n"
+"    lệnh bind trả vềi 0 trừ khi đưa ra tùy chọn không nhận ra hay gặp lỗi."
+
+#: builtins.c:328
 msgid ""
 "Exit for, while, or until loops.\n"
 "    \n"
@@ -2512,15 +2525,15 @@ msgid ""
 "    Exit Status:\n"
 "    The exit status is 0 unless N is not greater than or equal to 1."
 msgstr ""
-"Thoát khỏi vòng lặp kiểu trong, trong khi hay đến khi.\n"
+"Thoát khỏi vòng lặp for, while hoặc until.\n"
 "\n"
-"\tThoát khỏi một vòng lặp kiểu TRONG, TRONG KHI hay ĐẾN KHI.\n"
-"\tCó ghi rõ N thì ngắt N vòng lặp bao bọc.\n"
+"    Thoát khỏi vòng lặp for, while hoặc until. Nếu xác định N thì\n"
+"    thoát N vòng lặp.\n"
 "\n"
-"\tTrạng thái thoát:\n"
-"\tTrạng thái thoát là 0 nếu N không nhỏ hơn hay bằng 1."
+"    Trạng thái thoát:\n"
+"    Trạng thái thoát là 0 trừ khi N nhỏ hơn 1."
 
-#: builtins.c:338
+#: builtins.c:340
 msgid ""
 "Resume for, while, or until loops.\n"
 "    \n"
@@ -2530,16 +2543,15 @@ msgid ""
 "    Exit Status:\n"
 "    The exit status is 0 unless N is not greater than or equal to 1."
 msgstr ""
-"Tiếp tục lại chạy vòng lặp kiểu trong, trong khi hay đến khi.\n"
+"Tiếp tục lại chạy vòng lặp for, while hoặc until.\n"
 "\n"
-"\tTiếp tục lại lần lặp lại kế tiếp của vòng lặp bao bọc\n"
-"\t\tkiểu TRONG, TRONG KHI hay ĐẾN KHI.\n"
-"\tĐưa ra N thì tiếp tục chạy vòng lặp bao bọc thứ N.\n"
+"    Tiếp tục lại chạy vòng lặp for, while hoặc until. Nếu xác định N\n"
+"    thì tiếp tục vòng lặp thứ N.\n"
 "\n"
-"\tTrạng thái thoát:\n"
-"\tTrạng thái thoát là 0 nếu N không nhỏ hơn hay bằng 1."
+"    Trạng thái thoát:\n"
+"    Trạng thái thoát là 0 trừ khi N nhỏ hơn 1."
 
-#: builtins.c:350
+#: builtins.c:352
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
@@ -2552,20 +2564,17 @@ msgid ""
 "    Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n"
 "    not a shell builtin.."
 msgstr ""
-"Chạy dựng sẵn trình bao.\n"
+"Chạy lệnh dựng sẵn hệ vỏ.\n"
 "\n"
-"\tChạy SHELL-BUILTIN (dựng sẵn trình bao) với các ĐỐI_SỐ\n"
-"\tmà không thực thi chức năng dò tìm câu lệnh.\n"
-"\tCó ích khi bạn muốn thực thi lại một dựng sẵn trình bao\n"
-"\tdưới dạng một chức năng trình bao, nhưng cũng\n"
-"\tcần thực thi dựng sẵn bên trong chức năng.\n"
+"    Chạy SHELL-BUILTIN với ĐỐI-SỐ mà không thực hiện tìm lệnh. Hữu ích\n"
+"    khi bạn muốn cài đặt lại lệnh hệ vỏ dựng sẵn dạng hàm hệ vỏ, nhưng\n"
+"    cần chạy lệnh dựng sẵn trong hàm đó.\n"
 "\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại trạng thái thoát của SHELL-BUILTIN,\n"
-"\thoặc sai nếu SHELL-BUILTIN không phải là một\n"
-"\tdựng sẵn trình bao."
+"    Trạng thái thoát:\n"
+"    Trả lại trạng thái thoát của SHELL-BUILTIN, hoặc sai nếu\n"
+"    SHELL-BUILTIN không phải là một lệnh dựng sẵn hệ vỏ."
 
-#: builtins.c:365
+#: builtins.c:367
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2580,21 +2589,19 @@ msgid ""
 "    Returns 0 unless the shell is not executing a shell function or EXPR\n"
 "    is invalid."
 msgstr ""
-"Trả về ngữ cảnh của cuộc gọi hàm phụ hiện thời.\n"
+"Trả về ngữ cảnh của lệnh gọi hàm hiện thời.\n"
 "\n"
-"\tKhông có B_THỨC thì trả lại « $line $filename ».\n"
-"\tCó B_THỨC thì trả lại « $line $subroutine $filename »;\n"
-"\tthông tin thêm này có thể được dùng để cung cấp vết đống.\n"
+"    Không có BTHỨC thì trả lại \"$line $filename\".  Có BTHỨC thì trả\n"
+"    lại \"$line $subroutine $filename\"; thông tin bổ sung này có thể\n"
+"    được dùng để cung cấp stack trace.\n"
 "\n"
-"\tGiá trị của B_THỨC thì ngụ ý bao nhiêu khung gọi cần lùi lại\n"
-"đằng trước khung hiện tại; khung đầu là khung 0.\n"
+"    Giá trị của BTHỨC thì ngụ ý bao nhiêu lần gọi cần lùi lại đằng\n"
+"    trước lệnh gọi hiện tại; khung gọi đầu là khung 0.\n"
 "\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại 0 nếu trình bao đang chạy chức năng trình bao,\n"
-"\t\tB_THỨC cũng hợp lệ."
+"    Trạng thái thoát:\n"
+"    Trả lại 0 trừ khi hệ vỏ đang chạy hàm hệ vỏ, BTHỨC cũng hợp lệ."
 
-#: builtins.c:383
-#, fuzzy
+#: builtins.c:385
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
@@ -2617,44 +2624,61 @@ msgid ""
 "    its value is used for DIR.\n"
 "    \n"
 "    Options:\n"
-"        -L\tforce symbolic links to be followed\n"
+"        -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+"    \tDIR after processing instances of `..'\n"
 "        -P\tuse the physical directory structure without following symbolic\n"
-"    \tlinks\n"
+"    \tlinks: resolve symbolic links in DIR before processing instances\n"
+"    \tof `..'\n"
 "        -e\tif the -P option is supplied, and the current working directory\n"
 "    \tcannot be determined successfully, exit with a non-zero status\n"
+"        -@  on systems that support it, present a file with extended "
+"attributes\n"
+"            as a directory containing the file attributes\n"
 "    \n"
 "    The default is to follow symbolic links, as if `-L' were specified.\n"
+"    `..' is processed by removing the immediately previous pathname "
+"component\n"
+"    back to a slash or the beginning of DIR.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns 0 if the directory is changed, and if $PWD is set successfully "
 "when\n"
 "    -P is used; non-zero otherwise."
 msgstr ""
-"Chuyển đổi thư mục làm việc của trình bao.\n"
-"\n"
-"\tChuyển đổi thư mục hiện thời sang TMỤC.\n"
-"\tThư mục mặc định là giá trị của biến trình bao HOME.\n"
-"\n"
-"\tBiến CDPATH thì xác định đường dẫn tìm kiếm cho thư mục chứa TMỤC.\n"
-"\tCác tên thư mục xen kẽ trong CDPATH cũng định giới bằng dấu hai chấm « : "
-"».\n"
-"\tMột tên thư mục trống tương đương với thư mục hiện tại.\n"
-"\tNếu TMỤC bắt đầu với dấu chéo « / » thì không dùng CDPATH.\n"
-"\n"
-"\tNếu không tìm thấy thư mục, và đặt biến trình bao « cdable_vars »,\n"
-"\t\tthì giả sử từ là một tên biến.\n"
-"\tNếu biến đó có giá trị thì giá trị này được dùng cho TMỤC.\n"
-"\n"
-"\tTùy chọn:\n"
-"\t\t-L\tép buộc theo liên kết tượng trưng\n"
-"\t\t-P\tdùng cấu trúc thư mục vật lý mà không theo liên kết tượng trưng\n"
-"\n"
-"\tMặc định là theo liên kết tượng trưng, như là tùy chọn « -L » đưa ra.\n"
-"\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại 0 nếu thư mục được chuyển đổi; không thì khác số không."
-
-#: builtins.c:414
+"Đổi thư mục làm việc của hệ vỏ.\n"
+"    \n"
+"    Chuyển đổi thư mục hiện thời sang THƯ-MỤC. Thư mục mặc định là giá\n"
+"    trị của biến HOME.\n"
+"    \n"
+"    Biến CDPATH xác định đường dẫn tìm kiếm cho thư mục chứa\n"
+"    THƯ-MỤC. Tên thư mục trong CDPATH được phân cách bằng dấu hai chấm\n"
+"    (:).  Tên thư mục trống tương đương với thư mục hiện tại. Nếu\n"
+"    THƯ-MỤC bắt đầu với dấu gạch chéo (/) thì không dùng CDPATH.\n"
+"    \n"
+"    Nếu không tìm thấy thư mục, và biến “cdable_vars” được đặt,\n"
+"    thì lệnh sẽ coi là một tên biến. Nếu biến đó có giá trị,\n"
+"    thì giá trị này được dùng cho THƯ-MỤC.\n"
+"    \n"
+"    Tùy chọn:\n"
+"        -L  buộc theo liên kết mềm: phân giải liên kết mềm\n"
+"           \tTH.MỤC sau khi xử lý “..”\n"
+"        -P  dùng cấu trúc thư mục vật lý mà không theo liên kết mềm:\n"
+"           \tphân giải liên kết mềm TH.MỤC sau khi xử lý “..”\n"
+"        -e  nếu có tùy chọn -P và không thể xác định thư mục làm việc\n"
+"          \thiện tại thì thoát với trạng thái khác không\n"
+"        -@  trên các hệ thống mà hỗ trợ nó, hiện diện một tập tin với các "
+"thuộc tính mở rộng\n"
+"            như là một thư mục chứa các thuộc tính tập tin\n"
+"    \n"
+"    Mặc định là theo liên kết mềm, như có mặt tùy chọn “-L”.\n"
+"    “..” được xử lý bằng cách gỡ bỏ phần trước của đường dẫn\n"
+"    cho đến dấu gạch chéo hay điểm bắt đầu của TH.MỤC.\n"
+"    \n"
+"    Trạng thái thoát:\n"
+"    Trả về 0 nếu thay đổi thư mục, và nếu $PWD được đặt thành công khi\n"
+"    -P được sử dụng; không thì khác không."
+
+#: builtins.c:422
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2669,20 +2693,19 @@ msgid ""
 "    Returns 0 unless an invalid option is given or the current directory\n"
 "    cannot be read."
 msgstr ""
-"In ra tên của thư mục hoạt động hiện thời.\n"
-"\n"
-"\tTùy chọn:\n"
-"\t\t-L\tin ra giá trị của $PWD nếu nó đặt tên\n"
-"\t\t\tcủa thư mục hoạt động hiện thời\n"
-"\t\t-P\tin ra thư mục vật lý, không có liên kết mềm\n"
-"\n"
-"\t\tMặc định là « pwd » hoạt động như là « -L » được ghi rõ.\n"
-"\n"
-"\t\tTrạng thái thoát:\n"
-"\t\tTrả lại 0 nếu không đưa ra tùy chọn sai\n"
-"\t\tvà nếu đọc được thư mục hiện thời."
+"In tên thư mục hiện tại.\n"
+"    \n"
+"    Tùy chọn:\n"
+"      -L\tin $PWD nếu nó chứa tên của thư mục hiện tại\n"
+"      -P\tin thư mục vật lý, không liên kết mềm\n"
+"    \n"
+"    Mặc định “pwd” chạy như có mặt “-L”.\n"
+"    \n"
+"    Trạng thái thoát:\n"
+"    Trả về 0 trừ khi đưa ra tùy chọn sai hoặc không đọc được thư mục hiện "
+"tại."
 
-#: builtins.c:431
+#: builtins.c:439
 msgid ""
 "Null command.\n"
 "    \n"
@@ -2692,25 +2715,25 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 "Câu lệnh vô giá trị.\n"
-"\n"
-"\tKhông có hiệu ứng: câu lệnh không làm gì.\n"
-"\n"
-"\tTrạng thái thoát:\n"
-"\tLúc nào cũng thành công."
+"    \n"
+"    Không có tác dụng gì: câu lệnh không làm gì cả.\n"
+"    \n"
+"    Trạng thái thoát:\n"
+"    Lúc nào cũng thành công."
 
-#: builtins.c:442
+#: builtins.c:450
 msgid ""
 "Return a successful result.\n"
 "    \n"
 "    Exit Status:\n"
 "    Always succeeds."
 msgstr ""
-"Trả lại một kết quả thành công.\n"
-"\n"
-"\tTrạng thái thoát:\n"
-"\tLúc nào cũng thành công."
+"Trả lại kết quả thành công.\n"
+"    \n"
+"    Trạng thái thoát:\n"
+"    Lúc nào cũng thành công."
 
-#: builtins.c:451
+#: builtins.c:459
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2718,11 +2741,11 @@ msgid ""
 "    Always fails."
 msgstr ""
 "Trả về kết quả không thành công.\n"
-"\n"
-"\tTrạng thái thoát:\n"
-"\tLúc nào cũng không thành công."
+"    \n"
+"    Trạng thái thoát:\n"
+"    Lúc nào cũng không thành công."
 
-#: builtins.c:460
+#: builtins.c:468
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
@@ -2740,24 +2763,23 @@ msgid ""
 "    Exit Status:\n"
 "    Returns exit status of COMMAND, or failure if COMMAND is not found."
 msgstr ""
-"Thực thi một câu lệnh đơn giản, hoặc hiển thị thông tin về các câu lệnh.\n"
+"Thực thi một lệnh đơn giản, hoặc hiển thị thông tin về lệnh.\n"
 "\n"
-"Chạy LỆNH với các ĐỐI_SỐ thu hồi chức năng dò tìm chức năng trình bao,\n"
-"hoạc hiển thị thông tin về các câu LỆNH được ghi rõ.\n"
-"Có thể được dùng để gọi câu lệnh trên đĩa khi đã có một chức năng cùng tên.\n"
+"    Chạy LỆNH với các ĐỐI-SỐ mà không thực hiện tra cứu hàm hệ vỏ,\n"
+"    hoặc hiển thị thông tin về LỆNH. Có thể được dùng để gọi lệnh trên\n"
+"    đĩa khi đã có hàm cùng tên.\n"
 "\n"
-"Tùy chọn:\n"
-"\t-p\tdùng một giá trị mặc định cho ĐƯỜNG_DẪN\n"
-"\t\tmà chắc chắn sẽ tìm mọi tiện ích tiêu chuẩn\n"
-"\t-v\tin ra mô tả về câu LỆNH mà tương tự với dựng sẵn « type » (kiểu)\n"
-"\t-V\tin ra mô tả chi tiết hơn về mỗi câu LỆNH\n"
+"    Tùy chọn:\n"
+"      -p\tdùng giá trị mặc định cho ĐƯỜNG_DẪN\n"
+"        \tmà chắc chắn sẽ tìm mọi tiện ích chuẩn\n"
+"      -v\tin mô tả về LỆNH mà tương tự như lệnh dựng sẵn “type”\n"
+"      -V\tin mô tả chi tiết hơn của mỗi LỆNH\n"
 "\n"
-"Trạng thái thoát:\n"
-"Trả lại trạng thái thoát của câu LỆNH, hoặc bị lỗi nếu không tìm thấy câu "
-"LỆNH."
+"    Trạng thái thoát:\n"
+"    Trả lại trạng thái thoát của LỆNH, hoặc thất bại nếu không tìm\n"
+"    thấy LỆNH."
 
-#: builtins.c:479
-#, fuzzy
+#: builtins.c:487
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2777,6 +2799,7 @@ msgid ""
 "      -A\tto make NAMEs associative arrays (if supported)\n"
 "      -i\tto make NAMEs have the `integer' attribute\n"
 "      -l\tto convert NAMEs to lower case on assignment\n"
+"      -n\tmake NAME a reference to the variable named by its value\n"
 "      -r\tto make NAMEs readonly\n"
 "      -t\tto make NAMEs have the `trace' attribute\n"
 "      -u\tto convert NAMEs to upper case on assignment\n"
@@ -2792,52 +2815,55 @@ msgid ""
 "    command.  The `-g' option suppresses this behavior.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is supplied or an error occurs."
+"    Returns success unless an invalid option is supplied or a variable\n"
+"    assignment error occurs."
 msgstr ""
-"Đặt các giá trị và thuộc tính của biến.\n"
-"\n"
-"\tTuyên bố mỗi biến và gán cho nó một số thuộc tính.\n"
-"\tKhông đưa ra TÊN thì hiển thị các thuộc tính và giá trị của mọi giá trị.\n"
-"\n"
-"\tTùy chọn:\n"
-"\t\t-f\thạn chế hành động, hoặc hiển thị đối với tên và mô tả của chức năng\n"
-"\t\t-F\thiển thị chỉ đối với tên chức năng\n"
-"\t\t\t(và số thứ tự dòng và tập tin nguồn khi gỡ lỗi)\n"
-"\t\t-p\thiển thị các thuộc tính và giá trị của mỗi TÊN\n"
-"\n"
-"\tTùy chọn cũng đặt thuộc tính:\n"
-"\t\t-a\tđặt TÊN là mảng theo số mũ (nếu được hỗ trợ)\n"
-"\t\t-A\tđặt TÊN là mảng kết hợp (nếu được hỗ trợ)\n"
-"\t\t-i\tđặt TÊN có thuộc tính « integer » (số nguyên)\n"
-"\t\t-l\tchuyển đổi TÊN sang chữ thường khi được gán\n"
-"\t\t-r\tđặt TÊN là chỉ đọc\n"
-"\t\t-t\tđặt TÊN có thuộc tính « trace » (theo vết)\n"
-"\t\t-u\tchuyển đổi TÊN sang chữ hoa khi được gán\n"
-"\t\t-x\tđặt TÊN xuất\n"
-"\n"
-"\tDùng « + » thay cho « - » thì tắt thuộc tính đưa ra.\n"
-"\n"
-"\tBiến có thuộc tính số nguyên thì định giá theo số học\n"
-"\t\t(xem câu lệnh « let ») khi biến có giá trị được gán.\n"
-"\n"
-"\tKhi dùng trong chức năng, « declare » (tuyên bố) đặt TÊN là cục bộ,\n"
-"\t\tnhư khi dùng câu lệnh « local » (cục bộ).\n"
-"\n"
-"\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại thành công nếu không đưa ra tùy chọn sai hoặc gặp lỗi."
-
-#: builtins.c:517
+"Đặt giá trị và thuộc tính biến.\n"
+"    \n"
+"    Khai báo biến và gán cho thuộc tính cho nó. Nếu không đưa TÊN thì\n"
+"    hiển thị thuộc tính và giá trị của mọi biến.\n"
+"    \n"
+"    Tùy chọn:\n"
+"      -f\thạn chế hành động hoặc hiển thị chỉ tên hàm và định nghĩa\n"
+"      -F\thạn chế hiển thị chỉ tên hàm mà thôi\n"
+"        \t(và số thứ tự dòng và tập tin nguồn khi gỡ lỗi)\n"
+"      -g\ttạo biến toàn cục khi sử dụng trong hàm hệ vỏ; nếu không\n"
+"        \tthì bị bỏ qua\n"
+"      -p\thiển thị thuộc tính và giá trị của mỗi TÊN\n"
+"    \n"
+"    Tùy chọn dùng để đặt thuộc tính:\n"
+"      -a\ttạo mảng chỉ số tên TÊN (nếu hỗ trợ)\n"
+"      -A\ttạo mảng kết hợp tên TÊN (nếu hỗ trợ)\n"
+"      -i\tđặt thuộc tính “integer” (số nguyên) cho TÊN\n"
+"      -l\tchuyển đổi TÊN sang chữ thường khi gán\n"
+"      -n\tlàm một TÊN tham chiếu đến biến có tên là giá trị của nó\n"
+"      -r\tlàm cho TÊN chỉ đọc\n"
+"      -t\tđặt thuộc tính “trace” cho TÊN\n"
+"      -u\tchuyển đổi TÊN sang chữ hoa khi gán\n"
+"      -x\txuất khẩu TÊN\n"
+"    \n"
+"    Dùng “+” thay cho “-” để tắt thuộc tính đưa ra.\n"
+"    \n"
+"    Biến có thuộc tính số nguyên thì định giá theo số học (xem lệnh\n"
+"    “let”. khi biến được gán.\n"
+"    \n"
+"    Khi dùng trong hàm, “declare” đặt TÊN là cục bộ, như khi dùng lệnh\n"
+"    “local” (cục bộ). Tùy chọn -g ngăn hành vi này.\n"
+"    \n"
+"    Trạng thái thoát:\n"
+"    Trả lại thành công trừ khi đưa ra tùy chọn sai hoặc gặp lỗi."
+
+#: builtins.c:527
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
 "    Obsolete.  See `help declare'."
 msgstr ""
-"Đặt các giá trị và thuộc tính của biến.\n"
+"Đặt giá trị và thuộc tính của biến.\n"
 "\n"
-"\tQuá cũ. Xem « help declare »."
+"    Lệnh này đã lạc hậu. Xem “help declare”."
 
-#: builtins.c:525
+#: builtins.c:535
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2848,27 +2874,28 @@ msgid ""
 "    only to the function where they are defined and its children.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is supplied, an error occurs,\n"
-"    or the shell is not executing a function."
+"    Returns success unless an invalid option is supplied, a variable\n"
+"    assignment error occurs, or the shell is not executing a function."
 msgstr ""
-"Xác định các biến cục bộ.\n"
-"\n"
-"\tTạo một biến cục bộ tên TÊN, và gán cho nó GIÁ_TRỊ.\n"
-"\tTÙY_CHỌN có thể là bất cứ tùy chọn nào được « declare » chấp nhận.\n"
-"\n"
-"\tBiến cục bộ chỉ dùng được bên trong chức năng;\n"
-"\t\tchỉ chức năng trong đó nó được xác định\n"
-"\t\t(và các chức năng con) có khả năng phát hiện nó.\n"
-"\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại thành công nếu không đưa ra tùy chọn sai hay gặp lỗi,\n"
-"\tvà nếu trình bao đang chạy chức năng."
+"Định nghĩa biến cục bộ.\n"
+"    \n"
+"    Tạo biến cục bộ tên TÊN và gán GIÁ-TRỊ cho nó. TÙY_CHỌN có thể là\n"
+"    bất cứ tùy chọn nào “declare” chấp nhận.\n"
+"    \n"
+"    Biến cục bộ chỉ dùng được bên trong hàm, chỉ truy cập được từ hàm\n"
+"    mà biến được định nghĩa và các hàm con.\n"
+"    \n"
+"    Trạng thái thoát:\n"
+"    Trả lại thành công trừ khi đưa ra tùy chọn sai hay gặp lỗi,\n"
+"    hoặc nếu hệ vỏ không chạy hàm."
 
-#: builtins.c:542
+#: builtins.c:552
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
-"    Display the ARGs on the standard output followed by a newline.\n"
+"    Display the ARGs, separated by a single space character and followed by "
+"a\n"
+"    newline, on the standard output.\n"
 "    \n"
 "    Options:\n"
 "      -n\tdo not append a newline\n"
@@ -2880,6 +2907,7 @@ msgid ""
 "      \\b\tbackspace\n"
 "      \\c\tsuppress further output\n"
 "      \\e\tescape character\n"
+"      \\E\tescape character\n"
 "      \\f\tform feed\n"
 "      \\n\tnew line\n"
 "      \\r\tcarriage return\n"
@@ -2894,34 +2922,34 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless a write error occurs."
 msgstr ""
-"Ghi các đối số vào đầu ra tiêu chuẩn.\n"
-"\n"
-"\tHiển thị các ĐỐI_SỐ trên đầu ra tiêu chuẩn,\n"
-"\t\tvới một ký tự dòng mới theo sau.\n"
-"\n"
-"\tTùy chọn:\n"
-"\t\t-n\tđừng phụ thêm ký tự dòng mới\n"
-"\t\t-e\tbật đọc ký tự thoát kiểu gạch chéo ngược mà theo sau\n"
-"\t\t-E\tthu hồi dứt khoát đọc ký tự thoát kiểu gạch chéo ngược\n"
-"\n"
-"\t« echo » đọc những ký tự thoát này kiểu gạch chéo ngược:\n"
-"\t\t\\a\tchuông báo\n"
-"\t\t\\b\txoá lùi\n"
-"\t\t\\c\tthu hồi kết xuất thêm nữa\n"
-"\t\t\\e\tký tự thoát\n"
-"\t\t\\f\tnạp giấy\n"
-"\t\t\\n\tdòng mới\n"
-"\t\t\\r\txuống dòng\n"
-"\t\t\\0nnn\tký tự có mã ASCII NNN (1-3 chữ số bát phân)\n"
-"\t\t\\xHH\tký tự 8-bit có giá trị HH (1-2 chữ số thập lục)\n"
-"\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại thành công nếu không gặp lỗi ghi.\t\t\\t\tkhoảng tab theo chiều "
-"ngang\n"
-"\t\t\\v\tkhoảng tab theo chiều dọc\n"
-"\t\t\\\\\tgạch chéo ngược"
-
-#: builtins.c:576
+"Ghi đối số vào đầu ra tiêu chuẩn.\n"
+"   \n"
+"    Hiển thị các ĐỐI-SỐ ra đầu ra tiêu chuẩn, kèm ký tự xuống hàng ở cuối.\n"
+"   \n"
+"    Tùy chọn:\n"
+"      -n\tđừng thêm ký tự xuống hàng\n"
+"      -e\tbật diễn dịch ký tự thoát theo sau ký tự “\\”\n"
+"      -E\tchặn diễn dịch ký tự thoát\n"
+"    \n"
+"    “echo” hiểu những ký tự thoát sau:\n"
+"      \\a\ttiếng chuông\n"
+"      \\b\txoá lùi\n"
+"      \\c\tchặn kết xuất tiếp\n"
+"      \\e\tký tự thoát\n"
+"      \\E\tký tự thoát\n"
+"      \\f\tnạp giấy\n"
+"      \\n\tdòng mới\n"
+"      \\r\txuống dòng\n"
+"      \\t\ttab đứng\n"
+"      \\v\ttab ngang\n"
+"      \\\\\tgạch ngược\n"
+"      \\0nnn\tký tự có mã ASCII NNN (1-3 chữ số bát phân)\n"
+"      \\xHH\tký tự 8-bit có giá trị HH (1-2 chữ số thập lục phân)\n"
+"    \n"
+"    Trạng thái thoát:\n"
+"    Trả lại thành công nếu không gặp lỗi khi ghi."
+
+#: builtins.c:588
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2933,17 +2961,17 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless a write error occurs."
 msgstr ""
-"Ghi các đối số vào đầu ra tiêu chuẩn\n"
+"Ghi đối số vào đầu ra chuẩn.\n"
 "\n"
-"\tHiển thị các ĐỐI_SỐ trên đầu ra tiêu chuẩn với một dòng mới theo sau.\n"
+"    Hiển thị ĐỐI-SỐ trên đầu ra chuẩn, kèm ký tự xuống hàng ở cuối.\n"
 "\n"
-"\tTùy chọn:\n"
-"\t\t-n\tđừng phụ thêm một dòng mới\n"
+"    Tùy chọn:\n"
+"      -n\tđừng thêm ký tự xuống hàng\n"
 "\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại thành công nếu không gặp lỗi ghi."
+"    Trạng thái thoát:\n"
+"    Trả lại thành công nếu không gặp lỗi ghi."
 
-#: builtins.c:591
+#: builtins.c:603
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2969,33 +2997,31 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless NAME is not a shell builtin or an error occurs."
 msgstr ""
-"Bật/tắt dựng sẵn trình bao.\n"
-"\b\tBật và tắt các dựng sẵn trình bao.\b\tChức năng tắt thì cho phép bạn "
-"thực thi một câu lệnh đĩa\n"
-"\tmà cùng tên với một dựng sẵn trình bao,\n"
-"\tkhông cần dùng tên đường dẫn đầy đủ.\n"
+"Bật và tắt lệnh hệ vỏ dựng sẵn.\n"
+"\n"
+"    Bật và tắt các lệnh hệ vỏ dựng sẵn. Chức năng tắt cho phép bạn\n"
+"    chạy một lệnh trên đĩa cùng tên với một lệnh hệ vỏ dựng sẵn mà\n"
+"    không cần dùng tên đường dẫn đầy đủ.\n"
 "\n"
-"\tTùy chọn:\n"
-"\t\t-a\tin ra một danh sách các dựng sẳn, cũng hiển thị trạng thái bật/tắt\n"
-"\t\t-b\ttắt mỗi TÊN hoặc hiển thị danh sách các dựng sẵn bị tắt\n"
-"\t\t-p\tin ra danh sách các dựng sẵn theo một định dạng có thể dùng lại "
-"được\n"
-"\t\t-s\tin ra chỉ tên mỗi dựng sẵn Posix « đặc biệt »\n"
+"    Tùy chọn:\n"
+"      -a    in danh sách các lệnh dựng sẵn kèm trạng thái bật/tắt\n"
+"      -n    tắt TÊN hoặc hiển thị danh sách lệnh bị tắt\n"
+"      -p    in danh sách lệnh dựng sẵn theo định dạng dùng lại được\n"
+"      -s    chỉ in tên các lệnh dựng sẵn Posix “đặc biệt”\n"
 "\n"
-"\tTùy chọn điều khiển chức năng nạp động:\n"
-"\t\t-f\tnạp dựng sẵn TÊN từ điều khiển dùng chung TÊN_TẬP_TIN\n"
-"\t\t-d\tgỡ bỏ một dựng sẵn được nạp dùng « -f »\n"
+"    Tùy chọn điều khiển chức năng nạp động:\n"
+"      -f    nạp lệnh dựng sẵn TÊN từ TẬP-TIN\n"
+"      -d    bỏ một dựng sẵn được nạp bằng “-f”\n"
 "\n"
-"\tKhông có tùy chọn thì mỗi TÊN được bật lại.\n"
+"    Không có tùy chọn thì coi như bật TÊN.\n"
 "\n"
-"\tĐể sử dụng « test » (hàm thử) nằm trên đường dẫn mặc định $PATH\n"
-"\tthay cho phiên bản của dựng sẵn trình bao,\n"
-"\thãy gõ chuỗi « enable -n test ».\n"
+"    Để sử dụng lệnh “test” trên đĩa (nếu tìm thấy trong $PATH) thay\n"
+"    cho phiên bản hệ vỏ dựng sẵn, gõ “enable -n test”.\n"
 "\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại thành công nếu TÊN là một dựng sẵn trình bao, và không gặp lỗi."
+"    Trạng thái thoát:\n"
+"    Trả lại thành công trừ khi TÊN không phải lệnh dựng sẵn hoặc gặp lỗi."
 
-#: builtins.c:619
+#: builtins.c:631
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
@@ -3006,17 +3032,15 @@ msgid ""
 "    Exit Status:\n"
 "    Returns exit status of command or success if command is null."
 msgstr ""
-"Thực thi các đối số dưới dạng một câu lệnh trình bao.\n"
+"Dùng các đối số để chạy lệnh hệ vỏ.\n"
 "\n"
-"\tPhối hợp các ĐỐI_SỐ thành một chuỗi riêng lẻ,\n"
-"\tdùng kết quả làm dữ liệu nhập vào trình bao,\n"
-"\tvà thực thi các câu lệnh kết quả.\n"
+"    Gộp các ĐỐI-SỐ thành một chuỗi đơn, dùng kết quả làm đầu vào cho\n"
+"    hệ vỏ và chạy lệnh đó.\n"
 "\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại trạng thái thoát của câu lệnh,\n"
-"\thay thành công nếu câu lệnh vô giá trị."
+"    Trạng thái thoát:\n"
+"    Trả lại trạng thái thoát của câu lệnh hay thành công nếu lệnh rỗng."
 
-#: builtins.c:631
+#: builtins.c:643
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -3056,53 +3080,43 @@ msgid ""
 "    Returns success if an option is found; fails if the end of options is\n"
 "    encountered or an error occurs."
 msgstr ""
-"Phân tích cú pháp của đối số tùy chọn.\n"
-"\n"
-"\tGetopts được thủ tục trình bao dùng để phân tích cú pháp\n"
-"\t\tcủa tham số thuộc ví trị dưới dạng tùy chọn.\n"
-"\n"
-"\tOPTSTRING chứa những chữ tùy chọn cần nhận ra;\n"
-"\tmột chữ có dấu hai chấm theo sau thì tùy chọn mong đợi một đối số,\n"
-"\tmà nên định giới bằng khoảng trắng.\n"
-"\n"
-"\tMỗi lần được gọi, getopts sẽ đặt tùy chọn kế tiếp\n"
-"\t\tvào biến trình bao $name\n"
-"\t\t(cũng khởi tạo tên đó nếu nó chưa tồn tại)\n"
-"\t\tvà đặt chỉ mục của đối số kế tiếp cần xử lý\n"
-"\t\tvào biến trình bao OPTIND.\n"
-"\tOPTIND được sơ khởi thành 1 mỗi lần trình bao\n"
-"\thay một văn lệnh trình bao được gọi.\n"
-"\tKhi một tùy chọn đòi hỏi một đối số,\n"
-"\tgetopts đặt đối số đó vào biến trình bao OPTARG.\n"
-"\n"
-"\tgetopts thông báo lỗi bằng một của hai cách.\n"
-"\tNếu ký tự đầu tiên của chuỗi OPTSTRING là dấu hai chấm,\n"
-"\tgetopts dùng chức năng thông báo lỗi một cách im.\n"
-"\tBằng chế độ này, không in ra thông điệp lỗi nào.\n"
-"\tNếu gặp tùy chọn sai thì getopts đặt vào OPTARG\n"
-"\tký tự tùy chọn được tìm. Không tìm thấy đối số cần thiết\n"
-"\tthì getopts đặt một dấu hai chấm vào TÊN\n"
-"\tvà đặt OPTARG thành ký tự tùy chọn được tìm.\n"
-"\tNếu getopts không phải ở chế độ im, và gặp tùy chọn sai,\n"
-"\tthì getopts đặt một dấu hỏi « ? » vào TÊN và bỏ đặt OPTARG.\n"
-"\tKhông tìm thấy tùy chọn cần thiết thì « ? » được đặt vào TÊN,\n"
-"\tOPTARG bị bỏ đặt, và in ra một thông điệp chẩn đoán.\n"
-"\n"
-"\tNếu biến trình bao OPTERR có giá trị 0,\n"
-"\tthì getopts tắt chức năng in ra thông điệp,\n"
-"\tthậm chí nếu ký tự đầu tiên của chuỗi OPTSTRING\n"
-"\tkhông phải là dấu hai chấm. OPTERR có giá trị 1 theo mặc định.\n"
-"\n"
-"Getopts bình thường phân tích cách tham số thuộc vị trí ($0 - $9),\n"
-"\tnhưng nếu đưa ra đối số bổ sung,\n"
-"\t(các) đối số này được phân tích để thay thế.\n"
-"\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại thành công nếu tìm thấy một tùy chọn;\n"
-"\tkhông thành công nếu gặp kết thúc các tùy chọn,\n"
-"\thoặc nếu gặp lỗi."
-
-#: builtins.c:673
+"Phân tích đối số tùy chọn.\n"
+"\n"
+"    Getopts được hệ vỏ dùng để phân tích tham số thành tuỳ chọn.\n"
+"\n"
+"    CHUỖI-TUỲ-CHỌN chứa những chữ tùy chọn cần nhận ra; một chữ có dấu hai\n"
+"    chấm theo sau thì tùy chọn cần đối số, cách tuỳ chọn bằng khoảng\n"
+"    trắng.\n"
+"\n"
+"    Mỗi lần gọi, getopts sẽ đặt tùy chọn kế tiếp vào biến hệ vỏ $TÊN,\n"
+"    tạo biến mới nếu tên đó chưa tồn tại, và đặt chỉ số của đối số kế\n"
+"    tiếp cần xử lý vào biến hệ vỏ OPTIND. OPTIND được khởi động bằng 1\n"
+"    mỗi lần hệ vỏ hay một văn lệnh hệ vỏ được gọi. Khi tùy chọn cần\n"
+"    đối số, getopts đặt đối số đó vào biến hệ vỏ OPTARG.\n"
+"\n"
+"    getopts thông báo lỗi bằng một trong hai cách. Nếu ký tự đầu tiên\n"
+"    của CHUỖI-TUỲ-CHỌN là dấu hai chấm, getopts thông báo lỗi im\n"
+"    lặng. Chế độ này không in ra thông báo nào. Nếu gặp tùy chọn sai\n"
+"    thì getopts lưu mã ký tự tuỳ chọn trong biến OPTARG. Không tìm\n"
+"    thấy đối số cần thiết thì getopts lưu dấu hai chấm trong biến $TÊN\n"
+"    và đặt lưu mã ký tự tuỳ chọn trong OPTARG. Nếu getopts không trong\n"
+"    chế độ im lặng và gặp tùy chọn sai, getopts lưu dấu hỏi “?”  vào\n"
+"    biến $TÊN và xoá OPTARG. Không tìm thấy tùy chọn cần thiết thì “?”\n"
+"    được lưu vào $TÊN, OPTARG bị xlá, và in ra một thông điệp chẩn\n"
+"    đoán.\n"
+"\n"
+"    Nếu biến hệ vỏ OPTERR có giá trị 0, getopts sẽ không in thông báo\n"
+"    kể cả khi ký tự đầu tiên của CHUỖI-TUỲ-CHỌN không phải dấu hai\n"
+"    chấm. OPTERR có giá trị mặc định là 1.\n"
+"\n"
+"    Getopts bình thường phân tích tham số vị trí ($0 - $9). Tuy nhiên,\n"
+"    các đối số bổ sung cũng được phân tích.\n"
+"\n"
+"    Trạng thái thoát:\n"
+"    Trả lại thành công nếu tìm thấy một tùy chọn; không thành công nếu\n"
+"    gặp kết thúc các tùy chọn, hoặc nếu gặp lỗi."
+
+#: builtins.c:685
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
@@ -3124,39 +3138,36 @@ msgid ""
 "    Returns success unless COMMAND is not found or a redirection error "
 "occurs."
 msgstr ""
-"Thay thế trình bao bằng câu lệnh đưa ra.\n"
+"Thay thế hệ vỏ bằng câu lệnh đưa ra.\n"
 "\n"
-"\tThực thi câu LỆNH, cũng thay thế trình bao này bằng chương trình được ghi "
-"rõ.\n"
-"\tCác ĐỐI_SỐ trở thành các đối số đối với câu LỆNH.\n"
-"\tKhông đưa ra câu LỆNH thì bất cứ việc chuyển hướng nào\n"
-"\tsẽ xảy ra trong trình bao đang chạy.\n"
+"    Thực thi LỆNH, thay thế hệ vỏ này bằng chương trình được chạy.\n"
+"    ĐỐI-SỐ là đối số của LỆNH. Không xác định LỆNH thì bất cứ chuyển\n"
+"    hướng nào sẽ xảy ra trong hệ vỏ đang chạy.\n"
 "\n"
-"\tTùy chọn:\n"
-"\t\t-a tên\tgửi TÊN cho câu LỆNH dưới dạng đối số thứ không\n"
-"\t\t-c\tthực thi câu LỆNH với một môi trường trống\n"
-"\t\t-l\tđặt một dấu gạch vào đối số thứ không đối với câu LỆNH\n"
+"    Tùy chọn:\n"
+"      -a TÊN\ttruyền TÊN cho LỆNH dạng đối số thứ không\n"
+"      -c\tthực thi LỆNH với một môi trường rỗng\n"
+"      -l\tđặt một dấu gạch vào đối số thứ không của LỆNH\n"
 "\n"
-"\tNếu câu LỆNH không thể thực thi được, một trình bao không tương tác\n"
-"\tsẽ thoát ra, nếu không đặt tùy chọn trình bao « execfail ».\n"
+"    Nếu LỆNH không thể thực thi, hệ vỏ không tương tác sẽ thoát, trừ\n"
+"    khi đặt tùy chọn hệ vỏ “execfail”.\n"
 "\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại thành công nếu tìm được câu LỆNH và không gặp lỗi chuyển hướng."
+"    Trạng thái thoát:\n"
+"    Trả lại thành công trừ khi không tìm được LỆNH hoặc gặp lỗi chuyển hướng."
 
-#: builtins.c:694
+#: builtins.c:706
 msgid ""
 "Exit the shell.\n"
 "    \n"
 "    Exits the shell with a status of N.  If N is omitted, the exit status\n"
 "    is that of the last command executed."
 msgstr ""
-"Thoát khỏi trình bao.\n"
+"Thoát hệ vỏ.\n"
 "\n"
-"\tThoát khỏi trình bao với trạng thái N.\n"
-"\tKhông đưa ra N thì trạng thái thoát\n"
-"\tlà trạng thái của câu lệnh cuối cùng được chạy."
+"    Thoát khỏi hệ vỏ với trạng thái N. Không xác định N thì trạng thái\n"
+"    thoát là trạng thái của lệnh cuối cùng được chạy."
 
-#: builtins.c:703
+#: builtins.c:715
 msgid ""
 "Exit a login shell.\n"
 "    \n"
@@ -3164,12 +3175,12 @@ msgid ""
 "executed\n"
 "    in a login shell."
 msgstr ""
-"Thoát khỏi một trình bao đăng nhập.\n"
+"Thoát hệ vỏ đăng nhập.\n"
 "\n"
-"\tThoát khỏi một trình bao đăng nhập, với trạng thái thoát N.\n"
-"\tTrả lại lỗi nếu không được thực thi trong trình bao đăng nhập."
+"   Thoát khỏi hệ vỏ đăng nhập với trạng thái N. Trả về lỗi nếu không\n"
+"   phải hệ vỏ đăng nhập."
 
-#: builtins.c:713
+#: builtins.c:725
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
@@ -3198,33 +3209,30 @@ msgid ""
 "    Returns success or status of executed command; non-zero if an error "
 "occurs."
 msgstr ""
-"Hiển thị hoặc thực thi các câu lệnh từ danh sách lược sử.\n"
-"\n"
-"\tfc được dùng để liệt kê hoặc chỉnh sửa và thực thi lại\n"
-"\tcâu lệnh từ danh sách lược sử.\n"
-"\tĐẦU và CUỐI có thể là số mà xác định phạm vi,\n"
-"hoặc ĐẦU có thể là một chuỗi đại diện câu lệnh\n"
-"\tvừa chạy nhất mà bắt đầu với chuỗi đó.\n"
-"\tTùy chọn:\n"
-"\t\t-e ENAME\tchọn trình soạn thảo nào cần dùng;\n"
-"\t\t\tmặc định là FCEDIT, sau đó EDITOR, sau đó vi\n"
-"\t\t-l\tliệt kê các dòng thay vào chỉnh sửa\n"
-"\t\t-n\tliệt kê mà không in ra số thứ tự dòng\n"
-"\t\t-r\tđảo ngược thứ tự các dòng (mới nhất trước)\n"
-"\n"
-"\tTùy theo định dạng « fc -s [mẫu=lần_lập_lại ...] [lệnh] »,\n"
-"\tcâu LỆNH được chạy lại sau khi thay thế CŨ bằng MỚI.\n"
-"\n"
-"\tCũng có thể sử dụng bí danh có ích « r='fc -s' »,\n"
-"\tvì thế việc gõ « r cc » sẽ chạy câu lệnh cuối cùng\n"
-"\tmà bắt đầu với « cc », và việc gõ « r »\n"
-"\tsẽ đơn giản chạy lại câu lệnh cuối cùng.\n"
-"\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại thành công hay trạng thái của câu lệnh được thực thi;\n"
-"\t\tgặp lỗi thì khác số không."
-
-#: builtins.c:743
+"Hiển thị hoặc thực thi lệnh từ lịch sử.\n"
+"\n"
+"    fc được dùng để liệt kê, chỉnh sửa và thực thi lại lệnh từ danh\n"
+"    sách lịch sử. ĐẦU và CUỐI có thể là số xác định phạm vi, hoặc ĐẦU\n"
+"    có thể là chuỗi chứa phần đầu lệnh chạy gần đây nhất.\n"
+"\n"
+"    Tùy chọn:\n"
+"      -e ENAME\tchọn trình soạn thảo nào cần dùng.\n"
+"        \tMặc định là FCEDIT, rồi EDITOR, rồi vi\n"
+"      -l\tliệt kê thay vì chỉnh sửa\n"
+"      -n\tliệt kê không in số thứ tự dòng\n"
+"      -r\tđảo ngược thứ tự các dòng (mới nhất trước)\n"
+"\n"
+"    Định dạng “fc -s [mẫu=lần_lập_lại ...] [lệnh]” được dùng để chạy\n"
+"    lại lệnh sau khi thay thế CŨ=MỚI.\n"
+"\n"
+"    Một bí danh hữu ích là r='.c -s' để có thể gõ “r cc” để chạy lệnh\n"
+"    cuối cùng bắt đầu bằng “cc” và gõ “r” để chạy lại lệnh cuối.\n"
+"\n"
+"    Trạng thái thoát:\n"
+"    Trả lại thành công hay trạng thái của câu lệnh được thực thi; gặp\n"
+"    lỗi thì khác số không."
+
+#: builtins.c:755
 msgid ""
 "Move job to the foreground.\n"
 "    \n"
@@ -3235,18 +3243,17 @@ msgid ""
 "    Exit Status:\n"
 "    Status of command placed in foreground, or failure if an error occurs."
 msgstr ""
-"Nâng công việc lên trước.\n"
+"Nâng công việc nền lên trước.\n"
 "\n"
-"\tNâng lên trước công việc được ĐẶC_TẢ_CÔNG_VIỆC đại diện,\n"
-"\tthì làm cho nó là công việc hiện thời.\n"
-"\tKhông đưa ra ĐẶC_TẢ_CÔNG_VIỆC\n"
-"\tthì dùng công việc hiện thời tùy theo trình bao.\n"
+"    Nâng lên trước công việc được xác định bởi đặc tả công việc ĐTCV\n"
+"    làm công việc hiện thời. Không có ĐTCV thì dùng công việc hiện\n"
+"    thời của hệ vỏ.\n"
 "\n"
-"\tTrạng thái thoát:\n"
-"\tTrạng thái của câu lệnh được nâng lên trước;\n"
-"\tgặp lỗi thì không thành công."
+"    Trạng thái thoát:\n"
+"    Trạng thái của câu lệnh được nâng lên trước; hoặc thất bại nếu xảy\n"
+"    ra lỗi."
 
-#: builtins.c:758
+#: builtins.c:770
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
@@ -3259,18 +3266,17 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
-"Gửi công việc ra sau.\n"
+"Chuyển công việc xuống chạy nền.\n"
 "\n"
-"\tGửi ra sau các công việc được mỗi ĐẶC_TẢ_CÔNG_VIỆC đại diện,\n"
-"\tnhư là công việc được bắt đầu với « & ».\n"
-"\tKhông đưa ra ĐẶC_TẢ_CÔNG_VIỆC\n"
-"\tthì dùng công việc hiện thời tùy theo trình bao.\n"
+"    Chuyển công việc xác định theo đặc tả công việc ĐTCV sang chạy\n"
+"    nền, như thể lệnh được chạy với “&”. Nếu không có ĐTCV, dùng công\n"
+"    việc hiện thời của hệ vỏ.\n"
 "\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại thành công nếu chức năng điều khiển công việc được bật\n"
-"\tvà không gặp lỗi."
+"    Trạng thái thoát:\n"
+"    Trả lại thành công nếu chức năng điều khiển công việc được bật và\n"
+"    không gặp lỗi."
 
-#: builtins.c:772
+#: builtins.c:784
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
@@ -3281,7 +3287,7 @@ msgid ""
 "    Options:\n"
 "      -d\t\tforget the remembered location of each NAME\n"
 "      -l\t\tdisplay in a format that may be reused as input\n"
-"      -p pathname\tuse PATHNAME is the full pathname of NAME\n"
+"      -p pathname\tuse PATHNAME as the full pathname of NAME\n"
 "      -r\t\tforget all remembered locations\n"
 "      -t\t\tprint the remembered location of each NAME, preceding\n"
 "    \t\teach location with the corresponding NAME if multiple\n"
@@ -3293,28 +3299,28 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless NAME is not found or an invalid option is given."
 msgstr ""
-"Nhớ hoặc hiển thị vị trí của chương trình.\n"
+"Nhớ hoặc hiển thị vị trí chương trình.\n"
 "\n"
-"\tXác định và ghi nhớ tên đường dẫn đầy đủ của mỗi TÊN câu lệnh.\n"
-"\tNếu không đưa ra đối số, hiển thị thông tin về các câu lệnh được ghi nhớ.\n"
+"    Xác định và ghi nhớ tên đường dẫn đầy đủ của mỗi TÊN câu lệnh.\n"
+"    Nếu không đưa ra đối số, hiển thị thông tin về các câu lệnh được\n"
+"    ghi nhớ.\n"
 "\n"
-"\tTùy chọn:\n"
-"\t\t-d\tquên vị trí được ghi nhớ của mỗi TÊN\n"
-"\t\t-l\thiển thị theo một định dạng có thể được dùng lại\n"
-"\t\t\tdưới dạng dữ liệu nhập vào\n"
-"\t\t-p tên_đường_dẫn\tdùng TÊN_ĐƯỜNG_DẪN là tên đường dẫn đầy đủ của TÊN\n"
-"\t\t-r\tquên mọi vị trí được ghi nhớ\n"
-"\t\t-t\tin ra vị trí được ghi nhớ của mỗi TÊN,\n"
-"\t\t\tcó nhiều TÊN thì cũng in ra TÊN tương ứng ở trước vị trí\n"
+"    Tùy chọn:\n"
+"      -d\t\tquên vị trí đã nhớ của TÊN\n"
+"      -l\t\thiển thị theo định dạng dùng lại làm đầu vào được\n"
+"      -p\tTÊN_ĐƯỜNG_DẪN\tdùng TÊN_ĐƯỜNG_DẪN là tên đường dẫn đầy đủ của TÊN\n"
+"      -r\t\tquên mọi vị trí đã nhớ\n"
+"      -t\t\tin vị trí đã nhớ của TÊN, in tên trước vị\n"
+"               trí nếu TÊN tương ứng với nhiều vị trí\n"
 "\n"
-"\tĐối số:\n"
-"\t\tTÊN\tmỗi TÊN được tìm theo đường dẫn mặc định $PATH,\n"
-"\t\tvà được thêm vào danh sách các câu lệnh được ghi nhớ.\n"
+"    Đối số:\n"
+"      TÊN\t\tmỗi TÊN được tìm trong $PATH và được thêm vào\n"
+"        \t\tdanh sách các câu lệnh được ghi nhớ.\n"
 "\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại thành công nếu tìm được TÊN và không đưa ra tùy chọn sai."
+"    Trạng thái thoát:\n"
+"    Trả lại thành công nếu tìm được TÊN và không đưa ra tùy chọn sai."
 
-#: builtins.c:797
+#: builtins.c:809
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -3335,27 +3341,25 @@ msgid ""
 "    Returns success unless PATTERN is not found or an invalid option is "
 "given."
 msgstr ""
-"Hiển thị thông tin về các câu lệnh dựng sẵn.\n"
+"Hiển thị thông tin về lệnh dựng sẵn.\n"
 "\n"
-"\tHiển thị bản tóm tắt ngắn về các câu lệnh dựng sẵn.\n"
-"\tNếu cũng ghi rõ MẪU thì in ra trợ giúp chi tiết\n"
-"\tvề tất cả các câu lệnh tương ứng với mẫu đó ;\n"
-"\tkhông thì in ra danh sách các chủ đề trợ giúp.\n"
+"    Hiển thị bản tóm tắt ngắn về các câu lệnh dựng sẵn.  Nếu cũng ghi\n"
+"    rõ MẪU thì in ra trợ giúp chi tiết về tất cả các câu lệnh tương\n"
+"    ứng với mẫu đó ; không thì in ra danh sách các chủ đề trợ giúp.\n"
 "\n"
-"\rTùy chọn:\n"
-"\t\t-d\txuất mô tả ngắn về mỗi chủ đề\n"
-"\t\t-m\thiển thị cách sử dụng theo định dạng\n"
-"\t\t\tkiểu trang hướng dẫn (man)\n"
-"\t\t-s\txuất chỉ một bản tóm tắt ngắn về cách sử dụng\n"
-"\t\t\tcho mỗi chủ đề tương ứng với MẪU\n"
+"    Tùy chọn:\n"
+"      -d\txuất mô tả ngắn về mỗi chủ đề\n"
+"      -m\thiệnn cách dùng theo định dạng trang hướng dẫn (man)\n"
+"      -s\txuất chỉ một bản tóm tắt cách dìng cho mỗi\n"
+"        \tchủ đề tương ứng với MẪU\n"
 "\n"
-"\tĐối số :\n"
-"\t\tMẪU\tmẫu ghi rõ một chủ đề trợ giúp\n"
+"    Đối số:\n"
+"      MẪU\tmẫu các định một chủ đề trợ giúp\n"
 "\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại thành công nếu tìm được MẪU và không đưa ra tùy chọn sai."
+"    Trạng thái thoát:\n"
+"    Trả lại thành công nếu tìm được MẪU và không đưa ra tùy chọn sai."
 
-#: builtins.c:821
+#: builtins.c:833
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -3388,41 +3392,40 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
-"Hiển thị hoặc thao tác danh sách lượd sử.\n"
+"Hiển thị hoặc thao tác danh sách lịch sử.\n"
 "\n"
-"\tHiển thị danh sách lược sử với các số thứ tự dòng,\n"
-"\tcũng đặt dấu sao « * » vào trước mỗi mục nhập bị sửa đổi.\n"
-"\tĐối số N thì liệt kê chỉ N mục nhập cuối cùng.\n"
+"    Hiển thị danh sách lịch sử kèm số dòng, “*” ở đầu dòng cho các mục\n"
+"    nhập bị sửa đổi. Đối số N thì liệt kê chỉ N mục tin cuối cùng.\n"
 "\n"
-"\tTùy chọn:\n"
-"\t\t-c\txoá sạch danh sách lược sử bằng cách xoá mọi mục nhập\n"
-"\t\t-d hiệu\txoá mục nhập lược sử ở hiệu này\n"
+"    Tùy chọn:\n"
+"      -c\txoá sạch danh sách lịch sử bằng cách xoá mọi mục tin\n"
+"      -d offset\txoá mục tin lịch sử ở vị trí tương đối này\n"
 "\n"
-"\t\t-a\tphụ thêm vào tập tin lư ợc sử các dòng lược sử từ phiên chạy này\n"
-"\t\t-n\tđọc mọi dòng lược sử chưa đọc từ tập tin lược sử\n"
-"\t\t-r\tđọc tư lược sử và phụ thêm nội dung vào lược sử\n"
-"\t\t-w\tghi lược sử hiện thời vào tập tin lược sử\n"
-"\t\t\tcũng phụ thêm vào danh sách lược sử\n"
+"      -a\tnối đuôi lịch sử từ phiên làm việc này vào tập tin\n"
+"        \tlịch sử.\n"
+"      -n\tđọc mọi dòng lịch sử chưa đọc từ tập tin lịch sử\n"
+"      -r\tđọc tập tin lịch sử và nối thêm vào danh sách lịch sử\n"
+"      -w\tghi lịch sử hiện thời vào tập tin lịch sử,\n"
+"        \tvào nối đuôi vào danh sách lịch sử\n"
 "\n"
-"\t\t-p\tmở rộng lược sử với mỗi ĐỐI_SỐ, và hiển thị kết quả\n"
-"\t\t\tmà không ghi nhớ nó vào danh sách lược sử\n"
-"\t\t-s\tphụ thêm các ĐỐI_SỐ vào danh sách lược sử\n"
-"\t\t\tdưới dạng một mục nhập riêng lẻ\n"
+"      -p\tkhai triển lịch sử với mỗi ĐỐI-SỐ và hiển thị kết quả\n"
+"        \tmà không lưu vào danh sách lịch sử\n"
+"      -s\tnối đuôi ĐỐI-SỐ vào danh sách lịch sử làm một mục đơn\n"
 "\n"
-"\tĐưa ra TÊN_TẬP_TIN thì nó được dùng làm tập tin lược sử.\n"
-"\tNếu không, và nếu $HISTFILE có giá trị, thì nó được dùng;\n"
-"\tnếu $HISTFILE không có giá trị thì dùng « ~/.bash_history ».\n"
+"    Nếu có TẬP-TIN thì nó được dùng làm tập tin lịch sử. Ngược\n"
+"    lại, nếu $HISTFILE có giá trị thì dùng; nếu $HISTFILE không có giá\n"
+"    trị thì dùng “~/.bash_history”.\n"
 "\n"
-"\tNếu biến $HISTTIMEFORMAT đã được đặt và có giá trị,\n"
-"\tthì giá trị đó được dùng làm chuỗi định dạng\n"
-"\tcho strftime(3) in ra nhãn thời gian tương ứng\n"
-"\tvới mỗi mục nhập lược sử được hiển thị.\n"
-"\tKhông thì không in ra nhãn thời gian.\n"
+"    Nếu biến $HISTTIMEFORMAT đã được đặt và khác rỗng, giá trị đó được\n"
+"    dùng làm chuỗi định dạng cho strftime(3) để in nhãn thời gian\n"
+"    tương ứng với mỗi mục tin lịch sử được hiển thị. Ngược lại không\n"
+"    in nhãn thời gian.\n"
 "\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại thành công nếu không gặp tùy chọn sai hay gặp lỗi."
+"    Trạng thái thoát:\n"
+"    Trả lại thành công nếu không gặp tùy chọn sai hay gặp lỗi."
 
-#: builtins.c:857
+#: builtins.c:869
+#, fuzzy
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -3431,7 +3434,7 @@ msgid ""
 "    \n"
 "    Options:\n"
 "      -l\tlists process IDs in addition to the normal information\n"
-"      -n\tlist only processes that have changed status since the last\n"
+"      -n\tlists only processes that have changed status since the last\n"
 "    \tnotification\n"
 "      -p\tlists process IDs only\n"
 "      -r\trestrict output to running jobs\n"
@@ -3447,26 +3450,25 @@ msgid ""
 msgstr ""
 "Hiển thị trạng thái của công việc.\n"
 "\n"
-"\tLiệt kê các công việc đang chạy.\n"
-"\tĐẶC_TẢ_CÔNG_VIỆC hạn chế kết xuất thành công việc đó.\n"
-"\tKhông đưa ra tùy chọn thì hiển thị trạng thái\n"
-"\tcủa mọi công việc đang chạy.\n"
+"    Liệt kê các công việc đang chạy. Đặc tả công việc ĐTCV hạn chế chỉ\n"
+"    hiện công việc đó thôi. Không có tùy chọn thì hiển thị trạng thái\n"
+"    của mọi công việc đang chạy.\n"
 "\n"
-"\tTùy chọn:\n"
-"\t\t-l\tliệt kê các mã số tiến trình, thêm vào thông tin bình thường\n"
-"\t\t-n\tliệt kê chỉ những tiến trình đã thay đổi trạng thái\n"
-"\t\t\tkể từ lần thông báo cuối cùng\n"
-"\t\t-s\thạn chế kết xuất thành những công việc bị dừng chạy\n"
+"    Tùy chọn:\n"
+"      -l\tliệt kê mã số tiến trình ngoài thông tin bình thường\n"
+"      -n\tliệt kê chỉ những tiến trình đã thay đổi trạng thái\n"
+"        \tkể từ lần thông báo cuối cùng\n"
+"      -s\tchỉ hiện những công việc đang dừng chạy\n"
 "\n"
-"\tĐưa ra « -x » thì câu LỆNH được chạy sau khi tất cả các đặc tả công việc\n"
-"\tmà xuất hiện trong các ĐỐI_SỐ đã được thay thế bằng mã số tiến trình\n"
-"\tcủa trình dẫn đầu nhóm tiến trình của công việc đó.\n"
+"    Nếu có “-x” thì chạy LỆNH sau khi thay thế tất cả đặc tả công việc\n"
+"    trên đối số bằng mã tiến trình của trình dẫn đầu nhóm tiến trình\n"
+"    của công việc đó.\n"
 "\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại thành công nếu không gặp tùy chọn sai hay gặp lỗi.\n"
-"\tĐưa ra « -x » thì trả lại trạng thái thoát của câu LỆNH."
+"    Trạng thái thoát:\n"
+"    Trả lại thành công nếu không gặp tùy chọn sai hay gặp lỗi.\n"
+"    Đưa ra “-x” thì trả lại trạng thái thoát của LỆNH."
 
-#: builtins.c:884
+#: builtins.c:896
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -3482,23 +3484,22 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option or JOBSPEC is given."
 msgstr ""
-"Gỡ bỏ công việc khỏi trình bao đang chạy.\n"
+"Bỏ công việc khỏi hệ vỏ đang chạy.\n"
 "\n"
-"\tGỡ bỏ mỗi đối số JOBSPEC (đặc tả công việc) khỏi bảng các công việc đang "
-"chạy.\n"
-"\tKhông có JOBSPEC thì trình bao dùng thông tin riêng về công việc đang đang "
-"chạy.\n"
+"    Gỡ bỏ công việc xác định bởi đặc tả công việc ĐTCV. Không có đối\n"
+"    số thì dùng công việc hiện thời của hệ vỏ.\n"
 "\n"
-"\tTùy chọn:\n"
-"\t\t-a\tgỡ bỏ mọi công việc nếu không đưa ra JOBSPEC\n"
-"\t\t-h\tđánh dấu mỗi JOBSPEC để không gửi tín hiệu ngưng kết nối SIGHUP\n"
-"\t\t\tcho công việc nếu trình bao nhận được SIGHUP\n"
-"\t\t-r\tgỡ bỏ chỉ những công việc đang chạy\n"
+"    Tùy chọn:\n"
+"      -a\tbỏ mọi công việc nếu không có ĐTCV\n"
+"      -h\tđánh dấu ĐTCV để không gửi tín hiệu SIGHUP\n"
+"        \tcho công việc khi hệ vỏ nhận được SIGHUP\n"
+"      -r\tchỉ bỏ những công việc đang chạy\n"
 "\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại thành công nếu không đưa ra tùy chọn sai hay JOBSPEC sai."
+"    Trạng thái thoát:\n"
+"    Trả lại thành công nếu không đưa ra tùy chọn sai hay\n"
+"    ĐTCV sai."
 
-#: builtins.c:903
+#: builtins.c:915
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -3519,29 +3520,26 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
-"Gửi một tín hiệu cho một công việc.\n"
-"\n"
-"\tGửi cho những tiến trình được mã số hay đặc tả công việc đại diện\n"
-"\ttín hiệu được SIGSPEC hay SIGNUM được đặt tên.\n"
-"\tKhông đưa ra SIGSPEC, cũng không đưa ra SIGNUM,\n"
-"\tthì giả sử SIGTERM.\n"
-"\n"
-"\tTùy chọn:\n"
-"\t\t-s TTH\tTTH là một tên tín hiệu\n"
-"\t\t-n STH\tSTH là một số thứ tự tín hiệu\n"
-"\t\t-l\tliệt kê các tên tín hiệu ;\n"
-"\t\t\tnếu có đối số theo sau « -l », thì giả sử mỗi đối số\n"
-"\t\t\tlà số thứ tự tin hiệu cho đó nên liệt kê tên\n"
-"\n"
-"\tKill là một dựng sẵn trình bao vì hai lý do :\n"
-"\tnó cho phép dùng mã số công việc thay cho mã số tiến trình,\n"
-"\tvà cho phép giết tiến trình nếu tới giới hạn số các tiến trình\n"
-"\tđược phép tạo.\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại thành công nếu không đưa ra tùy chọn sai hay gặp lỗi."
-
-#: builtins.c:926
-#, fuzzy
+"Gửi tín hiệu cho công việc.\n"
+"\n"
+"    Gửi tín hiệu xác định bởi SIGSPEC hoặc SIGNUM cho những tiến trình\n"
+"    xác định bởi PID hoặc JOBSPEC. Nếu không xác định cả SIGSPEC và\n"
+"    SIGNUM thì ngầm định SIGTERM.\n"
+"\n"
+"    Tùy chọn:\n"
+"      -s TTH\tTTH là tên tín hiệu\n"
+"      -n STH\tSTH là mã số tín hiệu\n"
+"      -l\tliệt kê tên tín hiệu; đối số sau “-l” nếu có được coi\n"
+"        \tlà mã số tín hiệu cần hiện tên\n"
+"\n"
+"    Kill là lệnh hệ vỏ dựng sẵn vì hai lý do: nó cho phép dùng mã số\n"
+"    công việc thay cho mã số tiến trình và cho phép giết tiến trình\n"
+"    đạt giới hạn số các tiến trình được phép tạo.\n"
+"\n"
+"    Trạng thái thoát:\n"
+"    Trả lại thành công nếu không đưa ra tùy chọn sai hay gặp lỗi."
+
+#: builtins.c:938
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
@@ -3587,46 +3585,45 @@ msgid ""
 msgstr ""
 "Định giá biểu thức số học.\n"
 "\n"
-"\tĐịnh giá mỗi ĐỐI_SỐ như là một biểu thức số học.\n"
-"\tViệc định giá xảy ra theo số nguyên có độ rộng cố định\n"
-"\tmà không kiểm tra có tràn chưa,\n"
-"\tdù trường hợp chia cho không được bắt và đặt cờ là một lỗi.\n"
-"\tTheo đây có danh sách các toán tử được nhóm lại\n"
-"\ttheo cấp các toán tử cùng quyền đi trước.\n"
-"\tDanh sách các cấp có thứ tự quyền đi trước giảm.\n"
-"\n"
-"\tid++, id--\tbiến đổi sau khi tăng/giảm dần\n"
-"\t++id, --id\tbiến đổi trước khi tăng/giảm dần\n"
-"\t-, +\ttrừ, cộng nguyên phân\n"
-"\t!, ~\tphủ định lôgic và theo vị trí bit\n"
-"\t**\tmũ hoá\n"
-"\t*, /, %\tphép nhân, phép chia, số dư\n"
-"\t+, -\tphép công, phép trừ\n"
-"\t<<, >>\tdời theo vị trí bit bên trái/phải\n"
-"\t<=, >=, <, >\tso sánh\n"
-"\t==, !=\t bất đẳng thức, đẳng thức\n"
-"\t&\tAND (và) theo vị trí bit\n"
-"\t^\tXOR (hoặc loại từ) theo vị trí bit\n"
-"\t||\tOR (hoặc) theo vị trí bit\n"
-"\tb_thức ? b_thức : b_thức\ttoán từ điều kiện\n"
-"\t=, *=, /=, %=, +=, -=, <<=, >>=, &=, ^=, |=\tgán\n"
-"\n"
-"\tCho phép biến trình bao dưới dạng toán hạng.\n"
-"\tTên của biến được thay thế bằng giá trị của nó\n"
-"\t(bị ép buộc thành một số nguyên rộng cố định)\n"
-"\tbên trong một biểu thức.\n"
-"\tBiến không cần có thuộc tính số nguyên được bật\n"
-"\tđể được dùng làm biểu thức.\n"
-"\n"
-"\tCác toán tử được định giá theo thứ tự quyền đi trước.\n"
-"\tCác biểu thức con nằm trong dấu ngoặc vẫn còn được định giá trước tiên,\n"
-"\tthì có quyền cao hơn các quy tắc đi trước bên trên.\n"
-"\n"
-"\tTrạng thái thoát:\n"
-"\tNếu ĐỐI_SỐ cuối cùng được định giá thành 0 thì let trả lại 1;\n"
-"\tkhông thì let trả lại 0."
-
-#: builtins.c:971
+"    Định giá mỗi ĐỐI-SỐ dạng biểu thức số học. Định giá theo số nguyên\n"
+"    có giới hạn, không kiểm tra tràn số, mặc dù có bẫy chia cho không\n"
+"    và bật cờ lỗi. Danh sách toán tử bên dưới được nhóm theo nhóm độ\n"
+"    ưu tiên ngang hàng. Danh sách theo độ ưu tiên giảm dần.\n"
+"\n"
+"    \tid++, id--\ttiền tiền/giảm\n"
+"    \t++id, --id\thậu gia/giảm\n"
+"    \t-, +\t\ttrừ, cộng (dấu)\n"
+"    \t!, ~\t\tphủ định lôgíc và trên bit\n"
+"    \t**\t\tsố mũ\n"
+"    \t*, /, %\t\tnhân, chia, số dư\n"
+"    \t+, -\t\tcộng, trừ\n"
+"    \t<<, >>\t\tdịch bit trái/phải\n"
+"    \t<=, >=, <, >\tso sánh\n"
+"    \t==, !=\t\tbằng, không bằng\n"
+"    \t&\t\tphép AND trên bit\n"
+"    \t^\t\tphép XOR trên bit\n"
+"    \t|\t\tphép OR trên bit\n"
+"    \t&&\t\tphép AND lôgíc\n"
+"    \t||\t\tphép OR lôgíc\n"
+"    \tBTHỨC ? BTHỨC : BTHỨC\n"
+"    \t\t\ttoán từ điều kiện\n"
+"    \t=, *=, /=, %=,\n"
+"    \t+=, -=, <<=, >>=,\n"
+"    \t&=, ^=, |=\tphép gán\n"
+"\n"
+"    Biến hệ vỏ có thể dùng làm toán hạng. Tên biến được thay thế bằng\n"
+"    giá trị biến (chuyển thành số nguyên) trong biểu thức. Biến không\n"
+"    cần có thuộc tính số nguyên để dùng làm biểu thức.\n"
+"\n"
+"    Các toán tử được định giá theo thứ tự ưu tiên. Các biểu thức con\n"
+"    nằm trong dấu ngoặc được định giá trước tiên, và có quyền cao hơn\n"
+"    các quy tắc đi trước bên trên.\n"
+"\n"
+"    Trạng thái thoát:\n"
+"    Nếu ĐỐI-SỐ cuối cùng được định giá thành 0 thì trả về 1; không thì\n"
+"    trả về 0."
+
+#: builtins.c:983
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
@@ -3661,62 +3658,63 @@ msgid ""
 "      -s\t\tdo not echo input coming from a terminal\n"
 "      -t timeout\ttime out and return failure if a complete line of input "
 "is\n"
-"    \t\tnot read withint TIMEOUT seconds.  The value of the TMOUT\n"
+"    \t\tnot read within TIMEOUT seconds.  The value of the TMOUT\n"
 "    \t\tvariable is the default timeout.  TIMEOUT may be a\n"
-"    \t\tfractional number.  If TIMEOUT is 0, read returns success only\n"
-"    \t\tif input is available on the specified file descriptor.  The\n"
+"    \t\tfractional number.  If TIMEOUT is 0, read returns immediately,\n"
+"    \t\twithout trying to read any data, returning success only if\n"
+"    \t\tinput is available on the specified file descriptor.  The\n"
 "    \t\texit status is greater than 128 if the timeout is exceeded\n"
 "      -u fd\t\tread from file descriptor FD instead of the standard input\n"
 "    \n"
 "    Exit Status:\n"
 "    The return code is zero, unless end-of-file is encountered, read times "
-"out,\n"
+"out\n"
+"    (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
-"Đọc một dòng từ đầu vào tiêu chuẩn, sau đó chia nó ra nhiều trường.\n"
-"\n"
-"\tĐọc một dòng riêng lẻ từ đầu vào tiêu chuẩn,\n"
-"\thoặc từ bộ mô tả tập tin FD nếu đưa ra tùy chọn « -u ».\n"
-"\tDòng được chia ra nhiều trường giống như khi chia từ ra,\n"
-"\tvà từ đầu tiên được gán cho TÊN đầu tiên,\n"
-"\ttừ thứ hai cho TÊN thứ hai, v.v.,\n"
-"\tvà từ còn lại nào được gán cho TÊN cuối cùng.\n"
-"\tChỉ những ký tự được tìm trong $IFS được nhận ra là ký tự định giới từ.\n"
-"\n"
-"\tKhông đưa ra TÊN thì dòng được đọc sẽ được ghi nhớ vào biến REPLY (đáp "
-"ứng).\n"
-"\n"
-"\tTùy chọn:\n"
-"\t\t-a mảng\tgán các từ được đọc cho những số mũ tuần tự\n"
-"\t\t\tcủa biến mảng MẢNG, bắt đầu từ số không.\n"
-"\t\t-d định_giới\ttiếp tục đến khi đọc ký tự đầu tiên của DELIM,\n"
-"\t\t\thơn là ký tự dòng mới\n"
-"\t\t-e\tdùng Readline để lấy dòng trong một trình bao tương tác\n"
-"\t\t-i chuỗi\tdùng chuỗi này như là văn bản đầu tiên cho Readline\n"
-"\t\t-n số_ky_tự\ttrả lại sau khi đọc số các ký tự này,\n"
-"\t\t\thơn là đợi một ký tự dòng mới\n"
-"\t\t-N số_ký_tự\ttrả lại chỉ sau khi đọc chính xác số các ký tự này,\n"
-"\t\tnếu không gặp kết thúc tập tin (EOF) hay quá hạn đọc, cũng bỏ qua dấu "
-"tách nào\n"
-"\t\t-p nhắc\txuất chuỗi NHẮC mà không có ký tự dòng mới theo sau,\n"
-"\t\t\ttrước khi thử đọc\n"
-"\t\t-r\tđừng cho phép gạch chéo ngược thoát ký tự\n"
-"\t\t-s\tđừng báo lai dữ liệu nhập vào đến từ thiết bị cuối\n"
-"\t\t-t thời_hạn\tquá thời và trả lại không thành công\n"
-"\t\t\tnếu chưa đọc một dòng dữ liệu nhập hoàn toàn trong số giấy này.\n"
-"\t\t\tGiá trị của biến TMOUT là thời hạn mặc định.\n"
-"\t\t\tThời hạn này có thể là một số thuộc phân số.\n"
-"\t\t\tNếu THỜI_HẠN là 0 thì việc đọc trả lại thành công chỉ nếu\n"
-"\t\t\tdữ liệu nhập sẵn sàng trên bộ mô tả tập tin đưa ra.\n"
-"\t\t\tTrạng thái thoát lớn hơn 128 nếu vượt quá thời hạn này.\n"
-"\t\t-u fd\tđọc từ bộ mô tả tập tin FD thay cho đầu vào tiêu chuẩn\n"
-"\n"
-"\tTrạng thái thoát:\n"
-"\tMã trả lại là số không, nếu không gặp kết thúc tập tin,\n"
-"\thay quá hạn đọc, hay đưa ra bộ mô tả tập tin sai\n"
-"\tlàm đối số tới « -u »."
-
-#: builtins.c:1014
+"Đọc một dòng từ đầu nhập chuẩn và tách ra nhiều trường.\n"
+"\n"
+"    Đọc một dòng từ đầu nhập chuẩn, hoặc từ bộ mô tả tập tin FD nếu\n"
+"    dùng tùy chọn “-u”. Dòng được chia ra nhiều trường, trường đầu\n"
+"    tiên được gán cho biến TÊN đầu tiên, từ thứ hai cho TÊN thứ hai,\n"
+"    v.v., và từ còn lại nào được gán cho TÊN cuối cùng. Chỉ những ký\n"
+"    tự trong $IFS được coi là ký tự phân cách.\n"
+"\n"
+"    Không có TÊN thì dòng được đọc sẽ lưu vào biến REPLY.\n"
+"\n"
+"    Tùy chọn:\n"
+"      -a MẢNG\tlưu các trường vào biến mảng chỉ số MẢNG theo thứ tự,\n"
+"        \tbắt đầu từ không.\n"
+"      -d DELIM\ttiếp tục đến khi đọc ký tự đầu tiên của DELIM thay\n"
+"    \t\tvì ký tự xuống dòng\n"
+"      -e\t\tdùng Readline để lấy dòng trong hệ vỏ tương tác\n"
+"      -i CHUỖI\tdùng CHUỖI làm văn bản đầu tiên cho Readline\n"
+"      -n nChữ\ttrả về sau khi đọc số lượng ký tự này thay vì đọc hết dòng\n"
+"    \t\tnhưng nếu gặp chuỗi phân tách khi ít hơn Nchữ\n"
+"    \t\tcác ký tự được đọc trước chuỗi phân tách\n"
+"      -N N\ttrả về chỉ sau khi đọc chính xác số lượng ký tự này,\n"
+"        \tnếu không gặp kết thúc tập tin (EOF) hay quá hạn đọc,\n"
+"        \tcũng bỏ qua dấu tách nào\n"
+"      -p NHẮC\txuất chuỗi NHẮC mà không có ký tự dòng mới theo sau,\n"
+"        \ttrước khi đọc\n"
+"      -r\tkhông cho phép gạch chéo ngược để thoát ký tự\n"
+"      -s\tkhông hiện lại dữ liệu nhập đến từ thiết bị cuối\n"
+"      -t\tTHỜI_GIAN_CHỜ\n"
+"        \tthời gian chờ tối đa và trả vềi không thành công nếu chưa đọc một\n"
+"        \tdòng dữ liệu nhập hoàn toàn trong số giây này. Giá trị\n"
+"        \tcủa biến TMOUT là thời hạn mặc định.  Thời hạn này có\n"
+"        \tthể là một phân số. Nếu THỜI_HẠN là 0 thì việc đọc trả\n"
+"        \tlại thành công chỉ nếu dữ liệu nhập sẵn sàng trên bộ\n"
+"        \tmô tả tập tin đưa ra. Trạng thái thoát lớn hơn 128\n"
+"        \tnếu vượt quá thời hạn này.\n"
+"      -u FD\tđọc từ bộ mô tả tập tin FD thay cho đầu vào tiêu chuẩn\n"
+"\n"
+"    Trạng thái thoát:\n"
+"    Mã trả lại là số không, nếu không gặp kết thúc tập tin, hay chờ quá\n"
+"    lâu, hoặc đưa ra bộ mô tả tập tin sai làm đối số cho “-u”."
+
+#: builtins.c:1028
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3727,19 +3725,17 @@ msgid ""
 "    Exit Status:\n"
 "    Returns N, or failure if the shell is not executing a function or script."
 msgstr ""
-"Trả lại từ má»\99t chức nÄ\83ng trình bao.\n"
+"Trá»\9f vá»\81 từ hàm há»\87 vá»\8f.\n"
 "\n"
-"\tGây ra một chức năng hay văn lệnh từ nguồn sẽ thoát\n"
-"\tvới giá trị trả lại được N ghi rõ.\n"
-"\tKhông đưa ra N thì trạng thái trả lại thuộc về câu lệnh cuối cùng\n"
-"\t\tđược chạy bên trong chức năng hay văn lệnh.\n"
+"    Thoát hàm hệ vỏ hoặc văn lệnh được “source” với mã trả về xác định\n"
+"    bởi N. Nếu không có N, trạng thái thoát là của lệnh thực hiện cuối\n"
+"    cùng trong hàm/văn lệnh.\n"
 "\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại N, hoặc bị lỗi nếu trình bao không đang chạy\n"
-"\t\tmột chức năng hay văn lệnh."
+"    Trạng thái thoát:\n"
+"    Trả lại N, hoặc bị lỗi nếu hệ vỏ không đang chạy một hàm hay văn\n"
+"    lệnh."
 
-#: builtins.c:1027
-#, fuzzy
+#: builtins.c:1041
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -3805,7 +3801,7 @@ msgid ""
 "      -E  If set, the ERR trap is inherited by shell functions.\n"
 "      -H  Enable ! style history substitution.  This flag is on\n"
 "          by default when the shell is interactive.\n"
-"      -P  If set, do not follow symbolic links when executing commands\n"
+"      -P  If set, do not resolve symbolic links when executing commands\n"
 "          such as cd which change the current directory.\n"
 "      -T  If set, the DEBUG trap is inherited by shell functions.\n"
 "      --  Assign any remaining arguments to the positional parameters.\n"
@@ -3823,89 +3819,94 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given."
 msgstr ""
-"Đặt hay bỏ đặt giá trị của tùy chọn trình bao và tham số thuộc vị trí.\n"
-"\n"
-"\tSửa đổi giá trị của thuộc tính trình bao và tham số thuộc vị trí,\n"
-"\thoặc hiển thị tên và giá trị của biến trình bao.\n"
-"\n"
-"\tTùy chọn:\n"
-"\t\t-a\tđánh dấu các biến được tạo hay sửa đổi để xuất ra\n"
-"\t\t-b\tthông báo ngay về công việc bị chấm dứt\n"
-"\t\t-e\tthoát ngay nếu câu lệnh thoát với trạng thái khác số không\n"
-"\t\t-f\ttắt chức năng tạo tên tập tin (glob)\n"
-"\t\t-h\tnhớ vị trí của mỗi câu lệnh khi nó được dò tìm\n"
-"\t\t-k\tmọi đối số gán được đặt vào môi trường cho một câu lệnh,\n"
-"\t\t\tkhông phải chỉ những đối số nằm trước tên câu lệnh\n"
-"\t\t-m\tbật chức năng điều khiển công việc\n"
-"\t\t-n\tđọc câu lệnh mà không thực thi\n"
-"\t\t-o tên_tùy_chọn\tđặt biến tương ứng với tùy chọn này:\n"
-"\t\t\t• allexport\tbằng -a\n"
-"\t\t\t• braceexpand\tbằng -B\n"
-"\t\t\t• emacs\tdùng một giao diện chỉnh sửa dòng kiểu emacs\n"
-"\t\t\t• errexit\tbằng -e\n"
-"\t\t\t• errtrace\tbằng -E\n"
-"\t\t\t• functrace\tbằng -T\n"
-"\t\t\t• hashall\tbằng -h\n"
-"\t\t\t• histexpand\tbằng -H\n"
-"\t\t\t• history\tbật lược sử câu lệnh\n"
-"\t\t\t• ignoreeof\ttrình bao sẽ không thoát khi đọc ký tự kết thúc tập tin\n"
-"\t\t\t• interactive-comments\tcho phép ghi chú trong câu lệnh tương tác\n"
-"\t\t\t• keyword\tbằng -k\n"
-"\t\t\t• monitor\tbằng -m\n"
-"\t\t\t• noclobber\tbằng -C\n"
-"\t\t\t• noexec\tbằng -n\n"
-"\t\t\t• noglob\tbằng -f\n"
-"\t\t\t• nolog\thiện thời được chấp nhận nhưng bị bỏ qua\n"
-"\t\t\t• notify\tbằng -b\n"
-"\t\t\t• nounset\tbằng -u\n"
-"\t\t\t• onecmd\tbằng -t\n"
-"\t\t\t• physical\tbằng -P\n"
-"\t\t\t• pipefail\tgiá trị trả lại của một ống dẫn\n"
-"\t\t\t\tlà trạng thái của câu lệnh cuối cùng\n"
-"\t\t\t\tthoát với trạng thái khác số không,\n"
-"\t\t\t\thay số không nếu không có câu lệnh\n"
-"\t\t\t\tthoát với trạng thái khác số không\n"
-"\t\t\t• posix\tthay đổi ứng xử của bash\n"
-"\t\t\t\tmà thao tác mặc định khác với tiêu chuẩn Posix,\n"
-"\t\t\t\tđể tùy theo tiêu chuẩn\n"
-"\t\t\t• privileged\tbằng -p\n"
-"\t\t\t• verbose\tbằng -v\n"
-"\t\t\t• vi\tdùng một giao diện chỉnh sửa kiểu vi\n"
-"\t\t\t• xtrace\tbằng -x\n"
-"\t\t-p\tbật khi nào mã số thật và mã số có kết quả\n"
-"\t\t\tkhông tương ứng với nhau.\n"
-"\t\t\tTắt tính năng xử lý tập tin $ENV\n"
-"\t\t\tvà nhập chức năng trình bao.\n"
-"\t\t\tViệc tắt tùy chọn này thì gêy ra UID và GID có kết quả\n"
-"\t\t\tđược đặt thành UID và GID thật.\n"
-"\t\t-t\tthoát sau khi đọc và thực thi một câu lệnh\n"
-"\t\t-u\txử lý biến chưa đặt là lỗi khi thay thế\n"
-"\t\t-v\tin ra mỗi dòng nhập vào trình bao khi nó được đọc\n"
-"\t\t-x\tin ra mỗi câu lệnh và đối số tương ứng\n"
-"\t\t\tkhi nó được thực thi\n"
-"\\t-B\ttrình bao sẽ mở rộng các dấu ngoặc móc\n"
-"\t\t-C\tđặt thì không cho phép ghi đề lên tập tin bình thường\n"
-"\t\t\tđã tồn tại bằng cách chuyển hướng kết xuất\n"
-"\t\t-E\tđặt thì bẫy ERR được chức năng trình bao kế thừa\n"
-"\t\t-H\tbật chức năng thay thế kiểu !\n"
-"\t\t\tCờ này được đặt theo mặc định khi trình bao tương tác\n"
-"\t\t-P\tđặt thì không theo liên kết tượng trưng\n"
-"\t\t\tkhi thực thi câu lệnh như cd mà chuyển đổi thư mục hiện tại\n"
-"\t\t-T\tđặt thì bẩy DEBUG (gỡ lỗi) được chức năng trình bao kế thừa\n"
-"\t\t-\tgán bất cứ đối số còn lại nào cho những tham số thuộc vị trí.\n"
-"\t\t\tHai tùy chọn « -x » và « -v » đều bị tắt.\n"
-"\n"
-"\tViệc dùng « + » hơn là « - » thì gây ra các cờ này bị tắt.\n"
-"\tCác cờ cũng có thể được dùng khi gọi trình bao.\n"
-"\tCũng có thể tìm thấy tập cờ hiện thời trong « $- ».\n"
-"\tCác đối số còn lại là tham số thuộc vị trí,\n"
-"\tvà được gán (theo thứ tự) cho $1, $2, .. $n.\n"
-"\tKhông đưa ra đối số thì in ra mọi biến trình bao.\n"
-"\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại thành công nếu không gặp tùy chọn sai."
-
-#: builtins.c:1112
+"Đặt hay huỷ giá trị của tùy chọn hệ vỏ và tham số vị trí.\n"
+"    \n"
+"    Sửa đổi giá trị của thuộc tính hệ vỏ và tham số vị trí,\n"
+"    hoặc hiển thị tên và giá trị của biến hệ vỏ.\n"
+"    \n"
+"    Tùy chọn:\n"
+"      -a  Đánh dấu các biến được tạo hay sửa đổi để xuất ra\n"
+"      -b  Thông báo ngay về công việc bị chấm dứt\n"
+"      -e  Thoát ngay nếu câu lệnh thoát với trạng thái khác số không\n"
+"      -f  Tắt chức năng tạo tên tập tin (glob)\n"
+"      -h  Nhớ vị trí của mỗi câu lệnh khi nó được dò tìm\n"
+"      -k  Mọi đối số gán được đặt vào môi trường cho một câu lệnh,\n"
+"           không phải chỉ những đối số nằm trước tên câu lệnh\n"
+"      -m  Bật chức năng điều khiển công việc\n"
+"      -n  Đọc câu lệnh mà không thực thi\n"
+"      -o TÊN_TÙY_CHỌN\n"
+"          Đặt biến tương ứng với TÊN_TÙY_CHỌN:\n"
+"                    allexport       giống -a\n"
+"                    braceexpand     giống -B\n"
+"                    emacs           dùng giao diện soạn thảo kiểu emacs\n"
+"                    errexit         giống -e\n"
+"                    errtrace        giống -E\n"
+"                    functrace       giống -T\n"
+"                    hashall         giống -h\n"
+"                    histexpand      giống -H\n"
+"                    history         bật lịch sử câu lệnh\n"
+"                    ignoreeof       hệ vỏ không thoát khi đọc EOF\n"
+"                    interactive-comments\n"
+"                                    cho phép ghi chú trong lệnh tương tác\n"
+"                    keyword         giống -k\n"
+"                    monitor         giống -m\n"
+"                    noclobber       giống -C\n"
+"                    noexec          giống -n\n"
+"                    noglob          giống -f\n"
+"                    nolog           hiện thời chấp nhận nhưng bỏ qua\n"
+"                    notify          giống -b\n"
+"                    nounset         giống -u\n"
+"                    onecmd          giống -t\n"
+"                    physical        giống -P\n"
+"                    pipefail        giá trị trả lại của ống dẫn là\n"
+"                                    trạng thái của câu lệnh cuối cùng\n"
+"                                    có trạng thái khác không, hoặc số\n"
+"                                    không nếu không có câu lệnh thoát\n"
+"                                    với trạng thái khác không\n"
+"                    posix           thay đổi những thao tác khác với\n"
+"                                    Posix thành tuân theo Posix\n"
+"                    privileged      giống -p\n"
+"                    verbose         giống -v\n"
+"                    vi              dùng giao diện soạn thảo kiểu vi\n"
+"                    xrace           giống -x\n"
+"        -p      Bật khi nào mã số thật và mã số có kết quả\n"
+"                không tương ứng với nhau.\n"
+"                Tắt tính năng xử lý tập tin $ENV\n"
+"                và nhập các hàm vào hệ vỏ.\n"
+"                Việc tắt tùy chọn này thì gây ra uid và gid có kết quả\n"
+"                được đặt thành uid và gid thật.\n"
+"        -t      Thoát sau khi đọc và thực thi một câu lệnh\n"
+"        -u      Xử lý biến chưa đặt là lỗi khi thay thế\n"
+"        -v      In ra mỗi dòng nhập vào hệ vỏ khi nó được đọc\n"
+"        -x      On ra mỗi câu lệnh và đối số tương ứng khi nó được thực thi\n"
+"        -B      hệ vỏ sẽ mở rộng các dấu ngoặc móc\n"
+"        -C      Nếu đặt thì không cho phép ghi đè lên tập tin bình thường\n"
+"                đã tồn tại bằng cách chuyển hướng kết xuất\n"
+"        -E      Nếu đặt thì bẫy ERR được chức năng hệ vỏ kế thừa\n"
+"        -H       Bật! bật chức năng thay thế kiểu. Cờ này được bật\n"
+"                theo mặc định khi hệ vỏ tương tác\n"
+"        -P      Đặt thì không theo liên kết mềm\n"
+"                khi thực thi câu lệnh như cd mà chuyển đổi thư mục hiện tại\n"
+"        -T      Nếu đặt thì bẫy DEBUG (gỡ lỗi) được các hàm của hệ vỏ kế "
+"thừa\n"
+"        --      Gán bất cứ đối số còn lại nào cho những tham số thuộc vị "
+"trí.\n"
+"                Nếu không còn thừa lại đối số nào, tham số vị trí\n"
+"                ìm kiếm được đặt.\n"
+"        -       Gán bất cứ đối số còn lại nào cho những tham số thuộc vị "
+"trí.\n"
+"                Hai tùy chọn -x và -v đều bị tắt.\n"
+"    \n"
+"    Việc dùng + thay - làm tắt cờ. Các cờ cũng có thể được dùng khi\n"
+"    gọi hệ vỏ. Giá trị các cờ hiện hành có thể tìm thấy trong biến\n"
+"    $-. Các đối số còn lại là tham số thuộc vị trí, và được gán (theo\n"
+"    thứ tự) cho $1, $2, .. $n.  Không đưa ra đối số thì in ra mọi biến\n"
+"    shell.\n"
+"    \n"
+"    Trạng thái thoát:\n"
+"    Trả lại thành công trừ phi gặp tùy chọn sai."
+
+#: builtins.c:1126
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3914,6 +3915,8 @@ msgid ""
 "    Options:\n"
 "      -f\ttreat each NAME as a shell function\n"
 "      -v\ttreat each NAME as a shell variable\n"
+"      -n\ttreat each NAME as a name reference and unset the variable itself\n"
+"    \trather than the variable it references\n"
 "    \n"
 "    Without options, unset first tries to unset a variable, and if that "
 "fails,\n"
@@ -3924,21 +3927,25 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or a NAME is read-only."
 msgstr ""
-"Bỏ đặt giá trị và thuộc tính của biến và chức năng của trình bao.\n"
-"\n"
-"\tĐối với mỗi TÊN, gỡ bỏ biến hay chức năng mà tương ứng.\n"
-"\n"
-"\tTùy chọn:\n"
-"\t\t-f\tđọc mỗi TÊN dượi dạng một chức năng trình bao\n"
-"\t\t-v\tđọc mỗi TÊN dượi dạng một biến trình bao\n"
-"\n"
-"\tKhông có tùy chọn thì chức năng bỏ đặt sẽ thử bỏ đặt một biến,\n"
-"\tvà nếu không thành công, sau đó thử bỏ đặt một chức năng.\n"
-"\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại thành công nếu không đưa ra tùy chọn sai, và TÊN không chỉ đọc."
+"Xoá giá trị và thuộc tính biến và hàm hệ vỏ.\n"
+"    \n"
+"    Đối với mỗi TÊN, gỡ bỏ biến hay hàm tương ứng.\n"
+"    \n"
+"    Tùy chọn:\n"
+"      -f\tđọc TÊN dạng hàm hệ vỏ\n"
+"      -v\tđọc TÊN dạng biến hệ vỏ\n"
+"      -n\tcoi TÊN như là tên tham chiếu và bỏ đặt biến tự tham chiếu\n"
+"    \n"
+"    Không có tùy chọn thì sẽ thử xoá biến, và nếu không thành công,\n"
+"    sau đó thử xoá hàm.\n"
+"    \n"
+"    Một số biến không thể gỡ bỏ; nên xem “readonly”.\n"
+"    \n"
+"    \n"
+"    Trạng thái thoát:\n"
+"    Trả lại thành công nếu không đưa ra tùy chọn sai hay TÊN chỉ-đọc."
 
-#: builtins.c:1132
+#: builtins.c:1148
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
@@ -3956,23 +3963,22 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
-"Đặt thuộc tính xuất khẩu cho biến trình bao.\n"
+"Đặt thuộc tính xuất khẩu cho biến hệ vỏ.\n"
 "\n"
-"\tĐánh dấu mỗi TÊN để tự động xuất vào môi trường của câu lệnh được chạy về "
-"sau.\n"
-"\tĐưa ra GIÁ_TRỊ thì gán GIÁ_TRỊ trước khi xuất ra.\n"
+"    Đánh dấu TÊN để tự động xuất vào môi trường của các lệnh được chạy\n"
+"    sau đó. Có GIÁ-TRỊ thì gán GIÁ-TRỊ trước khi xuất ra.\n"
 "\n"
-"\tTùy chọn:\n"
-"\t\t-f\ttham chiếu đến chức năng trình bao\n"
-"\t\t-n\tgỡ bỏ thuộc tính xuất khẩu khỏi mỗi TÊN\n"
-"\t\t-p\thiển thị danh sách các biến và chức năng đều được xuất ra\n"
+"    Tùy chọn:\n"
+"      -f\ttham chiếu đến hàm hệ vỏ\n"
+"      -n\tgỡ bỏ thuộc tính xuất khẩu khỏi TÊN\n"
+"      -p\thiển thị danh sách các biến và hàm được xuất ra\n"
 "\n"
-"\tĐối số « -- » thì tắt chức năng xử lý tùy chọn sau nữa.\n"
+"    Đối số “--” ngừng phân tích tuỳ chọn cho các tham số còn lại.\n"
 "\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại thành công nếu không đưa ra tùy chọn sai hay TÊN sai,"
+"    Trạng thái thoát:\n"
+"    Trả lại thành công nếu không đưa ra tùy chọn hay TÊN sai,"
 
-#: builtins.c:1151
+#: builtins.c:1167
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3984,31 +3990,34 @@ msgid ""
 "      -a\trefer to indexed array variables\n"
 "      -A\trefer to associative array variables\n"
 "      -f\trefer to shell functions\n"
-"      -p\tdisplay a list of all readonly variables and functions\n"
+"      -p\tdisplay a list of all readonly variables or functions, depending "
+"on\n"
+"            whether or not the -f option is given\n"
 "    \n"
 "    An argument of `--' disables further option processing.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
-"Đánh dấu biến trình bao không thể thay đổi được.\n"
+"Đánh dấu biến hệ vỏ là không thể thay đổi.\n"
 "\n"
-"\tĐánh dấu mỗi TÊN là chỉ đọc; những giá trị của TÊN như vậy\n"
-"\tthì không thay đổi được bất chấp việc gán theo sau.\n"
-"\tĐưa ra GIÁ_TRỊ thì gán GIÁ_TRỊ trước khi đánh dấu là chỉ đọc.\n"
+"    Đánh dấu TÊN là chỉ đọc; giá trị những biến này không được thay\n"
+"    đổi trong các phép gán sau. Nếu có GIÁ-TRỊ thì gán GIÁ-TRỊ trước\n"
+"    khi đánh dấu là chỉ đọc.\n"
 "\n"
-"\tTùy chọn:\n"
-"\t\t-a\ttham chiếu đến biến kiểu mảng theo số mũ\n"
-"\t\t-A\ttham chiếu đến biến kiểu mảng kết hợp\n"
-"\t\t-f\ttham chiếu đến chức năng trình bao\n"
-"\t\t-p\thiển thị danh sách các biến và chức năng vẫn chỉ đọc\n"
+"    Tùy chọn:\n"
+"      -a\ttham chiếu đến biến kiểu mảng chỉ số\n"
+"      -A\ttham chiếu đến biến kiểu mảng kết hợp\n"
+"      -f\ttham chiếu đến hàm hệ vỏ\n"
+"      -p\thiển thị danh sách biến và hàm chỉ đọc, tùy thuộc vào\n"
+"          có tùy chọn -f hay không\n"
+" \n"
+"    Đối số “--” ngừng phân tích tuỳ chọn cho các tham số còn lại.\n"
 "\n"
-"\tĐối số « -- » thì tắt chức năng xử lý tùy chọn sau nữa.\n"
-"\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại thành công nếu không đưa ra tùy chọn sai hay TÊN sai."
+"    Trạng thái thoát:\n"
+"    Trả lại thành công nếu không đưa ra tùy chọn sai hay TÊN sai."
 
-#: builtins.c:1172
+#: builtins.c:1189
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -4018,15 +4027,15 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless N is negative or greater than $#."
 msgstr ""
-"Dá»\9di tham sá»\91 thuá»\99c vá»\8b trí.\n"
+"Dá»\8bch vá»\8b trí Ä\91á»\91i sá»\91.\n"
 "\n"
-"\tThay đổi tên của tham số thuộc vị trí $N+1,$N+2 ... đến $1,$2 ...\n"
-"\tKhông đưa ra N thì giả sử nó là 1.\n"
+"    Thay đổi tên của đối số vị trí $N+1,$N+2 ... thành $1,$2 ...\n"
+"    N là 1 nếu không chỉ định.\n"
 "\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại thành công nếu N không âm hay lớn hơn $#."
+"    Trạng thái thoát:\n"
+"    Trả lại thành công trừ khi N âm hay lớn hơn $#."
 
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1201 builtins.c:1216
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -4039,21 +4048,17 @@ msgid ""
 "    Returns the status of the last command executed in FILENAME; fails if\n"
 "    FILENAME cannot be read."
 msgstr ""
-"Thực thi các câu lệnh từ một tập tin trong trình bao đang chạy.\n"
+"Thực thi lệnh từ tập tin trong hệ vỏ hiện tại.\n"
 "\n"
-"\tĐọc và thực thi các câu lệnh từ TÊN_TẬP_TIN\n"
-"\ttrong trình bao đang chạy.\n"
-"\tNhững mục nhập trong $PATH được dùng\n"
-"\tđể tìm thư mục chứa tên tập tin này.\n"
-"\tĐưa ra đối số thì mỗi đối số trở thành tham số thuộc vị trí\n"
-"\tkhi TÊN_TẬP_TIN được thực thi.\n"
+"    Đọc và thực thi lệnh từ TẬP-TIN trong hệ vỏ đang chạy. $PATH được\n"
+"    dùng để tìm thư mục chứa tập tin này. Nếu có đối số thì mỗi đối số\n"
+"    trở thành tham số vị trí khi TẬP-TIN được thực thi.\n"
 "\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại trạng thái của câu lệnh cuối cùng được thực thi trong "
-"TÊN_TẬP_TIN;\n"
-"\tkhông thành công nếu không thể đọc TÊN_TẬP_TIN."
+"    Trạng thái thoát:\n"
+"    Trả lại trạng thái của câu lệnh cuối cùng được thực thi trong\n"
+"    TẬP-TIN; không thành công nếu không thể đọc TẬP-TIN."
 
-#: builtins.c:1215
+#: builtins.c:1232
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -4066,20 +4071,19 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
-"Ngưng chạy trình bao.\n"
+"Ngưng chạy hệ vỏ.\n"
 "\n"
-"\tNgưng chạy trình bao này đến khi nó nhận tín hiệu tiếp tục (SIGCONT).\n"
-"\tNếu không ép buộc thì không thể ngưng chạy trình bao kiểu đăng nhập.\n"
+"    Ngưng chạy hệ vỏ này đến khi nhận tín hiệu SIGCONT. Nếu không ép\n"
+"    buộc thì không thể ngưng chạy hệ vỏ đăng nhập.\n"
 "\n"
-"\tTùy chọn:\n"
-"\t\t-f\tép buộc việc ngưng, thậm chí nếu trình bao có kiểu đăng nhập\n"
+"    Tùy chọn:\n"
+"    \t-f\tbuộc ngưng, thậm chí với hệ vỏ đăng nhập\n"
 "\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại thành công nếu chức năng điều khiển công việc đã được bật, và "
-"không gặp lỗi."
+"    Trạng thái thoát:\n"
+"    Trả lại thành công trừ khi chức năng điều khiển công việc không\n"
+"    được bật hoặc gặp lỗi."
 
-#: builtins.c:1231
-#, fuzzy
+#: builtins.c:1248
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4144,6 +4148,8 @@ msgid ""
 "    \n"
 "      -o OPTION      True if the shell option OPTION is enabled.\n"
 "      -v VAR\t True if the shell variable VAR is set\n"
+"      -R VAR\t True if the shell variable VAR is set and is a name "
+"reference.\n"
 "      ! EXPR         True if expr is false.\n"
 "      EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.\n"
 "      EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.\n"
@@ -4160,85 +4166,83 @@ msgid ""
 "    false or an invalid argument is given."
 msgstr ""
 "Định giá biểu thức điều kiện.\n"
-"\n"
-"Thoát với trạng thái 0 (đúng) hoặc 1 (sai), phụ thuộc vào phép tính B_THỨC.\n"
-"Biểu thức kiểu nguyên phân hoặc nhị phân cũng được.\n"
-"Biểu thức nguyên phân thường dùng để kiểm tra trạng thái của tập tin.\n"
-"Cũng có đối số chuỗi, và toán tử so sánh thuộc số.\n"
+"    \n"
+"    Thoát với trạng thái 0 (đúng) hoặc 1 (sai), tuỳ kết quả định giá\n"
+"    BTHỨC. Biểu thức có thể kiểu một ngôi hoặc hai ngôi. Biểu thức\n"
+"    một ngôi thường dùng để kiểm tra trạng thái tập tin. Ngoài ra còn\n"
+"    có toán tử chuỗi và so sánh số.\n"
+"    \n"
+"    Hành vi của lệnh test phụ thuộc vào số đối số. Đọc sổ tay hướng dẫn của\n"
+"    bash để có mô tả đầy đủ.\n"
 "    \n"
 "    Toán tử tập tin:\n"
 "    \n"
-"        -a TẬP_TIN        Đúng nếu tập tin có phải tồn tại.\n"
-"        -b TẬP_TIN        Đúng nếu tập tin là đặc biệt về khối.\n"
-"        -c TẬP_TIN        Đúng nếu tập tin là đặc biệt về ký tự.\n"
-"        -d TẬP_TIN        Đúng nếu tập tin là một thư mục.\n"
-"        -e TẬP_TIN        Đúng nếu tập tin có phải tồn tại.\n"
-"        -f TẬP_TIN        Đúng nếu tập tin có phải tồn tại\n"
-"\t\t\t\t\tcũng là một tập tin bình thường.\n"
-"        -g TẬP_TIN        Đúng nếu tập tin là set-group-id (đặt mã số "
-"nhóm).\n"
-"        -h TẬP_TIN        Đúng nếu tập tin là một liên kết tượng trưng.\n"
-"        -L TẬP_TIN        Đúng nếu tập tin là một liên kết tượng trưng.\n"
-"        -k TẬP_TIN        Đúng nếu tập tin có bit « dính » được đặt.\n"
-"        -p TẬP_TIN        Đúng nếu tập tin là một ống dẫn đặt tên.\n"
-"        -r TẬP_TIN        Đúng nếu tập tin cho bạn đọc được.\n"
-"        -s TẬP_TIN        Đúng nếu tập tin có phải tồn tại và không phải "
-"rỗng.\n"
-"        -S TẬP_TIN        Đúng nếu tập tin là một ổ cắm.\n"
-"        -t FD          Đúng nếu FD (bộ mô tả tập tin) được mở trên thiết bị "
-"cuối.\n"
-"        -u TẬP_TIN        Đúng nếu tập tin is set-user-id.\n"
-"        -w TẬP_TIN        Đúng nếu tập tin cho bạn ghi vào được.\n"
-"        -x TẬP_TIN        Đúng nếu tập tin cho bạn thực hiện được.\n"
-"        -O TẬP_TIN        Đúng nếu tập tin được bạn sở hữu một cách hiệu "
-"quả.\n"
-"        -G TẬP_TIN        Đúng nếu tập tin được nhóm của bạn sở hữu\n"
-"\t\t\t\t\tmột cách hiệu quả.\n"
-"        -N TẬP_TIN        Đúng nếu tập tin đã bị sửa đổi kể từ lần đọc cuối "
-"cùng.\n"
-"    \n"
-"      TẬP_TIN1 -nt TẬP_TIN2  Đúng nếu tập tin 1 mới hơn tập tin 2\n"
-"\t\t(tùy theo ngày sửa đổi)\n"
-"    \n"
-"      TẬP_TIN1 -ot TẬP_TIN2  Đúng nếu tập tin 1 cũ hơn tập tin 2.\n"
-"    \n"
-"      TẬP_TIN1 -ef TẬP_TIN2  Đúng nếu tập tin 1 là một liên kết cứng\n"
-"\t\t\t\t\t\ttới tập tin 2.\n"
+"      -a TẬP-TIN       Đúng nếu tập tin tồn tại.\n"
+"      -b TẬP-TIN       Đúng nếu tập tin là biệt khối.\n"
+"      -c TẬP-TIN       Đúng nếu tập tin là đặc biệt ký tự.\n"
+"      -d TẬP-TIN       Đúng nếu tập tin là thư mục.\n"
+"      -e TẬP-TIN       Đúng nếu tập tin tồn tại.\n"
+"      -f TẬP-TIN       Đúng nếu tập tin tồn tại và là tập tin thường\n"
+"      -g TẬP-TIN       Đúng nếu tập tin là set-group-id.\n"
+"      -h TẬP-TIN       Đúng nếu tập tin là liên kết mềm.\n"
+"      -L TẬP-TIN       Đúng nếu tập tin là liên kết mềm.\n"
+"      -k TẬP-TIN       Đúng nếu tập tin có bit “sticky”.\n"
+"      -p TẬP-TIN       Đúng nếu tập tin là ống dẫn có tên.\n"
+"      -r TẬP-TIN       Đúng nếu tập tin đọc được (bởi bạn).\n"
+"      -s TẬP-TIN       Đúng nếu tập tin tồn tại và khác rỗng.\n"
+"      -S TẬP-TIN       Đúng nếu tập tin là socket.\n"
+"      -t FD            Đúng nếu FD được mở trên thiết bị cuối.\n"
+"      -u TẬP-TIN       Đúng nếu tập tin là set-user-id.\n"
+"      -w TẬP-TIN       Đúng nếu tập tin ghi được (bởi bạn).\n"
+"      -x TẬP-TIN       Đúng nếu tập tin chạy được (bởi bạn).\n"
+"      -O TẬP-TIN       Đúng nếu tập tin thực tế được bạn sở hữu.\n"
+"      -G TẬP-TIN       Đúng nếu tập tin thực tế được nhóm của bạn sở hữu.\n"
+"      -N TẬP-TIN       Đúng nếu tập tin đã bị sửa đổi từ lần đọc cuối.\n"
+"    \n"
+"      TẬP-TIN1 -nt TẬP-TIN2\n"
+"                       Đúng nếu tập tin 1 mới hơn tập tin 2 (dựa theo\n"
+"                       ngày sửa đổi)\n"
+"    \n"
+"      TẬP-TIN1 -ot TẬP-TIN2\n"
+"                       Đúng nếu tập tin 1 cũ hơn tập tin 2.\n"
+"    \n"
+"      TẬP-TIN1 -ef TẬP-TIN2\n"
+"                       Đúng nếu tập tin 1 là liên kết cứng tới tập tin 2.\n"
 "    \n"
 "    Toán tử chuỗi:\n"
 "    \n"
-"        -z CHUỖI      Đúng nếu chuỗi rỗng.\n"
+"      -z CHUỖI         Đúng nếu chuỗi rỗng.\n"
 "    \n"
-"        -n CHUỖI\n"
-"        CHUỖI         Đúng nếu chuỗi không rỗng.\n"
+"      -n CHUỖI\n"
+"      CHUỖI            Đúng nếu chuỗi khác rỗng.\n"
 "    \n"
-"        CHUỖI1 = CHUỖI2\t\tĐúng nếu hai chuỗi trùng nhau.\n"
-"        CHUỖI1 != CHUỖI2\tĐúng nếu hai chuỗi khác nhau.\n"
-"        CHUỖI1 < CHUỖI2\t\tĐúng nếu CHUỖI1 sắp xếp đằng trước CHUỖI2\n"
-"\t\t\t\t\t\ttheo thứ tự từ điển.\n"
-"        CHUỖI1 > CHUỖI2\t\tĐúng nếu CHUỖI1 sắp xếp đằng sau CHUỖI2\n"
-"\t\t\t\t\t\ttheo thứ tự từ điển.\n"
+"      CHUỖI1 = CHUỖI2  Đúng nếu hai chuỗi trùng nhau.\n"
+"      CHUỖI1 != CHUỖI2 Đúng nếu hai chuỗi khác nhau.\n"
+"      CHUỖI1 < CHUỖI2  Đúng nếu CHUỖI1 xếp trước CHUỖI2 theo thứ tự từ "
+"điển.\n"
+"      CHUỖI1 > CHUỖI2  Đúng nếu CHUỖI1 xếp sau CHUỖI2 theo thứ tự từ điển.\n"
 "    \n"
 "    Toán tử khác:\n"
 "    \n"
-"        -o TÙY_CHỌN      Đúng nếu tùy chọn trình bao này đã được bật.\n"
-"        ! B_THỨC         Đúng nếu biểu thức này không đúng.\n"
-"        B_THỨC1 -a B_THỨC2 \t\tĐúng nếu cả hai biểu thức này là đúng.\n"
-"        B_THỨC1 -o B_THỨC2 \t\tĐúng nếu một của hai biểu thức này là đúng.\n"
+"      -o TÙY_CHỌN      Đúng nếu tùy chọn hệ vỏ này được bật.\n"
+"      -v BIẾN          Đúng nếu BIẾN được đặt\n"
+"      -R BIẾN          Đúng nếu BIẾN được đặt là là tham chiếu tên.\n"
+"      ! BTHỨC          Đúng nếu biểu thức này không đúng.\n"
+"      BTHỨC1 -a BTHỨC2  Đúng nếu cả hai biểu thức là đúng.\n"
+"      BTHỨC1 -o BTHỨC2  Đúng nếu một của hai biểu thức đúng.\n"
 "    \n"
-"        đối_số1 OP đối_số2   \t\tPhép thử số học. OP là một của:\n"
-"\t\t-eq\t\tbằng\n"
-"\t\t-ne\t\tkhông bằng\n"
-"             \t-lt\t\tnhỏ hơn\n"
-"\t\t-le\t\tnhỏ hơn hoặc bằng\n"
-"\t\t-gt\t\tlớn hơn\n"
-"\t\t-ge\t\tlớn hơn hoặc bằng\n"
+"      ĐỐI-SỐ1 OP ĐỐI-SỐ2\n"
+"                       Phép thử số học. OP là một trong -eq, -ne,\n"
+"                       -lt, -le, -gt, or -ge.\n"
+"    \n"
+"    Phép toán số học hai ngôi trả về đúng nếu ĐỐI-SỐ1 bằng, khác, nhỏ\n"
+"    hơn, nhỏ hơn hoặc bằng, lớn hơn, lớn hơn hoặc bằng ĐỐI-SỐ2.\n"
 "\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại thành công nếu B_THỨC định giá thành Đúng;\n"
-"\tkhông thành công nếu B_THỨC định giá thành Sai hay đưa ra đối số sai."
+"    Trạng thái thoát:\n"
+"    Trả lại thành công nếu BTHỨC định giá là Đúng; không thành công\n"
+"    nếu BTHỨC định giá thành Sai hay đối số được chỉ ra sai."
 
-#: builtins.c:1311
+#: builtins.c:1329
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4246,12 +4250,11 @@ msgid ""
 "    be a literal `]', to match the opening `['."
 msgstr ""
 "Định giá biểu thức điều kiện.\n"
-"\n"
-"\tĐây là một từ đồng nghĩa với dựng sẵn « test »,\n"
-"\tnhưng đối số cuối cùng phải là một « ] » nghĩa chữ,\n"
-"\tđổ tương ứng với « [ » mở."
+"    \n"
+"    Lệnh này cùng chức năng lệnh dựng sẵn \"test\", nhưng đối số cuối\n"
+"    cùng phải là ký tự “]” để khớp với “[” ở đầu."
 
-#: builtins.c:1320
+#: builtins.c:1338
 msgid ""
 "Display process times.\n"
 "    \n"
@@ -4264,14 +4267,13 @@ msgid ""
 msgstr ""
 "Hiển thị thời lượng chạy tiến trình.\n"
 "\n"
-"\tIn ra thời lượng chạy trình bao (và các tiến trình con)\n"
-"\t\tđối với hệ thống và mỗi người dùng.\n"
+"    In thời lượng chạy ở mức người dùng và hệ thống của hệ vỏ và các\n"
+"    tiến trình con.\n"
 "\n"
-"\tTrạng thái thoát:\n"
-"\tLúc nào cũng thành công."
+"    Trạng thái thoát:\n"
+"    Lúc nào cũng thành công."
 
-#: builtins.c:1332
-#, fuzzy
+#: builtins.c:1350
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
@@ -4314,42 +4316,41 @@ msgid ""
 "    Returns success unless a SIGSPEC is invalid or an invalid option is "
 "given."
 msgstr ""
-"Bắt các tín hiệu và dữ kiện khác.\n"
-"\n"
-"\tXác định và kích hoạt các bộ xử lý cần chạy khi trình bao\n"
-"\tnhận được tín hiệu hay điều kiện khác.\n"
-"\n"
-"\tĐỐI_SỐ là một câu lệnh cần đọc và thực thi khi trình bao\n"
-"\tnhận được (các) tín hiệu ĐẶC_TẢ_TÍN_HIỆU.\n"
-"\tNếu không đưa ra ĐỐI_SỐ\n"
-"\t(và cung cấp chỉ một ĐẶC_TẢ_TÍN_HIỆU riêng lẻ),\n"
-"\thoặc đưa ra « - », mỗi tín hiệu được ghi rõ\n"
-"\tthì được đặt lại về giá trị gốc.\n"
-"\tNếu ĐỐI_SỐ là chuỗi vô giá trị\n"
-"\tthì mỗi ĐẶC_TẢ_TÍN_HIỆU bị bỏ qua\n"
-"\tbởi trình bao và những câu lệnh nó gọi.\n"
-"\n"
-"\tNếu đưa ra một ĐẶC_TẢ_TÍN_HIỆU là EXIT (0),\n"
-"\tthì ĐỐI_SỐ được thực thi khi thoát khỏi trình bao.\n"
-"\tNếu đưa ra một ĐẶC_TẢ_TÍN_HIỆU là DEBUG,\n"
-"\tĐỐI_SỐ được thực thi đằng trước mỗi câu lệnh đơn giản.\n"
-"\n"
-"\tTùy chọn:\n"
-"\t\t-l\tin ra danh sách các tên tín hiệu và số thứ tự tương ứng\n"
-"\t\t-p\thiển thị các câu lệnh bắt tương ứng với mỗi ĐẶC_TẢ_TÍN_HIỆU\n"
-"\n"
-"\tMỗi ĐẶC_TẢ_TÍN_HIỆU là hoặc một tên tín hiệu trong <signal.h>,\n"
-"\thoặc một số thứ tự tín hiệu.\n"
-"\tTên tín hiệu không phân biệt chữ hoa/thường,\n"
-"\tvà không bắt buộc phải dùng tiền tố « SIG ».\n"
-"\tCó thể gửi cho trình bao một tín hiệu,\n"
-"\tdùng « kill -signal $$ ».\n"
-"\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại thành công nếu không đưa ra ĐẶC_TẢ_TÍN_HIỆU sai\n"
-"\thay tùy chọn sai."
-
-#: builtins.c:1368
+"Bẫy tín hiệu và sự kiện khác.\n"
+"\n"
+"    Định nghĩa và kích hoạt các bộ xử lý khi hệ vỏ nhận được tín hiệu\n"
+"    hay các điều kiện khác.\n"
+"\n"
+"    ĐỐI-SỐ là một lệnh cần đọc và thực thi khi hệ vỏ nhận được tín\n"
+"    hiệu theo đặc tả tín hiệu ĐTTH. Nếu không có ĐỐI-SỐ (và chỉ cung\n"
+"    cấp một ĐTTH), hoặc cung cấp “-”. mỗi tín hiệu được xác định thì\n"
+"    được đặt lại về giá trị gốc. Nếu ĐỐI-SỐ là chuỗi rỗng thì mỗi ĐTTH\n"
+"    bị hệ vỏ và những lệnh bên trong bỏ qua.\n"
+"\n"
+"    Nếu ĐTTH là EXIT (0) thì ĐỐI-SỐ được thực thi khi thoát\n"
+"    khỏi hệ vỏ. Nếu là DEBUG, ĐỐI-SỐ được thực thi trước mỗi lệnh đơn\n"
+"    giản. Nếu là RETURN, ĐỐI-SỐ được thực thi mỗi khi hàm hệ vỏ hay\n"
+"    một văn lệnh, được chạy bởi lệnh “.” hoặc “source”. kết thúc thực\n"
+"    thi. ĐTTH ERR nghĩa là thực thi ĐỐI-SỐ mỗi khi lệnh gặp\n"
+"    lỗi dẫn đến thoát hệ vỏ khi bật tùy chọn -e.\n"
+"    \n"
+"    Nếu không có đối số, “trap” sẽ in danh sách của các lệnh gắn với\n"
+"    các tín hiệu.\n"
+"    \n"
+"    Tùy chọn:\n"
+"      -l\tin danh sách tên tín hiệu và mã số tương ứng\n"
+"      -p\thiển thị lệnh bắt tương ứng với mỗi ĐTTH\n"
+"\n"
+"    Mỗi ĐTTH hoặc là tên tín hiệu trong <signal.h>, hoặc mã\n"
+"    số tín hiệu. Tên tín hiệu không phân biệt chữ hoa/thường, và không\n"
+"    bắt buộc phải dùng tiền tố SIG. Có thể gửi tín hiệu cho hệ vỏ bằng\n"
+"    \"kill -signal $$\".\n"
+"\n"
+"    Trạng thái thoát:\n"
+"    Trả lại thành công trừ phi đưa ra ĐTTH sai hay tùy chọn\n"
+"    sai."
+
+#: builtins.c:1386
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -4378,37 +4379,34 @@ msgid ""
 "    Returns success if all of the NAMEs are found; fails if any are not "
 "found."
 msgstr ""
-"Hiển thị thông tin về kiểu câu lệnh.\n"
-"\n"
-"\tĐối với mỗi TÊN, ngụ ý nó sẽ được giải thích như thế nào\n"
-"\t\tnếu nó được dùng dưới dạng một tên câu lệnh.\n"
-"\n"
-"\tTùy chọn:\n"
-"\t\t-a\thiển thị mọi vị trí chứa tập tin thực thi được có TÊN;\n"
-"\t\t\tkhông đặt tùy chọn « -p » thì cũng bao gồm\n"
-"\t\t\tcác bí danh, dựng sẵn và chức năng.\n"
-"\t\t-f\tthu hồi tính năng dò tìm chức năng trình bao\n"
-"\t\t-P\tép buộc tìm kiếm ĐƯỜNG_DẪN đối với mỗi TÊN,\n"
-"\t\t\tthậm chí nếu nó là bí danh, dựng sẵn hay chức năng,\n"
-"\t\t\tvà trả lại tên của tập tin trên đĩa mà sẽ được thực thi\n"
-"\t\t-p\ttrả lại hoặc tên của tập tin trên đĩa mà sẽ được thực thi,\n"
-"\t\t\thoặc không trả lại gì nếu câu lệnh « type -t TÊN »\n"
-"\t\t\tsẽ không trả lại « file » (tập tin).\n"
-"\t\t-t\txuất một từ riêng lẻ mà một của:\n"
-"\t\t\t• alias\tbí danh\n"
-"\t\t\t• keyword\ttừ dành riêng của trình bao\n"
-"\t\t\t• function\tchức năng của trình bao\n"
-"\t\t\t• builtin\tdựng sẵn của trình bao\n"
-"\t\t\t• file\ttập tin trên đĩa\n"
-"\t\t\t• \t\t(không gì) không tìm thấy\n"
-"\n"
-"\tĐối số :\n"
-"\tTÊN\ttên câu lệnh cần giải thích.\n"
-"\n"
-"\tTráng thái thoát:\n"
-"\tTrả lại thành công nếu tìm thấy tất cả các TÊN; không thì bị lỗi."
-
-#: builtins.c:1399
+"Hiển thị thông tin loại câu lệnh.\n"
+"\n"
+"    Đối với mỗi TÊN, chỉ ra cách thông dịch lệnh khi được thực thi\n"
+"    theo tên lệnh.\n"
+"\n"
+"    Tùy chọn:\n"
+"      -a\thiển thị mọi vị trí chứa tập tin thực thi được có TÊN;\n"
+"        \tkhông đặt tùy chọn “-p” thì bao gồm các bí danh, lệnh\n"
+"        \tdựng sẵn và hàm.\n"
+"      -f\tngăn tra cứu hàm hệ vỏ\n"
+"      -P\tbuộc tìm kiếm PATH đối với mỗi TÊN, thậm chí nếu nó là\n"
+"        \tbí danh, lệnh dựng sẵn hay hàm, và trả lại tên của tập\n"
+"        \ttin trên đĩa mà sẽ được thực thi\n"
+"      -p\ttrả về hoặc tên của tập tin trên đĩa mà sẽ được thực\n"
+"    \t\tthi, hoặc gì cả “type -t TÊN” sẽ không trả về “file”\n"
+"    \t\t(tập tin).\n"
+"        -t\txuất một trong những từ đơn “alias”, “keyword”, “function”,\n"
+"        \t“builtin”, “file” hoặc “”, nếu TÊN tương ứng là bí danh,\n"
+"        \ttừ khoá,hàm, lệnh hệ vỏ dựng sẵn, tập tin\n"
+"        \ttrên đĩa, hoặc không tìm thấy.\n"
+"\n"
+"    Đối số:\n"
+"      TÊN\ttên câu lệnh cần giải thích.\n"
+"\n"
+"    Trạng thái thoát:\n"
+"    Trả lại thành công nếu tìm thấy tất cả các TÊN; không thì bị lỗi."
+
+#: builtins.c:1417
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
@@ -4437,6 +4435,9 @@ msgid ""
 "      -u\tthe maximum number of user processes\n"
 "      -v\tthe size of virtual memory\n"
 "      -x\tthe maximum number of file locks\n"
+"      -T    the maximum number of threads\n"
+"    \n"
+"    Not all options are available on all platforms.\n"
 "    \n"
 "    If LIMIT is given, it is the new value of the specified resource; the\n"
 "    special LIMIT values `soft', `hard', and `unlimited' stand for the\n"
@@ -4451,52 +4452,49 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
-"Sửa đổi các giới hạn tài nguyên trình bao.\n"
-"\n"
-"\tCung cấp điều khiển với các tài nguyên sẵn sàng\n"
-"\tcho trình bao và các tiến trình được nó tạo,\n"
-"\ttrên hệ thống cho phép điều khiển như vậy.\n"
-"\n"
-"\tTùy chọn:\n"
-"\t\t-S\tdùng giới hạn tài nguyên « soft » (mềm)\n"
-"\t\t-H\tdùng giới hạn tài nguyên « hard » (cứng)\n"
-"\t\t-a\tthông báo mọi giới hạn hiện thời\n"
-"\t\t-b\tkích cỡ của vùng đệm ổ cắm\n"
-"\t\t-c\tkích cỡ tối đa của tập tin lõi được tạo\n"
-"\t\t-d\tkích cỡ tối đa của từng đoạn dữ liệu của một tiến trình\n"
-"\t\t-e\tmức ưu tiên cao nhất khi định thời (« nice »)\n"
-"\t\t-f\tkích cỡ tối đa của của tập tin được ghi bởi trình bao\n"
-"\t\t\tvà các tiến trình con của nó\n"
-"\t\t-i\tsố tối đa các tín hiệu bị hoãn\n"
-"\t\t-l\tkích cỡ tối đa mà một tiến trình có thể khoá vào bộ nhớ\n"
-"\t\t-m\tkích cỡ tối đa của tập hợp nội trú\n"
-"\t\t-n\tsố tối đa các bộ mô tả tập tin còn mở\n"
-"\t\t-p\tkích cỡ của vùng đệm ống dẫn\n"
-"\t\t-q\tsố tối đa các byte trong hàng đợi thông điệp POSIX\n"
-"\t\t-r\tmức ưu tiên cao nhất khi định thời thật\n"
-"\t\t-s\tkích cỡ tối đa của đống\n"
-"\t\t-t\tthời gian CPU lâu nhất, theo giây\n"
-"\t\t-u\tsố tối đa các tiến trình của người dùng\n"
-"\t\t-v\tkích cỡ của bộ nhớ ảo\n"
-"\t\tsố tối đa các khoá tập tin\n"
-"\n"
-"\tNếu đưa ra GIỚI_HẠN thì nó là giá trị mới của tài nguyên được ghi rõ ;\n"
-"\tcũng có ba giá trị GIỚI_HẠN đặc biệt:\n"
-"\t\t• soft\tgiới hạn mềm hiện thời\n"
-"\t\t• hard\tgiới hạn cứng hiện thời\n"
-"\t\t• unlimited\tvô hạn\n"
-"\tKhông thì in ra giá trị hiện thời của tài nguyên được ghi rõ.\n"
-"\tKhông đưa ra tùy chọn thì giả sử « -f ».\n"
-"\n"
-"\tGiá trị được ghi rõ theo bước 1024-byte, trừ :\n"
-"\t\t• -t\ttheo giây\n"
-"\t\t• -p\ttheo bước 512-byte\n"
-"\t\t• -u\tsố các tiến trình không theo tỷ lệ\n"
-"\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại thành công nếu không đưa ra tùy chọn sai hay gặp lỗi."
-
-#: builtins.c:1444
+"Sửa đổi giới hạn tài nguyên hệ vỏ.\n"
+"    \n"
+"    Điều khiển tài nguyên sẵn có của hệ vỏ và các tiến trình nó tạo ra,\n"
+"    trên hệ thống hỗ trợ điểu khiển tài nguyên như vậy.\n"
+"    \n"
+"    Tùy chọn:\n"
+"      -S\tdùng giới hạn tài nguyên “soft” (mềm)\n"
+"      -H\tdùng giới hạn tài nguyên “hard” (cứng)\n"
+"      -a\tthông báo mọi giới hạn hiện thời\n"
+"      -b\tkích cỡ của vùng đệm socket\n"
+"      -c\tkích cỡ tối đa của tập tin core được tạo\n"
+"      -d\tkích cỡ tối đa của từng đoạn dữ liệu của một tiến trình\n"
+"      -e\tmức ưu tiên lập lịch cao nhất (“nice”)\n"
+"      -f\tkích cỡ tập tin tối đa được ghi bởi hệ vỏ và tiến trình con\n"
+"      -i\tsố tín hiệu bị hoãn tối đa\n"
+"      -l\tkích cỡ tối đa mà tiến trình có thể khoá vào bộ nhớ\n"
+"      -m\tkích cỡ tập nội trú (RSS) tối đa\n"
+"      -n\tsố bộ mô tả tập tin tối đa được mở\n"
+"      -p\tkích thước vùng đệm ống dẫn\n"
+"      -q\tsố byte tối đa trong hàng đợi thông điệp POSIX\n"
+"      -r\tmức ưu lập lịch thời gian thực cao nhất\n"
+"      -s\tkích thước ngăn xếp tối đa\n"
+"      -t\tlượng thời gian cpu tối đa theo giây\n"
+"      -u\tsố tiến trình người dùng tối đa\n"
+"      -v\tkích cỡ của bộ nhớ ảo\n"
+"      -x\tsố khoá tập tin tối đa\n"
+"      -T\tsố lượng tuyến trình tối đa\n"
+"    \n"
+"    Không phải tất cả các tùy-chọn này đều sẵn sàng trên mọi nền tảng.\n"
+"    \n"
+"    Nếu có GIỚI_HẠN thì nó là giá trị mới của tài nguyên được ghi. Ba\n"
+"    giá trị GIỚI_HẠN đặc biệt “soft”, “hard” và “unlimited” tương ứng\n"
+"    là giới hạn mềm hiện tại, giới hạn cứng hiện tại và không giới\n"
+"    hạn. Không có thì in giá trị hiện thời của tài nguyên được ghi.\n"
+"    Ngầm định “-f” nếu không chỉ định tuỳ chọn.\n"
+"    \n"
+"    Giá trị tính theo khối 1024 byte, trừ -t tính theo giây, -p theo\n"
+"    khối 512 byte và -u theo số tiến trình.\n"
+"    \n"
+"    Trạng thái thoát:\n"
+"    Trả lại thành công nếu không đưa ra tùy chọn sai hay có lỗi phát sinh."
+
+#: builtins.c:1465
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -4515,79 +4513,80 @@ msgid ""
 msgstr ""
 "Hiển thị hoặc đặt mặt nạ chế độ tập tin.\n"
 "\n"
-"\tĐặt mặt nạ (bộ lọc) tạo tập tin của người dùng thành CHẾ_ĐỘ.\n"
-"\t\tKhông đưa ra CHẾ_ĐỘ thì in ra giá trị hiện thời của mặt nạ.\n"
+"    Đặt mặt nạ tạo tập tin của người dùng thành CHẾ_ĐỘ. Không tham số\n"
+"    thì in chế độ hiện thời.\n"
 "\n"
-"\tNếu CHẾ_ĐỘ bắt đầu với một chữ số, nó được đọc là một số bát phân;\n"
-"\t\tkhông thì nó là một chuỗi chế độ tượng trưng\n"
-"\t\tgiống như chuỗi được chmod(1) chấp nhận.\n"
+"    Nếu CHẾ_ĐỘ bắt đầu bằng chữ số thì hiểu là số bát phân; không thì\n"
+"    nó là chuỗi chế độ ký hiệu được chmod(1) chấp nhận.\n"
 "\n"
-"\tTùy chọn:\n"
-"\t\t-p\tkhông đưa ra CHẾ_ĐỘ thì xuất theo một định dạng\n"
-"\t\t\tcó thể được dùng lại làm dữ liệu nhập vào\n"
-"\t\t-S\tlàm cho kết xuất cũng tượng trưng,\n"
-"\t\t\tkhông thì xuất một số bát phân\n"
+"    Tùy chọn:\n"
+"      -p\tkhông có CHẾ_ĐỘ thì xuất theo định dạng dùng lại\n"
+"        \tlàm dữ liệu đầu vào\n"
+"      -S\tin kết xuất ký hiệu thay vì bát phân\n"
 "\n"
-"\tTráng thái thoát:\n"
-"\tTrả lại thành công nếu không có CHẾ_ĐỘ sai hay tùy chọn sai."
+"    Trạng thái thoát:\n"
+"    Trả lại thành công nếu không có CHẾ_ĐỘ sai hay tùy chọn sai."
 
-#: builtins.c:1464
+#: builtins.c:1485
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
-"    Waits for the process identified by ID, which may be a process ID or a\n"
+"    Waits for each process identified by an ID, which may be a process ID or "
+"a\n"
 "    job specification, and reports its termination status.  If ID is not\n"
 "    given, waits for all currently active child processes, and the return\n"
 "    status is zero.  If ID is a a job specification, waits for all "
 "processes\n"
-"    in the job's pipeline.\n"
+"    in that job's pipeline.\n"
+"    \n"
+"    If the -n option is supplied, waits for the next job to terminate and\n"
+"    returns its exit status.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-"    given."
+"    Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+"    option is given."
 msgstr ""
-"Đợi công việc chạy xong, sau đó trả lại trạng thái thoát.\n"
+"Chờ công việc chạy xong và trả về trạng thái thoát.\n"
 "\n"
-"\tĐợi tiến trình được ID nhận diện, mà có thể là một mã số tiến trình\n"
-"\t\thay một đặc tả công việc, sau đó trả lại trạng thái chấm dứt của nó.\n"
-"\t\tKhông đưa ra ID thì đợi tất cả các tiến trình con đang chạy,\n"
-"\t\tvà trạng thái trả lại là số không.\n"
-"\t\tNếu ID là một đặc tả công việc thì đợi tất cả các tiến trình\n"
-"\t\tvẫn nằm trong ống dẫn của công việc đó.\n"
+"    Đợi tiến trình xác định bởi ID, có thể là mã số tiến trình hay đặc\n"
+"    tả công việc, sau đó trả về trạng thái kết thúc của nó. Không có\n"
+"    ID thì đợi tất cả các tiến trình con đang chạy và trạng thái trả\n"
+"    về là không. Nếu ID là đặc tả công việc thì đợi tất cả các tiến\n"
+"    trình vẫn nằm trong ống dẫn của công việc đó.\n"
+"    \n"
+"    Nếu tùy-chọn -n được áp dùng thì đợi cho đến khi công việc kế chấm dứt "
+"và\n"
+"    trả về trạng thái thoát của nó.\n"
 "\n"
-"\tTráng thái thoát:\n"
-"\tTrả lại trạng thái của ID; không thành công nếu ID sai\n"
-"\t\thoặc đưa ra tùy chọn sai."
+"    Trạng thái thoát:\n"
+"    Trả về trạng thái của ID cuối; không thành công nếu ID sai hoặc đưa\n"
+"    ra tùy chọn sai."
 
-#: builtins.c:1482
+#: builtins.c:1506
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
-"    Waits for the specified process and reports its termination status.  If\n"
-"    PID is not given, all currently active child processes are waited for,\n"
-"    and the return code is zero.  PID must be a process ID.\n"
+"    Waits for each process specified by a PID and reports its termination "
+"status.\n"
+"    If PID is not given, waits for all currently active child processes,\n"
+"    and the return status is zero.  PID must be a process ID.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-"    given."
+"    Returns the status of the last PID; fails if PID is invalid or an "
+"invalid\n"
+"    option is given."
 msgstr ""
-"Đợi tiến trình chạy xong, sau đó thông báo trạng thái thoát của nó.\n"
+"Đợi tiến trình chạy xong và trả về trạng thái thoát.\n"
 "\n"
-"\tĐợi tiến trình đã ghi rõ,\n"
-"\tsau đó thông báo trạng thái chấm dứt của nó.\n"
-"\tNếu không đưa ra PID (mã số tiến trình)\n"
-"\tthì đợi tất cả các tiến trình con đang chạy,\n"
-"\tvà mã trả lại là số không.\n"
-"\tPID phải là một mã số tiến trình.\n"
+"    Đợi từng tiến trình đã chỉ ra theo PID và báo cáo trạng thái kết thúc\n"
+"    của nó. Nếu không chỉ ra PID thì đợi tất cả các tiến trình con đang\n"
+"    chạy, và mã về là không. PID phải là mã số tiến trình.\n"
 "\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại trạng thái của ID (mã số);\n"
-"\tkhông thành công nếu ID sai,\n"
-"\thoặc nếu đưa ra tùy chọn sai."
+"    Trạng thái thoát:\n"
+"    Trả lại trạng thái của PID; không thành công nếu PID sai, hoặc nếu\n"
+"    đưa ra tùy chọn sai."
 
-#: builtins.c:1497
+#: builtins.c:1521
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -4599,19 +4598,18 @@ msgid ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 msgstr ""
-"Thực thi câu lệnh cho mỗi bộ phận trong một danh sách.\n"
+"Thực thi lệnh cho từng phần tử nằm trong danh sách.\n"
 "\n"
-"\tVòng lặp « for » (cho) thì thực thi câu lệnh\n"
-"\tcho mỗi bộ phận trong một danh sách các mục.\n"
-"\tKhông đưa ra « in CÁC_TỪ ... » thì giả sử « in \"$@\" ».\n"
-"\tĐối với mỗi phần tử trong CÁC_TỪ,\n"
-"\tTÊN được đặt thành phần tử đó,\n"
-"\tvà các câu LỆNH được thực thi.\n"
+"    Vòng lặp “for” thực thi lệnh cho từng phần tử nằm trong danh sách. "
+"Không\n"
+"    ghi “in TỪ ...” thì ngầm định “in \"$@\"”. Đối với mỗi phần tử trong\n"
+"    danh sách, đặt giá trị phần tử đó cho biến TÊN rồi thực thi CÁC;CÂU;"
+"LỆNH.\n"
 "\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại trạng thái của câu lệnh cuối cùng được chạy."
+"    Trạng thái thoát:\n"
+"    Trả lại trạng thái của câu lệnh cuối cùng được chạy."
 
-#: builtins.c:1511
+#: builtins.c:1535
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -4629,18 +4627,19 @@ msgid ""
 msgstr ""
 "Số học cho vòng lặp.\n"
 "\n"
-"\tTương đương với:\n"
-"    \t(( EXP1 ))\n"
-"    \twhile (( EXP2 )); do\n"
-"    \t\tCOMMANDS\n"
-"    \t\t(( EXP3 ))\n"
+"    Tương đương với:\n"
+"    \t(( BTHỨC1 ))\n"
+"    \twhile (( BTHỨC2 )); do\n"
+"    \t\tCÁC;CÂU;LỆNH;\n"
+"    \t\t(( BTHỨC3 ))\n"
 "    \tdone\n"
-"EXP1, EXP2, EXP3 là biểu thức số học.\n"
-"Bỏ sót biểu thức nào thì ứng xử như nó tính là 1.\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại trạng thái của câu lệnh cuối cùng được chạy."
+"    BTHỨC1, BTHỨC2 và BTHỨC3 là biểu thức số học. Ngầm định 1 cho bất\n"
+"    kì biểu thức bỏ trống nào.\n"
+"\n"
+"    Trạng thái thoát:\n"
+"    Trả lại trạng thái của câu lệnh cuối cùng được chạy."
 
-#: builtins.c:1529
+#: builtins.c:1553
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -4659,27 +4658,22 @@ msgid ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 msgstr ""
-"Chọn từ trong một danh sách, và thực thi câu lệnh.\n"
-"\n"
-"WORDS được mở rộng, mà tạo một danh sách các từ.\n"
-"Tập hợp các từ đã mở rộng được in trên đầu lỗi tiêu chuẩn.\n"
-"\tmỗi từ có con số đi trước.\n"
-"Không có « in WORDS » thì giả sử « in \"$@\" ».\n"
-"Dấu nhắc PS3 thì được hiển thị, và một dòng được đọc\n"
-"\ttừ đầu vào tiêu chuẩn.\n"
-"Nếu dòng này là số tương ứng với một của những từ được hiển thị,\n"
-"\tTÊN sẽ được đặt thành từ đó.\n"
-"Dòng rỗng thì hiển thị lại WORDS và dấu nhắc.\n"
-"Đọc kết thúc tập tin thì chạy xong câu lệnh đó.\n"
-"Bất cứ giá trị khác nào được đọc sẽ gây ra TÊN được đặt thành vô giá trị.\n"
-"Dòng được đọc sẽ được lưu lại vào biến REPLY (trả lời).\n"
-"Các CÂU_LỆNH được thực hiện sau khi chọn mỗi đồ,\n"
-"\tđến khi một lệnh gián đoạn được thực hiện.\n"
-"\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại trạng thái của câu lệnh cuối cùng được chạy."
-
-#: builtins.c:1550
+"Chọn từ từ một danh sách và thực thi lệnh.\n"
+"\n"
+"    TỪ được triển khai, phát sinh danh sách từ. Tập hợp các từ kết quả được\n"
+"    in ra đầu ra lỗi chuẩn với một con số ở phía trước. Ngầm định “in\n"
+"    \"$@\"” nếu không có “in TỪ”. Dấu nhắc PS3 được hiển thị và một dòng\n"
+"    được đọc từ đầu nhập chuẩn. Nếu dòng bao gồm số tương ứng với từ\n"
+"    hiển thị thì đặt từ đó vào biến TÊN. Nếu dòng rỗng thì hiển thị\n"
+"    lại TỪ và dấu nhắc. Nếu gặp EOF thì kết thúc. Đặt TÊN là rỗng với\n"
+"    các giá trị khác. Dòng đọc được lưu vào biến REPLY. LỆNH được thực\n"
+"    thi sau mỗi lần chọn đến khi gặp lệnh “break”.\n"
+"\n"
+"\n"
+"    Trạng thái thoát:\n"
+"    Trả lại trạng thái của câu lệnh cuối cùng được chạy."
+
+#: builtins.c:1574
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -4694,23 +4688,21 @@ msgid ""
 "    Exit Status:\n"
 "    The return status is the return status of PIPELINE."
 msgstr ""
-"Thông báo thời gian được chiếm khi ống dẫn thực thi.\n"
+"Thông báo thời gian sử dụng để thực thi ống dẫn.\n"
 "\n"
-"\tThực thi PIPELINE (ống dẫn) và in ra bản tóm tắt thời gian thật,\n"
-"\tthời gian CPU của người dùng, và thời gian CPU của hệ thống\n"
-"\t00 chiếm khi thực thi ống dẫn, khi ống dẫn chấm dứt.\n"
+"    Thực thi ỐNG-DẪN và in tóm tắt thời gian thật, thời gian CPU người\n"
+"    dùng, và thời gian CPU hệ thống được dùng để thực thi ống dẫn đến\n"
+"    khi chấm dứt.\n"
 "\n"
-"\tTùy chọn:\n"
-"\t\t-p\tin ra bản tóm tắt đếm thời gian\n"
-"\t\t\ttheo định dạng POSIX có thể mang theo\n"
+"    Tùy chọn:\n"
+"      -p\tin bản tóm tắt thời gian theo định dạng POSIX\n"
 "\n"
-"\tGiá trị của biến TIMEFORMAT (định dạng thời gian)\n"
-"\tđược dùng làm định dạng kết xuất.\n"
+"    Giá trị biến TIMEFORMAT được dùng làm định dạng kết xuất.\n"
 "\n"
-"\tTrạng thái thoát:\n"
-"\tTrạng thái trả lai là trạng thái trả lại của PIPELINE."
+"    Trạng thái thoát:\n"
+"    Trạng thái trả về là trạng thái trả về của ỐNG-DẪN."
 
-#: builtins.c:1567
+#: builtins.c:1591
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -4720,16 +4712,15 @@ msgid ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 msgstr ""
-"Thức thi câu lá»\87nh dá»±a vào khá»\9bp mẫu.\n"
+"Thá»±c thi lá»\87nh chá»\8dn theo mẫu.\n"
 "\n"
-"\tThực thi các câu LỆNH một cách chọn lọc,\n"
-"\tdựa vào TỪ tương ứng với MẪU.\n"
-"\tNhiều mẫu định giới bằng « | ».\n"
+"    Thực thi LỆNH một cách chọn dựa vào TỪ tương ứng với MẪU. Nhiều\n"
+"    mẫu cách nhau bằng “|”.\n"
 "\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại trạng thái của câu lệnh cuối cùng được chạy."
+"    Trạng thái thoát:\n"
+"    Trả lại trạng thái của câu lệnh cuối cùng được chạy."
 
-#: builtins.c:1579
+#: builtins.c:1603
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
@@ -4749,24 +4740,22 @@ msgid ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 msgstr ""
-"Thực thi câu lệnh dựa vào điều kiện.\n"
-"\n"
-"\tDanh sách « if LỆNH » được thực thi.\n"
-"\tNếu trạng thái thoát của nó là số không,\n"
-"\tthì danh sách « then LỆNH » được thực thi.\n"
-"\tKhông thì mỗi danh sách « elif LỆNH » được thực thi lần lượt,\n"
-"\tvà nếu trạng thái thoát của nó là số không,\n"
-"\tthì danh sách « then LỆNH » tương ứng được thực thi\n"
-"\tvà câu lệnh « nếu » (if) sẽ chạy xong.\n"
-"\tKhông thì danh sách « else LỆNH » được thực thi, nếu có.\n"
-"\tTrạng thái thoát của toàn bộ tạo dựng\n"
-"\tlà trạng thái của câu lệnh cuối cùng được chạy,\n"
-"\thoặc số không nếu không có điều kiện có kết quả là Đúng.\n"
-"\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại trạng thái của câu lệnh cuối cùng được chạy."
-
-#: builtins.c:1596
+"Thực thi câu lệnh có điều kiện.\n"
+"\n"
+"    Danh sách “if CÁC;CÂU;LỆNH” được thực thi. Nếu trạng thái thoát là "
+"không,\n"
+"    thì thực thi danh sách “then LỆNH”. Không thì thực thi lần lượt\n"
+"    mỗi danh sách “elif LỆNH”. và nếu trạng thái thoát là không, thì\n"
+"    thực thi danh sách “then LỆNH” tương ứng và hoàn tất lệnh\n"
+"    “if”. Không thì thực thi danh sách “else LỆNH” nếu có. Trạng thái\n"
+"    thoát của toàn bộ lệnh “if” là trạng thái của lệnh cuối cùng được\n"
+"    chạy, hoặc không nếu không có điều kiện nào trả về kết quả là\n"
+"    đúng.\n"
+"\n"
+"    Trạng thái thoát:\n"
+"    Trả lại trạng thái của câu lệnh cuối cùng được chạy."
+
+#: builtins.c:1620
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -4776,16 +4765,16 @@ msgid ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 msgstr ""
-"Thực thi câu lệnh miễn là một phép thử thành công.\n"
+"Thực thi lệnh chừng nào phép thử còn thành công.\n"
 "\n"
-"\tMở rộng và thực thi các câu LỆNH miễn là câu lệnh cuối cùng\n"
-"\ttrong những câu LỆNH « while » (trong khi)\n"
-"\tcó trạng thái thoát là số không.\n"
+"    Khai triển và thực thi CÁC;CÂU;LỆNH chừng nào lệnh cuối cùng trong "
+"“while” LỆNH\n"
+"    có trạng thái thoát là không.\n"
 "\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại trạng thái của câu lệnh cuối cùng được chạy."
+"    Trạng thái thoát:\n"
+"    Trả lại trạng thái của câu lệnh cuối cùng được chạy."
 
-#: builtins.c:1608
+#: builtins.c:1632
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -4795,16 +4784,16 @@ msgid ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 msgstr ""
-"Thực thi câu lệnh miễn là một phép thử không thành công.\n"
+"Thực thi lệnh chừng nào phép thử vẫn không thành công.\n"
 "\n"
-"\tMở rộng và thực thi các câu LỆNH miễn là câu lệnh cuối cùng\n"
-"\ttrong các câu LỆNH « until » (đến khi) có trạng thái thoát\n"
-"\tkhác số không.\n"
+"    Khai triển và thực thi CÁC;CÂU;LỆNH chừng nào lệnh cuối cùng trong "
+"“until” LỆNH\n"
+"    có trạng thái thoát là khác không.\n"
 "\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại trạng thái của câu lệnh cuối cùng được chạy."
+"    Trạng thái thoát:\n"
+"    Trả lại trạng thái của câu lệnh cuối cùng được chạy."
 
-#: builtins.c:1620
+#: builtins.c:1644
 msgid ""
 "Create a coprocess named NAME.\n"
 "    \n"
@@ -4816,18 +4805,16 @@ msgid ""
 "    Exit Status:\n"
 "    Returns the exit status of COMMAND."
 msgstr ""
-"Tạo một tiến trình đồng chạy có tên TÊN.\n"
+"Tạo tiến trình phụ tên TÊN.\n"
 "\n"
-"\tThực hiện câu LỆNH một cách không đồng bộ, có đầu và tiêu chuẩn\n"
-"\tvà đầu ra tiêu chuẩn của câu lệnh này được kết nối thông qua một ống dẫn\n"
-"\ttới các bộ mô tả tập tin được gán cho chỉ số 0 và 1 của một biến mảng TÊN\n"
-"\ttrong trình bao đang chạy.\n"
-"\tTên mặc định là « COPROC ».\n"
+"    Thực hiện LỆNH không đồng bộ có đầu vào/ra chuẩn nối đến ống dẫn\n"
+"    của bộ mô tả tập tin chỉ số 0 và 1 trong biến mảng TÊN trong hệ vỏ\n"
+"    được thực thi. TÊN mặc định là \"COPROC\".\n"
 "\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại trạng thái thoát của câu LỆNH."
+"    Trạng thái thoát:\n"
+"    Trả lại trạng thái thoát của câu LỆNH."
 
-#: builtins.c:1634
+#: builtins.c:1658
 msgid ""
 "Define shell function.\n"
 "    \n"
@@ -4840,18 +4827,17 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless NAME is readonly."
 msgstr ""
-"Xác định chức năng trình bao.\n"
+"Định nghĩa hàm hệ vỏ.\n"
 "\n"
-"\tTạo một chức năng trình bao có TÊN.\n"
-"\tKhi được gọi dưới dạng một câu lệnh đơn giản,\n"
-"\tTÊN chạy các câu LỆNH theo ngữ cảnh của trình bao đang gọi.\n"
-"\tKhi TÊN được gọi, các đối số được gửi cho chức năng dưới dạng $1...$n,\n"
-"\tvà tên chức năng nằm trong $FUNCNAME.\n"
+"    Tạo hàm hệ vỏ tên TÊN. Khi được gọi dưới dạng một câu lệnh đơn\n"
+"    giản, TÊN chạy LỆNH trong ngữ cảnh của hệ vỏ gọi. Khi TÊN được\n"
+"    gọi, các đối số được gửi cho hàm dạng $1...$n, và tên hàm nằm\n"
+"    trong $FUNCNAME.\n"
 "\n"
-"\tTráng thái thoát:\n"
-"\tTrả lại thành công nếu TÊN không phải chỉ đọc."
+"    Trạng thái thoát:\n"
+"    Trả lại thành công nếu TÊN không phải chỉ đọc."
 
-#: builtins.c:1648
+#: builtins.c:1672
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -4861,16 +4847,15 @@ msgid ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 msgstr ""
-"Nhóm lại các câu lá»\87nh làm cùng một đơn vị.\n"
+"Nhóm lá»\87nh làm một đơn vị.\n"
 "\n"
-"\tChạy một tập hợp các câu lệnh trong cùng một nhóm.\n"
-"\tĐây là một phương pháp chuyển hướng\n"
-"\tmột tập hợp câu lệnh hoàn toàn.\n"
+"    Chạy tập hợp các lệnh trong cùng một nhóm. Đây là một cách để\n"
+"    chuyển hướng toàn bộ một nhóm lệnh.\n"
 "\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại trạng thái của câu lệnh cuối cùng được chạy."
+"    Trạng thái thoát:\n"
+"    Trả lại trạng thái của câu lệnh cuối cùng được chạy."
 
-#: builtins.c:1660
+#: builtins.c:1684
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -4885,17 +4870,15 @@ msgid ""
 msgstr ""
 "Tiếp tục lại công việc ở trước.\n"
 "\n"
-"\tTương đương với đối số ĐẶC_TẢ_CÔNG_VIỆC với câu lệnh « fg ».\n"
-"\tTiếp tục lai một công việc bị dừng chạy hay chạy về nền.\n"
-"\tĐẶC_TẢ_CÔNG_VIỆC có thể ghi rõ hoặc một tên công việc,\n"
-"\thoặc một số thứ tự công việc.\n"
-"\tĐặt một « & » theo sau ĐẶC_TẢ_CÔNG_VIỆC sẽ đặt công việc về nền,\n"
-"\tnhư là đặc tả công việc đã được cung cấp dưới dạng một đối số với « bg ».\n"
+"    Tương đương với đối số đặc tả công việc ĐTCV trong lệnh “fg”.\n"
+"    Tiếp tục lại công việc bị dừng chạy hay chạy nền. ĐTCV có thể xác\n"
+"    định tên công việc hoặc mã số công việc. Đặt “&” sau ĐTCV sẽ chạy\n"
+"    công việc ở nền, như là đối số đặc tả công việc trong “bg”.\n"
 "\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại trạng thái của công việc đã tiếp tục lại."
+"    Trạng thái thoát:\n"
+"    Trả lại trạng thái của công việc đã tiếp tục lại."
 
-#: builtins.c:1675
+#: builtins.c:1699
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -4905,15 +4888,15 @@ msgid ""
 "    Exit Status:\n"
 "    Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
 msgstr ""
-"Định giá biểut thức số học.\n"
+"Định giá biểu thức số học.\n"
 "\n"
-"\tBIỂU_THỨC được tính tùy theo các quy tắc về định giá số học.\n"
-"\tTương đương với « let BIỂU_THỨC ».\n"
+"    BTHỨC được tính tùy theo các quy tắc về định giá số học.\n"
+"    Tương đương với “let BTHỨC”.\n"
 "\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại 1 nếu BIỂU_THỨC tính là 0; không thì trả lại 0."
+"    Trạng thái thoát:\n"
+"    Trả lại 1 nếu BTHỨC tính là 0; không thì trả lại 0."
 
-#: builtins.c:1687
+#: builtins.c:1711
 msgid ""
 "Execute conditional command.\n"
 "    \n"
@@ -4940,29 +4923,29 @@ msgid ""
 "    Exit Status:\n"
 "    0 or 1 depending on value of EXPRESSION."
 msgstr ""
-"Thực thi câu lệnh điều kiện.\n"
+"Thực thi câu lệnh có điều kiện.\n"
 "\n"
-"Trả về trạng thái 0 hoặc 1, phụ thuộc vào phép tính\n"
-"\tbiểu thức điều kiện BIỂU_THỨC.\n"
-"Biểu thức chứa cùng những nguyên sơ được dùng bởi dựng sẵn « test »,\n"
-"\tvà có thể được tổ hợp dùng các toán tử theo đây:\n"
+"    Trả về trạng thái 0 hoặc 1 tuỳ vào phép tính biểu thức điều kiện\n"
+"    BTHỨC. Biểu thức bao gồm các thành phần dùng trong lệnh dựng sẵn\n"
+"    “test” và có thể được tổ hợp bằng các toán tử sau:\n"
 "    \n"
-"    \t( BIỂU_THỨC )\tTrả về giá trị của BIỂU_THỨC\n"
-"    \t! BIỂU_THỨC\tĐúng nếu BIỂU_THỨC là không đúng; không thì sai\n"
-"    \tB_THỨC1 && B_THỨC2\n"
-"\tĐúng nếu cả hai B_THỨC1 và B_THỨC2 đều là đúng; không thì sai\n"
-"    \tB_THỨC1 || B_THỨC2\n"
-"\tĐúng nếu một của B_THỨC1 và B_THỨC2 là đúng; không thì sai\n"
+"      ( BTHỨC )\t\tTrả về giá trị của BTHỨC\n"
+"      ! BTHỨC\t\tĐúng nếu BTHỨC là không đúng. Ngược lại sai\n"
+"      BTHỨC1 && BTHỨC2\tĐúng nếu cả hai biểu thức đều đúng. Ngược lại sai.\n"
+"      BTHỨC1 || BTHỨC2\tĐúng nếu một trong hai biểu thức đúng. Ngược lại "
+"sai.\n"
 "    \n"
-"Khi dùng toán từ « == » và « != », chuỗi bên phải toán tử được dùng làm mẫu,\n"
-"\tvà thực hiện chức năng khớp mẫu.\n"
-"Toán tử « && » và « || » không tính B_THỨC2 nếu B_THỨC1 là đủ\n"
-"\tđể tính giá trị của biểu thức.\n"
+"    Khi dùng toán từ “==” và “!=”, chuỗi bên phải toán tử được dùng\n"
+"    làm mẫu, và thực hiện khớp mẫu. Khi dùng toán tử “=~”, chuỗi bên\n"
+"    phải toán tử được dùng làm biểu thức chính quy.\n"
 "\n"
-"\tTrạng thái thoát:\n"
-"\t0 hay 1 phụ thuộc vào giá trị của BIỂU_THỨC."
+"    Toán tử “&&” và “||” không tính BTHỨC2 nếu BTHỨC1 đủ để xác định\n"
+"    giá trị toàn biểu thức.\n"
+"\n"
+"    Trạng thái thoát:\n"
+"    0 hay 1 phụ thuộc vào giá trị của BTHỨC."
 
-#: builtins.c:1713
+#: builtins.c:1737
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -5015,60 +4998,58 @@ msgid ""
 "    HISTIGNORE\tA colon-separated list of patterns used to decide which\n"
 "    \t\tcommands should be saved on the history list.\n"
 msgstr ""
-"Tên và sử dụng của mỗi biến trình bao thường dùng.\n"
-"\n"
-"BASH_VERSION\tThông tin phiên bản về phần mềm Bash này.\n"
-"    CDPATH\tDanh sách các thư mục định giới bằng dấu hai chấm,\n"
-"\tqua đó cần tìm kiếm thư mục được đưa ra dạng đối số với « cd ».\n"
-"    GLOBIGNORE\tDanh sách các mẫu định giới bằng dấu hai chấm,\n"
-"\tmà diễn tả các tên tập tin cần bỏ qua khi mở rộng tên đường dẫn.\n"
-"    HISTFILE\tTên của tập tin chứa lịch sử câu lệnh của bạn.\n"
-"    HISTFILESIZE\tSố tối đa các dòng có thể được tập tin này chứa.\n"
-"    HISTSIZE\tSố tối đa các dòng lịch sử mà trình bao đang chạy có thể truy "
-"cập.\n"
-"    HOME\tTên đường dẫn đầy đủ đến thư mục đăng nhập của bạn.\n"
-"    HOSTNAME\tTên của máy chủ hiện thời của bạn.\n"
-"    HOSTTYPE\tKiểu CPU dưới đó phiên bản Bash này đang chạy.\n"
-"    IGNOREEOF\tĐiều khiển ứng xử của trình bao khi nhận\n"
-"\tký tự kết thúc tập tin (EOF) là dữ liệu nhập độc nhất.\n"
-"\tĐặt thì giá trị của nó là số ký tự EOF có thể gặp liên tục\n"
-"\ttrên một dòng rỗng trước khi trình bao sẽ thoát (mặc định là 10).\n"
-"\tKhông đặt thì EOF sẽ cũng kết thúc nhập vào.\n"
-"    MACHTYPE\tMột chuỗi diễn tả hệ thống hiện thời trên đó Bash đang chạy.\n"
-"    MAILCHECK\tKhoảng thời gian, theo giây, giữa hai lần Bash kiểm tra\n"
-"\tcó thư mới chưa.\n"
-"    MAILPATH\tDanh sách các tên tập tin định giới bằng dấu hai chấm\n"
-"\ttrong đó Bash kiểm tra có thư mới chưa.\n"
-"    OSTYPE\tPhiên bản UNIX trên đó Bash này đang chạy.\n"
-"    PATH\tDanh sách các thư mục định giới bằng dấu hai chấm,\n"
-"\tqua đó cần tìm kiếm câu lệnh.\n"
-"    PROMPT_COMMAND\tMột câu lệnh cần thực hiện trước khi in ra\n"
-"\tmỗi chuỗi nhắc chính.\n"
-"    PS1\t\tChuỗi nhắc chính.\n"
-"    PS2\t\tChuỗi nhắc phụ.\n"
+"Tên và cách dùng các biến hệ vỏ thường dùng.\n"
+"\n"
+"    BASH_VERSION\n"
+"        \tThông tin phiên bản của Bash đang chạy.\n"
+"    CDPATH\tDanh sách thư mục cách nhau bằng dấu hai chấm để tìm\n"
+"        \tđối số thư mục trong lệnh “cd”.\n"
+"    GLOBIGNORE\tDanh sách mẫu cách nhau bằng dấu hai chấm diễn tả\n"
+"        \ttên tập tin bị bỏ qua không bung đường dẫn.\n"
+"    HISTFILE\tTên tập tin chứa lịch sử câu lệnh của bạn.\n"
+"    HISTFILESIZE\n"
+"        \tSố dòng tối đa tập tin này có thể chứa.\n"
+"    HISTSIZE\tSố dòng tối đa mà hệ vỏ đang chạy có thể truy cập.\n"
+"    HOME\tTên đường dẫn đầy đủ của thư mục đăng nhập của bạn.\n"
+"    HOSTNAME\tTên của máy hiện thời của bạn.\n"
+"    HOSTTYPE\tLoại CPU phiên bản Bash này đang chạy.\n"
+"    IGNOREEOF\tĐiều khiển hành vi hệ vỏ khi nhận EOF là dữ liệu nhập\n"
+"        \tduy nhất. Đặt thì giá trị của nó là EOF có thể gặp\n"
+"        \tliên tục trên một dòng rỗng trước khi hệ vỏ kết thúc\n"
+"        \t(mặc định là 10). Không đặt thì EOF nghĩa là kết thúc\n"
+"        \tnhập.\n"
+"    MACHTYPE\tChuỗi mô tả hệ thống Bash đang chạy.\n"
+"    MAILCHECK\tSố giây giữa hai lần Bash kiểm tra có thư mới không.\n"
+"    MAILPATH\tDanh sách tên tập tin cách nhau bằng dấu hai chấm\n"
+"        \tđể Bash kiểm tra có thư mới không.\n"
+"    OSTYPE\tPhiên bản UNIX Bash đang chạy.\n"
+"    PATH\tDanh sách thư mục cách nhau bằng dấu hai chấm để tìm lệnh.\n"
+"    PROMPT_COMMAND\n"
+"        \tLệnh cần thực hiện trước khi in dấu nhắc chính.\n"
+"    PS1\t\tChuỗi dấu nhắc chính.\n"
+"    PS2\t\tChuỗi dấu nhắc phụ.\n"
 "    PWD\t\tTên đường dẫn đầy đủ của thư mục hiện tại.\n"
-"    SHELLOPTS\tDanh sách các tùy chọn trình bao đã hiệu lực\n"
-"\tđịnh giới bằng dấu hai chấm.\n"
-"    TERM\tTên của kiểu thiết bị cuối hiện thời.\n"
-"    TIMEFORMAT\tĐịnh dạng kết xuất cho thống kê đếm thời gian\n"
-"\tđược hiển thị bởi từ dành riêng « time ».\n"
-"    auto_resume\tCó giá trị thì trước tiên tìm một từ lệnh xuất hiện một "
-"mình\n"
-"\ttrên một dòng, trong danh sách các công việc bị dừng chạy.\n"
-"\tTìm được thì đặt công việc đó vào trước.\n"
-"\tGiá trị « exact » (chính xác) có nghĩa là từ lệnh phải tương ứng\n"
-"\tchính xác với một câu lệnh trong danh sách các công việc bị dừng chạy.\n"
-"\tGiá trị « substring » (chuỗi phụ) có nghĩa là từ lệnh phải tương ứng\n"
-"\tvới một chuỗi phụ của công việc đó.\n"
-"    histchars\tCác ký tự điều khiển mở rộng và thay thế nhanh lịch sử.\n"
-"\tKý tự đầu tiên thường là ký tự thay thế lịch sử, thường là « ! ».\n"
-"\tKý tự thứ hai là ký tự thay thế nhanh, thường là « ^ ».\n"
-"\tKý tự thứ ba là ký tự ghi chú về lịch sử, thường là « # ».\n"
-"    HISTIGNORE\tDanh sách các mẫu định giới bằng dấu hai chấm,\n"
-"\tđược ùng để quyết định những câu lệnh nào nên được lưu\n"
-"\tvào danh sách lịch sử.\n"
-
-#: builtins.c:1770
+"    SHELLOPTS\tDanh sách tùy chọn hệ vỏ được bật cách nhau bằng\n"
+"        \tdấu hai chấm.\n"
+"    TERM\tTên kiểu thiết bị cuối hiện thời.\n"
+"    TIMEFORMAT\tĐịnh dạng kết xuất cho thống kê thời gian của lệnh “time”.\n"
+"    auto_resume\tGiá trị khác rỗng thì trước tiên tìm một từ lệnh xuất\n"
+"        \thiện một mình trên một dòng, trong danh sách các công\n"
+"        \tviệc bị dừng chạy. Tìm ra thì đặt công việc đó vào nền\n"
+"        \ttrước. Giá trị “exact” có nghĩa là từ lệnh phải tương\n"
+"        \tứng chính xác với một câu lệnh trong danh sách các\n"
+"        \tcông việc bị dừng chạy. Giá trị “substring” có nghĩa\n"
+"        \tlà từ lệnh phải tương ứng với một chuỗi phụ của công\n"
+"        \tviệc đó.\n"
+"    histchars\tCác ký tự điều khiển bung và thay thế lịch sử. Ký tự\n"
+"        \tđầu tiên thường là ký tự thay thế lịch sử, thường là\n"
+"        \t“!”. Ký tự thứ hai là ký tự thay thế nhanh, thường là\n"
+"        \t“^”. Ký tự thứ ba là ký tự ghi chú về lịch sử, thường\n"
+"        \tlà “#”.\n"
+"    HISTIGNORE\tDanh sách mẫu cách bằng dấu hai chấm dùng để quyết định\n"
+"        \tnhững câu lệnh nào nên được lưu vào danh sách lịch sử.\n"
+
+#: builtins.c:1794
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -5098,31 +5079,31 @@ msgid ""
 "    Returns success unless an invalid argument is supplied or the directory\n"
 "    change fails."
 msgstr ""
-"Thêm thư mục vào đống.\n"
+"Thêm thư mục vào chồng.\n"
 "\n"
-"Thêm một thư mục vào đầu của đống thư mục, hoặc xoay đống,\n"
-"\tlàm cho thư mục mới đầu đống là thư mục làm việc hiện thời.\n"
-"Không có đối số thì trao đổi hai thư mục đầu.\n"
+"    Thêm thư mục vào đầu của chồng thư mục, hoặc xoay chồng, làm cho\n"
+"    thư mục mới đầu chồng là thư mục làm việc hiện thời. Không có đối\n"
+"    số thì trao đổi hai thư mục đầu.\n"
 "\n"
-"+N\tXoay đống để thư mục thứ N (đếm từ bên trái danh sách\n"
-"\tđược hiển thị bằng « dirs », bắt đầu từ số không) dời lên đầu.\n"
+"      -n\tNgăn  chuyển đổi bình thường khi thêm thư mục\n"
+"        \tvào chồng, để thao tác chỉ chồng.\n"
 "\n"
-"-N\tXoay đống để thư mục thứ N (đếm từ bên phải danh sách\n"
-"\tđược hiển thị bằng « dirs », bắt đầu từ số không) dời lên đầu.\n"
+"      +N\tXoay chồng để thư mục thứ N (đếm từ trái danh sách\n"
+"        \t“dirs” (bắt đầu từ số không) dời lên đầu.\n"
 "\n"
-"-n\tThu hồi chức năng chuyển đổi bình thường khi thêm thư mục\n"
-"\tvào đống, để thao tác chỉ đống.\n"
+"      -N\tXoay chồng để thư mục thứ N (đếm từ phải danh sách\n"
+"        \t“dirs” (bắt đầu từ số không) dời lên đầu.\n"
 "\n"
-"dir\tThêm T_MỤC vào đầu đống thư mục, làm cho nó là thư mục\n"
-"\tlàm việc hiện thời mới.\n"
+"      dir\tThêm THMỤC vào đầu chồng thư mục, cho nó làm thư mục\n"
+"        \tlàm việc hiện thời mới.\n"
 "\n"
-"Dựng sẵn « dirs » thì hiển thị đống thư mục.\n"
+"    Lệnh dựng sẵn “dirs” hiển thị chồng thư mục.\n"
 "\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại thành công nếu không đưa ra đối số sai,\n"
-"\tcũng không sai chuyển đổi thư mục."
+"    Trạng thái thoát:\n"
+"    Trả lại thành công nếu không đưa ra đối số sai, cũng không sai\n"
+"    chuyển đổi thư mục."
 
-#: builtins.c:1804
+#: builtins.c:1828
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -5148,34 +5129,29 @@ msgid ""
 "    Returns success unless an invalid argument is supplied or the directory\n"
 "    change fails."
 msgstr ""
-"Gỡ bỏ thư mục khỏi đống.\n"
+"Gỡ bỏ thư mục khỏi chồng.\n"
 "\n"
-"Gỡ bỏ thư mục khỏi đống thư mục.\n"
-"Không có đối số thì gỡ bỏ thư mục đầu khỏi đống,\n"
-"\tvà cd (chuyển đổi thư mục) sang thư mục đầu mới.\n"
+"    Gỡ bỏ thư mục khỏi chồng thư mục. Không có đối số thì gỡ bỏ thư\n"
+"    mục đầu khỏi chồng và “cd” sang thư mục đầu mới.\n"
 "\n"
-"+N\tGỡ bỏ thư mục thứ N (đếm từ bên trái danh sách\n"
-"\tđược hiển thị bằng « dirs », bắt đầu từ số không).\n"
-"\tVí dụ :\n"
-"\t\tpopd +0\t\tgỡ bỏ thư mục cuối cùng\n"
-"\t\tpopd +1\t\tgỡ bỏ thư mục thứ hai.\n"
+"      -n\tNgăn chuyển đổi bình thường khi gỡ bỏ thư mục\n"
+"        \tkhỏi chồng, để thao tác chỉ chồng.\n"
 "\n"
-"-N\tGỡ bỏ thư mục thứ N (đếm từ bên phải danh sách\n"
-"\tđược hiển thị bằng « dirs », bắt đầu từ số không).\n"
-"\tVí dụ :\n"
-"\t\tpopd -0\t\tgỡ bỏ thư mục cuối cùng\n"
-"\t\tpopd -1\t\tgỡ bỏ thư mục giáp cuối.\n"
+"      +N\tGỡ bỏ thư mục thứ N (đếm từ trái danh sách\n"
+"        \t“dirs”  (bắt đầu từ số không). Ví dụ: “popd +0” bỏ\n"
+"        \tthư mục cuối cùng, “popd +1” bỏ thư mục thứ hai.\n"
 "\n"
-"-n\tThu hồi chức năng chuyển đổi bình thường khi gỡ bỏ thư mục\n"
-"\tkhỏi đống, để thao tác chỉ đống.\n"
+"      -N\tGỡ bỏ thư mục thứ N (đếm từ phải danh sách\n"
+"        \t“dirs” (bắt đầu từ số không). Ví dụ: “popd -0” bỏ\n"
+"        \tthư mục cuối cùng, “popd -1”  bỏ thư mục giáp cuối.\n"
 "\n"
-"Dựng sẵn « dirs » thì hiển thị đống thư mục.\n"
+"    Lệnh dựng sẵn “dirs” hiển thị đống thư mục.\n"
 "\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại thành công nếu không đưa ra đối số sai,\n"
-"\tcũng không sai chuyển đổi thư mục."
+"    Trạng thái thoát:\n"
+"    Trả lại thành công nếu không đưa ra đối số sai, cũng không sai\n"
+"    chuyển đổi thư mục."
 
-#: builtins.c:1834
+#: builtins.c:1858
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -5203,35 +5179,32 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
-"Hiển thị đống thư mục.\n"
-"\n"
-"\tHiển thị danh sách các thư mục được nhớ hiện thời.\n"
-"\tCâu lệnh « pushd » sẽ thêm thư mục vào danh sách;\n"
-"\tcâu lệnh « popd » cũng nâng thư mục lên danh sách.\n"
-"\n"
-"\tTùy chọn:\n"
-"\t\t-c\tgột đống thư mục bằng cách xoá mọi phần tử\n"
-"\t\t₫l\tđừng in a phiên bản thư mục có dấu ngã\n"
-"\t\t\t(tương đối so với thư mục chính của người dùng)\n"
-"\t\t-p\tin ra đống thư mục, mỗi dòng một mục\n"
-"\t\t-v\tin ra đống thư mục, mỗi dòng một mục,\n"
-"\t\t\tvới tiền tố là vị trí trong đống\n"
-"\n"
-"\tĐối số :\n"
-"\t\t+N\thiển thị mục thứ N bắt đầu từ bên trái danh sách\n"
-"\t\t\tđược hiển thị bằng « dirs »\n"
-"\t\t\tkhi được gọi mà không đưa ra tùy chọn,\n"
-"\t\t\tbắt đầu từ số không.\n"
-"\n"
-"\t\t-N\thiển thị mục thứ N bắt đầu từ bên phải danh sách\n"
-"\t\t\tđược hiển thị bằng « dirs »\n"
-"\t\t\tkhi được gọi mà không đưa ra tùy chọn,\n"
-"\t\t\tbắt đầu từ số không.\n"
-"\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại thành công nếu không đưa ra tùy chọn sai hay gặp lỗi."
-
-#: builtins.c:1863
+"Hiển thị chồng thư mục.\n"
+"    \n"
+"    Hiển thị danh sách các thư mục được nhớ hiện thời. Lệnh “pushd”\n"
+"    thêm thư mục vào danh sách; lệnh “popd” lấy thư mục khỏi danh\n"
+"    sách.\n"
+"    \n"
+"    Tùy chọn:\n"
+"      -c\txoá mọi phần tử trong chồng thư mục\n"
+"      -l\tđừng in phiên bản thư mục có dấu ngã\n"
+"        \t(tương đối so với thư mục chính của người dùng)\n"
+"      -p\tin chồng thư mục, mỗi dòng một mục\n"
+"      -v\tin chồng thư mục, mỗi dòng một mục kèm vị trí trong chồng\n"
+"    \n"
+"    Đối số:\n"
+"      +N\thiển thị mục thứ N bắt đầu từ bên trái danh sách\n"
+"                được hiển thị bằng “dirs” khi được gọi mà không đưa ra\n"
+"                tùy chọn, bắt đầu từ số không.\n"
+"    \n"
+"      -N\thiển thị mục thứ N bắt đầu từ bên phải danh sách\n"
+"                được hiển thị bằng “dirs” khi được gọi mà không đưa ra\n"
+"                tùy chọn, bắt đầu từ số không.\n"
+"    \n"
+"    Trạng thái thoát:\n"
+"    Trả về thành công nếu không đưa ra tùy chọn sai hay gặp lỗi."
+
+#: builtins.c:1887
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
@@ -5251,25 +5224,24 @@ msgid ""
 "    Returns success if OPTNAME is enabled; fails if an invalid option is\n"
 "    given or OPTNAME is disabled."
 msgstr ""
-"Đặt và bỏ đặt các tùy chọn trình bao.\n"
-"\n"
-"\tThay đổi thiết lập của mỗi tùy chọn trình bao có TÊN_TÙY_CHỌN.\n"
-"\tKhông có đối số tùy chọn thì liệt kê tất cả các tùy chọn trình bao,\n"
-"\tcũng ngụ ý mỗi tùy chọn được đặt hay không.\n"
-"\n"
-"\tTùy chọn:\n"
-"\t\t-o\thạn chế TÊN_TÙY_CHỌN thành những tên được xác định\n"
-"\t\tđể sử dụng với « set -o »\n"
-"\t\t-p\tin ra mỗi tùy chọn trình bao, cũng ngụ ý trạng thái của nó\n"
-"\t\t-q\tthu hồi kết xuất\n"
-"\t\t-u\ttắt (bỏ đặt) mỗi TÊN_TÙY_CHỌN\n"
-"\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại thành công nếu TÊN_TÙY_CHỌN được bật;\n"
-"\tkhông thành công nếu đưa ra tùy chọn sai hay TÊN_TÙY_CHỌN bị tắt."
+"Đặt và bỏ các tùy chọn hệ vỏ.\n"
+"    \n"
+"    Thay đổi thiết lập của mỗi tùy chọn hệ vỏ TÊN_TÙY_CHỌN.  Không có\n"
+"    đối số tùy chọn thì liệt kê tất cả các tùy chọn hệ vỏ kèm chỉ dẫn\n"
+"    tùy chọn được đặt hay không.\n"
+"    \n"
+"    Tùy chọn:\n"
+"      -o\thạn chế TÊN_TÙY_CHỌN những tên được định nghĩa\n"
+"        \tđể sử dụng với “set -o”\n"
+"      -p\tin mỗi tùy chọn hệ vỏ kèm trạng thái\n"
+"      -q\tngăn kết xuất\n"
+"      -u\ttắt TÊN_TÙY_CHỌN\n"
+"    \n"
+"    Trạng thái thoát:\n"
+"    Trả lại thành công nếu TÊN_TÙY_CHỌN được bật; không thành công nếu\n"
+"    đưa ra tùy chọn sai hay TÊN_TÙY_CHỌN bị tắt."
 
-#: builtins.c:1884
-#, fuzzy
+#: builtins.c:1908
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -5286,9 +5258,9 @@ msgid ""
 "successive\n"
 "    argument.\n"
 "    \n"
-"    In addition to the standard format specifications described in printf"
-"(1)\n"
-"    and printf(3), printf interprets:\n"
+"    In addition to the standard format specifications described in "
+"printf(1),\n"
+"    printf interprets:\n"
 "    \n"
 "      %b\texpand backslash escape sequences in the corresponding argument\n"
 "      %q\tquote the argument in a way that can be reused as shell input\n"
@@ -5296,34 +5268,46 @@ msgid ""
 "format\n"
 "            string for strftime(3)\n"
 "    \n"
+"    The format is re-used as necessary to consume all of the arguments.  If\n"
+"    there are fewer arguments than the format requires,  extra format\n"
+"    specifications behave as if a zero value or null string, as "
+"appropriate,\n"
+"    had been supplied.\n"
+"    \n"
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or a write or "
 "assignment\n"
 "    error occurs."
 msgstr ""
-"Định dạng và in ra các ĐỐI_SỐ tùy theo ĐỊNH_DẠNG.\n"
-"\n"
-"\tTùy chọn:\n"
-"\t\t-v BIẾN\tgán kết xuất cho biến trình bao này,\n"
-"\t\t\thơn là hiển thị nó trên đầu ra tiêu chuẩn\n"
-"\n"
-"\tĐỊNH_DẠNG là một chuỗi ký tự mà chứa ba kiểu đối tượng:\n"
-"\t\t• ký tự bình thường\tđược sao chép sang đầu ra tiêu chuẩn\n"
-"\t\t• dãy ký tự thoát\t00 chuyển đổi và sao chép sang đầu ra tiêu chuẩn\n"
-"\t\tđặc tả định dạng\tmỗi đặc tả gây ra in đối số kế tiếp.\n"
-"\n"
-"\tThêm vào đặc tả định dạng tiêu chuẩn được diễn tả\n"
-"\ttrong printf(1) và printf(3), printf đọc được:\n"
-"\n"
-"\t\t%b\tmở rộng dãy thoát kiểu gạch chéo ngược trong đối số tương ứng\n"
-"\t\t%q\ttrích dẫn đối số bằng một cách có thể dùng lại được\n"
-"\t\t\tlàm dữ liệu nhập vào trình bao\n"
-"\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại thành công nếu không đưa ra tùy chọn sai hay gặp lỗi kiểu ghi hay "
-"gán."
+"Định dạng và in ĐỐI-SỐ theo điều khiển của ĐỊNH_DẠNG.\n"
+"    \n"
+"    Tùy chọn:\n"
+"      -v BIẾN\tgán kết xuất cho biến hệ vỏ này thay vì\n"
+"        \thiển thị nó trên đầu ra chuẩn\n"
+"    \n"
+"    ĐỊNH_DẠNG là chuỗi ký tự mà chứa ba kiểu đối tượng: ký tự bình\n"
+"    thường, cái này được chép ra đầu ra chuẩn; dãy ký tự thoát, dùng để\n"
+"    chuyển đổi sau đó sao chép sang đầu ra chuẩn; và các ký hiệu đặc tả định "
+"dạng,\n"
+"    mỗi đặc tả này tác động lên đối số tương ứng.\n"
+"    \n"
+"    Ngoài đặc tả định dạng chuẩn được dùng trong printf(1) và printf(3),\n"
+"    printf được hiểu những đặc tả sau:\n"
+"    \n"
+"      %b\tbung dãy thoát gạch chéo ngược trong đối số tương ứng\n"
+"      %q\ttrích dẫn đối số theo cách dùng lại làm dữ liệu đầu vào hệ vỏ\n"
+"      %(fmt)T\txuất chuỗi ngày tháng theo định dạng FMT từ strftime(3)\n"
+"    \n"
+"    Định dạng được dùng lại để có thể dùng hết đối số. Nếu\n"
+"    ở đây có ít đối số hơn yêu cầu của định dạng, định dạng thừa đó được\n"
+"    xử lý theo cách là sẽ có giá trị bằng số không hay chuỗi rỗng,\n"
+"    được áp dụng.\n"
+"    \n"
+"    Trạng thái thoát:\n"
+"    Trả lại thành công trừ phi đưa ra tùy chọn sai hay gặp lỗi khi ghi\n"
+"    hay gán."
 
-#: builtins.c:1913
+#: builtins.c:1942
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
@@ -5349,29 +5333,28 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
-"Ghi rõ Readline sẽ điền nốt các đối số như thế nào.\n"
+"Chỉ định cách tự hoàn thiện đối số bằng Readline.\n"
 "\n"
-"\tĐối với mỗi TÊN, ghi rõ các đối số sẽ được điền nốt như thế nào.\n"
-"\tKhông đưa ra tùy chọn thì in ra các đặc tả điền nốt\n"
-"\tbằng một cách cho phép dùng lại đặc tả làm dữ liệu nhập vào.\n"
+"    Đối với mỗi TÊN, ghi rõ các đối số sẽ được tự hoàn thiện như thế nào.\n"
+"    Không đưa ra tùy chọn thì in ra các đặc tả tự hoàn thiện bằng một cách\n"
+"    cho phép dùng lại đặc tả làm dữ liệu nhập vào.\n"
 "\n"
-"\tTùy chọn:\n"
-"\t\t-p\tin ra các đặc tả điền nốt đã tồn tại theo một định dạng\n"
-"\t\t\tcó thể dùng lại được\n"
-"\t\t-r\tgỡ bỏ một đặc tả điền nốt cho mỗi TÊN,\n"
-"\t\t\thoặc nếu không đưa ra TÊN thì gỡ bỏ tất cả các đặc tả điền nốt\n"
+"    Tùy chọn:\n"
+"      -p\tin đặc tả tự hoàn thiện đã tồn tại theo định dạng dùng lại được\n"
+"      -r\tgỡ bỏ đặc tả tự hoàn thiện cho mỗi TÊN,\n"
+"        \thoặc nếu có TÊN thì gỡ bỏ tất cả các đặc tả tự hoàn thiện\n"
 "      -D\táp dụng các sự hoàn thành và hành động làm mặc định\n"
 "\t\tcho câu lệnh mà không xác định sự hoàn thành riêng\n"
-"      -E\táp dụng các sự hoàn thành và hành động cho câu lệnh « trống »\n"
+"      -E\táp dụng các sự hoàn thành và hành động cho câu lệnh “trống”\n"
 "\t\t(empty) -- thử hoàn thành trên dòng trắng\n"
 "\n"
-"\tKhi chức năng điền nốt được thử, những hành động được làm\n"
-"\t\ttheo thứ tự của những tùy chọn chữ hoa bên trên.\n"
+"    Khi chức năng tự hoàn thiện được thử, những hành động được làm theo thứ\n"
+"    tự của những tùy chọn chữ HOA bên trên.\n"
 "\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại thành công nếu không đưa ra tùy chọn sai hay gặp lỗi."
+"    Trạng thái thoát:\n"
+"    Trả lại thành công nếu không đưa ra tùy chọn sai hay gặp lỗi."
 
-#: builtins.c:1941
+#: builtins.c:1970
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
@@ -5383,18 +5366,16 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
-"Hiển thị các việc điền nốt có thể làm, phụ thuộc vào những tùy chọn.\n"
-"\n"
-"\tDự định dùng từ bên trong một chức năng trình bao\n"
-"\tmà tạo các việc điền nốt có thể làm.\n"
-"\tNếu đưa ra đối số TỪ vẫn tùy chọn,\n"
-"\tthì tạo các kết quả tương ứng với TỪ.\n"
-"\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại thành công nếu không đưa ra tùy chọn sai hay gặp lỗi."
+"Hiển thị từ gợi ý có thể phụ thuộc vào các tùy chọn.\n"
+"    \n"
+"    Dự định dùng từ bên trong một chức năng hệ vỏ mà tạo các việc\n"
+"    tự hoàn thiện có thể làm. Nếu đưa ra đối số TỪ vẫn tùy chọn, thì tạo\n"
+"    các kết quả tương ứng với TỪ.\n"
+"    \n"
+"    Trạng thái thoát:\n"
+"    Trả lại thành công nếu không đưa ra tùy chọn sai hay gặp lỗi."
 
-#: builtins.c:1956
-#, fuzzy
+#: builtins.c:1985
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
@@ -5424,35 +5405,34 @@ msgid ""
 "    Returns success unless an invalid option is supplied or NAME does not\n"
 "    have a completion specification defined."
 msgstr ""
-"Sửa đổi hoặc hiển thị các tùy chọn điền nốt.\n"
+"Sửa đổi hoặc hiển thị các tùy chọn tự hoàn thiện.\n"
 "\n"
-"\tSửa đổi các tùy chọn điền nốt đối với mỗi TÊN,\n"
-"\thoặc nếu không đưa ra TÊN thì chức năng điền nốt đang chạy.\n"
-"\tKhông đưa ra tùy chọn thì in ra các tùy chọn điền nốt\n"
-"\tđối với mỗi TÊN hay đặc tả điền nốt hiện thời.\n"
+"    Sửa đổi các tùy chọn tự hoàn thiện đối với mỗi TÊN, hoặc nếu không đưa\n"
+"    ra TÊN thì chức năng tự hoàn thiện hiện tại sẽ được thi hành, nếu không\n"
+"    TÙY_CHỌN được chỉ ra, in ra các tùy chọn tự hoàn thiện cho mỗi TÊN hay\n"
+"    các đặc tính kỹ thuật hiện có\n"
 "\n"
-"\tTùy chọn\"\n"
-"\t\t-o tùy_chọn\tđặt tùy chọn điền nốt này đối với mỗi TÊN\n"
-"   \t-D\t\tSửa đổi các tuỳ chọn về sự điền nốt câu lệnh « mặc định "
-"» (default)\n"
-"    \t-E\t\tSửa đổi các tuỳ chọn về sự điền nốt câu lệnh « trống » (empty)\n"
+"    Tùy chọn:\n"
+"      -o tùy_chọn\tđặt TÙY_CHỌN tự hoàn thiện này đối với mỗi TÊN\n"
+"      -D\t\tSửa TÙY_CHỌN về tự hoàn thiện lệnh “default”\n"
+"      -E\t\tSửa TÙY_CHỌN về tự hoàn thiện lệnh “empty”\n"
 "\n"
-"\tDùng « +o » thay cho « -o » thì tắt tùy chọn đưa ra.\n"
+"    Dùng “+o” thay cho “-o” thì tắt tùy chọn đưa ra.\n"
 "\n"
-"\tĐối số :\n"
+"    Đối số:\n"
 "\n"
-"\tMỗi TÊN tham chiếu đến một câu lệnh cho đó một đặc tả điền nốt\n"
-"\tphải được xác định trước dùng dựng sẵn « complete ».\n"
-"\tKhông đưa ra TÊN thì « compopt » phải được gọi\n"
-"\tbởi một chức năng đang tạo việc điền nốt,\n"
-"\tcác tùy chọn về hàm tạo việc điền nốt đang chạy cũng được sửa đổi.\n"
+"    Mỗi TÊN tham chiếu đến một câu lệnh cho đó một đặc tả tự hoàn thiện\n"
+"    phải được xác định trước dùng dựng sẵn “complete”. Nếu không đưa\n"
+"    ra TÊN để áp dụng, thì “compopt” phải được gọi bởi một hàm đang\n"
+"    tạo việc tự hoàn thiện, và các tùy chọn về hàm tạo việc tự hoàn thiện "
+"đang\n"
+"    chạy cũng được sửa đổi.\n"
 "\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại thành công nếu không đưa ra tùy chọn sai,\n"
-"\tvà TÊN có một đặc tả điền nốt được xác định."
+"    Trạng thái thoát:\n"
+"    Trả lại thành công trừ phi đưa ra tùy chọn sai, hoặc TÊN có một\n"
+"    đặc tả tự hoàn thiện được xác định."
 
-#: builtins.c:1986
-#, fuzzy
+#: builtins.c:2015
 msgid ""
 "Read lines from the standard input into an indexed array variable.\n"
 "    \n"
@@ -5492,45 +5472,56 @@ msgid ""
 "or\n"
 "    not an indexed array."
 msgstr ""
-"Đọc các dòng từ đầu vào tiêu chuẩn vào một biến mảng phụ lục.\n"
-"\n"
-"\tĐọc các dòng từ đầu vào tiêu chuẩn vào biến mảng MẢNG,\n"
-"\thoặc từ bộ mô tả tập tin FD nếu đưa ra tùy chọn « -u ».\n"
-"\tBiến TẬP_TIN_SƠ_ĐỒ là MẢNG mặc định.\n"
-"\n"
-"\tTùy chọn:\n"
-"\t\t-n SỐ\tsao chép nhiều nhất SỐ dòng. Nếu SỐ là 0 thì sao chép mọi dòng.\n"
-"\t\t-O GỐC\tbắt đầu gán cho MẢNG ở chỉ mục GỐC. Chỉ mục mặc định là 0.\n"
-"\t\t-s SỐ\thủy SỐ dòng đầu tiên được đọc.\n"
-"\t\t-t\tgỡ bỏ một ký tự dòng mới theo sau khỏi mỗi dòng được đọc.\n"
-"\t\t-u FD\tđọc các dòng từ bộ mô tả tập tin FD thay vào từ đầu vào tiêu "
+"Đọc các dòng từ đầu vào tiêu chuẩn vào một biến mảng chỉ số.\n"
+"\n"
+"    Đọc các dòng từ đầu vào tiêu chuẩn vào biến mảng MẢNG, hoặc từ bộ\n"
+"    mô tả tập tin FD nếu đưa ra tùy chọn -u. Biến MAPFILE là MẢNG mặc\n"
+"    định.\n"
+"\n"
+"    Tùy chọn:\n"
+"      -n SỐ\tsao chép nhiều nhất SỐ dòng. Nếu SỐ là 0 thì sao chép mọi "
+"dòng.\n"
+"      -O GỐC\tbắt đầu gán cho MẢNG ở chỉ số GỐC. Chỉ số mặc định là 0.\n"
+"      -s SỐ\tbỏ qua SỐ dòng đầu tiên được đọc.\n"
+"      -t\tgỡ bỏ một ký tự dòng mới theo sau khỏi mỗi dòng được đọc.\n"
+"      -u FD\tđọc các dòng từ bộ mô tả tập tin FD thay vào từ đầu vào tiêu "
 "chuẩn.\n"
-"\t\t-C GỌI_NGƯỢC\tđịnh giá GỌI_NGƯỢC mỗi lần đọc LƯỢNG dòng.\n"
-"\t\t-c LƯỢNG\tghi rõ số các dòng được đọc giữa hai lần gọi GỌI_NGƯỢC.\n"
+"      -C GỌI_NGƯỢC\tđịnh giá GỌI_NGƯỢC mỗi lần đọc LƯỢNG dòng.\n"
+"      -c LƯỢNG\tghi rõ số các dòng được đọc giữa hai lần GỌI_NGƯỢC.\n"
 "\n"
-"\tĐối số :\n"
-"\tMẢNG\ttên biến mảg cần dùng cho dữ liệu tập tin.\n"
+"    Đối số:\n"
+"      MẢNG\ttên biến mảng cần dùng cho dữ liệu tập tin.\n"
 "\n"
-"\tNếu đưa ra « -C » mà không có « -c » thì lượng mặc định là 5000.\n"
-"\tKhi ước lượng lời GỌI_NGƯỢC thì nó nhận chỉ số của phần tử mảng\n"
-"\tkế tiếp được gán dưới dạng một đối số bổ sung.\n"
+"    Nếu đưa ra -C mà không có -c thì lượng mặc định là 5000. Khi ước\n"
+"    lượng lời GỌI_NGƯỢC thì nó nhận chỉ số của phần tử mảng kế tiếp\n"
+"    được gán dưới dạng một đối số bổ sung.\n"
 "\n"
-"\tKhông đưa ra một GỐC dứt khoát thì mapfile (tập tin sơ đồ)\n"
-"\t\tsẽ xoá sạch MẢNG trước khi gán cho nó.\n"
+"    Không đưa ra một GỐC dứt khoát thì mapfile (tập tin sơ đồ) sẽ xoá\n"
+"    sạch MẢNG trước khi gán cho nó.\n"
 "\n"
-"\tTráng thái thoát:\n"
-"\tTrả lại thành công nếu không đưa ra tùy chọn sai và MẢNG không phải chỉ "
-"đọc."
+"    Trạng thái thoát:\n"
+"    Trả lại thành công trừ phi đưa ra tùy chọn sai và MẢNG không phải\n"
+"    chỉ đọc hay không là một mảng chỉ số."
 
-#: builtins.c:2020
+#: builtins.c:2049
 msgid ""
 "Read lines from a file into an array variable.\n"
 "    \n"
 "    A synonym for `mapfile'."
 msgstr ""
 "Đọc các dòng từ một tập tin vào một biến mảng.\n"
-"\n"
-"\tĐồng nghĩa với « mapfile »."
+"    \n"
+"    Giống chức năng của “mapfile”."
+
+#~ msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
+#~ msgstr "Tác quyền (C) năm 2009 của Tổ chức Phần mềm Tự do.\n"
+
+#~ msgid ""
+#~ "License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+#~ "html>\n"
+#~ msgstr ""
+#~ "Giấy phép GPLv2+: GNU GPL phiên bản 2 hoặc mới hơn <http://gnu.org/"
+#~ "licenses/gpl.html>\n"
 
 #~ msgid ""
 #~ ".  With EXPR, returns\n"