Imported Upstream version 2.0.90
[platform/upstream/kbd.git] / po / vi.po
index d00aba0..05d4c18 100644 (file)
--- a/po/vi.po
+++ b/po/vi.po
 # Vietnamese translation for KBD.
-# Copyright © 2009 Free Software Foundation, Inc.
+# Bản dịch tiếng Việt dành cho kdb.
+# Copyright © 2015 Free Software Foundation, Inc.
 # This file is distributed under the same license as the kbd package.
 # Phan Vinh Thinh <teppi82@gmail.com>, 2005.
-# Clytie Siddall <clytie@riverland.net.au>, 2008-2009.
+# Clytie Siddall <clytie@riverland.net.au>, 2008-2010.
+# Trần Ngọc Quân <vnwildman@gmail.com>, 2012-2014, 2015, 2016.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: kbd 1.15.1\n"
+"Project-Id-Version: kbd 2.0.4-rc1\n"
 "Report-Msgid-Bugs-To: Alexey Gladkov <gladkov.alexey@gmail.com>\n"
-"POT-Creation-Date: 2010-04-11 01:15+0400\n"
-"PO-Revision-Date: 2009-09-24 14:56+0930\n"
-"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
-"Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
+"POT-Creation-Date: 2019-06-26 11:57+0200\n"
+"PO-Revision-Date: 2016-12-28 13:46+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"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: LocFactoryEditor 1.8\n"
+"X-Generator: Gtranslator 2.91.7\n"
+"X-Poedit-SourceCharset: UTF-8\n"
 
-#: src/chvt.c:28
-#, c-format
-msgid "usage: chvt N\n"
-msgstr "sử dụng: chvt N\n"
-
-#: src/deallocvt.c:33
-#, c-format
-msgid "%s: unknown option\n"
-msgstr "%s: tùy chọn không rõ\n"
-
-#: src/deallocvt.c:45
-#, c-format
-msgid "%s: deallocating all unused consoles failed\n"
-msgstr "%s: bỏ phân phối tất cả kênh giao tác không sử dụng không thành công\n"
-
-#: src/deallocvt.c:53
-#, c-format
-msgid "%s: 0: illegal VT number\n"
-msgstr "%s: 0: số VT không cho phép\n"
-
-#: src/deallocvt.c:57
-#, c-format
-msgid "%s: VT 1 is the console and cannot be deallocated\n"
-msgstr "%s: VT 1 là một kênh giao tác và không thể bị bỏ phân phối\n"
-
-#: src/deallocvt.c:63
-#, c-format
-msgid "%s: could not deallocate console %d\n"
-msgstr "%s: không thể bỏ phân phối kênh giao tác %d\n"
-
-#: src/dumpkeys.c:66
-#, c-format
-msgid "KDGKBENT error at index 0 in table %d\n"
-msgstr "Lỗi KDGKBENT tại chỉ mục 0 trong bảng %d\n"
-
-#: src/dumpkeys.c:79
-#, c-format
-msgid "%s: cannot find any keymaps?\n"
-msgstr "%s: không tìm thấy sơ đồ bàn phím (keymap) nào?\n"
-
-#: src/dumpkeys.c:84
-#, c-format
-msgid "%s: plain map not allocated? very strange ...\n"
-msgstr "%s: sơ đồ đơn giản chưa được phân phối? rất kỳ lạ ...\n"
-
-#: src/dumpkeys.c:118
-#, c-format
-msgid "KDGKBENT error at index %d in table %d\n"
-msgstr "Lỗi KDGKBENT tại chỉ mục %d trong bảng %d\n"
-
-#: src/dumpkeys.c:272
-#, c-format
-msgid "keycode range supported by kernel:           1 - %d\n"
-msgstr "phạm vi mã phím (keycode) được nhân hỗ trợ: 1 - %d\n"
-
-#: src/dumpkeys.c:274
-#, c-format
-msgid "max number of actions bindable to a key:         %d\n"
-msgstr "số hành động lớn nhất mà một phím chấp nhận:         %d\n"
-
-#: src/dumpkeys.c:277
-#, c-format
-msgid "number of keymaps in actual use:                 %d\n"
-msgstr "số sơ đồ bàn phím (keymap) sử dụng trên thực tế:    %d\n"
-
-#: src/dumpkeys.c:280
-#, c-format
-msgid "of which %d dynamically allocated\n"
-msgstr "%d được phân phối tự động\n"
-
-#: src/dumpkeys.c:281
-#, c-format
-msgid "ranges of action codes supported by kernel:\n"
-msgstr "phạm vi mã hành động được nhân hỗ trợ:\n"
-
-#: src/dumpkeys.c:286
-#, c-format
-msgid "number of function keys supported by kernel: %d\n"
-msgstr "số phím chức năng được nhân hỗ trợ: %d\n"
-
-#: src/dumpkeys.c:289
-#, c-format
-msgid "max nr of compose definitions: %d\n"
-msgstr "nr lớn nhất của định nghĩa soạn: %d\n"
-
-#: src/dumpkeys.c:291
-#, c-format
-msgid "nr of compose definitions in actual use: %d\n"
-msgstr "nr của định nghĩa soạn sử dụng trên thực tế: %d\n"
-
-#: src/dumpkeys.c:316
-#, c-format
-msgid ""
-"Symbols recognized by %s:\n"
-"(numeric value, symbol)\n"
-"\n"
-msgstr ""
-"Ký tự được nhận ra bởi %s:\n"
-"(giá trị số, ký tự)\n"
-"\n"
-
-#: src/dumpkeys.c:329
-#, c-format
+#: src/chvt.c:22
+#, fuzzy, c-format
 msgid ""
+"Usage: %s [option...] N\n"
 "\n"
-"The following synonyms are recognized:\n"
+"Valid options are:\n"
 "\n"
+"  -h --help          display this help text\n"
+"  -V --version       print version number\n"
 msgstr ""
+"%s phiên bản %s\n"
 "\n"
-"Những từ đồng nghĩa sau được nhận ra:\n"
+"Cách dùng: %s [tùy_chọn]\n"
 "\n"
+"Tùy chọn hợp lệ:\n"
+"\n"
+"\t-h --help            hiển thị trợ giúp này\n"
+"\t-V --version         hiển thị phiên bản chương trình\n"
+"\t-n --next-available  hiển thị số thứ tự của VT được cấp phát kế tiếp\n"
 
-#: src/dumpkeys.c:331
+#: src/chvt.c:61
 #, c-format
-msgid "%-15s for %s\n"
-msgstr "%-15s cho %s\n"
+msgid "Argument required\n"
+msgstr ""
 
-#: src/dumpkeys.c:333
-#, c-format
+#: src/chvt.c:66 src/clrunimap.c:29 src/deallocvt.c:70 src/dumpkeys.c:158
+#: src/fgconsole.c:67 src/getkeycodes.c:42 src/getunimap.c:70 src/kbdinfo.c:96
+#: src/kbd_mode.c:100 src/loadkeys.c:171 src/loadunimap.c:80 src/mapscrn.c:55
+#: src/openvt.c:256 src/resizecons.c:164 src/setfont.c:191 src/setkeycodes.c:47
+#: src/setlogcons.c:35 src/setmetamode.c:119 src/setpalette.c:36
+#: src/setvesablank.c:32 src/setvtrgb.c:154 src/showconsolefont.c:149
+#: src/showkey.c:189 src/totextmode.c:32
+msgid "Couldn't get a file descriptor referring to the console"
+msgstr "Không thể lấy mô tả tập tin mà chỉ đến thiết bị điều khiển"
+
+#: src/deallocvt.c:24
+#, fuzzy, c-format
 msgid ""
+"Usage: %s [option...] [N ...]\n"
 "\n"
-"Recognized modifier names and their column numbers:\n"
+"Valid options are:\n"
+"\n"
+"  -h --help          display this help text\n"
+"  -V --version       print version number\n"
 msgstr ""
+"%s phiên bản %s\n"
 "\n"
-"Nhận ra tên modifier và số cột của chúng:\n"
+"Cách dùng: %s [tùy_chọn]\n"
+"\n"
+"Tùy chọn hợp lệ:\n"
+"\n"
+"\t-h --help            hiển thị trợ giúp này\n"
+"\t-V --version         hiển thị phiên bản chương trình\n"
+"\t-n --next-available  hiển thị số thứ tự của VT được cấp phát kế tiếp\n"
 
-#: src/dumpkeys.c:398
+#: src/deallocvt.c:64
 #, c-format
-msgid "# not alt_is_meta: on keymap %d key %d is bound to"
-msgstr ""
-"# không alt_is_meta: trên sơ đồ phím (keymap) %d phím %d được ràng buộc tới"
+msgid "%s: unknown option\n"
+msgstr "%s: không hiểu tùy chọn\n"
 
-#: src/dumpkeys.c:475
-#, c-format
-msgid "impossible: not meta?\n"
-msgstr "không thể: không phải meta?\n"
+#: src/deallocvt.c:81
+msgid "0: illegal VT number\n"
+msgstr "0: số VT không hợp lệ\n"
 
-#: src/dumpkeys.c:532
+#: src/deallocvt.c:83
+msgid "VT 1 is the console and cannot be deallocated\n"
+msgstr "VT 1 là một thiết bị điều khiển và không thể bị bỏ phân phối\n"
+
+#: src/deallocvt.c:85
 #, c-format
-msgid "KDGKBSENT failed at index %d: "
-msgstr "KDGKBSENT lỗi tại chỉ mục %d: "
+msgid "could not deallocate console %d: ioctl VT_DISALLOCATE"
+msgstr "không thể bỏ phân phối thiết bị điều khiển %d: ioctl VT_DISALLOCATE"
 
-#: src/dumpkeys.c:552
+#: src/dumpkeys.c:30
 #, c-format
 msgid "dumpkeys version %s"
 msgstr "phiên bản dumpkeys %s"
 
-#: src/dumpkeys.c:553
+#: src/dumpkeys.c:31
 #, c-format
 msgid ""
 "\n"
@@ -175,34 +111,36 @@ msgid ""
 "\n"
 "\t-h --help\t    display this help text\n"
 "\t-i --short-info\t    display information about keyboard driver\n"
-"\t-l --long-info\t    display above and symbols known to loadkeys\n"
+"\t-l -s --long-info   display above and symbols known to loadkeys\n"
 "\t-n --numeric\t    display keytable in hexadecimal notation\n"
 "\t-f --full-table\t    don't use short-hand notations, one row per keycode\n"
 "\t-1 --separate-lines one line per (modifier,keycode) pair\n"
-"\t   --funcs-only\t    display only the function key strings\n"
-"\t   --keys-only\t    display only key bindings\n"
-"\t   --compose-only   display only compose key combinations\n"
+"\t-S --shape=\n"
+"\t-t --funcs-only\t    display only the function key strings\n"
+"\t-k --keys-only\t    display only key bindings\n"
+"\t-d --compose-only   display only compose key combinations\n"
 "\t-c --charset="
 msgstr ""
 "\n"
-"sử dụng: dumpkeys [tùy chọn...]\n"
+"cách dùng: dumpkeys [tùy chọn…]\n"
 "\n"
-"Tùy chọn có thể sử dụng:\n"
+"Tùy chọn có thể ng:\n"
 "\n"
 "\t-h --help\t    hiển thị trợ giúp này\n"
-"\t-i --short-info\t    hiển thị thôngtin về driver bàn phím\n"
+"\t-i -s --short-info  hiển thị thông tin về driver bàn phím\n"
 "\t-l --long-info\t    hiển thị thông tin ở trên và những ký tự loadkeys biết "
 "đến\n"
 "\t-n --numeric\t    hiển thị bảng phím (keytable) trong mã mười sáu\n"
-"\t-f --full-table\t    không sử dụng ký hiệu \"tay ngắn\" (short-hand), một "
+"\t-f --full-table\t    không sử dụng ký hiệu \"viết tắt\" (short-hand), một "
 "hàng cho mỗi mã phím\n"
 "\t-1 --separate-lines một dòng cho mỗi cặp (modifier, mã phím)\n"
-"\t   --funcs-only\t    chỉ hiển thị chuỗi của phím chức năng\n"
-"\t   --keys-only\t    chỉ hiện thị phím ràng buộc\n"
-"\t   --compose-only   chỉ hiện thị tổ hợp phím soạn thảo\n"
+"\t-S --shape=\n"
+"\t-t --funcs-only\t    chỉ hiển thị chuỗi của phím chức năng\n"
+"\t-k --keys-only\t    chỉ hiện thị phím ràng buộc\n"
+"\t-d --compose-only   chỉ hiện thị tổ hợp phím soạn thảo\n"
 "\t-c --charset="
 
-#: src/dumpkeys.c:570
+#: src/dumpkeys.c:49
 #, c-format
 msgid ""
 "\t\t\t    interpret character action codes to be from the\n"
@@ -211,7 +149,37 @@ msgstr ""
 "\t\t\t    dịch mã hoạt động của phím từ\n"
 "\t\t\t    bảng mã chỉ ra\n"
 
-#: src/fgconsole.c:17
+#: src/dumpkeys.c:53
+#, c-format
+msgid ""
+"\t-v --verbose\n"
+"\t-V --version\t    print version number\n"
+msgstr ""
+"\t-v --verbose\n"
+"\t-V --version\t    hiển thị số hiệu phiên bản\n"
+
+#: src/dumpkeys.c:136
+#, c-format
+msgid "unknown charset %s - ignoring charset request\n"
+msgstr "không rõ bảng mã %s - lờ đi yêu cầu bảng mã\n"
+
+#: src/dumpkeys.c:162 src/loadkeys.c:176
+#, c-format
+msgid "%s: error reading keyboard mode: %m\n"
+msgstr "%s: gặp lỗi khi đọc chế độ bàn phím: %m\n"
+
+#: src/dumpkeys.c:178
+#, c-format
+msgid ""
+"Symbols recognized by %s:\n"
+"(numeric value, symbol)\n"
+"\n"
+msgstr ""
+"Ký hiệu được nhận ra bởi %s:\n"
+"(giá trị số, ký hiệu)\n"
+"\n"
+
+#: src/fgconsole.c:21
 #, c-format
 msgid ""
 "%s version %s\n"
@@ -226,7 +194,7 @@ msgid ""
 msgstr ""
 "%s phiên bản %s\n"
 "\n"
-"Sử dụng: %s [tùy_chọn]\n"
+"Cách dùng: %s [tùy_chọn]\n"
 "\n"
 "Tùy chọn hợp lệ:\n"
 "\n"
@@ -234,34 +202,20 @@ msgstr ""
 "\t-V --version         hiển thị phiên bản chương trình\n"
 "\t-n --next-available  hiển thị số thứ tự của VT được cấp phát kế tiếp\n"
 
-#: src/fgconsole.c:68
+#: src/fgconsole.c:71
 msgid "Couldn't read VTNO: "
 msgstr "Không thể đọc VTNO: "
 
-#: src/findfile.c:46
-#, c-format
-msgid "error executing  %s\n"
-msgstr "lỗi thực hiện  %s\n"
-
-#: src/getfd.c:59
-#, c-format
-msgid "Couldn't open %s\n"
-msgstr "Không thể mở %s\n"
-
-#: src/getfd.c:88 src/openvt.c:124
-#, c-format
-msgid "Couldn't get a file descriptor referring to the console\n"
-msgstr "Không thể lấy trình mô tả tập tin mà chỉ đến kênh giao tác\n"
-
-#: src/getkeycodes.c:18
+#: src/getkeycodes.c:22
 #, c-format
 msgid "usage: getkeycodes\n"
-msgstr "sử dụng: getkeycodes\n"
+msgstr "cách dùng: getkeycodes\n"
 
 #: src/getkeycodes.c:57
 #, c-format
 msgid "Plain scancodes xx (hex) versus keycodes (dec)\n"
-msgstr "Mã quét (scancode) đơn giản xx (hệ mười sáu) với mã phím (hệ mười)\n"
+msgstr ""
+"Mã quét (scancode) đơn giản xx (hệ mười sáu) đối lập với mã phím (hệ mười)\n"
 
 #: src/getkeycodes.c:60
 #, c-format
@@ -284,486 +238,630 @@ msgid ""
 msgstr ""
 "\n"
 "\n"
-"Mã quét (scancode) thoát e0 xx (hệ mười sáu)\n"
+"Mã quét (scancode) thoát e0xx (hệ bát phân)\n"
 
-#: src/getkeycodes.c:94
+#: src/getkeycodes.c:92
 #, c-format
-msgid "failed to get keycode for scancode 0x%x\n"
-msgstr "lấy mã phím (keycode) cho mã quét (scancode) 0x%x không thành công\n"
+msgid "failed to get keycode for scancode 0x%x: ioctl KDGETKEYCODE"
+msgstr ""
+"gặp lỗi khi lấy mã phím (keycode) cho mã quét (scancode) 0x%x: ioctl "
+"KDGETKEYCODE"
 
-#: src/getunimap.c:29
+#: src/getunimap.c:33
 #, c-format
 msgid ""
 "Usage:\n"
 "\t%s [-s] [-C console]\n"
 msgstr ""
-"Sử dụng:\n"
-"\t%s [-s] [-C kênh giao tác]\n"
+"Cách dùng:\n"
+"\t%s [-s] [-C thiết bị điều khiển]\n"
 
-#: src/kbd_mode.c:20
-#, c-format
-msgid "usage: kbd_mode [-a|-u|-k|-s] [-C device]\n"
-msgstr "sử dụng: kbd_mode [-a|-u|-k|-s] [-C thiết_bị]\n"
+#: src/kbdinfo.c:22
+#, fuzzy, c-format
+msgid ""
+"Usage: %1$s [options] getmode [text|graphics]\n"
+"   or: %1$s [options] gkbmode [raw|xlate|mediumraw|unicode]\n"
+"   or: %1$s [options] gkbmeta [metabit|escprefix]\n"
+"   or: %1$s [options] gkbled  [scrolllock|numlock|capslock]\n"
+"\n"
+"The utility allows to read and check various parameters\n"
+"of the keyboard and virtual console.\n"
+"\n"
+"Options:\n"
+"  -C, --console=DEV  the console device to be used;\n"
+"  -V, --version      print version number;\n"
+"  -h, --help         print this usage message.\n"
+msgstr ""
+"Cách dùng: %1$s [-C THIẾT-BỊ] getmode [text|graphics]\n"
+"     hoặc: %1$s [-C THIẾT-BỊ] gkbmode [raw|xlate|mediumraw|unicode]\n"
+"     hoặc: %1$s [-C THIẾT-BỊ] gkbmeta [metabit|escprefix]\n"
+"     hoặc: %1$s [-C THIẾT-BỊ] gkbled  [scrolllock|numlock|capslock]\n"
+"Các tùy chọn khác:\n"
+"   -h                   in cách dùng này\n"
+"   -V                   hiển thị số hiệu phiên bản\n"
+
+#: src/kbdinfo.c:87
+msgid "Error: Not enough arguments.\n"
+msgstr "Lỗi: không có đủ đối số.\n"
 
-#: src/kbd_mode.c:81
+#: src/kbdinfo.c:162
 #, c-format
-msgid "kbd_mode: error reading keyboard mode\n"
-msgstr "kbd_mode: lỗi đọc chế độ bàn phím\n"
+msgid "Error: Unrecognized action: %s\n"
+msgstr "Lỗi: Thao tác không được chấp nhận: %s\n"
+
+#: src/kbd_mode.c:24
+#, fuzzy, c-format
+msgid "usage: kbd_mode [-a|-u|-k|-s] [-f] [-C device]\n"
+msgstr "cách dùng: kbd_mode [-a|-u|-k|-s] [-C thiết_bị]\n"
 
-#: src/kbd_mode.c:86
+#: src/kbd_mode.c:33
 #, c-format
 msgid "The keyboard is in raw (scancode) mode\n"
 msgstr "Bàn phím ở trong chế độ thô (scancode)\n"
 
-#: src/kbd_mode.c:89
+#: src/kbd_mode.c:36
 #, c-format
 msgid "The keyboard is in mediumraw (keycode) mode\n"
-msgstr "Bn phím ở trong chế độ thô trung bình (keycode)\n"
+msgstr "Bàn phím ở trong chế độ thô trung bình (keycode)\n"
 
-#: src/kbd_mode.c:92
+#: src/kbd_mode.c:39
 #, c-format
 msgid "The keyboard is in the default (ASCII) mode\n"
-msgstr "Bn phím ở trong chế độ mặc định (ASCII)\n"
+msgstr "Bàn phím ở trong chế độ mặc định (ASCII)\n"
 
-#: src/kbd_mode.c:95
+#: src/kbd_mode.c:42
 #, c-format
 msgid "The keyboard is in Unicode (UTF-8) mode\n"
-msgstr "Bn phím ở trong chế độ Unicode (UTF-8)\n"
+msgstr "Bàn phím ở trong chế độ Unicode (UTF-8)\n"
 
-#: src/kbd_mode.c:98
+#: src/kbd_mode.c:45
 #, c-format
 msgid "The keyboard is in some unknown mode\n"
-msgstr "Bàn phím ở trong một chế độ không biết đến\n"
+msgstr "Bàn phím ở trong một chế độ chưa được biết đến\n"
 
-#: src/kbd_mode.c:105
+#: src/kbd_mode.c:124
 #, c-format
-msgid "%s: error setting keyboard mode\n"
-msgstr "%s: lỗi thiết lập chế độ bàn phím\n"
+msgid ""
+"Changing to the requested mode may make your keyboard unusable, please use -"
+"f to force the change.\n"
+msgstr ""
+
+#: src/kbdrate.c:139 src/kbdrate.c:204
+#, fuzzy, c-format
+msgid "Typematic Rate is %.1f cps\n"
+msgstr "Tốc độ “Typematic” đặt thành  %.1f cps (chậm trễ = %d ms)\n"
 
-#: src/kbdrate.c:156 src/kbdrate.c:175 src/kbdrate.c:339
+#: src/kbdrate.c:140 src/kbdrate.c:205
+#, fuzzy, c-format
+msgid "Current keyboard delay %d ms\n"
+msgstr "%s: gặp lỗi khi đọc chế độ bàn phím: %m\n"
+
+#: src/kbdrate.c:141
+#, fuzzy, c-format
+msgid "Current keyboard period %d ms\n"
+msgstr "%s: gặp lỗi khi đọc chế độ bàn phím: %m\n"
+
+#: src/kbdrate.c:179 src/kbdrate.c:303
 #, c-format
 msgid "Typematic Rate set to %.1f cps (delay = %d ms)\n"
-msgstr "Tá»· lá»\87 Typematic đặt thành  %.1f cps (chậm trễ = %d ms)\n"
+msgstr "Tá»\91c Ä\91á»\99 â\80\9cTypematicâ\80\9d đặt thành  %.1f cps (chậm trễ = %d ms)\n"
 
-#: src/kbdrate.c:267
+#: src/kbdrate.c:248
 #, c-format
-msgid "Usage: kbdrate [-V] [-s] [-r rate] [-d delay]\n"
-msgstr "Sử dụng: kbdrate [-V] [-s] [-r rate] [-d trì hoãn]\n"
+msgid "Not supported\n"
+msgstr ""
 
-#: src/kbdrate.c:297
+#: src/kbdrate.c:269
 msgid "Cannot open /dev/port"
 msgstr "Không thể mở /dev/port"
 
-#: src/kdfontop.c:197
+#: src/kbdrate.c:321
+#, c-format
+msgid ""
+"Usage: kbdrate [options...]\n"
+"\n"
+"The prorgam sets the keyboard repeat rate and delay in user mode.\n"
+"\n"
+"Options:\n"
+"\n"
+"  -r, --rate=NUM    set the rate in characters per second (default %.1f);\n"
+"  -d, --delay=NUM   set the amount of time the key must remain\n"
+"                    depressed before it will start to repeat (default %d);\n"
+"  -s, --silent      suppress all normal output;\n"
+"  -h, --help        display this help text;\n"
+"  -V, --version     print version number.\n"
+"\n"
+msgstr ""
+
+#: src/kdfontop.c:98
 #, c-format
 msgid "bug: getfont called with count<256\n"
-msgstr "lỗi (bug): getfont gọi với số đếm <256\n"
+msgstr "lỗi (bug): getfont được gọi với số lượng <256\n"
 
-#: src/kdfontop.c:201
+#: src/kdfontop.c:102
 #, c-format
 msgid "bug: getfont using GIO_FONT needs buf.\n"
-msgstr "lỗi (bug): getfont dùng GIO_FONT thì dùng buf.\n"
+msgstr "lỗi: getfont dùng GIO_FONT thì dùng buf.\n"
 
-#: src/kdfontop.c:258 src/xmalloc.c:19
+#: src/kdfontop.c:159 src/kdmapop.c:153 src/libcommon/xmalloc.c:17
 #, c-format
 msgid "%s: out of memory\n"
-msgstr "%s: tràn bộ nhớ\n"
+msgstr "%s: hết bộ nhớ\n"
 
-#: src/ksyms.c:1707
+#: src/kdmapop.c:162
 #, c-format
-msgid "unknown charset %s - ignoring charset request\n"
-msgstr "không rõ bảng mã %s - lờ đi yêu cầu bảng mã\n"
+msgid "strange... ct changed from %d to %d\n"
+msgstr "lạ thật… ct bị thay đổi từ %d thành %d\n"
 
-#: src/ksyms.c:1813
+#: src/kdmapop.c:188
 #, c-format
-msgid "assuming iso-8859-1 %s\n"
-msgstr "coi như iso-8859-1 %s\n"
+msgid ""
+"It seems this kernel is older than 1.1.92\n"
+"No Unicode mapping table loaded.\n"
+msgstr ""
+"Hình như là nhân (kernel) có phiên bản cũ hơn 1.1.92\n"
+"Không có bảng ánh xạ Unicode được tải lên.\n"
 
-#: src/ksyms.c:1820
+#: src/libcommon/getfd.c:70
 #, c-format
-msgid "assuming iso-8859-15 %s\n"
-msgstr "coi như iso-8859-15 %s\n"
+msgid "Couldn't open %s\n"
+msgstr "Không thể mở %s\n"
 
-#: src/ksyms.c:1827
+#: src/libcommon/getfd.c:87
 #, c-format
-msgid "assuming iso-8859-2 %s\n"
-msgstr "coi như iso-8859-2 %s\n"
+msgid "Couldn't get a file descriptor referring to the console\n"
+msgstr "Không thể lấy bộ mô tả tập tin mà nó chỉ đến thiết bị điều khiển\n"
 
-#: src/ksyms.c:1834
+#: src/libcommon/version.c:27
 #, c-format
-msgid "assuming iso-8859-3 %s\n"
-msgstr "coi như iso-8859-3 %s\n"
+msgid "%s from %s\n"
+msgstr "%s từ %s\n"
+
+#: src/libkeymap/common.c:135 src/libkeymap/kmap.c:61 src/libkeymap/kmap.c:69
+#: src/libkeymap/loadkeys.c:126
+msgid "out of memory"
+msgstr "hết bộ nhớ"
 
-#: src/ksyms.c:1841
+#: src/libkeymap/common.c:141
 #, c-format
-msgid "assuming iso-8859-4 %s\n"
-msgstr "coi như iso-8859-1 %s\n"
+msgid "unable to initialize array: %s"
+msgstr "không thể khởi tạo mảng: %s"
 
-#: src/ksyms.c:1846
+#: src/libkeymap/dump.c:85
+msgid "Error writing map to file"
+msgstr "Lỗi ghi nhớ ánh xạ vào tập tin"
+
+#: src/libkeymap/dump.c:543
 #, c-format
-msgid "unknown keysym '%s'\n"
-msgstr "không rõ ký tự phím (keysym) '%s'\n"
+msgid "impossible: not meta?\n"
+msgstr "không thể: không phải meta?\n"
 
-#: loadkeys.y:166
+#: src/libkeymap/kernel.c:27
 #, c-format
-msgid "'%s' is not a function key symbol"
-msgstr "« %s » không phải là một ký hiệu phím chức năng"
+msgid "table %d must be less than %d"
+msgstr ""
 
-#: loadkeys.y:235
+#: src/libkeymap/kernel.c:32
 #, c-format
-msgid "too many (%d) entries on one line"
-msgstr "quá nhiều (%d) mục nhập trên cùng một dòng"
+msgid "index %d must be less than %d"
+msgstr ""
 
-#: loadkeys.y:248
-msgid "too many key definitions on one line"
-msgstr "quá nhiều lời xác định trên cùng một dòng"
+#: src/libkeymap/kernel.c:40
+#, c-format
+msgid "KDGKBENT: %s: error at index %d in table %d"
+msgstr "KDGKBENT: %s: có lỗi tại chỉ mục %d trong bảng %d"
 
-#: loadkeys.y:271
+#: src/libkeymap/kernel.c:66
 #, c-format
-msgid ""
-"loadkeys version %s\n"
-"\n"
-"Usage: loadkeys [option...] [mapfile...]\n"
-"\n"
-"Valid options are:\n"
-"\n"
-"  -b --bkeymap       output a binary keymap to stdout\n"
-"  -c --clearcompose  clear kernel compose table\n"
-"  -C <cons1,cons2,...> --console=<cons1,cons2,...>\n"
-"                     the console device(s) to be used\n"
-"  -d --default       load \"%s\"\n"
-"  -h --help          display this help text\n"
-"  -m --mktable       output a \"defkeymap.c\" to stdout\n"
-"  -q --quiet         suppress all normal output\n"
-"  -s --clearstrings  clear kernel string table\n"
-"  -u --unicode       force conversion to Unicode\n"
-"  -v --verbose       report the changes\n"
+msgid "function index %d must be less than %d"
 msgstr ""
-"loadkeys phiên bản %s\n"
-"\n"
-"Sử dụng: loadkeys [tùy_chọn...] [tập_tin_sơ_đồ...]\n"
-"\n"
-"Tùy chọn hợp lệ:\n"
-"\n"
-"  -b --bkeymap       xuất một sơ đồ phím ra đầu ra tiêu chuẩn\n"
-"  -c --clearcompose  xoá sạch bảng cấu tạo hạt nhân\n"
-"  -C <thiết_bị1,thiết_bị2,...> --console=<thiết_bị1,thiết_bị2,...>\n"
-"                     những thiết bị bàn giao tiếp cần dùng\n"
-"  -d --default       nạp \"%s\"\n"
-"  -h --help          hiển thị trợ giúp này\n"
-"  -m --mktable       xuất một \"defkeymap.c\" ra đầu ra tiêu chuẩn\n"
-" -q --quiet         thu hồi tất cả kết xuất bình thường\n"
-"  -s --clearstrings  xoá sạch bảng chuỗi hạt nhân\n"
-"  -u --unicode       chuyển đổi dứt khoát sang Unicode\n"
-"  -v --verbose       thông báo các thay đổi\n"
 
-#: loadkeys.y:375
-#, fuzzy, c-format
-msgid "%s: error reading keyboard mode\n"
-msgstr "%s: lỗi thiết lập chế độ bàn phím\n"
+#: src/libkeymap/kernel.c:72
+#, c-format
+msgid "KDGKBSENT: %s: Unable to get function key string"
+msgstr "KDGKBSENT: %s: Không thể lấy chuỗi khóa hàm"
 
-#: loadkeys.y:385
+#: src/libkeymap/kernel.c:102
 #, c-format
-msgid ""
-"%s: warning: loading Unicode keymap on non-Unicode console\n"
-"    (perhaps you want to do `kbd_mode -u'?)\n"
-msgstr ""
+msgid "KDGKBDIACR(UC): %s: Unable to get accent table"
+msgstr "KDGKBDIACR(UC): %s: Không thể lấy bảng trọng âm"
 
-#: loadkeys.y:395
+#: src/libkeymap/kmap.c:83 src/libkeymap/kmap.c:101
 #, c-format
-msgid "syntax error in map file\n"
-msgstr "lỗi cú pháp trong tập tin sơ đồ\n"
+msgid "unable to get keymap %d"
+msgstr "không thể lấy ánh xạ phím %d"
 
-#: loadkeys.y:397
+#: src/libkeymap/kmap.c:109
 #, c-format
-msgid "key bindings not changed\n"
-msgstr "chưa thay đổi tổ hợp phím\n"
+msgid "unable to unset key %d for table %d"
+msgstr "không thể bỏ đặt phím %d cho bảng %d"
 
-#: loadkeys.y:474
-msgid "includes are nested too deeply"
-msgstr "những tập tin bao gồm lồng nhau quá sâu"
+#: src/libkeymap/kmap.c:125
+#, c-format
+msgid "lk_add_key called with bad keycode %d"
+msgstr "lk_add_key được gọi với mã phím sai %d"
 
-#: loadkeys.y:629
+#: src/libkeymap/kmap.c:132
 #, c-format
-msgid "switching to %s\n"
-msgstr "đang chuyển đổi sang %s\n"
+msgid "adding map %d violates explicit keymaps line"
+msgstr "việc thêm ánh xạ %d thì vi phạm dòng ánh xạ phím dứt khoát"
 
-#: loadkeys.y:635
+#: src/libkeymap/kmap.c:148
 #, c-format
-msgid "cannot open include file %s"
-msgstr "không thể mở tập tin bao gồm %s"
+msgid "unable to set key %d for table %d"
+msgstr "không thể đặt phím %d cho bảng %d"
 
-#: loadkeys.y:682
+#: src/libkeymap/kmap.c:239
+msgid "impossible error in lk_add_constants"
+msgstr "gần như chắc chắn là lk_add_constans có chứa lỗi"
+
+#: src/libkeymap/ksyms.c:151
 #, c-format
-msgid "Cannot find %s\n"
-msgstr "Không tìm thấy %s\n"
+msgid "unable to get symbol by wrong type: %d"
+msgstr "không thể lấy ký hiệu bằng kiểu sai: %d"
 
-#: loadkeys.y:695
+#: src/libkeymap/ksyms.c:165
 #, c-format
-msgid "cannot open file %s\n"
-msgstr "không mở được tập tin %s\n"
+msgid "unable to get symbol of %d type by wrong index: %d"
+msgstr "không thể lấy ký hiệu của kiểu %d bằng chỉ số sai: %d"
 
-#: loadkeys.y:706
+#: src/libkeymap/ksyms.c:340
 #, c-format
-msgid "Loading %s\n"
-msgstr "Đang nạp %s\n"
+msgid "assuming iso-8859-1 %s"
+msgstr "coi là iso-8859-1 %s"
 
-#: loadkeys.y:718
+#: src/libkeymap/ksyms.c:346
 #, c-format
-msgid "addmap called with bad index %d"
-msgstr "addmap được gọi với chỉ mục sai %d"
+msgid "assuming iso-8859-15 %s"
+msgstr "coi là iso-8859-15 %s"
 
-#: loadkeys.y:722
+#: src/libkeymap/ksyms.c:352
 #, c-format
-msgid "adding map %d violates explicit keymaps line"
-msgstr "việc thêm sơ đồ %d thì vi phạm dòng sơ đồ phím dứt khoát"
+msgid "assuming iso-8859-2 %s"
+msgstr "coi là iso-8859-2 %s"
 
-#: loadkeys.y:736
+#: src/libkeymap/ksyms.c:358
 #, c-format
-msgid "killkey called with bad index %d"
-msgstr "killkey được gọi với chỉ mục sai %d"
+msgid "assuming iso-8859-3 %s"
+msgstr "coi là iso-8859-3 %s"
 
-#: loadkeys.y:738
+#: src/libkeymap/ksyms.c:364
 #, c-format
-msgid "killkey called with bad table %d"
-msgstr "killkey được gọi với bảng sai %d"
+msgid "assuming iso-8859-4 %s"
+msgstr "coi là iso-8859-4 %s"
 
-#: loadkeys.y:752
+#: src/libkeymap/ksyms.c:369
 #, c-format
-msgid "addkey called with bad keycode %d"
-msgstr "addkey được gọi với mã phím sai %d"
+msgid "unknown keysym '%s'\n"
+msgstr "không rõ ký tự phím (keysym) “%s”\n"
 
-#: loadkeys.y:754
+#: src/libkeymap/loadkeys.c:27
 #, c-format
-msgid "addkey called with bad index %d"
-msgstr "addkey được gọi với chỉ mục sai %d"
+msgid "KDSKBMODE: %s: could not switch to Unicode mode"
+msgstr "KDSKBMODE: %s: không thể chuyển đổi sang chế độ Unicode"
+
+#: src/libkeymap/loadkeys.c:44
+#, fuzzy, c-format
+msgid "can not bind key %d to value %d because it is too large"
+msgstr "gặp lỗi khi tổ hợp phím %d với giá trị %d"
 
-#: loadkeys.y:756
+#: src/libkeymap/loadkeys.c:56
 #, c-format
-msgid "addkey called with bad table %d"
-msgstr "addkey được gọi với bảng sai %d"
+msgid "Keymap %d: Permission denied"
+msgstr "Ánh xạ phím %d: Không đủ quyền"
 
-#: loadkeys.y:797
+#: src/libkeymap/loadkeys.c:64
 #, c-format
-msgid "%s: addfunc called with bad func %d\n"
-msgstr "%s: addfunc được gọi với hàm sai %d\n"
+msgid "keycode %d, table %d = %d%s"
+msgstr "mã phím %d, bảng %d = %d%s"
 
-#: loadkeys.y:825
+#: src/libkeymap/loadkeys.c:65
+msgid "    FAILED"
+msgstr "    GẶP-LỖI"
+
+#: src/libkeymap/loadkeys.c:68
 #, c-format
-msgid "%s: addfunc: func_buf overflow\n"
-msgstr "%s: addfunc: tràn func_buf\n"
+msgid "failed to bind key %d to value %d"
+msgstr "gặp lỗi khi tổ hợp phím %d với giá trị %d"
 
-#: loadkeys.y:852
+#: src/libkeymap/loadkeys.c:78
 #, c-format
-msgid "compose table overflow\n"
-msgstr "tràn bảng cấu tạo\n"
+msgid "deallocate keymap %d"
+msgstr "giải cấp phát ánh xạ phím %d"
 
-#: loadkeys.y:871
-#, fuzzy, c-format
-msgid "%s: could not switch to Unicode mode\n"
-msgstr "%s: không thể bỏ phân phối kênh giao tác %d\n"
+#: src/libkeymap/loadkeys.c:82
+#, c-format
+msgid "KDSKBENT: %s: could not deallocate keymap %d"
+msgstr "KDSKBENT: %s: không thể giải cấp phát ánh xạ phím %d"
 
-#: loadkeys.y:888
+#: src/libkeymap/loadkeys.c:97
 #, c-format
-msgid "Keymap %d: Permission denied\n"
-msgstr "Sơ đồ phím %d: không đủ quyền\n"
+msgid "KDSKBENT: %s: cannot deallocate or clear keymap"
+msgstr "KDSKBENT: %s: không thể giải cấp phát hay xóa sạch ánh xạ phím"
 
-#: loadkeys.y:896
+#: src/libkeymap/loadkeys.c:107
 #, c-format
-msgid "keycode %d, table %d = %d%s\n"
-msgstr "mã phím %d, bảng %d = %d%s\n"
+msgid "KDSKBMODE: %s: could not return to original keyboard mode"
+msgstr "KDSKBMODE: %s: không thể trở về chế độ bàn phím gốc"
 
-#: loadkeys.y:897
-msgid "    FAILED"
-msgstr "    LỖI"
+#: src/libkeymap/loadkeys.c:170
+#, c-format
+msgid "failed to bind string '%s' to function %s"
+msgstr "gặp lỗi khi ràng buộc chuỗi “%s” với hàm %s"
 
-#: loadkeys.y:900
+#: src/libkeymap/loadkeys.c:180
 #, c-format
-msgid "failed to bind key %d to value %d\n"
-msgstr "lỗi tổ hợp phím %d với giá trị %d\n"
+msgid "failed to clear string %s"
+msgstr "gặp lỗi khi xóa sạch chuỗi %s"
+
+#: src/libkeymap/loadkeys.c:198
+msgid "too many compose definitions"
+msgstr "quá nhiều định nghĩa cấu tạo"
 
-#: loadkeys.y:911
+#: src/libkeymap/loadkeys.c:267
 #, c-format
-msgid "deallocate keymap %d\n"
-msgstr "giải cấp phát sơ đồ phím %d\n"
+msgid ""
+"\n"
+"Changed %d key"
+msgid_plural ""
+"\n"
+"Changed %d keys"
+msgstr[0] ""
+"\n"
+"Đã thay đổi %d chuỗi"
 
-#: loadkeys.y:917
+#: src/libkeymap/loadkeys.c:268
 #, c-format
-msgid "%s: could not deallocate keymap %d\n"
-msgstr "%s: không thể giải cấp phát sơ đồ phím %d\n"
+msgid "Changed %d string"
+msgid_plural "Changed %d strings"
+msgstr[0] "Đã thay đổi %d chuỗi"
 
-#: loadkeys.y:932
+#: src/libkeymap/loadkeys.c:276
 #, c-format
-msgid "%s: cannot deallocate or clear keymap\n"
-msgstr "%s: không thể giải cấp phát hay xoá sạch sơ đồ phím\n"
+msgid "Loaded %d compose definition"
+msgid_plural "Loaded %d compose definitions"
+msgstr[0] "Đã tảo %d định nghĩa tổ hợp"
 
-#: loadkeys.y:943
-#, fuzzy, c-format
-msgid "%s: could not return to original keyboard mode\n"
-msgstr "%s: lỗi thiết lập chế độ bàn phím\n"
+#: src/libkeymap/loadkeys.c:281
+msgid "(No change in compose definitions)"
+msgstr "(Chưa sửa đổi phần định nghĩa cấu tạo)"
 
-#: loadkeys.y:988
+#: src/libkeymap/summary.c:95
 #, c-format
-msgid "failed to bind string '%s' to function %s\n"
-msgstr "lỗi tổ hợp chuỗi « %s » với hàm %s\n"
+msgid "keycode range supported by kernel:           1 - %d\n"
+msgstr "vùng mã phím (keycode) được nhân hỗ trợ:      1 - %d\n"
 
-#: loadkeys.y:995
+#: src/libkeymap/summary.c:97
 #, c-format
-msgid "failed to clear string %s\n"
-msgstr "lỗi xoá sạch chuỗi %s\n"
+msgid "max number of actions bindable to a key:         %d\n"
+msgstr "số hành động lớn nhất mà một phím chấp nhận:     %d\n"
 
-#: loadkeys.y:1015
+#: src/libkeymap/summary.c:99
 #, c-format
-msgid "too many compose definitions\n"
-msgstr "quá nhiều lời xác định cấu tạo\n"
+msgid "number of keymaps in actual use:                 %u\n"
+msgstr "số lượng ánh xạ phím (keymap) dùng trên thực tế: %u\n"
 
-#: loadkeys.y:1097
-msgid "impossible error in do_constant"
-msgstr "do_constant chứa một lỗi không thể phục hồi"
+#: src/libkeymap/summary.c:102
+#, c-format
+msgid "of which %u dynamically allocated\n"
+msgstr "cái mà %u được phân phối tự động\n"
 
-#: loadkeys.y:1113
+#: src/libkeymap/summary.c:105
+#, c-format
+msgid "ranges of action codes supported by kernel:\n"
+msgstr "phạm vi mã hành động được nhân hỗ trợ:\n"
+
+#: src/libkeymap/summary.c:111
+#, c-format
+msgid "number of function keys supported by kernel: %d\n"
+msgstr "số phím chức năng được nhân hỗ trợ: %d\n"
+
+#: src/libkeymap/summary.c:113
+#, c-format
+msgid "max nr of compose definitions: %d\n"
+msgstr "nr lớn nhất của định nghĩa cấu tạo: %d\n"
+
+#: src/libkeymap/summary.c:115
+#, c-format
+msgid "nr of compose definitions in actual use: %u\n"
+msgstr "nr của định nghĩa cấu tạo được dùng trên thực tế: %u\n"
+
+#: src/libkeymap/summary.c:139
 #, c-format
 msgid ""
 "\n"
-"Changed %d %s and %d %s.\n"
+"The following synonyms are recognized:\n"
+"\n"
 msgstr ""
 "\n"
-"Đã sửa đổi %d %s và %d %s.\n"
-
-#: loadkeys.y:1114
-msgid "key"
-msgstr "phím"
-
-#: loadkeys.y:1114
-msgid "keys"
-msgstr "phím"
+"Những từ đồng nghĩa sau được nhận ra:\n"
+"\n"
 
-#: loadkeys.y:1115
-msgid "string"
-msgstr "chuỗi"
+#: src/libkeymap/summary.c:142
+#, c-format
+msgid "%-15s for %s\n"
+msgstr "%-15s cho %s\n"
 
-#: loadkeys.y:1115
-msgid "strings"
-msgstr "chuỗi"
+#: src/libkeymap/summary.c:146
+#, c-format
+msgid ""
+"\n"
+"Recognized modifier names and their column numbers:\n"
+msgstr ""
+"\n"
+"Nhận ra tên bộ điều chỉnh và số cột của chúng:\n"
 
-#: loadkeys.y:1120
+#: src/loadkeys.c:33
 #, c-format
-msgid "Loaded %d compose %s.\n"
-msgstr "Đã nạp %d cấu tạo %s.\n"
+msgid ""
+"loadkeys version %s\n"
+"\n"
+"Usage: %s [option...] [mapfile...]\n"
+"\n"
+"Valid options are:\n"
+"\n"
+"  -a --ascii         force conversion to ASCII\n"
+"  -b --bkeymap       output a binary keymap to stdout\n"
+"  -c --clearcompose  clear kernel compose table\n"
+"  -C --console=file\n"
+"                     the console device to be used\n"
+"  -d --default       load \"%s\"\n"
+"  -h --help          display this help text\n"
+"  -m --mktable       output a \"defkeymap.c\" to stdout\n"
+"  -p --parse         search and parse keymap without action\n"
+"  -q --quiet         suppress all normal output\n"
+"  -s --clearstrings  clear kernel string table\n"
+"  -u --unicode       force conversion to Unicode\n"
+"  -v --verbose       report the changes\n"
+"  -V --version       print version number\n"
+msgstr ""
+"loadkeys phiên bản %s\n"
+"\n"
+"Cách dùng: %s [tùy_chọn…] [tập_tin_ánh_xạ…]\n"
+"\n"
+"Tùy chọn hợp lệ:\n"
+"\n"
+"  -a --ascii         ép buộc chuyển đổi thành ASCII\n"
+"  -b --bkeymap       xuất ánh xạ phím ra đầu ra tiêu chuẩn stdout\n"
+"  -c --clearcompose  xóa sạch bảng sắp chữ hạt nhân (kernel)\n"
+"  -C --console=TẬP-TIN\n"
+"                     những thiết bị bảng giao tiếp được dùng\n"
+"  -d --default       nạp \"%s\"\n"
+"  -h --help          hiển thị trợ giúp này\n"
+"  -m --mktable       xuất một \"defkeymap.c\" ra đầu ra tiêu chuẩn\n"
+"  -p --parse         tìm và phân tích ánh xạ phím mà không làm gì\n"
+"  -q --quiet         thu hồi tất cả kết xuất thông thường\n"
+"  -s --clearstrings  xóa sạch bảng chuỗi hạt nhân\n"
+"  -u --unicode       chuyển đổi dứt khoát sang Unicode\n"
+"  -v --verbose       thông báo các thay đổi\n"
+"  -V --version       hiển thị số hiệu phiên bản\n"
 
-#: loadkeys.y:1121
-msgid "definition"
-msgstr "lời xác định"
+#: src/loadkeys.c:163
+#, c-format
+msgid "%s: Options --unicode and --ascii are mutually exclusive\n"
+msgstr ""
+"%s: Hai tùy chọn --unicode và --ascii xung đột với nhau, chỉ được dùng một\n"
 
-#: loadkeys.y:1121
-msgid "definitions"
-msgstr "lời xác định"
+#: src/loadkeys.c:184
+#, c-format
+msgid ""
+"%s: warning: loading non-Unicode keymap on Unicode console\n"
+"    (perhaps you want to do `kbd_mode -a'?)\n"
+msgstr ""
+"%s: cảnh báo: đang nạp một ánh xạ phím non-Unicode trên một thiết bị điều "
+"khiển Unicode\n"
+"    (có lẽ bạn ý bạn muốn làm là “kbd_mode -a” phải không?)\n"
 
-#: loadkeys.y:1126
+#: src/loadkeys.c:196
 #, c-format
-msgid "(No change in compose definitions.)\n"
-msgstr "(Chưa sửa đổi lời xác định cấu tạo.)\n"
+msgid ""
+"%s: warning: loading Unicode keymap on non-Unicode console\n"
+"    (perhaps you want to do `kbd_mode -u'?)\n"
+msgstr ""
+"%s: cảnh báo: đang nạp một ánh xạ phím Unicode trên một thiết bị điều khiển "
+"không phải Unicode\n"
+"    (có lẽ bạn muốn làm là “kbd_mode -u” phải không?)\n"
 
-#: loadkeys.y:1158
+#: src/loadkeys.c:214
 #, c-format
-msgid "loadkeys: don't know how to compose for %s\n"
-msgstr "loadkeys: không biết cách cấu tạo cho %s\n"
+msgid "Cannot find %s\n"
+msgstr "Không tìm thấy %s\n"
 
-#: loadkeys.y:1390 src/mapscrn.c:278 src/mapscrn.c:283
+#: src/loadkeys.c:235
 #, c-format
-msgid "Error writing map to file\n"
-msgstr "Lỗi ghi nhớ sơ đồ vào tập tin\n"
+msgid "cannot open file %s\n"
+msgstr "không mở được tập tin %s\n"
 
-#: src/loadunimap.c:43
+#: src/loadunimap.c:45
 #, c-format
 msgid ""
 "Usage:\n"
 "\t%s [-C console] [-o map.orig]\n"
 msgstr ""
-"Sử dụng:\n"
-"\t%s [-C kênh giao tác] [-o map.orig]\n"
+"Cách dùng:\n"
+"\t%s [-C thiết bị điều khiển] [-o ánh-xạ.gốc]\n"
 
-#: src/loadunimap.c:176 src/loadunimap.c:187
+#: src/loadunimap.c:178 src/loadunimap.c:189
 #, c-format
 msgid "Bad input line: %s\n"
-msgstr "Dòng nhập vào xấu: %s\n"
+msgstr "Dòng nhập vào sai: %s\n"
 
-#: src/loadunimap.c:196
+#: src/loadunimap.c:198
 #, c-format
 msgid "%s: Glyph number (0x%x) larger than font length\n"
 msgstr "%s: số glyph (0x%x) lớn hơn chiều dài phông chữ\n"
 
-#: src/loadunimap.c:202
+#: src/loadunimap.c:204
 #, c-format
 msgid "%s: Bad end of range (0x%x)\n"
-msgstr "%s: Kết thúc của phạm vi xấu (0x%x)\n"
+msgstr "%s: Kết thúc của phạm vi sai (0x%x)\n"
 
-#: src/loadunimap.c:232 src/psfxtable.c:175
+#: src/loadunimap.c:234 src/psfxtable.c:180
 #, c-format
 msgid "%s: Bad Unicode range corresponding to font position range 0x%x-0x%x\n"
 msgstr ""
-"%s: Phạm vi Unicode tương ứng với phạm vi vị trí phông chữ 0x%x-0x%x xấu\n"
+"%s: Phạm vi Unicode tương ứng với phạm vi vị trí phông chữ 0x%x-0x%x sai\n"
 
-#: src/loadunimap.c:239 src/psfxtable.c:182
+#: src/loadunimap.c:241 src/psfxtable.c:187
 #, c-format
 msgid ""
-"%s: Unicode range U+%x-U+%x not of the same length as font position range 0x%"
-"x-0x%x\n"
+"%s: Unicode range U+%x-U+%x not of the same length as font position range 0x"
+"%x-0x%x\n"
 msgstr ""
 "%s: Phạm vi Unicode U+%x-U+%x không có cũng chiều dài với phạm vi vị trí "
 "phông chữ 0x%x-0x%x\n"
 
-#: src/loadunimap.c:258 src/psfxtable.c:203
+#: src/loadunimap.c:260 src/psfxtable.c:208
 #, c-format
 msgid "%s: trailing junk (%s) ignored\n"
 msgstr "%s: lờ đi khúc theo sau (%s)\n"
 
-#: src/loadunimap.c:275
+#: src/loadunimap.c:279
 #, c-format
 msgid "Loading unicode map from file %s\n"
-msgstr "Nạp sơ đồ unicode từ tập tin %s\n"
+msgstr "Nạp ánh xạ unicode từ tập tin %s\n"
 
-#: src/loadunimap.c:281
+#: src/loadunimap.c:285
 #, c-format
 msgid "%s: %s: Warning: line too long\n"
 msgstr "%s: %s: Cảnh báo: dòng quá dài\n"
 
-#: src/loadunimap.c:291
+#: src/loadunimap.c:295
 #, c-format
 msgid ""
 "%s: not loading empty unimap\n"
 "(if you insist: use option -f to override)\n"
 msgstr ""
-"%s: không nạp sơ đồ unicode (unimap) rỗng\n"
+"%s: không nạp ánh xạ unicode (unimap) rỗng\n"
 "(nếu bạn nhất định muốn: hãy sử dụng tùy chọn -f để thỏa mãn)\n"
 
-#: src/loadunimap.c:312
+#: src/loadunimap.c:315
 msgid "entry"
 msgstr "mục"
 
-#: src/loadunimap.c:312
+#: src/loadunimap.c:315
 msgid "entries"
 msgstr "các mục"
 
-#: src/loadunimap.c:338
+#: src/loadunimap.c:342
 #, c-format
 msgid "Saved unicode map on `%s'\n"
-msgstr "Ghi sơ đồ unicode trên `%s'\n"
+msgstr "Ghi ánh xạ unicode trên “%s”\n"
 
-#: src/loadunimap.c:374
+#: src/loadunimap.c:380
 #, c-format
 msgid "Appended Unicode map\n"
-msgstr "Nhập thêm sơ đồ Unicode\n"
+msgstr "Nhập thêm ánh xạ Unicode\n"
 
-#: src/mapscrn.c:71
+#: src/mapscrn.c:66
 #, c-format
-msgid "usage: %s [-v] [-o map.orig] map-file\n"
-msgstr "Sử dụng: %s [-v] [-o map.orig] tập-tin-sơ-đồ\n"
+msgid "usage: %s [-V] [-v] [-o map.orig] map-file\n"
+msgstr "Cách dùng: %s [-V] [-v] [-o ánh-xạ.gốc] tập-tin-ánh-xạ\n"
 
 #: src/mapscrn.c:136
 #, c-format
 msgid "mapscrn: cannot open map file _%s_\n"
-msgstr "mapscrn: không thể mở tập tin sơ đồ _%s_\n"
+msgstr "mapscrn: không thể mở tập tin ánh xạ _%s_\n"
 
 #: src/mapscrn.c:142
 #, c-format
@@ -774,234 +872,251 @@ msgstr "Không thể lấy được trạng thái (stat) tập tin bản đồ (
 #, c-format
 msgid "Loading binary direct-to-font screen map from file %s\n"
 msgstr ""
-"Nạp sơ đồ màn hình (screen map) nhị phân thẳng tới phông (direct-to-font) từ "
-"tập tin %s\n"
+"Nạp ánh xạ màn hình (screen map) nhị phân thẳng tới phông (direct-to-font) "
+"từ tập tin %s\n"
 
 #: src/mapscrn.c:152 src/mapscrn.c:163
 #, c-format
 msgid "Error reading map from file `%s'\n"
-msgstr "Lỗi đọc sơ đồ từ tập tin `%s'\n"
+msgstr "Lỗi đọc ánh xạ từ tập tin “%s”\n"
 
 #: src/mapscrn.c:158
 #, c-format
 msgid "Loading binary unicode screen map from file %s\n"
-msgstr "Nạp sơ đồ màn hình (screen map) unicode nhị phân từ tập tin %s\n"
+msgstr "Nạp ánh xạ màn hình (screen map) unicode nhị phân từ tập tin %s\n"
 
 #: src/mapscrn.c:170
 #, c-format
 msgid "Loading symbolic screen map from file %s\n"
-msgstr "Nạp sơ đồ màn hình (screen map) tượng trưng từ tập tin %s\n"
+msgstr "Nạp ánh xạ màn hình (screen map) ký hiệu từ tập tin %s\n"
 
 #: src/mapscrn.c:174
 #, c-format
 msgid "Error parsing symbolic map from `%s', line %d\n"
-msgstr "Lỗi phân tích sơ đồ tượng trưng từ `%s', dòng %d\n"
+msgstr "Lỗi phân tích ánh xạ ký hiệu từ “%s”, dòng %d\n"
 
-#: src/mapscrn.c:287
+#: src/mapscrn.c:279 src/mapscrn.c:284
 #, c-format
-msgid "Cannot read console map\n"
-msgstr "Không đọc được sơ đồ kênh giao tác (console map)\n"
+msgid "Error writing map to file\n"
+msgstr "Lỗi ghi nhớ ánh xạ vào tập tin\n"
 
-#: src/mapscrn.c:293
+#: src/mapscrn.c:288
 #, c-format
-msgid "Saved screen map in `%s'\n"
-msgstr "Ghi nhớ sơ đồ màn hình (screen map) trong `%s'\n"
+msgid "Cannot read console map\n"
+msgstr "Không đọc được ánh xạ thiết bị điều khiển (console map)\n"
 
-#: src/openvt.c:75
+#: src/mapscrn.c:294
 #, c-format
-msgid "openvt: %s: illegal vt number\n"
-msgstr "openvt: %s: số thứ tự vt không hợp lệ\n"
+msgid "Saved screen map in `%s'\n"
+msgstr "Ghi nhớ ánh xạ màn hình (screen map) trong “%s”\n"
 
-#: src/openvt.c:102
-#, c-format
-msgid "openvt: only root can use the -u flag.\n"
-msgstr "openvt: chỉ có root mới có thể sử dụng cờ -u.\n"
+#: src/openvt.c:48
+#, fuzzy, c-format
+msgid ""
+"Usage: %s [OPTIONS] -- command\n"
+"\n"
+"This utility helps you to start a program on a new virtual terminal (VT).\n"
+"\n"
+"Options:\n"
+"  -c, --console=NUM   use the given VT number;\n"
+"  -e, --exec          execute the command, without forking;\n"
+"  -f, --force         force opening a VT without checking;\n"
+"  -l, --login         make the command a login shell;\n"
+"  -u, --user          figure out the owner of the current VT;\n"
+"  -s, --switch        switch to the new VT;\n"
+"  -w, --wait          wait for command to complete;\n"
+"  -v, --verbose       print a message for each action;\n"
+"  -V, --version       print program version and exit;\n"
+"  -h, --help          output a brief help message.\n"
+"\n"
+msgstr ""
+"Cách dùng: %s [CÁC_TÙY_CHỌN] -- lệnh\n"
+"\n"
+"Tiện ích này giúp bạn khởi động một ứng dụng trên một thiết bị cuối ảo "
+"(VT).\n"
+"\n"
+"Các tùy chọn:\n"
+"  -c, --console=SỐ    sử dụng số VT;\n"
+"  -e, --exec          thực thi lệnh, không rẽ nhánh tiến trình;\n"
+"  -f, --force         ép buộc mở một VT không cần kiểm tra;\n"
+"  -l, --login         làm một lệnh cần đăng nhập;\n"
+"  -u, --user          hiển thị chủ sở hữu của VT hiện tại;\n"
+"  -s, --switch        chuyển sang VT mới;\n"
+"  -w, --wait          chờ cho lệnh hoàn tất;\n"
+"  -v, --verbose       hiển thị thông tin cho từng hành động;\n"
+"  -V, --version       hiển thị phiên bản của chương trình rồi thoát;\n"
+"  -h, --help          hiển thị thông tin trợ giúp ở dạng ngắn gọn.\n"
+"\n"
 
-#: src/openvt.c:136
-#, c-format
-msgid "openvt: cannot find a free vt\n"
-msgstr "openvt: không tìm thấy một vt trống\n"
+#: src/openvt.c:140
+msgid "Couldn't find owner of current tty!"
+msgstr "không tìm thấy người sở hữu tty đang dùng!"
 
-#: src/openvt.c:141
+#: src/openvt.c:207
 #, c-format
-msgid "openvt: cannot check whether vt %d is free\n"
-msgstr "openvt: không thể kiểm tra vt %d là tự do hay không\n"
+msgid "%s: Illegal vt number"
+msgstr "%s: Số vt không hợp lệ"
 
-#: src/openvt.c:143 src/openvt.c:148
-#, c-format
-msgid "        use `openvt -f' to force.\n"
-msgstr "        sử dụng `openvt -f' để bắt buộc.\n"
+#: src/openvt.c:234
+msgid "Only root can use the -u flag."
+msgstr "Chỉ có siêu quản trị mới có thể dùng cờ -u."
 
-#: src/openvt.c:147
-#, c-format
-msgid "openvt: vt %d is in use; command aborted\n"
-msgstr "openvt: vt %d đang được sử dụng; câu lệnh bị gián đoạn\n"
+#: src/openvt.c:263
+msgid "Cannot find a free vt"
+msgstr "Không tìm thấy vt nào còn rảnh rỗi"
 
-#: src/openvt.c:174
+#: src/openvt.c:267
 #, c-format
-msgid "openvt: Unable to open %s: %s\n"
-msgstr "openvt: Không thể mở %s: %s\n"
+msgid "Cannot check whether vt %d is free; use `%s -f' to force."
+msgstr ""
+"Không thể kiểm tra xem vt %d là tự do hay không; sử dụng “%s -f” để ép buộc "
+"thực hiện."
 
-#: src/openvt.c:185
+#: src/openvt.c:271
 #, c-format
-msgid "openvt: Cannot open %s read/write (%s)\n"
-msgstr "openvt: Không thể mở %s để đọc/ghi nhớ (%s)\n"
+msgid "vt %d is in use; command aborted; use `%s -f' to force."
+msgstr ""
+"vt %d đang được sử dụng; lệnh bị bãi bỏ; sử dụng “%s -f” để ép buộc thực "
+"hiện."
 
-#: src/openvt.c:226
-#, c-format
-msgid "openvt: using VT %s\n"
-msgstr "openvt: sử dụng VT %s\n"
+#: src/openvt.c:281
+msgid "Unable to find command."
+msgstr "Không thể tìm thấy lệnh."
 
-#: src/openvt.c:243
-#, c-format
-msgid "openvt: Unable to set new session (%s)\n"
-msgstr "openvt: Không thể đặt một cửa sổ mới (%s)\n"
+#: src/openvt.c:313
+msgid "Unable to set new session"
+msgstr "Không thể đặt phiên làm việc mới"
 
-#: src/openvt.c:252
+#: src/openvt.c:337
 #, c-format
-msgid ""
-"\n"
-"openvt: could not open %s R/W (%s)\n"
-msgstr ""
-"\n"
-"openvt: không thể mở %s Đọc/Ghi (%s)\n"
+msgid "Unable to open %s"
+msgstr "Không thể mở %s"
 
-#: src/openvt.c:261
+#: src/openvt.c:341
 #, c-format
-msgid ""
-"\n"
-"openvt: could not activate vt %d (%s)\n"
-msgstr ""
-"\n"
-"openvt: không thể kích hoạt vt %d (%s)\n"
+msgid "Using VT %s"
+msgstr "Đang dùng VT %s"
 
-#: src/openvt.c:269
+#: src/openvt.c:347
 #, c-format
-msgid ""
-"\n"
-"openvt: activation interrupted? (%s)\n"
-msgstr ""
-"\n"
-"openvt: việc kích hoạt bị giản đoạn ? (%s)\n"
+msgid "Cannot open %s read/write"
+msgstr "không thể mở %s để đọc/ghi"
 
-#: src/openvt.c:321
+#: src/openvt.c:359
 #, c-format
-msgid "openvt: could not deallocate console %d\n"
-msgstr "openvt: không thể bỏ phân phối kênh giao tác %d\n"
+msgid "Couldn't activate vt %d"
+msgstr "Không thể kích hoạt vt %d"
 
-#: src/openvt.c:336
-#, c-format
-msgid ""
-"Usage: openvt [-c vtnumber] [-f] [-l] [-u] [-s] [-v] [-w] -- command_line\n"
-msgstr ""
-"Sử dụng: openvt [-c số_vt] [-f] [-l] [-u] [-s] [-v] [-w] -- command_line\n"
+#: src/openvt.c:362
+msgid "Activation interrupted?"
+msgstr "Kích hoạt bị ngắt phải không?"
 
-#: src/openvt.c:416
+#: src/openvt.c:402
 #, c-format
-msgid "Couldn't find owner of current tty!\n"
-msgstr "Không tìm thấy người sở hữu tty đang dùng !\n"
+msgid "Couldn't deallocate console %d"
+msgstr "Không thể cấp phát lại console (thiết bị điều khiển) %d"
 
-#: src/psffontop.c:73
+#: src/psffontop.c:75
 #, c-format
 msgid "%s: short ucs2 unicode table\n"
 msgstr "%s: bảng unicode ucs2 ngắn\n"
 
-#: src/psffontop.c:94
+#: src/psffontop.c:97
 #, c-format
 msgid "%s: short utf8 unicode table\n"
 msgstr "%s: bảng unicode utf8 ngắn\n"
 
-#: src/psffontop.c:97
+#: src/psffontop.c:100
 #, c-format
 msgid "%s: bad utf8\n"
-msgstr "%s: utf xấu\n"
+msgstr "%s: utf8 sai\n"
 
-#: src/psffontop.c:100
+#: src/psffontop.c:103
 #, c-format
 msgid "%s: unknown utf8 error\n"
 msgstr "%s: lỗi utf8 không rõ\n"
 
-#: src/psffontop.c:130
+#: src/psffontop.c:135
 #, c-format
 msgid "%s: short unicode table\n"
 msgstr "%s: bảng unicode ngắn\n"
 
-#: src/psffontop.c:210
+#: src/psffontop.c:215
 #, c-format
 msgid "%s: Error reading input font"
 msgstr "%s: Lỗi đọc phông chữ nhập vào"
 
-#: src/psffontop.c:224
+#: src/psffontop.c:229
 #, c-format
 msgid "%s: Bad call of readpsffont\n"
-msgstr "%s: Lời gọi readpsffont xấu\n"
+msgstr "%s: Lời gọi readpsffont sai\n"
 
-#: src/psffontop.c:239
+#: src/psffontop.c:244
 #, c-format
 msgid "%s: Unsupported psf file mode (%d)\n"
 msgstr "%s: Chế độ tập tin psf (%d) không được hỗ trợ\n"
 
-#: src/psffontop.c:257
+#: src/psffontop.c:262
 #, c-format
 msgid "%s: Unsupported psf version (%d)\n"
 msgstr "%s: phiên bản psf (%d) không được hỗ trợ\n"
 
-#: src/psffontop.c:273
+#: src/psffontop.c:278
 #, c-format
 msgid "%s: zero input font length?\n"
 msgstr "%s: chiều dài phông chữ nhập vào bằng không?\n"
 
-#: src/psffontop.c:278
+#: src/psffontop.c:283
 #, c-format
 msgid "%s: zero input character size?\n"
 msgstr "%s: kích thước ký tự nhập vào bằng không?\n"
 
-#: src/psffontop.c:284
+#: src/psffontop.c:289
 #, c-format
 msgid "%s: Input file: bad input length (%d)\n"
-msgstr "%s: Tập tin nhập vào: chiều dài nhập vào xấu (%d)\n"
+msgstr "%s: Tập tin nhập vào: chiều dài nhập vào sai (%d)\n"
 
-#: src/psffontop.c:316
+#: src/psffontop.c:321
 #, c-format
 msgid "%s: Input file: trailing garbage\n"
 msgstr "%s: Tập tin nhập vào: vết rác\n"
 
-#: src/psffontop.c:354
+#: src/psffontop.c:360
 #, c-format
 msgid "appendunicode: illegal unicode %u\n"
 msgstr "appendunicode: unicode không đúng %u\n"
 
-#: src/psffontop.c:447
+#: src/psffontop.c:454
 #, c-format
 msgid "Cannot write font file header"
 msgstr "Không thể ghi nhớ phần đầu (header) tập tin phông chữ"
 
-#: src/psffontop.c:473 src/setfont.c:680
+#: src/psffontop.c:479 src/setfont.c:700
 #, c-format
 msgid "Cannot write font file"
-msgstr "Không thể ghi nhớ tập tin phông chữ"
+msgstr "Không thể ghi tập tin phông chữ"
 
-#: src/psfxtable.c:109
+#: src/psfxtable.c:114
 #, c-format
 msgid "%s: Warning: line too long\n"
 msgstr "%s: Cảnh báo: dòng quá dài\n"
 
-#: src/psfxtable.c:123 src/psfxtable.c:133
+#: src/psfxtable.c:128 src/psfxtable.c:138
 #, c-format
 msgid "%s: Bad input line: %s\n"
-msgstr "%s: Dòng nhập vào xấu: %s\n"
+msgstr "%s: Dòng nhập vào sai: %s\n"
 
-#: src/psfxtable.c:142
+#: src/psfxtable.c:147
 #, c-format
 msgid "%s: Glyph number (0x%lx) past end of font\n"
 msgstr "%s: Số Glyph (0x%lx) vượt quá kết thúc phông chữ\n"
 
-#: src/psfxtable.c:147
+#: src/psfxtable.c:152
 #, c-format
 msgid "%s: Bad end of range (0x%lx)\n"
-msgstr "%s: Kết thúc của phạm vi (0x%lx) xấu\n"
+msgstr "%s: Kết thúc của phạm vi (0x%lx) sai\n"
 
-#: src/psfxtable.c:166
+#: src/psfxtable.c:171
 #, c-format
 msgid ""
 "%s: Corresponding to a range of font positions, there should be a Unicode "
@@ -1010,31 +1125,31 @@ msgstr ""
 "%s: Để tương ứng với một phạm vi của vị trí phông chữ, phải có một phạm vi "
 "Unicode\n"
 
-#: src/psfxtable.c:258
+#: src/psfxtable.c:260
 #, c-format
 msgid ""
 "Usage:\n"
 "\t%s infont intable outfont\n"
 msgstr ""
-"Sử dụng:\n"
+"Cách dùng:\n"
 "\t%s infont intable outfont\n"
 
-#: src/psfxtable.c:267
+#: src/psfxtable.c:269
 #, c-format
 msgid ""
 "Usage:\n"
 "\t%s infont [outtable]\n"
 msgstr ""
-"Sử dụng:\n"
+"Cách dùng:\n"
 "\t%s infont [outtable]\n"
 
-#: src/psfxtable.c:276
+#: src/psfxtable.c:278
 #, c-format
 msgid ""
 "Usage:\n"
 "\t%s infont outfont\n"
 msgstr ""
-"Sử dụng:\n"
+"Cách dùng:\n"
 "\t%s infont outfont\n"
 
 #: src/psfxtable.c:301
@@ -1043,13 +1158,13 @@ msgid ""
 "Usage:\n"
 "\t%s [-i infont] [-o outfont] [-it intable] [-ot outtable] [-nt]\n"
 msgstr ""
-"Sử dụng:\n"
+"Cách dùng:\n"
 "\t%s [-i infont] [-o outfont] [-it intable] [-ot outtable] [-nt]\n"
 
 #: src/psfxtable.c:361
 #, c-format
 msgid "%s: Bad magic number on %s\n"
-msgstr "%s: Số màu nhiệm (magic) xấu trên %s\n"
+msgstr "%s: Số màu nhiệm (magic) sai trên %s\n"
 
 #: src/psfxtable.c:380
 #, c-format
@@ -1061,40 +1176,49 @@ msgstr "%s: tập tin psf với số màu nhiệm không rõ\n"
 msgid "%s: input font does not have an index\n"
 msgstr "%s: phông nhập vào không có một chỉ mục\n"
 
-#: src/resizecons.c:155
+#: src/resizecons.c:142
+#, fuzzy, c-format
+msgid "resizecons: invalid columns number %d\n"
+msgstr "resizecons: không tìm thấy tập tin chế độ video %s\n"
+
+#: src/resizecons.c:147
+#, c-format
+msgid "resizecons: invalid rows number %d\n"
+msgstr ""
+
+#: src/resizecons.c:158
 #, c-format
 msgid "resizecons: cannot find videomode file %s\n"
 msgstr "resizecons: không tìm thấy tập tin chế độ video %s\n"
 
-#: src/resizecons.c:174
-#, c-format
+#: src/resizecons.c:175
 msgid "Invalid number of lines\n"
 msgstr "Số dòng không đúng\n"
 
-#: src/resizecons.c:240
+#: src/resizecons.c:258
 #, c-format
 msgid "Old mode: %dx%d  New mode: %dx%d\n"
 msgstr "Chế độ cũ: %dx%d  Chế độ mới: %dx%d\n"
 
-#: src/resizecons.c:242
+#: src/resizecons.c:260
 #, c-format
 msgid "Old #scanlines: %d  New #scanlines: %d  Character height: %d\n"
-msgstr "#scanlines Cũ: %d  #scanlines Mới: %d  Chiều cao ký tự: %d\n"
+msgstr "#scanlines Cũ:  %d  #scanlines Mới: %d  Chiều cao ký tự : %d\n"
 
-#: src/resizecons.c:253
+#: src/resizecons.c:271
 #, c-format
 msgid "resizecons: the command `%s' failed\n"
-msgstr "resizecons: câu lệnh `%s' bị lỗi\n"
+msgstr "resizecons: câu lệnh “%s” bị lỗi\n"
 
-#: src/resizecons.c:326
+#: src/resizecons.c:356
 #, c-format
 msgid ""
 "resizecons: don't forget to change TERM (maybe to con%dx%d or linux-%dx%d)\n"
 msgstr ""
-"resizecons: đừng quên thay đổi TERM (có thể thành con%dx%d hoặc linux-%dx%"
-"d)\n"
+"resizecons: đừng quên thay đổi TERM (có thể thành con%dx%d hoặc linux-%dx"
+"%d)\n"
 
-#: src/resizecons.c:339
+#: src/resizecons.c:370
 #, c-format
 msgid ""
 "resizecons:\n"
@@ -1103,46 +1227,45 @@ msgid ""
 "60\n"
 msgstr ""
 "resizecons:\n"
-"lá»\9di gá»\8di là:  resizecons COLSxROWS  hoặc:  resizecons COLS ROWS\n"
+"lá»\87nh: resizecons COLSxROWS  hoặc:  resizecons COLS ROWS\n"
 "hoặc: resizecons -lines ROWS, với ROWS là một trong số 25, 28, 30, 34, 36, "
 "40, 44, 50, 60\n"
 
-#: src/resizecons.c:377
+#: src/resizecons.c:409
 #, c-format
 msgid "resizecons: cannot get I/O permissions.\n"
 msgstr "resizecons: không lấy được quyền I/O.\n"
 
-#: src/screendump.c:49
+#: src/screendump.c:48
 #, c-format
 msgid "usage: screendump [n]\n"
-msgstr "sử dụng: screendump [n]\n"
+msgstr "cách dùng: screendump [n]\n"
 
-#: src/screendump.c:79
+#: src/screendump.c:78
 #, c-format
-msgid "Error reading %s\n"
-msgstr "Lỗi đọc %s\n"
+msgid "Error reading %s"
+msgstr "Lỗi đọc %s"
 
-#: src/screendump.c:127
+#: src/screendump.c:123
 #, c-format
 msgid "couldn't read %s, and cannot ioctl dump\n"
 msgstr "không thể đọc %s, và không thể ioctl dump\n"
 
-#: src/screendump.c:133
+#: src/screendump.c:129
 #, c-format
 msgid "couldn't read %s\n"
 msgstr "không thể đọc %s\n"
 
-#: src/screendump.c:142
+#: src/screendump.c:138
 #, c-format
 msgid "Strange ... screen is both %dx%d and %dx%d ??\n"
-msgstr "Kỳ lạ ... màn hình là cả %dx%d và %dx%d ??\n"
+msgstr "Kỳ lạ  màn hình là cả %dx%d và %dx%d ??\n"
 
-#: src/screendump.c:160
-#, c-format
+#: src/screendump.c:155
 msgid "Error writing screendump\n"
-msgstr "Lỗi ghi nhớ dump màn hình\n"
+msgstr "Gặp lỗi khi ghi đổ màn hình\n"
 
-#: src/setfont.c:76
+#: src/setfont.c:77
 #, c-format
 msgid ""
 "Usage: setfont [write-options] [-<N>] [newfont..] [-m consolemap] [-u "
@@ -1170,13 +1293,14 @@ msgid ""
 "    -V         Print version and exit.\n"
 "Files are loaded from the current directory or %s/*/.\n"
 msgstr ""
-"Sử dụng: setfont [tùy-chọn-ghi] [-<N>] [phông-mới..] [-m sơ-đồ-bàn-giao-"
+"Cách dùng: setfont [tùy-chọn-ghi] [-<N>] [phông-mới..] [-m sơ-đồ-bàn-giao-"
 "tiếp] [-u sơ-đồ-Unicode]\n"
 "  tùy chọn ghi nhớ (được đặt trước khi nạp tập tin):\n"
-"    -o  <filename>  Ghi nhớ phông hiện thời vào <filename>\n"
-"    -O  <filename>  Ghi nhớ phông hiện thời và sơ đồ unicode vào <filename>\n"
-"    -om <filename>  Ghi nhớ consolemap hiện thời vào <filename>\n"
-"    -ou <filename>  Ghi nhớ unicodemap hiện thời vào <filename>\n"
+"    -o  <tên-tập-tin>  Ghi nhớ phông hiện tại vào <tên-tập-tin>\n"
+"    -O  <tên-tập-tin>  Ghi nhớ phông hiện tại và ánh xạ unicode vào <tên-tập-"
+"tin>\n"
+"    -om <tên-tập-tin>  Ghi nhớ consolemap hiện tại vào <tên-tập-tin>\n"
+"    -ou <tên-tập-tin>  Ghi nhớ unicodemap hiện tại vào <tên-tập-tin>\n"
 "Nếu không đưa ra tùy chọn phông-mới và -[o|O|om|ou|m|u],\n"
 "còn phông chữ mặc định được nạp:\n"
 "    setfont         nạp phông chữ \"default[.gz]\"\n"
@@ -1184,24 +1308,24 @@ msgstr ""
 "Tùy chọn -<N> chọn môjt phông chữ với trang mã (codepage) chứa ba phông "
 "chữ:\n"
 "    setfont -{8|14|16} codepage.cp[.gz]   Nạp phông 8x<N> từ codepage.cp\n"
-"Ánh xạ hiện (với -m hoặc -u) hoặc ẩnh (trong tập tin phông) \n"
+"Ánh xạ hiện (với -m hoặc -u) hoặc ẩn (trong tập tin phông) \n"
 "sẽ được nạp và trong trường hợp của consolemap, được kích hoạt.\n"
 "    -h<N>      (không có khoảng trắng) Ghi chèn lên chiều cao phông.\n"
-"    -m <fn>    Nạp sơ đồ màn hình kênh giao tác.\n"
-"    -u <fn>    Nạp sơ đồ phông chữ unicode.\n"
-"    -m none    Chặn việc nạp và kích hoạt một sơ đồ màn hình.\n"
-"    -u none    Chặn việc nạp một sơ đồ unicode.\n"
+"    -m <fn>    Nạp ánh xạ màn hình thiết bị điều khiển.\n"
+"    -u <fn>    Nạp ánh xạ phông chữ unicode.\n"
+"    -m none    Chặn việc nạp và kích hoạt một ánh xạ màn hình.\n"
+"    -u none    Chặn việc nạp một ánh xạ unicode.\n"
 "    -v         Nhiều thông báo.\n"
-"    -C <cons>  Chỉ ra thiết bị kênh giao tác sử dụng.\n"
+"    -C <cons>  Chỉ ra thiết bị thiết bị điều khiển sử dụng.\n"
 "    -V         In ra số hiệu phiên bản và thoát.\n"
-"Tập tin được nạp từ thư mục hiện thời hoặc từ %s/*/.\n"
+"Tập tin được nạp từ thư mục hiện ti hoặc từ %s/*/.\n"
 
-#: src/setfont.c:180
+#: src/setfont.c:177
 #, c-format
 msgid "setfont: too many input files\n"
-msgstr "setfont: quá nhiều tập tin nhập vào\n"
+msgstr "setfont: quá nhiều tập tin đầu vào\n"
 
-#: src/setfont.c:188
+#: src/setfont.c:185
 #, c-format
 msgid ""
 "setfont: cannot both restore from character ROM and from file. Font "
@@ -1210,123 +1334,123 @@ msgstr ""
 "setfont: không thể đồng thời phục hồi từ ký tự ROM và từ tập tin. Phông chữ "
 "không thay đổi.\n"
 
-#: src/setfont.c:262
+#: src/setfont.c:260
 #, c-format
 msgid "Bad character height %d\n"
-msgstr "Chiều cao ký tự %d xấu\n"
+msgstr "Chiều cao ký tự %d sai\n"
 
-#: src/setfont.c:266
+#: src/setfont.c:264
 #, c-format
 msgid "Bad character width %d\n"
-msgstr "Chiều rộng ký tự %d xấu\n"
+msgstr "Chiều rộng ký tự %d sai\n"
 
-#: src/setfont.c:291
+#: src/setfont.c:289
 #, c-format
 msgid "%s: font position 32 is nonblank\n"
 msgstr "%s: vị trí phông chữ 32 không trống\n"
 
-#: src/setfont.c:299
+#: src/setfont.c:297
 #, c-format
 msgid "%s: wiped it\n"
 msgstr "%s: tẩy nó\n"
 
-#: src/setfont.c:303
+#: src/setfont.c:301
 #, c-format
 msgid "%s: background will look funny\n"
 msgstr "%s: phông nền trông buồn cười\n"
 
-#: src/setfont.c:313
+#: src/setfont.c:311
 #, c-format
 msgid "Loading %d-char %dx%d font from file %s\n"
 msgstr "Nạp %d-char %dx%d phông từ tập tin %s\n"
 
-#: src/setfont.c:316
+#: src/setfont.c:314
 #, c-format
 msgid "Loading %d-char %dx%d font\n"
 msgstr "Nạp %d-char %dx%d phông\n"
 
-#: src/setfont.c:319
+#: src/setfont.c:317
 #, c-format
 msgid "Loading %d-char %dx%d (%d) font from file %s\n"
 msgstr "Nạp %d-char %dx%d (%d) phông từ tập tin %s\n"
 
-#: src/setfont.c:322
+#: src/setfont.c:320
 #, c-format
 msgid "Loading %d-char %dx%d (%d) font\n"
 msgstr "Nạp %d-char %dx%d (%d) phông\n"
 
-#: src/setfont.c:375
+#: src/setfont.c:376
 #, c-format
 msgid "%s: bug in do_loadtable\n"
 msgstr "%s: lỗi (bug) trong do_loadtable\n"
 
-#: src/setfont.c:381
+#: src/setfont.c:382
 #, c-format
 msgid "Loading Unicode mapping table...\n"
-msgstr "Đang nạp bảng ánh xạ Unicode...\n"
+msgstr "Đang nạp bảng ánh xạ Unicode\n"
 
-#: src/setfont.c:417 src/setfont.c:503
+#: src/setfont.c:421 src/setfont.c:516
 #, c-format
 msgid "Cannot open font file %s\n"
 msgstr "Không mở được tập tin phông chữ %s\n"
 
-#: src/setfont.c:428
+#: src/setfont.c:432
 #, c-format
 msgid "When loading several fonts, all must be psf fonts - %s isn't\n"
 msgstr ""
 "Khi nạp vài phông chữ, tất cả phải là phông psf - nhưng %s không phải\n"
 
-#: src/setfont.c:438
+#: src/setfont.c:445
 #, c-format
 msgid "Read %d-char %dx%d font from file %s\n"
 msgstr "Đọc %d-char %dx%d phông từ tập tin %s\n"
 
-#: src/setfont.c:444
+#: src/setfont.c:451
 #, c-format
 msgid "When loading several fonts, all must have the same height\n"
 msgstr "Khi nạp vài phông chữ, tất cả phải có cùng chiều cao\n"
 
-#: src/setfont.c:451
+#: src/setfont.c:458
 #, c-format
 msgid "When loading several fonts, all must have the same width\n"
 msgstr "Khi nạp vài phông chữ, tất cả phải có cùng chiều rộng\n"
 
-#: src/setfont.c:490
+#: src/setfont.c:503
 #, c-format
 msgid "Cannot find default font\n"
 msgstr "Không tìm thấy phông mặc định\n"
 
-#: src/setfont.c:497
+#: src/setfont.c:510
 #, c-format
 msgid "Cannot find %s font\n"
 msgstr "Không tìm thấy phông %s\n"
 
-#: src/setfont.c:509
+#: src/setfont.c:522
 #, c-format
 msgid "Reading font file %s\n"
 msgstr "Đang đọc tập tin phông chữ %s\n"
 
-#: src/setfont.c:549
+#: src/setfont.c:564
 #, c-format
 msgid "No final newline in combine file\n"
 msgstr "Không có dòng mới cuối cùng trong liên hợp tập tin\n"
 
-#: src/setfont.c:555
+#: src/setfont.c:570
 #, c-format
 msgid "Too many files to combine\n"
 msgstr "Quá nhiều tập tin trong liên hợp\n"
 
-#: src/setfont.c:579
+#: src/setfont.c:594
 #, c-format
 msgid "Hmm - a font from restorefont? Using the first half.\n"
 msgstr "Hừm - một phông chữ từ phông phục hồi? Sử dụng nửa đầu tiên.\n"
 
-#: src/setfont.c:596
+#: src/setfont.c:611
 #, c-format
 msgid "Bad input file size\n"
-msgstr "Kích thước tập tin nhập vào xấu\n"
+msgstr "Kích thước tập tin nhập vào sai\n"
 
-#: src/setfont.c:617
+#: src/setfont.c:633
 #, c-format
 msgid ""
 "This file contains 3 fonts: 8x8, 8x14 and 8x16. Please indicate\n"
@@ -1335,30 +1459,30 @@ msgstr ""
 "Tập tin này chứa 3 phông chữ: 8x8, 8x14 và 8x16. Xin hãy cho biết\n"
 "phông bạn muốn nạp bằng một tùy chọn -8 hoặc -14 hoặc -16.\n"
 
-#: src/setfont.c:631
+#: src/setfont.c:650
 #, c-format
 msgid "You asked for font size %d, but only 8, 14, 16 are possible here.\n"
 msgstr ""
 "Bạn yêu cầu kích thước phông chữ %d, nhưng chỉ có kích thước 8, 14 và 16.\n"
 
-#: src/setfont.c:676
+#: src/setfont.c:696
 #, c-format
 msgid "Found nothing to save\n"
 msgstr "Khôg tìm thấy gì để ghi nhớ\n"
 
-#: src/setfont.c:685
+#: src/setfont.c:705
 #, c-format
 msgid "Saved %d-char %dx%d font file on %s\n"
-msgstr "Ghi nhớ %d-char %dx%d tập tin phông chũ trên%s\n"
+msgstr "Ghi nhớ %d-char %dx%d tập tin phông ch trên%s\n"
 
-#: src/setkeycodes.c:21
+#: src/setkeycodes.c:25
 #, c-format
 msgid ""
 "usage: setkeycode scancode keycode ...\n"
 " (where scancode is either xx or e0xx, given in hexadecimal,\n"
 "  and keycode is given in decimal)\n"
 msgstr ""
-"Sử dụng: setkeycode scancode keycode ...\n"
+"Cách dùng: setkeycode scancode keycode …\n"
 " (trong đó scancode là xx hoặc e0xx, ở dạng hệ mười sáu,\n"
 "  còn keycode ở dạng hệ mười)\n"
 
@@ -1366,20 +1490,22 @@ msgstr ""
 msgid "even number of arguments expected"
 msgstr "mong đợi một tham số số chẵn"
 
-#: src/setkeycodes.c:51
+#: src/setkeycodes.c:53
 msgid "error reading scancode"
 msgstr "lỗi đọc mã quét (scancode)"
 
-#: src/setkeycodes.c:59
+#: src/setkeycodes.c:61
 msgid "code outside bounds"
 msgstr "mã nằm ngoài khung giới hạn"
 
-#: src/setkeycodes.c:69
+#: src/setkeycodes.c:70
 #, c-format
-msgid "failed to set scancode %x to keycode %d\n"
-msgstr "đặt mã quét (scancode) %x cho mã phím (keycode) %d không thành công\n"
+msgid "failed to set scancode %x to keycode %d: ioctl KDSETKEYCODE"
+msgstr ""
+"gặp lỗi khi đặt mã quét (scancode) %x cho mã phím (keycode) %d: ioctl "
+"KDSETKEYCODE"
 
-#: src/setleds.c:21
+#: src/setleds.c:25
 #, c-format
 msgid ""
 "Usage:\n"
@@ -1395,82 +1521,79 @@ msgid ""
 "With -D, setleds sets both the flags and the default flags, so\n"
 "that a subsequent reset will not change the flags.\n"
 msgstr ""
-"Sử dụng:\n"
+"Cách dùng:\n"
 "\tsetleds [-v] [-L] [-D] [-F] [[+|-][ num | caps | scroll %s]]\n"
 "Như vậy,\n"
 "\tsetleds +caps -num\n"
 "Sẽ bật CapsLock, tắt NumLock và không thay đổi ScrollLock.\n"
-"Thiết lập trước và sau sự thay đổi (nếu có) được báo cáo\n"
+"Cài đặt trước và sau sự thay đổi (nếu có) được báo cáo\n"
 "khi có tùy chọn -v hoặc khi không yêu cầu thay đổi (không có tham số nào đưa "
 "ra).\n"
-"Thông thường, setleds ảnh hưởng đến thiết lập cờ của vt\n"
+"Thông thường, setleds ảnh hưởng đến cài đặt cờ của vt\n"
 "(và thường phải ánh qua đèn báo).\n"
 "Với -L, setleds chỉ bật các đèn và giữ nguyên các cờ.\n"
 "Với -D, setleds bật cả cờ và cờ mặc định, vì thế\n"
 "yêu cầu đặt lại theo sau sẽ không thay đổi các cờ.\n"
 
-#: src/setleds.c:43
+#: src/setleds.c:46
 msgid "on "
 msgstr "bật "
 
-#: src/setleds.c:43
+#: src/setleds.c:46
 msgid "off"
 msgstr "tắt"
 
-#: src/setleds.c:86
-#, c-format
-msgid "Error reading current led setting. Maybe stdin is not a VT?\n"
+#: src/setleds.c:90
+msgid ""
+"Error reading current led setting. Maybe stdin is not a VT?: ioctl KDGETLED"
 msgstr ""
-"Lỗi đọc thiết lập đèn báo hiện thời. Có thể stdin không phải là một VT?\n"
+"Lỗi đọc cài đặt đèn báo hiện tại. Có thể đầu vào tiêu chuẩn không phải là "
+"một VT?: ioctl KDGETLED"
 
-#: src/setleds.c:105
-#, c-format
+#: src/setleds.c:110
 msgid ""
-"Error reading current flags setting. Maybe you are not on the console?\n"
+"Error reading current flags setting. Maybe you are not on the console?: "
+"ioctl KDGKBLED"
 msgstr ""
-"Lỗi đọc thiết lập cờ hiện thời. Có thể bạn đang ở ngoài kênh giao tác?\n"
-
-#: src/setleds.c:125 src/setleds.c:146
-#, c-format
-msgid "Error reading current led setting from /dev/kbd.\n"
-msgstr "lỗi đọc thiết lập đèn báo hiện từ /dev/kbd.\n"
+"Lỗi đọc cài đặt cờ hiện tại. Có thể bạn đang ở ngoài thiết bị điều khiển?: "
+"ioctl KDGKBLED"
 
 #: src/setleds.c:129
-#, c-format
+msgid "Error reading current led setting from /dev/kbd: ioctl KIOCGLED"
+msgstr "Lỗi đọc cài đặt đèn báo hiện từ /dev/kbd: ioctl KIOCGLED"
+
+#: src/setleds.c:133
 msgid "KIOCGLED unavailable?\n"
 msgstr "Không thể KIOCGLED?\n"
 
-#: src/setleds.c:150
-#, c-format
+#: src/setleds.c:148
+msgid "Error reading current led setting from /dev/kbd: ioctl KIOCSLED"
+msgstr "Lỗi đọc cài đặt đèn báo hiện từ /dev/kbd: ioctl KIOCSLED"
+
+#: src/setleds.c:152
 msgid "KIOCSLED unavailable?\n"
 msgstr "Không thể KIOCSLED?\n"
 
-#: src/setleds.c:178
-#, c-format
-msgid "Error opening /dev/kbd.\n"
-msgstr "Lỗi mở /dev/kbd.\n"
-
-#: src/setleds.c:210
-#, c-format
+#: src/setleds.c:205
 msgid "Error resetting ledmode\n"
 msgstr "Lỗi đặt lại chế độ đèn\n"
 
-#: src/setleds.c:219
+#: src/setleds.c:213
 #, c-format
 msgid "Current default flags:  "
-msgstr "Cờ mặc định hiện thời:  "
+msgstr "Cờ mặc định hiện tại:   "
 
-#: src/setleds.c:223
+#: src/setleds.c:217
 #, c-format
 msgid "Current flags:          "
-msgstr "Cờ hiện thời:          "
+msgstr "Cờ hiện tại:            "
 
-#: src/setleds.c:227
+#: src/setleds.c:221
 #, c-format
 msgid "Current leds:           "
-msgstr "Đèn báo hiện thời:         "
+msgstr "Đèn báo hiện tại:       "
 
-#: src/setleds.c:263 src/setmetamode.c:95
+#: src/setleds.c:257 src/setmetamode.c:138
 #, c-format
 msgid ""
 "unrecognized argument: _%s_\n"
@@ -1479,106 +1602,163 @@ msgstr ""
 "tham số không nhận ra: _%s_\n"
 "\n"
 
-#: src/setleds.c:272
+#: src/setleds.c:266
 #, c-format
 msgid "Old default flags:    "
-msgstr "Cờ mặc định cũ:    "
+msgstr "Cờ mặc định cũ:       "
 
-#: src/setleds.c:274
+#: src/setleds.c:268
 #, c-format
 msgid "New default flags:    "
-msgstr "Cờ mặc định mới:    "
+msgstr "Cờ mặc định mới:      "
 
-#: src/setleds.c:281
+#: src/setleds.c:275
 #, c-format
 msgid "Old flags:            "
-msgstr "Cờ cũ:         "
+msgstr "Cờ cũ:                "
 
-#: src/setleds.c:283
+#: src/setleds.c:277
 #, c-format
 msgid "New flags:            "
-msgstr "Cờ mới:          "
+msgstr "Cờ mới:               "
 
-#: src/setleds.c:297 src/setleds.c:306
+#: src/setleds.c:290 src/setleds.c:299
 #, c-format
 msgid "Old leds:             "
-msgstr "Đèn báo cũ:          "
+msgstr "Đèn báo cũ:           "
 
-#: src/setleds.c:299 src/setleds.c:308
+#: src/setleds.c:292 src/setleds.c:301
 #, c-format
 msgid "New leds:             "
 msgstr "Đèn báo mới:          "
 
-#: src/setmetamode.c:20
+#: src/setmetamode.c:25
 #, c-format
 msgid ""
-"Usage:\n"
-"\tsetmetamode [ metabit | meta | bit | escprefix | esc | prefix ]\n"
+"Usage: %1$s [option...] [argument]\n"
+"\n"
 "Each vt has his own copy of this bit. Use\n"
-"\tsetmetamode [arg] < /dev/ttyn\n"
+"\t%1$s [argument] < /dev/ttyn\n"
 "to change the settings of another vt.\n"
 "The setting before and after the change are reported.\n"
+"\n"
+"Arguments:\n"
+"  metabit     the keysym marked with the high bit set.\n"
+"  escprefix   specifies if pressing the meta (alt) key\n"
+"              generates an ESC (\\033) prefix followed by\n"
+"              the keysym.\n"
+"\n"
+"Options:\n"
+"\n"
+"  -C, --console=DEV   the console device to be used\n"
+"  -V, --version       print version number\n"
+"  -h, --help          display this help text\n"
+"\n"
 msgstr ""
-"Sử dụng:\n"
-"\tsetmetamode [ metabit | meta | bit | escprefix | esc | prefix ]\n"
-"Mỗi vt có một bản sao bit này của mình. Hãy dùng\n"
-"\tsetmetamode [arg] < /dev/ttyn\n"
-"để thay đổi thiết lập của vt khác..\n"
-"Thiết lập trước và sau sự thay đổi sẽ được báo cáo.\n"
 
-#: src/setmetamode.c:36
+#: src/setmetamode.c:55
 msgid "Meta key sets high order bit\n"
 msgstr "Phím Meta đặt bit thứ bậc cao\n"
 
-#: src/setmetamode.c:39
+#: src/setmetamode.c:58
 msgid "Meta key gives Esc prefix\n"
 msgstr "Phím Meta đưa ra tiền tố Esc\n"
 
-#: src/setmetamode.c:42
+#: src/setmetamode.c:61
 msgid "Strange mode for Meta key?\n"
 msgstr "Chế độ lạ cho phím Meta?\n"
 
-#: src/setmetamode.c:79
-#, c-format
-msgid "Error reading current setting. Maybe stdin is not a VT?\n"
-msgstr "Lỗi đọc thiết lập hiện thời. Có thể stdin không phải là một VT?\n"
+#: src/setmetamode.c:122
+msgid ""
+"Error reading current setting. Maybe stdin is not a VT?: ioctl KDGKBMETA"
+msgstr ""
+"Lỗi đọc cài đặt hiện tại. Có thể đầu vào tiêu chuẩn không phải là một VT?: "
+"ioctl KDGKBMETA"
 
-#: src/setmetamode.c:99
+#: src/setmetamode.c:142
 #, c-format
 msgid "old state:    "
-msgstr "trạng thái cũ:    "
+msgstr "trạng thái cũ: "
 
-#: src/setmetamode.c:105
+#: src/setmetamode.c:147
 #, c-format
 msgid "new state:    "
-msgstr "trạng thái mới:    "
+msgstr "trạng thái mới: "
 
-#: src/setvesablank.c:25
+#: src/setvesablank.c:27
 #, c-format
 msgid "usage: %s\n"
-msgstr "sử dụng: %s\n"
+msgstr "cách dùng: %s\n"
+
+#: src/setvtrgb.c:44
+#, fuzzy, c-format
+msgid ""
+"Usage: %s [options] [vga|FILE|-]\n"
+"\n"
+"If you use the FILE parameter, FILE should be exactly 3 lines of\n"
+"comma-separated decimal values for RED, GREEN, and BLUE.\n"
+"\n"
+"To seed a valid FILE:\n"
+"   cat /sys/module/vt/parameters/default_{red,grn,blu} > FILE\n"
+"\n"
+"and then edit the values in FILE.\n"
+"\n"
+"Options:\n"
+"  -C, --console=DEV  the console device to be used;\n"
+"  -V, --version      print version number\n"
+"  -h, --help         print this usage message\n"
+"\n"
+msgstr ""
+"Cách dùng: %s [-h] [-V]\n"
+"           %s vga|TẬP-TIN|-\n"
+"\n"
+"Nếu bạn sử dụng đối số TẬP-TIN, TẬP-TIN có chính xách 3 dòng\n"
+"chứa các giá trị dạng thập phân ngăn cách bởi dấu phẩy, cho ĐỎ, LỤC và "
+"XANH.\n"
+"\n"
+"Để tạo ra TẬP-TIN hợp lệ ta dùng lệnh:\n"
+"   cat /sys/module/vt/parameters/default_{red,grn,blu} > TẬP-TIN\n"
+"\n"
+"và sau đó sửa giá trị trong TẬP-TIN.\n"
+"\n"
+"Các tùy chọn khác:\n"
+"   -h     in cách dùng này\n"
+"   -V     in số hiệu phiên bản\n"
+"\n"
+
+#: src/setvtrgb.c:75
+#, c-format
+msgid "Error: %s: Invalid value in field %u in line %u."
+msgstr "Lỗi: %s: Giá trị không hợp lện trong trường %u tại dòng %u."
+
+#: src/setvtrgb.c:82
+#, c-format
+msgid "Error: %s: Insufficient number of fields in line %u."
+msgstr "Lỗi: %s: Số lượng trường bị thiếu tại dòng %u."
+
+#: src/setvtrgb.c:87
+#, c-format
+msgid "Error: %s: Line %u has ended unexpectedly.\n"
+msgstr "Lỗi: %s: Dòng %u bị chấm dứt bất ngờ.\n"
 
-#: src/showconsolefont.c:33
+#: src/setvtrgb.c:91
 #, c-format
+msgid "Error: %s: Line %u is too long.\n"
+msgstr "Lỗi: %s: Dòng %u quá đài.\n"
+
+#: src/showconsolefont.c:37
 msgid "failed to restore original translation table\n"
 msgstr "phục hồi bảng dịch thuật gốc không thành công\n"
 
-#: src/showconsolefont.c:38
-#, c-format
+#: src/showconsolefont.c:41
 msgid "failed to restore original unimap\n"
-msgstr "phục hồi sơ đồ unicode (unimap) không thành công\n"
+msgstr "phục hồi ánh xạ unicode (unimap) gốc không thành công\n"
 
-#: src/showconsolefont.c:56
-#, c-format
+#: src/showconsolefont.c:60
 msgid "cannot change translation table\n"
 msgstr "không thể thay đổi bảng dịch thuật\n"
 
-#: src/showconsolefont.c:63
-#, c-format
-msgid "%s: out of memory?\n"
-msgstr "%s: không đủ bộ nhớ?\n"
-
-#: src/showconsolefont.c:104
+#: src/showconsolefont.c:101
 #, c-format
 msgid ""
 "usage: showconsolefont -V|--version\n"
@@ -1586,37 +1766,39 @@ msgid ""
 "(probably after loading a font with `setfont font')\n"
 "\n"
 "Valid options are:\n"
-" -C tty   Device to read the font from. Default: current tty.\n"
-" -v       Be more verbose.\n"
-" -i       Don't print out the font table, just show\n"
-"          ROWSxCOLSxCOUNT and exit.\n"
+" -V --version    Print version number and exit.\n"
+" -C tty          Device to read the font from. Default: current tty.\n"
+" -v              Be more verbose.\n"
+" -i              Don't print out the font table, just show\n"
+"                 ROWSxCOLSxCOUNT and exit.\n"
 msgstr ""
-"sử dụng: showconsolefont -V|--version\n"
-"       showconsolefont [-C tty] [-v] [-i]\n"
-"(rất có thể sau khi nạp phông chữ với « setfont phông »)\n"
+"cách dùng: showconsolefont -V|--version\n"
+"           showconsolefont [-C tty] [-v] [-i]\n"
+"(rất có thể sau khi nạp phông chữ với “setfont phông”)\n"
 "\n"
 "Tùy chọn hợp lệ:\n"
-" -C tty   Thiết bị từ đó cần đọc phông. Mặc định: tty hiện thời.\n"
-" -v       Xuất thêm chi tiết.\n"
-" -i       Đừng in ra bảng phông, chỉ hiển thị\n"
-"          HÀNG×CỘT×ĐẾM rồi thoát.\n"
+" -V --version    In số hiệu phiên bản rồi thoát.\n"
+" -C tty          Thiết bị từ đó cần đọc phông. Mặc định: tty hiện tại.\n"
+" -v              Xuất thêm chi tiết.\n"
+" -i              Đừng in ra bảng phông, chỉ hiển thị\n"
+"                 HÀNG×CỘT×SỐ_LƯỢNG rồi thoát.\n"
 
-#: src/showconsolefont.c:171
+#: src/showconsolefont.c:167
 #, c-format
 msgid "Character count: %d\n"
-msgstr "Đếm ký tự : %d\n"
+msgstr "Số lượng ký tự   : %d\n"
 
-#: src/showconsolefont.c:172
+#: src/showconsolefont.c:168
 #, c-format
 msgid "Font width     : %d\n"
-msgstr "Độ rộng phông chữ     : %d\n"
+msgstr "Độ rộng phông chữ: %d\n"
 
-#: src/showconsolefont.c:173
+#: src/showconsolefont.c:169
 #, c-format
 msgid "Font height    : %d\n"
-msgstr "Ä\90á»\93 cao phông chữ    : %d\n"
+msgstr "Ä\90á»\99 cao phông chữ : %d\n"
 
-#: src/showconsolefont.c:185
+#: src/showconsolefont.c:180
 #, c-format
 msgid ""
 "Showing %d-char font\n"
@@ -1625,16 +1807,16 @@ msgstr ""
 "Đang hiển thị phông chữ %d-ký-tự\n"
 "\n"
 
-#: src/showkey.c:47
+#: src/showkey.c:50
 msgid "?UNKNOWN?"
 msgstr "?KHÔNG RÕ?"
 
-#: src/showkey.c:49
+#: src/showkey.c:53
 #, c-format
 msgid "kb mode was %s\n"
-msgstr "chế độ bàn phím vừa là %s\n"
+msgstr "chế độ bàn phím từng là %s\n"
 
-#: src/showkey.c:51
+#: src/showkey.c:55
 #, c-format
 msgid ""
 "[ if you are trying this under X, it might not work\n"
@@ -1643,12 +1825,12 @@ msgstr ""
 "[ nếu bạn chạy lệnh này dưới X, có thể nó không làm việc\n"
 "vì máy chủ X cũng đọc /dev/console ]\n"
 
-#: src/showkey.c:70
+#: src/showkey.c:75
 #, c-format
 msgid "caught signal %d, cleaning up...\n"
-msgstr "nhận được tín hiệu %d, đang dọn dẹp...\n"
+msgstr "nhận được tín hiệu %d, đang dọn dẹp\n"
 
-#: src/showkey.c:84
+#: src/showkey.c:91
 #, c-format
 msgid ""
 "showkey version %s\n"
@@ -1661,19 +1843,21 @@ msgid ""
 "\t-a --ascii\tdisplay the decimal/octal/hex values of the keys\n"
 "\t-s --scancodes\tdisplay only the raw scan-codes\n"
 "\t-k --keycodes\tdisplay only the interpreted keycodes (default)\n"
+"\t-V --version\tprint version number\n"
 msgstr ""
 "showkey phiên bản %s\n"
 "\n"
-"sử dụng: showkey [tùy-chọn...]\n"
+"cách dùng: showkey [tùy-chọn…]\n"
 "\n"
 "Tùy chọn có thể dùng:\n"
 "\n"
 "\t-h --help\thiển thị trợ giúp này\n"
-"\t-a --ascii\thiển thị giá trị của phím trong các hệ mười/tám/mười sáu\n"
+"\t-a --ascii\thiển thị giá trị của phím trong các hệ mười/tám/mười_sáu\n"
 "\t-s --scancodes\tchỉ hiển thị mã quét thô\n"
 "\t-k --keycodes\tchỉ hiển thị mã phím đã dịch (mặc định)\n"
+"\t-V --version\tin số hiệu phiên bản\n"
 
-#: src/showkey.c:163
+#: src/showkey.c:171
 #, c-format
 msgid ""
 "\n"
@@ -1684,29 +1868,275 @@ msgstr ""
 "Nhấn phím bất kỳ - Ctrl-D sẽ dừng chương trình này\n"
 "\n"
 
-#: src/showkey.c:232
+#: src/showkey.c:239
 #, c-format
 msgid "press any key (program terminates 10s after last keypress)...\n"
 msgstr ""
-"nhấn phím bất kỳ (chương trình sẽ tự dừng sau 10 giây không nhấn phím)...\n"
+"nhấn phím bất kỳ (chương trình sẽ tự dừng sau 10 giây không nhấn phím)\n"
 
-#: src/showkey.c:256
+#: src/showkey.c:263
 msgid "release"
-msgstr "phát hành"
+msgstr "nhả"
 
-#: src/showkey.c:256
+#: src/showkey.c:263
 msgid "press"
 msgstr "nhấn"
 
-#: src/showkey.c:268
+#: src/showkey.c:273
 #, c-format
 msgid "keycode %3d %s\n"
 msgstr "mã phím (keycode) %3d %s\n"
 
-#: src/version.h:21
+#: src/totextmode.c:28
+msgid "usage: totextmode\n"
+msgstr "cách dùng: totextmode\n"
+
+#: src/vlock/auth.c:76
+msgid ""
+"Please try again later.\n"
+"\n"
+"\n"
+msgstr ""
+"Xin hãy thử lại sau.\n"
+"\n"
+"\n"
+
+#: src/vlock/auth.c:84
 #, c-format
-msgid "%s from %s\n"
-msgstr "%s từ %s\n"
+msgid "The entire console display is now completely locked by %s.\n"
+msgstr ""
+"Bộ hiển thị toàn bộ bảng điều khiển hiện nay được khóa hoàn toàn bởi %s.\n"
+
+#: src/vlock/auth.c:87
+#, c-format
+msgid "The %s is now locked by %s.\n"
+msgstr "“%s” bị khóa bởi %s.\n"
+
+#: src/vlock/auth.c:90
+msgid "Use Alt-function keys to switch to other virtual consoles."
+msgstr "Dùng các phím Alt-function để chuyển bảng điều khiển ảo khác."
+
+#: src/vlock/parse.c:52
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr "Hãy gõ lệnh “%s --help” để xem thông tin thêm.\n"
+
+#: src/vlock/parse.c:61
+#, c-format
+msgid ""
+"%s: locks virtual consoles, saving your current session.\n"
+"Usage: %s [options]\n"
+"       Where [options] are any of:\n"
+"-c or --current: lock only this virtual console, allowing user to\n"
+"       switch to other virtual consoles.\n"
+"-a or --all: lock all virtual consoles by preventing other users\n"
+"       from switching virtual consoles.\n"
+"-v or --version: Print the version number of vlock and exit.\n"
+"-h or --help: Print this help message and exit.\n"
+msgstr ""
+"%s: khóa các bảng điều khiển ảo, ghi lại phiên hiện hành của bạn.\n"
+"Cách dùng: %s [các-tùy-chọn]\n"
+"\n"
+"Với [các-tùy-chọn] là:\n"
+"-c hay --current: chỉ khóa bảng điều khiển ảo này, cho phép người dùng\n"
+"        chuyển sang bảng điều khiển khác.\n"
+"-a hay --all: khóa tất cả các bảng điều khiển ảo để ngăn cản những người "
+"khác\n"
+"        chuyển đổi thiết bị điều khiển ảo.\n"
+"-v hay --version: Hiển thị số phiên bản của vlock rồi thoát.\n"
+"-h hay --help: Hiển thị trợ giúp này rồi thoát.\n"
+
+#: src/vlock/username.c:57
+msgid "unrecognized user"
+msgstr "không nhận ra người dùng"
+
+#: src/vlock/vlock.c:55
+msgid "stdin is not a tty"
+msgstr "stdin không phải là một tty"
+
+#: src/vlock/vt.c:147
+#, c-format
+msgid "This tty (%s) is not a virtual console.\n"
+msgstr "tty này (%s) không phải là bảng điều khiển ảo.\n"
+
+#: src/vlock/vt.c:154
+#, c-format
+msgid "The entire console display cannot be locked.\n"
+msgstr "Toàn bộ phần trình bày bảng điều khiển không thể bị khóa.\n"
+
+#~ msgid "usage: chvt N\n"
+#~ msgstr "cách dùng: chvt N\n"
+
+#~ msgid "Usage: kbdrate [-V | --version] [-s] [-r rate] [-d delay]\n"
+#~ msgstr "Cách dùng: kbdrate [-V | --version] [-s] [-r tốc_độ] [-d độ_trễ]\n"
+
+#~ msgid ""
+#~ "Usage:\n"
+#~ "\tsetmetamode [ metabit | meta | bit | escprefix | esc | prefix ]\n"
+#~ "Each vt has his own copy of this bit. Use\n"
+#~ "\tsetmetamode [arg] < /dev/ttyn\n"
+#~ "to change the settings of another vt.\n"
+#~ "The setting before and after the change are reported.\n"
+#~ msgstr ""
+#~ "Cách dùng:\n"
+#~ "\tsetmetamode [ metabit | meta | bit | escprefix | esc | prefix ]\n"
+#~ "Mỗi vt có một bản sao bit này của mình. Hãy dùng\n"
+#~ "\tsetmetamode [arg] < /dev/ttyn\n"
+#~ "để thay đổi cài đặt của vt khác.\n"
+#~ "Cài đặt trước và sau sự thay đổi sẽ được báo cáo.\n"
+
+#~ msgid "%s: deallocating all unused consoles failed\n"
+#~ msgstr ""
+#~ "%s: bỏ phân phối tất cả thiết bị điều khiển không sử dụng không thành "
+#~ "công\n"
+
+#~ msgid "kbd_mode: error reading keyboard mode\n"
+#~ msgstr "kbd_mode: lỗi đọc chế độ bàn phím\n"
+
+#~ msgid "%s: error setting keyboard mode\n"
+#~ msgstr "%s: lỗi cài đặt chế độ bàn phím\n"
+
+#~ msgid "Error opening /dev/kbd.\n"
+#~ msgstr "Lỗi mở /dev/kbd.\n"
+
+#~ msgid "%s: out of memory?\n"
+#~ msgstr "%s: không đủ bộ nhớ?\n"
+
+#~ msgid "unable to keymap %d"
+#~ msgstr "không thể ánh xạ phím %d"
+
+#~ msgid "func %d not allocated"
+#~ msgstr "hàm %d chưa được phân bổ"
+
+#~ msgid "unable to get compose definitions"
+#~ msgstr "không thể lấy phần định nghĩa của cấu tạo"
+
+#~ msgid "key"
+#~ msgstr "phím"
+
+#~ msgid "keys"
+#~ msgstr "phím"
+
+#~ msgid "string"
+#~ msgstr "chuỗi"
+
+#~ msgid "strings"
+#~ msgstr "chuỗi"
+
+#~ msgid "Loaded %d compose %s"
+#~ msgstr "Đã nạp %d cấu tạo %s"
+
+#~ msgid "definition"
+#~ msgstr "định nghĩa"
+
+#~ msgid "definitions"
+#~ msgstr "định nghĩa"
+
+#~ msgid "KDGKBENT error at index 0 in table %d\n"
+#~ msgstr "Lỗi KDGKBENT tại chỉ mục 0 trong bảng %d\n"
+
+#~ msgid "%s: cannot find any keymaps?\n"
+#~ msgstr "%s: không tìm thấy ánh xạ bàn phím (keymap) nào?\n"
+
+#~ msgid "%s: plain map not allocated? very strange ...\n"
+#~ msgstr "%s: ánh xạ đơn giản chưa được cấp phát? rất kỳ lạ …\n"
+
+#~ msgid "# not alt_is_meta: on keymap %d key %d is bound to"
+#~ msgstr ""
+#~ "# không alt_is_meta: trên ánh xạ phím (keymap) %d phím %d được ràng buộc "
+#~ "tới"
+
+#~ msgid "KDGKBSENT failed at index %d: "
+#~ msgstr "KDGKBSENT lỗi tại chỉ mục %d: "
+
+#~ msgid "error executing  %s\n"
+#~ msgstr "lỗi thực hiện  %s\n"
+
+#~ msgid "Warning: path too long: %s/%s\n"
+#~ msgstr "Cảnh báo: đường dẫn quá dài: %s/%s\n"
+
+#~ msgid "includes are nested too deeply"
+#~ msgstr "những tập tin bao gồm lồng nhau quá sâu"
+
+#~ msgid "switching to %s\n"
+#~ msgstr "đang chuyển đổi sang %s\n"
+
+#~ msgid "cannot open include file %s"
+#~ msgstr "không thể mở tập tin bao gồm %s"
+
+#~ msgid "expected filename between quotes"
+#~ msgstr "cần tên tập tin ở giữa cặp dấu nháy kép"
+
+#~ msgid "unicode keysym out of range: %s"
+#~ msgstr "“unicode keysym” nằm ngoài phạm vi: %s"
+
+#~ msgid "string too long"
+#~ msgstr "chuỗi quá dài"
+
+#~ msgid "addmap called with bad index %d"
+#~ msgstr "addmap được gọi với chỉ mục sai %d"
+
+#~ msgid "killkey called with bad index %d"
+#~ msgstr "killkey được gọi với chỉ mục sai %d"
+
+#~ msgid "killkey called with bad table %d"
+#~ msgstr "killkey được gọi với bảng sai %d"
+
+#~ msgid "addkey called with bad index %d"
+#~ msgstr "addkey được gọi với chỉ mục sai %d"
+
+#~ msgid "addkey called with bad table %d"
+#~ msgstr "addkey được gọi với bảng sai %d"
+
+#~ msgid "%s: addfunc called with bad func %d\n"
+#~ msgstr "%s: addfunc được gọi với hàm sai %d\n"
+
+#~ msgid "%s: addfunc: func_buf overflow\n"
+#~ msgstr "%s: addfunc: tràn func_buf\n"
+
+#~ msgid "compose table overflow\n"
+#~ msgstr "tràn bảng cấu tạo\n"
+
+#~ msgid "loadkeys: don't know how to compose for %s\n"
+#~ msgstr "loadkeys: không biết cách cấu tạo cho %s\n"
+
+#~ msgid "'%s' is not a function key symbol"
+#~ msgstr "“%s” không phải là một ký hiệu phím chức năng"
+
+#~ msgid "too many (%d) entries on one line"
+#~ msgstr "quá nhiều (%d) mục nhập trên cùng một dòng"
+
+#~ msgid "too many key definitions on one line"
+#~ msgstr "quá nhiều lời xác định trên cùng một dòng"
+
+#~ msgid "Loading %s\n"
+#~ msgstr "Đang nạp %s\n"
+
+#~ msgid "syntax error in map file\n"
+#~ msgstr "lỗi cú pháp trong tập tin ánh xạ\n"
+
+#~ msgid "key bindings not changed\n"
+#~ msgstr "chưa thay đổi tổ hợp phím\n"
+
+#~ msgid "Searching in %s\n"
+#~ msgstr "Đang tìm kiếm trong %s\n"
+
+#~ msgid "        use `openvt -f' to force.\n"
+#~ msgstr "        sử dụng “openvt -f” để ép buộc.\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "openvt: could not open %s R/W (%s)\n"
+#~ msgstr ""
+#~ "\n"
+#~ "openvt: không thể mở %s Đọc/Ghi (%s)\n"
+
+#~ msgid "openvt: could not deallocate console %d\n"
+#~ msgstr "openvt: không thể bỏ phân phối thiết bị điều khiển %d\n"
 
-#~ msgid "loadkeys: error reading keyboard mode\n"
-#~ msgstr "loadkeys: lỗi đọc chế độ bàn phím\n"
+#~ msgid ""
+#~ "Usage: openvt [-c vtnumber] [-f] [-l] [-u] [-s] [-v] [-w] -- "
+#~ "command_line\n"
+#~ msgstr ""
+#~ "Cách dùng: openvt [-c số_vt] [-f] [-l] [-u] [-s] [-v] [-w] -- "
+#~ "command_line\n"