summaryrefslogtreecommitdiffstats
path: root/l10n-vi/dom
diff options
context:
space:
mode:
Diffstat (limited to 'l10n-vi/dom')
-rw-r--r--l10n-vi/dom/chrome/accessibility/AccessFu.properties305
-rw-r--r--l10n-vi/dom/chrome/accessibility/mac/accessible.properties65
-rw-r--r--l10n-vi/dom/chrome/accessibility/unix/accessible.properties17
-rw-r--r--l10n-vi/dom/chrome/accessibility/win/accessible.properties17
-rw-r--r--l10n-vi/dom/chrome/appstrings.properties38
-rw-r--r--l10n-vi/dom/chrome/dom/dom.properties317
-rw-r--r--l10n-vi/dom/chrome/global-strres.properties5
-rw-r--r--l10n-vi/dom/chrome/global.dtd5
-rw-r--r--l10n-vi/dom/chrome/layout/HtmlForm.properties43
-rw-r--r--l10n-vi/dom/chrome/layout/MediaDocument.properties21
-rw-r--r--l10n-vi/dom/chrome/layout/css.properties46
-rw-r--r--l10n-vi/dom/chrome/layout/htmlparser.properties134
-rw-r--r--l10n-vi/dom/chrome/layout/layout_errors.properties54
-rw-r--r--l10n-vi/dom/chrome/layout/printing.properties56
-rw-r--r--l10n-vi/dom/chrome/layout/xmlparser.properties48
-rw-r--r--l10n-vi/dom/chrome/layout/xul.properties5
-rw-r--r--l10n-vi/dom/chrome/mathml/mathml.properties16
-rw-r--r--l10n-vi/dom/chrome/netError.dtd96
-rw-r--r--l10n-vi/dom/chrome/nsWebBrowserPersist.properties17
-rw-r--r--l10n-vi/dom/chrome/plugins.properties18
-rw-r--r--l10n-vi/dom/chrome/security/caps.properties9
-rw-r--r--l10n-vi/dom/chrome/security/csp.properties107
-rw-r--r--l10n-vi/dom/chrome/security/security.properties154
-rw-r--r--l10n-vi/dom/chrome/svg/svg.properties5
-rw-r--r--l10n-vi/dom/chrome/xml/prettyprint.dtd5
-rw-r--r--l10n-vi/dom/chrome/xslt/xslt.properties39
-rw-r--r--l10n-vi/dom/dom/media.ftl5
27 files changed, 1647 insertions, 0 deletions
diff --git a/l10n-vi/dom/chrome/accessibility/AccessFu.properties b/l10n-vi/dom/chrome/accessibility/AccessFu.properties
new file mode 100644
index 0000000000..a1ec8c173a
--- /dev/null
+++ b/l10n-vi/dom/chrome/accessibility/AccessFu.properties
@@ -0,0 +1,305 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this file,
+# You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Screen reader started/stopped
+screenReaderStarted = Trình đọc màn hình đã khởi động
+screenReaderStopped = Trình đọc màn hình đã dừng
+
+# Roles
+menubar = thanh menu
+scrollbar = thanh cuộn
+grip = chỗ bám
+alert = cảnh báo
+menupopup = menu bật lên
+document = tài liệu
+pane = ô nội dung
+dialog = hộp thoại
+separator = dấu ngăn cách
+toolbar = thanh công cụ
+statusbar = thanh trạng thái
+table = bảng
+columnheader = tiêu đề cột
+rowheader = tiêu đề hàng
+column = cột
+row = hàng
+cell = ô trong bảng
+link = liên kết
+list = danh sách
+listitem = mục trong danh sách
+outline = phác thảo
+outlineitem = đề mục phác thảo
+pagetab = thẻ
+propertypage = trang thuộc tính
+graphic = đồ họa
+switch = đổi
+pushbutton = nút bấm
+checkbutton = nút đánh dấu chọn
+radiobutton = nút radio
+combobox = hộp combo
+progressbar = thanh tiến trình
+slider = thanh trượt
+spinbutton = nút quay
+diagram = biểu đồ
+animation = hoạt hình
+equation = phương trình
+buttonmenu = nút mở ra menu
+whitespace = khoảng trắng
+pagetablist = danh sách thẻ
+canvas = khung vẽ
+checkmenuitem = mục đánh dấu
+label = nhãn
+passwordtext = văn bản mật khẩu
+radiomenuitem = mục radio
+textcontainer = khung chứa văn bản
+togglebutton = nút bật/tắt
+treetable = bảng dạng cây
+header = header
+footer = footer
+paragraph = đoạn văn
+entry = ô nhập
+caption = tựa đề
+heading = đề mục
+section = mục/phần
+form = biểu mẫu
+comboboxlist = danh sách hộp chọn
+comboboxoption = mục trong hộp chọn
+imagemap = bản đồ hình ảnh
+listboxoption = tùy chọn
+listbox = hộp danh sách
+flatequation = phương trình phẳng
+gridcell = ô lưới
+note = ghi chú
+figure = hình
+definitionlist = danh sách định nghĩa
+term = thuật ngữ
+definition = giải nghĩa
+
+mathmlcell = ô
+mathmlroot = gốc
+
+# More sophisticated roles which are not actual numeric roles
+textarea = vùng văn bản
+
+
+# Text input types
+textInputType_date = ngày tháng
+textInputType_email = thư điện tử
+textInputType_search = tìm kiếm
+textInputType_tel = điện thoại
+textInputType_url = URL
+
+# More sophisticated object descriptions
+headingLevel = tiêu đề cấp %S
+
+# more sophisticated list announcement
+listStart = Phần tử đầu tiên
+listEnd = Phần tử cuối
+# LOCALIZATION NOTE (listItemsCount): Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+listItemsCount = #1 mục
+
+# LOCALIZATION NOTE: # %1$S is the position of the item n the set.
+# %2$S is the total number of such items in the set.
+# An expanded example would read "2 of 5".
+objItemOfN = %1$S trên %2$S
+
+# Landmark announcements
+banner = biểu ngữ
+complementary = bổ sung
+contentinfo = thông tin nội dung
+main = chính
+navigation = duyệt
+search = tìm kiếm
+
+# LOCALIZATION NOTE (tblColumnInfo): Semi-colon list of plural forms.
+# Number of columns within the table.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+tblColumnInfo = với #1 cột
+# LOCALIZATION NOTE (tblRowInfo): Semi-colon list of plural forms.
+# Number of rows within the table or grid.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+tblRowInfo = và #1 hàng
+
+# table or grid cell information
+columnInfo = Cột %S
+rowInfo = Hàng %S
+spansColumns = trải qua %S cột
+spansRows = trải qua %S hàng
+
+# Invoked actions
+jumpAction = nhảy
+pressAction = nhấn
+checkAction = đã đánh dấu
+uncheckAction = chưa đánh dấu
+onAction = bật
+offAction = tắt
+selectAction = chọn
+unselectAction = chưa chọn
+openAction = đã mở
+closeAction = đã đóng
+switchAction = chuyển
+clickAction = nhấn chuột
+collapseAction = thu gọn
+expandAction = mở rộng
+activateAction = được kích hoạt
+cycleAction = cycled (đi vòng tròn)
+
+# Live regions
+# 'hidden' will be spoken when something disappears in a live region.
+hidden = ẩn
+
+# Tab states
+tabLoading = đang nạp
+tabLoaded = đã nạp
+tabNew = thẻ mới
+tabLoadStopped = đã dừng nạp
+tabReload = đang tải lại
+
+# Object states
+stateChecked = đã đánh dấu
+stateOn = bật
+stateNotChecked = không được đánh dấu
+stateOff = tắt
+statePressed = nhấn
+# No string for a not pressed toggle button
+stateExpanded = mở rộng
+stateCollapsed = thu gọn
+stateUnavailable = không sẵn sàng
+stateReadonly = chỉ đọc
+stateRequired = yêu cầu
+stateTraversed = đã truy cập
+stateHasPopup = có pop up
+stateSelected = được chọn
+
+# App modes
+editingMode = chỉnh sửa
+navigationMode = duyệt
+
+# Quick navigation modes
+quicknav_Simple = Mặc định
+quicknav_Anchor = Anchors
+quicknav_Button = Nút
+quicknav_Combobox = Hộp chọn xổ xuống
+quicknav_Landmark = Mốc
+quicknav_Entry = Mục
+quicknav_FormElement = Phần tử biểu mẫu
+quicknav_Graphic = Hình ảnh
+quicknav_Heading = Tiêu đề
+quicknav_ListItem = Danh sách đề mục
+quicknav_Link = Liên kết
+quicknav_List = Danh sách
+quicknav_PageTab = Thẻ trang
+quicknav_RadioButton = Nút radio
+quicknav_Separator = Dấu ngăn cách
+quicknav_Table = Bảng
+quicknav_Checkbox = Hộp chọn
+
+# MathML menclose notations.
+# See developer.mozilla.org/docs/Web/MathML/Element/menclose#attr-notation
+notation-box = hộp
+notation-roundedbox = hộp tròn
+notation-circle = vòng tròn
+notation-left = trái
+notation-right = phải
+notation-top = trên cùng
+notation-bottom = dưới cùng
+
+# Shortened role names for braille
+menubarAbbr = thanh menu
+scrollbarAbbr = thanh cuộn
+gripAbbr = chỗ bám
+alertAbbr = cảnh báo
+menupopupAbbr = menu xổ ra
+documentAbbr = tài liệu
+paneAbbr = ô nội dung
+dialogAbbr = hộp thoại
+separatorAbbr = dấu ngăn cách
+toolbarAbbr = thanh công cụ
+statusbarAbbr = thanh trạng thái
+tableAbbr = tbl
+columnheaderAbbr = tiêu đề cột
+rowheaderAbbr = tiêu đề dòng
+columnAbbr = cột
+rowAbbr = dòng
+cellAbbr = ô
+linkAbbr = lnk
+listAbbr = danh sách
+listitemAbbr = đề mục danh sách
+outlineAbbr = phác thảo
+outlineitemAbbr = đề mục phác thảo
+pagetabAbbr = thẻ
+propertypageAbbr = trang thuộc tính
+graphicAbbr = đồ họa
+pushbuttonAbbr = nút
+checkbuttonAbbr = nút đánh dấu chọn
+radiobuttonAbbr = nút radio
+comboboxAbbr = hộp chọn
+progressbarAbbr = thanh tiến trình
+sliderAbbr = thanh trượt
+spinbuttonAbbr = nút quay
+diagramAbbr = biểu đồ
+animationAbbr = hoạt hình
+equationAbbr = phương trình
+buttonmenuAbbr = nút xổ ra menu
+whitespaceAbbr = khoảng trắng
+pagetablistAbbr = danh sách thẻ
+canvasAbbr = canvas
+checkmenuitemAbbr = mục đánh dấu
+labelAbbr = nhãn
+passwordtextAbbr = passwdtxt
+radiomenuitemAbbr = mục radio
+textcontainerAbbr = nơi chứa văn bản
+togglebuttonAbbr = nút bật/tắt
+treetableAbbr = bảng dạng cây
+headerAbbr = phần đầu
+footerAbbr = phần chân
+paragraphAbbr = đoạn văn
+entryAbbr = ô nhập
+captionAbbr = tựa đề
+headingAbbr = đề mục
+sectionAbbr = phần
+formAbbr = form
+comboboxlistAbbr = danh sách hộp chọn
+comboboxoptionAbbr = mục trong hộp chọn
+imagemapAbbr = imgmap
+listboxoptionAbbr = tùy chọn
+listboxAbbr = hộp danh sách
+flatequationAbbr = phương trình phẳng
+gridcellAbbr = ô trong bảng
+noteAbbr = ghi chú
+figureAbbr = fig
+definitionlistAbbr = danh sách định nghĩa
+termAbbr = thuật ngữ
+definitionAbbr = định nghĩa
+textareaAbbr = txtarea
+
+# LOCALIZATION NOTE (tblColumnInfoAbbr): Semi-colon list of plural forms.
+# Number of columns within the table.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+tblColumnInfoAbbr = #1c
+# LOCALIZATION NOTE (tblRowInfoAbbr): Semi-colon list of plural forms.
+# Number of rows within the table or grid.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+tblRowInfoAbbr = #1r
+cellInfoAbbr = c%Sr%S
+
+stateCheckedAbbr = (x)
+stateUncheckedAbbr = ()
+statePressedAbbr = (x)
+stateUnpressedAbbr = ( )
+
+mathmlrootAbbr = gốc
+mathmlsquarerootAbbr = căn
+
+close-fenceAbbr = đóng
+numeratorAbbr = số
+open-fenceAbbr = mở
+overscriptAbbr = kết thúc
+root-indexAbbr = chỉ mục
+
+notation-boxAbbr = hộp
+notation-leftAbbr = trái
+notation-rightAbbr = phải
+notation-topAbbr = trên cùng
+notation-bottomAbbr = dưới cùng
diff --git a/l10n-vi/dom/chrome/accessibility/mac/accessible.properties b/l10n-vi/dom/chrome/accessibility/mac/accessible.properties
new file mode 100644
index 0000000000..faa1230859
--- /dev/null
+++ b/l10n-vi/dom/chrome/accessibility/mac/accessible.properties
@@ -0,0 +1,65 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+jump = Nhảy
+press = Ấn
+check = Chọn
+uncheck = Bỏ Chọn
+select = Chọn
+open = Mở
+close = Đóng
+switch = Chuyển
+click = Nhấp
+collapse= Thu gọn
+expand = Mở rộng
+activate= Kích hoạt
+cycle = Xoay
+
+# Universal Access API support
+# (Mac Only)
+# The Role Description for AXWebArea (the web widget). Like in Safari.
+htmlContent = Nội dung HTML
+# The Role Description for the Tab button.
+tab = thẻ
+# The Role Description for definition list dl, dt and dd
+term = thuật ngữ
+definition = định nghĩa
+# The Role Description for an input type="search" text field
+searchTextField = trường tìm kiếm văn bản
+# The Role Description for WAI-ARIA Landmarks
+application = ứng dụng
+search = tìm kiếm
+banner = biểu ngữ
+navigation = duyệt
+complementary = bổ sung
+content = nội dung
+main = chính
+# The (spoken) role description for various WAI-ARIA roles
+alert = cảnh báo
+alertDialog = hộp thoại cảnh báo
+dialog = hộp thoại
+article = bài viết
+document = tài liệu
+# The (spoken) role description for the WAI-ARIA figure role
+# https://w3c.github.io/aria/core-aam/core-aam.html#role-map-figure
+figure = hình
+# The (spoken) role description for the WAI-ARIA heading role
+# https://w3c.github.io/aria/core-aam/core-aam.html#role-map-heading
+heading = tiêu đề
+log = bản ghi
+marquee = vùng đánh dấu
+math = toán học
+note = ghi chú
+region = vùng
+status = trạng thái ứng dụng
+timer = hẹn giờ
+tooltip = chú giải
+separator = dấu ngăn cách
+tabPanel = bảng thẻ
+# The roleDescription for the html:mark element
+highlight = tô sáng
+# The roleDescription for the details element
+details = chi tiết
+# The roleDescription for the summary element
+summary = tóm tắt
diff --git a/l10n-vi/dom/chrome/accessibility/unix/accessible.properties b/l10n-vi/dom/chrome/accessibility/unix/accessible.properties
new file mode 100644
index 0000000000..51294edc4b
--- /dev/null
+++ b/l10n-vi/dom/chrome/accessibility/unix/accessible.properties
@@ -0,0 +1,17 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+jump = Nhảy
+press = Ấn
+check = Chọn
+uncheck = Bỏ Chọn
+select = Chọn
+open = Mở
+close = Đóng
+switch = Chuyển
+click = Nhấp
+collapse= Thu gọn
+expand = Mở rộng
+activate= Kích hoạt
+cycle = Xoay
diff --git a/l10n-vi/dom/chrome/accessibility/win/accessible.properties b/l10n-vi/dom/chrome/accessibility/win/accessible.properties
new file mode 100644
index 0000000000..0a4e13bd9e
--- /dev/null
+++ b/l10n-vi/dom/chrome/accessibility/win/accessible.properties
@@ -0,0 +1,17 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+jump = Nhảy
+press = Nhấp
+check = Chọn
+uncheck = Bỏ chọn
+select = Chọn
+open = Mở
+close = Đóng
+switch = Chuyển
+click = Nhấp
+collapse= Thu gọn
+expand = Mở rộng
+activate= Kích hoạt
+cycle = Xoay
diff --git a/l10n-vi/dom/chrome/appstrings.properties b/l10n-vi/dom/chrome/appstrings.properties
new file mode 100644
index 0000000000..dad166898c
--- /dev/null
+++ b/l10n-vi/dom/chrome/appstrings.properties
@@ -0,0 +1,38 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+malformedURI2=Vui lòng kiểm tra lại URL đã chính xác hay chưa và thử lại lần nữa.
+fileNotFound=Không tìm thấy tập tin %S. Vui lòng kiểm tra vị trí và thử lại.
+fileAccessDenied=Tập tin %S không thể đọc được.
+dnsNotFound2=Không tìm thấy %S. Vui lòng kiểm tra tên và thử lại.
+unknownProtocolFound=Một trong số các giao thức sau (%S) chưa được đăng ký hoặc không được cho phép trong trường hợp này.
+connectionFailure=Đã thử kết nối tới %S và bị từ chối.
+netInterrupt=Kết nối tới %S đã bị ngắt đột ngột. Tuy nhiên, một số dữ liệu có thể đã được truyền tải xong.
+netTimeout=Kết nối tới %S đã đứt do chờ quá lâu.
+redirectLoop=Vượt quá giới hạn chuyển hướng của URL này. Không thể mở trang được yêu cầu. Điều này có thể do cookie bị chặn.
+confirmRepostPrompt=Để hiển thị trang này, ứng dụng phải gửi đi thông tin lặp lại các hành động đã thực hiện trước đó (như xác nhận tìm kiếm hay xác nhận đặt hàng).
+resendButton.label=Gửi lại
+unknownSocketType=Không thể hiển thị tài liệu này trừ khi bạn cài đặt Personal Security Manager (PSM). Vui lòng tải xuống và cài đặt PSM rồi thử lại, hoặc liên hệ với quản trị hệ thống của bạn.
+netReset=Tài liệu không chứa dữ liệu.
+notCached=Tài liệu này không còn hiện hữu.
+netOffline=Không thể hiển thị tài liệu này khi đang ngoại tuyến. Để kết nối trực tuyến, bỏ chọn Làm việc ngoại tuyến trên menu Tập tin.
+isprinting=Không thể chỉnh sửa tài liệu trong khi đang in hoặc ở chế độ xem trước.
+deniedPortAccess=Truy cập tới cổng này đã bị vô hiệu hóa vì lí do bảo mật.
+proxyResolveFailure=Không thể tìm thấy máy chủ proxy mà bạn đã cấu hình. Vui lòng kiểm tra thiết lập proxy và thử lại.
+proxyConnectFailure=Đã thử kết nối tới máy chủ proxy bạn thiết lập nhưng bị từ chối. Vui lòng kiểm tra thiết lập proxy và thử lại.
+contentEncodingError=Không thể hiển thị trang bạn muốn xem vì nó dùng một dạng thức nén bất hợp lệ hoặc không được hỗ trợ.
+unsafeContentType=Không thể hiển thị trang bạn muốn xem vì nó nằm trong một kiểu tập tin không an toàn. Vui lòng liên hệ người quản lí trang web để báo cho họ vấn đề này.
+malwareBlocked=Trang web tại %S bị báo cáo là trang web ác ý và đã bị chặn dựa trên tùy chỉnh bảo mật của bạn.
+harmfulBlocked=Trang web %S được báo cáo là một trang web có khả năng gây hại và đã bị chặn dựa trên cấu hình bảo mật của bạn.
+unwantedBlocked=Trang web tại %S bị báo cáo là có cài đặt phần mềm không mong muốn và đã bị chặn dựa trên tùy chỉnh bảo mật của bạn.
+deceptiveBlocked=Trang web tại %S bị báo cáo là trang web lừa đảo và đã bị chặn dựa trên tùy chỉnh bảo mật của bạn.
+cspBlocked=Trang này có một chính sách bảo mật nội dung không cho phép nó được tải theo cách này.
+xfoBlocked=Trang này có chính sách X-Frame-Options để ngăn không cho nó được tải trong ngữ cảnh này.
+corruptedContentErrorv2=Trang tại %S đã bị vi phạm giao thức truyền thông mà không cho phép sửa.
+remoteXUL=Trang này sử dụng một kỹ thuật không được hỗ trợ và không còn có sẵn mặc định.
+sslv3Used=Không thể đảm bảo an toàn dữ liệu của bạn trên %S vì nó sử dụng SSLv3, một giao thức bảo mật không an toàn.
+weakCryptoUsed=Chủ sở hữu của %S đã cấu hình trang web của họ không đúng. Để bảo vệ thông tin của bạn khỏi không bị trộm cắp, kết nối tới trang web này đã bị ngắt.
+inadequateSecurityError=Trang web đã cố gắng giao tiếp ở mức độ bảo mật thấp.
+blockedByPolicy=Tổ chức của bạn đã chặn quyền truy cập vào trang web này.
+networkProtocolError=Firefox đã phát hiện một vi phạm giao thức mạng mà không thể sửa chữa được.
diff --git a/l10n-vi/dom/chrome/dom/dom.properties b/l10n-vi/dom/chrome/dom/dom.properties
new file mode 100644
index 0000000000..e5871a3978
--- /dev/null
+++ b/l10n-vi/dom/chrome/dom/dom.properties
@@ -0,0 +1,317 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+KillScriptTitle=Cảnh báo: Script không đáp ứng
+KillScriptMessage=Trình duyệt đang bận xử lí một đoạn mã trong trang này, hoặc không xử lí được. Bạn có thể dừng xử lí ngay, hoặc tiếp tục xem nếu việc xử lí có thể hoàn tất được.
+KillScriptWithDebugMessage=Trình duyệt đang bận xử lí một đoạn mã trong trang này, hoặc không xử lí được. Bạn có thể dừng xử lí ngay, mở đoạn mã bằng trình sửa lỗi, hoặc tiếp tục xử lí.
+KillScriptLocation=Đoạn mã: %S
+
+KillAddonScriptTitle=Cảnh báo: Tập lệnh tiện ích không phản hồi
+# LOCALIZATION NOTE (KillAddonScriptMessage): %1$S is the name of an extension.
+# %2$S is the name of the application (e.g., Firefox).
+KillAddonScriptMessage=Một tập lệnh từ tiện ích mở rộng “%1$S” đang chạy trên trang này và khiến %2$S không phản hồi.\n\nNó có thể đang bận hoặc có thể đã ngừng phản hồi vĩnh viễn. Bạn có thể dừng tập lệnh ngay bây giờ hoặc bạn có thể tiếp tục xem nó có hoàn thành hay không.
+KillAddonScriptGlobalMessage=Ngăn tập lệnh mở rộng chạy trên trang này cho đến khi tải lại lần sau
+
+StopScriptButton=Dừng tập lệnh
+DebugScriptButton=Gỡ lỗi tập lệnh
+WaitForScriptButton=Tiếp tục
+DontAskAgain=Đừng &hỏi lại
+WindowCloseBlockedWarning=Đoạn mã sẽ không đóng cửa sổ mà không phải do nó mở.
+OnBeforeUnloadTitle=Bạn có chắc không?
+OnBeforeUnloadMessage=Trang này yêu cầu bạn xác nhận rằng bạn muốn rời đi - dữ liệu mà bạn đã nhập có thể sẽ không được lưu.
+OnBeforeUnloadStayButton=Ở lại trang
+OnBeforeUnloadLeaveButton=Rời khỏi trang
+EmptyGetElementByIdParam=Chuỗi trống đã được đưa sang getElementById().
+SpeculationFailed=Một cây không cân bằng được viết bằng document.write() khiến dữ liệu từ mạng bị phân tách. Đọc thêm thông tin https://developer.mozilla.org/en/Optimizing_Your_Pages_for_Speculative_Parsing
+DocumentWriteIgnored=Một lệnh gọi tới document.write() từ một mã script nạp không đồng bộ bên ngoài đã bị bỏ qua.
+# LOCALIZATION NOTE (EditorFileDropFailed): Do not translate contenteditable, %S is the error message explaining why the drop failed.
+EditorFileDropFailed=Lỗi kéo thả tập tin vào phần tử có thuộc tính contenteditable: %S.
+FormValidationTextTooLong=Vui lòng rút ngắn đoạn này xuống còn %S kí tự hoặc ít hơn (bạn hiện đang dùng %S kí tự).
+FormValidationTextTooShort=Vui lòng sử dụng ít nhất %S ký tự (bạn hiện đang sử dụng %S ký tự).
+FormValidationValueMissing=Vui lòng điền vào trường này.
+FormValidationCheckboxMissing=Vui lòng đánh dấu ô này nếu bạn muốn tiến hành.
+FormValidationRadioMissing=Vui lòng chọn một trong các tùy chọn này.
+FormValidationFileMissing=Vui lòng chọn một tập tin.
+FormValidationSelectMissing=Vui lòng chọn một mục trong danh sách.
+FormValidationInvalidEmail=Vui lòng điền một địa chỉ email.
+FormValidationInvalidURL=Vui lòng điền một URL.
+FormValidationInvalidDate =Vui lòng nhập ngày hợp lệ.
+FormValidationPatternMismatch=Vui lòng khớp định dạng được yêu cầu.
+# LOCALIZATION NOTE (FormValidationPatternMismatchWithTitle): %S is the (possibly truncated) title attribute value.
+FormValidationPatternMismatchWithTitle=Vui lòng khớp định dạng được yêu cầu: %S.
+# LOCALIZATION NOTE (FormValidationNumberRangeOverflow): %S is a number.
+FormValidationNumberRangeOverflow=Vui lòng chọn một giá trị không lớn hơn %S.
+# LOCALIZATION NOTE (FormValidationDateTimeRangeOverflow): %S is a date or a time.
+FormValidationDateTimeRangeOverflow=Vui lòng chọn một ngày không muộn hơn %S.
+# LOCALIZATION NOTE (FormValidationNumberRangeUnderflow): %S is a number.
+FormValidationNumberRangeUnderflow=Vui lòng chọn một giá trị không nhỏ hơn %S.
+# LOCALIZATION NOTE (FormValidationDateTimeRangeUnderflow): %S is a date or a time.
+FormValidationDateTimeRangeUnderflow=Vui lòng chọn một ngày không sớm hơn %S.
+# LOCALIZATION NOTE (FormValidationStepMismatch): both %S can be a number, a date or a time.
+FormValidationStepMismatch=Vui lòng chọn một giá trị hợp lệ. Hai giá trị hợp lệ gần nhất là %S và %S.
+# LOCALIZATION NOTE (FormValidationStepMismatchOneValue): %S can be a number, a date or a time. This is called instead of FormValidationStepMismatch when the second value is the same as the first.
+FormValidationStepMismatchOneValue=Vui lòng chọn một giá trị hợp lệ. Giá trị hợp lệ gần nhất là %S.
+# LOCALIZATION NOTE (FormValidationTimeReversedRangeUnderflowAndOverflow): %1$S,%2$S are time.
+FormValidationTimeReversedRangeUnderflowAndOverflow=Vui lòng chọn giá trị trong khoảng từ %1$S đến %2$S.
+FormValidationBadInputNumber=Vui lòng nhập số.
+FullscreenDeniedDisabled=Yêu cầu toàn màn hình đã bị từ chối vì API toàn màn hình bị tắt theo ưu tiên của người dùng.
+FullscreenDeniedFocusedPlugin=Yêu cầu toàn màn hình đã bị từ chối vì một phần bổ trợ có cửa sổ được chọn.
+FullscreenDeniedHidden=Yêu cầu toàn màn hình đã bị từ chối vì tài liệu không còn hiển thị.
+FullscreenDeniedHTMLDialog=Yêu cầu toàn màn hình đã bị từ chối vì phần tử yêu cầu là phần tử <dialog>.
+FullscreenDeniedContainerNotAllowed=Yêu cầu hiển thị toàn màn hình bị từ chối vì có ít nhất một trang không phải là iframe hoặc không có thuộc tính "allowfullscreen".
+FullscreenDeniedNotInputDriven=Yêu cầu toàn màn hình đã bị từ chối vì Element.requestFullscreen() không được gọi từ bên trong trình xử lý sự kiện do người dùng tạo.
+FullscreenDeniedMouseEventOnlyLeftBtn=Yêu cầu toàn màn hình đã bị từ chối vì hàm Element.requestFullscreen() được gọi từ bên trong một trình xử lý sự kiện chuột mà không được kích hoạt bằng nút chuột trái.
+FullscreenDeniedNotHTMLSVGOrMathML=Yêu cầu chế độ toàn màn hình bị từ chối vì phần tử được yêu cầu không phải là <svg>, <math>, hay một phần tử HTML.
+FullscreenDeniedNotInDocument=Yêu cầu toàn màn hình đã bị từ chối vì không còn yêu cầu yếu tố trong tài liệu của nó.
+FullscreenDeniedMovedDocument=Yêu cầu toàn màn hình đã bị từ chối vì yêu cầu yếu tố đã di chuyển tài liệu.
+FullscreenDeniedLostWindow=Yêu cầu toàn màn hình đã bị từ chối vì chúng tôi không còn một cửa sổ.
+FullscreenDeniedSubDocFullscreen=Yêu cầu toàn màn hình đã bị từ chối vì một tài liệu con của tài liệu yêu cầu toàn màn hình đã ở chế độ toàn màn hình.
+FullscreenDeniedNotDescendant=Yêu cầu toàn màn hình đã bị từ chối vì phần tử yêu cầu không phải là phần tử con của phần tử toàn màn hình hiện tại.
+FullscreenDeniedNotFocusedTab=Yêu cầu toàn màn hình đã bị từ chối vì yếu tố yêu cầu không nằm trong thẻ hiện đang chọn.
+FullscreenDeniedFeaturePolicy=Yêu cầu toàn màn hình đã bị từ chối vì các chỉ thị FeaturePolicy.
+FullscreenExitWindowFocus=Thoát toàn màn hình vì một cửa sổ đã được chọn.
+RemovedFullscreenElement=Đã thoát toàn màn hình vì yếu tố toàn màn hình đã bị xóa khỏi tài liệu.
+FocusedWindowedPluginWhileFullscreen=Thoát toàn màn hình vì cửa sổ của phần bổ trợ đã được chọn.
+PointerLockDeniedDisabled=Yêu cầu khóa con trỏ bị từ chối vì API khóa con trỏ đã bị tắt bởi cấu hình tùy chọn của người dùng.
+PointerLockDeniedInUse=Yêu cầu khóa con trỏ đã bị từ chối vì con trỏ hiện tại đang được điều khiển bởi một document khác.
+PointerLockDeniedNotInDocument=Yêu cầu khóa con trỏ đã bị từ chối vì phần tử yêu cầu không có trong document.
+PointerLockDeniedSandboxed=Yêu cầu khóa con trỏ đã bị từ chối vì API khóa con trỏ bị hạn chế qua sandbox.
+PointerLockDeniedHidden=Yêu cầu khóa con trỏ đã bị từ chối vì document đang không hiển thị.
+PointerLockDeniedNotFocused=Yêu cầu khóa con trỏ đã bị từ chối vì document không được chọn.
+PointerLockDeniedFailedToLock=Yêu cầu khóa con trỏ đã bị từ chối vì trình duyệt không khóa được con trỏ.
+HTMLSyncXHRWarning=Việc phân tích HTML trong XMLHttpRequest không được hỗ trợ ở chế độ đồng bộ.
+# LOCALIZATION NOTE: %S is the name of the header in question
+ForbiddenHeaderWarning=Cố gắng đặt một tiêu đề không được phép đã bị từ chối: %S
+ResponseTypeSyncXHRWarning=Việc dùng thuộc tính responseType của XMLHttpRequest không được hỗ trợ ở chế độ đồng bộ trong phạm vi cửa sổ.
+TimeoutSyncXHRWarning=Việc dùng thuộc tính timeout của XMLHttpRequest không còn được hỗ trợ ở chế độ đồng bộ trong phạm vi cửa sổ.
+# LOCALIZATION NOTE: Do not translate navigator.sendBeacon, unload, pagehide, or XMLHttpRequest.
+JSONCharsetWarning=Sử dụng mã hóa không phải UTF-8 để nhận JSON bằng XMLHttpRequest là vi phạm. Việc giải mã JSON chỉ hỗ trợ UTF-8.
+# LOCALIZATION NOTE: Do not translate decodeAudioData.
+MediaDecodeAudioDataUnknownContentType=Thông tin được chuyển tới decodeAudioData chứa kiểu nội dung không nhận diện được.
+# LOCALIZATION NOTE: Do not translate decodeAudioData.
+MediaDecodeAudioDataUnknownError=Đã xảy ra lỗi không xác định trong khi xử lý decodeAudioData.
+# LOCALIZATION NOTE: Do not translate decodeAudioData.
+MediaDecodeAudioDataInvalidContent=Vùng đệm chuyển tới decodeAudioData có chứa nội dung không hợp lệ nên không thể giải mã được.
+# LOCALIZATION NOTE: Do not translate decodeAudioData.
+MediaDecodeAudioDataNoAudio=Vùng đệm chuyển tới decodeAudioData không chứa dữ liệu âm thanh.
+# LOCALIZATION NOTE: Do not translate HTMLMediaElement and createMediaElementSource.
+# LOCALIZATION NOTE: Do not translate MediaStream and createMediaStreamSource.
+# LOCALIZATION NOTE : Do not translate MediaStreamTrack and createMediaStreamTrackSource.
+# LOCALIZATION NOTE: Do not translate HTMLMediaElement and MediaStream.
+MediaElementAudioCaptureOfMediaStreamError=HTMLMediaEuity đã chụp đang phát MediaStream. Chỉnh âm lượng hoặc trạng thái tắt tiếng hiện không được hỗ trợ.
+# LOCALIZATION NOTE: Do not translate HTMLMediaElement and MediaStream.
+MediaLoadExhaustedCandidates=Không thể tải xuống các nguồn tài nguyên. Phương tiện đã tạm dừng tải.
+MediaLoadSourceMissingSrc=Phần tử <source> không có thuộc tính “src”. Nguồn media không tải được.
+MediaStreamAudioSourceNodeDifferentRate=Kết nối AudioNodes từ AudioContexts với tốc độ mẫu khác nhau hiện không được hỗ trợ.
+# LOCALIZATION NOTE: %1$S is the Http error code the server returned (e.g. 404, 500, etc), %2$S is the URL of the media resource which failed to load.
+MediaLoadHttpError=Không tải được HTTP với trạng thái %1$S. Không tải được media từ %2$S.
+# LOCALIZATION NOTE: %S is the URL of the media resource which failed to load.
+MediaLoadInvalidURI=URI không hợp lệ. Việc tải tập tin media từ nguồn %S thất bại.
+# LOCALIZATION NOTE: %1$S is the media resource's format/codec type (basically equivalent to the file type, e.g. MP4,AVI,WMV,MOV etc), %2$S is the URL of the media resource which failed to load.
+MediaLoadUnsupportedTypeAttribute=Định dạng "%1$S" không được hỗ trợ. Việc tải media từ %2$S thất bại.
+# LOCALIZATION NOTE: %1$S is the MIME type HTTP header being sent by the web server, %2$S is the URL of the media resource which failed to load.
+MediaLoadUnsupportedMimeType=Máy chủ không hỗ trợ HTTP "Content-Type" của "%1$S". Không tải được media từ %2$S.
+# LOCALIZATION NOTE: %S is the URL of the media resource which failed to load because of error in decoding.
+MediaLoadDecodeError=Tài nguyên %S không thể giải mã.
+MediaWidevineNoWMF=Cố gắng chạy Widevine không có Windows Media Foundation. Xem https://support.mozilla.org/kb/fix-video-audio-problems-firefox-windows
+# LOCALIZATION NOTE: %S is a comma-separated list of codecs (e.g. 'video/mp4, video/webm')
+MediaWMFNeeded=Để phát định dạng video %S, bạn cần cài đặt thêm phần mềm Microsoft, xem https://support.mozilla.org/kb/fix-video-audio-problems-firefox-windows
+# LOCALIZATION NOTE: %S is a comma-separated list of codecs (e.g. 'video/mp4, video/webm')
+MediaPlatformDecoderNotFound=Video trên trang này không thể phát. Hệ thống của bạn có thể không có codec video cần thiết cho: %S
+MediaUnsupportedLibavcodec=Video trên trang này có thể được phát. Hệ thống của bạn có phiên bản libavcodec không được hỗ trợ
+# LOCALIZATION NOTE: %1$S is the URL of the media resource, %2$S is technical information (in English)
+MediaDecodeError=Không thể giải mã tài nguyên phương tiện %1$S, lỗi: %2$S
+# LOCALIZATION NOTE: %1$S is the URL of the media resource, %2$S is technical information (in English)
+MediaDecodeWarning=Tài nguyên phương tiện %1$S có thể được giải mã, nhưng có lỗi: %2$S
+# LOCALIZATION NOTE: %S is a comma-separated list of codecs (e.g. 'video/mp4, video/webm')
+MediaCannotPlayNoDecoders=Không thể chạy phương tiện. Không có bộ giải mã cho các định dạng được yêu cầu: %S
+# LOCALIZATION NOTE: %S is a comma-separated list of codecs (e.g. 'video/mp4, video/webm')
+MediaNoDecoders=Không có bộ giải mã cho một số định dạng được yêu cầu: %S
+MediaCannotInitializePulseAudio=Không thể sử dụng PulseAudio
+# LOCALIZATION NOTE: Do not translate "MediaRecorder".
+MediaRecorderMultiTracksNotSupported=MediaRecorder không hỗ trợ ghi nhiều bài cùng loại lúc này.
+# LOCALIZATION NOTE: %S is the URL of the web page which is not served on HTTPS and thus is not encrypted and considered insecure.
+# LOCALIZATION NOTE: %S is the URL of the web page which is calling web APIs without passing data (either an audioCapabilities or a videoCapabilities) that will soon be required. See https://bugzilla.mozilla.org/show_bug.cgi?id=1368583#c21 for explanation of this string.
+# LOCALIZATION NOTE: %S is the URL of the web page which is calling web APIs without passing data (a "codecs" string in the "contentType") that will soon be required. See https://bugzilla.mozilla.org/show_bug.cgi?id=1368583#c21 for explanation of this string.
+# LOCALIZATION NOTE: Do not translate "Mutation Event" and "MutationObserver"
+MutationEventWarning=Mutation Events đã lỗi thời, thay vào đó, hãy dùng MutationObserver.
+BlockAutoplayWebAudioStartError=Một AudioContext đã bị ngăn bắt đầu tự động. Nó phải được tạo hoặc tiếp tục lại sau một cử chỉ của người dùng trên trang.
+# LOCALIZATION NOTE: Do not translate "Components"
+ComponentsWarning=Không nên dùng đối tượng Components. Đối tượng này sắp bị loại bỏ.
+PluginHangUITitle=Cảnh báo: phần bổ trợ không đáp ứng
+PluginHangUIMessage=%S có thể đang bận, hoặc đã bị treo. Bạn có thể tắt phần bổ trợ ngay bây giờ, hoặc tiếp tục đợi nếu muốn nó hoàn tất việc xử lý.
+PluginHangUIWaitButton=Tiếp tục
+PluginHangUIStopButton=Tắt phần bổ trợ
+# LOCALIZATION NOTE: Do not translate "NodeIterator" or "detach()".
+NodeIteratorDetachWarning=Lời gọi hàm detach() trên NodeIterator không còn có tác dụng.
+# LOCALIZATION NOTE: Do not translate "LenientThis" and "this"
+LenientThisWarning=Bỏ qua nhận hoặc tập hợp các thuộc tính có [LenientThis] bởi vì đối tượng “this” có thể không chính xác.
+# LOCALIZATION NOTE: Do not translate "captureEvents()" or "addEventListener()"
+UseOfCaptureEventsWarning=captureEvents() không còn dùng nữa. Để nâng cấp mã của bạn, hãy dùng phương pháp DOM 2 addEventListener(). Xem thêm trợ giúp ở http://developer.mozilla.org/en/docs/DOM:element.addEventListener
+# LOCALIZATION NOTE: Do not translate "releaseEvents()" or "removeEventListener()"
+UseOfReleaseEventsWarning=releaseEvents() không còn dùng nữa. Để nâng cấp mã của bạn, hãy dùng phương pháp DOM 2 removeEventListener(). Xem thêm trợ giúp ở http://developer.mozilla.org/en/docs/DOM:element.removeEventListener
+# LOCALIZATION NOTE: Do not translate "XMLHttpRequest"
+SyncXMLHttpRequestWarning=Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help http://xhr.spec.whatwg.org/
+# LOCALIZATION NOTE: Do not translate "window.controllers/Controllers"
+Window_Cc_ontrollersWarning=window.controllers/Controllers không được dùng nữa. Không sử dụng nó để phát hiện UA.
+ImportXULIntoContentWarning=Nhập các nút XUL vào tài liệu nội dung không được dùng nữa. Chức năng này có thể được gỡ bỏ sau này.
+# LOCALIZATION NOTE: Do not translate "IndexedDB".
+# LOCALIZATION NOTE: Do not translate Will-change, %1$S,%2$S are numbers.
+IgnoringWillChangeOverBudgetWarning=Việc tiêu thụ bộ nhớ will-change là rất lớn. Mức giới hạn được tính bằng diện tích bề mặt của document nhân với %1$S (%2$S px). Sự xuất hiện của will-change vượt quá mức giới hạn này sẽ bị loại bỏ.
+# LOCALIZATION NOTE: Do not translate "Worker".
+# LOCALIZATION NOTE: Do not translate "Application Cache API", "AppCache" and "ServiceWorker".
+# LOCALIZATION NOTE: Do not translate "Worker".
+# LOCALIZATION NOTE: Do not translate "RTCPeerConnection", "getLocalStreams", "getRemoteStreams", "getSenders" or "getReceivers".
+# LOCALIZATION NOTE: Do not translate "ServiceWorker". %S is a URL.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "cors", "Response", "same-origin" or "Request". %1$S is a URL, %2$S is a URL.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "FetchEvent.respondWith()", "FetchEvent", "no-cors", "opaque", "Response", or "RequestMode". %1$S is a URL. %2$S is a RequestMode value.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "Error", "Response", "FetchEvent.respondWith()", or "fetch()". %S is a URL.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "Response", "FetchEvent.respondWith()", or "Response.clone()". %S is a URL.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "opaqueredirect", "Response", "FetchEvent.respondWith()", or "FetchEvent". %s is a URL.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "Response", "FetchEvent.respondWith()", "RedirectMode" or "follow". %S is a URL.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker" or "FetchEvent.preventDefault()". %S is a URL.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "promise", or "FetchEvent.respondWith()". %1$S is a URL. %2$S is an error string.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "promise", "FetchEvent.respondWith()", or "Response". %1$S is a URL. %2$S is an error string.
+# LOCALIZATION NOTE: Do not translate "mozImageSmoothingEnabled", or "imageSmoothingEnabled"
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "Service-Worker-Allowed" or "HTTP". %1$S and %2$S are URLs.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker". %1$S is a URL representing the scope of the ServiceWorker, %2$S is a stringified numeric HTTP status code like "404" and %3$S is a URL.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker". %1$S is a URL representing the scope of the ServiceWorker, %2$S is a MIME Media Type like "text/plain" and %3$S is a URL.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker". %S is a URL representing the scope of the ServiceWorker.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker" and "postMessage". %S is a URL representing the scope of the ServiceWorker.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker". %1$S is a URL representing the scope of the ServiceWorker.
+# LOCALIZATION NOTE (ServiceWorkerNoFetchHandler): Do not translate "Fetch".
+ManifestShouldBeObject=Manifest nên là một đối tượng.
+ManifestScopeURLInvalid=URL phạm vi không hợp lệ.
+ManifestScopeNotSameOrigin=URL phạm vi phải cùng nguồn gốc với tài liệu.
+ManifestStartURLOutsideScope=URL bắt đầu nằm ngoài phạm vi, vì vậy phạm vi không hợp lệ.
+ManifestStartURLInvalid=URL bắt đầu không hợp lệ.
+ManifestStartURLShouldBeSameOrigin=URL bắt đầu phải cùng nguồn gốc với tài liệu.
+# LOCALIZATION NOTE: %1$S is the name of the object whose property is invalid. %2$S is the name of the invalid property. %3$S is the expected type of the property value. E.g. "Expected the manifest's start_url member to be a string."
+# LOCALIZATION NOTE: %1$S is the name of the property whose value is invalid. %2$S is the (invalid) value of the property. E.g. "theme_color: 42 is not a valid CSS color."
+ManifestInvalidCSSColor=%1$S: %2$S không phải là màu CSS hợp lệ.
+# LOCALIZATION NOTE: %1$S is the name of the property whose value is invalid. %2$S is the (invalid) value of the property. E.g. "lang: 42 is not a valid language code."
+ManifestLangIsInvalid=%1$S: %2$S không phải là mã ngôn ngữ hợp lệ.
+# LOCALIZATION NOTE: %1$S is the name of the parent property whose value is invalid (e.g., "icons"). %2$S is the index of the image object that is invalid (from 0). %3$S is the name of actual member that is invalid. %4$S is the invalid value. E.g. "icons item at index 2 is invalid. The src member is an invalid URL http://:Invalid"
+# LOCALIZATION NOTE: %1$S is the name of the parent property that that contains the unusable image object (e.g., "icons"). %2$S is the index of the image object that is unusable (from 0). E.g. "icons item at index 2 lacks a usable purpose. It will be ignored."
+# LOCALIZATION NOTE: %1$S is the name of the parent property that contains the unsupported value (e.g., "icons"). %2$S is the index of the image object that has the unsupported value (from 0). %3$S are the unknown purposes. E.g. "icons item at index 2 includes unsupported purpose(s): a b."
+# LOCALIZATION NOTE: %1$S is the name of the parent property that has a repeated purpose (e.g., "icons"). %2$S is the index of the image object that has the repeated purpose (from 0). %3$S is the repeated purposes. E.g. "icons item at index 2 includes repeated purpose(s): a b."
+# LOCALIZATION NOTE: Do not translate "postMessage" or DOMWindow. %S values are origins, like https://domain.com:port
+# LOCALIZATION NOTE: Do not translate 'YouTube'. %S values are origins, like https://domain.com:port
+# LOCALIZATION NOTE: Do not translate 'YouTube'. %S values are origins, like https://domain.com:port
+# LOCALIZATION NOTE: This error is reported when the "Encryption" header for an
+# incoming push message is missing or invalid. Do not translate "ServiceWorker",
+# "Encryption", and "salt". %1$S is the ServiceWorker scope URL.
+PushMessageBadEncryptionHeader=ServiceWorker cho phạm vi ‘%1$S’ không thể giải mã thông báo đẩy. Tiêu đề ‘Encryption’ phải bao gồm một tham số ‘salt‘ duy nhất cho mỗi thông báo. Xem tại https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02#section-3.1 để biết thêm thông tin.
+# LOCALIZATION NOTE: This error is reported when the "Crypto-Key" header for an
+# incoming push message is missing or invalid. Do not translate "ServiceWorker",
+# "Crypto-Key", and "dh". %1$S is the ServiceWorker scope URL.
+PushMessageBadCryptoKeyHeader=ServiceWorker cho phạm vi ‘%1$S’ không thể giải mã thông báo đẩy. Tiêu đề ‘Crypto-Key‘ phải bao gồm tham số ‘dh‘ chứa khóa công khai của máy chủ ứng dụng. Xem tại https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02#section-4 để biết thêm thông tin.
+# LOCALIZATION NOTE: This error is reported when a push message fails to decrypt because the deprecated
+# "Encryption-Key" header for an incoming push message is missing or invalid.
+# Do not translate "ServiceWorker", "Encryption-Key", "dh", "Crypto-Key", and
+# "Content-Encoding: aesgcm". %1$S is the ServiceWorker scope URL.
+PushMessageBadEncryptionKeyHeader=ServiceWorker cho phạm vi ‘%1$S’ không thể giải mã thông báo đẩy. Tiêu đề ‘Encryption-Key’ phải bao gồm tham số ‘dh‘. Tiêu đề này không được chấp nhận và sẽ sớm bị xóa. Vui lòng sử dụng ‘Crypto-Key‘ với ‘Content-Encoding: aesgcm‘ để thay thế. Xem tại https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02#section-4 để biết thêm thông tin.
+# LOCALIZATION NOTE: This error is reported when a push message fails to decrypt
+# because the "Content-Encoding" header is missing or contains an
+# unsupported encoding. Do not translate "ServiceWorker", "Content-Encoding",
+# "aesgcm", and "aesgcm128". %1$S is the ServiceWorker scope URL.
+# LOCALIZATION NOTE: This error is reported when a push message fails to decrypt
+# because the "dh" parameter is not valid base64url. Do not translate
+# "ServiceWorker", "dh", "Crypto-Key", and "base64url". %1$S is the
+# ServiceWorker scope URL.
+# LOCALIZATION NOTE: This error is reported when a push message fails to decrypt
+# because the "salt" parameter is not valid base64url. Do not translate
+# "ServiceWorker", "salt", "Encryption", and "base64url". %1$S is the
+# ServiceWorker scope URL.
+# LOCALIZATION NOTE: This error is reported when a push message fails to decrypt
+# because the "rs" parameter is not a number, or is less than the pad size.
+# Do not translate "ServiceWorker", "rs", or "Encryption". %1$S is the
+# ServiceWorker scope URL. %2$S is the minimum value (1 for aesgcm128, 2 for
+# aesgcm).
+# LOCALIZATION NOTE: This error is reported when a push message fails to decrypt
+# because an encrypted record is shorter than the pad size, the pad is larger
+# than the record, or any of the padding bytes are non-zero. Do not translate
+# "ServiceWorker". %1$S is the ServiceWorker scope URL. %2$S is the pad size
+# (1 for aesgcm128, 2 for aesgcm).
+# LOCALIZATION NOTE: This error is reported when push message decryption fails
+# and no specific error info is available. Do not translate "ServiceWorker".
+# %1$S is the ServiceWorker scope URL.
+# LOCALIZATION NOTE: %1$S is the type of a DOM event. 'passive' is a literal parameter from the DOM spec.
+# LOCALIZATION NOTE: 'ImageBitmapRenderingContext.transferImageBitmap' and 'ImageBitmapRenderingContext.transferFromImageBitmap' should not be translated
+# LOCALIZATION NOTE: Do not translate ".png"
+GenericImageNamePNG=ảnh.png
+GenericFileName=tập tin
+# LOCALIZATION NOTE: Do not translate "Large-Allocation", as it is a literal header name
+# LOCALIZATION NOTE: Do not translate "Large-Allocation", as it is a literal header name. Do not translate GET.
+# LOCALIZATION NOTE: Do not translate "Large-Allocation", as it is a literal header name. Do not translate `window.opener`.
+# LOCALIZATION NOTE: Do not translate "Large-Allocation", as it is a literal header name
+NotificationsInsecureRequestIsForbidden=Quyền thông báo chỉ có thể được yêu cầu trong một bối cảnh an toàn.
+# LOCALIZATION NOTE: Do not translate "Large-Allocation", as it is a literal header name.
+# LOCALIZATION NOTE: Do not translate "content", "Window", and "window.top"
+# LOCALIZATION NOTE: The first %S is the tag name of the element that starts the loop, the second %S is the element's ID.
+# LOCALIZATION NOTE: The first %S is the tag name of the element in the chain where the chain was broken, the second %S is the element's ID.
+# LOCALIZATION NOTE: Do not translate "<script>".
+# LOCALIZATION NOTE: Do not translate "<script>".
+# LOCALIZATION NOTE: Do not translate "<script>".
+# LOCALIZATION NOTE: Do not translate "<script>".
+ModuleSourceMalformed=URI nguồn module không đúng định dạng: “%S”.
+# LOCALIZATION NOTE: Do not translate "<script>".
+ScriptSourceNotAllowed=URI nguồn <script> không được phép trong tài liệu này: “%S”.
+ModuleSourceNotAllowed=URI nguồn module không được phép trong tài liệu này: “%S”.
+# LOCALIZATION NOTE: %1$S is the invalid property value and %2$S is the property name.
+# LOCALIZATION NOTE: Do not translate "ReadableStream".
+ReadableStreamReadingFailed=Không thể đọc dữ liệu từ ReadableStream: “%S”.
+# LOCALIZATION NOTE: Do not translate "registerProtocolHandler"
+RegisterProtocolHandlerPrivateBrowsingWarning=Không thể sử dụng registerProtocolHandler trong chế độ duyệt web riêng tư.
+MotionEventWarning=Các cảm biến chuyển động không còn được dùng nữa.
+OrientationEventWarning=Các cảm biến định hướng không còn được sử dụng nữa.
+ProximityEventWarning=Các cảm biến tiệm cận không còn được sử dụng nữa.
+AmbientLightEventWarning=Các cảm biến ánh sáng xung quanh không còn được sử dụng nữa.
+# LOCALIZATION NOTE: Do not translate "storage", "indexedDB.open" and "navigator.storage.persist()".
+IDBOpenDBOptions_StorageTypeWarning=Thuộc tính ‘storage’ trong tùy chọn được truyền cho indexedDB.open không còn được dùng nữa và sẽ sớm bị xóa. Để có được dung lượng lưu trữ liên tục, vui lòng thay thế thành navigator.storage.persist().
+UnsupportedEntryTypesIgnored=Bỏ qua entryTypes không được hỗ trợ: %S.
+AllEntryTypesIgnored=Không có entryTypes hợp lệ; hủy bỏ đăng ký.
+# LOCALIZATION NOTE: do not localize key=“%S” modifiers=“%S” id=“%S”
+# LOCALIZATION NOTE: do not trnaslated "document.domain"
+
+#LOCALIZATION NOTE(DeprecatedTestingInterfaceWarning): Do not translate this message. It's just testing only.
+DeprecatedTestingInterfaceWarning=TestingDeprecatedInterface là một giao diện chỉ dành cho thử nghiệm và đây là thông báo không dùng thử.
+#LOCALIZATION NOTE(DeprecatedTestingMethodWarning): Do not translate this message. It's just testing only.
+DeprecatedTestingMethodWarning=TestingDeprecatedInterface.deprecatedMethod() là một phương thức chỉ thử nghiệm và đây là thông báo phản đối thử nghiệm của nó.
+#LOCALIZATION NOTE(DeprecatedTestingAttributeWarning): Do not translate this message. It's just testing only.
+DeprecatedTestingAttributeWarning=TestingDeprecatedInterface.deprecatedAttribute là một thuộc tính chỉ thử nghiệm và đây là thông báo phản đối thử nghiệm của nó.
+# LOCALIZATION NOTE (CreateImageBitmapCanvasRenderingContext2DWarning): Do not translate CanvasRenderingContext2D and createImageBitmap.
+CreateImageBitmapCanvasRenderingContext2DWarning=Việc sử dụng CanvasRenderingContext2D trong createImageBitmap không còn được dùng nữa.
+# LOCALIZATION NOTE (MozRequestFullScreenDeprecatedPrefixWarning): Do not translate mozRequestFullScreen.
+MozRequestFullScreenDeprecatedPrefixWarning=mozRequestFullScreen() không còn được dùng nữa.
+# LOCALIZATION NOTE (MozfullscreenchangeDeprecatedPrefixWarning): Do not translate onmozfullscreenchange.
+MozfullscreenchangeDeprecatedPrefixWarning=onmozfullscreenchange không còn được dùng nữa.
+# LOCALIZATION NOTE (MozfullscreenerrorDeprecatedPrefixWarning): Do not translate onmozfullscreenerror.
+MozfullscreenerrorDeprecatedPrefixWarning=onmozfullscreenerror không còn được dùng nữa.
+# LOCALIZATION NOTE(External_AddSearchProviderWarning): Do not translate AddSearchProvider.
+External_AddSearchProviderWarning=AddSearchProvider không còn được dùng nữa.
+# LOCALIZATION NOTE: Do not translate "MouseEvent.mozPressure" and "PointerEvent.pressure".
+# LOCALIZATION NOTE: Do not translate MathML, align, numalign and denomalign.
+# LOCALIZATION NOTE: Do not translate MathML and bevelled.
+# LOCALIZATION NOTE: Do not translate thin, medium, thick and linethickness.
+# LOCALIZATION NOTE: Do not translate small, normal, big and mathsize.
+# LOCALIZATION NOTE: Do not translate veryverythinmathspace, verythinmathspace,
+# thinmathspace, mediummathspace, thickmathspace, verythickmathspace, veryverythickmathspace and MathML.
+# LOCALIZATION NOTE: Do not translate radical, notation and menclose.
+# LOCALIZATION NOTE: Do not translate MathML or mfenced.
+# LOCALIZATION NOTE: Do not translate MathML, subscriptshift and superscriptshift.
+# LOCALIZATION NOTE: Do not translate MathML, background, color, fontfamily, fontsize, fontstyle and fontweight.
+# LOCALIZATION NOTE: Do not translate MathML and XLink.
+# LOCALIZATION NOTE: Do not translate MathML and STIXGeneral. %S is a documentation URL.
+# LOCALIZATION NOTE: Do not translate MathML and scriptminsize.
+# LOCALIZATION NOTE: Do not translate MathML and scriptsizemultiplier.
+# LOCALIZATION NOTE (UnknownProtocolNavigationPrevented): %1$S is the destination URL.
+# LOCALIZATION NOTE: %S is the URL of the resource in question
+
+# LOCALIZATION NOTE: Do not translate document.requestStorageAccess(), iframe, allow-same-origin and sandbox (though you may translate "sandboxed").
+# LOCALIZATION NOTE: Do not translate document.requestStorageAccess(), iframe, allow-storage-access-by-user-activation and sandbox (though you may translate "sandboxed").
+# LOCALIZATION NOTE: Do not translate document.requestStorageAccess() and iframe.
+# LOCALIZATION NOTE: Do not translate document.requestStorageAccess(). In some locales it may be preferable to not translate "event handler", either.
+# LOCALIZATION NOTE: Do not translate "Location" and "History".
+# LOCALIZATION NOTE: %S is the name of the folder the user selected in the file picker.
diff --git a/l10n-vi/dom/chrome/global-strres.properties b/l10n-vi/dom/chrome/global-strres.properties
new file mode 100644
index 0000000000..2ef36d887e
--- /dev/null
+++ b/l10n-vi/dom/chrome/global-strres.properties
@@ -0,0 +1,5 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+16389=Không xác định được lỗi gì đã xảy ra (%1$S)
diff --git a/l10n-vi/dom/chrome/global.dtd b/l10n-vi/dom/chrome/global.dtd
new file mode 100644
index 0000000000..661fb351f4
--- /dev/null
+++ b/l10n-vi/dom/chrome/global.dtd
@@ -0,0 +1,5 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY locale.dir "ltr">
diff --git a/l10n-vi/dom/chrome/layout/HtmlForm.properties b/l10n-vi/dom/chrome/layout/HtmlForm.properties
new file mode 100644
index 0000000000..b334d7b203
--- /dev/null
+++ b/l10n-vi/dom/chrome/layout/HtmlForm.properties
@@ -0,0 +1,43 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+Reset=Đặt lại
+Submit=Gửi truy vấn
+Browse=Chọn tập tin…
+FileUpload=Tải lên một tập tin
+DirectoryUpload=Chọn thư mục để tải lên
+DirectoryPickerOkButtonLabel=Tải lên
+ForgotPostWarning=Form có chứa enctype=%S, nhưng không chứa method=post. Chương trình sẽ gửi form với method=GET và không dùng enctype.
+ForgotFileEnctypeWarning=Form có chứa tập tin để gửi lên, nhưng thiếu method=POST và enctype=multipart/form-data trên. Tập tin này sẽ không được gửi đi.
+# LOCALIZATION NOTE (DefaultFormSubject): %S will be replaced with brandShortName
+DefaultFormSubject=Gửi Post từ %S
+CannotEncodeAllUnicode=Một biểu mẫu vừa được gửi với bảng mã %S. Bảng mã này không thể mã hóa được tất cả các ký tự unicode, vì vậy thông tin gửi lên có thể bị lỗi. Để tránh vấn đề này, trang web cần được sửa để biểu mẫu được gửi với bảng mã UTF-8, hoặc làm cho toàn bộ trang dùng UTF-8, hoặc định rõ thuộc tính accept-charset=utf-8 vào phần tử của biểu mẫu.
+AllSupportedTypes=Tất cả các kiểu được hỗ trợ
+# LOCALIZATION NOTE (NoFileSelected): this string is shown on a
+# <input type='file'> when there is no file selected yet.
+NoFileSelected=Chưa chọn tập tin.
+# LOCALIZATION NOTE (NoFilesSelected): this string is shown on a
+# <input type='file' multiple> when there is no file selected yet.
+NoFilesSelected=Chưa chọn tập tin.
+# LOCALIZATION NOTE (NoDirSelected): this string is shown on a
+# <input type='file' directory/webkitdirectory> when there is no directory
+# selected yet.
+NoDirSelected=Không thư mục nào được chọn.
+# LOCALIZATION NOTE (XFilesSelected): this string is shown on a
+# <input type='file' multiple> when there are more than one selected file.
+# %S will be a number greater or equal to 2.
+XFilesSelected=%S tập tin được chọn.
+ColorPicker=Chọn màu
+# LOCALIZATION NOTE (AndNMoreFiles): Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# This string is shown at the end of the tooltip text for <input type='file'
+# multiple> when there are more than 21 files selected (when we will only list
+# the first 20, plus an "and X more" line). #1 represents the number of files
+# minus 20 and will always be a number equal to or greater than 2. So the
+# singular case will never be used.
+AndNMoreFiles=và #1 cái nữa
+# LOCALIZATION NOTE (DefaultSummary): this string is shown on a <details> when
+# it has no direct <summary> child. Google Chrome should already have this
+# string translated.
+DefaultSummary=Chi tiết
diff --git a/l10n-vi/dom/chrome/layout/MediaDocument.properties b/l10n-vi/dom/chrome/layout/MediaDocument.properties
new file mode 100644
index 0000000000..796028ab64
--- /dev/null
+++ b/l10n-vi/dom/chrome/layout/MediaDocument.properties
@@ -0,0 +1,21 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#LOCALIZATION NOTE (ImageTitleWithDimensions2AndFile): first %S is filename, second %S is type, third %S is width and fourth %S is height
+#LOCALIZATION NOTE (ImageTitleWithoutDimensions): first %S is filename, second %S is type
+#LOCALIZATION NOTE (ImageTitleWithDimensions2): first %S is type, second %S is width and third %S is height
+#LOCALIZATION NOTE (ImageTitleWithNeitherDimensionsNorFile): first %S is type
+#LOCALIZATION NOTE (MediaTitleWithFile): first %S is filename, second %S is type
+#LOCALIZATION NOTE (MediaTitleWithNoInfo): first %S is type
+ImageTitleWithDimensions2AndFile=%S (Ảnh %S, %S × %S pixel)
+ImageTitleWithoutDimensions=%S (Ảnh %S)
+ImageTitleWithDimensions2=(Ảnh %S, %Sx%S pixels)
+ImageTitleWithNeitherDimensionsNorFile=(Ảnh %S)
+MediaTitleWithFile=%S (Đối tượng %S)
+MediaTitleWithNoInfo=(Đối tượng %S)
+
+InvalidImage=Ảnh “%S” không hiển thị được, vì nó chứa lỗi.
+ScaledImage=Đã chỉnh tỉ lệ (%S%%)
+
+TitleWithStatus=%S - %S
diff --git a/l10n-vi/dom/chrome/layout/css.properties b/l10n-vi/dom/chrome/layout/css.properties
new file mode 100644
index 0000000000..739a8528c1
--- /dev/null
+++ b/l10n-vi/dom/chrome/layout/css.properties
@@ -0,0 +1,46 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+MimeNotCss=Stylesheet %1$S không tải được vì kiểu MIME của nó, "%2$S", không phải là "text/css".
+MimeNotCssWarn=Stylesheet %1$S vẫn tải được ở dạng CSS mặc dù kiểu MIME, "%2$S", không phải là "text/css".
+
+PEDeclDropped=Khai báo bị bỏ.
+PEDeclSkipped=Nhảy sang khai báo kế tiếp.
+PEUnknownProperty=Không rõ thuộc tính '%1$S'.
+PEValueParsingError=Lỗi trong khi phân tích giá trị cho '%1$S'.
+PEUnknownAtRule=Không nhận dạng at-rule hoặc lỗi phân tích at-rule '%1$S'.
+PEMQUnexpectedOperator=Toán tử không mong muốn trong media list.
+PEMQUnexpectedToken=Token không mong muốn ‘%1$S’ trong media list.
+PEAtNSUnexpected=Dấu thừa bên trong @namespace: '%1$S'.
+PEKeyframeBadName=Cần định danh cho tên của quy tắc @keyframes.
+PEBadSelectorRSIgnored=Bộ quy tắc bị bỏ qua do bộ chọn tồi.
+PEBadSelectorKeyframeRuleIgnored=Quy tắc keyframe bị bỏ qua do selector tồi.
+PESelectorGroupNoSelector=Cần bộ chọn.
+PESelectorGroupExtraCombinator=Kết hợp Dangling
+PEClassSelNotIdent=Cần định danh cho lớp selector nhưng lại thấy '%1$S'.
+PETypeSelNotType=Cần tên thành phần hoặc '*' nhưng lại thấy '%1$S'.
+PEUnknownNamespacePrefix=Không rõ tiền tố namespace '%1$S'.
+PEAttributeNameExpected=Cần định danh cho tên thuộc tính nhưng lại thấy '%1$S'.
+PEAttributeNameOrNamespaceExpected=Cần tên thuộc tính hoặc namespace nhưng lại thấy '%1$S'.
+PEAttSelNoBar=Cần '|' nhưng lại thấy '%1$S'.
+PEAttSelUnexpected=Dấu thừa trong thuộc tính selector: '%1$S'.
+PEAttSelBadValue=Cần định danh hoặc chuỗi cho giá trị trong attribute selector nhưng lại thấy '%1$S'.
+PEPseudoSelBadName=Cần định danh cho pseudo-class hoặc pseudo-element nhưng lại thấy '%1$S'.
+PEPseudoSelEndOrUserActionPC=Yêu cầu kết thúc bộ chọn hoặc hành động người dùng pseudo-class sau pseudo-element nhưng lại thấy ‘%1$S’.
+PEPseudoSelUnknown=Không rõ pseudo-class hoặc pseudo-element '%1$S'.
+PENegationBadArg=Thiếu tham số trong negation pseudo-class '%1$S'.
+PEPseudoClassArgNotIdent=Cần định danh cho tham số pseudo-class nhưng lại thấy '%1$S'.
+PEColorNotColor=Cần màu nhưng lại thấy '%1$S'.
+PEParseDeclarationDeclExpected=Cần khai báo nhưng lại thấy '%1$S'.
+PEUnknownFontDesc=Kí hiệu '%1$S' chưa biết trong luật @font-face.
+PEMQExpectedFeatureName=Yêu cầu tên chức năng đa phương tiện nhưng lại thấy '%1$S'.
+PEMQNoMinMaxWithoutValue=Tính năng đa phương tiện với min- hoặc max- phải có một giá trị.
+PEMQExpectedFeatureValue=Tìm thấy giá trị bất hợp lệ đối với tính năng đa phương tiện.
+PEExpectedNoneOrURL=Yêu cầu ‘none’ hoặc URL nhưng lại thấy ‘%1$S’.
+PEExpectedNoneOrURLOrFilterFunction=Yêu cầu ‘none’, URL, hoặc hàm bộ lọc nhưng lại thấy ‘%1$S’.
+
+PEDisallowedImportRule=Quy tắc @import chưa có hiệu lực trong stylesheets được xây dựng.
+
+TooLargeDashedRadius=Border radius is too large for ‘dashed’ style (the limit is 100000px). Rendering as solid.
+TooLargeDottedRadius=Border radius is too large for ‘dotted’ style (the limit is 100000px). Rendering as solid.
diff --git a/l10n-vi/dom/chrome/layout/htmlparser.properties b/l10n-vi/dom/chrome/layout/htmlparser.properties
new file mode 100644
index 0000000000..bed5254b7f
--- /dev/null
+++ b/l10n-vi/dom/chrome/layout/htmlparser.properties
@@ -0,0 +1,134 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Encoding warnings and errors
+EncNoDeclarationFrame=Bảng mã của một tài liệu trong khung chưa được định nghĩa. Tài liệu có thể xuất hiện khác nếu xem ngoài khung.
+EncNoDeclarationPlain=Encoding của tài liệu văn bản thuần túy không được khai báo. Văn bản sẽ hiển thị không đúng trên một vài cấu hình của trình duyệt nếu như tài liệu chứa các ký tự không thuộc mã US-ASCII. Encoding của tập tin cần được khai báo trong giao thức truyền tải hoặc tập tin cần phải sử dụng một thứ tự byte để đánh dấu như một encoding signature.
+EncNoDeclaration=Encoding của tài liệu HTML không được khai báo. Văn bản sẽ hiển thị không đúng trên một vài cấu hình của trình duyệt nếu tài liệu chứa các ký tự không thuộc mã US-ASCII. Encoding cần phải khai báo trong tài liệu hoặc trong giao thức truyền tải.
+EncLateMetaFrame=Không tìm thấy đoạn khai báo bảng mã của tài liệu HTML trong khung khi quét sơ bộ 1024 byte đầu tiên. Khi xem mà không có tài liệu đóng khung nó thì trang web sẽ tự động tải lại. Đoạn khai báo bảng mã nên nằm trong 1024 byte đầu tiên của tài liệu.
+EncLateMeta=Không tìm thấy đoạn khai báo mã hóa của tài liệu HTML khi quét sơ bộ 1024 byte đầu tiên. Khi xem trong một trình duyệt được thiết lập khác, trang web sẽ tự động tải lại. Đoạn khai báo mã hóa nên nằm trong 1024 byte đầu tiên của tài liệu.
+EncLateMetaReload=Trang web đã được tải lại, bởi vì đoạn khai báo mã hóa của tài liệu HTML không được tìm thấy khi quét đầu 1024 byte của tập tin. Đoạn khai báo mã hóa cần phải chuyển vào bên trong 1024 bytes đầu tiên của tập tin.
+EncLateMetaTooLate=Khai báo mã hóa kí tự của văn bản được nhận ra quá muộn để tạo ra tác dụng. Phần khai báo này cần được đưa vào trong 1024 byte đầu tiên của tập tin.
+EncMetaUnsupported=Mã hóa kí tự không được hỗ trợ được khai báo trong thẻ meta của tài liệu HTML. Sự khai báo này không được chấp nhận.
+EncProtocolUnsupported=Mã hóa kí tự không được hỗ trợ được khai báo ở tầng giao thức truyền dữ liêu. Sự khai báo này không được chấp nhận.
+EncBomlessUtf16=Tìm thấy văn bản chỉ toàn ký tự Basic Latin được mã hóa theo kiểu UTF-16 mà không có đoạn miêu tả trật tự byte (Byte Order Mark, BOM) và cũng không có khai báo nào ở mức protocol. Mã hóa nội dung này theo kiểu UTF-16 là không hiệu quả và hơn nữa, character encoding cần được khai báo trong mọi trường hợp.
+EncMetaUtf16=Một thẻ meta được dùng để khai báo kiểu mã hóa kí tự UTF-16. Khai báo UTF-8 được sự dụng để thay thế.
+EncMetaUserDefined=Thẻ meta được sử dụng để khai báo ký tự mã hóa x-user-defined. Nó cũng giống như việc khai báo một windows-1252 thay vì sự tương thích với các phông chữ truyền thống sai định dạng. Trang web này phải chuyển sang định dạng Unicode.
+
+# The bulk of the messages below are derived from
+# https://hg.mozilla.org/projects/htmlparser/file/1f633cef7de7/src/nu/validator/htmlparser/impl/ErrorReportingTokenizer.java
+# which is available under the MIT license.
+
+# Tokenizer errors
+errGarbageAfterLtSlash=Có ký tự rác sau “</”.
+errLtSlashGt=Thấy “</>”. Có thể do: unescaped “<” (escape ở dạng “&lt;”) hoặc viết sai thẻ kết thúc.
+errCharRefLacksSemicolon=Character reference không được kết thúc bởi dấu chấm phẩy.
+errNoDigitsInNCR=Không có chữ số nào trong tham chiếu ký tự.
+errGtInSystemId=thuộc về định danh hệ thống.
+errGtInPublicId=">" thuộc về định danh chung.\u0020
+errNamelessDoctype=Doctype không tên.
+errConsecutiveHyphens=Các dấu gạch ngang liên tiếp không kết thúc một ghi chú. “--” không được phép chứa bên trong một ghi chú, nhưng e.g. “- -” được phép.
+errPrematureEndOfComment=Ghi chú chưa được kết thúc. Sử dụng "-->" để kết thúc đúng một ghi chú.
+errBogusComment=Ghi chú giả.
+errUnquotedAttributeLt="<" là một giá trị chưa được quoted; có thể nguyên nhân là do thiếu ">" ngay trước đó.
+errUnquotedAttributeGrave="`" là một giá trị chưa được quoted; có thể nguyên nhân là do sử dụng sai ký tự dùng để quote.
+errUnquotedAttributeQuote=Dấu nháy (quote) xuất hiện trong thuộc tính unquoted. Nguyên nhân có thể: Hai hay nhiều thuộc tính được truyền cùng nhau hoặc một chuỗi truy vấn URL (URL query string) xuất hiện trong giá trị của một thuộc tính unquote.
+errUnquotedAttributeEquals=“=Ký tự " xuất hiện trong thuộc tính unquoted. Nguyên nhân có thể: Hai hay nhiều thuộc tính được truyền cùng nhau hoặc một chuỗi truy vấn URL (URL query string) xuất hiện trong giá trị của một thuộc tính unquote.
+errSlashNotFollowedByGt=A slash was not immediate followed by “>”.
+errNoSpaceBetweenAttributes=Không có khoảng trắng giữa các thuộc tính.
+errUnquotedAttributeStartLt=“<” at the start of an unquoted attribute value. Probable cause: Missing “>” immediately before
+errUnquotedAttributeStartGrave=Ký tự "`" bắt đầu giá trị một thuộc tính unquoted. Nguyên nhân có thể: Sử dụng sai ký tự dùng để quote.
+errUnquotedAttributeStartEquals=“=" xuất hiện ở vị trí bắt đầu của một giá trị thuộc tính không được trích dẫn. Nguyên nhân có thể: Thiếu mất cặp dấu bằng.
+errAttributeValueMissing=Giá trị thuộc tính bị thiếu.
+errBadCharBeforeAttributeNameLt=Dấu "<" xuất hiện thay vì tên thuộc tính. Nguyên nhân có thể: Thiếu mất dấu ">" ở phía trước.
+errEqualsSignBeforeAttributeName=Dấu "=" xuất hiện thay vì tên thuộc tính. Nguyên nhân có thể: Thuộc tính bị thiếu tên.
+errBadCharAfterLt=Ký tự sai sau “<”. Có thể do: Không thoát “<”. Hãy thử kết thúc với “&lt;”.
+errLtGt=Thấy “<>”. Có thể do: “<” không thoát (hãy thoát thành “&lt;”) hoặc viết sai thẻ bắt đầu.
+errProcessingInstruction=Xuất hiện "<?". Nguyên nhân có thể: Chỉ dẫn xử lý XML (XML processing instruction) được đặt trong HTML. (Trong HTML, chỉ dẫn xử lý XML không được hỗ trợ.)
+errUnescapedAmpersandInterpretedAsCharacterReference=Chuỗi sau “&” được hiểu là một ký tự tham chiếu. (“&” nên được thoát là “&amp;”.)
+errNotSemicolonTerminated=Ký tự đặc biệt được định nghĩa không kết thúc với một dấu chấm phẩy. (Hoặc "&" nên được thoát là “&amp;”.)
+errNoNamedCharacterMatch=“&” không bắt đâu một ký tự tham chiếu. (“&” nên được thoát là “&amp;”.)
+errQuoteBeforeAttributeName=Dấu nháy (quote) thay vì tên thuộc tính. Nguyên nhân có thể: Thiếu mất dấu "=" ở phía trước.
+errLtInAttributeName=Dấu "<" nằm trong tên thuộc tính. Nguyên nhân có thể: Thiếu mất đấu ">" ở phía trước.
+errQuoteInAttributeName=Xuất hiện dấu nháy (quote) trong tên thuộc tính. Nguyên nhân có thể: Ở phía trước số lượng dấu nháy không tạo thành đúng cặp.
+errExpectedPublicId=Doctype kết thúc tại vị trí lẽ ra thuộc về một public identifier (định danh công cộng).
+errBogusDoctype=Doctype không tồn tại.
+maybeErrAttributesOnEndTag=Thẻ kết thúc lại có thuộc tính.
+maybeErrSlashInEndTag=Dấu “/” thừa ở cuối thẻ kết thúc.
+errNcrNonCharacter=Character reference (ký tự tham chiếu) sẽ được biến đổi thành một non-character.
+errNcrSurrogate=Character reference (ký tự tham chiếu) sẽ được biến đổi thành một surrogate (đại diện).
+errNcrControlChar=Character reference (ký tự tham chiếu) sẽ được biến đổi thành một control character (ký tự điều khiển).
+errNcrCr=Một numeric character reference (ký tự tham chiếu số) được biến đổi thành dấu xuống dòng.
+errNcrInC1Range=Một numeric character reference (ký tự tham chiếu số) được biến đổi thành C1 controls range (miền điều khiển C1).
+errEofInPublicId=Cuối tập tin bên trong định danh công cộng.
+errEofInComment=Cuối tập tin bên trong lời chú thích.
+errEofInDoctype=Cuối tập tin bên trong doctype.
+errEofInAttributeValue=Kết thúc tập tin khi đang bên trong một giá trị thuộc tính. Loại bỏ thẻ.
+errEofInAttributeName=Kết thúc tập tin xảy ra bên trong một tên thuộc tính. Loại bỏ thẻ.
+errEofWithoutGt=Kết thúc tập tin trong khi thẻ trước đó không được kết thúc bởi ">". Loại bỏ thẻ.
+errEofInTagName=Thấy dấu hiệu kết thúc tập tin khi tìm kiếm tên thẻ. Bỏ qua thẻ.
+errEofInEndTag=Cuối tập tin bên trong thẻ đóng. Bỏ qua thẻ.
+errEofAfterLt=Cuối tập tin sau ký tự “<”.
+errNcrOutOfRange=Character reference (tham chiếu ký tự) nằm ngoài khoảng Unicode cho phép.
+errNcrUnassigned=Character reference (tham chiếu ký tự) biến đổi thành một permanent unassigned code point.
+errDuplicateAttribute=Trùng lặp thuộc tính.
+errEofInSystemId=Cuối tập tin bên trong định danh hệ thống.
+errExpectedSystemId=Thay vì một system identifier (định dang hệ thống) thì doctype lại kết thúc.
+errMissingSpaceBeforeDoctypeName=Thiếu khoảng trắng trước tên doctype.
+errHyphenHyphenBang=“- - ! ” xuất hiện trong ghi chú.
+errNcrZero=Character reference (tham chiếu ký tự) biến đổi số 0.
+errNoSpaceBetweenDoctypeSystemKeywordAndQuote=Không có khoảng trắng giữa từ khóa doctype "SYSTEM" và dấu nháy.
+errNoSpaceBetweenPublicAndSystemIds=Không có khoảng trắng giữa doctype public và system identifier (định dang hệ thống).
+errNoSpaceBetweenDoctypePublicKeywordAndQuote=Không có khoảng trắng giữa từ khóa doctype "PUBLIC" và dấu nháy.
+
+# Tree builder errors
+errDeepTree=Cây tài liệu quá sâu. Cây được làm phẳng đến độ sâu 513 yếu tố.
+errStrayStartTag2=Thẻ bắt đầu thừa “%1$S”.
+errStrayEndTag=Thẻ kết thúc thừa “%1$S”.
+errUnclosedElements=Tìm thấy thẻ kết thúc “%1$S” nhưng vẫn còn phần tử đang mở.
+errUnclosedElementsImplied=Thẻ kết thúc “%1$S” được hiểu mặc định nhưng vẫn còn phần tử đang mở.
+errUnclosedElementsCell=Ô bảng được ngầm định hiểu là kết thúc nhưng vẫn còn phần tử đang mở.
+errStrayDoctype=doctype thừa.
+errAlmostStandardsDoctype=Doctype gần đặt chuẩn. Lẽ ra nên là “<!DOCTYPE html>”.
+errQuirkyDoctype=Doctype què quặt. Lẽ ra nên là “<!DOCTYPE html>”.
+errNonSpaceInTrailer=Phát hiện ký tự không phải là khoảng trắng tại cuối trang.
+errNonSpaceAfterFrameset=Phát hiện ký tự không phải là khoảng trắng sau “frameset”.
+errNonSpaceInFrameset=Phát hiện ký tự không phải là khoảng trắng trong “frameset”.
+errNonSpaceAfterBody=Phát hiện ký tự không phải là khoảng trắng sau body.
+errNonSpaceInColgroupInFragment=Phát hiện ký tự không phải là khoảng trắng trong "colgroup" khi parse fragment.
+errNonSpaceInNoscriptInHead=Phát hiện ký tự không phải là khoảng trắng trong "noscript" trong "head".
+errFooBetweenHeadAndBody=Phát hiện phần tử “%1$S” giữa “head” và “body”.
+errStartTagWithoutDoctype=Phát hiện bắt đầu một thẻ thay vì doctype. Lẽ ra nên là “<!DOCTYPE html>”.
+errNoSelectInTableScope=Không có "select" trong phạm vi bảng.
+errStartSelectWhereEndSelectExpected=Phát hiện bắt đầu thẻ “select” tại vị trí lẽ ra là kết thúc một thẻ.
+errStartTagWithSelectOpen=“%1$S” bắt đầu thẻ với “select” mở.
+errBadStartTagInHead2=Thẻ mở đầu "%1$S" ở "head" không tốt.
+errBadStartTagInNoscriptInHead=Thẻ bắt đầu “%1$S” không hợp lệ trong “noscript” ở “head”.
+errImage=Đã có thẻ mở đầu "image".
+errFooSeenWhenFooOpen=Phát hiện thẻ bắt đầu “%1$S” nhưng một phần tử cùng loại đã đang được mở.
+errFooSeenWhenFooOpen2=Đã thấy thẻ bắt đầu “%1$S” nhưng một phần tử cùng loại đã được mở.
+errHeadingWhenHeadingOpen=Heading không thể là con của một heading khác.
+errFramesetStart=Tìm thấy thẻ mở đầu “frameset”.
+errNoCellToClose=Không còn ô để đóng.
+errStartTagInTable=Thẻ mở đầu “%1$S” phát hiện trong “table”.
+errFormWhenFormOpen=Tìm thấy một thẻ mở đầu “form”, nhưng đã có một phần tử “form” khác đang được phân tích. Không được phép lồng biểu mẫu. Thẻ được loại bỏ.
+errTableSeenWhileTableOpen=Phát hiện thẻ mở đầu “table” trong khi thẻ “table” đằng trước vẫn đang mở.
+errStartTagInTableBody=Thẻ mở đầu “%1$S” trong thân bảng.
+errEndTagSeenWithoutDoctype=Thẻ kết thúc mà chưa có thẻ doctype ở phía trước. Hãy thêm “<!DOCTYPE html>”.
+errEndTagAfterBody=Tìm thấy thẻ kết thúc phía sau phần "body".
+errEndTagSeenWithSelectOpen=Thẻ kết thúc “%1$S” với "select" đang mở.
+errGarbageInColgroup=Garbage trong mảnh "colgroup"
+errEndTagBr=Thẻ kết thúc “br”.
+errNoElementToCloseButEndTagSeen=Không có phần tử “%1$S” mặc dù tồn tại thẻ kết thúc “%1$S”.
+errHtmlStartTagInForeignContext=Thẻ HTML mở đầu “%1$S” tồn tại ở một namespace khác.
+errTableClosedWhileCaptionOpen=“table” đã đóng nhưng “caption” vẫn đang mở.
+errNoTableRowToClose=Không có dòng để đóng.
+errNonSpaceInTable=Kí tự không phải dấu cách bị đặt sai trong bảng.
+errUnclosedChildrenInRuby=Thành phần con chưa được đóng trong "ruby".
+errStartTagSeenWithoutRuby=Thẻ bắt đầu “%1$S” không được mở bằng phần tử “ruby”.
+errSelfClosing=Thẻ tự đóng (“/>”) được dùng cho phần tử HTML có nội dung. Bỏ dấu “/” và xem nó như một thẻ mở đầu.
+errNoCheckUnclosedElementsOnStack=Tồn tại phần tử chưa được đóng trong ngăn xếp.
+errEndTagDidNotMatchCurrentOpenElement=Thẻ mở đầu “%1$S” không khớp với tên của phần tử đang mở (“%2$S”).
+errEndTagViolatesNestingRules=Thẻ kết thúc "%1$S" vi phạm luật lồng nhau.
+errEndWithUnclosedElements=Phát hiện thẻ kết thúc “%1$S” nhưng vẫn còn phần tử đang mở.
diff --git a/l10n-vi/dom/chrome/layout/layout_errors.properties b/l10n-vi/dom/chrome/layout/layout_errors.properties
new file mode 100644
index 0000000000..e087bac2b7
--- /dev/null
+++ b/l10n-vi/dom/chrome/layout/layout_errors.properties
@@ -0,0 +1,54 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+ImageMapRectBoundsError=Thuộc tính “coords” của tag <area shape="rect"> không ở định dạng “left,top,right,bottom”.
+ImageMapCircleWrongNumberOfCoords=Thuộc tính “coords” của tag <area shape="circle"> không ở định dạng “center-x,center-y,radius”.
+ImageMapCircleNegativeRadius=Thuộc tính “coords” của tag <area shape="circle"> không thể là bán kính âm.
+ImageMapPolyWrongNumberOfCoords=Thuộc tính “coords” của tag <area shape="poly"> không ở định dạng “x1,y1,x2,y2 …”.
+ImageMapPolyOddNumberOfCoords=Thuộc tính “coords” của tag <area shape="poly"> không có tọa độ “y” cuối (dạng đúng là “x1,y1,x2,y2 …”).
+
+TablePartRelPosWarning=Định vị tương đối của các hàng của bảng và các nhóm hàng hiện được hỗ trợ. Trang web này có thể cần được cập nhật vì nó có thể phụ thuộc vào tính năng này không có hiệu lực.
+ScrollLinkedEffectFound2=Trang web này dường như sử dụng hiệu ứng định vị liên kết cuộn. Điều này có thể không hoạt động tốt với panning không đồng bộ; xem https://developer.mozilla.org/docs/Mozilla/Performance/ScrollLinkedEffects để biết thêm chi tiết và tham gia thảo luận về các công cụ và tính năng liên quan!
+
+## LOCALIZATION NOTE(CompositorAnimationWarningContentTooLargeArea):
+## %1$S is an integer value of the area of the frame
+## %2$S is an integer value of the area of a limit based on the viewport size
+CompositorAnimationWarningContentTooLargeArea=Không thể chạy hoạt ảnh trên bộ tổng hợp vì diện tích của khung (%1$S) quá lớn so với khung nhìn (lớn hơn %2$S)
+## LOCALIZATION NOTE(CompositorAnimationWarningContentTooLarge2):
+## (%1$S, %2$S) is a pair of integer values of the frame size
+## (%3$S, %4$S) is a pair of integer values of a limit based on the viewport size
+## (%5$S, %6$S) is a pair of integer values of an absolute limit
+CompositorAnimationWarningContentTooLarge2=Không thể chạy hoạt ảnh trên bộ tổng hợp vì kích thước khung (%1$S, %2$S) quá lớn so với chế độ xem (lớn hơn (%3$S, %4$S)) hoặc lớn hơn mức tối đa giá trị cho phép (%5$S, %6$S)
+## LOCALIZATION NOTE(CompositorAnimationWarningTransformBackfaceVisibilityHidden):
+## 'backface-visibility: hidden' is a CSS property, don't translate it.
+CompositorAnimationWarningTransformBackfaceVisibilityHidden=Hoạt ảnh của thay đổi ‘backface-visibility: hidden’ không thể chạy trên bộ tổng hợp
+## LOCALIZATION NOTE(CompositorAnimationWarningTransformSVG,
+## CompositorAnimationWarningTransformWithGeometricProperties,
+## CompositorAnimationWarningTransformWithSyncGeometricAnimations,
+## CompositorAnimationWarningTransformFrameInactive,
+## CompositorAnimationWarningOpacityFrameInactive):
+## 'transform' and 'opacity' mean CSS property names, don't translate it.
+CompositorAnimationWarningTransformSVG=Hoạt ảnh của ‘transform’ trên các phần tử với biến đổi SVG không thể chạy trên bộ tổng hợp
+CompositorAnimationWarningTransformWithGeometricProperties=Hoạt ảnh của ‘transform’ không thể chạy trên bộ tổng hợp khi các thuộc tính hình học được tạo thành trên cùng một phần tử
+CompositorAnimationWarningTransformWithSyncGeometricAnimations=Hoạt ảnh của ‘transform’ không thể chạy trên bộ tổng hợp vì nó phải được đồng bộ hóa với hoạt ảnh của các thuộc tính hình học bắt đầu cùng một lúc
+CompositorAnimationWarningTransformFrameInactive=Không thể chạy hoạt ảnh trên bộ tổng hợp vì khung không được đánh dấu hoạt động cho hoạt ảnh ‘transform’
+CompositorAnimationWarningTransformIsBlockedByImportantRules=Không thể chạy hoạt ảnh chuyển đổi trên bộ tổng hợp vì các thuộc tính liên quan đến chuyển đổi bị ghi đè bởi quy tắc !important
+CompositorAnimationWarningOpacityFrameInactive=Không thể chạy hoạt ảnh trên bộ tổng hợp vì khung không được đánh dấu hoạt động cho hoạt ảnh ‘opacity’
+CompositorAnimationWarningHasRenderingObserver=Không thể chạy hoạt ảnh trên bộ tổng hợp vì phần tử này có kết xuất trình quan sát (-moz-element hoặc SVG clipping/masking)
+CompositorAnimationWarningHasCurrentColor=Không thể chạy hình động của ‘background-color’ trên bộ tổng hợp với keyframe ‘current-color’.
+
+## LOCALIZATION NOTE: Do not translate zoom, calc(), "transform", "transform-origin: 0 0"
+ZoomPropertyWarning=Trang này sử dụng thuộc tính phi tiêu chuẩn “zoom”. Cân nhắc sử dụng calc() trong các giá trị thuộc tính có liên quan, hoặc sử dụng “transform” cùng với “transform-origin: 0 0”.
+
+## LOCALIZATION NOTE(PrincipalWritingModePropagationWarning):
+## Do not translate <html>, <body>, CSS, "writing-mode", "direction", "text-orientation", :root, and "The Principal Writing Mode" because they are technical terms.
+PrincipalWritingModePropagationWarning=Khi render phần tử <html>, các giá trị được sử dụng của các thuộc tính CSS “writing-mode”, “direction”, và “text-orientation” trong phần tử <html> được lấy từ các giá trị được tính toán của phần tử <body>, không phải các giá trị của phần tử <html>. Xem xét thiết lập các thuộc tính này trên lớp giả CSS :root. Để biết thêm thông tin hãy xem “The Principal Writing Mode” trong https://www.w3.org/TR/css-writing-modes-3/#principal-flow
+
+## LOCALIZATION NOTE(ScrollAnchoringDisabledInContainer):
+## %1$S is an integer value with the total number of adjustments
+## %2$S is a floating point value with the average distance adjusted
+## %3$S is a floating point value with the total adjusted distance
+ScrollAnchoringDisabledInContainer=Scroll anchoring đã bị vô hiệu hóa trong scroll container do có quá nhiều điều chỉnh liên tiếp (%1$S) với tổng khoảng cách quá ít (trung bình %2$S px, tổng %3$S px).
+
+ForcedLayoutStart=Bố cục đã bị buộc trước khi trang được tải đầy đủ. Nếu các bảng định kiểu chưa được tải, điều này có thể gây ra nội dung không được chỉnh sửa.
diff --git a/l10n-vi/dom/chrome/layout/printing.properties b/l10n-vi/dom/chrome/layout/printing.properties
new file mode 100644
index 0000000000..78c538b47f
--- /dev/null
+++ b/l10n-vi/dom/chrome/layout/printing.properties
@@ -0,0 +1,56 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Page number formatting
+## @page_number The current page number
+#LOCALIZATION NOTE (pagenumber): Do not translate %ld in the following line.
+# Place the word %ld where the page number and number of pages should be
+# The first %ld will receive the the page number
+pagenumber=%1$d
+
+# Page number formatting
+## @page_number The current page number
+## @page_total The total number of pages
+#LOCALIZATION NOTE (pageofpages): Do not translate %ld in the following line.
+# Place the word %ld where the page number and number of pages should be
+# The first %ld will receive the the page number
+# the second %ld will receive the total number of pages
+pageofpages=%1$d trong %2$d
+
+PrintToFile=In thành Tập tin
+print_error_dialog_title=Lỗi Máy In
+printpreview_error_dialog_title=Lỗi khi xem trước trang in
+
+# Printing error messages.
+#LOCALIZATION NOTE: Some of these messages come in pairs, one
+# for printing and one for print previewing. You can remove that
+# distinction in your language by removing the entity with the _PP
+# suffix; then the entity without a suffix will be used for both.
+# You can also add that distinction to any of the messages that don't
+# already have it by adding a new entity with a _PP suffix.
+#
+# For instance, if you delete PERR_GFX_PRINTER_DOC_IS_BUSY_PP, then
+# the PERR_GFX_PRINTER_DOC_IS_BUSY message will be used for that error
+# condition when print previewing as well as when printing. If you
+# add PERR_FAILURE_PP, then PERR_FAILURE will only be used when
+# printing, and PERR_FAILURE_PP will be used under the same conditions
+# when print previewing.
+#
+PERR_FAILURE=Đã xảy ra lỗi khi in.
+
+PERR_ABORT=Việc in ấn đã bị hủy bỏ.
+PERR_NOT_AVAILABLE=Một số chức năng in hiện tại chưa có.
+PERR_NOT_IMPLEMENTED=Một vài tính năng in ấn chưa được bổ sung.
+PERR_OUT_OF_MEMORY=Không đủ bộ nhớ để in.
+PERR_UNEXPECTED=Gặp vấn đề đột xuất trong khi in.
+
+PERR_GFX_PRINTER_NO_PRINTER_AVAILABLE=Không có máy in nào.
+PERR_GFX_PRINTER_NO_PRINTER_AVAILABLE_PP=Không có máy in nào, không thể xem trước trang in.
+PERR_GFX_PRINTER_NAME_NOT_FOUND=Không tìm thấy máy in đã chọn.
+PERR_GFX_PRINTER_COULD_NOT_OPEN_FILE=Lỗi mở tập tin đầu ra để in ra tập tin.
+PERR_GFX_PRINTER_STARTDOC=Việc in thất bại ngay khi bắt đầu.
+PERR_GFX_PRINTER_ENDDOC=Việc in thất bại khi hoàn tất.
+PERR_GFX_PRINTER_STARTPAGE=Việc in thất bại khi bắt đầu trang mới.
+PERR_GFX_PRINTER_DOC_IS_BUSY=Không thể in tài liệu vào lúc này, vì vẫn chưa nạp xong.
+PERR_GFX_PRINTER_DOC_IS_BUSY_PP=Không thể xem trước trang của tài liệu này, nó vẫn đang tải.
diff --git a/l10n-vi/dom/chrome/layout/xmlparser.properties b/l10n-vi/dom/chrome/layout/xmlparser.properties
new file mode 100644
index 0000000000..7cd7ab1cc1
--- /dev/null
+++ b/l10n-vi/dom/chrome/layout/xmlparser.properties
@@ -0,0 +1,48 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Map Expat error codes to error strings
+1 = tràn bộ nhớ
+2 = lỗi cú pháp
+3 = không tìm thấy phần tử gốc
+4 = không đúng dạng
+5 = dấu chưa đóng
+6 = kí tự bộ phận
+7 = thẻ không khớp
+8 = trùng thuộc tính
+9 = kí tự thừa sau phần tử document
+10 = thông số tham chiếu đối tượng không hợp lệ
+11 = đối tượng chưa được định nghĩa
+12 = đối tượng tham chiếu đệ qui
+13 = đối tượng dị bộ
+14 = tham chiếu tới số kí tự sai
+15 = tham chiếu tới đối tượng nhị phân
+16 = tham chiếu tới đối tượng bên ngoài trong thuộc tính
+17 = khai báo của xml không ở đầu đối tượng bên ngoài
+18 = không rõ bảng mã
+19 = bảng mã được chỉ định trong khai báo của XML không đúng
+20 = phần CDATA chưa đóng
+21 = lỗi khi xử lí tham chiếu tới đối tượng bên ngoài
+22 = tài liệu không đứng một mình
+23 = tình trạng hỏng của trình phân tích
+24 = đối tượng được khai báo trong tham số đối tượng
+27 = tiền tố không qui định giới hạn cho namespace
+28 = phải khai báo tiền tố
+29 = đánh dấu không hoàn tất trong thực thể tham số
+30 = khai báo XML không đúng mẫu
+31 = khai báo văn bản không đúng mẫu
+32 = kí tự sai trong định danh công cộng
+38 = tiền tố qui định kiểu (xml) phải được khai báo hoặc gắn với namespace khác
+39 = tiền tố qui định kiểu (xmlns) không được phép khai báo hoặc không khai báo.
+40 = tiền tố không được gắn với một trong các tên namespace dành riêng.
+
+# %1$S is replaced by the Expat error string, may be followed by Expected (see below)
+# %2$S is replaced by URL
+# %3$u is replaced by line number
+# %4$u is replaced by column number
+XMLParsingError = Lỗi Phân tích XML: %1$S\nĐịa chỉ: %2$S\nDòng số %3$u, Cột %4$u:
+
+# %S is replaced by a tag name.
+# This gets appended to the error string if the error is mismatched tag.
+Expected = . Cần: </%S>.
diff --git a/l10n-vi/dom/chrome/layout/xul.properties b/l10n-vi/dom/chrome/layout/xul.properties
new file mode 100644
index 0000000000..abbb7980d1
--- /dev/null
+++ b/l10n-vi/dom/chrome/layout/xul.properties
@@ -0,0 +1,5 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+PINotInProlog=<?%1$S?> hướng dẫn xử lí không còn hiệu quả bên ngoài prolog nữa (xem bug 360119).
diff --git a/l10n-vi/dom/chrome/mathml/mathml.properties b/l10n-vi/dom/chrome/mathml/mathml.properties
new file mode 100644
index 0000000000..c1f8eac4d9
--- /dev/null
+++ b/l10n-vi/dom/chrome/mathml/mathml.properties
@@ -0,0 +1,16 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+InvalidChild=Đánh dấu không hợp lệ: <%1$S> không phải là con của <%2$S>.
+ChildCountIncorrect=Đánh dấu không hợp lệ: số lượng thẻ con cho thẻ <%1$S/> không chính xác.
+DuplicateMprescripts=Đánh dấu không hợp lệ: có nhiều hơn một thẻ <mprescripts/> trong <mmultiscripts/>.
+# LOCALIZATION NOTE: The first child of <mmultiscript/> is the base, that is the element to which scripts are attached.
+NoBase=Đánh dấu không hợp lệ: Thiếu một phần tử cơ sở trong <mmultiscripts/>. Không tìm thấy.
+SubSupMismatch=Đánh dấu không hợp lệ: Không đủ cặp subscript/superscript trong thẻ <mmultiscripts/>.
+
+# LOCALIZATION NOTE: When localizing the single quotes ('), follow the conventions in css.properties for your target locale.
+AttributeParsingError=Lỗi phân tích giá trị '%1$S' cho thuộc tính '%2$S' của <%3$S/>. Thuộc tính bị bỏ qua.
+AttributeParsingErrorNoTag=Lỗi phân tích giá trị '%1$S' cho thuộc tính '%2$S' . Thuộc tính bị bỏ qua.
+LengthParsingError=Lỗi phân tích '%1$S' giá trị thuộc tính MathML chẳng hạn như lỗi độ dài. Thuộc tính bị bỏ qua.
+UnitlessValuesAreDeprecated=Các giá trị đơn vị không được dùng trong MathML 3.
diff --git a/l10n-vi/dom/chrome/netError.dtd b/l10n-vi/dom/chrome/netError.dtd
new file mode 100644
index 0000000000..298d5dfa05
--- /dev/null
+++ b/l10n-vi/dom/chrome/netError.dtd
@@ -0,0 +1,96 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY loadError.label "Lỗi tải trang">
+<!ENTITY retry.label "Thử lại">
+
+<!-- Specific error messages -->
+
+<!ENTITY connectionFailure.title "Không thể kết nối">
+<!ENTITY connectionFailure.longDesc "<p>Mặc dù trang web có vẻ hợp lệ, nhưng trình duyệt không thể thiết lập kết nối.</p><ul><li>Có thể trang này đang tạm thời bị gián đoạn? Hãy thử lại sau.</li><li>Bạn cũng không thể duyệt các trang web khác? Hãy kiểm tra kết nối mạng.</li><li>Máy tính hoặc mạng của bạn có đang được bảo vệ bởi tường lửa hoặc proxy không? Thiết lập sai có thể làm ảnh hưởng tới việc duyệt Web.</li></ul>">
+
+<!ENTITY deniedPortAccess.title "Cổng bị cấm vì lí do bảo mật">
+<!ENTITY deniedPortAccess.longDesc "<p>Địa chỉ này có dùng một cổng (vd. <q>mozilla.org:80</q> là cổng 80 trên mozilla.org) vốn được dùng cho mục đích <em>không phải</em> là duyệt Web. Trình duyệt đã hủy yêu cầu để bảo vệ bạn.</p>">
+
+<!ENTITY dnsNotFound.title "Không tìm thấy địa chỉ">
+<!ENTITY dnsNotFound.longDesc "<p>Trình duyệt không thể tìm thấy máy chủ của địa chỉ được cung cấp.</p><ul><li>Liệu bạn có mắc lỗi khi gõ tên miền không? (vd. <q><strong>ww</strong>.mozilla.org</q> thay vì <q><strong>www</strong>.mozilla.org</q>)</li><li>Bạn có chắc tên miền này tồn tại không? Có thể thời hạn đăng kí của nó đã hết.</li><li>Bạn cũng không thể duyệt các trang web khác? Hãy kiểm tra lại kết nối mạng và thiết lập máy chủ DNS.</li><li>Máy tính hoặc mạng của bạn có được bảo vệ bởi tường lửa hoặc proxy? Thiết lập sai có thể làm ảnh hưởng đến việc duyệt Web.</li></ul>">
+
+<!ENTITY fileNotFound.title "Không tìm thấy tập tin">
+<!ENTITY fileNotFound.longDesc "<ul><li>Có khi nào mục này đã bị đổi tên hoặc di chuyển không?</li><li>Có lỗi chính tả, lỗi HOA-thường, hay lỗi gõ chữ nào khác trong phần địa chỉ không?</li><li>Bạn có đủ quyền hạn để yêu cầu mục này không?</li></ul>">
+
+<!ENTITY fileAccessDenied.title "Truy cập tập tin bị từ chối">
+<!ENTITY fileAccessDenied.longDesc "<ul><li>Nó có thể đã bị xóa, đã chuyển đi, hoặc có thể do quyền truy cập tập tin đã ngăn cản việc truy cập.</li></ul>">
+
+<!ENTITY generic.title "Không thể hoàn tất yêu cầu">
+<!ENTITY generic.longDesc "<p>Thông tin thêm về vấn đề hoặc lỗi này hiện không có.</p>">
+
+<!ENTITY malformedURI.title "Địa chỉ không hợp lệ">
+<!ENTITY malformedURI.longDesc "<p>Địa chỉ bạn cung cấp không phải là một trong các định dạng đã biết. Vui lòng kiểm tra thanh địa chỉ và thử lại.</p>">
+
+<!ENTITY netInterrupt.title "Truyền tải dữ liệu bị ngắt giữa chừng">
+<!ENTITY netInterrupt.longDesc "<p>Trình duyệt đã kết nối thành công, nhưng kết nối đã bị ngắt khi đang trao đổi thông tin. Vui lòng thử lại.</p><ul><li>Bạn cũng không thể duyệt trang khác? Hãy kiểm tra kết nối mạng.</li><li>Vẫn gặp vấn đề? Hỏi ý quản trị mạng hoặc nhà cung cấp Internet của bạn để được trợ giúp.</li></ul>">
+
+<!ENTITY notCached.title "Tài liệu bị hết hạn">
+<!ENTITY notCached.longDesc "<p>Tài liệu được yêu cầu không có sẵn trong bộ đệm của trình duyệt.</p><ul><li>Vì lí do bảo mật, trình duyệt không tự động yêu cầu lại các tài liệu nhạy cảm.</li><li>Nhấn nút Thử Lại để yêu cầu lại tài liệu từ trang web.</li></ul>">
+
+<!ENTITY netOffline.title "Chế độ ngoại tuyến">
+<!ENTITY netOffline.longDesc2 "<p>Trình duyệt đang hoạt động trong chế độ ngoại tuyến và không thể kết nối tới mục được yêu cầu.</p><ul><li>Máy tính có được nối tới một mạng đang hoạt động không?</li><li>Nhấn nút &quot;Thử lại&quot; để chuyển sang chế độ trực tuyến và tải lại trang.</li></ul>">
+
+<!ENTITY contentEncodingError.title "Lỗi encoding">
+<!ENTITY contentEncodingError.longDesc "<p>Không thể hiển thị trang bạn đang muốn xem vì nó dùng một kiểu nén không được hỗ trợ hoặc không hợp lệ.</p><ul><li>Vui lòng liên hệ với chủ trang web để báo họ vấn đề này.</li></ul>">
+
+<!ENTITY unsafeContentType.title "Kiểu tập tin không an toàn">
+<!ENTITY unsafeContentType.longDesc "<ul> <li>Vui lòng liên hệ với chủ trang web để báo với họ về vấn đề này.</li> </ul>">
+
+<!ENTITY netReset.title "Kết nối bị ngắt giữa chừng">
+<!ENTITY netReset.longDesc "<p>Liên kết mạng bị ngắt trong khi đang tiến hành kết nối. Vui lòng thử lại.</p>">
+
+<!ENTITY netTimeout.title "Hết thời gian chờ kết nối">
+<!ENTITY netTimeout.longDesc "<p>Trang không phản hồi yêu cầu và trình duyệt đã ngừng chờ đợi.</p><ul><li>Có thể máy chủ đang bị nhiều truy xuất hoặc mất điện tạm thời? Hãy thử lại sau.</li><li>Bạn cũng không thể duyệt trang khác? Hãy kiểm tra kết nối mạng.</li><li>Máy tính hoặc mạng của bạn có được bảo vệ bởi tường lửa hoặc proxy? Thiết lập sai có thể ảnh hưởng việc duyệt Web.</li><li>Vẫn gặp vấn đề? Liên hệ quản trị mạng hoặc nhà cung cấp Internet của bạn để được trợ giúp.</li></ul>">
+
+<!ENTITY unknownProtocolFound.title "Giao thức không rõ">
+<!ENTITY unknownProtocolFound.longDesc "<p>Địa chỉ có sử dụng một giao thức (vd. <q>wxyz://</q>) mà trình duyệt không nhận ra nên không thể kết nối được.</p><ul><li>Có phải bạn đang muốn truy cập thông tin đa phương tiện hoặc các dịch vụ phi văn bản không? Hãy kiểm tra xem trang web này có yêu cầu tải thêm gì không.</li><li>Một số giao thức có thể yêu cầu phần mềm hay phần bổ trợ của hãng thứ ba trước khi trình duyệt có thể nhận dạng chúng.</li></ul>">
+
+<!ENTITY proxyConnectFailure.title "Máy chủ proxy từ chối kết nối">
+<!ENTITY proxyConnectFailure.longDesc "<p>Trình duyệt được cấu hình để dùng máy chủ proxy, nhưng proxy đã từ chối kết nối.</p><ul><li>Cấu hình proxy cho trình duyệt đã đúng chưa? Hãy kiểm tra thiết lập và thử lại.</li><li>Dịch vụ proxy có cho phép kết nối từ hệ thống mạng này?</li><li>Vẫn gặp vấn đề? Hỏi ý quản trị mạng hoặc nhà cung cấp Internet của bạn để được trợ giúp.</li></ul>">
+
+<!ENTITY proxyResolveFailure.title "Không tìm thấy máy chủ proxy">
+<!ENTITY proxyResolveFailure.longDesc "<p>Trình duyệt được cấu hình để dùng máy chủ proxy, nhưng proxy đã từ chối kết nối.</p><ul><li>Cấu hình proxy cho trình duyệt đã đúng chưa? Hãy kiểm tra thiết lập và thử lại.</li><li>Máy tính có kết nối vào một mạng đang hoạt động không?</li><li>Vẫn gặp vấn đề? Hỏi ý quản trị mạng hoặc nhà cung cấp Internet của bạn để được trợ giúp.</li></ul>">
+
+<!ENTITY redirectLoop.title "Có lặp vô hạn khi chuyển hướng">
+<!ENTITY redirectLoop.longDesc "<p>Trình duyệt đã ngừng tải yêu cầu này. Trang này đang chuyển hướng yêu cầu theo một cách mà sẽ không bao giờ hoàn tất.</p><ul><li>Có phải bạn đã vô hiệu hóa hoặc chặn các cookie mà trang này yêu cầu không?</li><li><em>CHÚ Ý</em>: Nếu việc chấp nhận cookie của trang không giải quyết được vấn đề, có vẻ như đây là vấn đề cấu hình máy chủ chứ không phải do máy bạn</li></ul>">
+
+<!ENTITY unknownSocketType.title "Phản hồi không phù hợp">
+<!ENTITY unknownSocketType.longDesc "<p>Trang phản hồi yêu cầu của mạng theo một cách không mong đợi và trình duyệt không thể tiếp tục.</p>">
+
+<!ENTITY nssFailure2.title "Không thể kết nối an toàn">
+<!ENTITY nssFailure2.longDesc2 "<p>Không thể hiển thị trang bạn muốn xem vì không thể kiểm tra tính xác thực của dữ liệu nhận được.</p><ul><li>Vui lòng liên hệ chủ trang web để báo với họ vấn đề này.</li></ul>">
+
+<!ENTITY nssBadCert.title "Không thể kết nối an toàn">
+<!ENTITY nssBadCert.longDesc2 "<ul> <li>Đây có thể là vấn đề ở phần cấu hình của máy chủ, hoặc có thể do ai đó đang cố mạo nhận là máy chủ.</li> <li>Nếu bạn đã từng kết nối tới máy chủ này thành công trong quá khứ, lỗi này có thể chỉ là tạm thời, và bạn có thể thử lại sau.</li> </ul>">
+
+<!ENTITY securityOverride.linkText "Hoặc bạn có thể thêm một ngoại lệ…">
+<!ENTITY securityOverride.warningContent "<p>Bạn không nên thêm một ngoại lệ nếu như bạn đang sử dụng một kết nối internet không đáng tin cậy hoặc bạn chưa quen với việc nhìn thấy cảnh báo ở máy chủ này.</p> <p>Nếu bạn vẫn muốn thêm một ngoại lệ cho trang web này, bạn có thể làm việc đó ở trong phần cài đặt mã hóa nâng cao.</p>">
+
+<!ENTITY cspBlocked.title "Bị chặn bởi Chính sách bảo mật nội dung">
+<!ENTITY cspBlocked.longDesc "<p>Trình duyệt bảo vệ trang này khỏi việc tải theo cách này bởi vì nó có một chính sách bảo mật nội dung không cho phép việc này.</p>">
+
+<!ENTITY xfoBlocked.title "Bị chặn bởi chính sách X-Frame-Options">
+<!ENTITY xfoBlocked.longDesc "<p>Trình duyệt đã ngăn trang này tải trong ngữ cảnh này vì trang có chính sách X-Frame-Options mà nó không cho phép.</p>">
+
+<!ENTITY corruptedContentErrorv2.title "Lỗi nội dung bị hỏng">
+<!ENTITY corruptedContentErrorv2.longDesc "<p>Không thể hiển thị được trang mà bạn muốn xem vì có lỗi trong truyền tải dữ liệu.</p><ul><li>Vui lòng liên hệ chủ trang web để báo họ về vấn đề này.</li></ul>">
+
+<!ENTITY remoteXUL.title "Remote XUL">
+<!ENTITY remoteXUL.longDesc "<p><ul><li>Vui lòng liên hệ với chủ trang web để báo với họ vấn đề này.</li></ul></p>">
+
+<!ENTITY inadequateSecurityError.title "Kết nối của bạn không an toàn">
+<!-- LOCALIZATION NOTE (inadequateSecurityError.longDesc) - Do not translate
+ "NS_ERROR_NET_INADEQUATE_SECURITY". -->
+<!ENTITY inadequateSecurityError.longDesc "<p><span class='hostname'></span> sử dụng công nghệ bảo mật lỗi thời và dễ bị tấn tông. Một kẻ tấn công có thể dễ dàng tiết lộ thông tin mà bạn nghĩ là an toàn. Người quản trị web sẽ cần phải sửa lỗi hệ thống máy chủ đầu tiên trước khi bạn có thể truy cập vào trang web.</p><p>Mã lỗi: NS_ERROR_NET_INADEQUATE_SECURITY</p>">
+
+<!ENTITY blockedByPolicy.title "Trang bị chặn">
+
+<!ENTITY networkProtocolError.title "Lỗi giao thức mạng">
+<!ENTITY networkProtocolError.longDesc "<p>Không thể hiển thị trang bạn đang cố xem vì lỗi trong giao thức mạng đã được phát hiện.</p><ul><li>Vui lòng liên hệ với chủ sở hữu trang web để thông báo cho họ về sự cố này.</li></ul>">
diff --git a/l10n-vi/dom/chrome/nsWebBrowserPersist.properties b/l10n-vi/dom/chrome/nsWebBrowserPersist.properties
new file mode 100644
index 0000000000..3e368c3c27
--- /dev/null
+++ b/l10n-vi/dom/chrome/nsWebBrowserPersist.properties
@@ -0,0 +1,17 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+readError=Không thể lưu %S, vì không thể đọc tập tin nguồn được.\n\nHãy thử lại sau, hoặc liên hệ quản trị máy chủ.
+writeError=Không thể lưu %S, vì một lỗi không rõ lí do đã xảy ra.\n\nHãy thử lưu vào một nơi khác.
+launchError=Không thể mở %S, vì một lỗi không rõ lí do đã xảy ra.\n\nHãy thử lưu vào ổ đĩa trước rồi sau đó mới mở tập tin.
+diskFull=Không đủ dung lượng trống trên ổ đĩa để lưu %S.\n\nXóa bớt những tập tin không cần thiết và thử lại, hoặc lưu vào nơi khác.
+readOnly=Không thể lưu %S, vì ổ đĩa, thư mục, hoặc tập tin đã được bảo vệ chống ghi.\n\nBật tính năng ghi cho đĩa và thử lại, hoặc lưu vào nơi khác.
+accessError=Không thể lưu %S, vì bạn không thể thay đổi nội dung của thư mục đó.\n\nThay đổi thuộc tính của thư mục và thử lại, hoặc lưu vào nơi khác.
+SDAccessErrorCardReadOnly=Không thể tải tập tin vì thẻ SD đang được sử dụng.
+SDAccessErrorCardMissing=Không thể tải tập tin vì không có thẻ SD.
+helperAppNotFound=Không thể mở %S, vì không có ứng dụng trợ giúp nào đi kèm với loại tập tin này. Thay đổi ứng dụng đi kèm trong tùy chọn hệ thống của bạn.
+noMemory=Không đủ bộ nhớ để thực hiện lệnh bạn yêu cầu.\n\nHãy đóng vài ứng dụng khác rồi thử lại.
+title=Đang tải xuống %S
+fileAlreadyExistsError=Không thể lưu %S, vì đã tồn tại một tập tin có cùng tên với thư mục '_files'.\n\nHãy thử lưu vào nơi khác.
+fileNameTooLongError=Không thể lưu %S, vì tên tập tin quá dài.\n\nHãy thử lưu với tên ngắn hơn.
diff --git a/l10n-vi/dom/chrome/plugins.properties b/l10n-vi/dom/chrome/plugins.properties
new file mode 100644
index 0000000000..cedbbcf33e
--- /dev/null
+++ b/l10n-vi/dom/chrome/plugins.properties
@@ -0,0 +1,18 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE:
+# Those strings are inserted into an HTML page, so all HTML characters
+# have to be escaped in a way that they show up correctly in HTML!
+
+# GMP Plugins
+gmp_license_info=Thông tin giấy phép
+gmp_privacy_info=Thông tin bảo mật
+
+openH264_name=Bộ giải mã OpenH264 được cung cấp bởi Cisco Systems, Inc.
+openH264_description2=Phần bổ trợ này được Mozilla cài đặt tự động để tương thích với quy chuẩn WebRTC và để cho phép tạo cuộc gọi WebRTC với các thiết bị yêu cầu sử dụng mã hóa H.264. Xin hãy truy cập http://www.openh264.org/ để xem mã nguồn của bộ giải mã và tìm hiểu thêm.
+
+cdm_description2=Phần bổ trợ này cho phép phát lại phương tiện được mã hóa tuân thủ theo thông số kỹ thuật của phần mở rộng phương tiện được mã hóa. Phương tiện được mã hóa thường được sử dụng bởi các trang web để bảo vệ chống sao chép nội dung phương tiện cao cấp. Truy cập https://www.w3.org/TR/encrypted-media/ để biết thêm thông tin về tiện ích mở rộng phương tiện được mã hóa.
+
+widevine_description=Mô-đun giải mã nội dung Widevine được cung cấp bởi Google.
diff --git a/l10n-vi/dom/chrome/security/caps.properties b/l10n-vi/dom/chrome/security/caps.properties
new file mode 100644
index 0000000000..9edc578dd2
--- /dev/null
+++ b/l10n-vi/dom/chrome/security/caps.properties
@@ -0,0 +1,9 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+CheckLoadURIError = Lỗi Bảo mật: Nội dung ở %S có thể không tải hoặc liên kết đến %S.
+CheckSameOriginError = Lỗi Bảo mật: Nội dung ở %S có thể không tải dữ liệu từ %S.
+ExternalDataError = Lỗi bảo mật: các nội dung tại %S đã cố gắng để tải %S, nhưng có thể không nạp dữ liệu bên ngoài khi được sử dụng như một hình ảnh.
+
+CreateWrapperDenied = Không được phép tạo bao bọc cho đối tượng hoặc lớp %S
+CreateWrapperDeniedForOrigin = Từ chối quyền hạn đối với việc <%2$S> tạo gói bọc cho đối tượng của class %1$S
diff --git a/l10n-vi/dom/chrome/security/csp.properties b/l10n-vi/dom/chrome/security/csp.properties
new file mode 100644
index 0000000000..4803f41be4
--- /dev/null
+++ b/l10n-vi/dom/chrome/security/csp.properties
@@ -0,0 +1,107 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# CSP Warnings:
+# LOCALIZATION NOTE (CSPViolation):
+# %1$S is the reason why the resource has not been loaded.
+CSPViolation = Các cài đặt của trang đã chặn tải tài nguyên: %1$S
+# LOCALIZATION NOTE (CSPViolationWithURI):
+# %1$S is the directive that has been violated.
+# %2$S is the URI of the resource which violated the directive.
+CSPViolationWithURI = Các cài đặt trang khác đã chặn tải tài nguyên ở %2$S (“%1$S”).
+# LOCALIZATION NOTE (CSPROViolation):
+# %1$S is the reason why the resource has not been loaded.
+CSPROViolation = Đã xảy ra vi phạm đối với chính sách CSP chỉ báo cáo (“%1$S”). Hành vi đã được cho phép và một báo cáo CSP đã được gửi.
+# LOCALIZATION NOTE (CSPROViolationWithURI):
+# %1$S is the directive that has been violated.
+# %2$S is the URI of the resource which violated the directive.
+CSPROViolationWithURI = Các cài đặt của trang đã quan sát việc tải tài nguyên ở %2$S (“%1$S”). Một báo cáo CSP đang được gửi.
+# LOCALIZATION NOTE (triedToSendReport):
+# %1$S is the URI we attempted to send a report to.
+triedToSendReport = Gửi báo cáo đến URI không hợp lệ: "%1$S"
+# LOCALIZATION NOTE (couldNotParseReportURI):
+# %1$S is the report URI that could not be parsed
+couldNotParseReportURI = không thể phân tích URI của báo cáo: %1$S
+# LOCALIZATION NOTE (couldNotProcessUnknownDirective):
+# %1$S is the unknown directive
+couldNotProcessUnknownDirective = Không thể xử lý directive không rõ '%1$S'
+# LOCALIZATION NOTE (ignoringUnknownOption):
+# %1$S is the option that could not be understood
+ignoringUnknownOption = Bỏ qua tùy chọn không xác định %1$S
+# LOCALIZATION NOTE (ignoringDuplicateSrc):
+# %1$S defines the duplicate src
+ignoringDuplicateSrc = Bỏ qua nguồn trùng lặp %1$S
+# LOCALIZATION NOTE (ignoringSrcFromMetaCSP):
+# %1$S defines the ignored src
+ignoringSrcFromMetaCSP = Bỏ qua nguồn ‘%1$S’, (Không được hỗ trợ khi được gửi qua phần tử meta).
+# LOCALIZATION NOTE (ignoringSrcWithinScriptStyleSrc):
+# %1$S is the ignored src
+# script-src and style-src are directive names and should not be localized
+ignoringSrcWithinScriptStyleSrc = Bỏ qua “%1$S” trong script-src hoặc style-src: nonce-source hoặc hash-source đã được chỉ định
+# LOCALIZATION NOTE (ignoringSrcForStrictDynamic):
+# %1$S is the ignored src
+# script-src, as well as 'strict-dynamic' should not be localized
+ignoringSrcForStrictDynamic = Bỏ qua “%1$S” trong script-src: ‘strict-dynamic’ đã được chỉ định
+# LOCALIZATION NOTE (ignoringStrictDynamic):
+# %1$S is the ignored src
+ignoringStrictDynamic = Bỏ qua nguồn “%1$S” (Chỉ được hỗ trợ trong script-src).
+# LOCALIZATION NOTE (strictDynamicButNoHashOrNonce):
+# %1$S is the csp directive that contains 'strict-dynamic'
+# 'strict-dynamic' should not be localized
+strictDynamicButNoHashOrNonce = Từ khóa ‘strict-dynamic’ trong “%1$S” không có mã khai báo hợp lệ hoặc hash có thể chặn tất cả các tập lệnh tải
+# LOCALIZATION NOTE (reportURInotHttpsOrHttp2):
+# %1$S is the ETLD of the report URI that is not HTTP or HTTPS
+reportURInotHttpsOrHttp2 = URI báo cáo (%1$S) phải là URI HTTP hoặc HTTPS.
+# LOCALIZATION NOTE (reportURInotInReportOnlyHeader):
+# %1$S is the ETLD of the page with the policy
+reportURInotInReportOnlyHeader = Trang web này (%1$S) có chính sách Chỉ báo cáo mà không có URI báo cáo. CSP sẽ không chặn và không thể báo cáo vi phạm chính sách này.
+# LOCALIZATION NOTE (failedToParseUnrecognizedSource):
+# %1$S is the CSP Source that could not be parsed
+failedToParseUnrecognizedSource = Lỗi phân tách nguồn chưa xác định %1$S
+# LOCALIZATION NOTE (upgradeInsecureRequest):
+# %1$S is the URL of the upgraded request; %2$S is the upgraded scheme.
+upgradeInsecureRequest = Nâng cấp yêu cầu không an toàn ‘%1$S’ để sử dụng ‘%2$S’
+# LOCALIZATION NOTE (ignoreSrcForDirective):
+ignoreSrcForDirective = Bỏ qua srcs cho chỉ thị ‘%1$S’
+# LOCALIZATION NOTE (hostNameMightBeKeyword):
+# %1$S is the hostname in question and %2$S is the keyword
+hostNameMightBeKeyword = Giải thích %1$S dưới dạng tên máy chủ, không phải từ khóa. Nếu bạn dự định đây là một từ khóa, hãy sử dụng ‘%2$S’ (được gói trong các trích dẫn đơn).
+# LOCALIZATION NOTE (notSupportingDirective):
+# directive is not supported (e.g. 'reflected-xss')
+notSupportingDirective = Không hỗ trợ chỉ thị ‘%1$S’. Chỉ thị và giá trị sẽ bị bỏ qua.
+# LOCALIZATION NOTE (blockAllMixedContent):
+# %1$S is the URL of the blocked resource load.
+blockAllMixedContent = Đang chặn yêu cầu không an toàn ‘%1$S’.
+# LOCALIZATION NOTE (ignoringDirectiveWithNoValues):
+# %1$S is the name of a CSP directive that requires additional values
+ignoringDirectiveWithNoValues = Bỏ qua ‘%1$S’ vì nó không chứa bất kỳ tham số nào.
+# LOCALIZATION NOTE (ignoringReportOnlyDirective):
+# %1$S is the directive that is ignored in report-only mode.
+ignoringReportOnlyDirective = Bỏ qua thuộc tính sandbox khi gửi với chính sách ‘%1$S’
+# LOCALIZATION NOTE (IgnoringSrcBecauseOfDirective):
+# %1$S is the name of the src that is ignored.
+# %2$S is the name of the directive that causes the src to be ignored.
+IgnoringSrcBecauseOfDirective=Bỏ qua ‘%1$S’ vì chỉ thị ‘%2$S’.
+
+# LOCALIZATION NOTE (IgnoringSourceWithinDirective):
+# %1$S is the ignored src
+# %2$S is the directive which supports src
+IgnoringSourceWithinDirective = Bỏ qua nguồn “%1$S” (Không được hỗ trợ trong ‘%2$S’).
+
+# CSP Errors:
+# LOCALIZATION NOTE (couldntParseInvalidSource):
+# %1$S is the source that could not be parsed
+couldntParseInvalidSource = Không thể phân tích nguồn %1$S không hợp lệ
+# LOCALIZATION NOTE (couldntParseInvalidHost):
+# %1$S is the host that's invalid
+couldntParseInvalidHost = Không thể phân tích máy chủ %1$S không hợp lệ
+# LOCALIZATION NOTE (couldntParsePort):
+# %1$S is the string source
+couldntParsePort = Không thể phân tích cổng trong %1$S
+# LOCALIZATION NOTE (duplicateDirective):
+# %1$S is the name of the duplicate directive
+duplicateDirective = Xác định %1$S directive trùng. Tất cả trừ bản đầu tiên sẽ được bỏ qua.
+# LOCALIZATION NOTE (couldntParseInvalidSandboxFlag):
+# %1$S is the option that could not be understood
+couldntParseInvalidSandboxFlag = Không thể phân tích cú pháp gắn cờ hộp cát không hợp lệ ‘%1$S’
diff --git a/l10n-vi/dom/chrome/security/security.properties b/l10n-vi/dom/chrome/security/security.properties
new file mode 100644
index 0000000000..dcb1cc0b69
--- /dev/null
+++ b/l10n-vi/dom/chrome/security/security.properties
@@ -0,0 +1,154 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Mixed Content Blocker
+# LOCALIZATION NOTE: "%1$S" is the URI of the blocked mixed content resource
+BlockMixedDisplayContent = Đã chặn việc tải các nội dung bị trộn lẫn thụ động từ "%1$S"
+BlockMixedActiveContent = Đã chặn việc tải các nội dung bị trộn lẫn chủ động từ "%1$S"
+
+# CORS
+# LOCALIZATION NOTE: Do not translate "Access-Control-Allow-Origin", Access-Control-Allow-Credentials, Access-Control-Allow-Methods, Access-Control-Allow-Headers
+CORSDisabled=Yêu cầu Cross-Origin đã bị chặn: Same Origin Policy không cho phép đọc tài nguyên từ xa ở %1$S. (Lý do: CORS bị vô hiệu hóa).
+CORSDidNotSucceed=Yêu cầu Cross-Origin đã bị chặn: Same Origin Policy không cho phép đọc tài nguyên từ xa ở %1$S. (Lý do: Yêu cầu CORS không thành công).
+CORSOriginHeaderNotAdded=Yêu cầu Cross-Origin đã bị chặn: Same Origin Policy không cho phép đọc tài nguyên từ xa ở %1$S. (Lý do: Không thể thêm CORS header ‘Origin’).
+CORSExternalRedirectNotAllowed=Yêu cầu Cross-Origin đã bị chặn: Same Origin Policy không cho phép đọc tài nguyên từ xa ở %1$S. (Lý do: CORS yêu cầu chuyển hướng bên ngoài không được cho phép).
+CORSRequestNotHttp=Yêu cầu Cross-Origin đã bị chặn: Same Origin Policy không cho phép đọc tài nguyên từ xa ở %1$S. (Lý do: CORS yêu cầu không http).
+CORSMissingAllowOrigin=Yêu cầu Cross-Origin đã bị chặn: Same Origin Policy không cho phép đọc tài nguyên từ xa ở %1$S. (Lý do: Thiếu CORS header ‘Access-Control-Allow-Origin’).
+CORSMultipleAllowOriginNotAllowed=Yêu cầu Cross-Origin đã bị chặn: Same Origin Policy không cho phép đọc tài nguyên từ xa ở %1$S. (Lý do: Nhiều CORS header ‘Access-Control-Allow-Origin’ không được cho phép).
+CORSAllowOriginNotMatchingOrigin=Yêu cầu Cross-Origin đã bị chặn: Same Origin Policy không cho phép đọc tài nguyên từ xa ở %1$S. (Lý do: CORS header ‘Access-Control-Allow-Origin’ không khớp với ‘%2$S’).
+CORSNotSupportingCredentials=Yêu cầu Cross-Origin đã bị chặn: Same Origin Policy không cho phép đọc tài nguyên từ xa ở %1$S. (Lý do: Chứng chỉ không được hỗ trợ nếu CORS header ‘Access-Control-Allow-Origin’ là ‘*’).
+CORSMethodNotFound=Yêu cầu Cross-Origin đã bị chặn: Same Origin Policy không cho phép đọc tài nguyên từ xa ở %1$S. (Lý do: Không tìm thấy phương thức trong CORS header ‘Access-Control-Allow-Methods’).
+CORSMissingAllowCredentials=Yêu cầu Cross-Origin đã bị chặn: Same Origin Policy không cho phép đọc tài nguyên từ xa ở %1$S. (Lý do: phải là giá trị ‘true’ trong CORS header ‘Access-Control-Allow-Credentials’).
+CORSPreflightDidNotSucceed2=Yêu cầu Cross-Origin đã bị chặn: Same Origin Policy không cho phép đọc tài nguyên từ xa ở %1$S. (Lý do: CORS preflight response không thành công).
+CORSInvalidAllowMethod=Yêu cầu Cross-Origin đã bị chặn: Same Origin Policy không cho phép đọc tài nguyên từ xa ở %1$S. (Lý do: token ‘%2$S’ không hợp lệ trong CORS header ‘Access-Control-Allow-Methods’).
+CORSInvalidAllowHeader=Yêu cầu Cross-Origin đã bị chặn: Same Origin Policy không cho phép đọc tài nguyên từ xa ở %1$S. (Lý do: token ‘%2$S’ không hợp lệ trong CORS header ‘Access-Control-Allow-Headers’).
+CORSMissingAllowHeaderFromPreflight2=Yêu cầu Cross-Origin đã bị chặn: Same Origin Policy không cho phép đọc tài nguyên từ xa ở %1$S. (Lý do: header ‘%2$S’ không được phép theo header ‘Access-Control-Allow-Headers’ từ CORS preflight response).
+
+# LOCALIZATION NOTE: Do not translate "Strict-Transport-Security", "HSTS", "max-age" or "includeSubDomains"
+STSUnknownError=Strict-Transport-Security: Xảy ra lỗi không xác định khi xử lý header được chỉ định bởi trang web.
+STSUntrustworthyConnection=Strict-Transport-Security: Kết nối đến trang web không đáng tin cậy, vì vậy header được chỉ định đã bị bỏ qua.
+STSCouldNotParseHeader=Strict-Transport-Security: Trang web đã chỉ định một header không thể được phân tích cú pháp thành công.
+STSNoMaxAge=Strict-Transport-Security: Trang web đã chỉ định một header không bao gồm chỉ thị ‘max-age’.
+STSMultipleMaxAges=Strict-Transport-Security: Trang web đã chỉ định một header bao gồm nhiều chỉ thị ‘max-age’.
+STSInvalidMaxAge=Strict-Transport-Security: Trang web đã chỉ định một header bao gồm chỉ thị ‘max-age’ không hợp lệ.
+STSMultipleIncludeSubdomains=Strict-Transport-Security: Trang web đã chỉ định một header bao gồm nhiều chỉ thị ‘includeSubDomains’.
+STSInvalidIncludeSubdomains=Strict-Transport-Security: Trang web đã chỉ định một header bao gồm một chỉ thị ‘includeSubDomains’ không hợp lệ.
+STSCouldNotSaveState=Strict-Transport-Security: Đã xảy ra lỗi khi lưu ý trang web là máy chủ Strict-Transport-Security.
+
+# LOCALIZATION NOTE: Do not translate "SHA-1"
+SHA1Sig=Trang web này sử dụng chứng chỉ SHA-1; nó khuyên bạn nên sử dụng các chứng chỉ với thuật toán chữ ký sử dụng hash mạnh hơn SHA-1.
+InsecurePasswordsPresentOnPage=Các trường mật khẩu hiện trên trang (http://) không an toàn. Đây là một rủi ro bảo mật cho phép đánh cắp thông tin đăng nhập của người dùng.
+InsecureFormActionPasswordsPresent=Các trường mật khẩu có trong một biểu mẫu với biểu mẫu hành động (http://) không an toàn. Đây là một rủi ro bảo mật cho phép đánh cắp thông tin đăng nhập của người dùng.
+InsecurePasswordsPresentOnIframe=Các trường mật khẩu hiện trên iframe (http://) không an toàn. Đây là một rủi ro bảo mật cho phép đánh cắp thông tin đăng nhập của người dùng.
+# LOCALIZATION NOTE: "%1$S" is the URI of the insecure mixed content resource
+LoadingMixedActiveContent2=Đang tải nội dung hoạt động hỗn hợp (không an toàn) “%1$S” trên một trang an toàn
+LoadingMixedDisplayContent2=Đang tải nội dung hiển thị hỗn hợp (không an toàn) “%1$S” trên một trang an toàn
+LoadingMixedDisplayObjectSubrequestDeprecation=Tải nội dung hỗn hợp (không an toàn) “%1$S” trong một bổ trợ trên trang bảo mật không được khuyến khích và sẽ bị chặn trong tương lai.
+# LOCALIZATION NOTE: "%S" is the URI of the insecure mixed content download
+MixedContentBlockedDownload = Đã chặn tải xuống nội dung không an toàn “%S”.
+
+# LOCALIZATION NOTE: Do not translate "allow-scripts", "allow-same-origin", "sandbox" or "iframe"
+BothAllowScriptsAndSameOriginPresent=Một iframe có cả allow-scripts và allow-same-origin cho thuộc tính sandbox của nó có thể loại bỏ hộp cát của nó.
+
+# LOCALIZATION NOTE: Do not translate "allow-top-navigation-by-user-activation", "allow-top-navigation", "sandbox" or "iframe"
+BothAllowTopNavigationAndUserActivationPresent=Một iframe có cả hai allow-top-navigation và allow-top-navigation-by-user-activation cho thuộc tính sandbox của nó sẽ cho phép điều hướng nội dung đến bối cảnh duyệt cấp cao nhất.
+
+# Sub-Resource Integrity
+# LOCALIZATION NOTE: Do not translate "script" or "integrity". "%1$S" is the invalid token found in the attribute.
+MalformedIntegrityHash=Phần tử script có hash không đúng định dạng trong thuộc tính integrity của nó: “%1$S”. Định dạng đúng là “<hash algorithm>-<hash value>”.
+# LOCALIZATION NOTE: Do not translate "integrity"
+InvalidIntegrityLength=Hash chứa trong thuộc tính integrity có độ dài không đúng.
+# LOCALIZATION NOTE: Do not translate "integrity"
+InvalidIntegrityBase64=Không thể giải mã hash chứa trong thuộc tính integrity.
+# LOCALIZATION NOTE: Do not translate "integrity". "%1$S" is the type of hash algorithm in use (e.g. "sha256").
+IntegrityMismatch=Không có giá trị hash nào của “%1$S” trong thuộc tính integrity khớp với nội dung của nguồn phụ.
+# LOCALIZATION NOTE: "%1$S" is the URI of the sub-resource that cannot be protected using SRI.
+IneligibleResource=“%1$S” không đủ điều kiện để kiểm tra tính toàn vẹn vì nó không kích hoạt CORS cũng không cùng nguồn gốc.
+# LOCALIZATION NOTE: Do not translate "integrity". "%1$S" is the invalid hash algorithm found in the attribute.
+UnsupportedHashAlg=Thuật toán hash không được hỗ trợ trong thuộc tính integrity: “%1$S”
+# LOCALIZATION NOTE: Do not translate "integrity"
+NoValidMetadata=Thuộc tính integrity không chứa bất kỳ siêu dữ liệu (metadata) hợp lệ.
+
+# LOCALIZATION NOTE: Do not translate "RC4".
+WeakCipherSuiteWarning=Trang web này sử dụng mật mã RC4 để mã hóa, nó không còn dùng nữa và không an toàn.
+
+DeprecatedTLSVersion2=Trang web này sử dụng phiên bản TLS không dùng nữa. Vui lòng nâng cấp lên TLS 1.2 hoặc 1.3.
+
+#XCTO: nosniff
+# LOCALIZATION NOTE: Do not translate "X-Content-Type-Options: nosniff".
+MimeTypeMismatch2=Tài nguyên từ “%1$S” bị chặn do kiểu MIME (“%2$S”) không khớp (X-Content-Type-Options: nosniff).
+# LOCALIZATION NOTE: Do not translate "X-Content-Type-Options" and also do not translate "nosniff".
+XCTOHeaderValueMissing=Cảnh báo X-Content-Type-Options header: giá trị là “%1$S”; ý của bạn là gửi “nosniff”?
+# LOCALIZATION NOTE: Do not translate "X-Content-Type-Options" and also do not translate "nosniff".
+XTCOWithMIMEValueMissing=Tài nguyên từ “%1$S” không được hiển thị do loại MIME không xác định, không chính xác hoặc bị thiếu (X-Content-Type-Options: nosniff).
+
+BlockScriptWithWrongMimeType2=Script từ “%1$S” đã bị chặn vì kiểu MIME (“%2$S”) không được cho phép.
+WarnScriptWithWrongMimeType=Script từ “%1$S” đã được tải ngay cả khi kiểu MIME của nó (“%2$S”) không phải là kiểu MIME JavaScript hợp lệ.
+# LOCALIZATION NOTE: Do not translate "importScripts()"
+BlockImportScriptsWithWrongMimeType=Đã chặn việc tải script từ “%1$S” bằng importScripts() do kiểu MIME (“%2$S”) không được cho phép.
+BlockWorkerWithWrongMimeType=Đã chặn việc tải trình làm việc từ “%1$S” do kiểu MIME (“%2$S”) không được phép.
+BlockModuleWithWrongMimeType=Đã chặn việc tải mô-đun từ “%1$S” do kiểu MIME (“%2$S”) không được cho phép.
+
+# LOCALIZATION NOTE: Do not translate "data: URI".
+BlockTopLevelDataURINavigation=Điều hướng đến toplevel data: URI không được cho phép (Chặn tải của: “%1$S”)
+BlockSubresourceRedirectToData=Chuyển hướng đến data: URI không an toàn không được cho phép (Chặn tải của: “%1$S”)
+
+BlockSubresourceFTP=Không cho phép tải xuống nguồn phụ FTP trong trang http(s) (Chặn tải của: “%1$S”)
+
+RestrictBrowserEvalUsage=eval() và eval-like không được phép sử dụng trong quy trình cha hoặc trong bối cảnh hệ thống (Đã chặn sử dụng trong “%1$S”)
+
+# LOCALIZATION NOTE (BrowserUpgradeInsecureDisplayRequest):
+# %1$S is the browser name "brandShortName"; %2$S is the URL of the upgraded request; %1$S is the upgraded scheme.
+BrowserUpgradeInsecureDisplayRequest = %1$S đang nâng cấp yêu cầu hiển thị không an toàn ‘%2$S’ để sử dụng ‘%3$S’
+
+# LOCALIZATION NOTE (MixedContentAutoUpgrade):
+# %1$S is the URL of the upgraded request; %2$S is the upgraded scheme.
+MixedContentAutoUpgrade=Nâng cấp yêu cầu hiển thị không an toàn ‘%1$S’ để sử dụng ‘%2$S’
+# LOCALIZATION NOTE (RunningClearSiteDataValue):
+# %S is the URI of the resource whose data was cleaned up
+RunningClearSiteDataValue=Clear-Site-Data header buộc phải dọn sạch dữ liệu của “%S”.
+UnknownClearSiteDataValue=Clear-Site-Data header được tìm thấy. Giá trị không xác định “%S”.
+
+# Reporting API
+ReportingHeaderInvalidJSON=Header báo cáo: giá trị JSON nhận được không hợp lệ.
+ReportingHeaderInvalidNameItem=Header báo cáo: tên cho nhóm không hợp lệ.
+ReportingHeaderDuplicateGroup=Header báo cáo: bỏ qua nhóm trùng lặp có tên là “%S”.
+ReportingHeaderInvalidItem=Header báo cáo: bỏ qua mục không hợp lệ có tên là “%S”.
+ReportingHeaderInvalidEndpoint=Header báo cáo: bỏ qua điểm cuối không hợp lệ cho mục có tên là “%S”.
+# LOCALIZATION NOTE(ReportingHeaderInvalidURLEndpoint): %1$S is the invalid URL, %2$S is the group name
+ReportingHeaderInvalidURLEndpoint=Header báo cáo: bỏ qua điểm cuối URL không hợp lệ “%1$S” cho mục có tên là “%2$S”.
+
+FeaturePolicyUnsupportedFeatureName=Chính sách tính năng: Bỏ qua tên tính năng không được hỗ trợ “%S”.
+# TODO: would be nice to add a link to the Feature-Policy MDN documentation here. See bug 1449501
+FeaturePolicyInvalidEmptyAllowValue= Chính sách tính năng: Bỏ qua danh sách cho phép tính năng trống: “%S”.
+# TODO: would be nice to add a link to the Feature-Policy MDN documentation here. See bug 1449501
+FeaturePolicyInvalidAllowValue=Chính sách tính năng: Bỏ qua giá trị cho phép không được hỗ trợ “%S”.
+
+# LOCALIZATION NOTE: "%1$S" is the limitation length (bytes) of referrer URI, "%2$S" is the origin of the referrer URI.
+ReferrerLengthOverLimitation=Tiêu đề giới thiệu HTTP: Độ dài vượt quá giới hạn“%1$S” byte - sẽ tách đầu giới thiệu làm gốc: “%2$S”
+# LOCALIZATION NOTE: "%1$S" is the limitation length (bytes) of referrer URI, "%2$S" is the origin of the referrer URI.
+ReferrerOriginLengthOverLimitation=Tiêu đề giới thiệu HTTP: Độ dài của nguồn gốc trong giới thiệu vượt quá giới hạn “%1$S” byte - sẽ loại bỏ giới thiệu với nguồn gốc “%2$S”.
+
+# X-Frame-Options
+# LOCALIZATION NOTE(XFrameOptionsInvalid): %1$S is the header value, %2$S is frame URI. Do not translate "X-Frame-Options".
+XFrameOptionsInvalid = Đã tìm thấy tiêu đề X-Frame-Options không hợp lệ khi tải “%2$S”: “%1$S” không phải là một chỉ thị hợp lệ.
+# LOCALIZATION NOTE(XFrameOptionsDeny): %1$S is the header value, %2$S is frame URI and %3$S is the parent document URI. Do not translate "X-Frame-Options".
+XFrameOptionsDeny=Quá trình tải của “%2$S” vào một frame bị từ chối bởi chỉ thị “X-Frame-Options“ đã được đặt thành “%1$S“.
+
+# HTTPS-Only Mode
+# LOCALIZATION NOTE: %1$S is the URL of the upgraded request; %2$S is the upgraded scheme.
+HTTPSOnlyUpgradeRequest = Nâng cấp yêu cầu không an toàn “%1$S” để sử dụng “%2$S”.
+# LOCALIZATION NOTE: %1$S is the URL of request.
+HTTPSOnlyNoUpgradeException = Do sự miễn trừ, yêu cầu không an toàn “%1$S” đã không được nâng cấp.
+# LOCALIZATION NOTE: %1$S is the URL of the failed request; %2$S is an error-code.
+HTTPSOnlyFailedRequest = Yêu cầu không an toàn “%1$S” không thể nâng cấp. (%2$S)
+
+# LOCALIZATION NOTE: %S is the URL of the blocked request;
+IframeSandboxBlockedDownload = Tải xuống của “%S” đã bị chặn do iframe đang kích hoạt đã đặt cờ thành sandbox.
+
+# Sanitizer API
+# LOCALIZATION NOTE: Please do not localize "DocumentFragment". It's the name of an API.
+SanitizerRcvdNoInput = Dữ liệu trống hoặc không có đầu vào. Đang trả lại một DocumentFragment trống.
+# LOCALIZATION NOTE: "Sanitizer" is the name of the API. Please do not localize.
+SanitizerOptionsDiscarded = Các tùy chọn cho hàm tạo Sanitizer chưa được hỗ trợ. Xin lưu ý rằng đây là hành vi thử nghiệm.
diff --git a/l10n-vi/dom/chrome/svg/svg.properties b/l10n-vi/dom/chrome/svg/svg.properties
new file mode 100644
index 0000000000..6cdaff7151
--- /dev/null
+++ b/l10n-vi/dom/chrome/svg/svg.properties
@@ -0,0 +1,5 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+AttributeParseWarning=Giá trị không mong đợi %2$S đang phân tích thuộc tính %1$S.
diff --git a/l10n-vi/dom/chrome/xml/prettyprint.dtd b/l10n-vi/dom/chrome/xml/prettyprint.dtd
new file mode 100644
index 0000000000..7cb1571c50
--- /dev/null
+++ b/l10n-vi/dom/chrome/xml/prettyprint.dtd
@@ -0,0 +1,5 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY xml.nostylesheet "Tập tin XML có vẻ như không có thông tin kiểu nào đi kèm với nó. Cấu trúc tài liệu được hiển thị bên dưới.">
diff --git a/l10n-vi/dom/chrome/xslt/xslt.properties b/l10n-vi/dom/chrome/xslt/xslt.properties
new file mode 100644
index 0000000000..dcf5a1f46f
--- /dev/null
+++ b/l10n-vi/dom/chrome/xslt/xslt.properties
@@ -0,0 +1,39 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+1 = Thất bại khi phân tích một stylesheet XSLT.
+2 = Thất bại khi phân tích một biểu thức XPath.
+3 =
+4 = Thất bại khi chuyển đổi XSLT.
+5 = Sai hàm XSLT/XPath.
+6 = Bảng kiểu XSLT (có thể) chứa đệ qui.
+7 = Giá trị thuộc tính không hợp lệ trong XSLT 1.0.
+8 = Cần một biểu thức XPath để trả lại một NodeSet.
+9 = Chuyển đổi XSLT bị hủy bỏ bởi <xsl:message>.
+10 = Một lỗi mạng đã xảy ra khi tải một bảng kiểu XSLT:
+11 = Một stylesheet XSLT không chứa kiểu mime XML:
+12 = Một stylesheet XSLT nhập trực tiếp hoặc gián tiếp hoặc chứa chính nó:
+13 = Nột hàm XPath được gọi với số đối số sai.
+14 = Một hàm mở rộng XPath được gọi.
+15 = Phân tích XPath thất bại: cần ')':
+16 = Phân tích XPath thất bại: sai trục:
+17 = Phân tích XPath thất bại: cần kiểm tra Tên hoặc Nodetype:
+18 = Phân tích XPath thất bại: cần ']':
+19 = Phân tích XPath thất bại: sai tên biến:
+20 = Phân tích XPath thất bại: bất ngờ kết thúc biểu thức:
+21 = Phân tích XPath thất bại: cần toán tử:
+22 = Phân tích XPath thất bại: chưa đóng kí tự sai:
+23 = Phân tích XPath thất bại: thừa ':':
+24 = Phân tích XPath thất bại: thừa '!', phủ định là not():
+25 = Phân tích XPath thất bại: tìm thấy kí tự không hợp lệ:
+26 = Phân tích XPath thất bại: cần toán tử nhị phân:
+27 = Một stylesheet XSLT đã bị chặn vì lí do bảo mật.
+28 = Định lượng biểu thức bất hợp lệ.
+29 = Dấu ngoặc ôm không cân bằng.
+30 = Đang tạo một phần tử với QName bất hợp lệ.
+31 = Gắn kết biến che đậy gắn kết biến trong cùng khuôn mẫu.
+32 = Không có quyền gọi hàm chính.
+
+LoadingError = Gặp lỗi khi tải stylesheet: %S
+TransformError = Gặp lỗi khi chuyển đổi XSLT: %S
diff --git a/l10n-vi/dom/dom/media.ftl b/l10n-vi/dom/dom/media.ftl
new file mode 100644
index 0000000000..0a3e4ef03e
--- /dev/null
+++ b/l10n-vi/dom/dom/media.ftl
@@ -0,0 +1,5 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+mediastatus-fallback-title = { -brand-short-name } đang phát đa phương tiện