+ }
+
+## Logins import report page
+
+about-logins-import-report-page-title = Báo cáo tóm tắt nhập
diff --git a/l10n-vi/browser/browser/aboutPocket.ftl b/l10n-vi/browser/browser/aboutPocket.ftl
new file mode 100644
index 0000000000..e39226d906
--- /dev/null
+++ b/l10n-vi/browser/browser/aboutPocket.ftl
@@ -0,0 +1,77 @@
+# 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/.
+
+
+### Pocket button panel strings for about:pocket-saved, about:pocket-signup, and about:pocket-home
+
+
+## about:pocket-saved panel
+
+# Placeholder text for tag input
+pocket-panel-saved-add-tags =
+ .placeholder = Thêm các tag
+pocket-panel-saved-error-generic = Đã xảy ra lỗi khi đang lưu vào { -pocket-brand-name }.
+pocket-panel-saved-error-tag-length = Các tag được giới hạn trong 25 ký tự
+pocket-panel-saved-error-only-links = Chỉ các các liên kết mới có thể được lưu lại
+pocket-panel-saved-error-not-saved = Trang chưa được lưu
+pocket-panel-saved-error-no-internet = Bạn phải kết nối Internet để lưu vào { -pocket-brand-name }. Vui lòng kết nối Internet và thử lại.
+pocket-panel-saved-error-remove = Đã xảy ra lỗi khi thử xóa trang này.
+pocket-panel-saved-page-removed = Trang đã bị xóa
+pocket-panel-saved-page-saved = Đã lưu vào { -pocket-brand-name }
+pocket-panel-saved-page-saved-b = Đã lưu vào { -pocket-brand-name }!
+pocket-panel-saved-processing-remove = Đang xóa trang...
+pocket-panel-saved-removed = Đã xóa trang khỏi danh sách của tôi
+pocket-panel-saved-removed-updated = Trang đã bị xóa khỏi mục đã lưu
+pocket-panel-saved-processing-tags = Đang thêm các tag...
+pocket-panel-saved-remove-page = Xóa trang
+pocket-panel-saved-save-tags = Lưu lại
+pocket-panel-saved-saving-tags = Đang lưu lại...
+pocket-panel-saved-suggested-tags = Các tag được đề xuất
+pocket-panel-saved-tags-saved = Các tag đã được thêm vào
+pocket-panel-signup-view-list = Xem danh sách
+# This is displayed above a field where the user can add tags
+pocket-panel-signup-add-tags = Thêm tag
+
+## about:pocket-signup panel
+
+pocket-panel-signup-already-have = Bạn đã có tài khoản { -pocket-brand-name }?
+pocket-panel-signup-learn-more = Tìm hiểu thêm
+pocket-panel-signup-login = Đăng nhập
+pocket-panel-signup-signup-email = Đăng ký bằng email
+pocket-panel-signup-signup-cta = Đăng ký { -pocket-brand-name }. Hoàn toàn miễn phí.
+pocket-panel-signup-signup-firefox = Đăng ký với { -brand-product-name }
+pocket-panel-signup-tagline = Lưu bài viết và video từ { -brand-product-name } để xem trên { -pocket-brand-name } trên bất kỳ thiết bị nào, bất cứ lúc nào.
+pocket-panel-signup-tagline-story-one = Nhấp vào nút { -pocket-brand-name } để lưu bất kỳ bài viết, video hoặc trang nào từ { -brand-product-name }.
+pocket-panel-signup-tagline-story-two = Xem trên { -pocket-brand-name } ở bất cứ thiết bị và thời gian nào.
+pocket-panel-signup-cta-a-fix = Nút lưu của bạn trên internet
+pocket-panel-signup-cta-b = Nhấp vào nút { -pocket-brand-name } để lưu các bài báo, video và liên kết. Xem danh sách của bạn trên mọi thiết bị, bất kỳ lúc nào.
+pocket-panel-signup-cta-b-updated = Nhấp vào nút { -pocket-brand-name } để lưu các bài báo, video và liên kết. Xem các mục đã lưu của bạn trên mọi thiết bị, bất kỳ lúc nào.
+pocket-panel-signup-cta-b-short = Nhấp vào nút { -pocket-brand-name } để lưu các bài báo, video và liên kết.
+pocket-panel-signup-cta-c = Xem danh sách của bạn trên mọi thiết bị, bất kỳ lúc nào.
+pocket-panel-signup-cta-c-updated = Xem các mục đã lưu của bạn trên mọi thiết bị, bất kỳ lúc nào.
+
+## about:pocket-home panel
+
+pocket-panel-home-my-list = Danh sách của tôi
+pocket-panel-home-welcome-back = Chào mừng trở lại
+pocket-panel-home-paragraph = Bạn có thể sử dụng { -pocket-brand-name } để khám phá và lưu các trang web, bài viết, video, podcast hoặc quay lại những gì bạn đã đọc.
+pocket-panel-home-explore-popular-topics = Khám phá các chủ đề phổ biến
+pocket-panel-home-discover-more = Khám phá nhiều hơn
+pocket-panel-home-explore-more = Khám phá
+pocket-panel-home-most-recent-saves = Đây là những lần lưu gần đây nhất của bạn:
+pocket-panel-home-most-recent-saves-loading = Đang tải các bản lưu gần đây…
+pocket-panel-home-new-user-cta = Nhấp vào nút { -pocket-brand-name } để lưu các bài báo, video và liên kết.
+pocket-panel-home-new-user-message = Xem các lần lưu gần đây của bạn tại đây.
+
+## Pocket panel header component
+
+pocket-panel-header-my-list = Xem danh sách của tôi
+pocket-panel-header-my-saves = Xem các mục đã lưu của tôi
+pocket-panel-header-sign-in = Đăng nhập
+
+## Pocket panel buttons
+
+pocket-panel-button-show-all = Hiển thị tất cả
+pocket-panel-button-activate = Kích hoạt { -pocket-brand-name } trong { -brand-product-name }
+pocket-panel-button-remove = Xóa
diff --git a/l10n-vi/browser/browser/aboutPolicies.ftl b/l10n-vi/browser/browser/aboutPolicies.ftl
new file mode 100644
index 0000000000..f2e3805513
--- /dev/null
+++ b/l10n-vi/browser/browser/aboutPolicies.ftl
@@ -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/.
+
+about-policies-title = Chính sách doanh nghiệp
+
+# 'Active' is used to describe the policies that are currently active
+active-policies-tab = Đang hoạt động
+errors-tab = Lỗi
+documentation-tab = Tài liệu
+
+no-specified-policies-message = Dịch vụ chính sách doanh nghiệp đang hoạt động nhưng không có chính sách nào được kích hoạt.
+inactive-message = Dịch vụ chính sách doanh nghiệp hiện không hoạt động.
+
+policy-name = Tên của chính sách
+policy-value = Giá trị của chính sách
+policy-errors = Lỗi chính sách
diff --git a/l10n-vi/browser/browser/aboutPrivateBrowsing.ftl b/l10n-vi/browser/browser/aboutPrivateBrowsing.ftl
new file mode 100644
index 0000000000..ccaea41b71
--- /dev/null
+++ b/l10n-vi/browser/browser/aboutPrivateBrowsing.ftl
@@ -0,0 +1,66 @@
+# 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/.
+
+privatebrowsingpage-open-private-window-label = Mở một cửa sổ riêng tư
+ .accesskey = P
+about-private-browsing-search-placeholder = Tìm kiếm trên mạng
+about-private-browsing-info-title = Bạn đang ở cửa sổ riêng tư
+about-private-browsing-search-btn =
+ .title = Tìm kiếm trên mạng
+# Variables
+# $engine (String): the name of the user's default search engine
+about-private-browsing-handoff =
+ .title = Tìm kiếm với { $engine } hoặc nhập địa chỉ
+about-private-browsing-handoff-no-engine =
+ .title = Tìm kiếm hoặc nhập địa chỉ
+# Variables
+# $engine (String): the name of the user's default search engine
+about-private-browsing-handoff-text = Tìm kiếm với { $engine } hoặc nhập địa chỉ
+about-private-browsing-handoff-text-no-engine = Tìm kiếm hoặc nhập địa chỉ
+about-private-browsing-not-private = Hiện tại bạn không sử dụng cửa sổ riêng tư riêng tư.
+about-private-browsing-info-description-private-window = Cửa sổ riêng tư: { -brand-short-name } xóa lịch sử tìm kiếm và duyệt web của bạn khi bạn đóng tất cả các cửa sổ riêng tư. Điều này không làm cho bạn ẩn danh.
+about-private-browsing-info-description-simplified = { -brand-short-name } xóa lịch sử tìm kiếm và duyệt web của bạn khi bạn đóng tất cả các cửa sổ riêng tư, nhưng điều này không khiến bạn ẩn danh.
+about-private-browsing-learn-more-link = Tìm hiểu thêm
+
+about-private-browsing-hide-activity = Ẩn hoạt động và vị trí của bạn, ở mọi nơi bạn duyệt
+about-private-browsing-get-privacy = Nhận các biện pháp bảo vệ quyền riêng tư ở mọi nơi bạn duyệt
+about-private-browsing-hide-activity-1 = Ẩn hoạt động duyệt web và vị trí với { -mozilla-vpn-brand-name }. Một cú nhấp chuột sẽ tạo ra một kết nối an toàn, ngay cả trên Wi-Fi công cộng.
+about-private-browsing-prominent-cta = Giữ riêng tư với { -mozilla-vpn-brand-name }
+
+about-private-browsing-focus-promo-cta = Tải xuống { -focus-brand-name }
+about-private-browsing-focus-promo-header = { -focus-brand-name }: Duyệt web riêng tư khi đang di chuyển
+about-private-browsing-focus-promo-text = Ứng dụng di động duyệt web riêng tư chuyên dụng của chúng tôi sẽ xóa lịch sử và cookie của bạn mọi lúc.
+
+## The following strings will be used for experiments in Fx99 and Fx100
+
+about-private-browsing-focus-promo-header-b = Duyệt qua điện thoại của bạn ở chế độ riêng tư
+about-private-browsing-focus-promo-text-b = Sử dụng { -focus-brand-name } cho những tìm kiếm riêng tư mà bạn không muốn trình duyệt chính trên thiết bị di động của mình nhìn thấy.
+about-private-browsing-focus-promo-header-c = Quyền riêng tư nâng cao trên thiết bị di động
+about-private-browsing-focus-promo-text-c = { -focus-brand-name } xóa lịch sử của bạn mọi lúc trong khi chặn quảng cáo và trình theo dõi.
+
+# This string is the title for the banner for search engine selection
+# in a private window.
+# Variables:
+# $engineName (String) - The engine name that will currently be used for the private window.
+about-private-browsing-search-banner-title = { $engineName } là công cụ tìm kiếm mặc định của bạn trong cửa sổ riêng tư
+about-private-browsing-search-banner-description =
+ { PLATFORM() ->
+ [windows] Để chọn một công cụ tìm kiếm khác, hãy truy cập Tùy chọn
+ *[other] Để chọn một công cụ tìm kiếm khác, hãy truy cập Tùy chỉnh
+ }
+about-private-browsing-search-banner-close-button =
+ .aria-label = Đóng
+
+about-private-browsing-promo-close-button =
+ .title = Đóng
+
+## Strings used in a “pin promotion” message, which prompts users to pin a private window
+
+about-private-browsing-pin-promo-header = Tự do duyệt web riêng tư trong một cú nhấp chuột
+about-private-browsing-pin-promo-link-text =
+ { PLATFORM() ->
+ [macos] Giữ trên Dock
+ *[other] Ghim vào thanh tác vụ
+ }
+about-private-browsing-pin-promo-title = Không có cookie hoặc lịch sử đã lưu, ngay từ màn hình của bạn. Duyệt như không có ai đang xem.
diff --git a/l10n-vi/browser/browser/aboutRestartRequired.ftl b/l10n-vi/browser/browser/aboutRestartRequired.ftl
new file mode 100644
index 0000000000..fe87bbb5a7
--- /dev/null
+++ b/l10n-vi/browser/browser/aboutRestartRequired.ftl
@@ -0,0 +1,10 @@
+# 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/.
+
+restart-required-title = Yêu cầu khởi động lại
+restart-required-heading = Khởi động lại để tiếp tục sử dụng { -brand-short-name }
+restart-required-intro = Một bản cập nhật { -brand-short-name } đã chạy trong nền. Bạn cần phải khởi động lại để hoàn tất quá trình cập nhật.
+window-restoration-info = Các cửa sổ và thẻ của bạn sẽ nhanh chóng được khôi phục, nhưng sẽ không với những cửa sổ riêng tư.
+
+restart-button-label = Khởi động lại { -brand-short-name }
diff --git a/l10n-vi/browser/browser/aboutRobots.ftl b/l10n-vi/browser/browser/aboutRobots.ftl
new file mode 100644
index 0000000000..df62691f8f
--- /dev/null
+++ b/l10n-vi/browser/browser/aboutRobots.ftl
@@ -0,0 +1,29 @@
+# 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/.
+
+
+### These strings are used in the about:robots page, which ties in with the
+### robots theme used in the Firefox 3 Beta 2/3 first run pages.
+### They're just meant to be fun and whimsical, with references to some geeky
+### but well-known robots in movies and books. Be creative with translations!
+
+# Nonsense line from the movie "The Day The Earth Stood Still". No translation needed.
+page-title = Gort! Klaatu barada nikto!
+# Movie: Logan's Run... Box (cyborg): "Welcome Humans! I am ready for you."
+error-title-text = Xin chào loài người!
+# Movie: The Day The Earth Stood Still. Spoken by Klaatu.
+error-short-desc-text = Chúng tôi đến thăm các bạn với thiện chí hòa bình!
+# Various books by Isaac Asimov. http://en.wikipedia.org/wiki/Three_Laws_of_Robotics
+error-long-desc1 = Người máy không được làm tổn hại con người hoặc bỏ mặc khi họ gặp nguy hiểm.
+# Movie: Blade Runner. Batty: "I've seen things you people wouldn’t believe..."
+error-long-desc2 = Loài người sẽ không tin những gì người máy đã thấy.
+# Book: Hitchhiker’s Guide To The Galaxy. What the Sirius Cybernetics Corporation calls robots.
+error-long-desc3 = Người máy là những người bạn vui vẻ bằng nhựa.
+# TV: Futurama. Bender's first line is "Bite my shiny metal ass."
+error-long-desc4 = Người máy có phần hậu bằng kim loại bóng loáng mà bạn không nên cắn.
+# TV: Battlestar Galactica (2004 series). From the opening text.
+error-trailer-desc-text = Và chúng có một kế hoạch.
+# Book: Hitchhiker's Guide To The Galaxy. Arthur presses a button and it warns him.
+error-try-again = Thử lại
+ .label2 = Vui lòng đừng nhấn cái nút này nữa.
diff --git a/l10n-vi/browser/browser/aboutSessionRestore.ftl b/l10n-vi/browser/browser/aboutSessionRestore.ftl
new file mode 100644
index 0000000000..6098ea6aa3
--- /dev/null
+++ b/l10n-vi/browser/browser/aboutSessionRestore.ftl
@@ -0,0 +1,51 @@
+# 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/.
+
+restore-page-tab-title = Khôi phục phiên làm việc
+
+# The title is intended to be apologetic and disarming, expressing dismay
+# and regret that we are unable to restore the session for the user
+restore-page-error-title = Xin lỗi. Chúng tôi đang gặp sự cố khi khôi phục lại các trang của bạn.
+restore-page-problem-desc = Chúng tôi đang gặp sự cố khi khôi phục lại phiên duyệt web lần cuối của bạn. Chọn "Khôi phục phiên làm việc" để thử lại.
+restore-page-try-this = Vẫn không thể phục hồi phiên làm việc của bạn? Đôi khi một thẻ đang gây ra sự cố. Xem các thẻ trước đó, bỏ chọn các thẻ mà bạn không cần khôi phục, và sau đó khôi phục lại.
+
+restore-page-hide-tabs = Ẩn thẻ trước đó
+restore-page-show-tabs = Xem thẻ trước đó
+
+# When tabs are distributed across multiple windows, this message is used as a
+# header above the group of tabs for each window.
+#
+# Variables:
+# $windowNumber: Progressive number associated to each window
+restore-page-window-label = Cửa sổ { $windowNumber }
+
+restore-page-restore-header =
+ .label = Khôi phục
+
+restore-page-list-header =
+ .label = Cửa sổ và thẻ
+
+restore-page-try-again-button =
+ .label = Khôi phục phiên làm việc
+ .accesskey = R
+
+restore-page-close-button =
+ .label = Bắt đầu phiên làm việc mới
+ .accesskey = N
+
+## The following strings are used in about:welcomeback
+
+welcome-back-tab-title = Thành công!
+welcome-back-page-title = Thành công!
+welcome-back-page-info = { -brand-short-name } đã sẵn sàng.
+
+welcome-back-restore-button =
+ .label = Bắt đầu nào!
+ .accesskey = L
+
+welcome-back-restore-all-label = Khôi phục lại toàn bộ các thẻ & cửa sổ
+welcome-back-restore-some-label = Chỉ khôi phục những cái bạn muốn
+
+welcome-back-page-info-link = Tiện ích mở rộng và tùy biến của bạn đã xóa và các thiết lập của trình duyệt sẽ được khôi phục về trạng thái mặc định. Nếu điều này không giải quyết được vấn đề của bạn, tìm hiểu thêm về những gì bạn có thể làm.
+
diff --git a/l10n-vi/browser/browser/aboutTabCrashed.ftl b/l10n-vi/browser/browser/aboutTabCrashed.ftl
new file mode 100644
index 0000000000..674be752e6
--- /dev/null
+++ b/l10n-vi/browser/browser/aboutTabCrashed.ftl
@@ -0,0 +1,22 @@
+# 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/.
+
+crashed-title = Trình báo lỗi thẻ
+crashed-close-tab-button = Đóng thẻ
+crashed-restore-tab-button = Khôi phục lại thẻ này
+crashed-restore-all-button = Khôi phục toàn bổ thẻ bị sự cố
+crashed-header = Trời. Thẻ của bạn vừa gặp sự cố.
+crashed-offer-help = Chúng tôi có thể giúp!
+crashed-single-offer-help-message = Chọn { crashed-restore-tab-button } để tải lại trang.
+crashed-multiple-offer-help-message = Chọn { crashed-restore-tab-button } hoặc { crashed-restore-all-button } để tải lại trang.
+crashed-request-help = Bạn sẽ giúp chúng tôi chứ?
+crashed-request-help-message = Báo cáo lỗi giúp chúng tôi chuẩn đoán vấn đề và giúp { -brand-short-name } hoàn thiện hơn.
+crashed-request-report-title = Báo cáo thẻ này
+crashed-send-report-2 = Gửi báo cáo sự cố tự động để chúng tôi có thể khắc phục các sự cố như thế này
+crashed-comment =
+ .placeholder = Bình luận tùy chọn (bình luận hiển thị công khai)
+crashed-include-URL-2 = Bao gồm các URL của các trang web mà bạn đã vào khi { -brand-short-name } bị đổ vỡ
+crashed-report-sent = Thông báo về sự cố của bạn đã được gửi đi; cám ơn bạn đã giúp { -brand-short-name } trở lên tốt hơn!
+crashed-request-auto-submit-title = Báo cáo các thẻ nền
+crashed-auto-submit-checkbox-2 = Cập nhật các tùy chọn để tự động gửi báo cáo khi { -brand-short-name } bị đổ vỡ
diff --git a/l10n-vi/browser/browser/aboutUnloads.ftl b/l10n-vi/browser/browser/aboutUnloads.ftl
new file mode 100644
index 0000000000..2b377d8705
--- /dev/null
+++ b/l10n-vi/browser/browser/aboutUnloads.ftl
@@ -0,0 +1,45 @@
+# 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/.
+
+
+### Strings used in about:unloads, allowing users to manage the "tab unloading"
+### feature.
+
+about-unloads-page-title = Quản lý dỡ thẻ
+about-unloads-intro =
+ { -brand-short-name } có tính năng tự động dỡ thẻ
+ để ngăn ứng dụng bị treo do không đủ bộ nhớ
+ khi bộ nhớ khả dụng của hệ thống sắp hết. Thẻ tiếp theo sẽ dỡ xuống
+ được chọn dựa trên nhiều thuộc tính. Trang này hiển thị cách
+ { -brand-short-name } đặt ưu tiên các thẻ và thẻ nào sẽ được dỡ xuống
+ khi lệnh dỡ thẻ được kích hoạt. Bạn có thể kích hoạt dỡ thẻ theo cách
+ thủ công bằng cách nhấp vào nút Dỡ.
+
+# The link points to a Firefox documentation page, only available in English,
+# with title "Tab Unloading"
+about-unloads-learn-more =
+ Xem Quản lý dỡ thẻ để tìm hiểu thêm
+ về tính năng và trang này.
+
+about-unloads-last-updated = Cập nhật gần đây nhất: { DATETIME($date, year: "numeric", month: "numeric", day: "numeric", hour: "numeric", minute: "numeric", second: "numeric", hour12: "false") }
+about-unloads-button-unload = Dỡ
+ .title = Dỡ thẻ có mức độ ưu tiên cao nhất
+about-unloads-no-unloadable-tab = Không có thẻ nào có thể dỡ xuống.
+
+about-unloads-column-priority = Ưu tiên
+about-unloads-column-host = Máy chủ
+about-unloads-column-last-accessed = Lần truy cập cuối
+about-unloads-column-weight = Base Weight
+ .title = Các thẻ đầu tiên được sắp xếp theo giá trị này, bắt nguồn từ một số thuộc tính đặc biệt như phát âm thanh, WebRTC, v.v...
+about-unloads-column-sortweight = Secondary Weight
+ .title = Nếu có, các thẻ được sắp xếp theo giá trị này sau khi được sắp xếp theo base weight. Giá trị bắt nguồn từ việc sử dụng bộ nhớ của thẻ và số lượng các quá trình.
+about-unloads-column-memory = Bộ nhớ
+ .title = Mức sử dụng bộ nhớ ước tính của thẻ
+about-unloads-column-processes = ID tiến trình
+ .title = ID của các tiến trình lưu trữ nội dung của thẻ
+
+about-unloads-last-accessed = { DATETIME($date, year: "numeric", month: "numeric", day: "numeric", hour: "numeric", minute: "numeric", second: "numeric", hour12: "false") }
+about-unloads-memory-in-mb = { NUMBER($mem, maxFractionalUnits: 2) } MB
+about-unloads-memory-in-mb-tooltip =
+ .title = { NUMBER($mem, maxFractionalUnits: 2) } MB
diff --git a/l10n-vi/browser/browser/accounts.ftl b/l10n-vi/browser/browser/accounts.ftl
new file mode 100644
index 0000000000..573b211ff5
--- /dev/null
+++ b/l10n-vi/browser/browser/accounts.ftl
@@ -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/.
+
+# Used as the FxA toolbar menu item value when user has not
+# finished setting up an account.
+account-finish-account-setup = Hoàn tất thiết lập tài khoản
+
+# Used as the FxA toolbar menu item title when the user
+# needs to reconnect their account.
+account-disconnected2 = Đã ngắt kết nối tài khoản
+
+# Menu item that sends a tab to all synced devices.
+account-send-to-all-devices = Gửi tới tất cả các thiết bị
+
+# Menu item that links to the Firefox Accounts settings for connected devices.
+account-manage-devices = Quản lý thiết bị…
diff --git a/l10n-vi/browser/browser/allTabsMenu.ftl b/l10n-vi/browser/browser/allTabsMenu.ftl
new file mode 100644
index 0000000000..8dc499170a
--- /dev/null
+++ b/l10n-vi/browser/browser/allTabsMenu.ftl
@@ -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/.
+
+# "Search" is a verb, as in "Search through tabs".
+all-tabs-menu-search-tabs =
+ .label = Tìm kiếm thẻ
+
+all-tabs-menu-new-user-context =
+ .label = Ngăn chứa thẻ mới
+
+all-tabs-menu-hidden-tabs =
+ .label = Thẻ đã ẩn
+
+all-tabs-menu-manage-user-context =
+ .label = Quản lý ngăn chứa
+ .accesskey = O
diff --git a/l10n-vi/browser/browser/appExtensionFields.ftl b/l10n-vi/browser/browser/appExtensionFields.ftl
new file mode 100644
index 0000000000..0894f1fe0d
--- /dev/null
+++ b/l10n-vi/browser/browser/appExtensionFields.ftl
@@ -0,0 +1,31 @@
+# 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/.
+
+
+## Theme names and descriptions used in the Themes panel in about:addons
+
+# "Auto" is short for automatic. It can be localized without limitations.
+extension-default-theme-name-auto = Chủ đề hệ thống — tự động
+extension-default-theme-description = Áp dụng theo cài đặt hệ điều hành cho các nút, menu và cửa sổ.
+
+extension-firefox-compact-light-name = Sáng
+extension-firefox-compact-light-description = Một chủ đề với tông màu sáng.
+
+extension-firefox-compact-dark-name = Tối
+extension-firefox-compact-dark-description = Một chủ đề với tông màu tối.
+
+extension-firefox-alpenglow-name = Firefox Alpenglow
+extension-firefox-alpenglow-description = Sử dụng giao diện đầy màu sắc cho các nút, menu và cửa sổ.
+
+## Colorway Themes
+## These themes are variants of a colorway. The colorway is specified in the
+## $colorway-name variable.
+## Variables
+## $colorway-name (String) The name of a colorway (e.g. Graffiti, Elemental).
+
+extension-colorways-soft-name = { $colorway-name } — Mềm
+extension-colorways-balanced-name = { $colorway-name } — Cân bằng
+# "Bold" is used in the sense of bravery or courage, not in the sense of
+# emphasized text.
+extension-colorways-bold-name = { $colorway-name } — Đậm
diff --git a/l10n-vi/browser/browser/appMenuNotifications.ftl b/l10n-vi/browser/browser/appMenuNotifications.ftl
new file mode 100644
index 0000000000..44736bab71
--- /dev/null
+++ b/l10n-vi/browser/browser/appMenuNotifications.ftl
@@ -0,0 +1,66 @@
+# 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/.
+
+appmenu-update-available2 =
+ .label = Đã có bản cập nhật
+ .buttonlabel = Tải xuống
+ .buttonaccesskey = D
+ .secondarybuttonlabel = Bỏ qua
+ .secondarybuttonaccesskey = m
+appmenu-update-available-message2 = Tải xuống phiên bản mới nhất của { -brand-shorter-name }.
+appmenu-update-manual2 =
+ .label = Đã có bản cập nhật
+ .buttonlabel = Tải xuống
+ .buttonaccesskey = D
+ .secondarybuttonlabel = Bỏ qua
+ .secondarybuttonaccesskey = m
+appmenu-update-manual-message2 = { -brand-shorter-name } không thể cập nhật tự động. Tải xuống phiên bản mới — bạn sẽ không mất thông tin hoặc tùy chỉnh đã lưu.
+appmenu-update-unsupported2 =
+ .label = Không thể cập nhật
+ .buttonlabel = Tìm hiểu thêm
+ .buttonaccesskey = L
+ .secondarybuttonlabel = Bỏ qua
+ .secondarybuttonaccesskey = m
+appmenu-update-unsupported-message2 = Hệ điều hành của bạn không tương thích với phiên bản mới nhất của { -brand-shorter-name }.
+appmenu-update-restart2 =
+ .label = Đã có bản cập nhật
+ .buttonlabel = Cập nhật và khởi động lại
+ .buttonaccesskey = U
+ .secondarybuttonlabel = Bỏ qua
+ .secondarybuttonaccesskey = m
+appmenu-update-restart-message2 = Tải xuống phiên bản mới nhất của { -brand-shorter-name }. Các thẻ và cửa sổ đang mở sẽ được khôi phục.
+appmenu-update-other-instance =
+ .label = { -brand-shorter-name } không thể tự động cập nhật lên phiên bản mới nhất.
+ .buttonlabel = Vẫn cập nhật { -brand-shorter-name }
+ .buttonaccesskey = U
+ .secondarybuttonlabel = Không phải lúc này
+ .secondarybuttonaccesskey = N
+appmenu-update-other-instance-message = Đã có bản cập nhật { -brand-shorter-name } mới nhưng không thể cài đặt bản cập nhật này vì một bản sao khác của { -brand-shorter-name } đang chạy. Đóng nó để tiếp tục cập nhật hoặc chọn vẫn cập nhật (bản sao khác có thể không hoạt động chính xác cho đến khi bạn khởi động lại nó).
+
+appmenu-addon-private-browsing-installed2 =
+ .buttonlabel = Okay
+ .buttonaccesskey = O
+appmenu-addon-post-install-message3 = Quản lý các tiện ích mở rộng và chủ đề của bạn thông qua menu ứng dụng.
+appmenu-addon-post-install-incognito-checkbox =
+ .label = Cho phép tiện ích mở rộng này chạy trong cửa sổ riêng tư
+ .accesskey = A
+
+appmenu-new-tab-controlled-changes =
+ .label = Thẻ mới của bạn đã thay đổi.
+ .buttonlabel = Lưu thay đổi
+ .buttonaccesskey = K
+ .secondarybuttonlabel = Quản lý thẻ mới
+ .secondarybuttonaccesskey = M
+appmenu-homepage-controlled-changes =
+ .label = Trang chủ của bạn đã thay đổi.
+ .buttonlabel = Lưu thay đổi
+ .buttonaccesskey = K
+ .secondarybuttonlabel = Quản lý trang chủ
+ .secondarybuttonaccesskey = M
+appmenu-tab-hide-controlled =
+ .label = Truy cập các thẻ đã ẩn của bạn
+ .buttonlabel = Giữ các thẻ đã ẩn
+ .buttonaccesskey = K
+ .secondarybuttonlabel = Vô hiệu hóa tiện ích mở rộng
+ .secondarybuttonaccesskey = D
diff --git a/l10n-vi/browser/browser/appmenu.ftl b/l10n-vi/browser/browser/appmenu.ftl
new file mode 100644
index 0000000000..45bfd4958d
--- /dev/null
+++ b/l10n-vi/browser/browser/appmenu.ftl
@@ -0,0 +1,253 @@
+# 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/.
+
+
+## App Menu
+
+appmenuitem-banner-update-downloading =
+ .label = Đang tải xuống bản cập nhật { -brand-shorter-name }
+appmenuitem-banner-update-available =
+ .label = Đã có bản cập nhật — tải xuống ngay
+appmenuitem-banner-update-manual =
+ .label = Đã có bản cập nhật — tải xuống ngay
+appmenuitem-banner-update-unsupported =
+ .label = Không thể cập nhật — hệ thống không tương thích
+appmenuitem-banner-update-restart =
+ .label = Đã có bản cập nhật — khởi động lại ngay
+appmenuitem-new-tab =
+ .label = Thẻ mới
+appmenuitem-new-window =
+ .label = Cửa sổ mới
+appmenuitem-new-private-window =
+ .label = Cửa sổ riêng tư mới
+appmenuitem-history =
+ .label = Lịch sử
+appmenuitem-downloads =
+ .label = Tải xuống
+appmenuitem-passwords =
+ .label = Mật khẩu
+appmenuitem-addons-and-themes =
+ .label = Tiện ích mở rộng và chủ đề
+appmenuitem-print =
+ .label = In…
+appmenuitem-find-in-page =
+ .label = Tìm trong trang…
+appmenuitem-zoom =
+ .value = Thu phóng
+appmenuitem-more-tools =
+ .label = Thêm công cụ
+appmenuitem-help =
+ .label = Trợ giúp
+appmenuitem-exit2 =
+ .label =
+ { PLATFORM() ->
+ [linux] Thoát
+ *[other] Thoát
+ }
+appmenu-menu-button-closed2 =
+ .tooltiptext = Mở menu ứng dụng
+ .label = { -brand-short-name }
+appmenu-menu-button-opened2 =
+ .tooltiptext = Đóng menu ứng dụng
+ .label = { -brand-short-name }
+# Settings is now used to access the browser settings across all platforms,
+# instead of Options or Preferences.
+appmenuitem-settings =
+ .label = Cài đặt
+
+## Zoom and Fullscreen Controls
+
+appmenuitem-zoom-enlarge =
+ .label = Phóng to
+appmenuitem-zoom-reduce =
+ .label = Thu nhỏ
+appmenuitem-fullscreen =
+ .label = Toàn màn hình
+
+## Firefox Account toolbar button and Sync panel in App menu.
+
+appmenu-remote-tabs-sign-into-sync =
+ .label = Đăng nhập để đồng bộ hóa…
+appmenu-remote-tabs-turn-on-sync =
+ .label = Bật đồng bộ hóa…
+# This is shown after the tabs list if we can display more tabs by clicking on the button
+appmenu-remote-tabs-showmore =
+ .label = Hiển thị thêm các thẻ
+ .tooltiptext = Hiển thị các thẻ từ thiết bị này
+# This is shown beneath the name of a device when that device has no open tabs
+appmenu-remote-tabs-notabs = Không có thẻ đang mở
+# This is shown when Sync is configured but syncing tabs is disabled.
+appmenu-remote-tabs-tabsnotsyncing = Bật đồng bộ thẻ để xem danh sách thẻ từ các thiết bị khác của bạn.
+appmenu-remote-tabs-opensettings =
+ .label = Cài đặt
+# This is shown when Sync is configured but this appears to be the only device attached to
+# the account. We also show links to download Firefox for android/ios.
+appmenu-remote-tabs-noclients = Muốn xem thẻ từ các thiết bị khác của bạn ở đây?
+appmenu-remote-tabs-connectdevice =
+ .label = Kết nối thiết bị khác
+appmenu-remote-tabs-welcome = Xem danh sách các thẻ từ các thiết bị khác của bạn.
+appmenu-remote-tabs-unverified = Tài khoản của bạn cần phải xác thực.
+appmenuitem-fxa-toolbar-sync-now2 = Đồng bộ ngay
+appmenuitem-fxa-sign-in = Đăng nhập vào { -brand-product-name }
+appmenuitem-fxa-manage-account = Quản lý tài khoản
+appmenu-fxa-header2 = { -fxaccount-brand-name }
+# Variables
+# $time (string) - Localized relative time since last sync (e.g. 1 second ago,
+# 3 hours ago, etc.)
+appmenu-fxa-last-sync = Đồng bộ hóa lần cuối { $time }
+ .label = Đồng bộ hóa lần cuối { $time }
+appmenu-fxa-sync-and-save-data2 = Đồng bộ hóa và lưu dữ liệu
+appmenu-fxa-signed-in-label = Đăng nhập
+appmenu-fxa-setup-sync =
+ .label = Bật đồng bộ hóa…
+appmenuitem-save-page =
+ .label = Lưu trang dưới dạng…
+
+## What's New panel in App menu.
+
+whatsnew-panel-header = Có gì mới
+# Checkbox displayed at the bottom of the What's New panel, allowing users to
+# enable/disable What's New notifications.
+whatsnew-panel-footer-checkbox =
+ .label = Thông báo về các tính năng mới
+ .accesskey = f
+
+## The Firefox Profiler – The popup is the UI to turn on the profiler, and record
+## performance profiles. To enable it go to profiler.firefox.com and click
+## "Enable Profiler Menu Button".
+
+profiler-popup-button-idle =
+ .label = Profiler
+ .tooltiptext = Ghi lại hồ sơ hiệu suất
+profiler-popup-button-recording =
+ .label = Profiler
+ .tooltiptext = Profiler đang ghi lại một hồ sơ
+profiler-popup-button-capturing =
+ .label = Profiler
+ .tooltiptext = Profiler đang ghi một hồ sơ
+profiler-popup-title =
+ .value = { -profiler-brand-name }
+profiler-popup-header-text = { -profiler-brand-name }
+profiler-popup-reveal-description-button =
+ .aria-label = Hiển thị thêm thông tin
+profiler-popup-description-title =
+ .value = Ghi lại, phân tích, chia sẻ
+profiler-popup-description = Cộng tác về các vấn đề hiệu suất bằng cách xuất bản hồ sơ để chia sẻ với nhóm của bạn.
+profiler-popup-learn-more-button =
+ .label = Tìm hiểu thêm
+profiler-popup-settings =
+ .value = Cài đặt
+# This link takes the user to about:profiling, and is only visible with the Custom preset.
+profiler-popup-edit-settings-button =
+ .label = Chỉnh sửa cài đặt…
+profiler-popup-recording-screen = Đang ghi…
+profiler-popup-start-recording-button =
+ .label = Bắt đầu ghi
+profiler-popup-discard-button =
+ .label = Loại bỏ
+profiler-popup-capture-button =
+ .label = Ghi
+profiler-popup-start-shortcut =
+ { PLATFORM() ->
+ [macos] ⌃⇧1
+ *[other] Ctrl+Shift+1
+ }
+profiler-popup-capture-shortcut =
+ { PLATFORM() ->
+ [macos] ⌃⇧2
+ *[other] Ctrl+Shift+2
+ }
+
+## Profiler presets
+## They are shown in the popup's select box.
+
+
+# Presets and their l10n IDs are defined in the file
+# devtools/client/performance-new/popup/background.jsm.js
+# Please take care that the same values are also defined in devtools' perftools.ftl.
+
+profiler-popup-presets-web-developer-description = Cài đặt trước được đề xuất cho hầu hết gỡ lỗi ứng dụng web, với chi phí thấp.
+profiler-popup-presets-web-developer-label =
+ .label = Nhà phát triển Web
+profiler-popup-presets-firefox-description = Giá trị đặt trước được đề xuất để kiểm tra hiệu suất { -brand-shorter-name }.
+profiler-popup-presets-firefox-label =
+ .label = { -brand-shorter-name }
+profiler-popup-presets-graphics-description = Giá trị đặt trước để điều tra lỗi đồ họa trong { -brand-shorter-name }.
+profiler-popup-presets-graphics-label =
+ .label = Đồ họa
+profiler-popup-presets-media-description2 = Giá trị đặt trước để điều tra lỗi âm thanh và video trong { -brand-shorter-name }.
+profiler-popup-presets-media-label =
+ .label = Media
+profiler-popup-presets-networking-description = Giá trị đặt trước để điều tra lỗi mạng trong { -brand-shorter-name }.
+profiler-popup-presets-networking-label =
+ .label = Kết nối mạng
+profiler-popup-presets-power-description = Giá trị đặt trước để điều tra lỗi sử dụng điện trong { -brand-shorter-name }, với chi phí thấp.
+# "Power" is used in the sense of energy (electricity used by the computer).
+profiler-popup-presets-power-label =
+ .label = Nguồn điện
+profiler-popup-presets-custom-label =
+ .label = Tùy chỉnh
+
+## History panel
+
+appmenu-manage-history =
+ .label = Quản lý lịch sử
+appmenu-reopen-all-tabs = Mở lại tất cả các thẻ
+appmenu-reopen-all-windows = Mở lại tất cả các cửa sổ
+appmenu-restore-session =
+ .label = Khôi phục phiên làm việc trước
+appmenu-clear-history =
+ .label = Xóa lịch sử gần đây…
+appmenu-recent-history-subheader = Lịch sử gần đây
+appmenu-recently-closed-tabs =
+ .label = Thẻ mới đóng gần đây
+appmenu-recently-closed-windows =
+ .label = Các cửa sổ mới đóng
+
+## Help panel
+
+appmenu-help-header =
+ .title = Trợ giúp { -brand-shorter-name }
+appmenu-about =
+ .label = Về { -brand-shorter-name }
+ .accesskey = A
+appmenu-get-help =
+ .label = Nhận trợ giúp
+ .accesskey = H
+appmenu-help-more-troubleshooting-info =
+ .label = Thông tin xử lý sự cố khác
+ .accesskey = T
+appmenu-help-report-site-issue =
+ .label = Báo cáo vấn đề về trang…
+appmenu-help-share-ideas =
+ .label = Chia sẻ ý tưởng và phản hồi…
+ .accesskey = S
+
+## appmenu-help-enter-troubleshoot-mode and appmenu-help-exit-troubleshoot-mode
+## are mutually exclusive, so it's possible to use the same accesskey for both.
+
+appmenu-help-enter-troubleshoot-mode2 =
+ .label = Chế độ xử lý sự cố…
+ .accesskey = M
+appmenu-help-exit-troubleshoot-mode =
+ .label = Tắt chế độ xử lý sự cố
+ .accesskey = M
+
+## appmenu-help-report-deceptive-site and appmenu-help-not-deceptive
+## are mutually exclusive, so it's possible to use the same accesskey for both.
+
+appmenu-help-report-deceptive-site =
+ .label = Báo cáo trang lừa đảo…
+ .accesskey = c
+appmenu-help-not-deceptive =
+ .label = Đây không phải là một trang lừa đảo…
+ .accesskey = d
+
+## More Tools
+
+appmenu-customizetoolbar =
+ .label = Tùy biến thanh công cụ…
+appmenu-developer-tools-subheader = Công cụ của trình duyệt
+appmenu-developer-tools-extensions =
+ .label = Tiện ích mở rộng dành cho nhà phát triển
diff --git a/l10n-vi/browser/browser/branding/brandings.ftl b/l10n-vi/browser/browser/branding/brandings.ftl
new file mode 100644
index 0000000000..86c770737a
--- /dev/null
+++ b/l10n-vi/browser/browser/branding/brandings.ftl
@@ -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/.
+
+
+## The following feature names must be treated as a brand.
+##
+## They cannot be:
+## - Transliterated.
+## - Translated.
+##
+## Declension should be avoided where possible, leaving the original
+## brand unaltered in prominent UI positions.
+##
+## For further details, consult:
+## https://mozilla-l10n.github.io/styleguides/mozilla_general/#brands-copyright-and-trademark
+
+-facebook-container-brand-name = Facebook Container
+-lockwise-brand-name = Firefox Lockwise
+-lockwise-brand-short-name = Lockwise
+-monitor-brand-name = Firefox Monitor
+-monitor-brand-short-name = Monitor
+-pocket-brand-name = Pocket
+-send-brand-name = Firefox Send
+-screenshots-brand-name = Firefox Screenshots
+-mozilla-vpn-brand-name = Mozilla VPN
+-profiler-brand-name = Firefox Profiler
+-translations-brand-name = Firefox Translations
+-rally-brand-name = Mozilla Rally
+-rally-short-name = Rally
+-focus-brand-name = Firefox Focus
+
+# “Suggest” can be localized, “Firefox” must be treated as a brand
+# and kept in English.
+-firefox-suggest-brand-name = Đề xuất của Firefox
+
+# ”Home" can be localized, “Firefox” must be treated as a brand
+# and kept in English.
+-firefox-home-brand-name = Trang chủ Firefox
+
+# View" can be localized, “Firefox” must be treated as a brand
+# and kept in English.
+-firefoxview-brand-name = Firefox View
+
+-relay-brand-name = Firefox Relay
+-relay-brand-short-name = Relay
diff --git a/l10n-vi/browser/browser/branding/sync-brand.ftl b/l10n-vi/browser/browser/branding/sync-brand.ftl
new file mode 100644
index 0000000000..f42ef6095a
--- /dev/null
+++ b/l10n-vi/browser/browser/branding/sync-brand.ftl
@@ -0,0 +1,7 @@
+# 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/.
+
+# “Account” can be localized, “Firefox” must be treated as a brand,
+# and kept in English.
+-fxaccount-brand-name = Tài khoản Firefox
diff --git a/l10n-vi/browser/browser/browser.ftl b/l10n-vi/browser/browser/browser.ftl
new file mode 100644
index 0000000000..c682a10fd4
--- /dev/null
+++ b/l10n-vi/browser/browser/browser.ftl
@@ -0,0 +1,960 @@
+# 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/.
+
+
+## The main browser window's title
+
+# These are the default window titles everywhere except macOS. The first two
+# attributes are used when the web content opened has no title:
+#
+# default - "Mozilla Firefox"
+# private - "Mozilla Firefox (Private Browsing)"
+#
+# The last two are for use when there *is* a content title.
+# Variables:
+# $content-title (String): the title of the web content.
+browser-main-window =
+ .data-title-default = { -brand-full-name }
+ .data-title-private = { -brand-full-name } (Duyệt web riêng tư)
+ .data-content-title-default = { $content-title } - { -brand-full-name }
+ .data-content-title-private = { $content-title } - { -brand-full-name } (Duyệt web riêng tư)
+# These are the default window titles on macOS. The first two are for use when
+# there is no content title:
+#
+# "default" - "Mozilla Firefox"
+# "private" - "Mozilla Firefox — (Private Browsing)"
+#
+# The last two are for use when there *is* a content title.
+# Do not use the brand name in the last two attributes, as we do on non-macOS.
+#
+# Also note the other subtle difference here: we use a `-` to separate the
+# brand name from `(Private Browsing)`, which does not happen on other OSes.
+#
+# Variables:
+# $content-title (String): the title of the web content.
+browser-main-window-mac =
+ .data-title-default = { -brand-full-name }
+ .data-title-private = { -brand-full-name } - (Duyệt web riêng tư)
+ .data-content-title-default = { $content-title }
+ .data-content-title-private = { $content-title } - (Duyệt web riêng tư)
+# These are the default window titles everywhere except macOS. The first two
+# attributes are used when the web content opened has no title:
+#
+# default - "Mozilla Firefox"
+# private - "Mozilla Firefox (Private Browsing)"
+#
+# The last two are for use when there *is* a content title.
+# Variables:
+# $content-title (String): the title of the web content.
+browser-main-window-window-titles =
+ .data-title-default = { -brand-full-name }
+ .data-title-private = { -brand-full-name } duyệt web riêng tư
+ .data-content-title-default = { $content-title } — { -brand-full-name }
+ .data-content-title-private = { $content-title } — { -brand-full-name } duyệt web riêng tư
+# These are the default window titles on macOS. The first two are for use when
+# there is no content title:
+#
+# "default" - "Mozilla Firefox"
+# "private" - "Mozilla Firefox — (Private Browsing)"
+#
+# The last two are for use when there *is* a content title.
+# Do not use the brand name in the last two attributes, as we do on non-macOS.
+#
+# Also note the other subtle difference here: we use a `-` to separate the
+# brand name from `(Private Browsing)`, which does not happen on other OSes.
+#
+# Variables:
+# $content-title (String): the title of the web content.
+browser-main-window-mac-window-titles =
+ .data-title-default = { -brand-full-name }
+ .data-title-private = { -brand-full-name } — Duyệt web riêng tư
+ .data-content-title-default = { $content-title }
+ .data-content-title-private = { $content-title } — Duyệt web riêng tư
+# This gets set as the initial title, and is overridden as soon as we start
+# updating the titlebar based on loaded tabs or private browsing state.
+# This should match the `data-title-default` attribute in both
+# `browser-main-window` and `browser-main-window-mac`.
+browser-main-window-title = { -brand-full-name }
+# The non-variable portion of this MUST match the translation of
+# "PRIVATE_BROWSING_SHORTCUT_TITLE" in custom.properties
+private-browsing-shortcut-text-2 = { -brand-shortcut-name } duyệt web riêng tư
+
+##
+
+urlbar-identity-button =
+ .aria-label = Xem thông tin trang
+
+## Tooltips for images appearing in the address bar
+
+urlbar-services-notification-anchor =
+ .tooltiptext = Mở bảng thông báo cài đặt
+urlbar-web-notification-anchor =
+ .tooltiptext = Thay đổi liệu bạn có thể nhận thông báo từ trang web hay không
+urlbar-midi-notification-anchor =
+ .tooltiptext = Mở bảng MIDI
+urlbar-eme-notification-anchor =
+ .tooltiptext = Quản lý sử dụng phần mềm DRM
+urlbar-web-authn-anchor =
+ .tooltiptext = Mở bảng điều khiển xác thực web
+urlbar-canvas-notification-anchor =
+ .tooltiptext = Quản lý quyền khai thác canvas
+urlbar-web-rtc-share-microphone-notification-anchor =
+ .tooltiptext = Quản lý chia sẻ micrô của bạn với trang
+urlbar-default-notification-anchor =
+ .tooltiptext = Mở bảng thông báo
+urlbar-geolocation-notification-anchor =
+ .tooltiptext = Mở bảng yêu cầu vị trí
+urlbar-xr-notification-anchor =
+ .tooltiptext = Mở bảng điều khiển thực tế ảo
+urlbar-storage-access-anchor =
+ .tooltiptext = Mở bảng điều khiển quyền hoạt động duyệt web
+urlbar-translate-notification-anchor =
+ .tooltiptext = Dịch trang này
+urlbar-web-rtc-share-screen-notification-anchor =
+ .tooltiptext = Quản lý chia sẻ cửa sổ hay màn hình của bạn với trang
+urlbar-indexed-db-notification-anchor =
+ .tooltiptext = Mở bảng thông báo lưu trữ ngoại tuyến
+urlbar-password-notification-anchor =
+ .tooltiptext = Mở bảng thông báo lưu mật khẩu
+urlbar-translated-notification-anchor =
+ .tooltiptext = Quản lý việc dịch trang
+urlbar-plugins-notification-anchor =
+ .tooltiptext = Quản lý sử dụng phần bổ trợ
+urlbar-web-rtc-share-devices-notification-anchor =
+ .tooltiptext = Quản lý chia sẻ máy ảnh và/hoặc micrô với trang
+# "Speakers" is used in a general sense that might include headphones or
+# another audio output connection.
+urlbar-web-rtc-share-speaker-notification-anchor =
+ .tooltiptext = Quản lý việc chia sẻ các thiết bị âm thanh khác với trang web
+urlbar-autoplay-notification-anchor =
+ .tooltiptext = Mở bảng điều khiển tự động phát
+urlbar-persistent-storage-notification-anchor =
+ .tooltiptext = Lưu dữ liệu vào bộ nhớ lâu dài
+urlbar-addons-notification-anchor =
+ .tooltiptext = Mở bảng thông báo cài đặt tiện ích
+urlbar-tip-help-icon =
+ .title = Trợ giúp
+urlbar-search-tips-confirm = OK, đã hiểu
+urlbar-search-tips-confirm-short = Đã hiểu
+# Read out before Urlbar Tip text content so screenreader users know the
+# subsequent text is a tip offered by the browser. It should end in a colon or
+# localized equivalent.
+urlbar-tip-icon-description =
+ .alt = Mẹo:
+urlbar-result-menu-button =
+ .title = Mở menu
+urlbar-result-menu-remove-from-history =
+ .label = Xóa khỏi lịch sử
+ .accesskey = R
+urlbar-result-menu-tip-get-help =
+ .label = Nhận trợ giúp
+ .accesskey = h
+
+## Prompts users to use the Urlbar when they open a new tab or visit the
+## homepage of their default search engine.
+## Variables:
+## $engineName (String): The name of the user's default search engine. e.g. "Google" or "DuckDuckGo".
+
+urlbar-search-tips-onboard = Nhập ít hơn, tìm thêm: Tìm kiếm { $engineName } ngay từ thanh địa chỉ của bạn.
+urlbar-search-tips-redirect-2 = Bắt đầu tìm kiếm của bạn trong thanh địa chỉ để xem các đề xuất từ { $engineName } và lịch sử duyệt web của bạn.
+# Make sure to match the name of the Search panel in settings.
+urlbar-search-tips-persist = Việc tìm kiếm trở nên đơn giản hơn. Hãy thử làm cho tìm kiếm của bạn cụ thể hơn ở đây trong thanh địa chỉ. Để hiển thị URL, hãy tìm đến mục Tìm kiếm trong cài đặt.
+# Prompts users to use the Urlbar when they are typing in the domain of a
+# search engine, e.g. google.com or amazon.com.
+urlbar-tabtosearch-onboard = Chọn phím tắt này để tìm những gì bạn cần nhanh hơn.
+
+## Local search mode indicator labels in the urlbar
+
+urlbar-search-mode-bookmarks = Dấu trang
+urlbar-search-mode-tabs = Thẻ
+urlbar-search-mode-history = Lịch sử
+urlbar-search-mode-actions = Hành động
+
+##
+
+urlbar-geolocation-blocked =
+ .tooltiptext = Bạn đã chặn thông tin địa điểm ở trang này.
+urlbar-xr-blocked =
+ .tooltiptext = Bạn đã chặn truy cập thiết bị thực tế ảo cho trang web này.
+urlbar-web-notifications-blocked =
+ .tooltiptext = Bạn đã chặn thông báo ở trang này.
+urlbar-camera-blocked =
+ .tooltiptext = Bạn đã chặn camera của mình ở trang này
+urlbar-microphone-blocked =
+ .tooltiptext = Bạn đã chặn micro của mình ở trang này
+urlbar-screen-blocked =
+ .tooltiptext = Bạn đã chặn việc chia sẻ màn hình của mình với trang web này.
+urlbar-persistent-storage-blocked =
+ .tooltiptext = Bạn đã chặn lưu dữ liệu lâu dài ở trang này.
+urlbar-popup-blocked =
+ .tooltiptext = Bạn đã chặn cửa sổ bật lên ở trang web này.
+urlbar-autoplay-media-blocked =
+ .tooltiptext = Bạn đã chặn phương tiện tự động phát có âm thanh cho trang web này.
+urlbar-canvas-blocked =
+ .tooltiptext = Bạn đã chặn khai thác dữ liệu canvas đối với trang web này.
+urlbar-midi-blocked =
+ .tooltiptext = Bạn đã chặn quyền truy cập MIDI của trang web này.
+urlbar-install-blocked =
+ .tooltiptext = Bạn đã chặn cài đặt tiện ích cho trang web này.
+# Variables
+# $shortcut (String) - A keyboard shortcut for the edit bookmark command.
+urlbar-star-edit-bookmark =
+ .tooltiptext = Chỉnh sửa dấu trang này ({ $shortcut })
+# Variables
+# $shortcut (String) - A keyboard shortcut for the add bookmark command.
+urlbar-star-add-bookmark =
+ .tooltiptext = Đánh dấu trang này ({ $shortcut })
+
+## Page Action Context Menu
+
+page-action-manage-extension =
+ .label = Quản lý tiện ích mở rộng…
+page-action-remove-extension =
+ .label = Xóa tiện ích mở rộng
+page-action-manage-extension2 =
+ .label = Quản lý tiện ích mở rộng…
+ .accesskey = E
+page-action-remove-extension2 =
+ .label = Xóa tiện ích mở rộng
+ .accesskey = v
+
+## Auto-hide Context Menu
+
+full-screen-autohide =
+ .label = Ẩn thanh công cụ
+ .accesskey = H
+full-screen-exit =
+ .label = Thoát chế độ toàn màn hình
+ .accesskey = F
+
+## Search Engine selection buttons (one-offs)
+
+# This string prompts the user to use the list of search shortcuts in
+# the Urlbar and searchbar.
+search-one-offs-with-title = Lần này, tìm kiếm với:
+search-one-offs-change-settings-compact-button =
+ .tooltiptext = Thay đổi cài đặt tìm kiếm
+search-one-offs-context-open-new-tab =
+ .label = Tìm trong thẻ mới
+ .accesskey = T
+search-one-offs-context-set-as-default =
+ .label = Đặt làm công cụ tìm kiếm mặc định
+ .accesskey = D
+search-one-offs-context-set-as-default-private =
+ .label = Đặt làm công cụ tìm kiếm mặc định cho cửa sổ riêng tư
+ .accesskey = P
+# Search engine one-off buttons with an @alias shortcut/keyword.
+# Variables:
+# $engineName (String): The name of the engine.
+# $alias (String): The @alias shortcut/keyword.
+search-one-offs-engine-with-alias =
+ .tooltiptext = { $engineName } ({ $alias })
+# Shown when adding new engines from the address bar shortcut buttons or context
+# menu, or from the search bar shortcut buttons.
+# Variables:
+# $engineName (String): The name of the engine.
+search-one-offs-add-engine =
+ .label = Thêm “{ $engineName }”
+ .tooltiptext = Thêm công cụ tìm kiếm “{ $engineName }”
+ .aria-label = Thêm công cụ tìm kiếm “{ $engineName }”
+# When more than 5 engines are offered by a web page, they are grouped in a
+# submenu using this as its label.
+search-one-offs-add-engine-menu =
+ .label = Thêm dịch vụ tìm kiếm
+
+## Local search mode one-off buttons
+## Variables:
+## $restrict (String): The restriction token corresponding to the search mode.
+## Restriction tokens are special characters users can type in the urlbar to
+## restrict their searches to certain sources (e.g., "*" to search only
+## bookmarks).
+
+search-one-offs-bookmarks =
+ .tooltiptext = Dấu trang ({ $restrict })
+search-one-offs-tabs =
+ .tooltiptext = Thẻ ({ $restrict })
+search-one-offs-history =
+ .tooltiptext = Lịch sử ({ $restrict })
+search-one-offs-actions =
+ .tooltiptext = Hành động ({ $restrict })
+
+## QuickActions are shown in the urlbar as the user types a matching string
+## The -cmd- strings are comma separated list of keywords that will match
+## the action.
+
+# Opens the about:addons page in the home / recommendations section
+quickactions-addons = Xem tiện tích
+quickactions-cmd-addons2 = tiện ích
+# Opens the bookmarks library window
+quickactions-bookmarks2 = Quản lý dấu trang
+quickactions-cmd-bookmarks = dấu trang, dau trang
+# Opens a SUMO article explaining how to clear history
+quickactions-clearhistory = Xóa lịch sử
+quickactions-cmd-clearhistory = xóa lịch sử, xoa lich su
+# Opens about:downloads page
+quickactions-downloads2 = Xem tải xuống
+quickactions-cmd-downloads = tải xuống, tai xuong
+# Opens about:addons page in the extensions section
+quickactions-extensions = Quản lý tiện ích
+quickactions-cmd-extensions = tiện ích mở rộng
+# Opens the devtools web inspector
+quickactions-inspector2 = Mở Công cụ dành cho nhà phát triển
+quickactions-cmd-inspector = trình kiểm tra, devtools, trinh kiem tra
+# Opens about:logins
+quickactions-logins2 = Quản lý mật khẩu
+quickactions-cmd-logins = đăng nhập, thông tin đăng nhập, mật khẩu, dang nhap, thong tin dang nhap, mat khau
+# Opens about:addons page in the plugins section
+quickactions-plugins = Quản lý phần bổ trợ
+quickactions-cmd-plugins = phần bổ trợ
+# Opens the print dialog
+quickactions-print2 = Trang in
+quickactions-cmd-print = in
+# Opens a new private browsing window
+quickactions-private2 = Mở cửa sổ riêng tư
+quickactions-cmd-private = duyệt web riêng tư, duyet web rieng tu
+# Opens a SUMO article explaining how to refresh
+quickactions-refresh = Làm mới { -brand-short-name }
+quickactions-cmd-refresh = làm mới, lam moi
+# Restarts the browser
+quickactions-restart = Khởi động lại { -brand-short-name }
+quickactions-cmd-restart = khởi động lại, khoi dong lai
+# Opens the screenshot tool
+quickactions-screenshot3 = Chụp ảnh màn hình
+quickactions-cmd-screenshot = chụp ảnh màn hình, chup anh man hinh
+# Opens about:preferences
+quickactions-settings2 = Quản lý cài đặt
+quickactions-cmd-settings = cài đặt, tùy chọn, thiết lập, cai dat, tuy chon, thiet lap
+# Opens about:addons page in the themes section
+quickactions-themes = Quản lý chủ đề
+quickactions-cmd-themes = chủ đề
+# Opens a SUMO article explaining how to update the browser
+quickactions-update = Cập nhật { -brand-short-name }
+quickactions-cmd-update = cập nhật, cap nhat
+# Opens the view-source UI with current pages source
+quickactions-viewsource2 = Xem mã nguồn trang
+quickactions-cmd-viewsource = xem mã nguồn, xem nguồn, nguồn, xem ma nguon, xem nguon, nguon
+# Tooltip text for the help button shown in the result.
+quickactions-learn-more =
+ .title = Tìm hiểu thêm về Hành động nhanh
+
+## Bookmark Panel
+
+bookmarks-add-bookmark = Thêm dấu trang
+bookmarks-edit-bookmark = Chỉnh sửa dấu trang
+bookmark-panel-cancel =
+ .label = Hủy bỏ
+ .accesskey = C
+# Variables:
+# $count (number): number of bookmarks that will be removed
+bookmark-panel-remove =
+ .label = Xóa { $count } dấu trang
+ .accesskey = R
+bookmark-panel-show-editor-checkbox =
+ .label = Hiển thị trình chỉnh sửa khi lưu
+ .accesskey = S
+bookmark-panel-save-button =
+ .label = Lưu
+# Width of the bookmark panel.
+# Should be large enough to fully display the Done and
+# Cancel/Remove Bookmark buttons.
+bookmark-panel =
+ .style = min-width: 23em
+
+## Identity Panel
+
+# Variables
+# $host (String): the hostname of the site that is being displayed.
+identity-site-information = Thông tin trang web { $host }
+# Variables
+# $host (String): the hostname of the site that is being displayed.
+identity-header-security-with-host =
+ .title = Bảo mật kết nối cho { $host }
+identity-connection-not-secure = Kết nối không an toàn
+identity-connection-secure = Kết nối an toàn
+identity-connection-failure = Kết nối thất bại
+identity-connection-internal = Đây là một trang an toàn của { -brand-short-name }
+identity-connection-file = Trang này đã được lưu ở máy tính của bạn.
+identity-extension-page = Trang này được tải từ một tiện ích mở rộng.
+identity-active-blocked = { -brand-short-name } đã chặn những phần không an toàn của trang này.
+identity-custom-root = Kết nối được xác minh bởi nhà phát hành chứng chỉ không được Mozilla công nhận.
+identity-passive-loaded = Có nhiều thành phân của trang không an toàn (ví dụ như ảnh).
+identity-active-loaded = Bạn đã tắt tính năng bảo vệ trên trang này.
+identity-weak-encryption = Trang này sử dụng mã hóa yếu.
+identity-insecure-login-forms = Đăng nhập vào trang này bạn có thể bị xâm nhập.
+identity-https-only-connection-upgraded = (đã nâng cấp lên HTTPS)
+identity-https-only-label = Chế độ chỉ HTTPS
+identity-https-only-dropdown-on =
+ .label = Bật
+identity-https-only-dropdown-off =
+ .label = Tắt
+identity-https-only-dropdown-off-temporarily =
+ .label = Tắt tạm thời
+identity-https-only-info-turn-on2 = Bật Chế độ chỉ HTTPS cho trang web này nếu bạn muốn { -brand-short-name } nâng cấp kết nối khi có thể.
+identity-https-only-info-turn-off2 = Nếu trang có vẻ bị hỏng, bạn có thể tắt Chế độ chỉ HTTPS để trang web này tải lại sử dụng HTTP không an toàn.
+identity-https-only-info-no-upgrade = Không thể nâng cấp kết nối từ HTTP.
+identity-permissions-storage-access-header = Cookie trên nhiều trang web
+identity-permissions-storage-access-hint = Khi bạn mở trang web này, các trang web này có thể sử dụng cookie trên nhiều trang web và lấy thông tin của bạn trên trang web này.
+identity-permissions-storage-access-learn-more = Tìm hiểu thêm
+identity-permissions-reload-hint = Bạn có thể cần phải tải lại trang để các thay đổi được áp dụng.
+identity-clear-site-data =
+ .label = Xóa cookie và dữ liệu trang web…
+identity-connection-not-secure-security-view = Bạn không được kết nối an toàn với trang web này.
+identity-connection-verified = Bạn đang kết nối an toàn tới trang này.
+identity-ev-owner-label = Chứng nhận được cấp cho:
+identity-description-custom-root = Mozilla không công nhận nhà phát hành chứng nhận này. Nó có thể đã được thêm từ hệ điều hành của bạn hoặc bởi quản trị viên.
+identity-remove-cert-exception =
+ .label = Loại bỏ ngoại lệ
+ .accesskey = R
+identity-description-insecure = Kết nối của bạn đến trang này không được bảo mật. Thông tin bạn gửi có thể bị thấy bởi người khác (ví dụ như mật khẩu, tin nhắn, thẻ tín dụng).
+identity-description-insecure-login-forms = Thông tin đăng nhập mà bạn nhập vào trên trang này không an toàn và có thể bị xâm nhập.
+identity-description-weak-cipher-intro = Kết nối đến trang này sử dụng mã hóa yếu và không bảo mật.
+identity-description-weak-cipher-risk = Người khác có thể thấy thông tin của bạn hoặc thay đổi hành vi của trang.
+identity-description-active-blocked = { -brand-short-name } đã chặn những phần không an toàn của trang này.
+identity-description-passive-loaded = Kết nối không được bảo mật và thông tin bạn chia sẻ với trang này có thể bị thấy bởi người khác.
+identity-description-passive-loaded-insecure = Trang web này chứa nội dung không an toàn (ví dụ: ảnh).
+identity-description-passive-loaded-mixed = Dù { -brand-short-name } đã chặn một số nội dung, vẫn có những nội dung trên trang không an toàn (ví dụ: ảnh).
+identity-description-active-loaded = Trang web này chứa nội dung không an toàn (ví dụ: các đoạn mã) và kết nối tới nội dung này không bảo mật.
+identity-description-active-loaded-insecure = Thông tin bạn chia sẻ với trang này có thể bị thấy bởi người khác (ví dụ: mật khẩu, tin nhắn, thẻ tín dụng, vâng vâng).
+identity-learn-more =
+ .value = Tìm hiểu thêm
+identity-disable-mixed-content-blocking =
+ .label = Tạm thời tắt bảo vệ
+ .accesskey = D
+identity-enable-mixed-content-blocking =
+ .label = Bật bảo vệ
+ .accesskey = E
+identity-more-info-link-text =
+ .label = Thông tin thêm
+
+## Window controls
+
+browser-window-minimize-button =
+ .tooltiptext = Thu nhỏ
+browser-window-maximize-button =
+ .tooltiptext = Cực đại hoá
+browser-window-restore-down-button =
+ .tooltiptext = Khôi phục kích thước
+browser-window-close-button =
+ .tooltiptext = Đóng
+
+## Tab actions
+
+# This label should be written in all capital letters if your locale supports them.
+browser-tab-audio-playing2 = ĐANG PHÁT
+# This label should be written in all capital letters if your locale supports them.
+browser-tab-audio-muted2 = ĐÃ TẮT TIẾNG
+# This label should be written in all capital letters if your locale supports them.
+browser-tab-audio-blocked = TỰ ĐỘNG PHÁT BỊ CHẶN
+# This label should be written in all capital letters if your locale supports them.
+browser-tab-audio-pip = HÌNH TRONG HÌNH
+
+## These labels should be written in all capital letters if your locale supports them.
+## Variables:
+## $count (number): number of affected tabs
+
+browser-tab-mute =
+ { $count ->
+ [1] TẮT TIẾNG THẺ
+ *[other] TẮT TIẾNG { $count } THẺ
+ }
+browser-tab-unmute =
+ { $count ->
+ [1] BỎ TẮT TIẾNG THẺ
+ *[other] BỎ TẮT TIẾNG { $count } THẺ
+ }
+browser-tab-unblock =
+ { $count ->
+ [1] PHÁT THẺ
+ *[other] PHÁT { $count } THẺ
+ }
+
+## Bookmarks toolbar items
+
+browser-import-button2 =
+ .label = Nhập dấu trang…
+ .tooltiptext = Nhập dấu trang từ trình duyệt khác sang { -brand-short-name }.
+bookmarks-toolbar-empty-message = Để truy cập nhanh, hãy đặt dấu trang của bạn tại đây trên thanh công cụ dấu trang. Quản lý dấu trang…
+
+## WebRTC Pop-up notifications
+
+popup-select-camera-device =
+ .value = Máy ảnh:
+ .accesskey = C
+popup-select-camera-icon =
+ .tooltiptext = Máy ảnh
+popup-select-microphone-device =
+ .value = Micrô:
+ .accesskey = M
+popup-select-microphone-icon =
+ .tooltiptext = Micrô
+popup-select-speaker-icon =
+ .tooltiptext = Loa
+popup-select-window-or-screen =
+ .label = Cửa sổ hoặc màn hình:
+ .accesskey = W
+popup-all-windows-shared = Tất cả các cửa sổ trên màn hình sẽ được chia sẻ.
+popup-screen-sharing-block =
+ .label = Chặn
+ .accesskey = B
+popup-screen-sharing-always-block =
+ .label = Luôn chặn
+ .accesskey = w
+popup-mute-notifications-checkbox = Ẩn thông báo trang web khi chia sẻ
+
+## WebRTC window or screen share tab switch warning
+
+sharing-warning-window = Bạn đang chia sẻ { -brand-short-name }. Người khác có thể thấy khi bạn chuyển sang một thẻ mới.
+sharing-warning-screen = Bạn đang chia sẻ toàn bộ màn hình của bạn. Người khác có thể thấy khi bạn chuyển sang một thẻ mới.
+sharing-warning-proceed-to-tab =
+ .label = Tiếp tục với thẻ
+sharing-warning-disable-for-session =
+ .label = Vô hiệu hóa bảo vệ chia sẻ cho phiên này
+
+## DevTools F12 popup
+
+enable-devtools-popup-description = Để sử dụng phím tắt F12, trước tiên hãy mở DevTools thông qua menu Nhà phát triển Web.
+enable-devtools-popup-description2 = Để sử dụng phím tắt F12, trước tiên hãy mở Công cụ phát triển web qua menu Công cụ trình duyệt.
+
+## URL Bar
+
+# This placeholder is used when not in search mode and the user's default search
+# engine is unknown.
+urlbar-placeholder =
+ .placeholder = Nhập địa chỉ hoặc từ khóa tìm kiếm
+# This placeholder is used in search mode with search engines that search the
+# entire web.
+# Variables
+# $name (String): the name of a search engine that searches the entire Web
+# (e.g. Google).
+urlbar-placeholder-search-mode-web-2 =
+ .placeholder = Tìm kiếm trên mạng
+ .aria-label = Tìm kiếm với { $name }
+# This placeholder is used in search mode with search engines that search a
+# specific site (e.g., Amazon).
+# Variables
+# $name (String): the name of a search engine that searches a specific site
+# (e.g. Amazon).
+urlbar-placeholder-search-mode-other-engine =
+ .placeholder = Nhập từ tìm kiếm
+ .aria-label = Tìm kiếm { $name }
+# This placeholder is used when searching bookmarks.
+urlbar-placeholder-search-mode-other-bookmarks =
+ .placeholder = Nhập từ tìm kiếm
+ .aria-label = Tìm kiếm dấu trang
+# This placeholder is used when searching history.
+urlbar-placeholder-search-mode-other-history =
+ .placeholder = Nhập từ tìm kiếm
+ .aria-label = Tìm kiếm lịch sử
+# This placeholder is used when searching open tabs.
+urlbar-placeholder-search-mode-other-tabs =
+ .placeholder = Nhập từ tìm kiếm
+ .aria-label = Tìm kiếm thẻ
+# This placeholder is used when searching quick actions.
+urlbar-placeholder-search-mode-other-actions =
+ .placeholder = Nhập từ tìm kiếm
+ .aria-label = Tìm kiếm hành động
+# Variables
+# $name (String): the name of the user's default search engine
+urlbar-placeholder-with-name =
+ .placeholder = Tìm kiếm với { $name } hoặc nhập địa chỉ
+# Variables
+# $component (String): the name of the component which forces remote control.
+# Example: "DevTools", "Marionette", "RemoteAgent".
+urlbar-remote-control-notification-anchor2 =
+ .tooltiptext = Trình duyệt đang được điều khiển từ xa (lý do: { $component })
+urlbar-permissions-granted =
+ .tooltiptext = Bạn đã cấp cho trang web này các quyền bổ sung.
+urlbar-switch-to-tab =
+ .value = Chuyển qua thẻ:
+# Used to indicate that a selected autocomplete entry is provided by an extension.
+urlbar-extension =
+ .value = Tiện ích mở rộng:
+urlbar-go-button =
+ .tooltiptext = Mở trang trong thanh địa chỉ
+urlbar-page-action-button =
+ .tooltiptext = Hành động trên trang
+
+## Action text shown in urlbar results, usually appended after the search
+## string or the url, like "result value - action text".
+
+# Used when the private browsing engine differs from the default engine.
+# The "with" format was chosen because the search engine name can end with
+# "Search", and we would like to avoid strings like "Search MSN Search".
+# Variables
+# $engine (String): the name of a search engine
+urlbar-result-action-search-in-private-w-engine = Tìm kiếm với { $engine } trong cửa sổ riêng tư
+# Used when the private browsing engine is the same as the default engine.
+urlbar-result-action-search-in-private = Tìm kiếm trong cửa sổ riêng tư
+# The "with" format was chosen because the search engine name can end with
+# "Search", and we would like to avoid strings like "Search MSN Search".
+# Variables
+# $engine (String): the name of a search engine
+urlbar-result-action-search-w-engine = Tìm với { $engine }
+urlbar-result-action-sponsored = Được tài trợ
+urlbar-result-action-switch-tab = Chuyển sang thẻ
+urlbar-result-action-visit = Truy cập
+# Directs a user to press the Tab key to perform a search with the specified
+# engine.
+# Variables
+# $engine (String): the name of a search engine that searches the entire Web
+# (e.g. Google).
+urlbar-result-action-before-tabtosearch-web = Nhấn Tab để tìm kiếm bằng { $engine }
+# Directs a user to press the Tab key to perform a search with the specified
+# engine.
+# Variables
+# $engine (String): the name of a search engine that searches a specific site
+# (e.g. Amazon).
+urlbar-result-action-before-tabtosearch-other = Nhấn Tab để tìm kiếm { $engine }
+# Variables
+# $engine (String): the name of a search engine that searches the entire Web
+# (e.g. Google).
+urlbar-result-action-tabtosearch-web = Tìm kiếm với { $engine } trực tiếp từ thanh địa chỉ
+# Variables
+# $engine (String): the name of a search engine that searches a specific site
+# (e.g. Amazon).
+urlbar-result-action-tabtosearch-other-engine = Tìm kiếm { $engine } trực tiếp từ thanh địa chỉ
+# Action text for copying to clipboard.
+urlbar-result-action-copy-to-clipboard = Sao chép
+# Shows the result of a formula expression being calculated, the last = sign will be shown
+# as part of the result (e.g. "= 2").
+# Variables
+# $result (String): the string representation for a formula result
+urlbar-result-action-calculator-result = = { $result }
+
+## Action text shown in urlbar results, usually appended after the search
+## string or the url, like "result value - action text".
+## In these actions "Search" is a verb, followed by where the search is performed.
+
+urlbar-result-action-search-bookmarks = Tìm kiếm dấu trang
+urlbar-result-action-search-history = Tìm kiếm lịch sử
+urlbar-result-action-search-tabs = Tìm kiếm thẻ
+urlbar-result-action-search-actions = Tìm kiếm hành động
+
+## Labels shown above groups of urlbar results
+
+# A label shown above the "Firefox Suggest" (bookmarks/history) group in the
+# urlbar results.
+urlbar-group-firefox-suggest =
+ .label = { -firefox-suggest-brand-name }
+# A label shown above the search suggestions group in the urlbar results. It
+# should use sentence case.
+# Variables
+# $engine (String): the name of the search engine providing the suggestions
+urlbar-group-search-suggestions =
+ .label = Đề xuất của { $engine }
+# A label shown above Quick Actions in the urlbar results.
+urlbar-group-quickactions =
+ .label = Hành động nhanh
+
+## Reader View toolbar buttons
+
+# This should match menu-view-enter-readerview in menubar.ftl
+reader-view-enter-button =
+ .aria-label = Vào chế độ đọc sách
+# This should match menu-view-close-readerview in menubar.ftl
+reader-view-close-button =
+ .aria-label = Đóng chế độ đọc sách
+
+## Full Screen and Pointer Lock UI
+
+# Please ensure that the domain stays in the `` markup.
+# Variables
+# $domain (String): the domain that is full screen, e.g. "mozilla.org"
+fullscreen-warning-domain = { $domain } giờ đã hiển thị toàn màn hình
+fullscreen-warning-no-domain = Trang này giờ đã hiển thị toàn màn hình
+fullscreen-exit-button = Thoát toàn màn hình (Esc)
+# "esc" is lowercase on mac keyboards, but uppercase elsewhere.
+fullscreen-exit-mac-button = Thoát toàn màn hình (esc)
+# Please ensure that the domain stays in the `` markup.
+# Variables
+# $domain (String): the domain that is using pointer-lock, e.g. "mozilla.org"
+pointerlock-warning-domain = { $domain } có quyền điều khiển con trỏ của bạn. Ấn Esc để lấy lại quyền điều khiển.
+pointerlock-warning-no-domain = Trang này có quyền điều khiển con trỏ của bạn. Ấn Esc để lấy lại quyền điều khiển.
+
+## Subframe crash notification
+
+crashed-subframe-message = Một phần của trang này đã bị vớ. Để { -brand-product-name } biết về lỗi này và sửa nó nhanh hơn, vui lòng báo cáo nó.
+# The string for crashed-subframe-title.title should match crashed-subframe-message,
+# but without any markup.
+crashed-subframe-title =
+ .title = Một phần của trang này đã bị lỗi. Để cho { -brand-product-name } biết về vấn đề này và khắc phục sự cố nhanh hơn, vui lòng gửi báo cáo.
+crashed-subframe-learnmore-link =
+ .value = Tìm hiểu thêm
+crashed-subframe-submit =
+ .label = Gửi báo cáo
+ .accesskey = S
+
+## Bookmarks panels, menus and toolbar
+
+bookmarks-manage-bookmarks =
+ .label = Quản lý dấu trang
+bookmarks-recent-bookmarks-panel-subheader = Dấu trang gần đây
+bookmarks-toolbar-chevron =
+ .tooltiptext = Hiển thị thêm dấu trang
+bookmarks-sidebar-content =
+ .aria-label = Dấu trang
+bookmarks-menu-button =
+ .label = Trình đơn dấu trang
+bookmarks-other-bookmarks-menu =
+ .label = Dấu trang khác
+bookmarks-mobile-bookmarks-menu =
+ .label = Dấu trang trên di động
+bookmarks-tools-sidebar-visibility =
+ .label =
+ { $isVisible ->
+ [true] Ẩn thanh lề dấu trang
+ *[other] Hiển thị thanh lề dấu trang
+ }
+bookmarks-tools-toolbar-visibility-menuitem =
+ .label =
+ { $isVisible ->
+ [true] Ẩn thanh công cụ dấu trang
+ *[other] Hiển thị thanh công cụ dấu trang
+ }
+bookmarks-tools-toolbar-visibility-panel =
+ .label =
+ { $isVisible ->
+ [true] Ẩn thanh dấu trang
+ *[other] Hiển thị thanh dấu trang
+ }
+bookmarks-tools-menu-button-visibility =
+ .label =
+ { $isVisible ->
+ [true] Xóa bảng chọn dấu trang từ thanh công cụ
+ *[other] Thêm bảng chọn dấu trang vào thanh công cụ
+ }
+bookmarks-search =
+ .label = Tìm kiếm dấu trang
+bookmarks-tools =
+ .label = Công cụ đánh dấu trang
+bookmarks-bookmark-edit-panel =
+ .label = Chỉnh sửa dấu trang này
+bookmarks-subview-edit-bookmark =
+ .label = Chỉnh sửa dấu trang này…
+# The aria-label is a spoken label that should not include the word "toolbar" or
+# such, because screen readers already know that this container is a toolbar.
+# This avoids double-speaking.
+bookmarks-toolbar =
+ .toolbarname = Thanh dấu trang
+ .accesskey = B
+ .aria-label = Dấu trang
+bookmarks-toolbar-menu =
+ .label = Thanh dấu trang
+bookmarks-toolbar-placeholder =
+ .title = Các mục của thanh dấu trang
+bookmarks-toolbar-placeholder-button =
+ .label = Các mục của thanh dấu trang
+# "Bookmark" is a verb, as in "Add current tab to bookmarks".
+bookmarks-current-tab =
+ .label = Đánh dấu thẻ hiện tại
+# "Bookmark" is a verb, as in "Add current tab to bookmarks".
+bookmarks-subview-bookmark-tab =
+ .label = Đánh dấu thẻ hiện tại…
+
+## Library Panel items
+
+library-bookmarks-menu =
+ .label = Dấu trang
+library-recent-activity-title =
+ .value = Hoạt động gần đây
+
+## Pocket toolbar button
+
+save-to-pocket-button =
+ .label = Lưu vào { -pocket-brand-name }
+ .tooltiptext = Lưu vào { -pocket-brand-name }
+
+## Repair text encoding toolbar button
+
+repair-text-encoding-button =
+ .label = Sửa chữa mã hóa văn bản
+ .tooltiptext = Đoán mã hóa văn bản chính xác từ nội dung trang
+
+## Customize Toolbar Buttons
+
+# Variables:
+# $shortcut (String): keyboard shortcut to open the add-ons manager
+toolbar-addons-themes-button =
+ .label = Tiện ích mở rộng và chủ đề
+ .tooltiptext = Quản lý các tiện ích mở rộng và chủ đề của bạn ({ $shortcut })
+# Variables:
+# $shortcut (String): keyboard shortcut to open settings (only on macOS)
+toolbar-settings-button =
+ .label = Cài đặt
+ .tooltiptext =
+ { PLATFORM() ->
+ [macos] Mở cài đặt ({ $shortcut })
+ *[other] Mở cài đặt
+ }
+toolbar-overflow-customize-button =
+ .label = Tùy biến thanh công cụ…
+ .accesskey = C
+toolbar-button-email-link =
+ .label = Gửi liên kết này qua email
+ .tooltiptext = Gửi một thư điện tử chứa liên kết tới trang này
+# Variables:
+# $shortcut (String): keyboard shortcut to save a copy of the page
+toolbar-button-save-page =
+ .label = Lưu trang
+ .tooltiptext = Lưu trang này ({ $shortcut })
+# Variables:
+# $shortcut (String): keyboard shortcut to open a local file
+toolbar-button-open-file =
+ .label = Mở tập tin
+ .tooltiptext = Mở một tập tin ({ $shortcut })
+toolbar-button-synced-tabs =
+ .label = Các thẻ đã đồng bộ
+ .tooltiptext = Hiện thẻ từ các thiết bị khác
+# Variables
+# $shortcut (string) - Keyboard shortcut to open a new private browsing window
+toolbar-button-new-private-window =
+ .label = Cửa sổ riêng tư mới
+ .tooltiptext = Mở một cửa sổ duyệt web riêng tư mới ({ $shortcut })
+
+## EME notification panel
+
+eme-notifications-drm-content-playing = Một số nguồn audio và video trên trang này có sử dụng phần mềm DRM bảo vệ bản quyền nên một số thao tác có thể bị giới hạn với { -brand-short-name }.
+eme-notifications-drm-content-playing-manage = Quản lý cài đặt
+eme-notifications-drm-content-playing-manage-accesskey = M
+eme-notifications-drm-content-playing-dismiss = Bỏ qua
+eme-notifications-drm-content-playing-dismiss-accesskey = D
+
+## Password save/update panel
+
+panel-save-update-username = Tên đăng nhập
+panel-save-update-password = Mật khẩu
+
+## Add-on removal warning
+
+# Variables:
+# $name (String): The name of the addon that will be removed.
+addon-removal-title = Xóa { $name }?
+addon-removal-abuse-report-checkbox = Báo cáo tiện ích mở rộng này cho { -vendor-short-name }
+
+##
+
+# "More" item in macOS share menu
+menu-share-more =
+ .label = Xem thêm…
+ui-tour-info-panel-close =
+ .tooltiptext = Đóng
+
+## Variables:
+## $uriHost (String): URI host for which the popup was allowed or blocked.
+
+popups-infobar-allow =
+ .label = Cho phép { $uriHost } mở cửa sổ bật lên
+ .accesskey = p
+popups-infobar-block =
+ .label = Chặn cửa sổ bật lên từ { $uriHost }
+ .accesskey = p
+
+##
+
+popups-infobar-dont-show-message =
+ .label = Không hiển thị thông báo này khi có cửa sổ bật lên bị chặn
+ .accesskey = D
+edit-popup-settings =
+ .label = Quản lý cài đặt cửa sổ bật lên…
+ .accesskey = M
+picture-in-picture-hide-toggle =
+ .label = Ẩn nút hình trong hình
+ .accesskey = H
+
+## Since the default position for PiP controls does not change for RTL layout,
+## right-to-left languages should use "Left" and "Right" as in the English strings,
+
+picture-in-picture-move-toggle-right =
+ .label = Chuyển chế độ hình trong hình sang phải
+ .accesskey = R
+picture-in-picture-move-toggle-left =
+ .label = Chuyển chế độ hình trong hình sang trái
+ .accesskey = L
+
+##
+
+
+# Navigator Toolbox
+
+# This string is a spoken label that should not include
+# the word "toolbar" or such, because screen readers already know that
+# this container is a toolbar. This avoids double-speaking.
+navbar-accessible =
+ .aria-label = Điều hướng
+navbar-downloads =
+ .label = Tải xuống
+navbar-overflow =
+ .tooltiptext = Thêm công cụ...
+# Variables:
+# $shortcut (String): keyboard shortcut to print the page
+navbar-print =
+ .label = In
+ .tooltiptext = In trang này… ({ $shortcut })
+navbar-home =
+ .label = Trang chủ
+ .tooltiptext = { -brand-short-name } Trang Chủ
+navbar-library =
+ .label = Thư viện
+ .tooltiptext = Xem lịch sử, dấu trang đã lưu và nhiều hơn nữa
+navbar-search =
+ .title = Tìm kiếm
+navbar-accessibility-indicator =
+ .tooltiptext = Chức năng về khả năng truy cập đã được bật
+# Name for the tabs toolbar as spoken by screen readers. The word
+# "toolbar" is appended automatically and should not be included in
+# in the string
+tabs-toolbar =
+ .aria-label = Thẻ trình duyệt
+tabs-toolbar-new-tab =
+ .label = Thẻ mới
+tabs-toolbar-list-all-tabs =
+ .label = Liệt kê tất cả các thẻ
+ .tooltiptext = Liệt kê tất cả các thẻ
+
+## Infobar shown at startup to suggest session-restore
+
+# will be replaced by the application menu icon
+restore-session-startup-suggestion-message = Đã mở các thẻ trước đó? Bạn có thể khôi phục phiên trước đó của mình từ menu ứng dụng { -brand-short-name } , trong mục Lịch sử.
+restore-session-startup-suggestion-button = Hướng dẫn cho tôi
+
+## Mozilla data reporting notification (Telemetry, Firefox Health Report, etc)
+
+data-reporting-notification-message = { -brand-short-name } tự động gửi dữ liệu về { -vendor-short-name } để chúng tôi có thể cải thiện trải nghiệm của bạn.
+data-reporting-notification-button =
+ .label = Chọn những thứ tôi muốn chia sẻ
+ .accesskey = C
+# Label for the indicator shown in the private browsing window titlebar.
+private-browsing-indicator-label = Duyệt web riêng tư
+
+## Unified extensions (toolbar) button
+
+unified-extensions-button =
+ .label = Tiện ích mở rộng
+ .tooltiptext = Tiện ích mở rộng
+
+## Unified extensions button when permission(s) are needed.
+## Note that the new line is intentionally part of the tooltip.
+
+unified-extensions-button-permissions-needed =
+ .label = Tiện ích mở rộng
+ .tooltiptext =
+ Tiện ích mở rộng
+ Cần yêu cầu quyền hạn
+
+## Autorefresh blocker
+
+refresh-blocked-refresh-label = { -brand-short-name } đã ngăn trang web này tự động tải lại.
+refresh-blocked-redirect-label = { -brand-short-name } đã ngăn trang web này tự động chuyển đến trang khác.
+refresh-blocked-allow =
+ .label = Cho phép
+ .accesskey = A
+
+## Firefox Relay integration
+
+firefox-relay-offer-why-relay = { -relay-brand-name } che dấu địa chỉ email thật của bạn để giúp bảo vệ bạn khỏi rò rỉ dữ liệu và thư rác.
+firefox-relay-offer-how-we-integrate = Bằng cách tiếp tục, bạn sẽ có thể tạo mặt nạ email { -relay-brand-short-name } mới trực tiếp từ trình quản lý mật khẩu { -brand-shorter-name } của mình.
+# Variables:
+# $sitename (String): name of the site where user enters their Relay mask
+# $useremail (String): user email that will receive messages
+firefox-relay-offer-what-relay-does = Chúng tôi sẽ chuyển tiếp tất cả email từ { $sitename } đến { $useremail }.
diff --git a/l10n-vi/browser/browser/browserContext.ftl b/l10n-vi/browser/browser/browserContext.ftl
new file mode 100644
index 0000000000..347c74eba1
--- /dev/null
+++ b/l10n-vi/browser/browser/browserContext.ftl
@@ -0,0 +1,420 @@
+# 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/.
+
+navbar-tooltip-instruction =
+ .value =
+ { PLATFORM() ->
+ [macos] Kéo xuống để xem lịch sử
+ *[other] Nhấn chuột phải hoặc kéo xuống để hiển thị lịch sử
+ }
+
+## Back
+
+# Variables
+# $shortcut (String) - A keyboard shortcut for the Go Back command.
+main-context-menu-back-2 =
+ .tooltiptext = Trở lại trang trước ({ $shortcut })
+ .aria-label = Quay lại
+ .accesskey = B
+# This menuitem is only visible on macOS
+main-context-menu-back-mac =
+ .label = Quay lại
+ .accesskey = B
+navbar-tooltip-back-2 =
+ .value = { main-context-menu-back-2.tooltiptext }
+toolbar-button-back-2 =
+ .label = { main-context-menu-back-2.aria-label }
+
+## Forward
+
+# Variables
+# $shortcut (String) - A keyboard shortcut for the Go Forward command.
+main-context-menu-forward-2 =
+ .tooltiptext = Tiến đến một trang ({ $shortcut })
+ .aria-label = Tiếc tục
+ .accesskey = F
+# This menuitem is only visible on macOS
+main-context-menu-forward-mac =
+ .label = Tiến
+ .accesskey = F
+navbar-tooltip-forward-2 =
+ .value = { main-context-menu-forward-2.tooltiptext }
+toolbar-button-forward-2 =
+ .label = { main-context-menu-forward-2.aria-label }
+
+## Reload
+
+main-context-menu-reload =
+ .aria-label = Tải lại
+ .accesskey = R
+# This menuitem is only visible on macOS
+main-context-menu-reload-mac =
+ .label = Tải lại
+ .accesskey = R
+toolbar-button-reload =
+ .label = { main-context-menu-reload.aria-label }
+
+## Stop
+
+main-context-menu-stop =
+ .aria-label = Dừng
+ .accesskey = S
+# This menuitem is only visible on macOS
+main-context-menu-stop-mac =
+ .label = Dừng
+ .accesskey = S
+toolbar-button-stop =
+ .label = { main-context-menu-stop.aria-label }
+
+## Stop-Reload Button
+
+toolbar-button-stop-reload =
+ .title = { main-context-menu-reload.aria-label }
+
+## Firefox Account Button
+
+toolbar-button-fxaccount =
+ .label = { -fxaccount-brand-name }
+ .tooltiptext = { -fxaccount-brand-name }
+
+## Save Page
+
+main-context-menu-page-save =
+ .label = Lưu trang dưới dạng…
+ .accesskey = P
+
+## Simple menu items
+
+main-context-menu-bookmark-add =
+ .aria-label = Đánh dấu trang này
+ .accesskey = m
+ .tooltiptext = Đánh dấu trang này
+# This menuitem is only visible on macOS
+# Cannot be shown at the same time as main-context-menu-bookmark-edit-mac,
+# so should probably have the same access key if possible.
+main-context-menu-bookmark-add-mac =
+ .label = Đánh dấu trang
+ .accesskey = m
+# This menuitem is only visible on macOS
+# Cannot be shown at the same time as main-context-menu-bookmark-add-mac,
+# so should probably have the same access key if possible.
+main-context-menu-bookmark-edit-mac =
+ .label = Chỉnh sửa dấu trang
+ .accesskey = m
+# Variables
+# $shortcut (String) - A keyboard shortcut for the add bookmark command.
+main-context-menu-bookmark-add-with-shortcut =
+ .aria-label = Đánh dấu trang này
+ .accesskey = m
+ .tooltiptext = Đánh dấu trang này ({ $shortcut })
+main-context-menu-bookmark-change =
+ .aria-label = Chỉnh sửa dấu trang này
+ .accesskey = m
+ .tooltiptext = Chỉnh sửa dấu trang này
+# Variables
+# $shortcut (String) - A keyboard shortcut for the edit bookmark command.
+main-context-menu-bookmark-change-with-shortcut =
+ .aria-label = Chỉnh sửa dấu trang này
+ .accesskey = m
+ .tooltiptext = Chỉnh sửa dấu trang này ({ $shortcut })
+main-context-menu-bookmark-page =
+ .aria-label = Đánh dấu trang…
+ .accesskey = m
+ .tooltiptext = Đánh dấu trang
+# This menuitem is only visible on macOS
+# Cannot be shown at the same time as main-context-menu-edit-bookmark-mac,
+# so should probably have the same access key if possible.
+main-context-menu-bookmark-page-mac =
+ .label = Đánh dấu trang…
+ .accesskey = m
+# This menuitem is only visible on macOS
+# Cannot be shown at the same time as main-context-menu-bookmark-page-mac,
+# so should probably have the same access key if possible.
+main-context-menu-edit-bookmark-mac =
+ .label = Chỉnh sửa dấu trang…
+ .accesskey = m
+# Variables
+# $shortcut (String) - A keyboard shortcut for the add bookmark command.
+main-context-menu-bookmark-page-with-shortcut =
+ .aria-label = Đánh dấu trang…
+ .accesskey = m
+ .tooltiptext = Đánh dấu trang ({ $shortcut })
+main-context-menu-edit-bookmark =
+ .aria-label = Chỉnh sửa dấu trang…
+ .accesskey = m
+ .tooltiptext = Chỉnh sửa dấu trang
+# Variables
+# $shortcut (String) - A keyboard shortcut for the edit bookmark command.
+main-context-menu-edit-bookmark-with-shortcut =
+ .aria-label = Chỉnh sửa dấu trang…
+ .accesskey = m
+ .tooltiptext = Chỉnh sửa dấu trang ({ $shortcut })
+main-context-menu-open-link =
+ .label = Mở liên kết
+ .accesskey = O
+main-context-menu-open-link-new-tab =
+ .label = Mở liên kết trong thẻ mới
+ .accesskey = T
+main-context-menu-open-link-container-tab =
+ .label = Mở liên kết trong thẻ ngăn chứa mới
+ .accesskey = w
+main-context-menu-open-link-new-window =
+ .label = Mở liên kết trong cửa sổ mới
+ .accesskey = W
+main-context-menu-open-link-new-private-window =
+ .label = Mở liên kết trong cửa sổ riêng tư mới
+ .accesskey = P
+main-context-menu-bookmark-link =
+ .label = Đánh dấu liên kết
+ .accesskey = B
+main-context-menu-bookmark-link-2 =
+ .label = Đánh dấu liên kết…
+ .accesskey = B
+main-context-menu-save-link =
+ .label = Lưu liên kết thành…
+ .accesskey = k
+main-context-menu-save-link-to-pocket =
+ .label = Lưu liên kết vào { -pocket-brand-name }
+ .accesskey = o
+
+## The access keys for "Copy Link" and "Copy Email Address"
+## should be the same if possible; the two context menu items
+## are mutually exclusive.
+
+main-context-menu-copy-email =
+ .label = Sao chép địa chỉ email
+ .accesskey = E
+main-context-menu-copy-phone =
+ .label = Sao chép số điện thoại
+ .accesskey = o
+main-context-menu-copy-link-simple =
+ .label = Sao chép liên kết
+ .accesskey = L
+
+## Media (video/audio) controls
+##
+## The accesskey for "Play" and "Pause" are the
+## same because the two context-menu items are
+## mutually exclusive.
+
+main-context-menu-media-play =
+ .label = Phát
+ .accesskey = P
+main-context-menu-media-pause =
+ .label = Tạm dừng
+ .accesskey = P
+
+##
+
+main-context-menu-media-mute =
+ .label = Tắt tiếng
+ .accesskey = M
+main-context-menu-media-unmute =
+ .label = Bật tiếng
+ .accesskey = m
+main-context-menu-media-play-speed-2 =
+ .label = Tốc độ
+ .accesskey = d
+main-context-menu-media-play-speed-slow-2 =
+ .label = 0.5×
+main-context-menu-media-play-speed-normal-2 =
+ .label = 1.0×
+main-context-menu-media-play-speed-fast-2 =
+ .label = 1.25×
+main-context-menu-media-play-speed-faster-2 =
+ .label = 1.5×
+main-context-menu-media-play-speed-fastest-2 =
+ .label = 2×
+main-context-menu-media-loop =
+ .label = Lặp lại
+ .accesskey = L
+
+## The access keys for "Show Controls" and "Hide Controls" are the same
+## because the two context-menu items are mutually exclusive.
+
+main-context-menu-media-show-controls =
+ .label = Hiển thị điều khiển
+ .accesskey = C
+main-context-menu-media-hide-controls =
+ .label = Ẩn các điều khiển
+ .accesskey = C
+
+##
+
+main-context-menu-media-video-fullscreen =
+ .label = Toàn màn hình
+ .accesskey = F
+main-context-menu-media-video-leave-fullscreen =
+ .label = Thoát chế độ toàn màn hình
+ .accesskey = u
+# This is used when right-clicking on a video in the
+# content area when the Picture-in-Picture feature is enabled.
+main-context-menu-media-watch-pip =
+ .label = Xem ở chế độ hình trong hình
+ .accesskey = u
+main-context-menu-image-reload =
+ .label = Tải lại hình ảnh
+ .accesskey = R
+main-context-menu-image-view-new-tab =
+ .label = Mở hình ảnh trong thẻ mới
+ .accesskey = I
+main-context-menu-video-view-new-tab =
+ .label = Mở video trong thẻ mới
+ .accesskey = i
+main-context-menu-image-copy =
+ .label = Sao chép ảnh
+ .accesskey = y
+main-context-menu-image-copy-link =
+ .label = Sao chép liên kết hình ảnh
+ .accesskey = o
+main-context-menu-video-copy-link =
+ .label = Sao chép liên kết video
+ .accesskey = o
+main-context-menu-audio-copy-link =
+ .label = Sao chép liên kết âm thanh
+ .accesskey = o
+main-context-menu-image-save-as =
+ .label = Lưu ảnh dưới dạng…
+ .accesskey = v
+main-context-menu-image-email =
+ .label = Gửi ảnh qua email…
+ .accesskey = g
+main-context-menu-image-set-image-as-background =
+ .label = Đặt hình ảnh làm màn hình nền…
+ .accesskey = S
+main-context-menu-image-copy-text =
+ .label = Sao chép văn bản từ hình ảnh
+ .accesskey = T
+main-context-menu-image-info =
+ .label = Xem thông tin hình ảnh
+ .accesskey = f
+main-context-menu-image-desc =
+ .label = Xem mô tả
+ .accesskey = D
+main-context-menu-video-save-as =
+ .label = Lưu video thành…
+ .accesskey = v
+main-context-menu-audio-save-as =
+ .label = Lưu âm thanh thành…
+ .accesskey = v
+main-context-menu-video-take-snapshot =
+ .label = Chụp ảnh…
+ .accesskey = S
+main-context-menu-video-email =
+ .label = Gửi video qua email…
+ .accesskey = a
+main-context-menu-audio-email =
+ .label = Gửi âm thanh qua email…
+ .accesskey = a
+main-context-menu-plugin-play =
+ .label = Kích hoạt phần bổ trợ này
+ .accesskey = c
+main-context-menu-plugin-hide =
+ .label = Ẩn phần bổ trợ này
+ .accesskey = H
+main-context-menu-save-to-pocket =
+ .label = Lưu trang vào { -pocket-brand-name }
+ .accesskey = k
+main-context-menu-send-to-device =
+ .label = Gửi trang tới thiết bị
+ .accesskey = n
+
+## The access keys for "Use Saved Login" and "Use Saved Password"
+## should be the same if possible; the two context menu items
+## are mutually exclusive.
+
+main-context-menu-use-saved-login =
+ .label = Sử dụng thông tin đăng nhập đã lưu
+ .accesskey = o
+main-context-menu-use-saved-password =
+ .label = Sử dụng mật khẩu đã lưu
+ .accesskey = o
+
+##
+
+main-context-menu-suggest-strong-password =
+ .label = Đề xuất mật khẩu mạnh…
+ .accesskey = S
+main-context-menu-manage-logins2 =
+ .label = Quản lý thông tin đăng nhập
+ .accesskey = M
+main-context-menu-keyword =
+ .label = Tạo từ khóa cho chuỗi tìm kiếm này…
+ .accesskey = K
+main-context-menu-link-send-to-device =
+ .label = Gửi đường dẫn tới thiết bị
+ .accesskey = n
+main-context-menu-frame =
+ .label = Khung này
+ .accesskey = h
+main-context-menu-frame-show-this =
+ .label = Chỉ hiển thị khung này
+ .accesskey = S
+main-context-menu-frame-open-tab =
+ .label = Mở khung trong thẻ mới
+ .accesskey = T
+main-context-menu-frame-open-window =
+ .label = Mở khung trong cửa sổ mới
+ .accesskey = W
+main-context-menu-frame-reload =
+ .label = Tải lại khung
+ .accesskey = R
+main-context-menu-frame-bookmark =
+ .label = Đánh dấu khung này
+ .accesskey = m
+main-context-menu-frame-add-bookmark =
+ .label = Đánh dấu khung…
+ .accesskey = m
+main-context-menu-frame-save-as =
+ .label = Lưu khung thành…
+ .accesskey = F
+main-context-menu-frame-print =
+ .label = In khung…
+ .accesskey = P
+main-context-menu-frame-view-source =
+ .label = Xem mã nguồn khung
+ .accesskey = V
+main-context-menu-frame-view-info =
+ .label = Xem thông tin khung
+ .accesskey = I
+main-context-menu-print-selection =
+ .label = Lựa chọn in
+ .accesskey = i
+main-context-menu-print-selection-2 =
+ .label = In phần lựa chọn…
+ .accesskey = r
+main-context-menu-view-selection-source =
+ .label = Xem mã nguồn của đoạn bôi đen
+ .accesskey = e
+main-context-menu-take-screenshot =
+ .label = Chụp màn hình
+ .accesskey = T
+main-context-menu-take-frame-screenshot =
+ .label = Chụp màn hình
+ .accesskey = o
+main-context-menu-view-page-source =
+ .label = Xem mã nguồn trang
+ .accesskey = V
+main-context-menu-bidi-switch-text =
+ .label = Chuyển hướng văn bản
+ .accesskey = w
+main-context-menu-bidi-switch-page =
+ .label = Chuyển hướng trang
+ .accesskey = D
+main-context-menu-inspect =
+ .label = Kiểm tra
+ .accesskey = Q
+main-context-menu-inspect-a11y-properties =
+ .label = Kiểm tra thuộc tính trợ năng
+main-context-menu-eme-learn-more =
+ .label = Tìm hiểu thêm về DRM…
+ .accesskey = D
+# Variables
+# $containerName (String): The name of the current container
+main-context-menu-open-link-in-container-tab =
+ .label = Mở liên kết trong thẻ { $containerName } mới
+ .accesskey = T
+main-context-menu-reveal-password =
+ .label = Hiển thị mật khẩu
+ .accesskey = v
diff --git a/l10n-vi/browser/browser/browserSets.ftl b/l10n-vi/browser/browser/browserSets.ftl
new file mode 100644
index 0000000000..65eb7861d6
--- /dev/null
+++ b/l10n-vi/browser/browser/browserSets.ftl
@@ -0,0 +1,218 @@
+# 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/.
+
+window-minimize-command =
+ .label = Thu nhỏ
+
+window-zoom-command =
+ .label = Phóng to
+
+window-new-shortcut =
+ .key = N
+
+window-minimize-shortcut =
+ .key = m
+
+close-shortcut =
+ .key = W
+
+tab-new-shortcut =
+ .key = t
+
+location-open-shortcut =
+ .key = l
+
+location-open-shortcut-alt =
+ .key = d
+
+search-focus-shortcut =
+ .key = k
+
+# This shortcut is used in two contexts:
+# - web search
+# - find in page
+find-shortcut =
+ .key = f
+
+search-find-again-shortcut =
+ .key = g
+
+search-find-again-shortcut-alt =
+ .keycode = VK_F3
+
+search-find-selection-shortcut =
+ .key = e
+
+# Verify what shortcut for that operation
+# are recommended by the Human Interface Guidelines
+# of each platform for your locale.
+search-focus-shortcut-alt =
+ .key =
+ { PLATFORM() ->
+ [linux] j
+ *[other] e
+ }
+
+# Verify what shortcut for that operation
+# are recommended by the Human Interface Guidelines
+# of each platform for your locale.
+downloads-shortcut =
+ .key =
+ { PLATFORM() ->
+ [linux] y
+ *[other] j
+ }
+
+addons-shortcut =
+ .key = A
+
+file-open-shortcut =
+ .key = o
+
+save-page-shortcut =
+ .key = s
+
+page-source-shortcut =
+ .key = u
+
+# This should match the Option+Command keyboard shortcut letter that Safari
+# and Chrome use for "View Source" on macOS. `page-source-shortcut` above
+# is Firefox's official keyboard shortcut shown in the GUI.
+# Safari variant is an alias provided for the convenience of Safari and Chrome
+# users on macOS. See bug 1398988.
+page-source-shortcut-safari =
+ .key = u
+
+page-info-shortcut =
+ .key = i
+
+print-shortcut =
+ .key = p
+
+mute-toggle-shortcut =
+ .key = M
+
+nav-back-shortcut-alt =
+ .key = [
+
+nav-fwd-shortcut-alt =
+ .key = ]
+
+nav-reload-shortcut =
+ .key = r
+
+# Shortcut available only on macOS.
+nav-stop-shortcut =
+ .key = .
+
+history-show-all-shortcut =
+ .key = H
+
+history-show-all-shortcut-mac =
+ .key = Y
+
+history-sidebar-shortcut =
+ .key = h
+
+full-screen-shortcut =
+ .key = f
+
+reader-mode-toggle-shortcut-windows =
+ .keycode = VK_F9
+
+reader-mode-toggle-shortcut-other =
+ .key = R
+
+picture-in-picture-toggle-shortcut-mac =
+ .key = ]
+
+# Pick the key that is commonly present
+# in your locale keyboards above the
+# `picture-in-picture-toggle-shortcut-mac` key.
+picture-in-picture-toggle-shortcut-mac-alt =
+ .key = { "}" }
+
+picture-in-picture-toggle-shortcut =
+ .key = ]
+
+# Pick the key that is commonly present
+# in your locale keyboards above the
+# `picture-in-picture-toggle-shortcut` key.
+picture-in-picture-toggle-shortcut-alt =
+ .key = { "}" }
+
+bookmark-this-page-shortcut =
+ .key = d
+
+# Verify what shortcut for that operation
+# are recommended by the Human Interface Guidelines
+# of each platform for your locale.
+bookmark-show-library-shortcut =
+ .key = O
+
+# Verify what shortcut for that operation
+# are recommended by the Human Interface Guidelines
+# of each platform for your locale.
+bookmark-show-sidebar-shortcut =
+ .key = b
+
+# Verify what shortcut for that operation
+# are recommended by the Human Interface Guidelines
+# of each platform for your locale.
+bookmark-show-toolbar-shortcut =
+ .key = B
+
+## All `-alt*` messages are alternative acceleration keys for zoom.
+## If shift key is needed with your locale popular keyboard for them,
+## you can use these alternative items. Otherwise, their values should be empty.
+
+full-zoom-reduce-shortcut =
+ .key = -
+
+full-zoom-reduce-shortcut-alt-a =
+ .key = _
+
+full-zoom-reduce-shortcut-alt-b =
+ .key = { "" }
+
+full-zoom-enlarge-shortcut =
+ .key = +
+
+full-zoom-enlarge-shortcut-alt =
+ .key = =
+
+full-zoom-enlarge-shortcut-alt2 =
+ .key = { "" }
+
+full-zoom-reset-shortcut =
+ .key = 0
+
+full-zoom-reset-shortcut-alt =
+ .key = { "" }
+
+##
+
+bidi-switch-direction-shortcut =
+ .key = X
+
+private-browsing-shortcut =
+ .key = P
+
+## The shortcuts below are for Mac specific
+## global menu.
+
+quit-app-shortcut =
+ .key = Q
+
+help-shortcut =
+ .key = ?
+
+preferences-shortcut =
+ .key = ,
+
+hide-app-shortcut =
+ .key = H
+
+hide-other-apps-shortcut =
+ .key = H
diff --git a/l10n-vi/browser/browser/colorwaycloset.ftl b/l10n-vi/browser/browser/colorwaycloset.ftl
new file mode 100644
index 0000000000..f7d20b5a95
--- /dev/null
+++ b/l10n-vi/browser/browser/colorwaycloset.ftl
@@ -0,0 +1,26 @@
+# 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/.
+
+# Variables:
+# $expiryDate (string) - date on which the colorway collection expires. When formatting this, you may omit the year, only exposing the month and day, as colorway collections will always expire within a year.
+colorway-collection-expiry-label = Hết hạn vào { DATETIME($expiryDate, month: "long", day: "numeric") }
+
+# Document title, not shown in the UI but exposed through accessibility APIs
+colorways-modal-title = Chọn đường màu của bạn
+
+colorway-intensity-selector-label = Cường độ
+colorway-intensity-soft = Mềm
+colorway-intensity-balanced = Cân bằng
+# "Bold" is used in the sense of bravery or courage, not in the sense of
+# emphasized text.
+colorway-intensity-bold = Đậm
+
+# Label for the button to keep using the selected colorway in the browser
+colorway-closet-set-colorway-button = Đặt đường màu
+colorway-closet-cancel-button = Hủy bỏ
+
+colorway-homepage-reset-prompt = Đặt { -firefox-home-brand-name } làm trang chủ đầy màu sắc của bạn
+colorway-homepage-reset-success-message = { -firefox-home-brand-name } hiện là trang chủ của bạn
+colorway-homepage-reset-apply-button = Áp dụng
+colorway-homepage-reset-undo-button = Hoàn tác
diff --git a/l10n-vi/browser/browser/colorways.ftl b/l10n-vi/browser/browser/colorways.ftl
new file mode 100644
index 0000000000..42b2141dce
--- /dev/null
+++ b/l10n-vi/browser/browser/colorways.ftl
@@ -0,0 +1,31 @@
+# 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/.
+
+
+## Colorway collections
+
+colorway-collection-independent-voices = Tiếng nói độc lập
+colorway-collection-independent-voices-description = Màu sắc có thể thay đổi văn hóa. Các đường màu mới nhất tôn vinh tiếng nói làm cho thế giới trở nên tốt đẹp hơn.
+# Used as a subheading for the colorway collection card in about:addons
+colorway-collection-independent-voices-short-description = Màu sắc thay đổi văn hóa.
+
+## Colorway names and descriptions
+
+playmaker-colorway-name = Người kiến tạo lối chơi
+playmaker-colorway-description = Bạn tạo cơ hội để giành chiến thắng và giúp mọi người xung quanh nâng tầm trò chơi của họ.
+
+expressionist-colorway-name = Trường phái biểu hiện
+expressionist-colorway-description = Bạn nhìn thế giới một cách khác biệt và những sáng tạo của bạn khuấy động cảm xúc của người khác.
+
+visionary-colorway-name = Nhìn xa trông rộng
+visionary-colorway-description = Bạn đặt câu hỏi về hiện trạng và khiến người khác phải tưởng tượng về một tương lai tốt đẹp hơn.
+
+activist-colorway-name = Nhà hoạt động
+activist-colorway-description = Bạn để lại cho thế giới một nơi tốt đẹp hơn những gì bạn đã tìm thấy và khiến người khác tin tưởng.
+
+dreamer-colorway-name = Người mơ mộng
+dreamer-colorway-description = Bạn tin rằng vận may ủng hộ những người mạnh dạn và truyền cảm hứng cho những người khác dũng cảm.
+
+innovator-colorway-name = Người đổi mới
+innovator-colorway-description = Bạn nhìn thấy cơ hội ở khắp mọi nơi và tạo ra ảnh hưởng đến cuộc sống của mọi người xung quanh bạn.
diff --git a/l10n-vi/browser/browser/components/mozSupportLink.ftl b/l10n-vi/browser/browser/components/mozSupportLink.ftl
new file mode 100644
index 0000000000..d04cd7e55d
--- /dev/null
+++ b/l10n-vi/browser/browser/components/mozSupportLink.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/.
+
+moz-support-link-text = Tìm hiểu thêm
diff --git a/l10n-vi/browser/browser/confirmationHints.ftl b/l10n-vi/browser/browser/confirmationHints.ftl
new file mode 100644
index 0000000000..29c3cab84b
--- /dev/null
+++ b/l10n-vi/browser/browser/confirmationHints.ftl
@@ -0,0 +1,15 @@
+# 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/.
+
+
+## Confirmation hints
+
+confirmation-hint-breakage-report-sent = Đã gửi báo cáo. Cảm ơn bạn!
+confirmation-hint-login-removed = Đã xóa thông tin đăng nhập!
+confirmation-hint-page-bookmarked = Đã lưu vào dấu trang
+confirmation-hint-password-saved = Mật khẩu đã được lưu!
+confirmation-hint-pin-tab = Đã ghim!
+confirmation-hint-pin-tab-description = Nhấp chuột phải vào thẻ để bỏ ghim nó.
+confirmation-hint-send-to-device = Đã gửi!
+confirmation-hint-firefox-relay-mask-generated = Đã tạo mặt nạ { -relay-brand-short-name } mới!
diff --git a/l10n-vi/browser/browser/contentCrash.ftl b/l10n-vi/browser/browser/contentCrash.ftl
new file mode 100644
index 0000000000..9d9f8755c0
--- /dev/null
+++ b/l10n-vi/browser/browser/contentCrash.ftl
@@ -0,0 +1,30 @@
+# 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/.
+
+
+## Subframe crash notification
+
+crashed-subframe-message = Một phần của trang này đã bị vớ. Để { -brand-product-name } biết về lỗi này và sửa nó nhanh hơn, vui lòng báo cáo nó.
+
+# The string for crashed-subframe-title.title should match crashed-subframe-message,
+# but without any markup.
+crashed-subframe-title =
+ .title = Một phần của trang này đã bị lỗi. Để cho { -brand-product-name } biết về vấn đề này và khắc phục sự cố nhanh hơn, vui lòng gửi báo cáo.
+crashed-subframe-learnmore-link =
+ .value = Tìm hiểu thêm
+crashed-subframe-submit =
+ .label = Gửi báo cáo
+ .accesskey = S
+
+## Pending crash reports
+
+# Variables:
+# $reportCount (Number): the number of pending crash reports
+pending-crash-reports-message = Bạn có { $reportCount } bản báo cáo lỗi chưa gửi
+pending-crash-reports-view-all =
+ .label = Xem
+pending-crash-reports-send =
+ .label = Gửi
+pending-crash-reports-always-send =
+ .label = Luôn gửi
diff --git a/l10n-vi/browser/browser/customizeMode.ftl b/l10n-vi/browser/browser/customizeMode.ftl
new file mode 100644
index 0000000000..d69c9672b9
--- /dev/null
+++ b/l10n-vi/browser/browser/customizeMode.ftl
@@ -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/.
+
+customize-mode-restore-defaults =
+ .label = Khôi phục về mặc định
+customize-mode-menu-and-toolbars-header = Kéo mục yêu thích của bạn vào thanh công cụ hoặc bảng chọn.
+customize-mode-overflow-list-title = Bảng chọn
+customize-mode-uidensity =
+ .label = Mật độ
+customize-mode-done =
+ .label = Xong
+customize-mode-toolbars =
+ .label = Thanh công cụ
+customize-mode-titlebar =
+ .label = Thanh tiêu đề
+customize-mode-uidensity-menu-touch =
+ .label = Chạm
+ .accesskey = T
+ .tooltiptext = Chạm
+customize-mode-uidensity-auto-touch-mode-checkbox =
+ .label = Sử dụng cảm ứng cho chế độ máy tính bảng
+customize-mode-overflow-list-description = Kéo và thả các mục vào đây để dễ sử dụng chúng và nó sẽ nằm ngoài thanh công cụ của bạn…
+customize-mode-uidensity-menu-normal =
+ .label = Bình thường
+ .accesskey = N
+ .tooltiptext = Bình thường
+customize-mode-uidensity-menu-compact-unsupported =
+ .label = Thu gọn (không được hỗ trợ)
+ .accesskey = C
+ .tooltiptext = Thu gọn (không được hỗ trợ)
+customize-mode-undo-cmd =
+ .label = Hoàn tác
+customize-mode-lwthemes-link = Quản lý chủ đề
+customize-mode-touchbar-cmd =
+ .label = Tùy biến Touch Bar…
+customize-mode-downloads-button-autohide =
+ .label = Ẩn nút khi trống
diff --git a/l10n-vi/browser/browser/defaultBrowserNotification.ftl b/l10n-vi/browser/browser/defaultBrowserNotification.ftl
new file mode 100644
index 0000000000..9ba9e8f674
--- /dev/null
+++ b/l10n-vi/browser/browser/defaultBrowserNotification.ftl
@@ -0,0 +1,23 @@
+# 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/.
+
+# The question portion of the following message should have the and tags surrounding it.
+default-browser-notification-message = Đặt { -brand-short-name } làm trình duyệt mặc định của bạn? Duyệt web nhanh chóng, an toàn và riêng tư bất cứ khi nào bạn sử dụng web.
+default-browser-notification-button =
+ .label = Đặt làm mặc định
+ .accesskey = S
+
+## These strings are used for the default browser prompt. There are 2 variations
+## depending on the operating system (Windows vs other). The checkbox label and
+## secondary button are shared between the variants.
+
+default-browser-prompt-title-pin = Đặt { -brand-short-name } làm trình duyệt mặc định của bạn?
+default-browser-prompt-message-pin = Giữ { -brand-short-name } trong tầm tay bạn — đặt nó làm trình duyệt mặc định của bạn và ghim nó vào thanh tác vụ của bạn.
+default-browser-prompt-message-pin-mac = Giữ { -brand-short-name } trong tầm tay bạn — đặt nó làm trình duyệt mặc định của bạn và giữ nó trong thanh Dock của bạn.
+default-browser-prompt-button-primary-pin = Đặt làm trình duyệt mặc định
+default-browser-prompt-title-alt = Đặt { -brand-short-name } làm trình duyệt mặc định của bạn?
+default-browser-prompt-message-alt = Tốc độ, an toàn và quyền riêng tư mỗi khi bạn duyệt.
+default-browser-prompt-button-primary-alt = Đặt làm trình duyệt mặc định
+default-browser-prompt-checkbox-not-again-label = Không hiển thị lại thông báo này
+default-browser-prompt-button-secondary = Không phải bây giờ
diff --git a/l10n-vi/browser/browser/downloads.ftl b/l10n-vi/browser/browser/downloads.ftl
new file mode 100644
index 0000000000..b206a8029f
--- /dev/null
+++ b/l10n-vi/browser/browser/downloads.ftl
@@ -0,0 +1,236 @@
+# 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/.
+
+
+## The title and aria-label attributes are used by screen readers to describe
+## the Downloads Panel.
+
+downloads-window =
+ .title = Trang tải xuống
+downloads-panel =
+ .aria-label = Trang tải xuống
+
+##
+
+# The style attribute has the width of the Downloads Panel expressed using
+# a CSS unit. The longest labels that should fit are usually those of
+# in-progress and blocked downloads.
+downloads-panel-items =
+ .style = width: 35em
+downloads-cmd-pause =
+ .label = Tạm dừng
+ .accesskey = m
+downloads-cmd-resume =
+ .label = Tiếp tục
+ .accesskey = T
+downloads-cmd-cancel =
+ .tooltiptext = Hủy bỏ
+downloads-cmd-cancel-panel =
+ .aria-label = Hủy bỏ
+downloads-cmd-show-menuitem-2 =
+ .label =
+ { PLATFORM() ->
+ [macos] Hiển thị trong thư mục
+ *[other] Hiển thị trong thư mục
+ }
+ .accesskey = F
+
+## Displayed in the downloads context menu for files that can be opened.
+## Variables:
+## $handler (String) - The name of the mime type's default file handler.
+## Example: "Notepad", "Acrobat Reader DC", "7-Zip File Manager"
+
+downloads-cmd-use-system-default =
+ .label = Mở trong Trình xem hệ thống
+ .accesskey = V
+# This version is shown when the download's mime type has a valid file handler.
+downloads-cmd-use-system-default-named =
+ .label = Mở trong { $handler }
+ .accesskey = I
+# We can use the same accesskey as downloads-cmd-always-open-similar-files.
+# Both should not be visible in the downloads context menu at the same time.
+downloads-cmd-always-use-system-default =
+ .label = Luôn mở trong Trình xem hệ thống
+ .accesskey = w
+# We can use the same accesskey as downloads-cmd-always-open-similar-files.
+# Both should not be visible in the downloads context menu at the same time.
+# This version is shown when the download's mime type has a valid file handler.
+downloads-cmd-always-use-system-default-named =
+ .label = Luôn mở trong { $handler }
+ .accesskey = w
+
+##
+
+# We can use the same accesskey as downloads-cmd-always-use-system-default.
+# Both should not be visible in the downloads context menu at the same time.
+downloads-cmd-always-open-similar-files =
+ .label = Luôn mở các tập tin tương tự
+ .accesskey = w
+downloads-cmd-show-button-2 =
+ .tooltiptext =
+ { PLATFORM() ->
+ [macos] Hiển thị trong thư mục
+ *[other] Hiển thị trong thư mục
+ }
+downloads-cmd-show-panel-2 =
+ .aria-label =
+ { PLATFORM() ->
+ [macos] Hiển thị trong thư mục
+ *[other] Hiển thị trong thư mục
+ }
+downloads-cmd-show-description-2 =
+ .value =
+ { PLATFORM() ->
+ [macos] Hiển thị trong thư mục
+ *[other] Hiển thị trong thư mục
+ }
+downloads-cmd-show-downloads =
+ .label = Mở thư mục tải xuống
+downloads-cmd-retry =
+ .tooltiptext = Thử lại
+downloads-cmd-retry-panel =
+ .aria-label = Thử lại
+downloads-cmd-go-to-download-page =
+ .label = Đến trang tải xuống
+ .accesskey = g
+downloads-cmd-copy-download-link =
+ .label = Sao chép liên kết tải xuống
+ .accesskey = l
+downloads-cmd-remove-from-history =
+ .label = Xóa khỏi nhật ký
+ .accesskey = X
+downloads-cmd-clear-list =
+ .label = Dọn bảng xem trước
+ .accesskey = D
+downloads-cmd-clear-downloads =
+ .label = Xóa các tải xuống
+ .accesskey = v
+downloads-cmd-delete-file =
+ .label = Xóa
+ .accesskey = D
+# This command is shown in the context menu when downloads are blocked.
+downloads-cmd-unblock =
+ .label = Cho phép tải xuống
+ .accesskey = o
+# This is the tooltip of the action button shown when malware is blocked.
+downloads-cmd-remove-file =
+ .tooltiptext = Xóa tập tin
+downloads-cmd-remove-file-panel =
+ .aria-label = Xóa tập tin
+# This is the tooltip of the action button shown when potentially unwanted
+# downloads are blocked. This opens a dialog where the user can choose
+# whether to unblock or remove the download. Removing is the default option.
+downloads-cmd-choose-unblock =
+ .tooltiptext = Xóa tập tin hoặc cho phép tải xuống
+downloads-cmd-choose-unblock-panel =
+ .aria-label = Xóa tập tin hoặc cho phép tải xuống
+# This is the tooltip of the action button shown when uncommon downloads are
+# blocked.This opens a dialog where the user can choose whether to open the
+# file or remove the download. Opening is the default option.
+downloads-cmd-choose-open =
+ .tooltiptext = Mở hoặc xóa tập tin
+downloads-cmd-choose-open-panel =
+ .aria-label = Mở hoặc xóa tập tin
+# Displayed when hovering a blocked download, indicates that it's possible to
+# show more information for user to take the next action.
+downloads-show-more-information =
+ .value = Hiển thị thêm thông tin
+# Displayed when hovering a complete download, indicates that it's possible to
+# open the file using an app available in the system.
+downloads-open-file =
+ .value = Mở tập tin
+
+## Displayed when the user clicked on a download in process. Indicates that the
+## downloading file will be opened after certain amount of time using an app
+## available in the system.
+## Variables:
+## $hours (number) - Amount of hours left till the file opens.
+## $seconds (number) - Amount of seconds left till the file opens.
+## $minutes (number) - Amount of minutes till the file opens.
+
+downloading-file-opens-in-hours-and-minutes = Sẽ mở sau { $hours } giờ { $minutes } phút…
+downloading-file-opens-in-minutes = Sẽ mở sau { $minutes } phút…
+downloading-file-opens-in-minutes-and-seconds = Sẽ mở sau { $minutes } phút { $seconds } giây…
+downloading-file-opens-in-seconds = Sẽ mở sau { $seconds } giây…
+downloading-file-opens-in-some-time = Sẽ mở sau khi hoàn thành…
+downloading-file-opens-in-hours-and-minutes-2 =
+ .value = Sẽ mở sau { $hours } giờ { $minutes } phút…
+downloading-file-opens-in-minutes-2 =
+ .value = Sẽ mở sau { $minutes } phút…
+downloading-file-opens-in-minutes-and-seconds-2 =
+ .value = Sẽ mở sau { $minutes } phút { $seconds } giây…
+downloading-file-opens-in-seconds-2 =
+ .value = Sẽ mở sau { $seconds } giây…
+downloading-file-opens-in-some-time-2 =
+ .value = Sẽ mở sau khi hoàn thành…
+downloading-file-click-to-open =
+ .value = Mở khi hoàn thành
+
+##
+
+# Displayed when hovering a download which is able to be retried by users,
+# indicates that it's possible to download this file again.
+downloads-retry-download =
+ .value = Thử tải lại
+# Displayed when hovering a download which is able to be cancelled by users,
+# indicates that it's possible to cancel and stop the download.
+downloads-cancel-download =
+ .value = Hủy bỏ tải xuống
+# This string is shown at the bottom of the Downloads Panel when all the
+# downloads fit in the available space, or when there are no downloads in
+# the panel at all.
+downloads-history =
+ .label = Xem tất cả tải xuống
+ .accesskey = c
+# This string is shown at the top of the Download Details Panel, to indicate
+# that we are showing the details of a single download.
+downloads-details =
+ .title = Chi tiết tải xuống
+
+## Displayed when a site attempts to automatically download many files.
+## Variables:
+## $num (number) - Number of blocked downloads.
+## $url (string) - The url of the suspicious site, stripped of http, https and www prefix.
+
+downloads-files-not-downloaded =
+ { $num ->
+ *[other] { $num } tập tin chưa được tải xuống.
+ }
+downloads-blocked-from-url = Tải xuống bị chặn từ { $url }.
+downloads-blocked-download-detailed-info = { $url } đã cố gắng tự tải xuống nhiều tập tin. Trang web có thể bị hỏng hoặc đang cố gắng lưu trữ các tập tin rác trên thiết bị của bạn.
+
+##
+
+downloads-clear-downloads-button =
+ .label = Xóa các tải xuống
+ .tooltiptext = Xóa các tải xuống thành công, bị hủy và thất bại
+# This string is shown when there are no items in the Downloads view, when it
+# is displayed inside a browser tab.
+downloads-list-empty =
+ .value = Không có tải xuống nào.
+# This string is shown when there are no items in the Downloads Panel.
+downloads-panel-empty =
+ .value = Không có tải xuống cho phiên làm việc này.
+# This is displayed in an item at the bottom of the Downloads Panel when there
+# are more downloads than can fit in the list in the panel.
+# $count (number) - number of files being downloaded that are not shown in the
+# panel list.
+downloads-more-downloading =
+ { $count ->
+ *[other] { $count } tập tin khác đang tải xuống
+ }
+
+## Download errors
+
+downloads-error-alert-title = Lỗi Tải Xuống
+# Variables:
+# $extension (String): the name of the blocking extension.
+downloads-error-blocked-by = Không thể lưu tải xuống vì bị chặn bởi { $extension }.
+# Used when the name of the blocking extension is unavailable.
+downloads-error-extension = Không thể lưu tải xuống do bị chặn bởi tiện ích mở rộng.
+# Line breaks in this message are meaningful, and should be maintained.
+downloads-error-generic =
+ Không thể lưu tập tin tải xuống vì có lỗi xảy ra.
+
+ Vui lòng thử lại lần nữa.
diff --git a/l10n-vi/browser/browser/editBookmarkOverlay.ftl b/l10n-vi/browser/browser/editBookmarkOverlay.ftl
new file mode 100644
index 0000000000..caaf62528e
--- /dev/null
+++ b/l10n-vi/browser/browser/editBookmarkOverlay.ftl
@@ -0,0 +1,49 @@
+# 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/.
+
+bookmark-overlay-name-2 =
+ .value = Tên
+ .accesskey = N
+
+bookmark-overlay-url =
+ .value = URL
+ .accesskey = U
+
+# Location refers to the position of the bookmark within the browser's
+# bookmarks, not to its URL or address.
+bookmark-overlay-location-2 =
+ .value = Vị trí
+ .accesskey = L
+
+bookmark-overlay-choose =
+ .label = Chọn…
+
+bookmark-overlay-folders-expander =
+ .tooltiptext = Hiển thị tất cả các thư mục chứa dấu trang
+ .tooltiptextdown = { bookmark-overlay-folders-expander.tooltiptext }
+ .tooltiptextup = Ẩn
+
+bookmark-overlay-new-folder-button =
+ .label = Thư mục mới
+ .accesskey = i
+
+bookmark-overlay-tags-2 =
+ .value = Nhãn
+ .accesskey = T
+
+bookmark-overlay-tags-empty-description =
+ .placeholder = Ngăn cách nhãn bằng dấu phẩy
+
+bookmark-overlay-tags-expander =
+ .tooltiptext = Hiển thị tất cả các nhãn
+ .tooltiptextdown = { bookmark-overlay-tags-expander.tooltiptext }
+ .tooltiptextup = Ẩn
+
+bookmark-overlay-keyword-2 =
+ .value = Từ khóa
+ .accesskey = K
+
+bookmark-overlay-tags-caption-label = Sử dụng các thẻ để sắp xếp và tìm kiếm các dấu trang từ thanh địa chỉ
+
+bookmark-overlay-keyword-caption-label-2 = Sử dụng từ khóa để mở dấu trang trực tiếp từ thanh địa chỉ
diff --git a/l10n-vi/browser/browser/featureCallout.ftl b/l10n-vi/browser/browser/featureCallout.ftl
new file mode 100644
index 0000000000..bb08b1547f
--- /dev/null
+++ b/l10n-vi/browser/browser/featureCallout.ftl
@@ -0,0 +1,45 @@
+# 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/.
+
+# Callout dialog primary button to advance to next screen
+callout-primary-advance-button-label = Tiếp
+# Callout dialog primary button to complete the feature tour
+callout-primary-complete-button-label = Đã hiểu!
+
+## Firefox View feature tour strings
+
+# "Tab pickup" refers to the section in Firefox View that displays open
+# tabs from other devices
+callout-firefox-view-tab-pickup-title = Chuyển công việc giữa các thiết bị với tính năng Các thẻ trên thiết bị khác
+callout-firefox-view-tab-pickup-subtitle = Nhanh chóng lấy các thẻ đang mở từ điện thoại của bạn và mở chúng ở đây để có hiệu suất công việc của bạn tối đa.
+callout-firefox-view-recently-closed-title = Lấy lại các thẻ đã đóng của bạn trong tích tắc
+callout-firefox-view-recently-closed-subtitle = Tất cả các thẻ đã đóng của bạn sẽ hiển thị ở đây một cách kỳ diệu. Không bao giờ lo lắng về việc vô tình đóng một trang web nữa.
+callout-firefox-view-colorways-title = Thêm một chút màu sắc
+# "Shade" refer to different color options in each colorway.
+callout-firefox-view-colorways-subtitle = Chọn một đường màu phù hợp với phong cách của bạn. Chỉ trong { -brand-product-name }.
+callout-firefox-view-colorways-reminder-title = Khám phá các đường màu mới nhất của chúng tôi
+# “Shades” refers to the different color options in each colorways
+callout-firefox-view-colorways-reminder-subtitle = Tô màu trình duyệt của bạn với những sắc thái mang tính biểu tượng này, lấy cảm hứng từ những tiếng nói độc lập. Chỉ có trong { -brand-product-name }.
+
+## Continuous Onboarding - Firefox View: Tab pick up
+
+# “Boost your browsing” refers to the added benefit the user receives from having
+# access to the same browsing experience when moving from one browser to another.
+# Alternative: ”Improve your browsing experience with tab pickup”
+continuous-onboarding-firefox-view-tab-pickup-title = Tăng cường duyệt web của bạn với tính năng nhận thẻ từ thiết bị khác
+continuous-onboarding-firefox-view-tab-pickup-subtitle = Truy cập các thẻ đang mở của bạn từ bất kỳ thiết bị nào. Đồng bộ hóa dấu trang, mật khẩu của bạn và hơn thế nữa.
+continuous-onboarding-firefox-view-tab-pickup-primary-button-label = Bắt đầu
+
+## PDF.js Feature Tour Strings
+
+callout-pdfjs-edit-title = Chỉnh sửa tập tin PDF bằng công cụ văn bản mới của chúng tôi
+callout-pdfjs-edit-body-a = Điền vào biểu mẫu, thêm nhận xét hoặc ghi chú trực tiếp trong { -brand-short-name }.
+callout-pdfjs-edit-body-b = Hãy quên tìm kiếm các trình chỉnh sửa trực tuyến miễn phí đi. Điền vào biểu mẫu, thêm nhận xét hoặc ghi chú trực tiếp trong { -brand-short-name }.
+callout-pdfjs-edit-button = Tiếp theo
+callout-pdfjs-draw-title = Ký tài liệu bằng công cụ vẽ mới của chúng tôi
+# “Mark up” refers to the process of “annotating” or adding free hand text or diagramming to the document.
+callout-pdfjs-draw-body-a = Đánh dấu các tập tin PDF, sau đó lưu các thay đổi của bạn.
+# “Mark up” refers to the process of “annotating” or adding free hand text or diagramming to the document.
+callout-pdfjs-draw-body-b = Không cần in và quét nữa. Đánh dấu các tập tin PDF, sau đó lưu các thay đổi của bạn.
+callout-pdfjs-draw-button = Đã hiểu!
diff --git a/l10n-vi/browser/browser/firefoxRelay.ftl b/l10n-vi/browser/browser/firefoxRelay.ftl
new file mode 100644
index 0000000000..c59d673d3a
--- /dev/null
+++ b/l10n-vi/browser/browser/firefoxRelay.ftl
@@ -0,0 +1,32 @@
+# 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/.
+
+
+## Error messages for failed HTTP web requests.
+## https://developer.mozilla.org/en-US/docs/Web/HTTP/Status#client_error_responses
+## Variables:
+## $status (Number) - HTTP status code, for example 403
+
+firefox-relay-mask-generation-failed = { -relay-brand-name } không thể tạo mặt nạ mới. Mã lỗi HTTP: { $status }.
+firefox-relay-get-reusable-masks-failed = { -relay-brand-name } không thể tìm thấy mặt nạ có thể sử dụng. Mã lỗi HTTP: { $status }.
+
+##
+
+firefox-relay-must-login-to-fxa = Bạn phải đăng nhập vào { -fxaccount-brand-name } để sử dụng { -relay-brand-name }.
+firefox-relay-get-unlimited-masks =
+ .label = Muản lý mặt nạ
+ .accesskey = M
+firefox-relay-opt-in-title = Bảo vệ địa chỉ email của bạn
+firefox-relay-opt-in-subtitle = Thêm { -relay-brand-name }
+firefox-relay-generate-mask-title = Bảo vệ địa chỉ email của bạn
+firefox-relay-generate-mask-subtitle = Tạo mặt nạ { -relay-brand-short-name }
+firefox-relay-opt-in-confirmation-enable =
+ .label = Tiếp tục
+ .accesskey = C
+firefox-relay-opt-in-confirmation-disable =
+ .label = Đừng hỏi lại tôi điều này
+ .accesskey = D
+firefox-relay-opt-in-confirmation-postpone =
+ .label = Không phải bây giờ
+ .accesskey = N
diff --git a/l10n-vi/browser/browser/firefoxView.ftl b/l10n-vi/browser/browser/firefoxView.ftl
new file mode 100644
index 0000000000..08c4a88995
--- /dev/null
+++ b/l10n-vi/browser/browser/firefoxView.ftl
@@ -0,0 +1,84 @@
+# 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/.
+
+toolbar-button-firefox-view =
+ .label = { -firefoxview-brand-name }
+ .tooltiptext = { -firefoxview-brand-name }
+menu-tools-firefox-view =
+ .label = { -firefoxview-brand-name }
+ .accesskey = F
+firefoxview-page-title = { -firefoxview-brand-name }
+firefoxview-close-button =
+ .title = Đóng
+ .aria-label = Đóng
+# Used instead of the localized relative time when a timestamp is within a minute or so of now
+firefoxview-just-now-timestamp = Vừa xong
+# This is a headline for an area in the product where users can resume and re-open tabs they have previously viewed on other devices.
+firefoxview-tabpickup-header = Các thẻ trên thiết bị khác
+firefoxview-tabpickup-description = Mở trang từ các thiết bị khác.
+# Variables:
+# $percentValue (Number): the percentage value for setup completion
+firefoxview-tabpickup-progress-label = { $percentValue }% hoàn thành
+firefoxview-tabpickup-step-signin-header = Chuyển đổi liền mạch giữa các thiết bị
+firefoxview-tabpickup-step-signin-description = Để truy cập các thẻ điện thoại của bạn tại đây, trước tiên hãy đăng nhập hoặc tạo tài khoản.
+firefoxview-tabpickup-step-signin-primarybutton = Tiếp tục
+firefoxview-tabpickup-adddevice-header = Đồng bộ hóa { -brand-product-name } trên điện thoại hoặc máy tính bảng của bạn
+firefoxview-tabpickup-adddevice-description = Tải xuống { -brand-product-name } cho điện thoại di động và đăng nhập vào đó.
+firefoxview-tabpickup-adddevice-learn-how = Tìm hiểu cách làm
+firefoxview-tabpickup-adddevice-primarybutton = Tải { -brand-product-name } dành cho điện thoại di động
+firefoxview-tabpickup-synctabs-header = Bật đồng bộ hóa thẻ
+firefoxview-tabpickup-synctabs-description = Cho phép { -brand-short-name } chia sẻ các thẻ giữa các thiết bị.
+firefoxview-tabpickup-synctabs-learn-how = Tìm hiểu cách làm
+firefoxview-tabpickup-synctabs-primarybutton = Đồng bộ hóa các thẻ đang mở
+firefoxview-tabpickup-fxa-admin-disabled-header = Tổ chức của bạn đã tắt đồng bộ hóa
+firefoxview-tabpickup-fxa-admin-disabled-description = { -brand-short-name } không thể đồng bộ hóa các thẻ giữa các thiết bị vì quản trị viên của bạn đã tắt đồng bộ hóa.
+firefoxview-tabpickup-network-offline-header = Kiểm tra kết nối Internet của bạn
+firefoxview-tabpickup-network-offline-description = Nếu bạn đang sử dụng tường lửa hoặc proxy, hãy kiểm tra xem { -brand-short-name } có quyền truy cập web hay không.
+firefoxview-tabpickup-network-offline-primarybutton = Thử lại
+firefoxview-tabpickup-sync-error-header = Chúng tôi đang gặp sự cố khi đồng bộ hóa
+firefoxview-tabpickup-generic-sync-error-description = { -brand-short-name } hiện không thể đồng bộ hóa với dịch vụ. Hãy thử lại sau vài phút.
+firefoxview-tabpickup-sync-error-primarybutton = Thử lại
+firefoxview-tabpickup-sync-disconnected-header = Bật đồng bộ hóa để tiếp tục
+firefoxview-tabpickup-sync-disconnected-description = Để lấy các thẻ của bạn, bạn cần cho phép đồng bộ hóa trong { -brand-short-name }.
+firefoxview-tabpickup-sync-disconnected-primarybutton = Bật đồng bộ hóa trong cài đặt
+firefoxview-tabpickup-password-locked-header = Nhập mật khẩu chính của bạn để xem các thẻ
+firefoxview-tabpickup-password-locked-description = Để lấy các thẻ của mình, bạn cần nhập mật khẩu chính cho { -brand-short-name }.
+firefoxview-tabpickup-password-locked-link = Tìm hiểu thêm
+firefoxview-tabpickup-password-locked-primarybutton = Nhập mật khẩu chính
+firefoxview-tabpickup-signed-out-header = Đăng nhập để kết nối lại
+firefoxview-tabpickup-signed-out-description = Để kết nối lại và lấy các thẻ của bạn, hãy đăng nhập vào { -fxaccount-brand-name } của bạn.
+firefoxview-tabpickup-signed-out-primarybutton = Đăng nhập
+firefoxview-tabpickup-syncing = Thoải mái ngồi yên trong khi các thẻ của bạn đồng bộ hóa. Thông thường nó sẽ chỉ mất vài phút.
+firefoxview-mobile-promo-header = Nhận các thẻ từ điện thoại hoặc máy tính bảng của bạn
+firefoxview-mobile-promo-description = Để xem các thẻ trên di động mới nhất của bạn, hãy đăng nhập vào { -brand-product-name } trên iOS hoặc Android.
+firefoxview-mobile-promo-primarybutton = Tải { -brand-product-name } dành cho di động
+firefoxview-mobile-confirmation-header = 🎉 Tất cả đã xong!
+firefoxview-mobile-confirmation-description = Giờ đây, bạn có thể nhận các thẻ { -brand-product-name } từ máy tính bảng hoặc điện thoại của mình.
+firefoxview-closed-tabs-title = Đã đóng gần đây
+firefoxview-closed-tabs-description2 = Mở lại các trang bạn đã đóng trong cửa sổ này.
+firefoxview-closed-tabs-placeholder-header = Không có thẻ nào đã đóng gần đây
+firefoxview-closed-tabs-placeholder-body = Khi bạn đóng một thẻ trong cửa sổ này, bạn có thể lấy nó từ đây.
+# Variables:
+# $tabTitle (string) - Title of tab being dismissed
+firefoxview-closed-tabs-dismiss-tab =
+ .title = Bỏ qua { $tabTitle }
+# refers to the last tab that was used
+firefoxview-pickup-tabs-badge = Hoạt động lần cuối
+# Variables:
+# $targetURI (string) - URL that will be opened in the new tab
+firefoxview-tabs-list-tab-button =
+ .title = Mở { $targetURI } trong một thẻ mới
+firefoxview-try-colorways-button = Thử đường màu
+firefoxview-no-current-colorway-collection = Các đường màu mới đang được triển khai
+firefoxview-change-colorway-button = Thay đổi đường màu
+# Variables:
+# $intensity (String): Colorway intensity
+# $collection (String): Colorway Collection name
+firefoxview-colorway-description = { $intensity } · { $collection }
+firefoxview-synced-tabs-placeholder-header = Chưa có gì để xem
+firefoxview-synced-tabs-placeholder-body = Lần tới khi bạn mở một trang bằng { -brand-product-name } trên một thiết bị khác, hãy lấy nó ở đây như một phép thuật.
+firefoxview-collapse-button-show =
+ .title = Hiển thị danh sách
+firefoxview-collapse-button-hide =
+ .title = Ẩn danh sách
diff --git a/l10n-vi/browser/browser/menubar.ftl b/l10n-vi/browser/browser/menubar.ftl
new file mode 100644
index 0000000000..ef77a3d9f6
--- /dev/null
+++ b/l10n-vi/browser/browser/menubar.ftl
@@ -0,0 +1,340 @@
+# 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/.
+
+
+# NOTE: For English locales, strings in this file should be in APA-style Title Case.
+# See https://apastyle.apa.org/style-grammar-guidelines/capitalization/title-case
+#
+# NOTE: For Engineers, please don't re-use these strings outside of the menubar.
+
+
+## Application Menu (macOS only)
+
+menu-application-preferences =
+ .label = Tùy chỉnh
+menu-application-services =
+ .label = Dịch vụ
+menu-application-hide-this =
+ .label = Ẩn { -brand-shorter-name }
+menu-application-hide-other =
+ .label = Ẩn các mục khác
+menu-application-show-all =
+ .label = Hiển thị tất cả
+menu-application-touch-bar =
+ .label = Tùy chỉnh Touch Bar…
+
+##
+
+# These menu-quit strings are only used on Windows and Linux.
+menu-quit =
+ .label =
+ { PLATFORM() ->
+ [windows] Thoát
+ *[other] Thoát
+ }
+ .accesskey =
+ { PLATFORM() ->
+ [windows] x
+ *[other] Q
+ }
+# This menu-quit-mac string is only used on macOS.
+menu-quit-mac =
+ .label = Thoát { -brand-shorter-name }
+menu-about =
+ .label = Về { -brand-shorter-name }
+ .accesskey = A
+
+## File Menu
+
+menu-file =
+ .label = Tập tin
+ .accesskey = F
+menu-file-new-tab =
+ .label = Thẻ mới
+ .accesskey = T
+menu-file-new-container-tab =
+ .label = Ngăn chứa thẻ mới
+ .accesskey = B
+menu-file-new-window =
+ .label = Cửa sổ mới
+ .accesskey = N
+menu-file-new-private-window =
+ .label = Cửa sổ riêng tư mới
+ .accesskey = W
+# "Open Location" is only displayed on macOS, and only on windows
+# that aren't main browser windows, or when there are no windows
+# but Firefox is still running.
+menu-file-open-location =
+ .label = Mở địa chỉ…
+menu-file-open-file =
+ .label = Mở tập tin…
+ .accesskey = O
+# Variables:
+# $tabCount (Number): the number of tabs that are affected by the action.
+menu-file-close-tab =
+ .label =
+ { $tabCount ->
+ [1] Đóng thẻ
+ *[other] Đóng { $tabCount } thẻ
+ }
+ .accesskey = C
+menu-file-close-window =
+ .label = Đóng cửa sổ
+ .accesskey = d
+menu-file-save-page =
+ .label = Lưu trang dưới dạng…
+ .accesskey = A
+menu-file-email-link =
+ .label = Gửi liên kết qua email…
+ .accesskey = E
+menu-file-share-url =
+ .label = Chia sẻ
+ .accesskey = h
+menu-file-print-setup =
+ .label = Thiết lập trang…
+ .accesskey = u
+menu-file-print =
+ .label = In…
+ .accesskey = P
+menu-file-import-from-another-browser =
+ .label = Nhập dữ liệu từ trình duyệt khác…
+ .accesskey = I
+menu-file-go-offline =
+ .label = Làm việc ngoại tuyến
+ .accesskey = k
+
+## Edit Menu
+
+menu-edit =
+ .label = Chỉnh sửa
+ .accesskey = E
+menu-edit-find-in-page =
+ .label = Tìm trong trang…
+ .accesskey = F
+menu-edit-find-again =
+ .label = Tìm lại
+ .accesskey = g
+menu-edit-bidi-switch-text-direction =
+ .label = Chuyển hướng văn bản
+ .accesskey = w
+
+## View Menu
+
+menu-view =
+ .label = Hiển thị
+ .accesskey = V
+menu-view-toolbars-menu =
+ .label = Thanh công cụ
+ .accesskey = T
+menu-view-customize-toolbar2 =
+ .label = Tùy biến thanh công cụ…
+ .accesskey = C
+menu-view-sidebar =
+ .label = Thanh lề
+ .accesskey = e
+menu-view-bookmarks =
+ .label = Dấu trang
+menu-view-history-button =
+ .label = Lịch sử
+menu-view-synced-tabs-sidebar =
+ .label = Các thẻ đã đồng bộ
+menu-view-full-zoom =
+ .label = Thu phóng
+ .accesskey = Z
+menu-view-full-zoom-enlarge =
+ .label = Phóng to
+ .accesskey = I
+menu-view-full-zoom-reduce =
+ .label = Thu nhỏ
+ .accesskey = O
+menu-view-full-zoom-actual-size =
+ .label = Kích thước thực
+ .accesskey = A
+menu-view-full-zoom-toggle =
+ .label = Chỉ phóng to văn bản
+ .accesskey = T
+menu-view-page-style-menu =
+ .label = Kiểu của trang
+ .accesskey = y
+menu-view-page-style-no-style =
+ .label = Không có kiểu
+ .accesskey = n
+menu-view-page-basic-style =
+ .label = Kiểu trang cơ bản
+ .accesskey = b
+menu-view-repair-text-encoding =
+ .label = Sửa chữa mã hóa văn bản
+ .accesskey = c
+
+## These should match what Safari and other Apple applications
+## use on macOS.
+
+menu-view-enter-full-screen =
+ .label = Vào chế độ toàn màn hình
+ .accesskey = F
+menu-view-exit-full-screen =
+ .label = Thoát chế độ toàn màn hình
+ .accesskey = F
+menu-view-full-screen =
+ .label = Toàn màn hình
+ .accesskey = F
+
+## These menu items may use the same accesskey.
+
+# This should match reader-view-enter-button in browser.ftl
+menu-view-enter-readerview =
+ .label = Vào chế độ đọc sách
+ .accesskey = R
+# This should match reader-view-close-button in browser.ftl
+menu-view-close-readerview =
+ .label = Đóng chế độ đọc sách
+ .accesskey = R
+
+##
+
+menu-view-show-all-tabs =
+ .label = Hiển thị tất cả các thẻ
+ .accesskey = A
+menu-view-bidi-switch-page-direction =
+ .label = Chuyển hướng trang
+ .accesskey = D
+
+## History Menu
+
+menu-history =
+ .label = Lịch sử
+ .accesskey = s
+menu-history-show-all-history =
+ .label = Xem toàn bộ lịch sử
+menu-history-clear-recent-history =
+ .label = Xóa lịch sử gần đây…
+menu-history-synced-tabs =
+ .label = Các thẻ đã đồng bộ
+menu-history-restore-last-session =
+ .label = Khôi phục phiên làm việc trước
+menu-history-hidden-tabs =
+ .label = Thẻ đã ẩn
+menu-history-undo-menu =
+ .label = Thẻ mới đóng gần đây
+menu-history-undo-window-menu =
+ .label = Các cửa sổ mới đóng
+menu-history-reopen-all-tabs = Mở lại tất cả các thẻ
+menu-history-reopen-all-windows = Mở lại tất cả các cửa sổ
+
+## Bookmarks Menu
+
+menu-bookmarks-menu =
+ .label = Dấu trang
+ .accesskey = B
+menu-bookmarks-manage =
+ .label = Quản lý dấu trang
+menu-bookmark-current-tab =
+ .label = Đánh dấu thẻ hiện tại
+menu-bookmark-edit =
+ .label = Chỉnh sửa dấu trang này
+menu-bookmark-tab =
+ .label = Đánh dấu thẻ hiện tại…
+menu-edit-bookmark =
+ .label = Chỉnh sửa dấu trang này…
+menu-bookmarks-all-tabs =
+ .label = Đánh dấu tất cả các thẻ…
+menu-bookmarks-toolbar =
+ .label = Thanh dấu trang
+menu-bookmarks-other =
+ .label = Dấu trang khác
+menu-bookmarks-mobile =
+ .label = Dấu trang trên di động
+
+## Tools Menu
+
+menu-tools =
+ .label = Công cụ
+ .accesskey = T
+menu-tools-downloads =
+ .label = Tải xuống
+ .accesskey = D
+menu-tools-addons-and-themes =
+ .label = Tiện ích mở rộng và chủ đề
+ .accesskey = A
+menu-tools-fxa-sign-in2 =
+ .label = Đăng nhập
+ .accesskey = g
+menu-tools-turn-on-sync2 =
+ .label = Bật đồng bộ hóa…
+ .accesskey = n
+menu-tools-sync-now =
+ .label = Đồng bộ ngay
+ .accesskey = S
+menu-tools-fxa-re-auth =
+ .label = Kết nối lại vào { -brand-product-name }…
+ .accesskey = R
+menu-tools-browser-tools =
+ .label = Công cụ trình duyệt
+ .accesskey = B
+menu-tools-task-manager =
+ .label = Trình quản lý tác vụ
+ .accesskey = M
+menu-tools-page-source =
+ .label = Mở mã nguồn trang
+ .accesskey = o
+menu-tools-page-info =
+ .label = Thông tin trang
+ .accesskey = I
+menu-settings =
+ .label = Cài đặt
+ .accesskey =
+ { PLATFORM() ->
+ [windows] S
+ *[other] n
+ }
+menu-tools-layout-debugger =
+ .label = Trình gỡ lỗi bố cục
+ .accesskey = L
+
+## Window Menu
+
+menu-window-menu =
+ .label = Cửa sổ
+menu-window-bring-all-to-front =
+ .label = Đưa tất cả ra phía trước
+
+## Help Menu
+
+
+# NOTE: For Engineers, any additions or changes to Help menu strings should
+# also be reflected in the related strings in appmenu.ftl. Those strings, by
+# convention, will have the same ID as these, but prefixed with "app".
+# Example: appmenu-get-help
+#
+# These strings are duplicated to allow for different casing depending on
+# where the strings appear.
+
+menu-help =
+ .label = Trợ giúp
+ .accesskey = H
+menu-get-help =
+ .label = Nhận trợ giúp
+ .accesskey = H
+menu-help-more-troubleshooting-info =
+ .label = Thông tin xử lý sự cố khác
+ .accesskey = T
+menu-help-report-site-issue =
+ .label = Báo cáo vấn đề về trang…
+menu-help-share-ideas =
+ .label = Chia sẻ ý tưởng và phản hồi…
+ .accesskey = S
+menu-help-enter-troubleshoot-mode2 =
+ .label = Chế độ xử lý sự cố…
+ .accesskey = M
+menu-help-exit-troubleshoot-mode =
+ .label = Tắt chế độ xử lý sự cố
+ .accesskey = M
+# Label of the Help menu item. Either this or
+# menu-help-notdeceptive is shown.
+menu-help-report-deceptive-site =
+ .label = Báo cáo trang lừa đảo…
+ .accesskey = c
+menu-help-not-deceptive =
+ .label = Đây không phải là một trang lừa đảo…
+ .accesskey = d
diff --git a/l10n-vi/browser/browser/migration.ftl b/l10n-vi/browser/browser/migration.ftl
new file mode 100644
index 0000000000..5355063eb5
--- /dev/null
+++ b/l10n-vi/browser/browser/migration.ftl
@@ -0,0 +1,147 @@
+# 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/.
+
+migration-wizard =
+ .title = Trình nhập dữ liệu
+import-from =
+ { PLATFORM() ->
+ [windows] Nhập các tùy chọn, dấu trang, lịch sử, mật khẩu và các dữ liệu khác từ:
+ *[other] Nhập các tùy chỉnh, dấu trang, lịch sử, mật khẩu và các dữ liệu khác từ:
+ }
+import-from-bookmarks = Nhập các dấu trang từ:
+import-from-ie =
+ .label = Microsoft Internet Explorer
+ .accesskey = I
+import-from-edge =
+ .label = Microsoft Edge
+ .accesskey = E
+import-from-edge-legacy =
+ .label = Microsoft Edge cũ
+ .accesskey = L
+import-from-edge-beta =
+ .label = Microsoft Edge Beta
+ .accesskey = d
+import-from-nothing =
+ .label = Không nhập gì cả
+ .accesskey = h
+import-from-safari =
+ .label = Safari
+ .accesskey = S
+import-from-opera =
+ .label = Opera
+ .accesskey = O
+import-from-vivaldi =
+ .label = Vivaldi
+ .accesskey = V
+import-from-brave =
+ .label = Brave
+ .accesskey = r
+import-from-canary =
+ .label = Chrome Canary
+ .accesskey = n
+import-from-chrome =
+ .label = Chrome
+ .accesskey = C
+import-from-chrome-beta =
+ .label = Chrome Beta
+ .accesskey = B
+import-from-chrome-dev =
+ .label = Chrome Dev
+ .accesskey = D
+import-from-chromium =
+ .label = Chromium
+ .accesskey = u
+import-from-firefox =
+ .label = Firefox
+ .accesskey = x
+import-from-360se =
+ .label = 360 Secure Browser
+ .accesskey = 3
+import-from-opera-gx =
+ .label = Opera GX
+ .accesskey = G
+no-migration-sources = Không tìm thấy chương trình nào chứa dấu trang, lịch sử, hoặc dữ liệu mật khẩu.
+import-source-page-title = Nhập cài đặt và dữ liệu
+import-items-page-title = Các mục cần nhập
+import-items-description = Chọn các mục để nhập:
+import-permissions-page-title = Vui lòng cấp quyền cho { -brand-short-name }
+# Do not translate "Bookmarks.plist"; the file name is the same everywhere.
+import-permissions-description = macOS yêu cầu bạn cho phép { -brand-short-name } truy cập vào các trang đánh dấu của Safari. Nhấp vào “Tiếp tục” và chọn tệp “Bookmarks.plist” trong bảng Mở tệp.
+import-migrating-page-title = Đang nhập…
+import-migrating-description = Các mục sau đang được nhập…
+import-select-profile-page-title = Chọn hồ sơ
+import-select-profile-description = Các hồ sơ có thể nhập được từ:
+import-done-page-title = Nhập Xong
+import-done-description = Các mục sau đã được nhập thành công:
+import-close-source-browser = Vui lòng chắc chắn trình duyệt được chọn đã đóng truớc khi tiếp tục.
+source-name-ie = Internet Explorer
+source-name-edge = Microsoft Edge
+source-name-chrome = Google Chrome
+imported-safari-reading-list = Đang đọc danh sách (Từ Safari)
+imported-edge-reading-list = Đang đọc danh sách (từ Edge)
+
+## Browser data types
+## All of these strings get a $browser variable passed in.
+## You can use the browser variable to differentiate the name of items,
+## which may have different labels in different browsers.
+## The supported values for the $browser variable are:
+## 360se
+## chrome
+## edge
+## firefox
+## ie
+## safari
+## The various beta and development versions of edge and chrome all get
+## normalized to just "edge" and "chrome" for these strings.
+
+browser-data-cookies-checkbox =
+ .label = Cookie
+browser-data-cookies-label =
+ .value = Cookie
+browser-data-history-checkbox =
+ .label =
+ { $browser ->
+ [firefox] Lịch sử duyệt web và trang đánh dấu
+ *[other] Lịch sử duyệt web
+ }
+browser-data-history-label =
+ .value =
+ { $browser ->
+ [firefox] Lịch sử duyệt web và trang đánh dấu
+ *[other] Lịch sử duyệt web
+ }
+browser-data-formdata-checkbox =
+ .label = Lịch sử biểu mẫu đã lưu
+browser-data-formdata-label =
+ .value = Lịch sử biểu mẫu đã lưu
+# This string should use the same phrase for "logins and passwords" as the
+# label in the main hamburger menu that opens about:logins.
+browser-data-passwords-checkbox =
+ .label = Thông tin đăng nhập và mật khẩu đã lưu
+# This string should use the same phrase for "logins and passwords" as the
+# label in the main hamburger menu that opens about:logins.
+browser-data-passwords-label =
+ .value = Thông tin đăng nhập và mật khẩu đã lưu
+browser-data-bookmarks-checkbox =
+ .label =
+ { $browser ->
+ [ie] Yêu thích
+ [edge] Yêu thích
+ *[other] Dấu trang
+ }
+browser-data-bookmarks-label =
+ .value =
+ { $browser ->
+ [ie] Yêu thích
+ [edge] Yêu thích
+ *[other] Dấu trang
+ }
+browser-data-otherdata-checkbox =
+ .label = Dữ liệu khác
+browser-data-otherdata-label =
+ .label = Dữ liệu khác
+browser-data-session-checkbox =
+ .label = Cửa Sổ và Thẻ
+browser-data-session-label =
+ .value = Cửa Sổ và Thẻ
diff --git a/l10n-vi/browser/browser/netError.ftl b/l10n-vi/browser/browser/netError.ftl
new file mode 100644
index 0000000000..696815c4ea
--- /dev/null
+++ b/l10n-vi/browser/browser/netError.ftl
@@ -0,0 +1,13 @@
+# 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/.
+
+
+dns-not-found-title = Không tìm thấy máy chủ
+# Variables:
+# $hostAndPath (String) - a suggested site (e.g. "www.example.com") that the user may have meant instead.
+dns-not-found-with-suggestion = Ý bạn là truy cập đến trang web { $hostAndPath }?
+dns-not-found-hint-header = Nếu bạn đã nhập đúng địa chỉ, bạn có thể:
+dns-not-found-hint-try-again = Thử lại sau
+dns-not-found-hint-check-network = Kiểm tra kết nối mạng của bạn
+dns-not-found-hint-firewall = Kiểm tra xem { -brand-short-name } có quyền truy cập web hay không (bạn có thể được kết nối nhưng có tường lửa)
diff --git a/l10n-vi/browser/browser/newtab/asrouter.ftl b/l10n-vi/browser/browser/newtab/asrouter.ftl
new file mode 100644
index 0000000000..f3a138dec3
--- /dev/null
+++ b/l10n-vi/browser/browser/newtab/asrouter.ftl
@@ -0,0 +1,273 @@
+# 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/.
+
+
+## These messages are used as headings in the recommendation doorhanger
+
+cfr-doorhanger-extension-heading = Tiện ích được đề xuất
+cfr-doorhanger-feature-heading = Tính năng được đề xuất
+
+##
+
+cfr-doorhanger-extension-sumo-link =
+ .tooltiptext = Tại sao tôi thấy cái này
+cfr-doorhanger-extension-cancel-button = Không phải bây giờ
+ .accesskey = N
+cfr-doorhanger-extension-ok-button = Thêm vào ngay
+ .accesskey = A
+cfr-doorhanger-extension-manage-settings-button = Quản lý các thiết lập được đề xuất
+ .accesskey = M
+cfr-doorhanger-extension-never-show-recommendation = Không hiển thị cho tôi đề xuất này
+ .accesskey = S
+cfr-doorhanger-extension-learn-more-link = Tìm hiểu thêm
+# This string is used on a new line below the add-on name
+# Variables:
+# $name (String) - Add-on author name
+cfr-doorhanger-extension-author = bởi { $name }
+# This is a notification displayed in the address bar.
+# When clicked it opens a panel with a message for the user.
+cfr-doorhanger-extension-notification = Đề xuất
+cfr-doorhanger-extension-notification2 = Đề xuất
+ .tooltiptext = Tiện ích được đề xuất
+ .a11y-announcement = Tiện ích được đề xuất có sẵn
+# This is a notification displayed in the address bar.
+# When clicked it opens a panel with a message for the user.
+cfr-doorhanger-feature-notification = Đề xuất
+ .tooltiptext = Tính năng được đề xuất
+ .a11y-announcement = Tính năng được đề xuất có sẵn
+
+## Add-on statistics
+## These strings are used to display the total number of
+## users and rating for an add-on. They are shown next to each other.
+
+# Variables:
+# $total (Number) - The rating of the add-on from 1 to 5
+cfr-doorhanger-extension-rating =
+ .tooltiptext =
+ { $total ->
+ *[other] { $total } sao
+ }
+# Variables:
+# $total (Number) - The total number of users using the add-on
+cfr-doorhanger-extension-total-users =
+ { $total ->
+ *[other] { $total } người dùng
+ }
+
+## Cookie Banner Handling Onboarding
+
+# Simplified version of the headline if the original text doesn't work
+# in your language: `See fewer cookie requests`.
+cfr-cookie-banner-handling-header = Biểu ngữ cookie sẽ biến mất!
+cfr-cookie-banner-handling-body = Cho phép { -brand-short-name } tự động từ chối tất cả các yêu cầu biểu ngữ cookie khi có thể. Nếu không, tất cả các cookie sẽ được chấp nhận để loại bỏ nhiều biểu ngữ hơn nữa.
+cfr-cookie-banner-accept-button = Loại bỏ biểu ngữ cookie
+ .accesskey = D
+cfr-cookie-banner-reject-button = Không phải bây giờ
+ .accesskey = N
+cfr-cookie-banner-handling-header-variant-1 = Xem ít cửa sổ bật lên về cookie hơn
+cfr-cookie-banner-handling-body-variant-1 = Hãy để { -brand-short-name } tự động trả lời các cửa sổ bật lên cookie cho bạn để bạn có thể quay lại trình duyệt mà không bị phân tâm. { -brand-short-name } sẽ từ chối tất cả các yêu cầu nếu có thể hoặc chấp nhận tất cả nếu không.
+cfr-cookie-banner-accept-button-variant-1 = Loại bỏ cửa sổ bật lên
+ .accesskey = D
+cfr-cookie-banner-reject-button-variant-1 = Không, cảm ơn
+ .accesskey = N
+cfr-cookie-banner-handling-header-variant-2 = Giảm biểu ngữ cookie
+cfr-cookie-banner-handling-body-variant-2 = Cho phép { -brand-short-name } từ chối yêu cầu chấp thuận cookie của trang web nếu có thể hoặc chấp nhận quyền truy cập cookie khi không thể?
+cfr-cookie-banner-accept-button-variant-2 = Cho phép
+ .accesskey = A
+cfr-cookie-banner-reject-button-variant-2 = Không phải bây giờ
+ .accesskey = N
+
+## Firefox Accounts Message
+
+cfr-doorhanger-bookmark-fxa-header = Đồng bộ dấu trang của bạn ở mọi nơi.
+cfr-doorhanger-bookmark-fxa-body = Đã tìm thấy tuyệt vời! Bây giờ hãy đồng bộ các dấu trang này với thiết bị di động của bạn. Bắt đầu với một { -fxaccount-brand-name }.
+cfr-doorhanger-bookmark-fxa-link-text = Đồng bộ hóa dấu trang ngay bây giờ...
+cfr-doorhanger-bookmark-fxa-close-btn-tooltip =
+ .aria-label = Nút đóng
+ .title = Đóng
+
+## Protections panel
+
+cfr-protections-panel-header = Duyệt mà không bị theo dõi
+cfr-protections-panel-body = Giữ dữ liệu của bạn cho chính mình. { -brand-short-name } bảo vệ bạn khỏi nhiều trình theo dõi phổ biến nhất theo dõi những gì bạn làm trực tuyến.
+cfr-protections-panel-link-text = Tìm hiểu thêm
+
+## What's New toolbar button and panel
+
+# This string is used by screen readers to offer a text based alternative for
+# the notification icon
+cfr-badge-reader-label-newfeature = Tính năng mới:
+cfr-whatsnew-button =
+ .label = Có gì mới
+ .tooltiptext = Có gì mới
+cfr-whatsnew-release-notes-link-text = Đọc ghi chú phát hành
+
+## Enhanced Tracking Protection Milestones
+
+# Variables:
+# $blockedCount (Number) - The total count of blocked trackers. This number will always be greater than 1.
+# $date (Datetime) - The date we began recording the count of blocked trackers
+cfr-doorhanger-milestone-heading2 =
+ { $blockedCount ->
+ *[other] { -brand-short-name } đã chặn hơn { $blockedCount } trình theo dõi kể từ { DATETIME($date, month: "long", year: "numeric") }!
+ }
+cfr-doorhanger-milestone-ok-button = Xem tất cả
+ .accesskey = S
+cfr-doorhanger-milestone-close-button = Đóng
+ .accesskey = C
+
+## DOH Message
+
+cfr-doorhanger-doh-body = Vấn đề riêng tư của bạn. { -brand-short-name } bây giờ định tuyến an toàn các yêu cầu DNS của bạn bất cứ khi nào có thể đến dịch vụ đối tác để bảo vệ bạn trong khi bạn duyệt.
+cfr-doorhanger-doh-header = Truy vấn DNS được mã hóa, an toàn hơn
+cfr-doorhanger-doh-primary-button-2 = Okey
+ .accesskey = O
+cfr-doorhanger-doh-secondary-button = Vô hiệu hóa
+ .accesskey = D
+
+## Fission Experiment Message
+
+cfr-doorhanger-fission-body-approved = Quyền riêng tư của bạn được đặt lên hàng đầu. { -brand-short-name } hiện cô lập hoặc các trang web với nhau vào sandbox, điều này khiến tin tặc khó lấy cắp mật khẩu, số thẻ tín dụng và các thông tin nhạy cảm khác.
+cfr-doorhanger-fission-header = Cách ly trang web
+cfr-doorhanger-fission-primary-button = OK, đã hiểu
+ .accesskey = O
+cfr-doorhanger-fission-secondary-button = Tìm hiểu thêm
+ .accesskey = T
+
+## Full Video Support CFR message
+
+cfr-doorhanger-video-support-body = Các video trên trang web này có thể phát không đúng trên phiên bản { -brand-short-name } này. Để được hỗ trợ đầy đủ về video, hãy cập nhật { -brand-short-name } ngay bây giờ.
+cfr-doorhanger-video-support-header = Cập nhật { -brand-short-name } để phát video
+cfr-doorhanger-video-support-primary-button = Cập nhật bây giờ
+ .accesskey = U
+
+## Spotlight modal shared strings
+
+spotlight-learn-more-collapsed = Tìm hiểu thêm
+ .title = Mở rộng để tìm hiểu thêm về tính năng này
+spotlight-learn-more-expanded = Tìm hiểu thêm
+ .title = Đóng
+
+## VPN promotion dialog for public Wi-Fi users
+##
+## If a user is detected to be on a public Wi-Fi network, they are given a
+## bit of info about how to improve their privacy and then offered a button
+## to the Mozilla VPN page and a link to dismiss the dialog.
+
+# This header text can be explicitly wrapped.
+spotlight-public-wifi-vpn-header = Có vẻ như bạn đang sử dụng Wi-Fi công cộng
+spotlight-public-wifi-vpn-body = Để ẩn vị trí và hoạt động duyệt web của bạn, hãy xem xét đến VPN. Nó sẽ giúp bạn được bảo vệ khi duyệt web ở những nơi công cộng như sân bay và quán cà phê.
+spotlight-public-wifi-vpn-primary-button = Giữ riêng tư với { -mozilla-vpn-brand-name }
+ .accesskey = S
+spotlight-public-wifi-vpn-link = Không phải bây giờ
+ .accesskey = N
+
+## Total Cookie Protection Rollout
+
+# "Test pilot" is used as a verb. Possible alternatives: "Be the first to try",
+# "Join an early experiment". This header text can be explicitly wrapped.
+spotlight-total-cookie-protection-header =
+ Thử trải nghiệm quyền riêng tư mạnh mẽ nhất
+ của chúng tôi từ trước đến nay
+spotlight-total-cookie-protection-body = Trình chống cookie chung ngăn những trình theo dõi sử dụng cookie để theo dõi bạn trên web.
+# "Early access" for this feature rollout means it's a "feature preview" or
+# "soft launch" as not everybody will get it yet.
+spotlight-total-cookie-protection-expanded = { -brand-short-name } xây dựng một hàng rào xung quanh cookie, giới hạn chúng ở trang web bạn đang truy cập để trình theo dõi không thể sử dụng chúng để theo dõi bạn. Với quyền truy cập sớm, bạn sẽ giúp tối ưu hóa tính năng này để chúng tôi có thể tiếp tục xây dựng một trang web tốt hơn cho mọi người.
+spotlight-total-cookie-protection-primary-button = Bật Trình chống cookie chung
+spotlight-total-cookie-protection-secondary-button = Không phải bây giờ
+
+## Emotive Continuous Onboarding
+
+spotlight-better-internet-header = Internet tốt hơn bắt đầu với bạn
+spotlight-better-internet-body = Khi bạn sử dụng { -brand-short-name }, bạn đang bỏ phiếu cho một Internet mở và có thể truy cập tốt hơn cho tất cả mọi người.
+spotlight-peace-mind-header = Chúng tôi đã giúp bạn được bảo vệ
+spotlight-peace-mind-body = Hàng tháng, { -brand-short-name } chặn trung bình hơn 3.000 trình theo dõi cho mỗi người dùng. Bởi vì không có gì, đặc biệt là những phiền toái về quyền riêng tư như trình theo dõi, có thể ngăn cản bạn và internet tốt.
+spotlight-pin-primary-button =
+ { PLATFORM() ->
+ [macos] Giữ trên thanh Dock
+ *[other] Ghim vào thanh tác vụ
+ }
+spotlight-pin-secondary-button = Không phải bây giờ
+
+## MR2022 Background Update Windows native toast notification strings.
+##
+## These strings will be displayed by the Windows operating system in
+## a native toast, like:
+##
+## multi-line title
+## multi-line text
+##
+## [ primary button ] [ secondary button ]
+##
+## The button labels are fitted into narrow fixed-width buttons by
+## Windows and therefore must be as narrow as possible.
+
+mr2022-background-update-toast-title = { -brand-short-name } mới. Riêng tư hơn. Ít trình theo dõi hơn. Không có thỏa hiệp.
+mr2022-background-update-toast-text = Hãy thử { -brand-short-name } mới nhất ngay bây giờ, được nâng cấp với trình chống theo dõi mạnh nhất của chúng tôi.
+# This button label will be fitted into a narrow fixed-width button by
+# Windows. Try to not exceed the width of the English text (compare it
+# using a variable font like Arial): the button can only fit 1-2
+# additional characters, exceeding characters will be truncated.
+mr2022-background-update-toast-primary-button-label = Mở { -brand-shorter-name } ngay
+# This button label will be fitted into a narrow fixed-width button by
+# Windows. Try to not exceed the width of the English text (compare it using a
+# variable font like Arial): the button can only fit 1-2 additional characters,
+# exceeding characters will be truncated.
+mr2022-background-update-toast-secondary-button-label = Nhắc tôi sau
+
+## Firefox View CFR
+
+firefoxview-cfr-primarybutton = Thử ngay
+ .accesskey = T
+firefoxview-cfr-secondarybutton = Để sau
+ .accesskey = N
+firefoxview-cfr-header-v2 = Nhanh chóng bắt đầu từ nơi bạn đã dừng lại
+firefoxview-cfr-body-v2 = Lấy lại các thẻ đã đóng gần đây, cộng với chuyển đổi liền mạch giữa các thiết bị với { -firefoxview-brand-name }.
+
+## Firefox View Spotlight
+
+firefoxview-spotlight-promo-title = Xin chào với { -firefoxview-brand-name }
+# “Poof” refers to the expression to convey when something or someone suddenly disappears, or in this case, reappears. For example, “Poof, it’s gone.”
+firefoxview-spotlight-promo-subtitle = Muốn thẻ đang mở nằm trên điện thoại của bạn? Lấy nó. Cần trang web mà bạn vừa truy cập? Nó đã trở lại với { -firefoxview-brand-name }
+firefoxview-spotlight-promo-primarybutton = Xem cách hoạt động
+firefoxview-spotlight-promo-secondarybutton = Bỏ qua
+
+## Colorways expiry reminder CFR
+
+colorways-cfr-primarybutton = Chọn đường màu
+ .accesskey = C
+# "shades" refers to the different color options available to users in colorways.
+colorways-cfr-body = Tô màu trình duyệt của bạn với các sắc thái độc quyền của { -brand-short-name } lấy cảm hứng từ những tiếng nói thay đổi văn hóa.
+colorways-cfr-header-28days = Các màu cho giọng nói độc lập sẽ hết hạn vào ngày 16 tháng 1
+colorways-cfr-header-14days = Màu sắc của giọng nói độc lập sẽ hết hạn sau hai tuần nữa
+colorways-cfr-header-7days = Các màu cho giọng nói độc lập sẽ hết hạn trong tuần này
+colorways-cfr-header-today = Các màu giọng nói độc lập sẽ hết hạn vào ngày hôm nay
+
+## Cookie Banner Handling CFR
+
+# Alternate headline for localization: "See fewer cookie requests"
+cfr-cookiebanner-header = Biểu ngữ cookie sẽ biến mất!
+cfr-cookiebanner-body = Cho phép { -brand-short-name } tự động từ chối tất cả các yêu cầu biểu ngữ cookie khi có thể.
+cfr-cookiebanner-accept-button = Loại bỏ biểu ngữ
+ .accesskey = D
+cfr-cookiebanner-reject-button = Không phải bây giờ
+ .accesskey = N
+cfr-cookiebanner-header-variant-1 = Xem ít cửa sổ bật lên về cookie hơn
+cfr-cookiebanner-body-variant-1 = Hãy để { -brand-short-name } tự động trả lời các cửa sổ bật lên cookie cho bạn để bạn có thể quay lại trình duyệt mà không bị phân tâm. { -brand-short-name } sẽ từ chối tất cả các yêu cầu nếu có thể.
+cfr-cookiebanner-accept-button-variant-1 = Loại bỏ cửa sổ bật lên
+ .accesskey = D
+cfr-cookiebanner-reject-button-variant-1 = Không, cảm ơn
+ .accesskey = N
+cfr-cookiebanner-header-variant-2 = Giảm biểu ngữ cookie
+cfr-cookiebanner-body-variant-2 = Giảm số lượng biểu ngữ cookie bạn nhìn thấy bằng cách cho phép { -brand-short-name } từ chối yêu cầu chấp thuận cookie của trang web nếu có thể.
+cfr-cookiebanner-accept-button-variant-2 = Cho phép
+ .accesskey = A
+cfr-cookiebanner-reject-button-variant-2 = Không phải bây giờ
+ .accesskey = N
+
+## These strings are used in the Fox doodle Pin/set default spotlights
+
+july-jam-headline = Chúng tôi đã giúp bạn được bảo vệ
+july-jam-body = Mỗi tháng, { -brand-short-name } chặn trung bình hơn 3.000 trình theo dõi trên mỗi người dùng, giúp bạn truy cập Internet tốt một cách an toàn, nhanh chóng.
+july-jam-set-default-primary = Mở liên kết của tôi bằng { -brand-short-name }
diff --git a/l10n-vi/browser/browser/newtab/newtab.ftl b/l10n-vi/browser/browser/newtab/newtab.ftl
new file mode 100644
index 0000000000..b4267c401e
--- /dev/null
+++ b/l10n-vi/browser/browser/newtab/newtab.ftl
@@ -0,0 +1,281 @@
+# 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/.
+
+
+### Firefox Home / New Tab strings for about:home / about:newtab.
+
+newtab-page-title = Thẻ mới
+newtab-settings-button =
+ .title = Tùy biến trang thẻ mới
+newtab-personalize-icon-label =
+ .title = Cá nhân hóa thẻ mới
+ .aria-label = Cá nhân hóa thẻ mới
+newtab-personalize-dialog-label =
+ .aria-label = Cá nhân hóa
+
+## Search box component.
+
+# "Search" is a verb/action
+newtab-search-box-search-button =
+ .title = Tìm kiếm
+ .aria-label = Tìm kiếm
+
+# Variables
+# $engine (String): the name of the user's default search engine
+newtab-search-box-handoff-text = Tìm kiếm với { $engine } hoặc nhập địa chỉ
+newtab-search-box-handoff-text-no-engine = Tìm kiếm hoặc nhập địa chỉ
+# Variables
+# $engine (String): the name of the user's default search engine
+newtab-search-box-handoff-input =
+ .placeholder = Tìm kiếm với { $engine } hoặc nhập địa chỉ
+ .title = Tìm kiếm với { $engine } hoặc nhập địa chỉ
+ .aria-label = Tìm kiếm với { $engine } hoặc nhập địa chỉ
+newtab-search-box-handoff-input-no-engine =
+ .placeholder = Tìm kiếm hoặc nhập địa chỉ
+ .title = Tìm kiếm hoặc nhập địa chỉ
+ .aria-label = Tìm kiếm hoặc nhập địa chỉ
+
+newtab-search-box-text = Tìm kiếm trên mạng
+newtab-search-box-input =
+ .placeholder = Tìm kiếm trên mạng
+ .aria-label = Tìm kiếm trên mạng
+
+## Top Sites - General form dialog.
+
+newtab-topsites-add-search-engine-header = Thêm công cụ tìm kiếm
+newtab-topsites-add-shortcut-header = Lối tắt mới
+newtab-topsites-edit-topsites-header = Sửa trang web hàng đầu
+newtab-topsites-edit-shortcut-header = Chỉnh sửa lối tắt
+newtab-topsites-title-label = Tiêu đề
+newtab-topsites-title-input =
+ .placeholder = Nhập tiêu đề
+
+newtab-topsites-url-label = URL
+newtab-topsites-url-input =
+ .placeholder = Nhập hoặc dán URL
+newtab-topsites-url-validation = Yêu cầu URL hợp lệ
+
+newtab-topsites-image-url-label = Hình ảnh Tuỳ chỉnh URL
+newtab-topsites-use-image-link = Sử dụng hình ảnh tùy chỉnh…
+newtab-topsites-image-validation = Không tải được hình ảnh. Hãy thử một URL khác.
+
+## Top Sites - General form dialog buttons. These are verbs/actions.
+
+newtab-topsites-cancel-button = Hủy bỏ
+newtab-topsites-delete-history-button = Xóa khỏi lịch sử
+newtab-topsites-save-button = Lưu lại
+newtab-topsites-preview-button = Xem trước
+newtab-topsites-add-button = Thêm
+
+## Top Sites - Delete history confirmation dialog.
+
+newtab-confirm-delete-history-p1 = Bạn có chắc bạn muốn xóa bỏ mọi thứ của trang này từ lịch sử?
+# "This action" refers to deleting a page from history.
+newtab-confirm-delete-history-p2 = Thao tác này không thể hoàn tác được.
+
+## Top Sites - Sponsored label
+
+newtab-topsite-sponsored = Được tài trợ
+
+## Context Menu - Action Tooltips.
+
+# General tooltip for context menus.
+newtab-menu-section-tooltip =
+ .title = Mở bảng chọn
+ .aria-label = Mở bảng chọn
+
+# Tooltip for dismiss button
+newtab-dismiss-button-tooltip =
+ .title = Gỡ bỏ
+ .aria-label = Gỡ bỏ
+
+# This tooltip is for the context menu of Pocket cards or Topsites
+# Variables:
+# $title (String): The label or hostname of the site. This is for screen readers when the context menu button is focused/active.
+newtab-menu-content-tooltip =
+ .title = Mở bảng chọn
+ .aria-label = Mở bảng chọn ngữ cảnh cho { $title }
+# Tooltip on an empty topsite box to open the New Top Site dialog.
+newtab-menu-topsites-placeholder-tooltip =
+ .title = Chỉnh sửa trang web này
+ .aria-label = Chỉnh sửa trang web này
+
+## Context Menu: These strings are displayed in a context menu and are meant as a call to action for a given page.
+
+newtab-menu-edit-topsites = Chỉnh sửa
+newtab-menu-open-new-window = Mở trong cửa sổ mới
+newtab-menu-open-new-private-window = Mở trong cửa sổ riêng tư mới
+newtab-menu-dismiss = Bỏ qua
+newtab-menu-pin = Ghim
+newtab-menu-unpin = Bỏ ghim
+newtab-menu-delete-history = Xóa khỏi lịch sử
+newtab-menu-save-to-pocket = Lưu vào { -pocket-brand-name }
+newtab-menu-delete-pocket = Xóa khỏi { -pocket-brand-name }
+newtab-menu-archive-pocket = Lưu trữ trong { -pocket-brand-name }
+newtab-menu-show-privacy-info = Nhà tài trợ của chúng tôi và sự riêng tư của bạn
+
+## Message displayed in a modal window to explain privacy and provide context for sponsored content.
+
+newtab-privacy-modal-button-done = Xong
+newtab-privacy-modal-button-manage = Quản lý cài đặt nội dung được tài trợ
+newtab-privacy-modal-header = Vấn đề riêng tư của bạn.
+newtab-privacy-modal-paragraph-2 =
+ Ngoài việc tận hưởng những câu chuyện hấp dẫn, chúng tôi cũng cho bạn thấy có liên quan,
+ nội dung được đánh giá cao từ các nhà tài trợ chọn lọc. Hãy yên tâm, dữ liệu duyệt của bạn
+ không bao giờ để lại bản sao { -brand-product-name } của bạn — chúng tôi không thể nhìn thấy nó
+ và các tài trợ của chúng tôi cũng vậy.
+newtab-privacy-modal-link = Tìm hiểu cách hoạt động của quyền riêng tư trên thẻ mới
+
+##
+
+# Bookmark is a noun in this case, "Remove bookmark".
+newtab-menu-remove-bookmark = Xóa dấu trang
+# Bookmark is a verb here.
+newtab-menu-bookmark = Dấu trang
+
+## Context Menu - Downloaded Menu. "Download" in these cases is not a verb,
+## it is a noun. As in, "Copy the link that belongs to this downloaded item".
+
+newtab-menu-copy-download-link = Sao chép địa chỉ tải xuống
+newtab-menu-go-to-download-page = Đi đến trang web tải xuống
+newtab-menu-remove-download = Xóa khỏi lịch sử
+
+## Context Menu - Download Menu: These are platform specific strings found in the context menu of an item that has
+## been downloaded. The intention behind "this action" is that it will show where the downloaded file exists on the file
+## system for each operating system.
+
+newtab-menu-show-file =
+ { PLATFORM() ->
+ [macos] Hiển thị trong Finder
+ *[other] Mở thư mục chứa
+ }
+newtab-menu-open-file = Mở tập tin
+
+## Card Labels: These labels are associated to pages to give
+## context on how the element is related to the user, e.g. type indicates that
+## the page is bookmarked, or is currently open on another device.
+
+newtab-label-visited = Đã truy cập
+newtab-label-bookmarked = Đã được đánh dấu
+newtab-label-removed-bookmark = Đã xóa dấu trang
+newtab-label-recommended = Xu hướng
+newtab-label-saved = Đã lưu vào { -pocket-brand-name }
+newtab-label-download = Đã tải xuống
+
+# This string is used in the story cards to indicate sponsored content
+# Variables:
+# $sponsorOrSource (String): This is the name of a company or their domain
+newtab-label-sponsored = { $sponsorOrSource } · Được tài trợ
+
+# This string is used at the bottom of story cards to indicate sponsored content
+# Variables:
+# $sponsor (String): This is the name of a sponsor
+newtab-label-sponsored-by = Được tài trợ bởi { $sponsor }
+
+# This string is used under the image of story cards to indicate source and time to read
+# Variables:
+# $source (String): This is the name of a company or their domain
+# $timeToRead (Number): This is the estimated number of minutes to read this story
+newtab-label-source-read-time = { $source } · { $timeToRead } phút
+
+## Section Menu: These strings are displayed in the section context menu and are
+## meant as a call to action for the given section.
+
+newtab-section-menu-remove-section = Xoá mục
+newtab-section-menu-collapse-section = Thu gọn mục
+newtab-section-menu-expand-section = Mở rộng mục
+newtab-section-menu-manage-section = Quản lý mục
+newtab-section-menu-manage-webext = Quản lí tiện ích
+newtab-section-menu-add-topsite = Thêm trang web hàng đầu
+newtab-section-menu-add-search-engine = Thêm công cụ tìm kiếm
+newtab-section-menu-move-up = Di chuyển lên
+newtab-section-menu-move-down = Di chuyển xuống
+newtab-section-menu-privacy-notice = Thông báo bảo mật
+
+## Section aria-labels
+
+newtab-section-collapse-section-label =
+ .aria-label = Thu gọn mục
+newtab-section-expand-section-label =
+ .aria-label = Mở rộng mục
+
+## Section Headers.
+
+newtab-section-header-topsites = Trang web hàng đầu
+newtab-section-header-recent-activity = Hoạt động gần đây
+# Variables:
+# $provider (String): Name of the corresponding content provider.
+newtab-section-header-pocket = Được đề xuất bởi { $provider }
+
+## Empty Section States: These show when there are no more items in a section. Ex. When there are no more Pocket story recommendations, in the space where there would have been stories, this is shown instead.
+
+newtab-empty-section-highlights = Bắt đầu duyệt web và chúng tôi sẽ hiển thị một số bài báo, video, và các trang khác mà bạn đã xem hoặc đã đánh dấu tại đây.
+
+# Ex. When there are no more Pocket story recommendations, in the space where there would have been stories, this is shown instead.
+# Variables:
+# $provider (String): Name of the content provider for this section, e.g "Pocket".
+newtab-empty-section-topstories = Bạn đã bắt kịp. Kiểm tra lại sau để biết thêm các câu chuyện hàng đầu từ { $provider }. Không muốn đợi? Chọn một chủ đề phổ biến để tìm thêm những câu chuyện tuyệt vời từ khắp nơi trên web.
+
+## Empty Section (Content Discovery Experience). These show when there are no more stories or when some stories fail to load.
+
+newtab-discovery-empty-section-topstories-header = Bạn đã bắt kịp!
+newtab-discovery-empty-section-topstories-content = Kiểm tra lại sau để biết thêm câu chuyện.
+newtab-discovery-empty-section-topstories-try-again-button = Thử lại
+newtab-discovery-empty-section-topstories-loading = Đang tải…
+# Displays when a layout in a section took too long to fetch articles.
+newtab-discovery-empty-section-topstories-timed-out = Rất tiếc! Chúng tôi gần như tải phần này, nhưng không hoàn toàn.
+
+## Pocket Content Section.
+
+# This is shown at the bottom of the trending stories section and precedes a list of links to popular topics.
+newtab-pocket-read-more = Các chủ đề phổ biến:
+newtab-pocket-new-topics-title = Muốn nhiều câu chuyện hơn nữa? Xem các chủ đề phổ biến này từ { -pocket-brand-name }
+newtab-pocket-more-recommendations = Nhiều khuyến nghị hơn
+newtab-pocket-learn-more = Tìm hiểu thêm
+newtab-pocket-cta-button = Nhận { -pocket-brand-name }
+newtab-pocket-cta-text = Lưu những câu chuyện bạn yêu thích trong { -pocket-brand-name } và vui vẻ khi đọc chúng.
+newtab-pocket-pocket-firefox-family = { -pocket-brand-name } là một phần của gia đình { -brand-product-name }
+
+# A save to Pocket button that shows over the card thumbnail on hover.
+newtab-pocket-save-to-pocket = Lưu vào { -pocket-brand-name }
+newtab-pocket-saved-to-pocket = Đã lưu vào { -pocket-brand-name }
+
+# This is a button shown at the bottom of the Pocket section that loads more stories when clicked.
+newtab-pocket-load-more-stories-button = Tải thêm các câu chuyện
+
+## Pocket Final Card Section.
+## This is for the final card in the Pocket grid.
+
+newtab-pocket-last-card-title = Bạn đã bắt kịp tất cả!
+newtab-pocket-last-card-desc = Kiểm tra lại sau để biết thêm.
+newtab-pocket-last-card-image =
+ .alt = Bạn đã bắt kịp tất cả
+
+# A save to Pocket button that shows over the card thumbnail on hover.
+newtab-pocket-save = Lưu
+newtab-pocket-saved = Đã lưu
+
+## Error Fallback Content.
+## This message and suggested action link are shown in each section of UI that fails to render.
+
+newtab-error-fallback-info = Rất tiếc, đã xảy ra lỗi khi tải nội dung này.
+newtab-error-fallback-refresh-link = Thử làm mới lại trang.
+
+## Customization Menu
+
+newtab-custom-shortcuts-title = Lối tắt
+newtab-custom-shortcuts-subtitle = Các trang web bạn lưu hoặc truy cập
+newtab-custom-row-selector =
+ { $num ->
+ *[other] { $num } hàng
+ }
+newtab-custom-sponsored-sites = Các lối tắt được tài trợ
+newtab-custom-pocket-title = Được đề xuất bởi { -pocket-brand-name }
+newtab-custom-pocket-subtitle = Nội dung đặc biệt do { -pocket-brand-name }, một phần của { -brand-product-name }, quản lý
+newtab-custom-pocket-sponsored = Câu chuyện được tài trợ
+newtab-custom-pocket-show-recent-saves = Hiển thị các lần lưu gần đây
+newtab-custom-recent-title = Hoạt động gần đây
+newtab-custom-recent-subtitle = Tuyển chọn các trang và nội dung gần đây
+newtab-custom-close-button = Đóng
+newtab-custom-settings = Quản lý các cài đặt khác
diff --git a/l10n-vi/browser/browser/newtab/onboarding.ftl b/l10n-vi/browser/browser/newtab/onboarding.ftl
new file mode 100644
index 0000000000..f00228fd5e
--- /dev/null
+++ b/l10n-vi/browser/browser/newtab/onboarding.ftl
@@ -0,0 +1,421 @@
+# 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/.
+
+
+### UI strings for the MR1 onboarding / multistage about:welcome
+### Various strings use a non-breaking space to avoid a single dangling /
+### widowed word, so test on various window sizes if you also want this.
+
+
+## Welcome page strings
+
+onboarding-welcome-header = Chào mừng đến với { -brand-short-name }
+onboarding-start-browsing-button-label = Bắt đầu duyệt web
+onboarding-not-now-button-label = Không phải bây giờ
+
+## Custom Return To AMO onboarding strings
+
+return-to-amo-subtitle = Thật tuyệt, bạn đã có { -brand-short-name }
+# will be replaced with the icon belonging to the extension
+#
+# Variables:
+# $addon-name (String) - Name of the add-on
+return-to-amo-addon-title = Bây giờ, bạn có thể cài đặt { $addon-name }.
+return-to-amo-add-extension-label = Thêm tiện ích mở rộng
+return-to-amo-add-theme-label = Thêm chủ đề
+
+## Variables: $addon-name (String) - Name of the add-on to be installed
+
+mr1-return-to-amo-subtitle = Gặp gỡ với { -brand-short-name }
+mr1-return-to-amo-addon-title = Bạn đã có một trình duyệt nhanh, riêng tư trong tầm tay. Giờ đây, bạn có thể thêm { $addon-name } và thậm chí còn làm được nhiều hơn thế với { -brand-short-name }
+mr1-return-to-amo-add-extension-label = Thêm { $addon-name }
+
+## Multistage onboarding strings (about:welcome pages)
+
+# Aria-label to make the "steps" of multistage onboarding visible to screen readers.
+# Variables:
+# $current (Int) - Number of the current page
+# $total (Int) - Total number of pages
+onboarding-welcome-steps-indicator =
+ .aria-label = Bắt đầu: { $current } của { $total }
+
+# Aria-label to make the "steps" of multistage onboarding visible to screen readers.
+# Variables:
+# $current (Int) - Number of the current page
+# $total (Int) - Total number of pages
+
+onboarding-welcome-steps-indicator2 =
+ .aria-valuetext = Tiến trình: bước { $current }/{ $total }
+onboarding-welcome-steps-indicator-label =
+ .aria-label = Tiến trình: bước { $current }/{ $total }
+# "Hero Text" displayed on left side of welcome screen.
+# The "Fire" in "Fire starts here" plays on the "Fire" in "Firefox".
+# It also signals the passion users bring to Firefox, how they use
+# Firefox to pursue those passions, as well as the boldness in their
+# choice to use Firefox over a larger competitor browser.
+# An alternative title for localization is: "It starts here".
+# This text can be formatted to span multiple lines as needed.
+mr1-welcome-screen-hero-text = Nó bắt đầu từ đây
+# Caption for background image in about:welcome. "Soraya Osorio" is the name
+# of the person and shouldn't be translated.
+# In case your language needs to adapt the nouns to a gender, Soraya is a female name (she/her).
+# You can see the picture in about:welcome in Nightly 90.
+mr1-onboarding-welcome-image-caption = Soraya Osorio — Nhà thiết kế nội thất, người hâm mộ Firefox
+# This button will open system settings to turn on prefers-reduced-motion
+mr1-onboarding-reduce-motion-button-label = Tắt hoạt ảnh
+
+## Title and primary button strings differ between platforms as they
+## match the OS' application context menu item action where Windows uses "pin"
+## and "taskbar" while macOS "keep" and "Dock" (proper noun).
+
+# Title used on welcome page when Firefox is not pinned
+mr1-onboarding-pin-header =
+ { PLATFORM() ->
+ [macos] Giữ { -brand-short-name } trong Dock của bạn để dễ dàng truy cập
+ *[other] Ghim { -brand-short-name } vào thanh tác vụ của bạn để dễ dàng truy cập
+ }
+# Primary button string used on welcome page when Firefox is not pinned.
+mr1-onboarding-pin-primary-button-label =
+ { PLATFORM() ->
+ [macos] Thêm vào thanh Dock
+ *[other] Ghim vào thanh tác vụ
+ }
+
+## Multistage MR1 onboarding strings (about:welcome pages)
+
+# This string will be used on welcome page primary button label
+# when Firefox is both pinned and default
+mr1-onboarding-get-started-primary-button-label = Bắt đầu
+mr1-onboarding-welcome-header = Chào mừng đến với { -brand-short-name }
+mr1-onboarding-set-default-pin-primary-button-label = Đặt { -brand-short-name } làm trình duyệt mặc định của tôi
+ .title = Đặt { -brand-short-name } làm trình duyệt mặc định và ghim vào thanh tác vụ
+# This string will be used on welcome page primary button label
+# when Firefox is not default but already pinned
+mr1-onboarding-set-default-only-primary-button-label = Đặt { -brand-short-name } làm trình duyệt mặc định của tôi
+mr1-onboarding-set-default-secondary-button-label = Không phải bây giờ
+mr1-onboarding-sign-in-button-label = Đăng nhập
+
+## Title, subtitle and primary button string used on set default onboarding screen
+## when Firefox is not default browser
+
+mr1-onboarding-default-header = Đặt { -brand-short-name } làm trình duyệt mặc định của bạn
+mr1-onboarding-default-subtitle = Đặt tốc độ, an toàn và quyền riêng tư vào chế độ tự động.
+mr1-onboarding-default-primary-button-label = Đặt làm trình duyệt mặc định
+
+## Multistage MR1 onboarding strings (about:welcome pages)
+
+mr1-onboarding-import-header = Mang theo tất cả bên bạn
+mr1-onboarding-import-subtitle = Nhập mật khẩu của bạn, dấu trang và hơn thế nữa.
+# The primary import button label will depend on whether we can detect which browser was used to download Firefox.
+# Variables:
+# $previous (Str) - Previous browser name, such as Edge, Chrome
+mr1-onboarding-import-primary-button-label-attribution = Nhập từ { $previous }
+# This string will be used in cases where we can't detect the previous browser name.
+mr1-onboarding-import-primary-button-label-no-attribution = Nhập từ trình duyệt trước
+mr1-onboarding-import-secondary-button-label = Không phải bây giờ
+mr2-onboarding-colorway-header = Cuộc sống đầy màu sắc
+mr2-onboarding-colorway-subtitle = Các phối màu mới sống động. Có sẵn trong một thời gian giới hạn.
+mr2-onboarding-colorway-primary-button-label = Lưu phối màu
+mr2-onboarding-colorway-secondary-button-label = Không phải bây giờ
+mr2-onboarding-colorway-label-soft = Mềm
+mr2-onboarding-colorway-label-balanced = Cân bằng
+# "Bold" is used in the sense of bravery or courage, not in the sense of
+# emphasized text.
+mr2-onboarding-colorway-label-bold = Đậm
+# Automatic theme uses operating system color settings
+mr2-onboarding-theme-label-auto = Tự động
+# This string will be used for Default theme
+mr2-onboarding-theme-label-default = Mặc định
+mr1-onboarding-theme-header = Biến nó thành của riêng bạn
+mr1-onboarding-theme-subtitle = Cá nhân hóa { -brand-short-name } với một chủ đề.
+mr1-onboarding-theme-primary-button-label = Lưu chủ đề
+mr1-onboarding-theme-secondary-button-label = Không phải bây giờ
+# System theme uses operating system color settings
+mr1-onboarding-theme-label-system = Chủ đề hệ thống
+mr1-onboarding-theme-label-light = Sáng
+mr1-onboarding-theme-label-dark = Tối
+# "Alpenglow" here is the name of the theme, and should be kept in English.
+mr1-onboarding-theme-label-alpenglow = Alpenglow
+onboarding-theme-primary-button-label = Xong
+
+## Please make sure to split the content of the title attribute into lines whose
+## width corresponds to about 40 Latin characters, to ensure that the tooltip
+## doesn't become too long. Line breaks will be preserved when displaying the
+## tooltip.
+
+# Tooltip displayed on hover of system theme
+mr1-onboarding-theme-tooltip-system =
+ .title =
+ Áp dụng theo chủ đề hệ điều hành
+ cho các nút, menu và cửa sổ.
+# Input description for system theme
+mr1-onboarding-theme-description-system =
+ .aria-description =
+ Áp dụng theo chủ đề hệ điều hành
+ cho các nút, menu và cửa sổ.
+# Tooltip displayed on hover of light theme
+mr1-onboarding-theme-tooltip-light =
+ .title =
+ Áp dụng chủ đề sáng
+ cho các nút, menu và cửa sổ.
+# Input description for light theme
+mr1-onboarding-theme-description-light =
+ .aria-description =
+ Áp dụng chủ đề sáng
+ cho các nút, menu và cửa sổ.
+# Tooltip displayed on hover of dark theme
+mr1-onboarding-theme-tooltip-dark =
+ .title =
+ Áp dụng chủ đề tối
+ cho các nút, menu và cửa sổ.
+# Input description for dark theme
+mr1-onboarding-theme-description-dark =
+ .aria-description =
+ Áp dụng chủ đề tối
+ cho các nút, menu và cửa sổ.
+# Tooltip displayed on hover of Alpenglow theme
+mr1-onboarding-theme-tooltip-alpenglow =
+ .title =
+ Sử dụng giao diện động, đầy màu sắc
+ cho các nút, menu và cửa sổ
+# Input description for Alpenglow theme
+mr1-onboarding-theme-description-alpenglow =
+ .aria-description =
+ Sử dụng giao diện động, đầy màu sắc
+ cho các nút, menu và cửa sổ
+# Tooltip displayed on hover of non-default colorway theme
+# variations e.g. soft, balanced, bold
+mr2-onboarding-theme-tooltip =
+ .title = Sử dụng phối màu này.
+# Selector description for non-default colorway theme
+# variations e.g. soft, balanced, bold
+mr2-onboarding-theme-description =
+ .aria-description = Sử dụng phối màu này.
+# Tooltip displayed on hover of colorway
+# Variables:
+# $colorwayName (String) - Name of colorway
+mr2-onboarding-colorway-tooltip =
+ .title = Khám phá các phối màu { $colorwayName }.
+# Selector description for colorway
+# Variables:
+# $colorwayName (String) - Name of colorway
+mr2-onboarding-colorway-label = Khám phá các phối màu { $colorwayName }.
+# Tooltip displayed on hover of default themes
+mr2-onboarding-default-theme-tooltip =
+ .title = Khám phá các chủ đề mặc định.
+# Selector description for default themes
+mr2-onboarding-default-theme-label = Khám phá các chủ đề mặc định.
+
+## Strings for Thank You page
+
+mr2-onboarding-thank-you-header = Cảm ơn bạn đã chọn chúng tôi
+mr2-onboarding-thank-you-text = { -brand-short-name } là một trình duyệt độc lập được hỗ trợ bởi một tổ chức phi lợi nhuận. Cùng nhau, chúng ta đang làm cho web an toàn hơn, lành mạnh hơn và riêng tư hơn.
+mr2-onboarding-start-browsing-button-label = Bắt đầu duyệt web
+
+## Multistage live language reloading onboarding strings (about:welcome pages)
+##
+## The following language names are generated by the browser's Intl.DisplayNames API.
+##
+## Variables:
+## $negotiatedLanguage (String) - The name of the langpack's language, e.g. "Español (ES)"
+
+
+## Multistage live language reloading onboarding strings (about:welcome pages)
+##
+## The following language names are generated by the browser's Intl.DisplayNames API.
+##
+## Variables:
+## $negotiatedLanguage (String) - The name of the langpack's language, e.g. "Español (ES)"
+## $systemLanguage (String) - The name of the system language, e.g "Español (ES)"
+## $appLanguage (String) - The name of the language shipping in the browser build, e.g. "English (EN)"
+
+onboarding-live-language-header = Chọn ngôn ngữ của bạn
+mr2022-onboarding-live-language-text = { -brand-short-name } hỗ trợ ngôn ngữ của bạn
+mr2022-language-mismatch-subtitle = Cảm ơn cộng đồng của chúng tôi, { -brand-short-name } được dịch sang hơn 90 ngôn ngữ. Có vẻ như hệ thống của bạn đang sử dụng { $systemLanguage } và { -brand-short-name } đang sử dụng { $appLanguage }.
+onboarding-live-language-button-label-downloading = Đang tải xuống gói ngôn ngữ cho { $negotiatedLanguage }…
+onboarding-live-language-waiting-button = Nhận các ngôn ngữ khả dụng…
+onboarding-live-language-installing = Đang cài đặt gói ngôn ngữ cho { $negotiatedLanguage }…
+mr2022-onboarding-live-language-switch-to = Chuyển sang { $negotiatedLanguage }
+mr2022-onboarding-live-language-continue-in = Tiếp tục với ngôn ngữ { $appLanguage }
+onboarding-live-language-secondary-cancel-download = Hủy bỏ
+onboarding-live-language-skip-button-label = Bỏ qua
+
+## Firefox 100 Thank You screens
+
+# "Hero Text" displayed on left side of welcome screen. This text can be
+# formatted to span multiple lines as needed. The
+# in this string allows a "zap" underline style to be automatically
+# added to the text inside it. "Yous" should stay inside the zap span, but
+# "Thank" can be put inside instead if there's no "you" in the translation.
+# The English text would normally be "100 Thank-Yous" i.e., plural noun, but for
+# aesthetics of splitting it across multiple lines, the hyphen is omitted.
+fx100-thank-you-hero-text =
+ 100
+ Cảm ơn bạn
+fx100-thank-you-subtitle = Đây là bản phát hành thứ 100 của chúng tôi! Cảm ơn bạn đã giúp chúng tôi xây dựng một Internet tốt hơn, lành mạnh hơn.
+fx100-thank-you-pin-primary-button-label =
+ { PLATFORM() ->
+ [macos] Giữ { -brand-short-name } trên thanh dock
+ *[other] Ghim { -brand-short-name } vào thanh tác vụ
+ }
+fx100-upgrade-thanks-header = 100 lần cảm ơn bạn
+# Message shown with a start-browsing button. Emphasis should be for "you"
+# but "Thank" can be used instead if there's no "you" in the translation.
+fx100-upgrade-thank-you-body = Đây là bản phát hành thứ 100 của chúng tôi về { -brand-short-name }. Cảm ơn bạn đã giúp chúng tôi xây dựng một Internet tốt hơn, lành mạnh hơn.
+# Message shown with either a pin-to-taskbar or set-default button.
+fx100-upgrade-thanks-keep-body = Đây là bản phát hành thứ 100 của chúng tôi! Cảm ơn vì đã trở thành một phần của cộng đồng của chúng tôi. Giữ { -brand-short-name } một cú nhấp chuột cho lần tiếp theo thứ 100.
+mr2022-onboarding-secondary-skip-button-label = Bỏ qua bước này
+
+## MR2022 New User Pin Firefox screen strings
+
+# Title used on about:welcome for new users when Firefox is not pinned.
+# In this context, open up is synonymous with "Discover".
+# The metaphor is that when they open their Firefox browser, it helps them discover an amazing internet.
+# If this translation does not make sense in your language, feel free to use the word "discover."
+mr2022-onboarding-welcome-pin-header = Mở ra một mạng internet tuyệt vời
+# Subtitle is used on onboarding page for new users page when Firefox is not pinned
+mr2022-onboarding-welcome-pin-subtitle = Khởi chạy { -brand-short-name } từ bất kỳ đâu chỉ với một cú nhấp chuột. Mỗi lần như vậy, bạn đang chọn một trang web độc lập và cởi mở hơn.
+# Primary button string used on welcome page for when Firefox is not pinned.
+mr2022-onboarding-pin-primary-button-label =
+ { PLATFORM() ->
+ [macos] Giữ { -brand-short-name } trên thanh dock
+ *[other] Ghim { -brand-short-name } vào thanh tác vụ
+ }
+# Subtitle will be used when user already has Firefox pinned, but
+# has not set it as their default browser.
+# When translating "zip", please feel free to pick a verb that signifies movement and/or exploration
+# and makes sense in the context of navigating the web.
+mr2022-onboarding-set-default-only-subtitle = Bắt đầu với một trình duyệt được hỗ trợ bởi một tổ chức phi lợi nhuận. Chúng tôi bảo vệ quyền riêng tư của bạn trong khi bạn duyệt web.
+
+## MR2022 Existing User Pin Firefox Screen Strings
+
+# Title used on multistage onboarding page for existing users when Firefox is not pinned
+mr2022-onboarding-existing-pin-header = Cảm ơn bạn đã yêu thích { -brand-product-name }
+# Subtitle is used on onboarding page for existing users when Firefox is not pinned
+mr2022-onboarding-existing-pin-subtitle = Khởi động một mạng internet lành mạnh hơn từ mọi nơi chỉ với một cú nhấp chuột. Bản cập nhật mới nhất của chúng tôi chứa đựng những điều mới mà chúng tôi nghĩ rằng bạn sẽ yêu thích.
+# Subtitle will be used on the welcome screen for existing users
+# when they already have Firefox pinned but not set as default
+mr2022-onboarding-existing-set-default-only-subtitle = Sử dụng trình duyệt bảo vệ quyền riêng tư của bạn khi bạn lướt web. Bản cập nhật mới nhất của chúng tôi chứa đầy những thứ mà bạn yêu thích.
+mr2022-onboarding-existing-pin-checkbox-label = Đồng thời thêm { -brand-short-name } duyệt web riêng tư
+
+## MR2022 New User Set Default screen strings
+
+# This string is the title used when the user already has pinned the browser, but has not set default.
+mr2022-onboarding-set-default-title = Đặt { -brand-short-name } làm trình duyệt truy cập của bạn
+mr2022-onboarding-set-default-primary-button-label = Đặt { -brand-short-name } làm trình duyệt mặc định
+# When translating "zip", please feel free to pick a verb that signifies movement and/or exploration
+# and makes sense in the context of navigating the web.
+mr2022-onboarding-set-default-subtitle = Sử dụng trình duyệt được hỗ trợ bởi tổ chức phi lợi nhuận. Chúng tôi bảo vệ quyền riêng tư của bạn trong khi bạn duyệt web.
+
+## MR2022 Get Started screen strings.
+## These strings will be used on the welcome page
+## when Firefox is already set to default and pinned.
+
+# When translating "zip", please feel free to pick a verb that signifies movement and/or exploration
+# and makes sense in the context of navigating the web.
+mr2022-onboarding-get-started-primary-subtitle = Phiên bản mới nhất của chúng tôi được xây dựng xung quanh bạn, giúp bạn truy cập trên web dễ dàng hơn bao giờ hết. Nó được đóng gói với các tính năng mà chúng tôi nghĩ rằng bạn sẽ yêu thích.
+mr2022-onboarding-get-started-primary-button-label = Thiết lập trong vài giây
+
+## MR2022 Import Settings screen strings
+
+mr2022-onboarding-import-header = Thiết lập nhanh như chớp
+mr2022-onboarding-import-subtitle = Thiết lập { -brand-short-name } theo cách bạn thích. Thêm dấu trang, mật khẩu và hơn thế nữa từ trình duyệt cũ của bạn.
+mr2022-onboarding-import-primary-button-label-no-attribution = Nhập từ trình duyệt trước
+
+## If your language uses grammatical genders, in the description for the
+## colorway feel free to switch from "You are a X. You…" (e.g. "You are a
+## Playmaker. You create…") to "X: you…" ("Playmaker: You create…"). This might
+## help creating a more inclusive translation.
+
+mr2022-onboarding-colorway-title = Chọn màu sắc truyền cảm hứng cho bạn
+mr2022-onboarding-colorway-subtitle = Tiếng nói độc lập có thể thay đổi văn hóa.
+mr2022-onboarding-colorway-primary-button-label-continue = Đặt và tiếp tục
+mr2022-onboarding-existing-colorway-checkbox-label = Đặt { -firefox-home-brand-name } làm trang chủ đầy màu sắc của bạn
+mr2022-onboarding-colorway-label-default = Mặc định
+mr2022-onboarding-colorway-tooltip-default2 =
+ .title = Màu hiện tại của { -brand-short-name }
+mr2022-onboarding-colorway-description-default = Sử dụng màu { -brand-short-name } hiện tại của tôi.
+mr2022-onboarding-colorway-label-playmaker = Người kiến tạo lối chơi
+mr2022-onboarding-colorway-tooltip-playmaker2 =
+ .title = Người kiến tạo lối chơi (đỏ)
+mr2022-onboarding-colorway-description-playmaker = Bạn là người kiến tạo lối chơi. Bạn tạo cơ hội để giành chiến thắng và giúp mọi người xung quanh nâng tầm trò chơi của họ.
+mr2022-onboarding-colorway-label-expressionist = Trường phái biểu hiện
+mr2022-onboarding-colorway-tooltip-expressionist2 =
+ .title = Trường phái biểu hiện (vàng)
+mr2022-onboarding-colorway-description-expressionist = Bạn là người theo chủ nghĩa biểu hiện. Bạn nhìn thế giới một cách khác biệt và những sáng tạo của bạn khuấy động cảm xúc của người khác.
+mr2022-onboarding-colorway-label-visionary = Nhìn xa trông rộng
+mr2022-onboarding-colorway-tooltip-visionary2 =
+ .title = Nhìn xa trông rộng (xanh lá)
+mr2022-onboarding-colorway-description-visionary = Bạn là một người có tầm nhìn xa. Bạn đặt câu hỏi về hiện trạng và khiến người khác phải tưởng tượng về một tương lai tốt đẹp hơn.
+mr2022-onboarding-colorway-label-activist = Nhà hoạt động
+mr2022-onboarding-colorway-tooltip-activist2 =
+ .title = Nhà hoạt động (xanh nước biển)
+mr2022-onboarding-colorway-description-activist = Bạn là một nhà hoạt động. Bạn để lại cho thế giới một nơi tốt đẹp hơn những gì bạn đã tìm thấy và khiến người khác tin tưởng.
+mr2022-onboarding-colorway-label-dreamer = Người mơ mộng
+mr2022-onboarding-colorway-tooltip-dreamer2 =
+ .title = Người mơ mộng (tím)
+mr2022-onboarding-colorway-description-dreamer = Bạn là một người mơ mộng. Bạn tin rằng vận may ủng hộ những người mạnh dạn và truyền cảm hứng cho những người khác dũng cảm.
+mr2022-onboarding-colorway-label-innovator = Người đổi mới
+mr2022-onboarding-colorway-tooltip-innovator2 =
+ .title = Người đổi mới (cam)
+mr2022-onboarding-colorway-description-innovator = Bạn là một người đổi mới. Bạn nhìn thấy cơ hội ở khắp mọi nơi và tạo ra ảnh hưởng đến cuộc sống của mọi người xung quanh bạn.
+
+## MR2022 Multistage Mobile Download screen strings
+
+mr2022-onboarding-mobile-download-title = Chuyển từ máy tính xách tay sang điện thoại và quay lại một lần nữa
+mr2022-onboarding-mobile-download-subtitle = Lấy các thẻ từ một thiết bị và tiếp tục nơi bạn đã dừng lại trên một thiết bị khác. Ngoài ra, hãy đồng bộ hóa dấu trang và mật khẩu của bạn ở bất kỳ đâu bạn sử dụng { -brand-product-name }.
+mr2022-onboarding-mobile-download-cta-text = Quét mã QR để lấy liên kết tải xuống { -brand-product-name } dành cho di động hoặc gửi liên kết cho chính bạn.
+mr2022-onboarding-no-mobile-download-cta-text = Quét mã QR để tải xuống { -brand-product-name } dành cho di động.
+
+## MR2022 Upgrade Dialog screens
+## Pin private window screen shown only for users who don't have Firefox private pinned
+
+mr2022-upgrade-onboarding-pin-private-window-header = Tự do duyệt web riêng tư trong một cú nhấp chuột
+mr2022-upgrade-onboarding-pin-private-window-subtitle = Không có cookie hoặc lịch sử đã lưu, ngay từ màn hình của bạn. Duyệt như không có ai đang xem.
+mr2022-upgrade-onboarding-pin-private-window-primary-button-label =
+ { PLATFORM() ->
+ [macos] Giữ { -brand-short-name } duyệt web ở chế độ riêng tư trong thanh Dock
+ *[other] Ghim { -brand-short-name } duyệt web ở chế độ riêng tư vào thanh tác vụ
+ }
+
+## MR2022 Privacy Segmentation screen strings
+
+mr2022-onboarding-privacy-segmentation-title = Chúng tôi luôn tôn trọng quyền riêng tư của bạn
+mr2022-onboarding-privacy-segmentation-subtitle = Từ các đề xuất thông minh đến tìm kiếm thông minh hơn, chúng tôi không ngừng nỗ lực để tạo ra { -brand-product-name } tốt hơn, cá nhân hóa hơn.
+mr2022-onboarding-privacy-segmentation-text-cta = Bạn muốn thấy gì khi chúng tôi cung cấp các tính năng mới sử dụng dữ liệu của bạn để nâng cao khả năng duyệt web của bạn?
+mr2022-onboarding-privacy-segmentation-button-primary-label = Sử dụng các đề xuất của { -brand-product-name }
+mr2022-onboarding-privacy-segmentation-button-secondary-label = Hiển thị thông tin chi tiết
+
+## MR2022 Multistage Gratitude screen strings
+
+mr2022-onboarding-gratitude-title = Bạn đang giúp chúng tôi xây dựng một trang web tốt hơn
+mr2022-onboarding-gratitude-subtitle = Cảm ơn bạn đã sử dụng { -brand-short-name }, được hỗ trợ bởi Mozilla Foundation. Với sự hỗ trợ của bạn, chúng tôi đang nỗ lực để làm cho Internet trở nên cởi mở hơn, dễ tiếp cận hơn và tốt hơn cho mọi người.
+mr2022-onboarding-gratitude-primary-button-label = Xem có gì mới
+mr2022-onboarding-gratitude-secondary-button-label = Bắt đầu duyệt web
+
+## Onboarding spotlight for infrequent users
+
+onboarding-infrequent-import-title = Tự nhiên như ở nhà
+onboarding-infrequent-import-subtitle = Cho dù bạn đang giải quyết hay chỉ ghé qua, hãy nhớ rằng bạn có thể nhập dấu trang, mật khẩu của mình và hơn thế nữa.
+onboarding-infrequent-import-primary-button = Nhập vào { -brand-short-name }
+
+## MR2022 Illustration alt tags
+## Descriptive tags for illustrations used by screen readers and other assistive tech
+
+mr2022-onboarding-pin-image-alt =
+ .aria-label = Người đang làm việc trên máy tính xách tay được bao quanh bởi các ngôi sao và hoa
+mr2022-onboarding-default-image-alt =
+ .aria-label = Người ôm logo { -brand-product-name }
+mr2022-onboarding-import-image-alt =
+ .aria-label = Người cưỡi ván trượt với một hộp biểu tượng phần mềm
+mr2022-onboarding-mobile-download-image-alt =
+ .aria-label = Ếch nhảy qua tấm lót lily với mã QR để tải xuống { -brand-product-name } cho thiết bị di động ở giữa
+mr2022-onboarding-pin-private-image-alt =
+ .aria-label = Cây đũa thần làm cho biểu trưng duyệt web riêng tư của { -brand-product-name } xuất hiện trên một chiếc mũ
+mr2022-onboarding-privacy-segmentation-image-alt =
+ .aria-label = Tay da sáng và da ngăm đen cao năm
+mr2022-onboarding-gratitude-image-alt =
+ .aria-label = Cảnh hoàng hôn qua cửa sổ với một con cáo và cây nhà trên bệ cửa sổ
+mr2022-onboarding-colorways-image-alt =
+ .aria-label = Bình xịt tay vẽ một bức tranh cắt dán đầy màu sắc của mắt xanh lá cây, giày màu cam, quả bóng rổ màu đỏ, tai nghe màu tím, trái tim màu xanh lam và vương miện màu vàng
diff --git a/l10n-vi/browser/browser/nsserrors.ftl b/l10n-vi/browser/browser/nsserrors.ftl
new file mode 100644
index 0000000000..4eaa9e1e1a
--- /dev/null
+++ b/l10n-vi/browser/browser/nsserrors.ftl
@@ -0,0 +1,354 @@
+# 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/.
+
+# DO NOT ADD THINGS OTHER THAN ERROR MESSAGES HERE.
+# This file gets parsed into a JS dictionary of all known error message ids in
+# gen_aboutneterror_codes.py . If we end up needing fluent attributes or
+# refactoring them in some way, the script will need updating.
+
+# Variables:
+# $hostname (String) - Hostname of the website with SSL error.
+# $errorMessage (String) - Error message corresponding to the type of error we are experiencing.
+ssl-connection-error = Đã xảy ra lỗi trong khi kết nối với { $hostname }. { $errorMessage }
+
+# Variables:
+# $error (string) - NSS error code string that specifies type of cert error. e.g. unknown issuer, invalid cert, etc.
+cert-error-code-prefix = Mã lỗi: { $error }
+
+psmerr-ssl-disabled = Không thể kết nối an toàn vì giao thức SSL đã bị vô hiệu hóa.
+psmerr-ssl2-disabled = Không thể kết nối an toàn vì trang này sử dụng một phiên bản giao thức SSL cũ và không bảo mật.
+
+# This is a multi-line message.
+psmerr-hostreusedissuerandserial =
+ Bạn vừa nhận được một chứng nhận không hợp lệ. Vui lòng liên hệ quản trị máy chủ hoặc email tương ứng và đưa họ thông tin sau:
+
+ Chứng nhận của bạn có cùng số sê-ri với chứng nhận khác được cấp bởi cùng một nhà thẩm định chứng nhận. Vui lòng tạo một chứng nhận mới có số sê-ri riêng biệt.
+
+ssl-error-export-only-server = Không thể giao tiếp một cách an toàn. Peer không hỗ trợ mã hóa cấp cao.
+ssl-error-us-only-server = Không thể giao tiếp một cách an toàn. Peer yêu cầu mã hóa cao cấp mà không được hỗ trợ.
+ssl-error-no-cypher-overlap = Không thể kết nối an toàn với máy ngang hàng: không dùng chung thuật toán mã hoá dữ liệu.
+ssl-error-no-certificate = Không tìm thấy chứng nhận hoặc khóa cần thiết để xác thực.
+ssl-error-bad-certificate = Không thể kết nối an toàn với máy ngang hàng: chứng nhận của máy ngang hàng bị từ chối.
+ssl-error-bad-client = Máy chủ gặp dữ liệu xấu từ máy khách.
+ssl-error-bad-server = Máy khách gặp dữ liệu xấu từ máy chủ.
+ssl-error-unsupported-certificate-type = Kiểu chứng nhận không được hỗ trợ.
+ssl-error-unsupported-version = Máy khách sử dụng giao thức bảo mật không hỗ trợ.
+ssl-error-wrong-certificate = Chứng thực máy khách thất bại: khóa cá nhân không phù hợp với khóa chung trong cơ sở dữ liệu chứng nhận.
+ssl-error-bad-cert-domain = Không thể kết nối an toàn với máy ngang hàng: tên miền yêu cầu không khớp với chứng nhận của máy chủ.
+ssl-error-post-warning = Mã lỗi SSL không được chấp nhận.
+ssl-error-ssl2-disabled = Máy khách chỉ hỗ trợ SSL 2 (chưa kích hoạt)
+ssl-error-bad-mac-read = SSL đã nhận 1 văn bản sai Mã Thông báo Chứng thực.
+ssl-error-bad-mac-alert = SSL máy ngang hàng báo sai Mã Thông báo Chứng thực.
+ssl-error-bad-cert-alert = SSL máy ngang hàng không thể xác minh chứng nhận của bạn.
+ssl-error-revoked-cert-alert = SSL máy ngang hàng từ chối vì cho rằng chứng nhận của bạn đã bị thu hồi.
+ssl-error-expired-cert-alert = SSL máy ngang hàng từ chối vì cho rằng chứng nhận của bạn đã bị hết hạn.
+ssl-error-ssl-disabled = Không thể kết nối: SSL bị vô hiệu hoá.
+ssl-error-fortezza-pqg = Không thể kết nối: SSL máy ngang hàng ở tên miền FORTEZZA khác.
+ssl-error-unknown-cipher-suite = Một mã khóa SSL chưa biết vừa được yêu cầu.
+ssl-error-no-ciphers-supported = Không có bộ mã nào được kích hoạt trong chương trình này.
+ssl-error-bad-block-padding = SSL nhận một hồ sơ có thành phần xấu.
+ssl-error-rx-record-too-long = SSL nhận một hồ sơ vượt quá độ dài lớn nhất cho phép.
+ssl-error-tx-record-too-long = SSL cố gắng gửi một hồ sơ vượt quá độ dài lớn nhất cho phép.
+ssl-error-rx-malformed-hello-request = SSL nhận một thông điệp bắt tay Hello Request có lỗi.
+ssl-error-rx-malformed-client-hello = SSL nhận một thông điệp bắt tay Client Hello có lỗi.
+ssl-error-rx-malformed-server-hello = SSL nhận một thông điệp bắt tay Server Hello có lỗi.
+ssl-error-rx-malformed-certificate = SSL nhận một thông điệp báo chứng nhận sai định dạng.
+ssl-error-rx-malformed-server-key-exch = SSL nhận một thông điệp bắt tay Server Key Exchange có lỗi.
+ssl-error-rx-malformed-cert-request = SSL nhận một thông điệp báo sai định dạng yêu cầu chứng nhận.
+ssl-error-rx-malformed-hello-done = SSL nhận một thông điệp bắt tay Server Hello Done có lỗi.
+ssl-error-rx-malformed-cert-verify = SSL nhận một thông điệp báo sai định dạng xác minh chứng nhận.
+ssl-error-rx-malformed-client-key-exch = SSL nhận một thông điệp bắt tay Client Key Exchange có lỗi.
+ssl-error-rx-malformed-finished = SSL nhận một thông điệp bắt tay Finished có lỗi.
+ssl-error-rx-malformed-change-cipher = SSL nhận một hồ sơ Change Cipher Spec có lỗi.
+ssl-error-rx-malformed-alert = SSL nhận một hồ sơ Alert có lỗi.
+ssl-error-rx-malformed-handshake = SSL nhận một hồ sơ Handhshake có lỗi.
+ssl-error-rx-malformed-application-data = SSL nhận một hồ sơ Application Data có lỗi.
+ssl-error-rx-unexpected-hello-request = SSL nhận một thông điệp bắt tay Hello Request không mong đợi.
+ssl-error-rx-unexpected-client-hello = SSL nhận một thông điệp bắt tay Client Hello không mong đợi.
+ssl-error-rx-unexpected-server-hello = SSL nhận một thông điệp bắt tay Server Hello không mong đợi.
+ssl-error-rx-unexpected-certificate = SSL nhận một thông điệp báo chứng nhận không mong đợi.
+ssl-error-rx-unexpected-server-key-exch = SSL nhận một thông điệp bắt tay Server Key Exchange không mong đợi.
+ssl-error-rx-unexpected-cert-request = SSL nhận một thông điệp bắt tay Certificate Request không mong đợi.
+ssl-error-rx-unexpected-hello-done = SSL nhận một thông điệp bắt tay Server Hello Done không mong đợi.
+ssl-error-rx-unexpected-cert-verify = SSL nhận một thông điệp bắt tay Certificate Verify không mong đợi.
+ssl-error-rx-unexpected-client-key-exch = SSL nhận một thông điệp bắt tay Client Key Exchange không mong đợi.
+ssl-error-rx-unexpected-finished = SSL nhận một thông điệp bắt tay Finished không mong đợi.
+ssl-error-rx-unexpected-change-cipher = SSL nhận một hồ sơ Change Cipher không mong đợi.
+ssl-error-rx-unexpected-alert = SSL nhận một hồ sơ Alert không mong đợi.
+ssl-error-rx-unexpected-handshake = SSL nhận một hồ sơ Handshake không mong đợi.
+ssl-error-rx-unexpected-application-data = SSL nhận một hồ sơ Application Data không mong đợi.
+ssl-error-rx-unknown-record-type = SSL nhận một hồ sơ không biết loại nội dung.
+ssl-error-rx-unknown-handshake = SSL nhận một thông điệp bắt tay không biết loại.
+ssl-error-rx-unknown-alert = SSL nhận một hồ sơ cảnh báo có sự miêu tả không rõ ràng.
+ssl-error-close-notify-alert = SSL máy ngang hàng ngắt kết nối.
+ssl-error-handshake-unexpected-alert = SSL máy ngang hàng nhận một thông điệp bắt tay không mong đợi.
+ssl-error-decompression-failure-alert = SSL máy ngang hàng không thể giải nén thành công một hồ sơ SLL nhận được.
+ssl-error-handshake-failure-alert = SSL máy ngang hàng không thương lượng bộ thông số bảo mật có thể chấp nhận.
+ssl-error-illegal-parameter-alert = SSL máy ngang hàng từ chối thông điệp bắt tay có nội dung không chấp nhận.
+ssl-error-unsupported-cert-alert = SSL máy khách không hỗ trợ những chứng nhận về kiểu nhận được.
+ssl-error-certificate-unknown-alert = SSL máy ngang hàng có một số vấn đề không xác định về chứng nhận nhận được.
+ssl-error-generate-random-failure = SSL gặp thất bại trong việc tạo số ngẫu nhiên.
+ssl-error-sign-hashes-failure = Không thể ký dữ liệu cần thiết để xác thực chứng nhận của bạn.
+ssl-error-extract-public-key-failure = SSL không thể trích ra khóa chung từ chứng thực của máy ngang hàng.
+ssl-error-server-key-exchange-failure = Thất bại không xác định trong khi xử lí bắt tay SSL Server Key Exchange.
+ssl-error-client-key-exchange-failure = Thất bại không xác định trong khi xử lí bắt tay SSL Client Key Exchange.
+ssl-error-encryption-failure = Thuật toán mã hoá dữ liệu lớn thất bại trong việc chọn lựa bộ số.
+ssl-error-decryption-failure = Thuật toán giải mã dữ liệu lớn thất bại trong việc chọn lựa bộ số.
+ssl-error-socket-write-failure = Cố gắng ghi dữ liệu đã mã hoá vào hốc dưới bị thất bại.
+ssl-error-md5-digest-failure = Chức năng phân loại MD5 thất bại.
+ssl-error-sha-digest-failure = Chức năng phân loại SHA-1 thất bại.
+ssl-error-mac-computation-failure = Tính toán MAC thất bại.
+ssl-error-sym-key-context-failure = Thất bại trong việc tạo Symmetric Key.
+ssl-error-sym-key-unwrap-failure = Thất bại trong việc mở khóa Symmetric trong thông điệp Client Key Exchange.
+ssl-error-pub-key-size-limit-exceeded = SSL máy chủ cố gắng sử dụng khóa chung nội với bộ số xuất.
+ssl-error-iv-param-failure = Mã PKCS11 thất bại trong việc dịch IV vào một thông số.
+ssl-error-init-cipher-suite-failure = Thất bại khi khởi tạo bộ mã số đã chọn.
+ssl-error-session-key-gen-failure = Máy khách thất bại trong việc tạo khóa cho SSL.
+ssl-error-no-server-key-for-alg = Máy chủ không có khóa để thực hiện thuật toán chuyển đổi khoá.
+ssl-error-token-insertion-removal = Dấu hiệu PKCS#11 đã được chèn hoặc gỡ bỏ trong khi đang thực hiện tác vụ.
+ssl-error-token-slot-not-found = Không tìm thấy dấu hiệu PKCS#11 để thực hiện tác vụ yêu cầu.
+ssl-error-no-compression-overlap = Không thể kết nối an toàn với máy ngang hàng: không dùng chung thuật toán nén.
+ssl-error-handshake-not-completed = Không thể khởi đầu bắt tay SSL khác cho đến khi bắt tay hiện tại hoàn tất.
+ssl-error-bad-handshake-hash-value = Đã nhận được giá trị bắt tay sai từ máy khách.
+ssl-error-cert-kea-mismatch = Chứng thực được cung cấp không thể được sử dụng với thuật toán chuyển đổi khoá lựa chọn.
+ssl-error-no-trusted-ssl-client-ca = Không có cơ quan chứng nhận nào được tin cậy để xác thực SSL máy khách.
+ssl-error-session-not-found = Không tìm thấy định danh phiên SSL máy khách trong bộ đệm phiên làm việc của máy chủ.
+ssl-error-decryption-failed-alert = Máy ngang hàng không thể giải mã hồ sơ SSL nhận được.
+ssl-error-record-overflow-alert = Máy ngang hàng nhận được 1 hồ sơ SSL dài hơn cho phép.
+ssl-error-unknown-ca-alert = Máy ngang hàng không tín nhiệm CA cung cấp chứng thực cho bạn.
+ssl-error-access-denied-alert = Máy ngang hàng nhận được một chứng thực hợp lệ, nhưng truy cập bị từ chối.
+ssl-error-decode-error-alert = Máy ngang hàng không thể giải mã thông điệp bắt tay SSL.
+ssl-error-decrypt-error-alert = Máy ngang hàng báo thất bại trong việc xác minh chữ kí hoặc trao đổi khóa.
+ssl-error-export-restriction-alert = Máy ngang hàng báo việc thương lượng không đúng với luật xuất.
+ssl-error-protocol-version-alert = Máy ngang hàng báo không tương thích hoặc không hỗ trợ phiên bản giao thức.
+ssl-error-insufficient-security-alert = Máy chủ yêu cầu bộ số an toàn hơn bộ số hỗ trợ bởi máy khách.
+ssl-error-internal-error-alert = Máy ngang hàng báo lỗi bên trong.
+ssl-error-user-canceled-alert = Người sử dụng máy ngang hàng từ chối bắt tay.
+ssl-error-no-renegotiation-alert = Máy ngang hàng không cho phép thương lượng lại các thông số bảo mật SSL.
+ssl-error-server-cache-not-configured = Bộ nhớ đệm SSL máy chủ không được cài đặt cho hốc này.
+ssl-error-unsupported-extension-alert = SSL máy ngang hàng không hỗ trợ phần mở rộng chào hỏi TLS yêu cầu.
+ssl-error-certificate-unobtainable-alert = SSL máy ngang hàng không thể đạt được chứng thực của bạn từ URL cung cấp.
+ssl-error-unrecognized-name-alert = SSL máy ngang hàng không có chứng thực cho tên DNS yêu cầu.
+ssl-error-bad-cert-status-response-alert = SSL máy ngang hàng không thể nhận trả lời OCSP về chứng thực.
+ssl-error-bad-cert-hash-value-alert = Máy ngang hàng báo giá trị chứng thực xấu.
+ssl-error-rx-unexpected-new-session-ticket = SSL nhận một thông điệp bắt tay New Session Ticket không mong đợi.
+ssl-error-rx-malformed-new-session-ticket = SSL nhận một thông điệp bắt tay New Session Ticket sai dạng.
+ssl-error-decompression-failure = SSL nhận một bản ghi nén mà không thể giải nén được.
+ssl-error-renegotiation-not-allowed = Tái đàm phán không được phép trên socket SSL này.
+ssl-error-unsafe-negotiation = Máy ngang hàng cố một kiểu bắt tay cũ (có thể tiềm ẩn điểm yếu).
+ssl-error-rx-unexpected-uncompressed-record = SSL nhận một bản ghi không nén không mong đợi.
+ssl-error-weak-server-ephemeral-dh-key = SSL nhận một khóa Diffie-Hellman yếu trong thông điệp bắt tay Server Key Exchange.
+ssl-error-next-protocol-data-invalid = SSL nhận được dữ liệu mở rộng NPN không hợp lệ.
+ssl-error-feature-not-supported-for-ssl2 = Tính năng SSL không được hỗ trợ cho kết nối SSL 2.0.
+ssl-error-feature-not-supported-for-servers = Tính năng SSL không được hỗ trợ cho máy chủ.
+ssl-error-feature-not-supported-for-clients = Tính năng SSL không được hỗ trợ cho máy trạm.
+ssl-error-invalid-version-range = Phạm vi phiên bản SSL không hợp lệ.
+ssl-error-cipher-disallowed-for-version = SSL peer đã chọn một bộ mật mã không cho phép cho phiên bản giao thức được lựa chọn.
+ssl-error-rx-malformed-hello-verify-request = SSL nhận một thông điệp bắt tay Hello Verify Request không đúng định dạng.
+ssl-error-rx-unexpected-hello-verify-request = SSL nhận một thông điệp bắt tay Hello Verify Request không mong đợi.
+ssl-error-feature-not-supported-for-version = Tính năng SSL không được hỗ trợ cho phiên bản giao thức.
+ssl-error-rx-unexpected-cert-status = SSL nhận một thông điệp Certificate Status không mong đợi.
+ssl-error-unsupported-hash-algorithm = TLS ngang hàng sử dụng thuật toán hash không được hỗ trợ.
+ssl-error-digest-failure = Lỗi phân loại hàm.
+ssl-error-incorrect-signature-algorithm = Thuật toán chữ ký không chính xác được chỉ định trong một phần tử được ký kỹ thuật số.
+ssl-error-next-protocol-no-callback = Phần mở rộng protocol negotiation tiếp theo đã được bật, nhưng hàm callback đã bị xóa trước khi gọi.
+ssl-error-next-protocol-no-protocol = Máy chủ hỗ trợ không có giao thức mà máy khách quảng cáo trong phần mở rộng ALPN.
+ssl-error-inappropriate-fallback-alert = Máy chủ đã từ chối bắt tay vì máy khách đã hạ xuống phiên bản TLS thấp hơn so với phiên bản mà máy chủ hỗ trợ.
+ssl-error-weak-server-cert-key = Chứng nhận máy chủ bao gồm khóa công khai quá yếu.
+ssl-error-rx-short-dtls-read = Không đủ chỗ trong bộ đệm cho bản ghi DTLS.
+ssl-error-no-supported-signature-algorithm = Đã cấu hình mà không có thuật toán chữ ký TLS được hỗ trợ.
+ssl-error-unsupported-signature-algorithm = Máy ngang hàng đã sử dụng kết hợp thuật toán hash và chữ ký không được hỗ trợ.
+ssl-error-missing-extended-master-secret = The peer tried to resume without a correct extended_master_secret extension.
+ssl-error-unexpected-extended-master-secret = The peer tried to resume with an unexpected extended_master_secret extension.
+sec-error-io = Một lỗi I/O xảy ra trong quá trình thẩm định bảo mật.
+sec-error-library-failure = Thư viện bảo mật thất bại.
+sec-error-bad-data = Thư viện bảo mật: nhận dữ liệu xấu.
+sec-error-output-len = Thư viện bảo mật: lỗi độ dài đầu ra.
+sec-error-input-len = Thư viện bảo mật báo lỗi độ dài đầu vào.
+sec-error-invalid-args = thư viện bảo mật: đối số không hợp lệ.
+sec-error-invalid-algorithm = Thư viện bảo mật: thuật toán không hợp lệ.
+sec-error-invalid-ava = Thư viện bảo mật: AVA không hợp lệ.
+sec-error-invalid-time = Chuỗi thời gian thiết lập không đúng.
+sec-error-bad-der = Thư viện bảo mật: thông điệp mã hoá DER thiết lập sai.
+sec-error-bad-signature = Chứng thực của máy ngang hàng có chữ kí không hợp lệ.
+sec-error-expired-certificate = Chứng thực của máy ngang hàng đã hết hạn.
+sec-error-revoked-certificate = Chứng thực của máy ngang hàng đã bị thu hồi.
+sec-error-unknown-issuer = Người cung cấp chứng thực máy ngang hàng chưa được nhận diện.
+sec-error-bad-key = Khoá chung của máy ngang hàng không đúng.
+sec-error-bad-password = Mật khẩu bảo mật nhập vào không đúng.
+sec-error-retry-password = Đã nhập sai mật khẩu mới. Vui lòng thử lại.
+sec-error-no-nodelock = Thư viện bảo mật: không có khoá nốt.
+sec-error-bad-database = Thư viện bảo mật: cơ sở dữ liệu xấu.
+sec-error-no-memory = Thư viện bảo mật: thất bại trong việc định bộ nhớ.
+sec-error-untrusted-issuer = Người cung cấp chứng thực máy ngang hàng bị đánh dấu không tin tưởng bởi người sử dụng.
+sec-error-untrusted-cert = Chứng thực máy ngang hàng bị đánh dấu không tin tưởng bởi người sử dụng.
+sec-error-duplicate-cert = Chứng thực đã tồn tại trong cơ sở dữ liệu của bạn.
+sec-error-duplicate-cert-name = Tên chứng nhận tải xuống trùng với một tên có sẵn trong cơ sở dữ liệu của bạn.
+sec-error-adding-cert = Lỗi thêm chứng thực vào cơ sở dữ liệu.
+sec-error-filing-key = Không thể sắp xếp mã khóa cho chứng nhận này.
+sec-error-no-key = Không tìm thấy mã khóa cá nhân cho chứng nhận này trong cơ sở dữ liệu
+sec-error-cert-valid = Chứng nhận này là hợp lệ.
+sec-error-cert-not-valid = Chứng nhận này không hợp lệ.
+sec-error-cert-no-response = Thư viện chứng nhận: Không có phản hồi
+sec-error-expired-issuer-certificate = Chúng nhận của nhà cung cấp đã quá thời hạn. Vui lòng kiểm tra lại ngày giờ hệ thống của bạn.
+sec-error-crl-expired = CRL của nhà cung cấp chứng nhận đã quá hạn. Vui lòng cập nhật hoặc kiểm tra ngày giờ hệ thống của bạn.
+sec-error-crl-bad-signature = CRL của nhà cấp phát chứng nhận chứa một chữ kí không hợp lệ.
+sec-error-crl-invalid = CRL mới có định dạng sai.
+sec-error-extension-value-invalid = Giá trị gia hạn cho chứng nhận không hợp lệ.
+sec-error-extension-not-found = Chứng nhận chưa được gia hạn.
+sec-error-ca-cert-invalid = Chứng nhận của nhà cung cấp không hợp lệ.
+sec-error-path-len-constraint-invalid = Giới hạn độ dài đường dẫn chứng nhận không hợp lệ.
+sec-error-cert-usages-invalid = Phần mục đích sử dụng (usages field) trong chứng nhận không hợp lệ.
+sec-internal-only = **Phần CHỈ dành cho nội bộ**
+sec-error-invalid-key = Khóa không hỗ trợ thao tác được yêu cầu.
+sec-error-unknown-critical-extension = Chứng nhận chứa bản gia hạn quan trọng nhưng không xác định.
+sec-error-old-crl = CRL mới không mới hơn bản hiện tại.
+sec-error-no-email-cert = Không được mã hóa hoặc kí: bạn chưa có chứng nhận email.
+sec-error-no-recipient-certs-query = Chưa được mã hóa: bạn không có đủ chứng nhận cho các người nhận.
+sec-error-not-a-recipient = Không thể giải mã: bạn không phải là người nhận hoặc không tìm được chứng nhận hay mã khóa phù hợp.
+sec-error-pkcs7-keyalg-mismatch = Không thể giải mã: thuật toán mã hóa không khớp với chứng nhận của bạn.
+sec-error-pkcs7-bad-signature = Xác thực chữ kí thất bại: không tìm thấy người kí, quá nhiều người kí, hoặc do dữ liệu không phù hợp hoặc hư hỏng.
+sec-error-unsupported-keyalg = Thuật toán khóa không được hỗ trợ hoặc không xác định được.
+sec-error-decryption-disallowed = Không thể giải mã: mã khóa sử dụng thuật toán hoặc độ dài khóa không được công nhận.
+xp-sec-fortezza-bad-card = Thẻ Fortezza chưa được khởi tạo đúng cách. Vui lòng xóa nó và trả lại cho công ty phát hành của bạn.
+xp-sec-fortezza-no-card = Không tìm thấy thẻ Fortezza nào
+xp-sec-fortezza-none-selected = Chưa chọn thẻ Fortezza
+xp-sec-fortezza-more-info = Vui lòng chọn một thuộc tính (personality) để xem thêm thông tin
+xp-sec-fortezza-person-not-found = Không tìm thấy Thuộc tính (personality)
+xp-sec-fortezza-no-more-info = Không tìm thấy thông tin thêm về thuộc tính (Personality) đó
+xp-sec-fortezza-bad-pin = Pin không hợp lệ
+xp-sec-fortezza-person-error = Không thể khởi tạo các thuộc tính (personality) Fortezza.
+sec-error-no-krl = Không tìm thấy KRL nào cho chứng nhận này.
+sec-error-krl-expired = KRL của chứng nhận trong trang này đã quá hạn.
+sec-error-krl-bad-signature = KRL của chứng nhận trên trang này chứa một khóa (signature) không hợp lệ.
+sec-error-revoked-key = Mã khóa cho chứng nhận trên trang này đã bị thu hồi.
+sec-error-krl-invalid = Định dạng của KRL mới không hợp lệ.
+sec-error-need-random = thư viện an ninh: cần dữ liệu ngẫu nhiên.
+sec-error-no-module = thư viện bảo mật: không một bộ phận bảo mật nào có thể thực hiện được yêu cầu.
+sec-error-no-token = Thẻ an ninh hoặc mã thông báo (token) không hiện hữu, cần đuợc nhận diện, hoặc đã bị xóa.
+sec-error-read-only = thư viện an ninh: dữ liệu chống ghi.
+sec-error-no-slot-selected = Không có khe hay mã thông báo nào được chọn.
+sec-error-cert-nickname-collision = Đã tồn tại một chứng nhận với cùng biệt danh.
+sec-error-key-nickname-collision = Đã tồn tại một khóa với cùng biệt danh.
+sec-error-safe-not-created = phát sinh lỗi khi tạo thực thể an toàn
+sec-error-baggage-not-created = lỗi phát sinh khi tạo thực thể hành lí
+xp-java-remove-principal-error = Không thể xóa principal
+xp-java-delete-privilege-error = Không thể xóa được đặc quyền
+xp-java-cert-not-exists-error = Principal này không có chứng nhận
+sec-error-bad-export-algorithm = Thuật toán yêu cầu không được phép.
+sec-error-exporting-certificates = Lỗi khi đang cố xuất chứng nhận.
+sec-error-importing-certificates = Lỗi khi đang cố nhập chứng nhận.
+sec-error-pkcs12-decoding-pfx = Không thể nhập. Lỗi giải mã. Tập tin không hợp lệ.
+sec-error-pkcs12-invalid-mac = Không thể nhập. MAC không hợp lệ. Mật khẩu không đúng hoặc tập tin bị hỏng.
+sec-error-pkcs12-unsupported-mac-algorithm = Không thể nhập. Thuật toán MAC không được hỗ trợ.
+sec-error-pkcs12-unsupported-transport-mode = Không thể nhập. Chỉ hỗ trợ toàn vẹn mật khẩu và chế độ riêng tư.
+sec-error-pkcs12-corrupt-pfx-structure = Không thể nhập. Cấu trúc tập tin bị hỏng.
+sec-error-pkcs12-unsupported-pbe-algorithm = Không thể nhập. Thuật toán mã hóa không được hỗ trợ.
+sec-error-pkcs12-unsupported-version = Không thể nhập. Phiên bản tập tin không được hỗ trợ.
+sec-error-pkcs12-privacy-password-incorrect = Không thể nhập. Mật khẩu riêng tư không chính xác.
+sec-error-pkcs12-cert-collision = Không thể nhập. Một biệt danh đã tồn tại trong cơ sở dữ liệu.
+sec-error-user-cancelled = Người dùng nhấn hủy bỏ.
+sec-error-pkcs12-duplicate-data = Không được nhập, đã có trong cơ sở dữ liệu.
+sec-error-message-send-aborted = Thông báo không được gửi.
+sec-error-inadequate-key-usage = Việc sử dụng khóa chứng nhận là không phù hợp cho thao tác đã làm.
+sec-error-inadequate-cert-type = Kiểu chứng nhận không được chấp thuận trong ứng dụng.
+sec-error-cert-addr-mismatch = Địa chỉ trong phần kí chứng nhận không khớp với địa chỉ trong phần đầu của thông điệp.
+sec-error-pkcs12-unable-to-import-key = Không thể nhập. Lỗi khi cố nhập private key.
+sec-error-pkcs12-importing-cert-chain = Không thể nhập. Lỗi khi cố nhập certificate chain.
+sec-error-pkcs12-unable-to-locate-object-by-name = Không thể xuất. Không thể xác định vị trí chứng nhận hoặc khóa bằng biệt danh.
+sec-error-pkcs12-unable-to-export-key = Không thể xuất. Private key không thể tìm thấy và xuất.
+sec-error-pkcs12-unable-to-write = Không thể xuất. Không thể ghi tập tin để xuất.
+sec-error-pkcs12-unable-to-read = Không thể nhập. Không thể đọc tập tin để nhập.
+sec-error-pkcs12-key-database-not-initialized = Không thể xuất. Cơ sở dữ liệu chính bị hỏng hoặc đã bị xóa.
+sec-error-keygen-fail = Không thể tạo cặp khóa cá nhân/công cộng.
+sec-error-invalid-password = Mật khẩu đã nhập không hợp lệ. Vui lòng chọn một cái khác.
+sec-error-retry-old-password = Đã nhập sai mật khẩu cũ. Vui lòng thử lại.
+sec-error-bad-nickname = Biệt danh chứng nhận đã được dùng.
+sec-error-not-fortezza-issuer = Chuỗi FORTEZZA ngang hàng có một chứng nhận không-phải-FORTEZZA.
+sec-error-cannot-move-sensitive-key = Một khóa nhạy cảm không thể di chuyển sang khe cần thiết.
+sec-error-js-invalid-module-name = Tên module không hợp lệ.
+sec-error-js-invalid-dll = Tên tập tin/đường dẫn của module không hợp lệ
+sec-error-js-add-mod-failure = Không thể thêm module
+sec-error-js-del-mod-failure = Không thể xóa module
+sec-error-old-krl = KRL mới không mới hơn cái hiện tại.
+sec-error-ckl-conflict = CKL mới có nhà phát hành khác so với CKL hiện tại. Xóa CKL hiện tại.
+sec-error-cert-not-in-name-space = Nhà thẩm định của chứng nhận này không được phép cấp phát chứng nhận có tên như vậy.
+sec-error-krl-not-yet-valid = Danh sách thu hồi khóa cho chứng nhận này chưa hợp lệ.
+sec-error-crl-not-yet-valid = Danh sách thu hồi chứng nhận cho chứng nhận này chưa hợp lệ.
+sec-error-unknown-cert = Không tìm thấy chứng nhận yêu cầu.
+sec-error-unknown-signer = Không tìm thấy chứng nhận của người kí.
+sec-error-cert-bad-access-location = Vị trí cho máy chủ trạng thái chứng nhận có định dạng không hợp lệ.
+sec-error-ocsp-unknown-response-type = Phản hồi OCSP không thể được giải mã đầy đủ; nó là một kiểu chưa biết.
+sec-error-ocsp-bad-http-response = Máy chủ OCSP trả lại dữ liệu HTTP bất hợp lệ/không mong đợi.
+sec-error-ocsp-malformed-request = Máy chủ OCSP báo rằng truy vấn bị hỏng hoặc ở dạng không phù hợp.
+sec-error-ocsp-server-error = Máy chủ OCSP gặp một lỗi nội tại.
+sec-error-ocsp-try-server-later = Máy chủ OCSP đề nghị thử lại sau.
+sec-error-ocsp-request-needs-sig = Máy chủ OCSP yêu cầu chữ kí cho truy vấn này.
+sec-error-ocsp-unauthorized-request = Máy chủ OCSP từ chối vì cho rằng truy vấn này không được phép.
+sec-error-ocsp-unknown-response-status = Máy chủ OCSP trả lại trạng thái không thể nhận diện.
+sec-error-ocsp-unknown-cert = Máy chủ OCSP không có trạng thái cho chứng nhận.
+sec-error-ocsp-not-enabled = Bạn phải kích hoạt OCSP trước khi thực hiện thao tác này.
+sec-error-ocsp-no-default-responder = Bạn phải cài đặt phần phản hồi mặc định cho OCSP trước khi thực hiện thao tác này.
+sec-error-ocsp-malformed-response = Phản hồi từ máy chủ OCSP đã bị hư hoặc ở dạng không phù hợp.
+sec-error-ocsp-unauthorized-response = Bên kí phản hồi OCSP không có thẩm quyền để đưa ra trạng thái cho chứng nhận này.
+sec-error-ocsp-future-response = Phản hồi OCSP chưa hợp lệ (chứa một ngày trong tương lai).
+sec-error-ocsp-old-response = Phản hồi OCSP chứa thông tin lỗi thời.
+sec-error-digest-not-found = Không tìm thấy tập san CMS hay PKCS #7 trong thông điệp đã kí.
+sec-error-unsupported-message-type = Kiểu Thông điệp CMS hoặc PKCS #7 không được hỗ trợ.
+sec-error-module-stuck = Không thể gỡ bỏ module PKCS #11 vì nó vẫn đang được dùng.
+sec-error-bad-template = Không thể giải mã dữ liệu ASN.1. Khuôn mẫu được chỉ định không hợp lệ.
+sec-error-crl-not-found = Không tìm thấy CRL phù hợp.
+sec-error-reused-issuer-and-serial = Bạn đang cố nhập một chứng nhận có cùng nhà phát hành/sê-ri như một chứng nhận hiện có, nhưng đó không phải là cùng một chứng nhận.
+sec-error-busy = NSS không thể tắt. Đối tượng vẫn đang được dùng.
+sec-error-extra-input = Thông điệp mã hóa DER chứa thêm dữ liệu không được dùng tới.
+sec-error-unsupported-elliptic-curve = Đường cong elliptic không được hỗ trợ.
+sec-error-unsupported-ec-point-form = Biểu mẫu điểm đường cong elliptic không được hỗ trợ.
+sec-error-unrecognized-oid = Không nhận diện được trình Định danh Đối tượng.
+sec-error-ocsp-invalid-signing-cert = Chứng nhận ký OCSP không hợp lệ trong phản hồi OCSP.
+sec-error-revoked-certificate-crl = Chứng nhận bị thu hồi trong danh sách thu hồi chứng nhận của nhà cấp phát.
+sec-error-revoked-certificate-ocsp = Phản hồi OCSP của nhà cấp phát báo rằng chứng nhận đã bị thu hồi.
+sec-error-crl-invalid-version = Danh sách thu hồi chứng nhận của tổ chức phát hành có số phiên bản không xác định.
+sec-error-crl-v1-critical-extension = Danh sách thu hồi chứng nhận V1 của nhà cung cấp có phần mở rộng quan trọng.
+sec-error-crl-unknown-critical-extension = Danh sách thu hồi chứng nhận V2 của nhà cung cấp có phần mở rộng quan trọng không xác định.
+sec-error-unknown-object-type = Kiểu đối tượng chưa biết được chỉ định.
+sec-error-incompatible-pkcs11 = Trình điều khiển PKCS #11 vi phạm đặc tả trong một cách thức không tương thích.
+sec-error-no-event = Không có sự kiện khe mới nào hiện hữu lúc này.
+sec-error-crl-already-exists = CRL đã tồn tại.
+sec-error-not-initialized = NSS không được nhận diện.
+sec-error-token-not-logged-in = Thao tác thất bại vì mã thông báo PKCS #11 không được đăng nhập.
+sec-error-ocsp-responder-cert-invalid = Cấu hình chứng nhận hồi đáp OCSP không hợp lệ.
+sec-error-ocsp-bad-signature = Phản hồi OCSP có một chữ kí bất hợp lệ.
+sec-error-out-of-search-limits = Tìm kiếm xác nhận chứng nhận nằm ngoài giới hạn tìm kiếm
+sec-error-invalid-policy-mapping = Định tuyến chính sách chứa anypolicy
+sec-error-policy-validation-failed = Chuỗi chứng nhận không xác nhận chính sách
+sec-error-unknown-aia-location-type = Loại vị trí không xác định trong phần mở rộng chứng nhận AIA
+sec-error-bad-http-response = Máy chủ trả lại phản hồi HTTP xấu
+sec-error-bad-ldap-response = Máy chủ trả lại phản hồi LDAP xấu
+sec-error-failed-to-encode-data = Thất bại khi mã hóa dữ liệu với trình mã hóa ANSI
+sec-error-bad-info-access-location = Vị trí truy cập thông tin xấu trong phần mở rộng chứng nhận
+sec-error-libpkix-internal = Lỗi nội bộ Libpkix xảy ra trong quá trình xác nhận chứng nhận.
+sec-error-pkcs11-general-error = Một module PKCS#11 trả lại CKR_GENERAL_ERROR, cho biết rằng một lỗi không thể khôi phục đã xảy ra.
+sec-error-pkcs11-function-failed = Một mô-đun PKCS #11 đã trả về CKR_FUNCTION_FAILED, chỉ ra rằng chức năng được yêu cầu không thể được thực hiện. Thử lại thao tác tương tự có thể sẽ thành công.
+sec-error-pkcs11-device-error = Một module PKCS#11 trả lại CKR_DEVICE_ERROR, cho biết rằng một vấn đề đã xảy ra với token hoặc slot.
+sec-error-bad-info-access-method = Phương pháp truy cập thông tin không xác định trong phần mở rộng chứng nhận.
+sec-error-crl-import-failed = Lỗi khi đang cố nhập một CRL.
+sec-error-expired-password = Mật khẩu đã hết hạn.
+sec-error-locked-password = Mật khẩu bị khóa.
+sec-error-unknown-pkcs11-error = Lỗi PKCS #11 không xác định.
+sec-error-bad-crl-dp-url = URL sai hoặc không được hỗ trợ trong tên điểm phân phối CRL.
+sec-error-cert-signature-algorithm-disabled = Chứng nhận được ký bằng thuật toán chữ ký bị vô hiệu hóa vì không an toàn.
+mozilla-pkix-error-key-pinning-failure = Máy chủ sử dụng key pinning (HPKP) nhưng không có certificate chain tin cậy nào có thể được xây dựng phù hợp với pinset. Các vi phạm Key pinning không thể được ghi đè.
+mozilla-pkix-error-ca-cert-used-as-end-entity = Máy chủ sử dụng chứng nhận với phần mở rộng ràng buộc cơ bản xác định nó là cơ quan cấp chứng nhận. Đối với một chứng nhận được cấp đúng, điều này không nên xảy ra.
+mozilla-pkix-error-inadequate-key-size = Máy chủ xuất trình chứng nhận với kích thước khóa quá nhỏ để thiết lập kết nối an toàn.
+mozilla-pkix-error-v1-cert-used-as-ca = Chứng nhận X.509 phiên bản 1 không được tin cậy đã được sử dụng để cấp chứng nhận máy chủ. Chứng nhận X.509 phiên bản 1 không được dùng nữa và không nên được sử dụng để ký các chứng nhận khác.
+mozilla-pkix-error-not-yet-valid-certificate = Máy chủ xuất trình chứng nhận chưa hợp lệ.
+mozilla-pkix-error-not-yet-valid-issuer-certificate = Chứng nhận chưa hợp lệ đã được sử dụng để cấp chứng nhận máy chủ.
+mozilla-pkix-error-signature-algorithm-mismatch = Thuật toán chữ ký trong trường chữ ký của chứng nhận không khớp với thuật toán trong trường signatureAlgorithm.
+mozilla-pkix-error-ocsp-response-for-cert-missing = Phản hồi OCSP không bao gồm trạng thái cho chứng nhận được xác minh.
+mozilla-pkix-error-validity-too-long = Máy chủ xuất trình chứng nhận có giá trị quá dài.
+mozilla-pkix-error-required-tls-feature-missing = Một tính năng bắt buộc của TLS bị thiếu.
+mozilla-pkix-error-invalid-integer-encoding = Máy chủ xuất trình chứng nhận chứa mã hóa không hợp lệ của một số nguyên. Các nguyên nhân phổ biến bao gồm số sê-ri âm, mô-đun RSA âm và mã hóa dài hơn mức cần thiết.
+mozilla-pkix-error-empty-issuer-name = Các máy chủ xuất trình một chứng nhận không có tên phân biệt nhà phát hành.
+mozilla-pkix-error-additional-policy-constraint-failed = Một ràng buộc của chính sách bổ sung không thành công khi xác nhận chứng nhận này.
+mozilla-pkix-error-self-signed-cert = Chứng nhận này không đáng tin vì nó được tự kí.
diff --git a/l10n-vi/browser/browser/originControls.ftl b/l10n-vi/browser/browser/originControls.ftl
new file mode 100644
index 0000000000..f0daf79509
--- /dev/null
+++ b/l10n-vi/browser/browser/originControls.ftl
@@ -0,0 +1,50 @@
+# 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/.
+
+
+## These strings appear in Origin Controls for Extensions. Currently,
+## they are visible in the context menu for extension toolbar buttons,
+## and are used to inform the user how the extension can access their
+## data for the current website, and allow them to control it.
+
+origin-controls-no-access =
+ .label = Tiện ích mở rộng không thể đọc và thay đổi dữ liệu
+origin-controls-options =
+ .label = Tiện ích mở rộng có thể đọc và thay đổi dữ liệu:
+origin-controls-option-all-domains =
+ .label = Trên tất cả các trang web
+origin-controls-option-when-clicked =
+ .label = Chỉ khi được nhấp
+# This string denotes an option that grants the extension access to
+# the current site whenever they visit it.
+# Variables:
+# $domain (String) - The domain for which the access is granted.
+origin-controls-option-always-on =
+ .label = Luôn cho phép trên { $domain }
+
+## These strings are used to map Origin Controls states to user-friendly
+## messages. They currently appear in the unified extensions panel.
+
+origin-controls-state-no-access = Không thể đọc và thay đổi dữ liệu trên trang này
+origin-controls-state-always-on = Luôn luôn đọc và thay đổi dữ liệu trên trang này
+origin-controls-state-when-clicked = Cần quyền để đọc và thay đổi dữ liệu
+origin-controls-state-hover-run-visit-only = Chỉ chạy cho lần truy cập này
+origin-controls-state-runnable-hover-open = Mở tiện ích
+origin-controls-state-runnable-hover-run = Chạy tiện ích
+origin-controls-state-temporary-access = Có thể đọc và thay đổi dữ liệu trên trang này
+
+## Extension's toolbar button.
+## Variables:
+## $extensionTitle (String) - Extension name or title message.
+
+origin-controls-toolbar-button =
+ .label = { $extensionTitle }
+ .tooltiptext = { $extensionTitle }
+# Extension's toolbar button when permission is needed.
+# Note that the new line is intentionally part of the tooltip.
+origin-controls-toolbar-button-permission-needed =
+ .label = { $extensionTitle }
+ .tooltiptext =
+ { $extensionTitle }
+ Cần yêu cầu quyền hạn
diff --git a/l10n-vi/browser/browser/pageInfo.ftl b/l10n-vi/browser/browser/pageInfo.ftl
new file mode 100644
index 0000000000..c2d1fa49a9
--- /dev/null
+++ b/l10n-vi/browser/browser/pageInfo.ftl
@@ -0,0 +1,257 @@
+# 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-info-window =
+ .style = width: 600px; min-height: 550px;
+
+copy =
+ .key = C
+menu-copy =
+ .label = Sao chép
+ .accesskey = C
+
+select-all =
+ .key = A
+menu-select-all =
+ .label = Chọn tất cả
+ .accesskey = B
+
+close-dialog =
+ .key = w
+
+general-tab =
+ .label = Tổng quát
+ .accesskey = T
+general-title =
+ .value = Tiêu đề:
+general-url =
+ .value = Địa chỉ:
+general-type =
+ .value = Kiểu:
+general-mode =
+ .value = Chế độ xử lí:
+general-size =
+ .value = Kích thước:
+general-referrer =
+ .value = URL liên quan:
+general-modified =
+ .value = Được chỉnh sửa:
+general-encoding =
+ .value = Mã hóa văn bản:
+general-meta-name =
+ .label = Tên
+general-meta-content =
+ .label = Nội dung
+
+media-tab =
+ .label = Đa phương tiện
+ .accesskey = a
+media-location =
+ .value = Địa chỉ:
+media-text =
+ .value = Văn bản đi kèm:
+media-alt-header =
+ .label = Văn bản Thay thế
+media-address =
+ .label = Địa chỉ
+media-type =
+ .label = Kiểu
+media-size =
+ .label = Kích thước
+media-count =
+ .label = Tổng số
+media-dimension =
+ .value = Kích cỡ:
+media-long-desc =
+ .value = Mô tả Đầy đủ:
+media-select-all =
+ .label = Chọn tất cả
+ .accesskey = e
+media-save-as =
+ .label = Lưu thành…
+ .accesskey = L
+media-save-image-as =
+ .label = Lưu thành…
+ .accesskey = h
+
+perm-tab =
+ .label = Quyền hạn
+ .accesskey = Q
+permissions-for =
+ .value = Quyền hạn cho:
+
+security-tab =
+ .label = Bảo mật
+ .accesskey = B
+security-view =
+ .label = Xem chứng nhận
+ .accesskey = C
+security-view-unknown = Không rõ
+ .value = Không rõ
+security-view-identity =
+ .value = Nhận dạng trang web
+security-view-identity-owner =
+ .value = Chủ sở hữu:
+security-view-identity-domain =
+ .value = Trang web:
+security-view-identity-verifier =
+ .value = Xác minh bởi:
+security-view-identity-validity =
+ .value = Hết hạn vào:
+security-view-privacy =
+ .value = Riêng tư & lịch sử
+
+security-view-privacy-history-value = Tôi đã từng truy cập trang web này trước ngày hôm nay chưa?
+security-view-privacy-sitedata-value = Trang web này lưu trữ thông tin trên máy tính của tôi hay không?
+
+security-view-privacy-clearsitedata =
+ .label = Xóa cookie và dữ liệu trang web
+ .accesskey = C
+
+security-view-privacy-passwords-value = Tôi có lưu mật khẩu nào trên trang web này không?
+
+security-view-privacy-viewpasswords =
+ .label = Xem các mật khẩu đã lưu
+ .accesskey = M
+security-view-technical =
+ .value = Chi tiết kĩ thuật
+
+help-button =
+ .label = Trợ giúp
+
+## These strings are used to tell the user if the website is storing cookies
+## and data on the users computer in the security tab of pageInfo
+## Variables:
+## $value (number) - Amount of data being stored
+## $unit (string) - The unit of data being stored (Usually KB)
+
+security-site-data-cookies = Có, cookie và { $value } { $unit } dữ liệu trang web
+security-site-data-only = Có, { $value } { $unit } dữ liệu trang web
+
+security-site-data-cookies-only = Có, cookie
+security-site-data-no = Không
+
+##
+
+image-size-unknown = Không rõ
+page-info-not-specified =
+ .value = Không được chỉ định
+not-set-alternative-text = Không được chỉ định
+not-set-date = Không được chỉ định
+media-img = Hình
+media-bg-img = Nền
+media-border-img = Viền
+media-list-img = Dấu tròn đầu dòng
+media-cursor = Con trỏ
+media-object = Đối tượng
+media-embed = Được nhúng
+media-link = Biểu tượng
+media-input = Nhập vào
+media-video = Đoạn phim
+media-audio = Âm thanh
+saved-passwords-yes = Có
+saved-passwords-no = Không
+
+no-page-title =
+ .value = Trang không có tiêu đề:
+general-quirks-mode =
+ .value = Chế độ Quirks
+general-strict-mode =
+ .value = Chế độ chuẩn
+page-info-security-no-owner =
+ .value = Trang web này không cung cấp thông tin về người sở hữu.
+media-select-folder = Chọn một thư mục để lưu hình ảnh
+media-unknown-not-cached =
+ .value = Không rõ (không được đệm)
+permissions-use-default =
+ .label = Sử dụng mặc định
+security-no-visits = Không
+
+# This string is used to display the number of meta tags
+# in the General Tab
+# Variables:
+# $tags (number) - The number of meta tags
+general-meta-tags =
+ .value =
+ { $tags ->
+ *[other] Meta ({ $tags } thẻ)
+ }
+
+# This string is used to display the number of times
+# the user has visited the website prior
+# Variables:
+# $visits (number) - The number of previous visits
+security-visits-number =
+ { $visits ->
+ [0] Không
+ *[other] Có, { $visits } lần
+ }
+
+# This string is used to display the size of a media file
+# Variables:
+# $kb (number) - The size of an image in Kilobytes
+# $bytes (number) - The size of an image in Bytes
+properties-general-size =
+ .value =
+ { $bytes ->
+ *[other] { $kb } KB ({ $bytes } byte)
+ }
+
+# This string is used to display the type and number
+# of frames of a animated image
+# Variables:
+# $type (string) - The type of a animated image
+# $frames (number) - The number of frames in an animated image
+media-animated-image-type =
+ .value =
+ { $frames ->
+ *[other] { $type } hình ảnh (hoạt hình, { $frames } khung)
+ }
+
+# This string is used to display the type of
+# an image
+# Variables:
+# $type (string) - The type of an image
+media-image-type =
+ .value = { $type } Ảnh
+
+# This string is used to display the size of a scaled image
+# in both scaled and unscaled pixels
+# Variables:
+# $dimx (number) - The horizontal size of an image
+# $dimy (number) - The vertical size of an image
+# $scaledx (number) - The scaled horizontal size of an image
+# $scaledy (number) - The scaled vertical size of an image
+media-dimensions-scaled =
+ .value = { $dimx }px × { $dimy }px (chỉnh tỉ lệ thành { $scaledx }px × { $scaledy }px)
+
+# This string is used to display the size of an image in pixels
+# Variables:
+# $dimx (number) - The horizontal size of an image
+# $dimy (number) - The vertical size of an image
+media-dimensions =
+ .value = { $dimx }px x { $dimy }px
+
+# This string is used to display the size of a media
+# file in kilobytes
+# Variables:
+# $size (number) - The size of the media file in kilobytes
+media-file-size = { $size } KB
+
+# This string is used to display the website name next to the
+# "Block Images" checkbox in the media tab
+# Variables:
+# $website (string) - The website name
+media-block-image =
+ .label = Chặn ảnh từ { $website }
+ .accesskey = C
+
+# This string is used to display the URL of the website on top of the
+# pageInfo dialog box
+# Variables:
+# $website (string) — The url of the website pageInfo is getting info for
+page-info-page =
+ .title = Thông tin trang - { $website }
+page-info-frame =
+ .title = Thông tin Khung - { $website }
diff --git a/l10n-vi/browser/browser/panelUI.ftl b/l10n-vi/browser/browser/panelUI.ftl
new file mode 100644
index 0000000000..310fa38514
--- /dev/null
+++ b/l10n-vi/browser/browser/panelUI.ftl
@@ -0,0 +1,25 @@
+# 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/.
+
+
+## Customization Menu
+
+# The overflow menu is the menu that appears if you click the chevron (>> button) in the location bar.
+customize-menu-unpin-from-overflowmenu =
+ .label = Gỡ khỏi menu gợi ý trên thanh địa chỉ
+ .accesskey = U
+customize-menu-add-to-toolbar =
+ .label = Thêm vào thanh công cụ
+ .accesskey = A
+customize-menu-add-to-overflowmenu =
+ .label = Thêm vào menu gợi ý trên thanh địa chỉ
+ .accesskey = M
+
+## Forget Button
+
+# The forget button can be added to the toolbar or overflow menu via the cutomization menu.
+panic-button-thankyou-msg1 = Lịch sử gần đây đã bị xóa.
+panic-button-thankyou-msg2 = Duyệt web an toàn!
+panic-button-thankyou-button =
+ .label = Cảm ơn!
diff --git a/l10n-vi/browser/browser/panicButton.ftl b/l10n-vi/browser/browser/panicButton.ftl
new file mode 100644
index 0000000000..d123b59bee
--- /dev/null
+++ b/l10n-vi/browser/browser/panicButton.ftl
@@ -0,0 +1,31 @@
+# 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/.
+
+panic-button-open-new-window = Mở một cửa sổ mới
+panic-button-undo-warning = Thao tác này không thể hoàn tác được.
+panic-button-forget-button =
+ .label = Xóa!
+
+## These strings are combined to form a complete sentence starting with
+## panic-main-timeframe-desc. For example: "Forget the last: Five minutes".
+## Please ensure that this remains the case in the translation.
+
+panic-main-timeframe-desc = Xóa dữ liệu từ thời điểm:
+panic-button-5min =
+ .label = Năm phút trước
+panic-button-2hr =
+ .label = Hai tiếng
+panic-button-day =
+ .label = 24 giờ trước
+
+## These strings are combined to form a complete sentence starting with
+## panic-button-action-desc. For example: "Proceeding will: Delete Recent Cookies".
+## Please ensure that this remains the case in the translation.
+## Note also that some strings include tags for emphasis on the
+## words "Cookies", "History", "Tabs" and "Windows". The translation should do the same.
+
+panic-button-action-desc = Nếu tiếp tục, chương trình sẽ:
+panic-button-delete-cookies = Xóa những Cookie gần đây
+panic-button-delete-history = Xóa lịch sử gần đây
+panic-button-delete-tabs-and-windows = Đóng tất cả các thẻ và cửa sổ
diff --git a/l10n-vi/browser/browser/places.ftl b/l10n-vi/browser/browser/places.ftl
new file mode 100644
index 0000000000..5507a4bc21
--- /dev/null
+++ b/l10n-vi/browser/browser/places.ftl
@@ -0,0 +1,207 @@
+# 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/.
+
+places-open =
+ .label = Mở
+ .accesskey = O
+places-open-in-tab =
+ .label = Mở trong thẻ mới
+ .accesskey = w
+places-open-in-container-tab =
+ .label = Mở liên kết trong thẻ ngăn chứa mới
+ .accesskey = i
+places-open-all-bookmarks =
+ .label = Mở tất cả các dấu trang
+ .accesskey = O
+places-open-all-in-tabs =
+ .label = Mở toàn bộ trong thẻ
+ .accesskey = O
+places-open-in-window =
+ .label = Mở trong cửa sổ mới
+ .accesskey = N
+places-open-in-private-window =
+ .label = Mở trong cửa sổ riêng tư mới
+ .accesskey = P
+places-add-bookmark =
+ .label = Thêm dấu trang…
+ .accesskey = B
+places-add-folder-contextmenu =
+ .label = Thêm thư mục…
+ .accesskey = F
+places-add-folder =
+ .label = Thêm thư mục…
+ .accesskey = o
+places-add-separator =
+ .label = Thêm dấu phân tách
+ .accesskey = S
+places-view =
+ .label = Xem
+ .accesskey = w
+places-by-date =
+ .label = Theo ngày
+ .accesskey = D
+places-by-site =
+ .label = Theo trang web
+ .accesskey = S
+places-by-most-visited =
+ .label = Theo lần truy cập nhiều nhất
+ .accesskey = V
+places-by-last-visited =
+ .label = Theo lần truy cập cuối
+ .accesskey = L
+places-by-day-and-site =
+ .label = Theo ngày và trang web
+ .accesskey = t
+places-history-search =
+ .placeholder = Tìm kiếm lịch sử
+places-history =
+ .aria-label = Lịch sử
+places-bookmarks-search =
+ .placeholder = Tìm kiếm dấu trang
+places-delete-domain-data =
+ .label = Quên trang này
+ .accesskey = F
+places-sortby-name =
+ .label = Sắp xếp theo tên
+ .accesskey = r
+# places-edit-bookmark and places-edit-generic will show one or the other and can have the same access key.
+places-edit-bookmark =
+ .label = Chỉnh sửa dấu trang…
+ .accesskey = i
+places-edit-generic =
+ .label = Chỉnh sửa…
+ .accesskey = i
+places-edit-folder2 =
+ .label = Chỉnh sửa thư mục…
+ .accesskey = i
+places-delete-folder =
+ .label =
+ { $count ->
+ [1] Xóa thư mục
+ *[other] Xóa thư mục
+ }
+ .accesskey = D
+# Managed bookmarks are created by an administrator and cannot be changed by the user.
+managed-bookmarks =
+ .label = Dấu trang được quản lý
+# This label is used when a managed bookmarks folder doesn't have a name.
+managed-bookmarks-subfolder =
+ .label = Thư mục con
+# This label is used for the "Other Bookmarks" folder that appears in the bookmarks toolbar.
+other-bookmarks-folder =
+ .label = Dấu trang khác
+places-show-in-folder =
+ .label = Hiển thị trong thư mục
+ .accesskey = F
+# Variables:
+# $count (number) - The number of elements being selected for removal.
+places-delete-bookmark =
+ .label =
+ { $count ->
+ [1] Xóa dấu trang
+ *[other] Xóa dấu trang
+ }
+ .accesskey = D
+places-untag-bookmark =
+ .label = Xóa thẻ
+ .accesskey = R
+places-manage-bookmarks =
+ .label = Quản lý dấu trang
+ .accesskey = M
+places-forget-about-this-site-confirmation-title = Quên trang web này
+# Variables:
+# $hostOrBaseDomain (string) - The base domain (or host in case there is no base domain) for which data is being removed
+places-forget-about-this-site-confirmation-message = Hành động này sẽ xóa tất cả dữ liệu liên quan đến { $hostOrBaseDomain } bao gồm lịch sử, mật khẩu, cookie, bộ nhớ đệm và tùy chỉnh nội dung. Bạn có chắc muốn tiếp tục?
+# Variables:
+# $hostOrBaseDomain (string) - The base domain (or host in case there is no base domain) for which data is being removed
+places-forget-about-this-site-confirmation-msg = Hành động này sẽ xóa dữ liệu liên quan đến { $hostOrBaseDomain } bao gồm lịch sử, cookie, bộ nhớ đệm và tùy chỉnh nội dung. Dấu trang và mật khẩu liên quan sẽ không bị xóa. Bạn có chắc muốn tiếp tục?
+places-forget-about-this-site-forget = Quên
+places-library =
+ .title = Thư viện
+ .style = width:700px; height:500px;
+places-library2 =
+ .title = Thư viện
+ .style = min-width:700px; min-height:500px;
+places-library3 =
+ .title = Thư viện
+places-organize-button =
+ .label = Quản lí
+ .tooltiptext = Tổ chức dấu trang của bạn
+ .accesskey = Q
+places-organize-button-mac =
+ .label = Quản lí
+ .tooltiptext = Tổ chức dấu trang của bạn
+places-file-close =
+ .label = Đóng
+ .accesskey = C
+places-cmd-close =
+ .key = w
+places-view-button =
+ .label = Xem
+ .tooltiptext = Thay đổi cách nhìn của bạn
+ .accesskey = V
+places-view-button-mac =
+ .label = Xem
+ .tooltiptext = Thay đổi cách nhìn của bạn
+places-view-menu-columns =
+ .label = Hiển thị cột
+ .accesskey = C
+places-view-menu-sort =
+ .label = Sắp xếp
+ .accesskey = S
+places-view-sort-unsorted =
+ .label = Chưa sắp xếp
+ .accesskey = U
+places-view-sort-ascending =
+ .label = Sắp xếp từ A > Z
+ .accesskey = A
+places-view-sort-descending =
+ .label = Sắp xếp từ Z > A
+ .accesskey = Z
+places-maintenance-button =
+ .label = Nhập và sao lưu
+ .tooltiptext = Nhập và sao lưu dấu trang của bạn
+ .accesskey = I
+places-maintenance-button-mac =
+ .label = Nhập và sao lưu
+ .tooltiptext = Nhập và sao lưu dấu trang của bạn
+places-cmd-backup =
+ .label = Sao lưu…
+ .accesskey = B
+places-cmd-restore =
+ .label = Khôi phục
+ .accesskey = R
+places-cmd-restore-from-file =
+ .label = Chọn tập tin…
+ .accesskey = C
+places-import-bookmarks-from-html =
+ .label = Nhập dấu trang từ HTML…
+ .accesskey = I
+places-export-bookmarks-to-html =
+ .label = Xuất dấu trang sang HTML…
+ .accesskey = E
+places-import-other-browser =
+ .label = Nhập dữ liệu từ trình duyệt khác…
+ .accesskey = A
+places-view-sort-col-name =
+ .label = Tên
+places-view-sort-col-tags =
+ .label = Nhãn
+places-view-sort-col-url =
+ .label = Địa chỉ
+places-view-sort-col-most-recent-visit =
+ .label = Lần truy cập gần nhất
+places-view-sort-col-visit-count =
+ .label = Số lần xem
+places-view-sort-col-date-added =
+ .label = Ngày thêm
+places-view-sort-col-last-modified =
+ .label = Sửa đổi lần cuối
+places-cmd-find-key =
+ .key = f
+places-back-button =
+ .tooltiptext = Quay lại
+places-forward-button =
+ .tooltiptext = Tiến
+places-details-pane-select-an-item-description = Chọn một mục để xem và chỉnh sửa thuộc tính của nó
diff --git a/l10n-vi/browser/browser/policies/policies-descriptions.ftl b/l10n-vi/browser/browser/policies/policies-descriptions.ftl
new file mode 100644
index 0000000000..70e1baf0ce
--- /dev/null
+++ b/l10n-vi/browser/browser/policies/policies-descriptions.ftl
@@ -0,0 +1,125 @@
+# 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/.
+
+
+## The Enterprise Policies feature is aimed at system administrators
+## who want to deploy these settings across several Firefox installations
+## all at once. This is traditionally done through the Windows Group Policy
+## feature, but the system also supports other forms of deployment.
+## These are short descriptions for individual policies, to be displayed
+## in the documentation section in about:policies.
+
+policy-3rdparty = Đặt chính sách mà WebExtensions có thể truy cập thông qua chrome.storage.managed.
+policy-AllowedDomainsForApps = Xác định các miền được phép truy cập Google Workspace.
+policy-AppAutoUpdate = Bật hoặc tắt cập nhật chương trình tự động.
+policy-AppUpdatePin = Ngăn không cho cập nhật { -brand-short-name } ngoài phiên bản đã chỉ định.
+policy-AppUpdateURL = Thiết lập URL cập nhật của ứng dụng tùy chỉnh.
+policy-Authentication = Cấu hình các phương thức xác thực tích hợp sẵn cho các trang web có hỗ trợ.
+policy-AutoLaunchProtocolsFromOrigins = Xác định danh sách các giao thức bên ngoài có thể được sử dụng từ các origin được liệt kê mà không cần nhắc người dùng.
+policy-BackgroundAppUpdate2 = Kích hoạt hoặc vô hiệu hóa trình cập nhật nền.
+policy-BlockAboutAddons = Chặn quyền truy cập vào trình quản lý tiện ích (about: addons).
+policy-BlockAboutConfig = Chặn truy cập vào trang about:config.
+policy-BlockAboutProfiles = Chặn truy cập vào trang about:profiles.
+policy-BlockAboutSupport = Chặn truy cập vào trang about:support.
+policy-Bookmarks = Tạo dấu trang trong thanh công cụ dấu trang, menu dấu trang hoặc một thư mục xác định bên trong chúng.
+policy-CaptivePortal = Kích hoạt hoặc vô hiệu hóa hỗ trợ kiểm soát truy cập.
+policy-CertificatesDescription = Thêm chứng chỉ hoặc sử dụng chứng chỉ có sẵn.
+policy-Cookies = Cho phép hoặc từ chối các trang web lưu cookie.
+policy-DisabledCiphers = Vô hiệu hóa thuật toán mã hóa.
+policy-DefaultDownloadDirectory = Đặt thư mục tải xuống mặc định.
+policy-DisableAppUpdate = Chặn việc cập nhật trình duyệt.
+policy-DisableBuiltinPDFViewer = Vô hiệu hóa PDF.js, trình xem PDF tích hợp trong { -brand-short-name }.
+policy-DisableDefaultBrowserAgent = Ngăn chặn tác nhân người dùng trình duyệt mặc định làm bất cứ điều gì. Chỉ dành cho Windows, không có tác nhân người dùng nào khả dụng cho các nền tảng khác.
+policy-DisableDeveloperTools = Chặn truy cập đến công cụ nhà phát triển.
+policy-DisableFeedbackCommands = Tắt các lệnh để gửi phản hồi từ bảng chọn trợ giúp (gửi phản hồi và báo cáo trang web lừa đảo).
+policy-DisableFirefoxAccounts = Vô hiệu hóa { -fxaccount-brand-name } dựa trên các dịch vụ, bao gồm cả đồng bộ.
+# Firefox Screenshots is the name of the feature, and should not be translated.
+policy-DisableFirefoxScreenshots = Vô hiệu hóa tính năng Firefox Screenshots.
+policy-DisableFirefoxStudies = Chặn { -brand-short-name } chạy các nghiên cứu.
+policy-DisableForgetButton = Chặn truy cập vào nút Quên.
+policy-DisableFormHistory = Không lưu lịch sử tìm kiếm và biểu mẫu.
+policy-DisablePrimaryPasswordCreation = Nếu đúng, không thể tạo mật khẩu chính.
+policy-DisablePasswordReveal = Không cho phép mật khẩu được tiết lộ trong thông tin đăng nhập đã lưu.
+policy-DisablePocket = Tắt tính năng lưu trang web vào Pocket.
+policy-DisablePrivateBrowsing = Vô hiệu hóa duyệt web riêng tư.
+policy-DisableProfileImport = Vô hiệu hóa lệnh nhập dữ liệu từ trình duyệt khác trên bảng chọn.
+policy-DisableProfileRefresh = Vô hiệu hóa nút khôi phục { -brand-short-name } trong trang about:support.
+policy-DisableSafeMode = Tắt tính năng này để khởi động lại ở chế độ an toàn. Lưu ý: phím Shift để vào chế độ an toàn chỉ có thể tắt trên Windows bằng Group Policy.
+policy-DisableSecurityBypass = Ngăn người dùng bỏ qua một số cảnh báo bảo mật nhất định.
+policy-DisableSetAsDesktopBackground = Vô hiệu hóa lệnh đặt làm hình nền desktop trong menu.
+policy-DisableSystemAddonUpdate = Ngăn trình duyệt cài đặt và cập nhật tiện ích hệ thống.
+policy-DisableTelemetry = Tắt Telemetry.
+policy-DisableThirdPartyModuleBlocking = Ngăn người dùng chặn các module của bên thứ ba đưa vào tiến trình { -brand-short-name }.
+policy-DisplayBookmarksToolbar = Hiển thị thanh công cụ dấu trang theo mặc định.
+policy-DisplayMenuBar = Hiển thị thanh bảng chọn theo mặc định.
+policy-DNSOverHTTPS = Cấu hình DNS over HTTPS.
+policy-DontCheckDefaultBrowser = Tắt kiểm tra trình duyệt mặc định khi khởi động.
+policy-DownloadDirectory = Đặt và khóa thư mục tải xuống.
+# “lock” means that the user won’t be able to change this setting
+policy-EnableTrackingProtection = Kích hoạt hoặc vô hiệu hóa chặn nội dung và tùy chọn khóa nó.
+# “lock” means that the user won’t be able to change this setting
+policy-EncryptedMediaExtensions = Kích hoạt hoặc vô hiệu hóa tiện ích mở rộng phương tiện được mã hóa và tùy chọn khóa nó.
+policy-ExemptDomainFileTypePairsFromFileTypeDownloadWarnings = Tắt cảnh báo dựa trên phần mở rộng của tập tin cho các loại tập tin cụ thể trên miền.
+# A “locked” extension can’t be disabled or removed by the user. This policy
+# takes 3 keys (“Install”, ”Uninstall”, ”Locked”), you can either keep them in
+# English or translate them as verbs.
+policy-Extensions = Cài đặt, gỡ cài đặt hoặc khóa tiện ích mở rộng. Tùy chọn Cài đặt lấy URL hoặc đường dẫn làm tham số. Các tùy chọn Gỡ cài đặt và Khóa lấy ID tiện ích mở rộng.
+policy-ExtensionSettings = Quản lý các cài đặt cài đặt khác nhau cho tiện ích mở rộng.
+policy-ExtensionUpdate = Bật hoặc tắt cập nhật tiện ích mở rộng tự động.
+policy-FirefoxHome = Cấu hình trang chủ Firefox.
+policy-FirefoxHome2 = Định cấu hình { -firefox-home-brand-name }.
+policy-FlashPlugin = Cho phép hoặc từ chối việc sử dụng phần bổ trợ Flash.
+policy-GoToIntranetSiteForSingleWordEntryInAddressBar = Buộc điều hướng trực tiếp trang web nội bộ thay vì tìm kiếm khi nhập các mục từ đơn lẻ vào thanh địa chỉ.
+policy-Handlers = Cấu hình trình xử lý ứng dụng mặc định.
+policy-HardwareAcceleration = Nếu không đúng, hãy tắt chế độ tăng tốc phần cứng.
+# “lock” means that the user won’t be able to change this setting
+policy-Homepage = Đặt và tùy chọn khóa trang chủ.
+policy-InstallAddonsPermission = Cho phép một số trang web cài đặt tiện ích.
+policy-LegacyProfiles = Vô hiệu hóa tính năng thực thi một cấu hình riêng cho mỗi cài đặt
+
+## Do not translate "SameSite", it's the name of a cookie attribute.
+
+policy-LegacySameSiteCookieBehaviorEnabled = Bật cài đặt hành vi cookie SameSite cũ mặc định.
+policy-LegacySameSiteCookieBehaviorEnabledForDomainList = Hoàn nguyên hành vi SameSite cũ cho cookie trên các trang web được chỉ định.
+
+##
+
+policy-LocalFileLinks = Cho phép các trang web cụ thể để liên kết đến các tập tin cục bộ.
+policy-ManagedBookmarks = Định cấu hình danh sách các dấu trang do quản trị viên quản lý mà người dùng không thể thay đổi.
+policy-ManualAppUpdateOnly = Chỉ cho phép cập nhật thủ công và không thông báo cho người dùng về các bản cập nhật.
+policy-PrimaryPassword = Yêu cầu hoặc ngăn không sử dụng mật khẩu chính.
+policy-NetworkPrediction = Kích hoạt hoặc vô hiệu hóa dự đoán mạng (tìm nạp trước DNS).
+policy-NewTabPage = Kích hoạt hoặc vô hiệu hóa trang Thẻ mới.
+policy-NoDefaultBookmarks = Vô hiệu hóa việc tạo dấu trang mặc định đi kèm với { -brand-short-name } và dấu trang thông minh (được truy cập nhiều nhất, thẻ gần đây). Lưu ý: chính sách này chỉ có hiệu lực nếu được sử dụng trước lần chạy đầu tiên của hồ sơ.
+policy-OfferToSaveLogins = Thực thi cài đặt để cho phép { -brand-short-name } cung cấp và ghi nhớ thông tin đăng nhập và mật khẩu đã lưu. Cả hai giá trị đúng và sai đều được chấp nhận.
+policy-OfferToSaveLoginsDefault = Đặt giá trị mặc định để cho phép { -brand-short-name } cung cấp ghi nhớ các thông tin đăng nhập và mật khẩu đã lưu. Cả giá trị đúng và sai đều được chấp nhận.
+policy-OverrideFirstRunPage = Ghi đè trang chạy đầu tiên. Bỏ trống chính sách này nếu bạn muốn vô hiệu hóa trang chạy đầu tiên.
+policy-OverridePostUpdatePage = Ghi đè lên trang cập nhật "Có gì mới". Bỏ trống chính sách này nếu bạn muốn tắt trang cập nhật sau.
+policy-PasswordManagerEnabled = Cho phép lưu mật khẩu vào trình quản lý mật khẩu.
+policy-PasswordManagerExceptions = Ngăn { -brand-short-name } lưu mật khẩu cho các trang web cụ thể.
+# PDF.js and PDF should not be translated
+policy-PDFjs = Vô hiệu hóa hoặc cấu hình PDF.js, trình xem PDF tích hợp trong { -brand-short-name }.
+policy-Permissions2 = Cấu hình quyền truy cập cho máy ảnh, micrô, vị trí, thông báo và tự động phát.
+policy-PictureInPicture = Kích hoạt hoặc vô hiệu hóa hình trong hình.
+policy-PopupBlocking = Cho phép các trang web nhất định hiển thị cửa sổ bật lên theo mặc định.
+policy-Preferences = Đặt và khóa giá trị cho một tập hợp con ưu tiên.
+policy-PromptForDownloadLocation = Hỏi nơi lưu tập tin khi tải xuống.
+policy-Proxy = Cài đặt cấu hình proxy.
+policy-RequestedLocales = Đặt danh sách các ngôn ngữ được yêu cầu cho ứng dụng theo thứ tự ưu tiên.
+policy-SanitizeOnShutdown2 = Xóa dữ liệu điều hướng khi tắt máy.
+policy-SearchBar = Đặt thanh tìm kiếm ở vị trí mặc định. Người dùng vẫn được phép tùy chỉnh nó.
+policy-SearchEngines = Cấu hình cài đặt công cụ tìm kiếm. Chính sách này chỉ có sẵn trên phiên bản phát hành hỗ trợ mở rộng (ESR).
+policy-SearchSuggestEnabled = Kích hoạt hoặc vô hiệu hóa các đề xuất tìm kiếm.
+# For more information, see https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/PKCS11/Module_Installation
+policy-SecurityDevices = Cài đặt các mô-đun PKCS # 11.
+policy-ShowHomeButton = Hiển thị nút trang chủ trên thanh công cụ.
+policy-SSLVersionMax = Chỉnh phiên bản SSL tối đa.
+policy-SSLVersionMin = Chỉnh phiên bản SSL tối thiểu.
+policy-StartDownloadsInTempDirectory = Buộc bắt đầu tải xuống ở một vị trí cục bộ, tạm thời thay vì thư mục tải xuống mặc định.
+policy-SupportMenu = Thêm một mục menu hỗ trợ tùy chỉnh vào menu trợ giúp.
+policy-UserMessaging = Không hiển thị một số thông điệp nhất định cho người dùng.
+policy-UseSystemPrintDialog = In bằng hộp thoại in hệ thống.
+# “format” refers to the format used for the value of this policy.
+policy-WebsiteFilter = Chặn các trang web không được truy cập. Xem tài liệu để biết thêm chi tiết về định dạng.
+policy-Windows10SSO = Cho phép Windows đăng nhập một lần cho tài khoản Microsoft, cơ quan và trường học.
diff --git a/l10n-vi/browser/browser/preferences/addEngine.ftl b/l10n-vi/browser/browser/preferences/addEngine.ftl
new file mode 100644
index 0000000000..2485182d0c
--- /dev/null
+++ b/l10n-vi/browser/browser/preferences/addEngine.ftl
@@ -0,0 +1,26 @@
+# 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/.
+
+add-engine-window =
+ .title = Thêm công cụ tìm kiếm
+ .style = width: 32em;
+
+add-engine-window2 =
+ .title = Thêm công cụ tìm kiếm
+ .style = min-width: 32em;
+
+add-engine-button = Thêm công cụ tùy chỉnh
+
+add-engine-name = Tên công cụ tìm kiếm
+
+add-engine-alias = Bí danh
+
+add-engine-url = URL công cụ, sử dụng %s thay cho cụm từ tìm kiếm
+
+add-engine-dialog =
+ .buttonlabelaccept = Thêm công cụ tìm kiếm
+ .buttonaccesskeyaccept = A
+
+engine-name-exists = Một công cụ có tên đó đã tồn tại
+engine-alias-exists = Một công cụ có bí danh đó đã tồn tại
diff --git a/l10n-vi/browser/browser/preferences/applicationManager.ftl b/l10n-vi/browser/browser/preferences/applicationManager.ftl
new file mode 100644
index 0000000000..141fc07e10
--- /dev/null
+++ b/l10n-vi/browser/browser/preferences/applicationManager.ftl
@@ -0,0 +1,29 @@
+# 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/.
+
+app-manager-window =
+ .title = Chi tiết ứng dụng
+ .style = width: 30em; min-height: 20em;
+
+app-manager-window2 =
+ .title = Chi tiết ứng dụng
+ .style = min-width: 30em; min-height: 20em;
+
+app-manager-remove =
+ .label = Gỡ bỏ
+ .accesskey = G
+
+# Variables:
+# $type (String) - the URI scheme of the link (e.g. mailto:)
+app-manager-handle-protocol = Các ứng dụng sau có thể được dùng để xử lí các liên kết { $type }.
+
+# Variables:
+# $type (String) - the MIME type (e.g. application/binary)
+app-manager-handle-file = Các ứng dụng sau có thể được dùng để xử lí nội dung { $type }.
+
+## These strings are followed, on a new line,
+## by the URL or path of the application.
+
+app-manager-web-app-info = Ứng dụng web này được đặt tại:
+app-manager-local-app-info = Ứng dụng này nằm tại:
diff --git a/l10n-vi/browser/browser/preferences/blocklists.ftl b/l10n-vi/browser/browser/preferences/blocklists.ftl
new file mode 100644
index 0000000000..1c9832e4b9
--- /dev/null
+++ b/l10n-vi/browser/browser/preferences/blocklists.ftl
@@ -0,0 +1,37 @@
+# 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/.
+
+blocklist-window =
+ .title = Danh sách chặn
+ .style = width: 55em
+
+blocklist-window2 =
+ .title = Danh sách chặn
+ .style = min-width: 55em
+
+blocklist-description = Chọn danh sách { -brand-short-name } sử dụng để chặn trình theo dõi trực tuyến. Danh sách được cung cấp bởi Disconnect.
+blocklist-close-key =
+ .key = w
+
+blocklist-treehead-list =
+ .label = Danh sách
+
+blocklist-dialog =
+ .buttonlabelaccept = Lưu thay đổi
+ .buttonaccesskeyaccept = L
+
+
+# This template constructs the name of the block list in the block lists dialog.
+# It combines the list name and description.
+# e.g. "Standard (Recommended). This list does a pretty good job."
+#
+# Variables:
+# $listName {string, "Standard (Recommended)."} - List name.
+# $description {string, "This list does a pretty good job."} - Description of the list.
+blocklist-item-list-template = { $listName } { $description }
+
+blocklist-item-moz-std-listName = Danh sách cấp 1 (Khuyến nghị).
+blocklist-item-moz-std-description = Cho phép một số trình theo dõi để trang web ít bị hỏng hơn.
+blocklist-item-moz-full-listName = Danh sách cấp 2.
+blocklist-item-moz-full-description = Chặn tất cả các trình theo dõi được phát hiện. Một số trang web hoặc nội dung có thể không hoạt động đúng cách.
diff --git a/l10n-vi/browser/browser/preferences/clearSiteData.ftl b/l10n-vi/browser/browser/preferences/clearSiteData.ftl
new file mode 100644
index 0000000000..ad2b08f9e1
--- /dev/null
+++ b/l10n-vi/browser/browser/preferences/clearSiteData.ftl
@@ -0,0 +1,60 @@
+# 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/.
+
+clear-site-data-window =
+ .title = Xóa dữ liệu
+ .style = width: 35em
+
+clear-site-data-window2 =
+ .title = Xóa dữ liệu
+ .style = min-width: 35em
+
+clear-site-data-description = Xóa tất cả cookie và dữ liệu trang được lưu bởi { -brand-short-name } có thể khiến bạn đăng xuất khỏi trang web và xóa các nội dung ngoại tuyến. Xóa dữ liệu cache sẽ không ảnh hưởng đến đăng nhập của bạn.
+
+clear-site-data-close-key =
+ .key = w
+
+# The parameters in parentheses in this string describe disk usage
+# in the format ($amount $unit), e.g. "Cookies and Site Data (24 KB)"
+# Variables:
+# $amount (Number) - Amount of site data currently stored on disk
+# $unit (String) - Abbreviation of the unit that $amount is in, e.g. "MB"
+clear-site-data-cookies-with-data =
+ .label = Cookie và dữ liệu trang ({ $amount } { $unit })
+ .accesskey = S
+
+# This string is a placeholder for while the data used to fill
+# clear-site-data-cookies-with-data is loading. This placeholder is usually
+# only shown for a very short time (< 1s), so it should be very similar
+# or the same as clear-site-data-cookies-with-data (except the amount and unit),
+# to avoid flickering.
+clear-site-data-cookies-empty =
+ .label = Cookie và dữ liệu trang
+ .accesskey = S
+
+clear-site-data-cookies-info = Bạn có thể bị đăng xuất khỏi trang web nếu xóa
+
+# The parameters in parentheses in this string describe disk usage
+# in the format ($amount $unit), e.g. "Cached Web Content (24 KB)"
+# Variables:
+# $amount (Number) - Amount of cache currently stored on disk
+# $unit (String) - Abbreviation of the unit that $amount is in, e.g. "MB"
+clear-site-data-cache-with-data =
+ .label = Nội dung web lưu vào bộ nhớ đệm ({ $amount } { $unit })
+ .accesskey = W
+
+# This string is a placeholder for while the data used to fill
+# clear-site-data-cache-with-data is loading. This placeholder is usually
+# only shown for a very short time (< 1s), so it should be very similar
+# or the same as clear-site-data-cache-with-data (except the amount and unit),
+# to avoid flickering.
+clear-site-data-cache-empty =
+ .label = Nội dung web được nhớ đệm
+ .accesskey = W
+
+clear-site-data-cache-info = Sẽ yêu cầu trang web tải lại ảnh và dữ liệu
+
+clear-site-data-dialog =
+ .buttonlabelaccept = Xóa
+ .buttonaccesskeyaccept = l
diff --git a/l10n-vi/browser/browser/preferences/colors.ftl b/l10n-vi/browser/browser/preferences/colors.ftl
new file mode 100644
index 0000000000..f3776be8f7
--- /dev/null
+++ b/l10n-vi/browser/browser/preferences/colors.ftl
@@ -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/.
+
+colors-window =
+ .title = Màu sắc
+ .style =
+ { PLATFORM() ->
+ [macos] width: 41em
+ *[other] width: 38em
+ }
+
+colors-dialog =
+ .title = Màu
+ .style = width: 41em;
+
+colors-dialog2 =
+ .title = Màu
+ .style = min-width: 41em;
+
+colors-close-key =
+ .key = w
+
+colors-page-override = Ghi đè các màu đã được quy định bởi trang với các lựa chọn của bạn ở trên
+ .accesskey = O
+
+colors-page-override-option-always =
+ .label = Luôn luôn
+colors-page-override-option-auto =
+ .label = Chỉ trong các diện mạo có độ tương phản cao
+colors-page-override-option-never =
+ .label = Không bao giờ
+
+colors-text-and-background = Văn bản và nền
+
+colors-text-header = Chữ
+ .accesskey = T
+
+colors-background = Nền
+ .accesskey = B
+
+colors-use-system =
+ .label = Dùng màu sắc của hệ thống
+ .accesskey = D
+
+colors-underline-links =
+ .label = Gạch chân các liên kết
+ .accesskey = G
+
+colors-links-header = Màu của liên kết
+
+colors-unvisited-links = Liên kết chưa truy cập
+ .accesskey = L
+
+colors-visited-links = Liên kết đã truy cập
+ .accesskey = V
diff --git a/l10n-vi/browser/browser/preferences/connection.ftl b/l10n-vi/browser/browser/preferences/connection.ftl
new file mode 100644
index 0000000000..b485a62d67
--- /dev/null
+++ b/l10n-vi/browser/browser/preferences/connection.ftl
@@ -0,0 +1,109 @@
+# 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/.
+
+connection-window =
+ .title = Cài đặt kết nối
+ .style =
+ { PLATFORM() ->
+ [macos] width: 44em
+ *[other] width: 49em
+ }
+
+connection-window2 =
+ .title = Cài đặt kết nối
+ .style =
+ { PLATFORM() ->
+ [macos] min-width: 44em
+ *[other] min-width: 49em
+ }
+
+connection-close-key =
+ .key = w
+
+connection-disable-extension =
+ .label = Vô hiệu hóa tiện ích mở rộng
+
+connection-proxy-configure = Cấu hình proxy để truy cập Internet
+
+connection-proxy-option-no =
+ .label = Không dùng proxy
+ .accesskey = y
+connection-proxy-option-system =
+ .label = Dùng các thiết lập proxy của hệ thống
+ .accesskey = D
+connection-proxy-option-auto =
+ .label = Tự động dò thiết lập của proxy cho mạng này
+ .accesskey = m
+connection-proxy-option-manual =
+ .label = Cấu hình proxy thủ công
+ .accesskey = m
+
+connection-proxy-http = Proxy HTTP
+ .accesskey = x
+connection-proxy-http-port = Cổng
+ .accesskey = C
+connection-proxy-https-sharing =
+ .label = Đồng thời sử dụng proxy này cho HTTPS
+ .accesskey = s
+
+connection-proxy-https = HTTPS Proxy
+ .accesskey = H
+connection-proxy-ssl-port = Cổng
+ .accesskey = :
+
+connection-proxy-socks = Máy chủ SOCKS
+ .accesskey = C
+connection-proxy-socks-port = Cổng
+ .accesskey = g
+
+connection-proxy-socks4 =
+ .label = SOCKS v4
+ .accesskey = 4
+connection-proxy-socks5 =
+ .label = SOCKS v5
+ .accesskey = 5
+connection-proxy-noproxy = Không dùng proxy cho
+ .accesskey = n
+
+connection-proxy-noproxy-desc = Ví dụ: .mozilla.org, .edu.vn, 192.168.1.0/24
+
+# Do not translate "localhost", "127.0.0.1/8" and "::1". (You can translate "and".)
+connection-proxy-noproxy-localhost-desc-2 = Kết nối đến localhost, 127.0.0.1/8, và ::1 không bao giờ dùng proxy.
+
+connection-proxy-autotype =
+ .label = URL cấu hình proxy tự động
+ .accesskey = A
+
+connection-proxy-reload =
+ .label = Tải lại
+ .accesskey = i
+
+connection-proxy-autologin =
+ .label = Không yêu cầu xác nhận nếu đã lưu mật khẩu
+ .accesskey = n
+ .tooltip = Tùy chọn này xác thực ngầm bạn với proxy khi bạn đã lưu thông tin ủy nhiệm của chúng. Bạn sẽ được yêu cầu nếu việc xác thực thất bại.
+
+connection-proxy-socks-remote-dns =
+ .label = DNS của proxy khi dùng SOCKS v5
+ .accesskey = d
+
+connection-dns-over-https =
+ .label = Kích hoạt DNS over HTTPS
+ .accesskey = b
+
+connection-dns-over-https-url-resolver = Sử dụng nhà cung cấp
+ .accesskey = c
+
+# Variables:
+# $name (String) - Display name or URL for the DNS over HTTPS provider
+connection-dns-over-https-url-item-default =
+ .label = { $name } (Mặc định)
+ .tooltiptext = Sử dụng đường dẫn mặc định để phân giải DNS over HTTPS
+
+connection-dns-over-https-url-custom =
+ .label = Tùy chỉnh
+ .accesskey = C
+ .tooltiptext = Nhập URL ưa thích của bạn để phân giải DNS over HTTPS
+
+connection-dns-over-https-custom-label = Tùy biến
diff --git a/l10n-vi/browser/browser/preferences/containers.ftl b/l10n-vi/browser/browser/preferences/containers.ftl
new file mode 100644
index 0000000000..fee84663e2
--- /dev/null
+++ b/l10n-vi/browser/browser/preferences/containers.ftl
@@ -0,0 +1,102 @@
+# 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/.
+
+containers-window-new =
+ .title = Thêm ngăn chứa mới
+ .style = width: 45em
+# Variables
+# $name (String) - Name of the container
+containers-window-update-settings =
+ .title = Cài đặt ngăn chứa { $name }
+ .style = width: 45em
+
+containers-window-new2 =
+ .title = Thêm ngăn chứa mới
+ .style = min-width: 45em
+# Variables
+# $name (String) - Name of the container
+containers-window-update-settings2 =
+ .title = Cài đặt ngăn chứa { $name }
+ .style = min-width: 45em
+
+containers-window-close =
+ .key = w
+
+# This is a term to store style to be applied
+# on the three labels in the containers add/edit dialog:
+# - name
+# - icon
+# - color
+#
+# Using this term and referencing it in the `.style` attribute
+# of the three messages ensures that all three labels
+# will be aligned correctly.
+-containers-labels-style = min-width: 4rem
+
+containers-name-label = Tên
+ .accesskey = N
+ .style = { -containers-labels-style }
+
+containers-name-text =
+ .placeholder = Nhập tên vùng chứa
+
+containers-icon-label = Biểu tượng
+ .accesskey = I
+ .style = { -containers-labels-style }
+
+containers-color-label = Màu
+ .accesskey = o
+ .style = { -containers-labels-style }
+
+containers-dialog =
+ .buttonlabelaccept = Xong
+ .buttonaccesskeyaccept = X
+
+containers-color-blue =
+ .label = Xanh lam
+containers-color-turquoise =
+ .label = Ngọc lam
+containers-color-green =
+ .label = Xanh lục
+containers-color-yellow =
+ .label = Vàng
+containers-color-orange =
+ .label = Da cam
+containers-color-red =
+ .label = Đỏ
+containers-color-pink =
+ .label = Hồng
+containers-color-purple =
+ .label = Tím
+containers-color-toolbar =
+ .label = Thanh công cụ phù hợp
+
+containers-icon-fence =
+ .label = Hàng rào
+containers-icon-fingerprint =
+ .label = Dấu vết (Fingerprintng)
+containers-icon-briefcase =
+ .label = Cặp tài liệu
+# String represents a money sign but currently uses a dollar sign
+# so don't change to local currency. See Bug 1291672.
+containers-icon-dollar =
+ .label = Ký hiệu đô la
+containers-icon-cart =
+ .label = Giỏ hàng
+containers-icon-circle =
+ .label = Chấm
+containers-icon-vacation =
+ .label = Nghỉ phép
+containers-icon-gift =
+ .label = Quà tặng
+containers-icon-food =
+ .label = Thực phẩm
+containers-icon-fruit =
+ .label = Trái cây
+containers-icon-pet =
+ .label = Vật nuôi
+containers-icon-tree =
+ .label = Cây
+containers-icon-chill =
+ .label = Khuôn
diff --git a/l10n-vi/browser/browser/preferences/fonts.ftl b/l10n-vi/browser/browser/preferences/fonts.ftl
new file mode 100644
index 0000000000..9e6771b478
--- /dev/null
+++ b/l10n-vi/browser/browser/preferences/fonts.ftl
@@ -0,0 +1,121 @@
+# 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/.
+
+fonts-window =
+ .title = Phông
+
+fonts-window-close =
+ .key = w
+
+## Font groups by language
+
+fonts-langgroup-header = Phông cho
+ .accesskey = F
+
+fonts-langgroup-arabic =
+ .label = Ả Rập
+fonts-langgroup-armenian =
+ .label = Armenia
+fonts-langgroup-bengali =
+ .label = Băng-gan
+fonts-langgroup-simpl-chinese =
+ .label = Hoa Giản Thể
+fonts-langgroup-trad-chinese-hk =
+ .label = Hoa Phồn Thể (Hồng Kông)
+fonts-langgroup-trad-chinese =
+ .label = Hoa Phồn Thể (Đài Loan)
+fonts-langgroup-cyrillic =
+ .label = Kirin
+fonts-langgroup-devanagari =
+ .label = Devanagari
+fonts-langgroup-ethiopic =
+ .label = Ethiopia
+fonts-langgroup-georgian =
+ .label = Gruzia
+fonts-langgroup-el =
+ .label = Hi Lạp
+fonts-langgroup-gujarati =
+ .label = Gujarat
+fonts-langgroup-gurmukhi =
+ .label = Gurmukhi
+fonts-langgroup-japanese =
+ .label = Nhật
+fonts-langgroup-hebrew =
+ .label = Do Thái
+fonts-langgroup-kannada =
+ .label = Kannada
+fonts-langgroup-khmer =
+ .label = Khơ-me
+fonts-langgroup-korean =
+ .label = Hàn
+# Translate "Latin" as the name of Latin (Roman) script, not as the name of the Latin language.
+fonts-langgroup-latin =
+ .label = Latinh
+fonts-langgroup-malayalam =
+ .label = Malayalam
+fonts-langgroup-math =
+ .label = Toán học
+fonts-langgroup-odia =
+ .label = Odia
+fonts-langgroup-sinhala =
+ .label = Sinhala
+fonts-langgroup-tamil =
+ .label = Tamil
+fonts-langgroup-telugu =
+ .label = Telugu
+fonts-langgroup-thai =
+ .label = Thái
+fonts-langgroup-tibetan =
+ .label = Tây Tạng
+fonts-langgroup-canadian =
+ .label = Kí hiệu Âm tiết Canađa Thống nhất
+fonts-langgroup-other =
+ .label = Hệ thống viết khác
+
+## Default fonts and their sizes
+
+fonts-proportional-header = Tỷ lệ
+ .accesskey = P
+
+fonts-default-serif =
+ .label = Serif
+fonts-default-sans-serif =
+ .label = Sans Serif
+
+fonts-proportional-size = Kích thước
+ .accesskey = z
+
+fonts-serif = Serif
+ .accesskey = S
+
+fonts-sans-serif = Sans-serif
+ .accesskey = n
+
+fonts-monospace = Monospace
+ .accesskey = M
+
+fonts-monospace-size = Kích thước
+ .accesskey = h
+
+fonts-minsize = Cỡ phông tối thiểu
+ .accesskey = o
+
+fonts-minsize-none =
+ .label = Không
+
+fonts-allow-own =
+ .label = Cho phép các trang web tự lựa chọn phông chữ riêng, thay vì sử dụng phông mà bạn chọn ở trên
+ .accesskey = A
+
+## Text Encodings
+##
+## Translate the encoding names as adjectives for an encoding, not as the name
+## of the language.
+
+# Variables:
+# $name {string, "Arial"} - Name of the default font
+fonts-label-default =
+ .label = Mặc định ({ $name })
+fonts-label-default-unnamed =
+ .label = Mặc định
diff --git a/l10n-vi/browser/browser/preferences/formAutofill.ftl b/l10n-vi/browser/browser/preferences/formAutofill.ftl
new file mode 100644
index 0000000000..cbf219fa8d
--- /dev/null
+++ b/l10n-vi/browser/browser/preferences/formAutofill.ftl
@@ -0,0 +1,124 @@
+# 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/.
+
+
+## The address and credit card autofill management dialog in browser preferences
+
+autofill-manage-addresses-title = Các địa chỉ đã lưu
+autofill-manage-addresses-list-header = Địa chỉ
+
+autofill-manage-credit-cards-title = Thẻ tín dụng đã lưu
+autofill-manage-credit-cards-list-header = Thẻ tín dụng
+
+autofill-manage-dialog =
+ .style = min-width: 560px
+autofill-manage-remove-button = Xóa
+autofill-manage-add-button = Thêm…
+autofill-manage-edit-button = Sửa…
+
+##
+
+# The dialog title for creating addresses in browser preferences.
+autofill-add-new-address-title = Thêm địa chỉ mới
+# The dialog title for editing addresses in browser preferences.
+autofill-edit-address-title = Sửa địa chỉ
+
+autofill-address-given-name = Họ
+autofill-address-additional-name = Tên đệm
+autofill-address-family-name = Tên
+autofill-address-organization = Tổ chức
+autofill-address-street = Địa chỉ đường phố
+
+## address-level-3 (Sublocality) names
+
+# Used in IR, MX
+autofill-address-neighborhood = Khu vực lân cận
+# Used in MY
+autofill-address-village-township = Làng hoặc thị trấn
+autofill-address-island = Đảo
+# Used in IE
+autofill-address-townland = Thị trấn
+
+## address-level-2 names
+
+autofill-address-city = Thành phố
+# Used in HK, SD, SY, TR as Address Level-2 and used in KR as Sublocality.
+autofill-address-district = Quận
+# Used in GB, NO, SE
+autofill-address-post-town = Bưu điện thị trấn
+# Used in AU as Address Level-2 and used in ZZ as Sublocality.
+autofill-address-suburb = Ngoại thành
+
+## address-level-1 names
+
+autofill-address-province = Tỉnh
+autofill-address-state = Bang
+autofill-address-county = Quận
+# Used in BB, JM
+autofill-address-parish = Giáo xứ
+# Used in JP
+autofill-address-prefecture = Tỉnh
+# Used in HK
+autofill-address-area = Vùng
+# Used in KR
+autofill-address-do-si = Tỉnh/Thành phố
+# Used in NI, CO
+autofill-address-department = Sở
+# Used in AE
+autofill-address-emirate = Tiểu Vương quốc
+# Used in RU and UA
+autofill-address-oblast = Tỉnh
+
+## Postal code name types
+
+# Used in IN
+autofill-address-pin = Pin
+autofill-address-postal-code = Mã bưu chính
+autofill-address-zip = Mã bưu chính
+# Used in IE
+autofill-address-eircode = Mã bưu chính
+
+##
+
+autofill-address-country = Quốc gia hoặc vùng
+autofill-address-tel = Điện thoại
+autofill-address-email = Thư điện tử
+
+autofill-cancel-button = Hủy bỏ
+autofill-save-button = Lưu
+autofill-country-warning-message = Tự động điền biểu mẫu hiện chỉ có sẵn cho một số quốc gia nhất định.
+
+# The dialog title for creating credit cards in browser preferences.
+autofill-add-new-card-title = Thêm thẻ tín dụng mới
+# The dialog title for editing credit cards in browser preferences.
+autofill-edit-card-title = Sửa thẻ tín dụng
+
+# In macOS, this string is preceded by the operating system with "Firefox is trying to ",
+# and has a period added to its end. Make sure to test in your locale.
+autofill-edit-card-password-prompt =
+ { PLATFORM() ->
+ [macos] hiển thị thông tin thẻ tín dụng
+ [windows] { -brand-short-name } đang cố gắng hiển thị thông tin thẻ tín dụng. Xác nhận quyền truy cập vào tài khoản Windows bên dưới.
+ *[other] { -brand-short-name } đang cố gắng hiển thị thông tin thẻ tín dụng.
+ }
+
+autofill-card-number = Số thẻ
+autofill-card-invalid-number = Vui lòng nhập số thẻ hợp lệ
+autofill-card-name-on-card = Tên trên thẻ
+autofill-card-expires-month = Hết hạn tháng
+autofill-card-expires-year = Hết hạn năm
+autofill-card-billing-address = Địa chỉ thanh toán
+autofill-card-network = Loại thẻ
+
+## These are brand names and should only be translated when a locale-specific name for that brand is in common use
+
+autofill-card-network-amex = American Express
+autofill-card-network-cartebancaire = Carte Bancaire
+autofill-card-network-diners = Diners Club
+autofill-card-network-discover = Discover
+autofill-card-network-jcb = JCB
+autofill-card-network-mastercard = MasterCard
+autofill-card-network-mir = MIR
+autofill-card-network-unionpay = Union Pay
+autofill-card-network-visa = Visa
diff --git a/l10n-vi/browser/browser/preferences/fxaPairDevice.ftl b/l10n-vi/browser/browser/preferences/fxaPairDevice.ftl
new file mode 100644
index 0000000000..0413416520
--- /dev/null
+++ b/l10n-vi/browser/browser/preferences/fxaPairDevice.ftl
@@ -0,0 +1,22 @@
+# 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/.
+
+fxa-pair-device-dialog =
+ .title = Kết nối thiết bị khác
+ .style = width: 26em; min-height: 35em;
+fxa-qrcode-heading-step1 = 1. Cài đặt Firefox trên thiết bị di động nếu bạn chưa có.
+fxa-qrcode-heading-step2 = 2. Mở Firefox trên thiết bị di động của bạn.
+fxa-qrcode-heading-step3 = 3. Mở menu ( hoặc ), chạm vào Cài đặt và chọn Bật đồng bộ hóa
+fxa-qrcode-heading-step4 = 4. Quét mã này:
+fxa-pair-device-dialog-sync =
+ .style = width: 32em;
+fxa-pair-device-dialog-sync2 =
+ .style = min-width: 32em;
+fxa-qrcode-pair-title = Đồng bộ hóa { -brand-product-name } trên điện thoại hoặc máy tính bảng của bạn
+fxa-qrcode-pair-step1 = 1. Mở { -brand-product-name } trên thiết bị di động của bạn.
+fxa-qrcode-pair-step2 = 2. Mở menu ( trên iOS hoặc trên Android) và nhấn Đăng nhập để đồng bộ hóa
+fxa-qrcode-pair-step2-signin = 2. Đi đến menu ( trên iOS hoặc trên Android) và nhấn Đồng bộ hóa và lưu dữ liệu
+fxa-qrcode-pair-step3 = 3. Nhấn Sẵn sàng để quét và giữ camera của điện thoại của bạn vào mã này
+fxa-qrcode-error-title = Ghép đôi không thành công.
+fxa-qrcode-error-body = Thử lại.
diff --git a/l10n-vi/browser/browser/preferences/languages.ftl b/l10n-vi/browser/browser/preferences/languages.ftl
new file mode 100644
index 0000000000..651eb3c7a1
--- /dev/null
+++ b/l10n-vi/browser/browser/preferences/languages.ftl
@@ -0,0 +1,81 @@
+# 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/.
+
+webpage-languages-window =
+ .title = Cài đặt ngôn ngữ của trang web
+ .style = width: 40em
+
+webpage-languages-window2 =
+ .title = Cài đặt ngôn ngữ của trang web
+ .style = min-width: 40em
+
+languages-close-key =
+ .key = w
+
+languages-description = Một số trang web có thể cung cấp nhiều ngôn ngữ. Chọn ngôn ngữ để hiển thị các trang web này, theo thứ tự ưu tiên
+
+languages-customize-spoof-english =
+ .label = Yêu cầu phiên bản tiếng Anh của trang web để nâng cao tính riêng tư
+
+languages-customize-moveup =
+ .label = Di chuyển lên
+ .accesskey = U
+
+languages-customize-movedown =
+ .label = Di chuyển xuống
+ .accesskey = D
+
+languages-customize-remove =
+ .label = Xóa
+ .accesskey = X
+
+languages-customize-select-language =
+ .placeholder = Chọn một ngôn ngữ để thêm…
+
+languages-customize-add =
+ .label = Thêm
+ .accesskey = T
+
+# The pattern used to generate strings presented to the user in the
+# locale selection list.
+#
+# Example:
+# Icelandic [is]
+# Spanish (Chile) [es-CL]
+#
+# Variables:
+# $locale (String) - A name of the locale (for example: "Icelandic", "Spanish (Chile)")
+# $code (String) - Locale code of the locale (for example: "is", "es-CL")
+languages-code-format =
+ .label = { $locale } [{ $code }]
+
+languages-active-code-format =
+ .value = { languages-code-format.label }
+
+browser-languages-window =
+ .title = Cài đặt ngôn ngữ { -brand-short-name }
+ .style = width: 40em
+
+browser-languages-window2 =
+ .title = Cài đặt ngôn ngữ { -brand-short-name }
+ .style = min-width: 40em
+
+browser-languages-description = { -brand-short-name } sẽ hiển thị ngôn ngữ mà bạn đã chọn làm mặc định và sẽ hiển thị ngôn ngữ khác nếu cần thiết được sắp xếp theo thứ tự mà chúng xuất hiện.
+
+browser-languages-search = Tìm thêm ngôn ngữ…
+
+browser-languages-searching =
+ .label = Đang tìm kiếm ngôn ngữ...
+
+browser-languages-downloading =
+ .label = Đang tải xuống...
+
+browser-languages-select-language =
+ .label = Chọn ngôn ngữ để thêm…
+ .placeholder = Chọn ngôn ngữ để thêm…
+
+browser-languages-installed-label = Ngôn ngữ đã cài đặt
+browser-languages-available-label = Ngôn ngữ có sẵn
+
+browser-languages-error = { -brand-short-name } không thể cập nhật ngôn ngữ của bạn ngay bây giờ. Kiểm tra kết nối internet và thử lại.
diff --git a/l10n-vi/browser/browser/preferences/moreFromMozilla.ftl b/l10n-vi/browser/browser/preferences/moreFromMozilla.ftl
new file mode 100644
index 0000000000..3f9e2b0fbe
--- /dev/null
+++ b/l10n-vi/browser/browser/preferences/moreFromMozilla.ftl
@@ -0,0 +1,37 @@
+# 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/.
+
+
+## These strings are used in the about:preferences moreFromMozilla page
+
+more-from-moz-title = Sản phẩm thêm từ { -vendor-short-name }
+more-from-moz-category =
+ .tooltiptext = Sản phẩm thêm từ { -vendor-short-name }
+more-from-moz-subtitle = Xem các sản phẩm khác của { -vendor-short-name } đang hoạt động để hỗ trợ internet lành mạnh.
+more-from-moz-firefox-mobile-title = { -brand-product-name } dành cho di động
+more-from-moz-firefox-mobile-description = Trình duyệt di động đặt quyền riêng tư của bạn lên hàng đầu.
+more-from-moz-firefox-mobile-description-advanced = Từ việc chặn trình theo dõi đến giải quyết các vấn đề phiền toái khi tự động phát, trình duyệt { -brand-product-name } trên điện thoại di động làm việc ngoài giờ để đảm bảo bạn đang sử dụng Internet tốt.
+more-from-moz-mozilla-vpn-title = { -mozilla-vpn-brand-name }
+more-from-moz-mozilla-vpn-description = Khám phá web với một lớp bảo vệ được bổ sung và duyệt web ẩn danh.
+more-from-moz-mozilla-vpn-description-advanced = { -mozilla-vpn-brand-name } thêm một lớp bảo vệ khác và duyệt ẩn danh. Và, không giống như một số VPN khác, nó an toàn và không theo dõi hoạt động của bạn.
+# This string is specific to the product Mozilla Rally which is US only.
+more-from-moz-mozilla-rally-title = { -rally-brand-name }
+# This string is specific to the product Mozilla Rally which is US only.
+more-from-moz-mozilla-rally-description = Đưa dữ liệu của bạn hoạt động để mang đến internet tốt hơn cho mọi người.
+# This string is specific to the product Mozilla Rally which is US only.
+more-from-moz-mozilla-rally-description-advanced = Đóng góp dữ liệu của bạn cho các nghiên cứu nhằm tạo ra Internet an toàn hơn, cởi mở hơn, giúp ích cho mọi người, thay vì các công ty công nghệ lớn.
+# This string is specific to the product Mozilla Rally which is US only.
+more-from-moz-button-mozilla-rally-2 = Tham gia { -rally-short-name }
+more-from-moz-qr-code-box-firefox-mobile-title = Tải xuống bằng thiết bị di động của bạn. Hướng máy ảnh của bạn vào mã QR. Khi một liên kết xuất hiện, hãy nhấn vào nó.
+more-from-moz-qr-code-box-firefox-mobile-button = Gửi email đến điện thoại của bạn để thay thế
+more-from-moz-qr-code-firefox-mobile-img =
+ .alt = Mã QR để tải xuống { -brand-product-name } dành cho di động
+more-from-moz-button-mozilla-vpn-2 = Nhận VPN
+more-from-moz-learn-more-link = Tìm hiểu thêm
+
+## These strings are for the Firefox Relay card in about:preferences moreFromMozilla page
+
+more-from-moz-firefox-relay-title = { -relay-brand-name }
+more-from-moz-firefox-relay-description = Bảo vệ hộp thư đến và danh tính của bạn bằng mặt nạ email miễn phí.
+more-from-moz-firefox-relay-button = Nhận { -relay-brand-short-name }
diff --git a/l10n-vi/browser/browser/preferences/permissions.ftl b/l10n-vi/browser/browser/preferences/permissions.ftl
new file mode 100644
index 0000000000..604c2489ae
--- /dev/null
+++ b/l10n-vi/browser/browser/preferences/permissions.ftl
@@ -0,0 +1,211 @@
+# 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/.
+
+permissions-window =
+ .title = Ngoại trừ
+ .style = width: 45em
+permissions-window2 =
+ .title = Ngoại trừ
+ .style = min-width: 45em
+permissions-close-key =
+ .key = w
+permissions-address = Địa chỉ của trang web
+ .accesskey = d
+permissions-block =
+ .label = Chặn
+ .accesskey = C
+permissions-disable-etp =
+ .label = Thêm ngoại trừ
+ .accesskey = E
+permissions-session =
+ .label = Cho phép theo phiên
+ .accesskey = S
+permissions-allow =
+ .label = Cho phép
+ .accesskey = h
+permissions-button-off =
+ .label = Tắt
+ .accesskey = O
+permissions-button-off-temporarily =
+ .label = Tắt tạm thời
+ .accesskey = T
+permissions-site-name =
+ .label = Trang web
+permissions-status =
+ .label = Trạng thái
+permissions-remove =
+ .label = Xóa trang web
+ .accesskey = R
+permissions-remove-all =
+ .label = Xóa tất cả các trang web
+ .accesskey = e
+permission-dialog =
+ .buttonlabelaccept = Lưu thay đổi
+ .buttonaccesskeyaccept = L
+permissions-autoplay-menu = Mặc định cho tất cả các trang web:
+permissions-searchbox =
+ .placeholder = Tìm kiếm trang web
+permissions-capabilities-autoplay-allow =
+ .label = Cho phép âm thanh và video
+permissions-capabilities-autoplay-block =
+ .label = Chặn âm thanh
+permissions-capabilities-autoplay-blockall =
+ .label = Chặn âm thanh và video
+permissions-capabilities-allow =
+ .label = Cho phép
+permissions-capabilities-block =
+ .label = Chặn
+permissions-capabilities-prompt =
+ .label = Luôn hỏi
+permissions-capabilities-listitem-allow =
+ .value = Cho phép
+permissions-capabilities-listitem-block =
+ .value = Chặn
+permissions-capabilities-listitem-allow-session =
+ .value = Cho phép theo phiên
+permissions-capabilities-listitem-off =
+ .value = Tắt
+permissions-capabilities-listitem-off-temporarily =
+ .value = Tắt tạm thời
+
+## Invalid Hostname Dialog
+
+permissions-invalid-uri-title = Nhập sai tên máy chủ
+permissions-invalid-uri-label = Hãy nhập một tên máy chủ có thực
+
+## Exceptions - Tracking Protection
+
+permissions-exceptions-etp-window =
+ .title = Các ngoại lệ cho trình chống theo dõi nâng cao
+ .style = { permissions-window.style }
+permissions-exceptions-etp-window2 =
+ .title = Các ngoại lệ cho trình chống theo dõi nâng cao
+ .style = { permissions-window2.style }
+permissions-exceptions-etp-desc = Bạn đã tắt bảo vệ trên các trang web này.
+permissions-exceptions-manage-etp-desc = Bạn có thể chỉ định trang web nào đã tắt Trình chống theo dõi nâng cao. Nhập địa chỉ chính xác của trang web mà bạn muốn quản lý rồi nhấp vào Thêm ngoại trừ.
+
+## Exceptions - Cookies
+
+permissions-exceptions-cookie-window =
+ .title = Ngoại lệ - Cookie và dữ liệu trang web
+ .style = { permissions-window.style }
+permissions-exceptions-cookie-window2 =
+ .title = Ngoại lệ - Cookie và dữ liệu trang web
+ .style = { permissions-window2.style }
+permissions-exceptions-cookie-desc = Bạn có thể chỉ định trang web nào luôn hoặc không bao giờ được phép sử dụng cookie và dữ liệu trang web. Nhập địa chỉ chính xác của trang web bạn muốn quản lý và sau đó nhấp vào Chặn, Chỉ cho phép với phiên này hoặc Cho phép.
+
+## Exceptions - HTTPS-Only Mode
+
+permissions-exceptions-https-only-window =
+ .title = Ngoại trừ - Chế độ chỉ HTTPS
+ .style = { permissions-window.style }
+permissions-exceptions-https-only-window2 =
+ .title = Ngoại trừ - Chế độ chỉ HTTPS
+ .style = { permissions-window2.style }
+permissions-exceptions-https-only-desc = Bạn có thể tắt Chế độ chỉ HTTPS cho các trang web cụ thể. { -brand-short-name } sẽ không cố gắng nâng cấp kết nối để bảo mật HTTPS cho các trang web đó. Các trường hợp ngoại lệ không áp dụng cho các cửa sổ riêng tư.
+
+## Exceptions - Pop-ups
+
+permissions-exceptions-popup-window =
+ .title = Những trang được cho phép - Cửa sổ bật lên
+ .style = { permissions-window.style }
+permissions-exceptions-popup-window2 =
+ .title = Những trang được cho phép - Cửa sổ bật lên
+ .style = { permissions-window2.style }
+permissions-exceptions-popup-desc = Bạn có thể chỉ định những trang được phép bật cửa sổ bật lên. Gõ chính xác địa chỉ trang bạn muốn cho phép và sau đó nhấp Cho phép.
+
+## Exceptions - Saved Logins
+
+permissions-exceptions-saved-logins-window =
+ .title = Ngoại lệ - Đăng nhập đã lưu
+ .style = { permissions-window.style }
+permissions-exceptions-saved-logins-window2 =
+ .title = Ngoại lệ - Đăng nhập đã lưu
+ .style = { permissions-window2.style }
+permissions-exceptions-saved-logins-desc = Đăng nhập các trang web sau sẽ không được lưu
+
+## Exceptions - Add-ons
+
+permissions-exceptions-addons-window =
+ .title = Những trang được cho phép - Cài đặt tiện ích
+ .style = { permissions-window.style }
+permissions-exceptions-addons-window2 =
+ .title = Những trang được cho phép - Cài đặt tiện ích
+ .style = { permissions-window2.style }
+permissions-exceptions-addons-desc = Bạn có thể chỉ định trang web nào được phép cài tiện ích. Gõ chính xác địa chỉ trang bạn muốn cho phép và sau đó nhấp Cho phép.
+
+## Site Permissions - Autoplay
+
+permissions-site-autoplay-window =
+ .title = Cài đặt - Tự động phát
+ .style = { permissions-window.style }
+permissions-site-autoplay-window2 =
+ .title = Cài đặt - Tự động phát
+ .style = { permissions-window2.style }
+permissions-site-autoplay-desc = Bạn có thể quản lý các trang web không tuân theo cài đặt tự động phát mặc định của bạn tại đây.
+
+## Site Permissions - Notifications
+
+permissions-site-notification-window =
+ .title = Cài đặt - Quyền thông báo
+ .style = { permissions-window.style }
+permissions-site-notification-window2 =
+ .title = Cài đặt - Quyền thông báo
+ .style = { permissions-window2.style }
+permissions-site-notification-desc = Các trang web dưới đây đã yêu cầu để gửi thông báo tới bạn. Bạn có thể chỉ định những trang web nào được phép gửi bạn thông báo. Bạn cũng có thể chặn những yêu cầu mà bạn không muốn cho phép.
+permissions-site-notification-disable-label =
+ .label = Chặn các yêu cầu mới về việc cho phép gửi thông báo
+permissions-site-notification-disable-desc = Điều này sẽ ngăn chặn bất cứ trang web nào không được liệt kê ở trên gửi yêu cầu cho phép việc gửi thông báo. Chặn thông báo có thể ảnh hưởng đến một số tính năng trang web.
+
+## Site Permissions - Location
+
+permissions-site-location-window =
+ .title = Cài đặt - Quyền truy cập vị trí
+ .style = { permissions-window.style }
+permissions-site-location-window2 =
+ .title = Cài đặt - Quyền truy cập vị trí
+ .style = { permissions-window2.style }
+permissions-site-location-desc = Các trang web dưới đây đã yêu cầu quyền truy cập vị trí của bạn. Bạn có thể chỉ định những trang web nào được phép truy cập vị trí của bạn. Bạn cũng có thể chặn các yêu cầu mới về việc xin cấp quyền truy cập vị trí.
+permissions-site-location-disable-label =
+ .label = Chặn các yêu cầu mới về việc cho phép tru cập vị trí của bạn
+permissions-site-location-disable-desc = Điều này sẽ ngăn chặn bất cứ trang web nào không được liệt kê ở trên gửi yêu cầu cho phép việc truy cập vị trí của bạn. Chặn thông báo có thể ảnh hưởng đến một số tính năng trang web.
+
+## Site Permissions - Virtual Reality
+
+permissions-site-xr-window =
+ .title = Cài đặt - Quyền thực tế ảo
+ .style = { permissions-window.style }
+permissions-site-xr-window2 =
+ .title = Cài đặt - Quyền thực tế ảo
+ .style = { permissions-window2.style }
+permissions-site-xr-desc = Các trang web sau đây đã yêu cầu truy cập các thiết bị thực tế ảo của bạn. Bạn có thể chỉ định trang web nào được phép truy cập các thiết bị thực tế ảo của mình. Bạn cũng có thể chặn các yêu cầu mới mà nó yêu cầu truy cập các thiết bị thực tế ảo của mình.
+permissions-site-xr-disable-label =
+ .label = Chặn các yêu cầu mới mà nó yêu cầu truy cập các thiết bị thực tế ảo của bạn
+permissions-site-xr-disable-desc = Điều này sẽ ngăn mọi trang web không được liệt kê ở trên yêu cầu quyền truy cập vào các thiết bị thực tế ảo của bạn. Chặn quyền truy cập vào các thiết bị thực tế ảo của bạn có thể phá vỡ một số tính năng của trang web.
+
+## Site Permissions - Camera
+
+permissions-site-camera-window =
+ .title = Cài đặt - Quyền sử dụng máy quay
+ .style = { permissions-window.style }
+permissions-site-camera-window2 =
+ .title = Cài đặt - Quyền sử dụng máy quay
+ .style = { permissions-window2.style }
+permissions-site-camera-desc = Các trang web dưới đây đã yêu cầu quyền truy cập máy ảnh của bạn. Bạn có thể chỉ định những trang web nào được phép truy cập máy ảnh của bạn. Bạn cũng có thể chặn các yêu cầu mới về việc xin cấp quyền truy cập máy ảnh của bạn.
+permissions-site-camera-disable-label =
+ .label = Chặn các yêu cầu mới về việc cho phép tru cập máy ảnh của bạn
+permissions-site-camera-disable-desc = Điều này sẽ ngăn chặn bất cứ trang web nào không được liệt kê ở trên gửi yêu cầu cho phép việc truy cập máy ảnh của bạn. Chặn thông báo có thể ảnh hưởng đến một số tính năng trang web.
+
+## Site Permissions - Microphone
+
+permissions-site-microphone-window =
+ .title = Cài đặt - Quyền micrô
+ .style = { permissions-window.style }
+permissions-site-microphone-window2 =
+ .title = Cài đặt - Quyền micrô
+ .style = { permissions-window2.style }
+permissions-site-microphone-desc = Các trang web dưới đây đã yêu cầu quyền truy cập micrô của bạn. Bạn có thể chỉ định những trang web nào được phép truy cập micrô của bạn. Bạn cũng có thể chặn các yêu cầu mới về việc xin cấp quyền truy cập micrô của bạn.
+permissions-site-microphone-disable-label =
+ .label = Chặn các yêu cầu mới về việc cho phép tru cập micrô của bạn
+permissions-site-microphone-disable-desc = Điều này sẽ ngăn chặn bất cứ trang web nào không được liệt kê ở trên gửi yêu cầu cho phép việc truy cập micrô của bạn. Chặn thông báo có thể ảnh hưởng đến một số tính năng trang web.
diff --git a/l10n-vi/browser/browser/preferences/preferences.ftl b/l10n-vi/browser/browser/preferences/preferences.ftl
new file mode 100644
index 0000000000..ed3d3da779
--- /dev/null
+++ b/l10n-vi/browser/browser/preferences/preferences.ftl
@@ -0,0 +1,1167 @@
+# 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/.
+
+do-not-track-description = Gửi tín hiệu “Không theo dõi” tới trang web để cho biết bạn không muốn bị theo dõi
+do-not-track-learn-more = Tìm hiểu thêm
+do-not-track-option-default-content-blocking-known =
+ .label = Chỉ khi { -brand-short-name } được đặt để chặn trình theo dõi đã biết
+do-not-track-option-always =
+ .label = Luôn luôn
+settings-page-title = Cài đặt
+# This is used to determine the width of the search field in about:preferences,
+# in order to make the entire placeholder string visible
+#
+# Please keep the placeholder string short to avoid truncation.
+#
+# Notice: The value of the `.style` attribute is a CSS string, and the `width`
+# is the name of the CSS property. It is intended only to adjust the element's width.
+# Do not translate.
+search-input-box2 =
+ .style = width: 15.4em
+ .placeholder = Tìm kiếm trong Cài đặt
+managed-notice = Trình duyệt của bạn đang được quản lý bởi tổ chức của bạn.
+category-list =
+ .aria-label = Thể loại
+pane-general-title = Tổng quát
+category-general =
+ .tooltiptext = { pane-general-title }
+pane-home-title = Trang chủ
+category-home =
+ .tooltiptext = { pane-home-title }
+pane-search-title = Tìm kiếm
+category-search =
+ .tooltiptext = { pane-search-title }
+pane-privacy-title = Riêng tư & bảo mật
+category-privacy =
+ .tooltiptext = { pane-privacy-title }
+pane-sync-title3 = Đồng bộ hóa
+category-sync3 =
+ .tooltiptext = { pane-sync-title3 }
+pane-experimental-title = Thử nghiệm { -brand-short-name }
+category-experimental =
+ .tooltiptext = Thử nghiệm { -brand-short-name }
+pane-experimental-subtitle = Tiến hành thận trọng
+pane-experimental-search-results-header = Thử nghiệm { -brand-short-name }: Tiến hành thận trọng
+pane-experimental-description2 = Thay đổi cài đặt cấu hình nâng cao có thể ảnh hưởng đến hiệu suất hoặc bảo mật của { -brand-short-name }.
+pane-experimental-reset =
+ .label = Khôi phục về mặc định
+ .accesskey = R
+help-button-label = Hỗ trợ { -brand-short-name }
+addons-button-label = Tiện ích mở rộng & chủ đề
+focus-search =
+ .key = f
+close-button =
+ .aria-label = Đóng
+
+## Browser Restart Dialog
+
+feature-enable-requires-restart = { -brand-short-name } phải khởi động lại để kích hoạt tính năng này.
+feature-disable-requires-restart = { -brand-short-name } phải khởi động lại để vô hiệu hóa tính năng này.
+should-restart-title = Khởi động lại { -brand-short-name }
+should-restart-ok = Khởi động lại { -brand-short-name } ngay
+cancel-no-restart-button = Hủy bỏ
+restart-later = Khởi động lại sau
+
+## Extension Control Notifications
+##
+## These strings are used to inform the user
+## about changes made by extensions to browser settings.
+##
+## is going to be replaced by the extension icon.
+##
+## Variables:
+## $name (String): name of the extension
+
+# This string is shown to notify the user that the password manager setting
+# is being controlled by an extension
+extension-controlling-password-saving = { $name } kiểm soát cài đặt này.
+# This string is shown to notify the user that their notifications permission
+# is being controlled by an extension.
+extension-controlling-web-notifications = { $name } kiểm soát cài đặt này.
+# This string is shown to notify the user that Container Tabs
+# are being enabled by an extension.
+extension-controlling-privacy-containers = { $name } yêu cầu ngăn chứa thẻ.
+# This string is shown to notify the user that their content blocking "All Detected Trackers"
+# preferences are being controlled by an extension.
+extension-controlling-websites-content-blocking-all-trackers = { $name } kiểm soát cài đặt này.
+# This string is shown to notify the user that their proxy configuration preferences
+# are being controlled by an extension.
+extension-controlling-proxy-config = { $name } kiểm soát cách { -brand-short-name } kết nối với Internet.
+# This string is shown after the user disables an extension to notify the user
+# how to enable an extension that they disabled.
+#
+# will be replaced with Add-ons icon
+# will be replaced with Menu icon
+extension-controlled-enable = Để kích hoạt tiện ích mở rộng hãy vào phần tiện ích trên bảng chọn .
+
+## Preferences UI Search Results
+
+search-results-header = Kết quả tìm kiếm
+# `` will be replaced by the search term.
+search-results-empty-message2 = Xin lỗi! Không có kết quả nào trong Cài đặt cho “”.
+search-results-help-link = Cần trợ giúp? Đi đến Hỗ trợ { -brand-short-name }
+
+## General Section
+
+startup-header = Khởi động
+always-check-default =
+ .label = Luôn kiểm tra xem { -brand-short-name } có phải trình duyệt mặc định không
+ .accesskey = y
+is-default = { -brand-short-name } đang là trình duyệt mặc định của bạn
+is-not-default = { -brand-short-name } không phải là trình duyệt mặc định
+set-as-my-default-browser =
+ .label = Đặt làm mặc định…
+ .accesskey = D
+startup-restore-windows-and-tabs =
+ .label = Mở các cửa sổ và thẻ trước đó
+ .accesskey = s
+startup-restore-warn-on-quit =
+ .label = Cảnh báo bạn khi thoát khỏi trình duyệt
+disable-extension =
+ .label = Vô hiệu hóa tiện ích mở rộng
+tabs-group-header = Thẻ
+ctrl-tab-recently-used-order =
+ .label = Ctrl+Tab để chuyển qua các thẻ theo thứ tự sử dụng gần đây nhất
+ .accesskey = T
+open-new-link-as-tabs =
+ .label = Mở đường dẫn ở thẻ thay vì ở cửa sổ mới
+ .accesskey = w
+confirm-on-close-multiple-tabs =
+ .label = Xác nhận trước khi đóng nhiều thẻ
+ .accesskey = m
+# This string is used for the confirm before quitting preference.
+# Variables:
+# $quitKey (String) - the quit keyboard shortcut, and formatted
+# in the same manner as it would appear,
+# for example, in the File menu.
+confirm-on-quit-with-key =
+ .label = Xác nhận trước khi thoát bằng { $quitKey }
+ .accesskey = b
+warn-on-open-many-tabs =
+ .label = Cảnh báo bạn khi mở nhiều thẻ có thể làm chậm { -brand-short-name }
+ .accesskey = d
+switch-to-new-tabs =
+ .label = Khi bạn mở một liên kết, hình ảnh hoặc phương tiện trong một thẻ mới, chuyển sang nó ngay lập tức
+ .accesskey = h
+show-tabs-in-taskbar =
+ .label = Hiển thị hình ảnh xem trước thẻ trong thanh tác vụ Windows
+ .accesskey = k
+browser-containers-enabled =
+ .label = Kích hoạt ngăn chứa thẻ
+ .accesskey = n
+browser-containers-learn-more = Tìm hiểu thêm
+browser-containers-settings =
+ .label = Cài đặt…
+ .accesskey = i
+containers-disable-alert-title = Đóng tất cả các ngăn chứa thẻ?
+containers-disable-alert-desc = Nếu bạn vô hiệu hóa ngăn chứa thẻ bây giờ, { $tabCount } thẻ trong ngăn chứa sẽ bị đóng. Bạn có chắc muốn vô hiệu hóa ngăn chứa thẻ?
+containers-disable-alert-ok-button = Đóng { $tabCount } thẻ trong ngăn chứa
+containers-disable-alert-cancel-button = Tiếp tục bật
+containers-remove-alert-title = Xóa ngăn chứa này?
+# Variables:
+# $count (Number) - Number of tabs that will be closed.
+containers-remove-alert-msg = Nếu bạn xóa ngăn chứa này bây giờ, { $count } thẻ trong ngăn chứa sẽ bị đóng. Bạn có chắc muốn xóa ngăn chứa này?
+containers-remove-ok-button = Xóa ngăn chứa này
+containers-remove-cancel-button = Không xóa ngăn chứa này
+
+## General Section - Language & Appearance
+
+language-and-appearance-header = Ngôn ngữ và chủ đề
+preferences-web-appearance-header = Diện mạo trang web
+preferences-web-appearance-description = Một số trang web điều chỉnh bảng màu của họ dựa trên tùy chỉnh của bạn. Chọn bảng màu mà bạn muốn sử dụng cho các trang web đó.
+preferences-web-appearance-choice-browser = Chủ đề { -brand-short-name }
+preferences-web-appearance-choice-system = Chủ đề hệ thống
+preferences-web-appearance-choice-auto = Tự động
+preferences-web-appearance-choice-light = Sáng
+preferences-web-appearance-choice-dark = Tối
+preferences-web-appearance-choice-tooltip-browser =
+ .title = Khớp cài đặt chủ đề { -brand-short-name } của bạn cho nền và nội dung trang web.
+preferences-web-appearance-choice-tooltip-system =
+ .title = Phù hợp với cài đặt hệ thống của bạn cho hình nền và nội dung trang web.
+preferences-web-appearance-choice-tooltip-auto =
+ .title = Tự động thay đổi hình nền và nội dung trang web dựa trên cài đặt hệ thống và chủ đề { -brand-short-name } của bạn.
+preferences-web-appearance-choice-tooltip-light =
+ .title = Sử dụng giao diện sáng cho hình nền và nội dung trang web.
+preferences-web-appearance-choice-tooltip-dark =
+ .title = Sử dụng giao diện tối cho hình nền và nội dung trang web.
+preferences-web-appearance-choice-input-browser =
+ .aria-description = { preferences-web-appearance-choice-tooltip-browser.title }
+preferences-web-appearance-choice-input-system =
+ .aria-description = { preferences-web-appearance-choice-tooltip-system.title }
+preferences-web-appearance-choice-input-auto =
+ .aria-description = { preferences-web-appearance-choice-tooltip-auto.title }
+preferences-web-appearance-choice-input-light =
+ .aria-description = { preferences-web-appearance-choice-tooltip-light.title }
+preferences-web-appearance-choice-input-dark =
+ .aria-description = { preferences-web-appearance-choice-tooltip-dark.title }
+# This can appear when using windows HCM or "Override colors: always" without
+# system colors.
+preferences-web-appearance-override-warning = Các lựa chọn màu sắc của bạn đang ghi đè diện mạo trang web. Quản lý màu
+# This message contains one link. It can be moved within the sentence as needed
+# to adapt to your language, but should not be changed.
+preferences-web-appearance-footer = Quản lý chủ đề { -brand-short-name } trong Tiện ích mở rộng & chủ đề
+preferences-colors-header = Màu
+preferences-colors-description = Ghi đè màu mặc định của { -brand-short-name } cho văn bản, nền trang web và liên kết.
+preferences-colors-manage-button =
+ .label = Quản lý màu…
+ .accesskey = C
+preferences-fonts-header = Phông chữ
+default-font = Phông mặc định
+ .accesskey = D
+default-font-size = Kích thước
+ .accesskey = S
+advanced-fonts =
+ .label = Nâng cao…
+ .accesskey = o
+# Zoom is a noun, and the message is used as header for a group of options
+preferences-zoom-header = Thu phóng
+preferences-default-zoom = Thu phóng mặc định
+ .accesskey = z
+preferences-default-zoom-value =
+ .label = { $percentage }%
+preferences-zoom-text-only =
+ .label = Chỉ thu phóng văn bản
+ .accesskey = t
+language-header = Ngôn ngữ
+choose-language-description = Chọn ngôn ngữ ưu tiên bạn muốn để hiển thị trang
+choose-button =
+ .label = Chọn…
+ .accesskey = C
+choose-browser-language-description = Chọn ngôn ngữ được sử dụng để hiển thị bảng chọn, tin nhắn và thông báo từ { -brand-short-name }.
+manage-browser-languages-button =
+ .label = Đặt ngôn ngữ thay thế…
+ .accesskey = I
+confirm-browser-language-change-description = Khởi động lại { -brand-short-name } để áp dụng các thay đổi này
+confirm-browser-language-change-button = Áp dụng và Khởi động lại
+translate-web-pages =
+ .label = Dịch nội dung web
+ .accesskey = D
+fx-translate-web-pages = { -translations-brand-name }
+# The element is replaced by the logo of the provider
+# used to provide machine translations for web pages.
+translate-attribution = Dịch bởi
+translate-exceptions =
+ .label = Ngoại lệ...
+ .accesskey = N
+# Variables:
+# $localeName (string) - Localized name of the locale to be used.
+use-system-locale =
+ .label = Sử dụng các cài đặt hệ điều hành của bạn cho nhóm “{ $localeName }” để định dạng ngày, giờ, số và số đo.
+check-user-spelling =
+ .label = Kiểm tra chính tả khi bạn gõ
+ .accesskey = t
+
+## General Section - Files and Applications
+
+files-and-applications-title = Tập tin và ứng dụng
+download-header = Tải xuống
+download-save-where = Lưu tập tin vào
+ .accesskey = v
+download-choose-folder =
+ .label =
+ { PLATFORM() ->
+ [macos] Chọn…
+ *[other] Duyệt…
+ }
+ .accesskey =
+ { PLATFORM() ->
+ [macos] n
+ *[other] y
+ }
+download-always-ask-where =
+ .label = Luôn hỏi bạn nơi để lưu các tập tin
+ .accesskey = A
+applications-header = Ứng dụng
+applications-description = Chọn cách { -brand-short-name } xử lý các tập tin bạn tải xuống từ web hoặc các ứng dụng bạn sử dụng khi duyệt web.
+applications-filter =
+ .placeholder = Tìm các loại tập tin hoặc ứng dụng
+applications-type-column =
+ .label = Kiểu dữ liệu
+ .accesskey = K
+applications-action-column =
+ .label = Thao tác
+ .accesskey = a
+# Variables:
+# $extension (String) - file extension (e.g .TXT)
+applications-file-ending = Tập tin { $extension }
+applications-action-save =
+ .label = Lưu tập tin
+# Variables:
+# $app-name (String) - Name of an application (e.g Adobe Acrobat)
+applications-use-app =
+ .label = Dùng { $app-name }
+# Variables:
+# $app-name (String) - Name of an application (e.g Adobe Acrobat)
+applications-use-app-default =
+ .label = Dùng { $app-name } (mặc định)
+applications-use-os-default =
+ .label =
+ { PLATFORM() ->
+ [macos] Sử dụng ứng dụng mặc định macOS
+ [windows] Sử dụng ứng dụng mặc định Windows
+ *[other] Sử dụng ứng dụng mặc định hệ thống
+ }
+applications-use-other =
+ .label = Dùng chương trình khác…
+applications-select-helper = Chọn ứng dụng trợ giúp
+applications-manage-app =
+ .label = Chi tiết ứng dụng…
+applications-always-ask =
+ .label = Luôn hỏi
+# Variables:
+# $type-description (String) - Description of the type (e.g "Portable Document Format")
+# $type (String) - the MIME type (e.g application/binary)
+applications-type-description-with-type = { $type-description } ({ $type })
+# Variables:
+# $extension (String) - file extension (e.g .TXT)
+# $type (String) - the MIME type (e.g application/binary)
+applications-file-ending-with-type = { applications-file-ending } ({ $type })
+# Variables:
+# $plugin-name (String) - Name of a plugin (e.g Adobe Flash)
+applications-use-plugin-in =
+ .label = Dùng { $plugin-name } (trong { -brand-short-name })
+applications-open-inapp =
+ .label = Mở bằng { -brand-short-name }
+
+## The strings in this group are used to populate
+## selected label element based on the string from
+## the selected menu item.
+
+applications-use-plugin-in-label =
+ .value = { applications-use-plugin-in.label }
+applications-action-save-label =
+ .value = { applications-action-save.label }
+applications-use-app-label =
+ .value = { applications-use-app.label }
+applications-open-inapp-label =
+ .value = { applications-open-inapp.label }
+applications-always-ask-label =
+ .value = { applications-always-ask.label }
+applications-use-app-default-label =
+ .value = { applications-use-app-default.label }
+applications-use-other-label =
+ .value = { applications-use-other.label }
+applications-use-os-default-label =
+ .value = { applications-use-os-default.label }
+
+##
+
+applications-handle-new-file-types-description = { -brand-short-name } nên làm gì với các tập tin khác?
+applications-save-for-new-types =
+ .label = Lưu tập tin
+ .accesskey = S
+applications-ask-before-handling =
+ .label = Hỏi xem có nên mở hay lưu tập tin hay không
+ .accesskey = A
+drm-content-header = Nội dung quản lý bản quyền kỹ thuật số (DRM)
+play-drm-content =
+ .label = Phát nội dung DRM được kiểm soát
+ .accesskey = P
+play-drm-content-learn-more = Tìm hiểu thêm
+update-application-title = Cập nhật { -brand-short-name }
+update-application-description = Giữ { -brand-short-name } luôn cập nhật để đạt được hiệu năng, sự ổn định, và bảo mật tốt nhất.
+update-application-version = Phiên bản { $version } Có gì mới
+update-history =
+ .label = Hiển thị lịch sử cập nhật…
+ .accesskey = p
+update-application-allow-description = Cho phép { -brand-short-name }
+update-application-auto =
+ .label = Tự động cài đặt các bản cập nhật (khuyến nghị)
+ .accesskey = A
+update-application-check-choose =
+ .label = Kiểm tra các bản cập nhật nhưng bạn sẽ lựa chọn việc cài đặt chúng
+ .accesskey = C
+update-application-manual =
+ .label = Không bao giờ kiểm tra các bản cập nhật (không khuyến nghị)
+ .accesskey = N
+update-application-background-enabled =
+ .label = Khi { -brand-short-name } không chạy
+ .accesskey = W
+update-application-warning-cross-user-setting = Cài đặt này sẽ áp dụng cho tất cả các tài khoản Windows và hồ sơ { -brand-short-name } bằng cách sử dụng cài đặt { -brand-short-name } này.
+update-application-use-service =
+ .label = Sử dụng dịch vụ chạy nền để cài đặt các cập nhật
+ .accesskey = n
+update-application-suppress-prompts =
+ .label = Hiển thị ít lời nhắc thông báo cập nhật hơn
+ .accesskey = n
+update-setting-write-failure-title2 = Lỗi khi lưu cài đặt Cập nhật
+# Variables:
+# $path (String) - Path to the configuration file
+# The newlines between the main text and the line containing the path is
+# intentional so the path is easier to identify.
+update-setting-write-failure-message2 =
+ { -brand-short-name } đã gặp lỗi và đã không lưu thay đổi này. Lưu ý rằng cài đặt tùy chỉnh cập nhật này yêu cầu quyền ghi vào tập tin bên dưới. Bạn hoặc quản trị viên hệ thống có thể giải quyết lỗi bằng cách cấp cho nhóm Người dùng toàn quyền kiểm soát tập tin này.
+
+ Không thể ghi vào tập tin: { $path }
+update-in-progress-title = Đang cập nhật
+update-in-progress-message = Bạn có muốn { -brand-short-name } tiếp tục với bản cập nhật này không?
+update-in-progress-ok-button = &Hủy bỏ
+# Continue is the cancel button so pressing escape or using a platform standard
+# method of closing the UI will not discard the update.
+update-in-progress-cancel-button = &Tiếp tục
+
+## General Section - Performance
+
+performance-title = Hiệu suất
+performance-use-recommended-settings-checkbox =
+ .label = Sử dụng các cài đặt về hiệu suất được khuyến nghị
+ .accesskey = U
+performance-use-recommended-settings-desc = Các cài đặt này được thiết kế riêng cho phần cứng máy tính và hệ điều hành của bạn.
+performance-settings-learn-more = Tìm hiểu thêm
+performance-allow-hw-accel =
+ .label = Sử dụng chế độ tăng tốc phần cứng khi khả dụng
+ .accesskey = h
+performance-limit-content-process-option = Giới hạn xử lý nội dung
+ .accesskey = L
+performance-limit-content-process-enabled-desc = Các tiến trình xử lý nội dung bổ sung có thể cải thiện hiệu suất khi sử dụng nhiều thẻ một lúc, nhưng cũng sẽ tiêu tốn nhiều bộ nhớ.
+performance-limit-content-process-blocked-desc = Việc chỉnh sửa số tiến trình xử lý nội dung chỉ có thể thực hiện với { -brand-short-name } đa tiến trình. Tìm hiểu làm cách nào để kiểm tra khi chế độ đa tiến trình được bật
+# Variables:
+# $num - default value of the `dom.ipc.processCount` pref.
+performance-default-content-process-count =
+ .label = { $num } (mặc định)
+
+## General Section - Browsing
+
+browsing-title = Duyệt
+browsing-use-autoscroll =
+ .label = Tự động cuộn
+ .accesskey = u
+browsing-use-smooth-scrolling =
+ .label = Cuộn uyển chuyển
+ .accesskey = y
+browsing-gtk-use-non-overlay-scrollbars =
+ .label = Luôn hiển thị thanh cuộn
+ .accesskey = o
+browsing-use-onscreen-keyboard =
+ .label = Hiển thị bàn phím cảm ứng khi cần thiết
+ .accesskey = b
+browsing-use-cursor-navigation =
+ .label = Cho phép dùng con trỏ để di chuyển bên trong trang
+ .accesskey = c
+browsing-search-on-start-typing =
+ .label = Tìm kiếm văn bản khi bạn bắt đầu nhập
+ .accesskey = x
+browsing-picture-in-picture-toggle-enabled =
+ .label = Bật điều khiển video hình trong hình
+ .accesskey = E
+browsing-picture-in-picture-learn-more = Tìm hiểu thêm
+browsing-media-control =
+ .label = Điều khiển phương tiện qua bàn phím, tai nghe hoặc giao diện ảo
+ .accesskey = v
+browsing-media-control-learn-more = Tìm hiểu thêm
+browsing-cfr-recommendations =
+ .label = Đề xuất tiện ích mở rộng khi duyệt
+ .accesskey = R
+browsing-cfr-features =
+ .label = Đề xuất các tính năng khi bạn duyệt
+ .accesskey = f
+browsing-cfr-recommendations-learn-more = Tìm hiểu thêm
+
+## General Section - Proxy
+
+network-settings-title = Cài đặt mạng
+network-proxy-connection-description = Cấu hình phương thức { -brand-short-name } kết nối internet.
+network-proxy-connection-learn-more = Tìm hiểu thêm
+network-proxy-connection-settings =
+ .label = Cài đặt…
+ .accesskey = e
+
+## Home Section
+
+home-new-windows-tabs-header = Cửa sổ và thẻ mới
+home-new-windows-tabs-description2 = Chọn những gì bạn thấy khi bạn mở trang chủ, cửa sổ mới và các thẻ mới.
+
+## Home Section - Home Page Customization
+
+home-homepage-mode-label = Trang chủ và cửa sổ mới
+home-newtabs-mode-label = Thẻ mới
+home-restore-defaults =
+ .label = Khôi phục về mặc định
+ .accesskey = R
+# "Firefox" should be treated as a brand and kept in English,
+# while "Home" and "(Default)" can be localized.
+home-mode-choice-default =
+ .label = Trang chủ Firefox (Mặc định)
+home-mode-choice-default-fx =
+ .label = { -firefox-home-brand-name } (Mặc định)
+home-mode-choice-custom =
+ .label = Tùy chỉnh URL...
+home-mode-choice-blank =
+ .label = Trang trắng
+home-homepage-custom-url =
+ .placeholder = Dán một URL...
+# This string has a special case for '1' and [other] (default). If necessary for
+# your language, you can add {$tabCount} to your translations and use the
+# standard CLDR forms, or only use the form for [other] if both strings should
+# be identical.
+use-current-pages =
+ .label =
+ { $tabCount ->
+ [1] Dùng các trang hiện tại
+ *[other] Dùng các trang hiện tại
+ }
+ .accesskey = C
+choose-bookmark =
+ .label = Sử dụng dấu trang…
+ .accesskey = B
+
+## Home Section - Firefox Home Content Customization
+
+home-prefs-content-header = Nội dung của Trang chủ Firefox
+home-prefs-content-description = Chọn nội dung mà bạn muốn thêm vào Trang chủ Firefox.
+home-prefs-content-header2 = Nội dung { -firefox-home-brand-name }
+home-prefs-content-description2 = Chọn nội dung bạn muốn trên màn hình { -firefox-home-brand-name } của mình.
+home-prefs-search-header =
+ .label = Tìm kiếm web
+home-prefs-shortcuts-header =
+ .label = Lối tắt
+home-prefs-shortcuts-description = Các trang web bạn lưu hoặc truy cập
+home-prefs-shortcuts-by-option-sponsored =
+ .label = Các lối tắt được tài trợ
+
+## Variables:
+## $provider (String): Name of the corresponding content provider, e.g "Pocket".
+
+home-prefs-recommended-by-header =
+ .label = Được đề xuất bởi { $provider }
+home-prefs-recommended-by-description-new = Nội dung đặc biệt do { $provider }, một phần của { -brand-product-name }, quản lý
+
+##
+
+home-prefs-recommended-by-learn-more = Nó hoạt động như thế nào
+home-prefs-recommended-by-option-sponsored-stories =
+ .label = Bài viết quảng cáo
+home-prefs-recommended-by-option-recent-saves =
+ .label = Hiển thị các mục đã lưu gần đây
+home-prefs-highlights-option-visited-pages =
+ .label = Trang đã truy cập
+home-prefs-highlights-options-bookmarks =
+ .label = Dấu trang
+home-prefs-highlights-option-most-recent-download =
+ .label = Tải xuống gần đây nhất
+home-prefs-highlights-option-saved-to-pocket =
+ .label = Đã lưu trang vào { -pocket-brand-name }
+home-prefs-recent-activity-header =
+ .label = Hoạt động gần đây
+home-prefs-recent-activity-description = Tuyển chọn các trang và nội dung gần đây
+# For the "Snippets" feature traditionally on about:home.
+# Alternative translation options: "Small Note" or something that
+# expresses the idea of "a small message, shortened from something else,
+# and non-essential but also not entirely trivial and useless.
+home-prefs-snippets-header =
+ .label = Ghi chú nhỏ
+home-prefs-snippets-description-new = Mẹo và tin tức từ { -vendor-short-name } và { -brand-product-name }
+home-prefs-sections-rows-option =
+ .label = { $num } hàng
+
+## Search Section
+
+search-bar-header = Thanh tìm kiếm
+search-bar-hidden =
+ .label = Dùng thanh địa chỉ để tìm kiếm và điều hướng
+search-bar-shown =
+ .label = Thêm thanh tìm kiếm vào thanh công cụ
+search-engine-default-header = Dịch vụ tìm kiếm mặc định
+search-engine-default-desc-2 = Đây là công cụ tìm kiếm mặc định của bạn trong thanh địa chỉ và thanh tìm kiếm. Bạn có thể chuyển đổi bất cứ lúc nào.
+search-engine-default-private-desc-2 = Chọn một công cụ tìm kiếm mặc định khác chỉ dành cho cửa sổ riêng tư
+search-separate-default-engine =
+ .label = Sử dụng công cụ tìm kiếm này trong cửa sổ riêng tư
+ .accesskey = U
+search-suggestions-header = Đề xuất tìm kiếm
+search-suggestions-desc = Chọn cách đề xuất từ các công cụ tìm kiếm xuất hiện.
+search-suggestions-option =
+ .label = Tự động đề nghị từ khóa tìm kiếm
+ .accesskey = n
+search-show-suggestions-url-bar-option =
+ .label = Hiển thị gợi ý tìm kiếm trong kết quả thanh địa chỉ
+ .accesskey = l
+# With this option enabled, on the search results page
+# the URL will be replaced by the search terms in the address bar
+# when using the current default search engine.
+search-show-search-term-option =
+ .label = Hiển thị các cụm từ tìm kiếm thay vì URL trên trang kết quả của công cụ tìm kiếm mặc định
+# This string describes what the user will observe when the system
+# prioritizes search suggestions over browsing history in the results
+# that extend down from the address bar. In the original English string,
+# "ahead" refers to location (appearing most proximate to), not time
+# (appearing before).
+search-show-suggestions-above-history-option =
+ .label = Hiển thị những gợi ý tìm kiếm phía trước lịch sử duyệt web trong kết quả thanh địa chỉ
+search-show-suggestions-private-windows =
+ .label = Hiển thị đề xuất tìm kiếm trong cửa sổ riêng tư
+suggestions-addressbar-settings-generic2 = Thay đổi cài đặt cho các đề xuất khác trên thanh địa chỉ
+search-suggestions-cant-show = Gợi ý tìm kiếm sẽ không được hiển thị ở thanh địa chỉ vì bạn đã thiết lập { -brand-short-name } không bao giờ ghi nhớ lịch sử.
+search-one-click-header2 = Lối tắt tìm kiếm
+search-one-click-desc = Chọn các công cụ tìm kiếm thay thế xuất hiện bên dưới thanh địa chỉ và thanh tìm kiếm khi bạn bắt đầu nhập một từ khoá.
+search-choose-engine-column =
+ .label = Công cụ tìm kiếm
+search-choose-keyword-column =
+ .label = Từ khóa
+search-restore-default =
+ .label = Đặt lại công cụ tìm kiếm mặc định
+ .accesskey = D
+search-remove-engine =
+ .label = Xóa
+ .accesskey = X
+search-add-engine =
+ .label = Thêm
+ .accesskey = A
+search-find-more-link = Tìm các công cụ tìm kiếm khác
+# This warning is displayed when the chosen keyword is already in use
+# ('Duplicate' is an adjective)
+search-keyword-warning-title = Nhân bản Từ khóa
+# Variables:
+# $name (String) - Name of a search engine.
+search-keyword-warning-engine = Bạn đã chọn một từ khóa hiện đang được dùng bởi "{ $name }". Vui lòng chọn từ khác.
+search-keyword-warning-bookmark = Bạn đã chọn một từ khóa hiện đang được dùng bởi một dấu trang. Vui lòng chọn từ khác.
+
+## Containers Section
+
+containers-back-button2 =
+ .aria-label = Quay lại Cài đặt
+containers-header = Ngăn chứa thẻ
+containers-add-button =
+ .label = Thêm ngăn chứa mới
+ .accesskey = T
+containers-new-tab-check =
+ .label = Chọn một ngăn chứa cho mỗi thẻ mới
+ .accesskey = S
+containers-settings-button =
+ .label = Cài đặt
+containers-remove-button =
+ .label = Loại bỏ
+
+## Firefox Account - Signed out. Note that "Sync" and "Firefox Account" are now
+## more discrete ("signed in" no longer means "and sync is connected").
+
+sync-signedout-caption = Mang trang web theo bạn
+sync-signedout-description2 = Đồng bộ trang đánh dấu, lịch sử, thẻ, mật khẩu, tiện ích và cài đặt tới tất cả các thiết bị của bạn.
+sync-signedout-account-signin3 =
+ .label = Đăng nhập để đồng bộ hóa…
+ .accesskey = i
+# This message contains two links and two icon images.
+# `` - Android logo icon
+# `` - Link to Android Download
+# `` - iOS logo icon
+# `` - Link to iOS Download
+#
+# They can be moved within the sentence as needed to adapt
+# to your language, but should not be changed or translated.
+sync-mobile-promo = Tải Firefox cho Android hoặc iOS để đồng bị với thiết bị di động của bạn.
+
+## Firefox Account - Signed in
+
+sync-profile-picture =
+ .tooltiptext = Đổi hình hồ sơ
+sync-sign-out =
+ .label = Đăng xuất…
+ .accesskey = g
+sync-manage-account = Quản lý tài khoản
+ .accesskey = k
+sync-signedin-unverified = { $email } chưa được kiểm tra.
+sync-signedin-login-failure = Xin hãy đăng nhập để kết nối lại { $email }
+sync-resend-verification =
+ .label = Gửi lại xác nhận
+ .accesskey = d
+sync-remove-account =
+ .label = Xóa tài khoản
+ .accesskey = R
+sync-sign-in =
+ .label = Đăng nhập
+ .accesskey = g
+
+## Sync section - enabling or disabling sync.
+
+prefs-syncing-on = Đồng bộ hóa: BẬT
+prefs-syncing-off = Đồng bộ hóa: TẮT
+prefs-sync-turn-on-syncing =
+ .label = Bật đồng bộ hóa…
+ .accesskey = s
+prefs-sync-offer-setup-label2 = Đồng bộ trang đánh dấu, lịch sử, thẻ, mật khẩu, tiện ích và cài đặt tới tất cả các thiết bị của bạn.
+prefs-sync-now =
+ .labelnotsyncing = Đồng bộ hóa ngay
+ .accesskeynotsyncing = N
+ .labelsyncing = Đang đồng bộ hóa…
+
+## The list of things currently syncing.
+
+sync-currently-syncing-heading = Bạn hiện đang đồng bộ hóa các mục này:
+sync-currently-syncing-bookmarks = Dấu trang
+sync-currently-syncing-history = Lịch sử
+sync-currently-syncing-tabs = Các thẻ đang mở
+sync-currently-syncing-logins-passwords = Thông tin đăng nhập và mật khẩu
+sync-currently-syncing-addresses = Địa chỉ
+sync-currently-syncing-creditcards = Thẻ tín dụng
+sync-currently-syncing-addons = Tiện ích
+sync-currently-syncing-settings = Cài đặt
+sync-change-options =
+ .label = Thay đổi…
+ .accesskey = C
+
+## The "Choose what to sync" dialog.
+
+sync-choose-what-to-sync-dialog =
+ .title = Chọn những gì để đồng bộ hóa
+ .style = width: 36em; min-height: 35em;
+ .buttonlabelaccept = Lưu thay đổi
+ .buttonaccesskeyaccept = S
+ .buttonlabelextra2 = Ngắt kết nối…
+ .buttonaccesskeyextra2 = D
+sync-choose-what-to-sync-dialog3 =
+ .title = Chọn những gì để đồng bộ hóa
+ .style = min-width: 36em;
+ .buttonlabelaccept = Lưu thay đổi
+ .buttonaccesskeyaccept = S
+ .buttonlabelextra2 = Ngắt kết nối…
+ .buttonaccesskeyextra2 = D
+sync-engine-bookmarks =
+ .label = Dấu trang
+ .accesskey = m
+sync-engine-history =
+ .label = Lịch sử
+ .accesskey = r
+sync-engine-tabs =
+ .label = Các thẻ đang mở
+ .tooltiptext = Danh sách những trang web đang mở trên các thiết bị được đồng bộ
+ .accesskey = t
+sync-engine-logins-passwords =
+ .label = Thông tin đăng nhập và mật khẩu
+ .tooltiptext = Tên đăng nhập và mật khẩu bạn đã lưu
+ .accesskey = L
+sync-engine-addresses =
+ .label = Địa chỉ
+ .tooltiptext = Địa chỉ bưu chính bạn đã lưu (chỉ trên phiên bản máy tính)
+ .accesskey = e
+sync-engine-creditcards =
+ .label = Thẻ tín dụng
+ .tooltiptext = Tên, số và ngày hết hạn (chỉ trên phiên bản máy tính)
+ .accesskey = C
+sync-engine-addons =
+ .label = Tiện ích
+ .tooltiptext = Tiện ích mở rộng và chủ đề của Firefox dành cho máy tính
+ .accesskey = A
+sync-engine-settings =
+ .label = Cài đặt
+ .tooltiptext = Cài đặt tổng quát, riêng tư và bảo mật mà bạn đã thay đổi
+ .accesskey = s
+
+## The device name controls.
+
+sync-device-name-header = Tên thiết bị
+sync-device-name-change =
+ .label = Thay đổi tên thiết bị…
+ .accesskey = h
+sync-device-name-cancel =
+ .label = Hủy bỏ
+ .accesskey = n
+sync-device-name-save =
+ .label = Lưu
+ .accesskey = u
+sync-connect-another-device = Kết nối thiết bị khác
+
+## Privacy Section
+
+privacy-header = Duyệt web riêng tư
+
+## Privacy Section - Logins and Passwords
+
+# The search keyword isn't shown to users but is used to find relevant settings in about:preferences.
+pane-privacy-logins-and-passwords-header = Thông tin đăng nhập & mật khẩu
+ .searchkeywords = { -lockwise-brand-short-name }
+# Checkbox to control whether UI is shown to users to save or fill logins/passwords.
+forms-ask-to-save-logins =
+ .label = Hỏi để lưu lại thông tin đăng nhập và mật khẩu cho trang web
+ .accesskey = r
+forms-exceptions =
+ .label = Ngoại trừ…
+ .accesskey = x
+forms-generate-passwords =
+ .label = Đề xuất và tạo mật khẩu mạnh
+ .accesskey = u
+forms-breach-alerts =
+ .label = Hiển thị cảnh báo về mật khẩu cho các trang web bị rò rỉ
+ .accesskey = b
+forms-breach-alerts-learn-more-link = Tìm hiểu thêm
+relay-integration =
+ .label = Bật { -relay-brand-name } trong trình quản lý mật khẩu { -brand-short-name } của bạn
+relay-integration-learn-more-link = Tìm hiểu thêm
+# Checkbox which controls filling saved logins into fields automatically when they appear, in some cases without user interaction.
+forms-fill-logins-and-passwords =
+ .label = Tự động điền đăng nhập và mật khẩu
+ .accesskey = i
+forms-saved-logins =
+ .label = Đăng nhập đã lưu…
+ .accesskey = L
+forms-primary-pw-use =
+ .label = Sử dụng mật khẩu chính
+ .accesskey = U
+forms-primary-pw-learn-more-link = Tìm hiểu thêm
+# This string uses the former name of the Primary Password feature
+# ("Master Password" in English) so that the preferences can be found
+# when searching for the old name. The accesskey is unused.
+forms-master-pw-change =
+ .label = Thay đổi mật khẩu chính…
+ .accesskey = M
+forms-primary-pw-change =
+ .label = Thay đổi mật khẩu chính…
+ .accesskey = P
+# Leave this message empty if the translation for "Primary Password" matches
+# "Master Password" in your language. If you're editing the FTL file directly,
+# use { "" } as the value.
+forms-primary-pw-former-name = { "" }
+forms-primary-pw-fips-title = Bạn hiện đang ở chế độ FIPS. FIPS yêu cầu tính năng mật khẩu chính.
+forms-master-pw-fips-desc = Thay đổi mật khẩu không thành công
+forms-windows-sso =
+ .label = Cho phép Windows đăng nhập một lần cho tài khoản Microsoft, cơ quan và trường học
+forms-windows-sso-learn-more-link = Tìm hiểu thêm
+forms-windows-sso-desc = Quản lý tài khoản trong cài đặt thiết bị của bạn
+
+## OS Authentication dialog
+
+# This message can be seen by trying to add a Primary Password.
+primary-password-os-auth-dialog-message-win = Để tạo mật khẩu chính, hãy nhập thông tin đăng nhập Windows của bạn. Điều này giúp bảo vệ tính bảo mật của tài khoản của bạn.
+# This message can be seen by trying to add a Primary Password.
+# The macOS strings are preceded by the operating system with "Firefox is trying to "
+# and includes subtitle of "Enter password for the user "xxx" to allow this." These
+# notes are only valid for English. Please test in your locale.
+primary-password-os-auth-dialog-message-macosx = tạo một mật khẩu chính
+master-password-os-auth-dialog-caption = { -brand-full-name }
+
+## Privacy Section - History
+
+history-header = Lịch sử
+# This label is followed, on the same line, by a dropdown list of options
+# (Remember history, etc.).
+# In English it visually creates a full sentence, e.g.
+# "Firefox will" + "Remember history".
+#
+# If this doesn't work for your language, you can translate this message:
+# - Simply as "Firefox", moving the verb into each option.
+# This will result in "Firefox" + "Will remember history", etc.
+# - As a stand-alone message, for example "Firefox history settings:".
+history-remember-label = { -brand-short-name } sẽ
+ .accesskey = w
+history-remember-option-all =
+ .label = Ghi nhớ lịch sử
+history-remember-option-never =
+ .label = Không bao giờ ghi nhớ lịch sử
+history-remember-option-custom =
+ .label = Sử dụng thiết lập tùy biến cho lịch sử
+history-remember-description = { -brand-short-name } sẽ ghi nhớ lịch sử duyệt web, tải xuống, biểu mẫu và tìm kiếm của bạn.
+history-dontremember-description = { -brand-short-name } sẽ dùng thiết lập giống như chế độ duyệt web riêng tư, và sẽ không ghi nhớ lịch sử khi bạn duyệt Web.
+history-private-browsing-permanent =
+ .label = Luôn dùng chế độ duyệt web riêng tư
+ .accesskey = p
+history-remember-browser-option =
+ .label = Ghi nhớ lịch sử truy cập và tải xuống của tôi
+ .accesskey = b
+history-remember-search-option =
+ .label = Ghi nhớ lịch sử biểu mẫu và tìm kiếm
+ .accesskey = f
+history-clear-on-close-option =
+ .label = Xóa lịch sử khi đóng { -brand-short-name }
+ .accesskey = r
+history-clear-on-close-settings =
+ .label = Cài đặt…
+ .accesskey = t
+history-clear-button =
+ .label = Xóa lịch sử...
+ .accesskey = s
+
+## Privacy Section - Site Data
+
+sitedata-header = Cookie và dữ liệu trang
+sitedata-total-size-calculating = Đang tính toán kích thước bộ nhớ đệm và dữ liệu trang…
+# Variables:
+# $value (Number) - Value of the unit (for example: 4.6, 500)
+# $unit (String) - Name of the unit (for example: "bytes", "KB")
+sitedata-total-size = Cookie, dữ liệu trang và bộ nhớ đệm của bạn hiện đang sử dụng { $value } { $unit } dung lượng đĩa.
+sitedata-learn-more = Tìm hiểu thêm
+sitedata-delete-on-close =
+ .label = Xóa cookie và dữ liệu trang web khi đóng { -brand-short-name }
+ .accesskey = c
+sitedata-delete-on-close-private-browsing = Trong chế độ duyệt riêng tư, cookie và dữ liệu trang web sẽ luôn bị xóa khi { -brand-short-name } bị đóng.
+sitedata-allow-cookies-option =
+ .label = Cho phép cookie và dữ liệu trang
+ .accesskey = A
+sitedata-disallow-cookies-option =
+ .label = Chặn cookie và dữ liệu trang
+ .accesskey = B
+# This label means 'type of content that is blocked', and is followed by a drop-down list with content types below.
+# The list items are the strings named sitedata-block-*-option*.
+sitedata-block-desc = Loại bị chặn
+ .accesskey = T
+sitedata-option-block-cross-site-trackers =
+ .label = Trình theo dõi trên nhiều trang web
+sitedata-option-block-cross-site-tracking-cookies =
+ .label = Cookie theo dõi trên nhiều trang web
+sitedata-option-block-cross-site-cookies =
+ .label = Cookie theo dõi trên nhiều trang web và cô lập các cookie trên nhiều trang khác
+sitedata-option-block-unvisited =
+ .label = Cookie từ các trang web không mong muốn
+sitedata-option-block-all-third-party =
+ .label = Tất cả cookie của bên thứ ba (có thể khiến các trang web bị hỏng)
+sitedata-option-block-all-cross-site-cookies =
+ .label = Tất cả cookie trên nhiều trang web (có thể khiến trang web bị hỏng)
+sitedata-option-block-all =
+ .label = Tất cả các cookie (có thể khiến các trang web bị hỏng)
+sitedata-clear =
+ .label = Xóa dữ liệu...
+ .accesskey = l
+sitedata-settings =
+ .label = Quản lý dữ liệu...
+ .accesskey = M
+sitedata-cookies-exceptions =
+ .label = Quản lý ngoại lệ…
+ .accesskey = x
+
+## Privacy Section - Address Bar
+
+addressbar-header = Thanh địa chỉ
+addressbar-suggest = Khi dùng thanh địa chỉ, gợi ý
+addressbar-locbar-history-option =
+ .label = Lịch sử duyệt web
+ .accesskey = h
+addressbar-locbar-bookmarks-option =
+ .label = Dấu trang
+ .accesskey = k
+addressbar-locbar-openpage-option =
+ .label = Các thẻ đang mở
+ .accesskey = O
+# Shortcuts refers to the shortcut tiles on the new tab page, previously known as top sites. Translation should be consistent.
+addressbar-locbar-shortcuts-option =
+ .label = Lối tắt
+ .accesskey = S
+addressbar-locbar-topsites-option =
+ .label = Trang web hàng đầu
+ .accesskey = T
+addressbar-locbar-engines-option =
+ .label = Công cụ tìm kiếm
+ .accesskey = t
+addressbar-locbar-quickactions-option =
+ .label = Hành động nhanh
+ .accesskey = Q
+addressbar-suggestions-settings = Thay đổi tùy chỉnh phần gợi ý của công cụ tìm kiếm
+addressbar-quickactions-learn-more = Tìm hiểu thêm
+
+## Privacy Section - Content Blocking
+
+content-blocking-enhanced-tracking-protection = Trình chống theo dõi nâng cao
+content-blocking-section-top-level-description = Trình theo dõi theo bạn trên mạng để thu thập thông tin về thói quen và sở thích duyệt web của bạn. { -brand-short-name } chặn nhiều trình theo dõi và các tập lệnh độc hại khác.
+content-blocking-learn-more = Tìm hiểu thêm
+content-blocking-fpi-incompatibility-warning = Bạn đang sử dụng First Party Isolation (FPI), tính năng này sẽ ghi đè một số cài đặt cookie của { -brand-short-name }.
+
+## These strings are used to define the different levels of
+## Enhanced Tracking Protection.
+
+# "Standard" in this case is an adjective, meaning "default" or "normal".
+enhanced-tracking-protection-setting-standard =
+ .label = Tiêu chuẩn
+ .accesskey = d
+enhanced-tracking-protection-setting-strict =
+ .label = Nghiêm ngặt
+ .accesskey = r
+enhanced-tracking-protection-setting-custom =
+ .label = Tùy chỉnh
+ .accesskey = C
+
+##
+
+content-blocking-etp-standard-desc = Cân bằng để bảo vệ và hiệu suất. Các trang sẽ tải bình thường.
+content-blocking-etp-strict-desc = Bảo vệ mạnh mẽ hơn, nhưng có thể khiến một số trang web và nội dung bị phá vỡ.
+content-blocking-etp-custom-desc = Chọn trình theo dõi và tập lệnh để chặn.
+content-blocking-etp-blocking-desc = { -brand-short-name } chặn những điều sau:
+content-blocking-private-windows = Trình theo dõi nội dung trong cửa sổ riêng tư
+content-blocking-cross-site-cookies-in-all-windows = Cookie trên nhiều trang web trong tất cả các cửa sổ (bao gồm cookie theo dõi)
+content-blocking-cross-site-cookies-in-all-windows2 = Cookie trên nhiều trang web trong tất cả các cửa sổ
+content-blocking-cross-site-tracking-cookies = Cookie theo dõi trên nhiều trang web
+content-blocking-all-cross-site-cookies-private-windows = Cookie trên nhiều trang web trong cửa sổ riêng tư
+content-blocking-cross-site-tracking-cookies-plus-isolate = Cookie theo dõi trên nhiều trang web và cô lập các cookie còn lại
+content-blocking-social-media-trackers = Trình theo dõi truyền thông xã hội
+content-blocking-all-cookies = Tất cả cookie
+content-blocking-unvisited-cookies = Cookie từ các trang không mong muốn
+content-blocking-all-windows-tracking-content = Trình theo dõi nội dung trong tất cả cửa sổ
+content-blocking-all-third-party-cookies = Toàn bộ cookie từ bên thứ ba
+content-blocking-all-cross-site-cookies = Tất cả cookie trên nhiều trang web
+content-blocking-cryptominers = Tiền điện tử
+content-blocking-fingerprinters = Dấu vết (Fingerprintng)
+# "Test pilot" is used as a verb. Possible alternatives:
+# "Be the first to try", "Join an early experiment".
+content-blocking-etp-standard-tcp-rollout-checkbox =
+ .label = Thử tính năng bảo mật mạnh mẽ nhất của chúng tôi từ trước đến nay
+ .accesskey = T
+
+# The tcp-rollout strings are no longer used for the rollout but for tcp-by-default in the standard section
+
+# "Contains" here means "isolates", "limits".
+content-blocking-etp-standard-tcp-rollout-description = Trình chống cookie chung chứa các cookie cho trang web bạn đang truy cập, vì vậy, trình theo dõi không thể sử dụng chúng để theo dõi bạn giữa các trang web.
+content-blocking-etp-standard-tcp-rollout-learn-more = Tìm hiểu thêm
+content-blocking-etp-standard-tcp-title = Bao gồm Trình chống cookie chung, tính năng bảo mật mạnh mẽ nhất từ trước đến nay của chúng tôi
+content-blocking-warning-title = Hãy cân nhắc!
+content-blocking-and-isolating-etp-warning-description-2 = Cài đặt này có thể khiến một số trang web không hiển thị nội dung hoặc hoạt động không chính xác. Nếu trang web có vẻ bị hỏng, bạn có thể muốn tắt trình chống theo dõi để trang web đó tải tất cả nội dung.
+content-blocking-warning-learn-how = Tìm hiểu cách thức
+content-blocking-reload-description = Bạn sẽ cần tải lại các thẻ của mình để áp dụng những thay đổi này.
+content-blocking-reload-tabs-button =
+ .label = Tải lại tất cả các thẻ
+ .accesskey = R
+content-blocking-tracking-content-label =
+ .label = Trình theo dõi nội dung
+ .accesskey = T
+content-blocking-tracking-protection-option-all-windows =
+ .label = Trong tất cả các cửa sổ
+ .accesskey = A
+content-blocking-option-private =
+ .label = Chỉ trong cửa sổ riêng tư
+ .accesskey = P
+content-blocking-tracking-protection-change-block-list = Thay đổi danh sách chặn
+content-blocking-cookies-label =
+ .label = Cookie
+ .accesskey = C
+content-blocking-expand-section =
+ .tooltiptext = Thông tin chi tiết
+# Cryptomining refers to using scripts on websites that can use a computer’s resources to mine cryptocurrency without a user’s knowledge.
+content-blocking-cryptominers-label =
+ .label = Tiền điện tử
+ .accesskey = y
+# Browser fingerprinting is a method of tracking users by the configuration and settings information (their "digital fingerprint")
+# that is visible to websites they browse, rather than traditional tracking methods such as IP addresses and unique cookies.
+content-blocking-fingerprinters-label =
+ .label = Dấu vết (Fingerprintng)
+ .accesskey = F
+
+## Privacy Section - Tracking
+
+tracking-manage-exceptions =
+ .label = Quản lý ngoại lệ…
+ .accesskey = x
+
+## Privacy Section - Permissions
+
+permissions-header = Quyền hạn
+permissions-location = Vị trí
+permissions-location-settings =
+ .label = Cài đặt…
+ .accesskey = t
+permissions-xr = Thực tế ảo
+permissions-xr-settings =
+ .label = Cài đặt…
+ .accesskey = t
+permissions-camera = Máy ảnh
+permissions-camera-settings =
+ .label = Cài đặt…
+ .accesskey = t
+permissions-microphone = Micrô
+permissions-microphone-settings =
+ .label = Cài đặt…
+ .accesskey = t
+permissions-notification = Thông báo
+permissions-notification-settings =
+ .label = Cài đặt…
+ .accesskey = t
+permissions-notification-link = Tìm hiểu thêm
+permissions-notification-pause =
+ .label = Tạm dừng thông báo cho đến khi { -brand-short-name } khởi động lại
+ .accesskey = n
+permissions-autoplay = Tự động phát
+permissions-autoplay-settings =
+ .label = Cài đặt…
+ .accesskey = t
+permissions-block-popups =
+ .label = Chặn các cửa sổ bật lên
+ .accesskey = B
+# "popup" is a misspelling that is more popular than the correct spelling of
+# "pop-up" so it's included as a search keyword, not displayed in the UI.
+permissions-block-popups-exceptions-button =
+ .label = Ngoại trừ…
+ .accesskey = E
+ .searchkeywords = cửa sổ bật lên
+permissions-addon-install-warning =
+ .label = Cảnh báo khi trang web cố gắng cài đặt tiện ích
+ .accesskey = W
+permissions-addon-exceptions =
+ .label = Ngoại trừ…
+ .accesskey = E
+
+## Privacy Section - Data Collection
+
+collection-header = Thu thập và sử dụng dữ liệu { -brand-short-name }
+collection-description = Chúng tôi cố gắng cung cấp cho bạn sự lựa chọn và chỉ thu thập những gì chúng tôi cần để cung cấp và cải thiện { -brand-short-name } cho tất cả mọi người. Chúng tôi luôn xin phép trước khi thu thập thông tin cá nhân.
+collection-privacy-notice = Thông báo bảo mật
+collection-health-report-telemetry-disabled = Bạn không còn cho phép { -vendor-short-name } thu thập dữ liệu kỹ thuật và tương tác. Tất cả dữ liệu trong quá khứ sẽ bị xóa trong vòng 30 ngày.
+collection-health-report-telemetry-disabled-link = Tìm hiểu thêm
+collection-health-report =
+ .label = Cho phép { -brand-short-name } gửi dữ liệu kỹ thuật và tương tác tới { -vendor-short-name }
+ .accesskey = r
+collection-health-report-link = Tìm hiểu thêm
+collection-studies =
+ .label = Cho phép { -brand-short-name } cài đặt và chạy các nghiên cứu
+collection-studies-link = Xem nghiên cứu { -brand-short-name }
+addon-recommendations =
+ .label = Cho phép { -brand-short-name } để thực hiện các đề xuất tiện ích mở rộng được cá nhân hóa
+addon-recommendations-link = Tìm hiểu thêm
+# This message is displayed above disabled data sharing options in developer builds
+# or builds with no Telemetry support available.
+collection-health-report-disabled = Dữ liệu báo cáo bị vô hiệu hóa với cấu hình này
+collection-backlogged-crash-reports-with-link = Cho phép { -brand-short-name } thay mặt bạn gửi báo cáo sự cố tồn đọng Tìm hiểu thêm
+ .accesskey = c
+privacy-segmentation-section-header = Các tính năng mới nâng cao khả năng duyệt web của bạn
+privacy-segmentation-section-description = Khi chúng tôi cung cấp các tính năng sử dụng dữ liệu của bạn để mang lại cho bạn trải nghiệm cá nhân hơn:
+privacy-segmentation-radio-off =
+ .label = Sử dụng các đề xuất của { -brand-product-name }
+privacy-segmentation-radio-on =
+ .label = Hiển thị thông tin chi tiết
+
+## Privacy Section - Security
+##
+## It is important that wording follows the guidelines outlined on this page:
+## https://developers.google.com/safe-browsing/developers_guide_v2#AcceptableUsage
+
+security-header = Bảo mật
+security-browsing-protection = Chống nội dung lừa đảo và phần mềm nguy hiểm
+security-enable-safe-browsing =
+ .label = Chặn nội dung lừa đảo và không an toàn
+ .accesskey = B
+security-enable-safe-browsing-link = Tìm hiểu thêm
+security-block-downloads =
+ .label = Chặn tải xuống không an toàn
+ .accesskey = d
+security-block-uncommon-software =
+ .label = Cảnh báo bạn về phần mềm không mong muốn và không phổ biến
+ .accesskey = c
+
+## Privacy Section - Certificates
+
+certs-header = Chứng nhận
+certs-enable-ocsp =
+ .label = Truy vấn máy chủ đáp ứng giao thức OCSP để xác minh hiệu lực của các chứng chỉ
+ .accesskey = Q
+certs-view =
+ .label = Xem chứng nhận…
+ .accesskey = C
+certs-devices =
+ .label = Thiết bị bảo mật…
+ .accesskey = D
+space-alert-over-5gb-settings-button =
+ .label = Mở Cài đặt
+ .accesskey = O
+space-alert-over-5gb-message2 = { -brand-short-name } sắp hết dung lượng đĩa. Nội dung trang web có thể không hiển thị chính xác. Bạn có thể xóa dữ liệu được lưu trữ trong Cài đặt > Riêng tư & Bảo mật > Cookie và dữ liệu trang.
+space-alert-under-5gb-message2 = { -brand-short-name } sắp hết dung lượng đĩa. Nội dung trang web có thể không hiển thị chính xác. Truy cập “Tìm hiểu thêm” để tối ưu hóa việc sử dụng đĩa của bạn để có trải nghiệm duyệt web tốt hơn.
+
+## Privacy Section - HTTPS-Only
+
+httpsonly-header = Chế độ chỉ HTTPS
+httpsonly-description = HTTPS cung cấp kết nối được mã hóa an toàn giữa { -brand-short-name } và các trang web bạn truy cập. Hầu hết các trang web đều hỗ trợ HTTPS và nếu chế độ chỉ HTTPS được bật, thì { -brand-short-name } sẽ nâng cấp tất cả các kết nối lên HTTPS.
+httpsonly-learn-more = Tìm hiểu thêm
+httpsonly-radio-enabled =
+ .label = Kích hoạt chế độ chỉ HTTPS trong tất cả các cửa sổ
+httpsonly-radio-enabled-pbm =
+ .label = Chỉ kích hoạt chế độ HTTPS trong các cửa sổ riêng tư
+httpsonly-radio-disabled =
+ .label = Không kích hoạt chế độ chỉ HTTPS
+
+## The following strings are used in the Download section of settings
+
+desktop-folder-name = Bàn làm việc
+downloads-folder-name = Tải xuống
+choose-download-folder-title = Chọn thư mục tải xuống:
diff --git a/l10n-vi/browser/browser/preferences/selectBookmark.ftl b/l10n-vi/browser/browser/preferences/selectBookmark.ftl
new file mode 100644
index 0000000000..2b120e7200
--- /dev/null
+++ b/l10n-vi/browser/browser/preferences/selectBookmark.ftl
@@ -0,0 +1,13 @@
+# 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/.
+
+select-bookmark-window =
+ .title = Đặt làm trang chủ
+ .style = width: 32em;
+
+select-bookmark-window2 =
+ .title = Đặt làm trang chủ
+ .style = min-width: 32em;
+
+select-bookmark-desc = Chọn một dấu trang để làm trang chủ của bạn. Nếu bạn chọn một thư mục, dấu trang trong thư mục đó sẽ được mở trong thẻ.
diff --git a/l10n-vi/browser/browser/preferences/siteDataSettings.ftl b/l10n-vi/browser/browser/preferences/siteDataSettings.ftl
new file mode 100644
index 0000000000..6b2ba4eb86
--- /dev/null
+++ b/l10n-vi/browser/browser/preferences/siteDataSettings.ftl
@@ -0,0 +1,67 @@
+# 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/.
+
+
+## Settings
+
+site-data-settings-window =
+ .title = Quản lý cookie và dữ liệu trang
+
+site-data-settings-description = Các trang web sau lưu trữ cookie và dữ liệu trang web trên máy tính của bạn. { -brand-short-name } lưu giữ dữ liệu từ các trang web có lưu trữ liên tục cho đến khi bạn xóa, xóa dữ liệu khỏi các trang web có bộ nhớ không liên tục khi cần thiết.
+
+site-data-search-textbox =
+ .placeholder = Tìm kiếm trang web
+ .accesskey = S
+
+site-data-column-host =
+ .label = Trang
+site-data-column-cookies =
+ .label = Cookie
+site-data-column-storage =
+ .label = Lưu trữ
+site-data-column-last-used =
+ .label = Sử dụng lần cuối
+
+# This label is used in the "Host" column for local files, which have no host.
+site-data-local-file-host = (tập tin cục bộ)
+
+site-data-remove-selected =
+ .label = Xóa mục đã chọn
+ .accesskey = r
+
+site-data-settings-dialog =
+ .buttonlabelaccept = Lưu thay đổi
+ .buttonaccesskeyaccept = a
+
+# Variables:
+# $value (Number) - Value of the unit (for example: 4.6, 500)
+# $unit (String) - Name of the unit (for example: "bytes", "KB")
+site-storage-usage =
+ .value = { $value } { $unit }
+site-storage-persistent =
+ .value = { site-storage-usage.value } (Liên tục)
+
+site-data-remove-all =
+ .label = Xóa hết
+ .accesskey = e
+
+site-data-remove-shown =
+ .label = Xóa tất cả được hiển thị
+ .accesskey = e
+
+## Removing
+
+site-data-removing-dialog =
+ .title = { site-data-removing-header }
+ .buttonlabelaccept = Xóa
+
+site-data-removing-header = Xóa cache và dữ liệu trang
+
+site-data-removing-desc = Xóa cookie và dữ liệu trang có thể khiến bạn bị đăng xuất khỏi trang web. Bạn có chắc chắn muốn thay đổi không?
+
+# Variables:
+# $baseDomain (String) - The single domain for which data is being removed
+site-data-removing-single-desc = Xóa cookie và dữ liệu trang web có thể đăng xuất bạn khỏi các trang web. Bạn có chắc chắn muốn xóa cookie và dữ liệu trang web của { $baseDomain } không?
+
+site-data-removing-table = Cookie và dữ liệu của các trang web sau sẽ bị xóa
diff --git a/l10n-vi/browser/browser/preferences/translation.ftl b/l10n-vi/browser/browser/preferences/translation.ftl
new file mode 100644
index 0000000000..8e0cbaf0fe
--- /dev/null
+++ b/l10n-vi/browser/browser/preferences/translation.ftl
@@ -0,0 +1,44 @@
+# 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/.
+
+translation-window =
+ .title = Ngoại lệ - Dịch tự động
+ .style = width: 36em
+
+translation-window2 =
+ .title = Ngoại lệ - Dịch tự động
+ .style = min-width: 36em
+
+translation-close-key =
+ .key = w
+
+translation-languages-disabled-desc = Bản dịch sẽ không được cung cấp cho các ngôn ngữ sau
+
+translation-languages-column =
+ .label = Ngôn ngữ
+
+translation-languages-button-remove =
+ .label = Xóa ngôn ngữ
+ .accesskey = R
+
+translation-languages-button-remove-all =
+ .label = Xóa tất cả ngôn ngữ
+ .accesskey = e
+
+translation-sites-disabled-desc = Bản dịch sẽ không được cung cấp cho các trang web sau
+
+translation-sites-column =
+ .label = Trang web
+
+translation-sites-button-remove =
+ .label = Xóa trang
+ .accesskey = S
+
+translation-sites-button-remove-all =
+ .label = Xóa tất cả các trang
+ .accesskey = i
+
+translation-dialog =
+ .buttonlabelaccept = Đóng
+ .buttonaccesskeyaccept = C
diff --git a/l10n-vi/browser/browser/profile/default-bookmarks.ftl b/l10n-vi/browser/browser/profile/default-bookmarks.ftl
new file mode 100644
index 0000000000..2e65a1c423
--- /dev/null
+++ b/l10n-vi/browser/browser/profile/default-bookmarks.ftl
@@ -0,0 +1,53 @@
+# 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/.
+
+
+# This file intentionally uses hard-coded brand names instead of Fluent terms.
+# This approach minimizes issues across multiple release channels and rebranded
+# versions.
+
+default-bookmarks-title = Dấu trang
+default-bookmarks-heading = Dấu trang
+
+default-bookmarks-toolbarfolder = Thư mục thanh dấu trang
+default-bookmarks-toolbarfolder-description = Thêm các dấu trang vào thư mục này để hiển thị chúng trên thanh dấu trang
+
+# link title for https://www.mozilla.org/firefox/central/
+default-bookmarks-getting-started = Bắt đầu
+
+# Firefox links folder name
+default-bookmarks-firefox-heading = Mozilla Firefox
+
+# link title for https://www.mozilla.org/firefox/help/
+default-bookmarks-firefox-get-help = Nhận trợ giúp
+
+# link title for https://www.mozilla.org/firefox/customize/
+default-bookmarks-firefox-customize = Tùy biến Firefox
+
+# link title for https://www.mozilla.org/contribute/
+default-bookmarks-firefox-community = Tham gia
+
+# link title for https://www.mozilla.org/about/
+default-bookmarks-firefox-about = Giới thiệu về chúng tôi
+
+# Firefox Nightly links folder name
+default-bookmarks-nightly-heading = Tài nguyên Firefox Nightly
+
+# Nightly builds only, link title for https://blog.nightly.mozilla.org/
+default-bookmarks-nightly-blog = Nhật ký Firefox Nightly
+
+# Nightly builds only, link title for https://bugzilla.mozilla.org/
+default-bookmarks-bugzilla = Trình theo dõi lỗi Mozilla
+
+# Nightly builds only, link title for https://developer.mozilla.org/
+default-bookmarks-mdn = Mạng lưới nhà phát triển Mozilla
+
+# Nightly builds only, link title for https://addons.mozilla.org/firefox/addon/nightly-tester-tools/
+default-bookmarks-nightly-tester-tools = Các công cụ thử nghiệm Nightly
+
+# Nightly builds only, link title for about:crashes
+default-bookmarks-crashes = Tất cả những sự cố của bạn
+
+# Nightly builds only, link title for https://planet.mozilla.org/
+default-bookmarks-planet = Planet Mozilla
diff --git a/l10n-vi/browser/browser/protections.ftl b/l10n-vi/browser/browser/protections.ftl
new file mode 100644
index 0000000000..a82b406430
--- /dev/null
+++ b/l10n-vi/browser/browser/protections.ftl
@@ -0,0 +1,219 @@
+# 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/.
+
+# Variables:
+# $count (Number) - Number of tracking events blocked.
+graph-week-summary =
+ { $count ->
+ *[other] { -brand-short-name } đã chặn { $count } trình theo dõi trong tuần qua
+ }
+
+# Variables:
+# $count (Number) - Number of tracking events blocked.
+# $earliestDate (Number) - Unix timestamp in ms, representing a date. The
+# earliest date recorded in the database.
+graph-total-tracker-summary =
+ { $count ->
+ *[other] { $count } trình theo dõi bị chặn kể từ { DATETIME($earliestDate, day: "numeric", month: "long", year: "numeric") }
+ }
+
+# Text displayed instead of the graph when in Private Mode
+graph-private-window = { -brand-short-name } tiếp tục chặn trình theo dõi trong cửa sổ riêng tư, nhưng không lưu giữ hồ sơ về những gì đã bị chặn.
+# Weekly summary of the graph when the graph is empty in Private Mode
+graph-week-summary-private-window = Trình theo dõi mà { -brand-short-name } đã chặn trong tuần này
+
+protection-report-webpage-title = Bảng điều khiển bảo vệ
+protection-report-page-content-title = Bảng điều khiển bảo vệ
+# This message shows when all privacy protections are turned off, which is why we use the word "can", Firefox is able to protect your privacy, but it is currently not.
+protection-report-page-summary = { -brand-short-name } có thể bảo vệ quyền riêng tư của bạn đằng sau hậu trường trong khi bạn duyệt. Đây là bản tóm tắt được cá nhân hóa về các biện pháp bảo vệ đó, bao gồm các công cụ để kiểm soát an ninh trực tuyến của bạn.
+# This message shows when at least some protections are turned on, we are more assertive compared to the message above, Firefox is actively protecting you.
+protection-report-page-summary-default = { -brand-short-name } có thể bảo vệ quyền riêng tư của bạn đằng sau hậu trường trong khi bạn duyệt. Đây là bản tóm tắt được cá nhân hóa về các biện pháp bảo vệ đó, bao gồm các công cụ để kiểm soát an ninh trực tuyến của bạn.
+
+protection-report-settings-link = Quản lý cài đặt bảo mật và quyền riêng tư của bạn
+
+etp-card-title-always = Trình chống theo dõi nâng cao: Luôn bật
+etp-card-title-custom-not-blocking = Trình chống theo dõi nâng cao: TẮT
+etp-card-content-description = { -brand-short-name } tự động ngăn các công ty bí mật theo dõi bạn trên web.
+protection-report-etp-card-content-custom-not-blocking = Tất cả các bảo vệ hiện đang tắt. Chọn trình theo dõi nào sẽ chặn bằng cách quản lý cài đặt bảo vệ { -brand-short-name } của bạn.
+protection-report-manage-protections = Quản lý cài đặt
+
+# This string is used to label the X axis of a graph. Other days of the week are generated via Intl.DateTimeFormat,
+# capitalization for this string should match the output for your locale.
+graph-today = Hôm nay
+
+# This string is used to describe the graph for screenreader users.
+graph-legend-description = Một biểu đồ chứa tổng số lượng của từng loại trình theo dõi bị chặn trong tuần này.
+
+social-tab-title = Trình theo dõi truyền thông xã hội
+social-tab-contant = Mạng xã hội đặt trình theo dõi trên các trang web khác để theo dõi những gì bạn làm, xem và xem trực tuyến. Điều này cho phép các công ty truyền thông xã hội tìm hiểu thêm về bạn ngoài những gì bạn chia sẻ trên hồ sơ truyền thông xã hội của mình. Tìm hiểu thêm
+
+cookie-tab-title = Cookie theo dõi trên nhiều trang web
+cookie-tab-content = Những cookie này theo bạn từ trang này sang trang khác để thu thập dữ liệu về những gì bạn làm trực tuyến. Chúng được đặt bởi các bên thứ ba như nhà quảng cáo và công ty phân tích. Chặn cookie theo dõi nhiều trang web làm giảm số lượng quảng cáo theo bạn xung quanh. Tìm hiểu thêm
+
+tracker-tab-title = Trình theo dõi nội dung
+tracker-tab-description = Trang web có thể tải quảng cáo bên ngoài, video và nội dung khác với đoạn mã theo dõi. Chặn nội dung theo dõi có thể giúp các trang web tải nhanh hơn, nhưng một số nút, biểu mẫu và trường đăng nhập có thể không hoạt động. Tìm hiểu thêm
+
+fingerprinter-tab-title = Dấu vết
+fingerprinter-tab-content = Dấu vết thu thập cài đặt từ trình duyệt và máy tính của bạn để tạo hồ sơ về bạn. Sử dụng dấu vết kỹ thuật số này, họ có thể theo dõi bạn trên các trang web khác nhau. Tìm hiểu thêm
+
+cryptominer-tab-title = Tiền điện tử
+cryptominer-tab-content = Tiền điện tử sử dụng sức mạnh tính toán của hệ thống của bạn để khai thác tiền kỹ thuật số. Các tập lệnh mã hóa làm cạn kiệt pin của bạn, làm chậm máy tính của bạn và có thể tăng hóa đơn năng lượng của bạn. Tìm hiểu thêm
+
+protections-close-button2 =
+ .aria-label = Đóng
+ .title = Đóng
+
+mobile-app-title = Chặn trình theo dõi quảng cáo trên nhiều thiết bị hơn
+mobile-app-card-content = Sử dụng trình duyệt di động có bảo vệ tích hợp chống theo dõi quảng cáo.
+mobile-app-links = Trình duyệt { -brand-product-name } dành cho Android và iOS
+
+lockwise-title = Không bao giờ quên mật khẩu lần nữa
+passwords-title-logged-in = Quản lý mật khẩu của bạn
+passwords-header-content = { -brand-product-name } lưu trữ mật khẩu của bạn an toàn trong trình duyệt của bạn.
+lockwise-header-content-logged-in = Lưu trữ an toàn và đồng bộ hóa mật khẩu của bạn với tất cả các thiết bị của bạn.
+protection-report-passwords-save-passwords-button = Lưu mật khẩu
+ .title = Lưu mật khẩu
+protection-report-passwords-manage-passwords-button = Quản lý mật khẩu
+ .title = Quản lý mật khẩu
+
+
+# Variables:
+# $count (Number) - Number of passwords exposed in data breaches.
+lockwise-scanned-text-breached-logins =
+ { $count ->
+ *[other] { $count } mật khẩu có thể đã bị lộ do rò rỉ dữ liệu.
+ }
+
+# While English doesn't use the number in the plural form, you can add $count to your language
+# if needed for grammatical reasons.
+# Variables:
+# $count (Number) - Number of passwords stored in Lockwise.
+lockwise-scanned-text-no-breached-logins =
+ { $count ->
+ *[other] Mật khẩu của bạn đang được lưu trữ an toàn.
+ }
+lockwise-how-it-works-link = Nó hoạt động như thế nào
+
+monitor-title = Xem các rò rỉ dữ liệu
+monitor-link = Nó hoạt động như thế nào
+monitor-header-content-no-account = Kiểm tra tại { -monitor-brand-name } để xem bạn có phải là một phần của rò rỉ dữ liệu hay không và nhận thông báo về các rò rỉ mới.
+monitor-header-content-signed-in = { -monitor-brand-name } cảnh báo bạn nếu thông tin của bạn xuất hiện trong một vụ rò rỉ dữ liệu đã biết.
+monitor-sign-up-link = Đăng ký cảnh báo vụ rò rỉ
+ .title = Đăng ký cảnh báo vụ rò rỉ trên { -monitor-brand-name }
+auto-scan = Tự động quét ngày hôm nay
+
+monitor-emails-tooltip =
+ .title = Xem địa chỉ email được giám sát trên { -monitor-brand-short-name }
+monitor-breaches-tooltip =
+ .title = Xem các rò rỉ dữ liệu đã biết trên { -monitor-brand-short-name }
+monitor-passwords-tooltip =
+ .title = Xem mật khẩu bị lộ trên { -monitor-brand-short-name }
+
+# This string is displayed after a large numeral that indicates the total number
+# of email addresses being monitored. Don’t add $count to
+# your localization, because it would result in the number showing twice.
+info-monitored-emails =
+ { $count ->
+ *[other] Địa chỉ email đang được giám sát
+ }
+
+# This string is displayed after a large numeral that indicates the total number
+# of known data breaches. Don’t add $count to
+# your localization, because it would result in the number showing twice.
+info-known-breaches-found =
+ { $count ->
+ *[other] Rò rỉ dữ liệu đã biết đã tiết lộ thông tin của bạn
+ }
+
+# This string is displayed after a large numeral that indicates the total number
+# of known data breaches that are marked as resolved by the user. Don’t add $count
+# to your localization, because it would result in the number showing twice.
+info-known-breaches-resolved =
+ { $count ->
+ *[other] Rò rỉ dữ liệu đã biết được đánh dấu là đã giải quyết
+ }
+
+# This string is displayed after a large numeral that indicates the total number
+# of exposed passwords. Don’t add $count to
+# your localization, because it would result in the number showing twice.
+info-exposed-passwords-found =
+ { $count ->
+ *[other] Mật khẩu tiếp xúc trên tất cả các vụ rò rỉ
+ }
+
+# This string is displayed after a large numeral that indicates the total number
+# of exposed passwords that are marked as resolved by the user. Don’t add $count
+# to your localization, because it would result in the number showing twice.
+info-exposed-passwords-resolved =
+ { $count ->
+ *[other] Mật khẩu bị lộ trong các rò rỉ dữ liệu chưa được giải quyết
+ }
+
+monitor-no-breaches-title = Tin tốt!
+monitor-no-breaches-description = Bạn không có vụ rò rỉ nào được biết đến. Nếu có, chúng tôi sẽ cho bạn biết.
+monitor-view-report-link = Xem báo cáo
+ .title = Giải quyết rò rỉ trên { -monitor-brand-short-name }
+monitor-breaches-unresolved-title = Giải quyết rò rỉ dữ liệu của bạn
+monitor-breaches-unresolved-description = Sau khi xem xét chi tiết rò rỉ và thực hiện các bước để bảo vệ thông tin của bạn, bạn có thể đánh dấu các rò rỉ là đã được giải quyết.
+monitor-manage-breaches-link = Quản lí vụ rò rỉ
+ .title = Quản lí các vụ rò rỉ trên { -monitor-brand-short-name }
+monitor-breaches-resolved-title = Tốt! Bạn đã giải quyết tất cả các rò rỉ được biết đến.
+monitor-breaches-resolved-description = Nếu email của bạn xuất hiện trong bất kỳ rò rỉ mới, chúng tôi sẽ cho bạn biết.
+
+# Variables:
+# $numBreachesResolved (Number) - Number of breaches marked as resolved by the user on Monitor.
+# $numBreaches (Number) - Number of breaches in which a user's data was involved, detected by Monitor.
+monitor-partial-breaches-title =
+ { $numBreaches ->
+ *[other] { $numBreachesResolved } trong số { $numBreaches } vụ rò rỉ đã được đánh dấu là giải quyết
+ }
+
+# Variables:
+# $percentageResolved (Number) - Percentage of breaches marked as resolved by a user on Monitor.
+monitor-partial-breaches-percentage = { $percentageResolved }% hoàn thành
+
+monitor-partial-breaches-motivation-title-start = Khởi đầu tuyệt vời!
+monitor-partial-breaches-motivation-title-middle = Hãy giữ nó!
+monitor-partial-breaches-motivation-title-end = Sắp xong! Hãy giữ nó.
+monitor-partial-breaches-motivation-description = Giải quyết các rò rỉ còn lại của bạn trên { -monitor-brand-short-name }.
+monitor-resolve-breaches-link = Giải quyết các rò rỉ
+ .title = Giải quyết các rò rỉ trên { -monitor-brand-short-name }
+
+## The title attribute is used to display the type of protection.
+## The aria-label is spoken by screen readers to make the visual graph accessible to blind users.
+##
+## Variables:
+## $count (Number) - Number of specific trackers
+## $percentage (Number) - Percentage this type of tracker contributes to the whole graph
+
+bar-tooltip-social =
+ .title = Trình theo dõi truyền thông xã hội
+ .aria-label =
+ { $count ->
+ *[other] { $count } trình theo dõi truyền thông xã hội ({ $percentage }%)
+ }
+bar-tooltip-cookie =
+ .title = Cookie theo dõi trên nhiều trang web
+ .aria-label =
+ { $count ->
+ *[other] { $count } cookie theo dõi trên nhiều trang web ({ $percentage }%)
+ }
+bar-tooltip-tracker =
+ .title = Trình theo dõi nội dung
+ .aria-label =
+ { $count ->
+ *[other] { $count } trình theo dõi nội dung ({ $percentage }%)
+ }
+bar-tooltip-fingerprinter =
+ .title = Dấu vết
+ .aria-label =
+ { $count ->
+ *[other] { $count } dấu vết ({ $percentage }%)
+ }
+bar-tooltip-cryptominer =
+ .title = Tiền điện tử
+ .aria-label =
+ { $count ->
+ *[other] { $count } tiền điện tử ({ $percentage }%)
+ }
diff --git a/l10n-vi/browser/browser/protectionsPanel.ftl b/l10n-vi/browser/browser/protectionsPanel.ftl
new file mode 100644
index 0000000000..7e83b86d7e
--- /dev/null
+++ b/l10n-vi/browser/browser/protectionsPanel.ftl
@@ -0,0 +1,113 @@
+# 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/.
+
+protections-panel-sendreportview-error = Có lỗi khi gửi báo cáo. Vui lòng thử lại sau.
+
+# A link shown when ETP is disabled for a site. Opens the breakage report subview when clicked.
+protections-panel-sitefixedsendreport-label = Trang web có bình thường không? Hãy gửi báo cáo
+
+## These strings are used to define the different levels of
+## Enhanced Tracking Protection.
+
+protections-popup-footer-protection-label-strict = Nghiêm ngặt
+ .label = Nghiêm ngặt
+protections-popup-footer-protection-label-custom = Tùy chọn
+ .label = Tùy chọn
+protections-popup-footer-protection-label-standard = Tiêu chuẩn
+ .label = Tiêu chuẩn
+
+##
+
+# The text a screen reader speaks when focused on the info button.
+protections-panel-etp-more-info =
+ .aria-label = Thông tin thêm về trình chống theo dõi nâng cao
+
+protections-panel-etp-on-header = Trình chống theo dõi nâng cao đã được BẬT cho trang này
+protections-panel-etp-off-header = Trình chống theo dõi nâng cao đã bị TẮT cho trang này
+
+# The link to be clicked to open the sub-panel view
+protections-panel-site-not-working = Trang web không hoạt động?
+
+# The heading/title of the sub-panel view
+protections-panel-site-not-working-view =
+ .title = Trang web không hoạt động?
+
+## The "Allowed" header also includes a "Why?" link that, when hovered, shows
+## a tooltip explaining why these items were not blocked in the page.
+
+protections-panel-not-blocking-why-label = Tại sao?
+protections-panel-not-blocking-why-etp-on-tooltip = Chặn những thứ này có thể phá vỡ các yếu tố của một số trang web. Không có trình theo dõi, một số nút, biểu mẫu và trường đăng nhập có thể không hoạt động.
+protections-panel-not-blocking-why-etp-off-tooltip = Tất cả các trình theo dõi trên trang web này đã được tải vì bảo vệ bị tắt.
+
+##
+
+protections-panel-no-trackers-found = { -brand-short-name } không phát hiện ra trình theo dõi đã biết trên trang này.
+
+protections-panel-content-blocking-tracking-protection = Trình theo dõi nội dung
+
+protections-panel-content-blocking-socialblock = Trình theo dõi truyền thông xã hội
+protections-panel-content-blocking-cryptominers-label = Tiền điện tử
+protections-panel-content-blocking-fingerprinters-label = Dấu vết
+
+## In the protections panel, Content Blocking category items are in three sections:
+## "Blocked" for categories being blocked in the current page,
+## "Allowed" for categories detected but not blocked in the current page, and
+## "None Detected" for categories not detected in the current page.
+## These strings are used in the header labels of each of these sections.
+
+protections-panel-blocking-label = Đã chặn
+protections-panel-not-blocking-label = Đã cho phép
+protections-panel-not-found-label = Không phát hiện
+
+##
+
+protections-panel-settings-label = Cài đặt bảo vệ
+# This should match the "appmenuitem-protection-dashboard-title" string in browser/appmenu.ftl.
+protections-panel-protectionsdashboard-label = Bảng điều khiển bảo vệ
+
+## In the Site Not Working? view, we suggest turning off protections if
+## the user is experiencing issues with any of a variety of functionality.
+
+# The header of the list
+protections-panel-site-not-working-view-header = Tắt bảo vệ nếu bạn có vấn đề với:
+
+# The list items, shown in a
+protections-panel-site-not-working-view-issue-list-login-fields = Trường đăng nhập
+protections-panel-site-not-working-view-issue-list-forms = Biểu mẫu
+protections-panel-site-not-working-view-issue-list-payments = Thanh toán
+protections-panel-site-not-working-view-issue-list-comments = Bình luận
+protections-panel-site-not-working-view-issue-list-videos = Video
+
+protections-panel-site-not-working-view-send-report = Gửi báo cáo
+
+##
+
+protections-panel-cross-site-tracking-cookies = Những cookie này theo bạn từ trang này sang trang khác để thu thập dữ liệu về những gì bạn làm trực tuyến. Chúng được đặt bởi các bên thứ ba như nhà quảng cáo và công ty phân tích.
+protections-panel-cryptominers = Tiền điện tử sử dụng sức mạnh tính toán của hệ thống của bạn để khai thác tiền kỹ thuật số. Các tập lệnh mã hóa làm cạn kiệt pin của bạn, làm chậm máy tính của bạn và có thể tăng hóa đơn năng lượng của bạn.
+protections-panel-fingerprinters = Dấu vết thu thập cài đặt từ trình duyệt và máy tính của bạn để tạo hồ sơ về bạn. Sử dụng dấu vết kỹ thuật số này, họ có thể theo dõi bạn trên các trang web khác nhau.
+protections-panel-tracking-content = Trang web có thể tải quảng cáo bên ngoài, video và nội dung khác với đoạn mã theo dõi. Chặn nội dung theo dõi có thể giúp các trang web tải nhanh hơn, nhưng một số nút, biểu mẫu và trường đăng nhập có thể không hoạt động.
+protections-panel-social-media-trackers = Mạng xã hội đặt trình theo dõi trên các trang web khác để theo dõi những gì bạn làm, xem và xem trực tuyến. Điều này cho phép các công ty truyền thông xã hội tìm hiểu thêm về bạn ngoài những gì bạn chia sẻ trên hồ sơ truyền thông xã hội của mình.
+
+protections-panel-description-shim-allowed = Một số trình theo dõi được đánh dấu bên dưới đã được bỏ chặn một phần trên trang này vì bạn đã tương tác với chúng.
+protections-panel-description-shim-allowed-learn-more = Tìm hiểu thêm
+protections-panel-shim-allowed-indicator =
+ .tooltiptext = Trình theo dõi được bỏ chặn một phần
+
+protections-panel-content-blocking-manage-settings =
+ .label = Quản lý cài đặt bảo vệ
+ .accesskey = M
+
+protections-panel-content-blocking-breakage-report-view =
+ .title = Báo cáo một trang web bị hỏng
+protections-panel-content-blocking-breakage-report-view-description = Chặn một số trình theo dõi nhất định có thể gây ra vấn đề với một số trang web. Báo cáo những vấn đề này giúp tạo { -brand-short-name } tốt hơn cho mọi người. Gửi báo cáo này sẽ gửi một URL và thông tin về cài đặt trình duyệt của bạn đến Mozilla.
+protections-panel-content-blocking-breakage-report-view-collection-url = URL
+protections-panel-content-blocking-breakage-report-view-collection-url-label =
+ .aria-label = URL
+protections-panel-content-blocking-breakage-report-view-collection-comments = Tùy chọn: Mô tả vấn đề
+protections-panel-content-blocking-breakage-report-view-collection-comments-label =
+ .aria-label = Tùy chọn: Mô tả vấn đề
+protections-panel-content-blocking-breakage-report-view-cancel =
+ .label = Hủy bỏ
+protections-panel-content-blocking-breakage-report-view-send-report =
+ .label = Gửi báo cáo
diff --git a/l10n-vi/browser/browser/safeMode.ftl b/l10n-vi/browser/browser/safeMode.ftl
new file mode 100644
index 0000000000..3a72bda458
--- /dev/null
+++ b/l10n-vi/browser/browser/safeMode.ftl
@@ -0,0 +1,15 @@
+# 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/.
+
+troubleshoot-mode-window =
+ .title = Mở { -brand-short-name } trong chế độ xử lý sự cố?
+ .style = max-width: 400px
+start-troubleshoot-mode =
+ .label = Mở
+refresh-profile =
+ .label = Cài đặt lại { -brand-short-name }
+troubleshoot-mode-description = Sử dụng chế độ đặc biệt này của { -brand-short-name } để chẩn đoán sự cố. Các tiện ích mở rộng và tùy chỉnh của bạn sẽ tạm thời bị vô hiệu hóa.
+skip-troubleshoot-refresh-profile = Thay vào đó, bạn cũng có thể bỏ qua xử lý sự cố và làm mới { -brand-short-name }.
+# Shown on the safe mode dialog after multiple startup crashes.
+auto-safe-mode-description = { -brand-short-name } bị đóng bất thường trong lúc khởi động. Việc này có thể do tiện ích hoặc các vấn đề khác. Bạn có thể thử giải quyết vấn đề này bằng cách sửa chữa trong chế độ an toàn.
diff --git a/l10n-vi/browser/browser/safebrowsing/blockedSite.ftl b/l10n-vi/browser/browser/safebrowsing/blockedSite.ftl
new file mode 100644
index 0000000000..72ba0081fc
--- /dev/null
+++ b/l10n-vi/browser/browser/safebrowsing/blockedSite.ftl
@@ -0,0 +1,30 @@
+# 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/.
+
+safeb-blocked-phishing-page-title = Trang web lừa đảo
+safeb-blocked-malware-page-title = Truy cập vào trang web này có thể làm hại máy tính của bạn
+safeb-blocked-unwanted-page-title = Trang bạn đang truy cập có thể chứa phần mềm gây hại
+safeb-blocked-harmful-page-title = Trang bạn đang truy cập có thể chứa malware
+safeb-blocked-phishing-page-short-desc = { -brand-short-name } đã chặn trang này vì nó có thể lừa bạn làm điều gì đó nguy hiểm như cài đặt phần mềm hoặc tiết lộ thông tin cá nhân như mật khẩu hoặc thẻ tín dụng.
+safeb-blocked-malware-page-short-desc = { -brand-short-name } chặn trang này vì nó có thể cố gắng cài đặt phần mềm độc hại để có thể ăn cắp hoặc xóa các thông tin cá nhân trên máy tính của bạn.
+safeb-blocked-unwanted-page-short-desc = { -brand-short-name } đã chặn trang này bởi vì nó cố lừa bạn cài đặt các chương trình gây ảnh hưởng đến trải nghiệm duyệt web của bạn (ví dụ, thay đổi trang chủ hoặc hiển thị thêm quảng cáo trên các trang web bạn truy cập).
+safeb-blocked-harmful-page-short-desc = { -brand-short-name } đã chặn trang này vì nó cố gắng cài ứng dụng nguy hiểm để ăn cắp hoặc xóa thông tin của bạn (ví dụ, ảnh, mật khẩu, tin nhắn và thông tin thẻ tín dụng).
+safeb-palm-advisory-desc = Tư vấn được cung cấp bởi { $advisoryname }.
+safeb-palm-accept-label = Quay lại
+safeb-palm-see-details-label = Xem chi tiết
+safeb-blocked-phishing-page-error-desc-override = { $sitename } đã bị báo cáo là trang web lừa đảo. Bạn có thể báo cáo một vấn đề phát hiện hoặc bỏ qua rủi ro và truy cập trang không an toàn này.
+safeb-blocked-phishing-page-error-desc-no-override = { $sitename } đã bị báo cáo là trang web lừa đảo. Bạn có thể báo cáo một vấn đề phát hiện.
+safeb-blocked-phishing-page-learn-more = Tìm hiểu thêm về các trang lừa đảo và giả mạo tại www.antiphishing.org. Tìm hiểu thêm về chống lừa đảo và phần mềm độc hại của { -brand-short-name } tại support.mozilla.org.
+safeb-blocked-malware-page-error-desc-override-sumo = { $sitename } đã được được báo cáo là có chứa phần mềm độc hại. Bạn có thể bỏ qua rủi ro và đi đến trang web không an toàn.
+safeb-blocked-malware-page-error-desc-no-override-sumo = { $sitename } đã được được báo cáo là có chứa phần mềm độc hại.
+safeb-blocked-malware-page-learn-more-sumo = Xem thêm về chống lừa đảo và phần mềm độc hại của { -brand-short-name } tại support.mozilla.org.
+safeb-blocked-unwanted-page-error-desc-override = { $sitename } đã được báo cáo là có chứa phần mềm có hại. Bạn có thể bỏ qua rủi ro và truy cập trang web không an toàn này.
+safeb-blocked-unwanted-page-error-desc-no-override = { $sitename } đã bị báo cáo có chứa phần mềm gây hại.
+safeb-blocked-unwanted-page-learn-more = Tìm hiểu thêm về phần mềm độc hại và không mong muốn tại chính sách phần mềm không mong muốn. Tìm hiểu thêm về bảo vệ lừa đảo và phần mềm độc hại của { -brand-short-name } tại support.mozilla.org.
+safeb-blocked-harmful-page-error-desc-override = { $sitename } đã bị báo cáo là có chứa một ứng dụng có khả năng gây hại. Bạn có thể bỏ qua rủi ro và truy cập vào trang không an toàn này.
+safeb-blocked-harmful-page-error-desc-no-override = { $sitename } đã bị báo cáo là có chứa một ứng dụng có khả năng gây hại.
+safeb-blocked-harmful-page-learn-more = Xem thêm về chống lừa đảo và phần mềm độc hại của { -brand-short-name } tại support.mozilla.org.
+safeb-palm-notdeceptive =
+ .label = Đây không phải là một trang lừa đảo…
+ .accesskey = d
diff --git a/l10n-vi/browser/browser/sanitize.ftl b/l10n-vi/browser/browser/sanitize.ftl
new file mode 100644
index 0000000000..eb498d0c84
--- /dev/null
+++ b/l10n-vi/browser/browser/sanitize.ftl
@@ -0,0 +1,114 @@
+# 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/.
+
+sanitize-prefs =
+ .title = Thiết lập cho việc xóa trắng lịch sử
+ .style = width: 34em
+
+sanitize-prefs2 =
+ .title = Thiết lập cho việc xóa trắng lịch sử
+ .style = min-width: 34em
+
+sanitize-prefs-style =
+ .style = width: 17em
+
+dialog-title =
+ .title = Xóa các lịch sử gần đây
+ .style = width: 34em
+
+# When "Time range to clear" is set to "Everything", this message is used for the
+# title instead of dialog-title.
+dialog-title-everything =
+ .title = Xóa toàn bộ lịch sử
+ .style = width: 34em
+
+clear-data-settings-label = Khi đóng, { -brand-short-name } sẽ xóa tất cả một cách tự động
+
+## clear-time-duration-prefix is followed by a dropdown list, with
+## values localized using clear-time-duration-value-* messages.
+## clear-time-duration-suffix is left empty in English, but can be
+## used in other languages to change the structure of the message.
+##
+## This results in English:
+## Time range to clear: (Last Hour, Today, etc.)
+
+clear-time-duration-prefix =
+ .value = Khoảng thời gian để xóa:{ " " }
+ .accesskey = K
+
+clear-time-duration-value-last-hour =
+ .label = Một tiếng gần đây
+
+clear-time-duration-value-last-2-hours =
+ .label = Hai tiếng gần đây
+
+clear-time-duration-value-last-4-hours =
+ .label = Bốn tiếng gần đây
+
+clear-time-duration-value-today =
+ .label = Hôm nay
+
+clear-time-duration-value-everything =
+ .label = Mọi lúc
+
+clear-time-duration-suffix =
+ .value = { "" }
+
+## These strings are used as section comments and checkboxes
+## to select the items to remove
+
+history-section-label = Lịch sử
+
+item-history-and-downloads =
+ .label = Lịch sử duyệt web & tải xuống
+ .accesskey = d
+
+item-cookies =
+ .label = Cookie
+ .accesskey = C
+
+item-active-logins =
+ .label = Đăng nhập đang hoạt động
+ .accesskey = L
+
+item-cache =
+ .label = Bộ nhớ đệm
+ .accesskey = a
+
+item-form-search-history =
+ .label = Lịch sử biểu mẫu & tìm kiếm
+ .accesskey = b
+
+data-section-label = Dữ liệu
+
+item-site-settings =
+ .label = Cài đặt trang
+ .accesskey = S
+
+item-offline-apps =
+ .label = Dữ liệu trang web ngoại tuyến
+ .accesskey = O
+
+sanitize-everything-undo-warning = Thao tác này không thể hoàn tác được.
+
+window-close =
+ .key = w
+
+sanitize-button-ok =
+ .label = Xóa ngay
+
+# The label for the default button between the user clicking it and the window
+# closing. Indicates the items are being cleared.
+sanitize-button-clearing =
+ .label = Đang xóa
+
+# Warning that appears when "Time range to clear" is set to "Everything" in Clear
+# Recent History dialog, provided that the user has not modified the default set
+# of history items to clear.
+sanitize-everything-warning = Toàn bộ lịch sử sẽ bị xóa.
+
+# Warning that appears when "Time range to clear" is set to "Everything" in Clear
+# Recent History dialog, provided that the user has modified the default set of
+# history items to clear.
+sanitize-selected-warning = Tất cả các mục đã chọn sẽ bị xóa.
diff --git a/l10n-vi/browser/browser/screenshots.ftl b/l10n-vi/browser/browser/screenshots.ftl
new file mode 100644
index 0000000000..3ba0f04e46
--- /dev/null
+++ b/l10n-vi/browser/browser/screenshots.ftl
@@ -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/.
+
+screenshot-toolbarbutton =
+ .label = Ảnh chụp màn hình
+ .tooltiptext = Tạo một ảnh chụp màn hình
+screenshot-shortcut =
+ .key = S
+screenshots-instructions = Kéo hoặc nhấp vào trang để chọn một khu vực. Nhấn ESC để hủy bỏ.
+screenshots-cancel-button = Hủy bỏ
+screenshots-save-visible-button = Lưu phần nhìn thấy
+screenshots-save-page-button = Lưu toàn trang
+screenshots-download-button = Tải xuống
+screenshots-download-button-tooltip = Tải về ảnh chụp màn hình
+screenshots-copy-button = Sao chép
+screenshots-copy-button-tooltip = Sao chép ảnh chụp màn hình vào bộ nhớ tạm
+screenshots-download-button-title =
+ .title = Tải xuống ảnh chụp màn hình
+screenshots-copy-button-title =
+ .title = Sao chép ảnh chụp màn hình vào khay nhớ tạm
+screenshots-cancel-button-title =
+ .title = Hủy bỏ
+screenshots-retry-button-title =
+ .title = Thử chụp ảnh màn hình lại
+screenshots-meta-key =
+ { PLATFORM() ->
+ [macos] ⌘
+ *[other] Ctrl
+ }
+screenshots-notification-link-copied-title = Đã sao chép liên kết
+screenshots-notification-link-copied-details = Đã sao chép liên kết ảnh chụp màn hình của bạn vào bộ nhớ tạm. Nhấn { screenshots-meta-key }-V để dán.
+screenshots-notification-image-copied-title = Ảnh chụp màn hình đã được sao chép
+screenshots-notification-image-copied-details = Đã sao chép ảnh chụp màn hình của bạn vào bộ nhớ tạm. Nhấn { screenshots-meta-key }-V để dán.
+screenshots-request-error-title = Không sử dụng được.
+screenshots-request-error-details = Xin lỗi! Chúng tôi không thể sao lưu ảnh chụp của bạn. Vui lòng thử lại sau.
+screenshots-connection-error-title = Chúng tôi không thể kết nối với ảnh chụp màn hình của bạn.
+screenshots-connection-error-details = Vui lòng kiểm tra kết nối Internet của bạn. Nếu bạn có thể kết nối với Internet, có thể có sự cố tạm thời với dịch vụ { -screenshots-brand-name }.
+screenshots-login-error-details = Chúng tôi không thể lưu hình của bạn vì có sự cố với dịch vụ { -screenshots-brand-name }. Vui lòng thử lại sau.
+screenshots-unshootable-page-error-title = Chúng tôi không thể chụp màn hình trang này.
+screenshots-unshootable-page-error-details = Đây không phải là trang Web bình thường, bạn không thể chụp ảnh màn hình nó.
+screenshots-empty-selection-error-title = Vùng chọn của bạn quá nhỏ
+screenshots-private-window-error-title = { -screenshots-brand-name } đã bị tắt trong chế độ duyệt web riêng tư
+screenshots-private-window-error-details = Xin lỗi vì sự bất tiện này. Chúng tôi đang làm việc trên các tính năng này cho bản phát hành trong tương lai.
+screenshots-generic-error-title = Whoa! { -screenshots-brand-name } đã bị hoãn.
+screenshots-generic-error-details = Chúng tôi không chắc những gì vừa xảy ra. Thử lại hoặc chụp một trang khác?
+screenshots-too-large-error-title = Ảnh chụp màn hình của bạn đã bị cắt vì nó quá lớn
+screenshots-too-large-error-details = Thử chọn vùng có cạnh dài nhất nhỏ hơn 32.700 pixel hoặc tổng diện tích 124.900.000 pixel.
diff --git a/l10n-vi/browser/browser/screenshotsOverlay.ftl b/l10n-vi/browser/browser/screenshotsOverlay.ftl
new file mode 100644
index 0000000000..e0a848fd0e
--- /dev/null
+++ b/l10n-vi/browser/browser/screenshotsOverlay.ftl
@@ -0,0 +1,8 @@
+# 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/.
+
+screenshots-overlay-cancel-button = Hủy bỏ
+screenshots-overlay-instructions = Kéo hoặc nhấp vào trang để chọn một khu vực. Nhấn ESC để hủy bỏ.
+screenshots-overlay-download-button = Tải xuống
+screenshots-overlay-copy-button = Sao chép
diff --git a/l10n-vi/browser/browser/search.ftl b/l10n-vi/browser/browser/search.ftl
new file mode 100644
index 0000000000..961cb55469
--- /dev/null
+++ b/l10n-vi/browser/browser/search.ftl
@@ -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/.
+
+
+## These strings are used for errors when installing OpenSearch engines, e.g.
+## via "Add Search Engine" on the address bar or search bar.
+## Variables
+## $location-url (String) - the URL of the OpenSearch engine that was attempted to be installed.
+
+opensearch-error-duplicate-title = Lỗi cài đặt
+opensearch-error-duplicate-desc = { -brand-short-name } không thể cài đặt phần bổ trợ tìm kiếm từ "{ $location-url }" bởi vì một máy tìm kiếm cùng tên đã tồn tại.
+
+opensearch-error-format-title = Định dạng không hợp lệ
+opensearch-error-format-desc = { -brand-short-name } không thể cài đặt công cụ tìm kiếm từ: { $location-url }
+
+opensearch-error-download-title = Lỗi tải xuống
+opensearch-error-download-desc = { -brand-short-name } không thể tải xuống phần bổ trợ tìm kiếm từ: { $location-url }
+
+##
+
+searchbar-submit =
+ .tooltiptext = Gửi tìm kiếm
+
+# This string is displayed in the search box when the input field is empty
+searchbar-input =
+ .placeholder = Tìm kiếm
+
+searchbar-icon =
+ .tooltiptext = Tìm kiếm
+
+## Infobar shown when search engine is removed and replaced.
+## Variables
+## $oldEngine (String) - the search engine to be removed.
+## $newEngine (String) - the search engine to replace the removed search engine.
+
+removed-search-engine-message = Công cụ tìm kiếm mặc định của bạn đã được thay đổi. { $oldEngine } không còn khả dụng làm công cụ tìm kiếm mặc định trong { -brand-short-name }. { $newEngine } hiện là công cụ tìm kiếm mặc định của bạn. Để thay đổi sang một công cụ tìm kiếm mặc định khác, hãy chuyển đến cài đặt.
+remove-search-engine-button = OK
diff --git a/l10n-vi/browser/browser/setDesktopBackground.ftl b/l10n-vi/browser/browser/setDesktopBackground.ftl
new file mode 100644
index 0000000000..303e91da81
--- /dev/null
+++ b/l10n-vi/browser/browser/setDesktopBackground.ftl
@@ -0,0 +1,40 @@
+# 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/.
+
+set-desktop-background-window =
+ .title = Đặt làm ảnh nền máy tính
+
+set-desktop-background-accept =
+ .label = Đặt làm ảnh nền máy tính
+
+open-desktop-prefs =
+ .label = Mở tùy chọn máy tính
+
+set-background-preview-unavailable = Không có bản xem trước
+
+# This refers to the wallpaper "spanning" multiple monitors when the
+# user has more than one. Only some of the entire image will be on
+# each monitor. This should ideally match the wording in Windows' own
+# Desktop Background settings page.
+set-background-span =
+ .label = Mở rộng
+
+set-background-color = Màu sắc:
+
+set-background-position = Cách hiển thị:
+
+set-background-tile =
+ .label = Cạnh nhau
+
+set-background-center =
+ .label = Trung tâm
+
+set-background-stretch =
+ .label = Mở rộng
+
+set-background-fill =
+ .label = Lấp đầy
+
+set-background-fit =
+ .label = Vừa vặn
diff --git a/l10n-vi/browser/browser/sidebarMenu.ftl b/l10n-vi/browser/browser/sidebarMenu.ftl
new file mode 100644
index 0000000000..7f5738584b
--- /dev/null
+++ b/l10n-vi/browser/browser/sidebarMenu.ftl
@@ -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/.
+
+sidebar-menu-bookmarks =
+ .label = Dấu trang
+
+sidebar-menu-history =
+ .label = Lịch sử
+
+sidebar-menu-synced-tabs =
+ .label = Các thẻ đã đồng bộ
+
+sidebar-menu-close =
+ .label = Đóng thanh lề
+
+sidebar-close-button =
+ .tooltiptext = Đóng thanh lề
diff --git a/l10n-vi/browser/browser/sitePermissions.ftl b/l10n-vi/browser/browser/sitePermissions.ftl
new file mode 100644
index 0000000000..ee0b44463b
--- /dev/null
+++ b/l10n-vi/browser/browser/sitePermissions.ftl
@@ -0,0 +1,11 @@
+# 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/.
+
+# This string is used to display the option to open blocked popup(s) in site permission management panels.
+# Variables:
+# $count (String) - Number of blocked pop-ups
+site-permissions-open-blocked-popups =
+ { $count ->
+ *[other] Mở { $count } cửa sổ bật lên bị chặn…
+ }
diff --git a/l10n-vi/browser/browser/spotlight.ftl b/l10n-vi/browser/browser/spotlight.ftl
new file mode 100644
index 0000000000..229688b385
--- /dev/null
+++ b/l10n-vi/browser/browser/spotlight.ftl
@@ -0,0 +1,22 @@
+# 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/.
+
+# Dialog close button
+spotlight-dialog-close-button =
+ .title = Đóng
+ .aria-label = Đóng
+
+## Mobile download button strings
+
+spotlight-android-marketplace-button =
+ .title = Tải xuống trên Google Play
+spotlight-ios-marketplace-button =
+ .title = Tải xuống trên App Store
+
+## Firefox Focus promo message strings
+
+spotlight-focus-promo-title = Tải { -focus-brand-name }
+spotlight-focus-promo-subtitle = Quét mã QR để tải xuống.
+spotlight-focus-promo-qr-code =
+ .alt = Quét mã QR để tải { -focus-brand-name }
diff --git a/l10n-vi/browser/browser/sync.ftl b/l10n-vi/browser/browser/sync.ftl
new file mode 100644
index 0000000000..dbbcffdcf6
--- /dev/null
+++ b/l10n-vi/browser/browser/sync.ftl
@@ -0,0 +1,33 @@
+# 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/.
+
+fxa-toolbar-sync-syncing2 = Đang đồng bộ hóa…
+
+sync-disconnect-dialog-title2 = Ngắt kết nối?
+sync-disconnect-dialog-body = { -brand-product-name } sẽ ngừng đồng bộ hóa với tài khoản của bạn, nhưng sẽ không xóa mọi dữ liệu duyệt web của bạn trên thiết bị này.
+sync-disconnect-dialog-button = Ngắt kết nối
+
+fxa-signout-dialog2-title = Đăng xuất khỏi { -fxaccount-brand-name }?
+fxa-signout-dialog-body = Dữ liệu đã đồng bộ hóa sẽ vẫn còn trong tài khoản của bạn.
+fxa-signout-dialog2-button = Đăng xuất
+fxa-signout-dialog2-checkbox = Xóa dữ liệu khỏi thiết bị này (mật khẩu, lịch sử, dấu trang, v.v.)
+
+fxa-menu-sync-settings =
+ .label = Cài đặt đồng bộ hóa
+fxa-menu-turn-on-sync =
+ .value = Bật đồng bộ hóa
+fxa-menu-turn-on-sync-default = Bật đồng bộ hóa
+
+fxa-menu-connect-another-device =
+ .label = Kết nối thiết bị khác…
+
+# This is shown dynamically within "Send tab to device" in fxa menu.
+fxa-menu-send-tab-to-device-syncnotready =
+ .label = Đang đồng bộ các thiết bị…
+
+# This is shown within "Send tab to device" in fxa menu if account is not configured.
+fxa-menu-send-tab-to-device-description = Gửi một thẻ ngay lập tức đến bất kỳ thiết bị nào mà bạn đã đăng nhập.
+
+fxa-menu-sign-out =
+ .label = Đăng xuất…
diff --git a/l10n-vi/browser/browser/syncedTabs.ftl b/l10n-vi/browser/browser/syncedTabs.ftl
new file mode 100644
index 0000000000..433dd4c2cd
--- /dev/null
+++ b/l10n-vi/browser/browser/syncedTabs.ftl
@@ -0,0 +1,73 @@
+# 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/.
+
+synced-tabs-sidebar-title = Các thẻ đã đồng bộ
+synced-tabs-sidebar-noclients-subtitle = Muốn xem thẻ từ các thiết bị khác của bạn ở đây?
+synced-tabs-sidebar-intro = Xem danh sách các thẻ từ các thiết bị khác của bạn.
+synced-tabs-sidebar-unverified = Tài khoản của bạn cần được xác thực.
+synced-tabs-sidebar-notabs = Không có thẻ đang mở
+synced-tabs-sidebar-open-settings = Mở cài đặt đồng bộ hóa
+synced-tabs-sidebar-tabsnotsyncing = Bật đồng bộ thẻ để xem danh sách thẻ từ các thiết bị khác của bạn.
+synced-tabs-sidebar-connect-another-device = Kết nối thiết bị khác
+synced-tabs-sidebar-search =
+ .placeholder = Tìm các thẻ đã đồng bộ
+
+## Displayed in the Synced Tabs sidebar's context menu when right-clicking tabs
+## and/or devices in the list. The "Open" strings below should be translated
+## consistently with the equivalent strings for the bookmarks manager's context
+## menu. That menu is activated by right-clicking a bookmark in the Library
+## window. The bookmarks manager context's strings are located in places.ftl.
+
+synced-tabs-context-open =
+ .label = Mở
+ .accesskey = O
+synced-tabs-context-open-in-new-tab =
+ .label = Mở trong thẻ mới
+ .accesskey = w
+synced-tabs-context-open-in-new-window =
+ .label = Mở trong cửa sổ mới
+ .accesskey = N
+synced-tabs-context-open-in-new-private-window =
+ .label = Mở trong cửa sổ riêng tư mới
+ .accesskey = P
+synced-tabs-context-bookmark-single-tab =
+ .label = Đánh dấu thẻ này…
+ .accesskey = B
+synced-tabs-context-open-in-tab =
+ .label = Mở trong thẻ mới
+ .accesskey = w
+synced-tabs-context-open-in-container-tab =
+ .label = Mở trong thẻ ngăn chứa mới
+ .accesskey = i
+synced-tabs-context-open-in-window =
+ .label = Mở trong cửa sổ mới
+ .accesskey = N
+synced-tabs-context-open-in-private-window =
+ .label = Mở trong cửa sổ riêng tư mới
+ .accesskey = P
+
+##
+
+# Displayed in the Synced Tabs sidebar's context menu when right-clicking tabs
+# and/or devices in the list. This string is for a menuitem equivalent to one in
+# the tab context menu (activated by right-clicking a tab in the tabstrip). That
+# string is located in tabContextMenu.ftl. So, this string should be translated
+# consistently with the "Bookmark Tab…" string there.
+synced-tabs-context-bookmark =
+ .label = Đánh dấu thẻ
+ .accesskey = B
+synced-tabs-context-copy =
+ .label = Sao chép
+ .accesskey = C
+synced-tabs-context-open-all-in-tabs =
+ .label = Mở toàn bộ trong các thẻ mới
+ .accesskey = O
+synced-tabs-context-manage-devices =
+ .label = Quản lý các thiết bị…
+ .accesskey = D
+synced-tabs-context-sync-now =
+ .label = Đồng bộ ngay
+ .accesskey = S
+synced-tabs-fxa-sign-in = Đăng nhập vào đồng bộ hóa
+synced-tabs-turn-on-sync = Bật đồng bộ hóa
diff --git a/l10n-vi/browser/browser/tabContextMenu.ftl b/l10n-vi/browser/browser/tabContextMenu.ftl
new file mode 100644
index 0000000000..e4d7b6f5f5
--- /dev/null
+++ b/l10n-vi/browser/browser/tabContextMenu.ftl
@@ -0,0 +1,109 @@
+# 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/.
+
+tab-context-new-tab =
+ .label = Thẻ mới
+ .accesskey = w
+reload-tab =
+ .label = Tải lại thẻ
+ .accesskey = R
+select-all-tabs =
+ .label = Chọn tất cả các thẻ
+ .accesskey = S
+tab-context-play-tab =
+ .label = Phát âm thanh thẻ
+ .accesskey = l
+tab-context-play-tabs =
+ .label = Phát âm thanh các thẻ
+ .accesskey = y
+duplicate-tab =
+ .label = Nhân đôi thẻ
+ .accesskey = D
+duplicate-tabs =
+ .label = Nhân đôi các thẻ
+ .accesskey = D
+# The following string is displayed on a menuitem that will close the tabs from the start of the tabstrip to the currently targeted tab (excluding the currently targeted and any other selected tabs).
+# In left-to-right languages this should use "Left" and in right-to-left languages this should use "Right".
+close-tabs-to-the-start =
+ .label = Đóng các thẻ ở bên trái
+ .accesskey = I
+# The following string is displayed on a menuitem that will close the tabs from the end of the tabstrip to the currently targeted tab (excluding the currently targeted and any other selected tabs).
+# In left-to-right languages this should use "Right" and in right-to-left languages this should use "Left".
+close-tabs-to-the-end =
+ .label = Đóng các thẻ ở bên phải
+ .accesskey = i
+close-other-tabs =
+ .label = Đóng các thẻ khác
+ .accesskey = o
+reload-tabs =
+ .label = Tải lại các thẻ
+ .accesskey = R
+pin-tab =
+ .label = Ghim thẻ
+ .accesskey = P
+unpin-tab =
+ .label = Gỡ thẻ
+ .accesskey = b
+pin-selected-tabs =
+ .label = Ghim thẻ
+ .accesskey = P
+unpin-selected-tabs =
+ .label = Bỏ ghim thẻ
+ .accesskey = b
+bookmark-selected-tabs =
+ .label = Đánh dấu các thẻ…
+ .accesskey = k
+bookmark-tab =
+ .label = Đánh dấu thẻ
+ .accesskey = B
+tab-context-bookmark-tab =
+ .label = Đánh dấu thẻ…
+ .accesskey = B
+tab-context-open-in-new-container-tab =
+ .label = Mở liên kết trong thẻ ngăn chứa mới
+ .accesskey = e
+move-to-start =
+ .label = Di chuyển lên đầu
+ .accesskey = S
+move-to-end =
+ .label = Di chuyển xuống cuối
+ .accesskey = E
+move-to-new-window =
+ .label = Di chuyển sang cửa sổ mới
+ .accesskey = W
+tab-context-close-multiple-tabs =
+ .label = Đóng nhiều thẻ
+ .accesskey = M
+tab-context-share-url =
+ .label = Chia sẻ
+ .accesskey = h
+
+## Variables:
+## $tabCount (Number): the number of tabs that are affected by the action.
+
+tab-context-reopen-closed-tabs =
+ .label =
+ { $tabCount ->
+ [1] Mở lại thẻ đã đóng
+ *[other] Mở lại các thẻ đã đóng
+ }
+ .accesskey = o
+tab-context-close-n-tabs =
+ .label =
+ { $tabCount ->
+ [1] Đóng thẻ
+ *[other] Đóng { $tabCount } thẻ
+ }
+ .accesskey = C
+tab-context-move-tabs =
+ .label =
+ { $tabCount ->
+ [1] Di chuyển thẻ
+ *[other] Di chuyển các thẻ
+ }
+ .accesskey = v
+
+tab-context-send-tabs-to-device =
+ .label = Gửi { $tabCount } thẻ đến thiết bị
+ .accesskey = n
diff --git a/l10n-vi/browser/browser/tabbrowser.ftl b/l10n-vi/browser/browser/tabbrowser.ftl
new file mode 100644
index 0000000000..fd19ecd408
--- /dev/null
+++ b/l10n-vi/browser/browser/tabbrowser.ftl
@@ -0,0 +1,117 @@
+# 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/.
+
+tabbrowser-empty-tab-title = Thẻ mới
+tabbrowser-empty-private-tab-title = Thẻ riêng tư mới
+tabbrowser-menuitem-close-tab =
+ .label = Đóng thẻ
+tabbrowser-menuitem-close =
+ .label = Đóng
+# Displayed as a tooltip on container tabs
+# Variables:
+# $title (String): the title of the current tab.
+# $containerName (String): the name of the current container.
+tabbrowser-container-tab-title = { $title } - { $containerName }
+# Variables:
+# $title (String): the title of the current tab.
+tabbrowser-tab-tooltip =
+ .label = { $title }
+# Variables:
+# $tabCount (Number): The number of tabs that will be closed.
+tabbrowser-close-tabs-tooltip =
+ .label = Đóng { $tabCount } thẻ
+
+## Tooltips for tab audio control
+## Variables:
+## $tabCount (Number): The number of tabs that will be affected.
+
+# Variables:
+# $shortcut (String): The keyboard shortcut for "Mute tab".
+tabbrowser-mute-tab-audio-tooltip =
+ .label = Tắt tiếng { $tabCount } thẻ ({ $shortcut })
+# Variables:
+# $shortcut (String): The keyboard shortcut for "Unmute tab".
+tabbrowser-unmute-tab-audio-tooltip =
+ .label = Bật tiếng { $tabCount } thẻ ({ $shortcut })
+tabbrowser-mute-tab-audio-background-tooltip =
+ .label = Tắt tiếng { $tabCount } thẻ
+tabbrowser-unmute-tab-audio-background-tooltip =
+ .label = Bật tiếng { $tabCount } thẻ
+tabbrowser-unblock-tab-audio-tooltip =
+ .label = Phát âm thanh { $tabCount } thẻ
+
+## Confirmation dialog when closing a window with more than one tab open,
+## or when quitting when only one window is open.
+
+# The singular form is not considered since this string is used only for multiple tabs.
+# Variables:
+# $tabCount (Number): The number of tabs that will be closed.
+tabbrowser-confirm-close-tabs-title = Đóng { $tabCount } thẻ?
+tabbrowser-confirm-close-tabs-button = Đóng thẻ
+tabbrowser-confirm-close-tabs-checkbox = Xác nhận trước khi đóng nhiều thẻ
+
+## Confirmation dialog when quitting using the menu and multiple windows are open.
+
+# The forms for 0 or 1 items are not considered since this string is used only for
+# multiple windows.
+# Variables:
+# $windowCount (Number): The number of windows that will be closed.
+tabbrowser-confirm-close-windows-title = Đóng { $windowCount } cửa sổ?
+tabbrowser-confirm-close-windows-button =
+ { PLATFORM() ->
+ [windows] Đóng và thoát
+ *[other] Đóng và thoát
+ }
+
+## Confirmation dialog when quitting using the keyboard shortcut (Ctrl/Cmd+Q)
+## Windows does not show a prompt on quit when using the keyboard shortcut by default.
+
+tabbrowser-confirm-close-tabs-with-key-title = Đóng cửa sổ và thoát { -brand-short-name }?
+tabbrowser-confirm-close-tabs-with-key-button = Thoát { -brand-short-name }
+# Variables:
+# $quitKey (String): the text of the keyboard shortcut for quitting.
+tabbrowser-confirm-close-tabs-with-key-checkbox = Xác nhận trước khi thoát bằng { $quitKey }
+
+## Confirmation dialog when opening multiple tabs simultaneously
+
+tabbrowser-confirm-open-multiple-tabs-title = Xác nhận mở
+# Variables:
+# $tabCount (Number): The number of tabs that will be opened.
+tabbrowser-confirm-open-multiple-tabs-message =
+ { $tabCount ->
+ *[other] Bạn đang chuẩn bị mở { $tabCount } thẻ. Nó sẽ gây chậm { -brand-short-name } khi các trang web đang tải. Bạn có muốn tiếp tục?
+ }
+tabbrowser-confirm-open-multiple-tabs-button = Mở các thẻ
+tabbrowser-confirm-open-multiple-tabs-checkbox = Cảnh báo tôi khi mở nhiều thẻ có thể làm chậm { -brand-short-name }
+
+## Confirmation dialog for enabling caret browsing
+
+tabbrowser-confirm-caretbrowsing-title = Duyệt với con trỏ
+tabbrowser-confirm-caretbrowsing-message = Nhấn F7 để bật hoặc tắt chế độ duyệt với con trỏ. Chức năng này đặt một con trỏ có thể di chuyển được trên trang web, cho phép bạn chọn văn bản bằng bàn phím. Bạn có muốn bật chế độ này không?
+tabbrowser-confirm-caretbrowsing-checkbox = Không hiện lại hộp thoại này.
+
+##
+
+# Variables:
+# $domain (String): URL of the page that is trying to steal focus.
+tabbrowser-allow-dialogs-to-get-focus =
+ .label = Cho phép các thông báo như thế này từ { $domain } đưa bạn đến thẻ của họ
+tabbrowser-customizemode-tab-title = Tùy biến { -brand-short-name }
+
+## Context menu buttons, of which only one will be visible at a time
+
+tabbrowser-context-mute-tab =
+ .label = Tắt tiếng thẻ
+ .accesskey = M
+tabbrowser-context-unmute-tab =
+ .label = Bật tiếng thẻ
+ .accesskey = m
+# The accesskey should match the accesskey for tabbrowser-context-mute-tab
+tabbrowser-context-mute-selected-tabs =
+ .label = Tắt tiếng thẻ
+ .accesskey = M
+# The accesskey should match the accesskey for tabbrowser-context-unmute-tab
+tabbrowser-context-unmute-selected-tabs =
+ .label = Bỏ tắt tiếng thẻ
+ .accesskey = m
diff --git a/l10n-vi/browser/browser/textRecognition.ftl b/l10n-vi/browser/browser/textRecognition.ftl
new file mode 100644
index 0000000000..5a23eba488
--- /dev/null
+++ b/l10n-vi/browser/browser/textRecognition.ftl
@@ -0,0 +1,15 @@
+# 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/.
+
+
+## Text recognition works through a modal that presents the text that is found
+## in an image, and copies the results to the clipboard.
+
+text-recognition-modal-searching-title = Đang tìm kiếm văn bản từ hình ảnh…
+text-recognition-modal-results-title = Đã sao chép văn bản từ hình ảnh
+text-recognition-modal-no-results-title = Xin lỗi, chúng tôi không thể trích xuất bất kỳ văn bản nào. Thử một hình khác. Tìm hiểu thêm.
+text-recognition-modal-close-button = Đóng
+
+# The title of the the modal is only available to screen readers.
+text-recognition-modal-accessible-modal-title = Kết quả trích xuất văn bản
diff --git a/l10n-vi/browser/browser/toolbarContextMenu.ftl b/l10n-vi/browser/browser/toolbarContextMenu.ftl
new file mode 100644
index 0000000000..e41a1bb2d2
--- /dev/null
+++ b/l10n-vi/browser/browser/toolbarContextMenu.ftl
@@ -0,0 +1,82 @@
+# 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/.
+
+toolbar-context-menu-new-tab =
+ .label = Thẻ mới
+ .accesskey = w
+toolbar-context-menu-reload-selected-tab =
+ .label = Tải lại các thẻ đã chọn
+ .accesskey = R
+toolbar-context-menu-reload-selected-tabs =
+ .label = Tải lại các thẻ đã chọn
+ .accesskey = R
+toolbar-context-menu-bookmark-selected-tab =
+ .label = Đánh dấu các thẻ đã chọn…
+ .accesskey = T
+toolbar-context-menu-bookmark-selected-tabs =
+ .label = Đánh dấu các thẻ đã chọn…
+ .accesskey = T
+toolbar-context-menu-select-all-tabs =
+ .label = Chọn tất cả các thẻ
+ .accesskey = S
+toolbar-context-menu-reopen-closed-tabs =
+ .label =
+ { $tabCount ->
+ [1] Mở lại thẻ đã đóng
+ *[other] Mở lại các thẻ đã đóng
+ }
+ .accesskey = o
+toolbar-context-menu-manage-extension =
+ .label = Quản lí tiện ích
+ .accesskey = E
+toolbar-context-menu-remove-extension =
+ .label = Xóa tiện ích mở rộng
+ .accesskey = v
+# This label is used in the extensions toolbar buttons context menus,
+# a user can use this command to submit to Mozilla an abuse report
+# related to that extension. "Report" is a verb.
+toolbar-context-menu-report-extension =
+ .label = Báo cáo tiện ích mở rộng
+ .accesskey = o
+# Can appear on the same context menu as toolbar-context-menu-menu-bar-cmd
+# ("Menu Bar") and personalbarCmd ("Bookmarks Toolbar"), so they should
+# have different access keys.
+toolbar-context-menu-pin-to-overflow-menu =
+ .label = Ghim vào menu gợi ý trên thanh địa chỉ
+ .accesskey = P
+toolbar-context-menu-auto-hide-downloads-button-2 =
+ .label = Ẩn nút khi danh sách trống
+ .accesskey = H
+toolbar-context-menu-always-open-downloads-panel =
+ .label = Hiển thị bảng điều khiển khi bắt đầu tải xuống
+ .accesskey = S
+toolbar-context-menu-remove-from-toolbar =
+ .label = Xóa khỏi thanh công cụ
+ .accesskey = R
+toolbar-context-menu-view-customize-toolbar =
+ .label = Tùy biến…
+ .accesskey = C
+toolbar-context-menu-view-customize-toolbar-2 =
+ .label = Tùy biến thanh công cụ…
+ .accesskey = C
+# This is only ever shown when toolbar-context-menu-pin-to-overflow-menu
+# is hidden, so they can share access keys.
+toolbar-context-menu-pin-to-toolbar =
+ .label = Ghim vào thanh công cụ
+ .accesskey = P
+toolbar-context-menu-bookmarks-toolbar-always-show-2 =
+ .label = Luôn hiển thị
+ .accesskey = A
+toolbar-context-menu-bookmarks-toolbar-never-show-2 =
+ .label = Không bao giờ hiển thị
+ .accesskey = N
+toolbar-context-menu-bookmarks-toolbar-on-new-tab-2 =
+ .label = Chỉ hiển thị trong thẻ mới
+ .accesskey = O
+toolbar-context-menu-bookmarks-show-other-bookmarks =
+ .label = Hiển thị các dấu trang khác
+ .accesskey = h
+toolbar-context-menu-menu-bar-cmd =
+ .toolbarname = Thanh menu
+ .accesskey = M
diff --git a/l10n-vi/browser/browser/touchbar/touchbar.ftl b/l10n-vi/browser/browser/touchbar/touchbar.ftl
new file mode 100644
index 0000000000..6984342c39
--- /dev/null
+++ b/l10n-vi/browser/browser/touchbar/touchbar.ftl
@@ -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/.
+
+# Strings in this file are used to localize button titles displayed on the
+# MacBook Touch Bar.
+back = Quay lại
+forward = Tiến
+reload = Tải lại
+home = Trang chủ
+fullscreen = Toàn màn hình
+touchbar-fullscreen-exit = Thoát chế độ toàn màn hình
+find = Tìm
+new-tab = Thẻ mới
+add-bookmark = Thêm dấu trang
+reader-view = Chế độ đọc sách
+# Meant to match the string displayed in an empty URL bar.
+open-location = Tìm kiếm hoặc nhập địa chỉ
+share = Chia sẻ
+close-window = Đóng cửa sổ
+open-sidebar = Thanh lề
+
+# This string describes shortcuts for search.
+search-popover = Phím tắt tìm kiếm
+# Describes searches limited to a specific scope
+# (e.g. searching only in history).
+search-search-in = Tìm kiếm trong:
+
+## Various categories of shortcuts for search.
+
+search-bookmarks = Dấu trang
+search-history = Lịch sử
+search-opentabs = Thẻ đang mở
+search-tags = Thẻ
+search-titles = Tiêu đề
+
+##
+
diff --git a/l10n-vi/browser/browser/translationNotification.ftl b/l10n-vi/browser/browser/translationNotification.ftl
new file mode 100644
index 0000000000..8f96ab85f7
--- /dev/null
+++ b/l10n-vi/browser/browser/translationNotification.ftl
@@ -0,0 +1,74 @@
+# 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/.
+
+
+## These 2 strings are used to construct a sentence that contains a dropdown
+## showing the detected language of the current web page.
+## In en-US it looks like this:
+## This page is in [detected language] Translate this page?
+## "detected language" here is a language name coming from the
+## toolkit/intl/languageNames.ftl file; for some locales it may not be in
+## the correct grammar case to keep the same structure of the original
+## sentence.
+
+translation-notification-this-page-is-in =
+ .value = Trang này sử dụng tiếng
+translation-notification-translate-this-page =
+ .value = Dịch trang này?
+
+##
+
+translation-notification-translate-button =
+ .label = Dịch
+translation-notification-not-now-button =
+ .label = Không phải bây giờ
+translation-notification-translating-content =
+ .value = Đang dịch nội dung trang…
+
+## These 3 strings are used to construct a sentence that contains 2 dropdowns
+## showing the source and target language of a translated web page.
+## In en-US it looks like this:
+## This page has been translated from [from language] to [to language]
+## "from language" and "to language" here are language names coming from the
+## toolkit/intl/languageNames.ftl file; for some locales they may not be in
+## the correct grammar case to keep the same structure of the original
+## sentence.
+
+translation-notification-translated-from =
+ .value = Trang này đã được dịch từ tiếng
+translation-notification-translated-to =
+ .value = sang tiếng
+# This string (empty in en-US) is for locales that need to display some text
+# after the second drop down for the sentence to be grammatically correct.
+translation-notification-translated-to-suffix =
+ .value = { "" }
+
+##
+
+translation-notification-show-original-button =
+ .label = Xem bản gốc
+translation-notification-show-translation-button =
+ .label = Xem bản dịch
+translation-notification-error-translating =
+ .value = Có lỗi khi đang dịch trang này.
+translation-notification-try-again-button =
+ .label = Thử lại
+translation-notification-service-unavailable =
+ .value = Hiện tại không thể dịch được. Vui lòng thử lại sau.
+translation-notification-options-menu =
+ .label = Tùy chọn
+
+## The accesskey values used here should not clash with each other
+
+# Variables:
+# $langName (String): a language name coming from the toolkit/intl/languageNames.ftl file.
+translation-notification-options-never-for-language =
+ .label = Không bao giờ dịch { $langName }
+ .accesskey = N
+translation-notification-options-never-for-site =
+ .label = Không bao giờ dịch trang này
+ .accesskey = e
+translation-notification-options-preferences =
+ .label = Tùy chọn dịch
+ .accesskey = T
diff --git a/l10n-vi/browser/browser/unifiedExtensions.ftl b/l10n-vi/browser/browser/unifiedExtensions.ftl
new file mode 100644
index 0000000000..8b19a2d93e
--- /dev/null
+++ b/l10n-vi/browser/browser/unifiedExtensions.ftl
@@ -0,0 +1,34 @@
+# 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/.
+
+
+### These strings appear in the Unified Extensions panel.
+
+
+## Panel
+
+unified-extensions-header-title = Tiện ích mở rộng
+unified-extensions-manage-extensions =
+ .label = Quản lý tiện ích
+
+## An extension in the main list
+
+# Each extension in the unified extensions panel (list) has a secondary button
+# to open a context menu. This string is used for each of these buttons.
+# Variables:
+# $extensionName (String) - Name of the extension
+unified-extensions-item-open-menu =
+ .aria-label = Mở menu cho { $extensionName }
+unified-extensions-item-message-manage = Quản lý tiện ích
+
+## Extension's context menu
+
+unified-extensions-context-menu-pin-to-toolbar =
+ .label = Ghim vào thanh công cụ
+unified-extensions-context-menu-manage-extension =
+ .label = Quản lí tiện ích
+unified-extensions-context-menu-remove-extension =
+ .label = Xóa tiện ích
+unified-extensions-context-menu-report-extension =
+ .label = Báo cáo tiện ích
diff --git a/l10n-vi/browser/browser/webauthnDialog.ftl b/l10n-vi/browser/browser/webauthnDialog.ftl
new file mode 100644
index 0000000000..862b68f506
--- /dev/null
+++ b/l10n-vi/browser/browser/webauthnDialog.ftl
@@ -0,0 +1,12 @@
+# 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/.
+
+# Variables:
+# $retriesLeft (Number): number of tries left
+webauthn-pin-invalid-prompt =
+ { $retriesLeft ->
+ [0] Pin sai! Vui lòng nhập mã PIN chính xác cho thiết bị của bạn.
+ *[other] Pin sai! Vui lòng nhập mã PIN chính xác cho thiết bị của bạn. Bạn còn { $retriesLeft } lần thử.
+ }
+webauthn-pin-required-prompt = Vui lòng nhập mã PIN cho thiết bị của bạn.
diff --git a/l10n-vi/browser/browser/webrtcIndicator.ftl b/l10n-vi/browser/browser/webrtcIndicator.ftl
new file mode 100644
index 0000000000..d7d48edd65
--- /dev/null
+++ b/l10n-vi/browser/browser/webrtcIndicator.ftl
@@ -0,0 +1,190 @@
+# 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/.
+
+
+# Note: This is currently placed under browser/base/content so that we can
+# get the strings to appear without having our localization community need
+# to go through and translate everything. Once these strings are ready for
+# translation, we'll move it to the locales folder.
+
+
+## These strings are used so that the window has a title in tools that
+## enumerate/look for window titles. It is not normally visible anywhere.
+
+webrtc-indicator-title = { -brand-short-name } - Chỉ số chia sẻ
+webrtc-indicator-window =
+ .title = { -brand-short-name } - Chỉ số chia sẻ
+
+## Used as list items in sharing menu
+
+webrtc-item-camera = camera
+webrtc-item-microphone = micro
+webrtc-item-audio-capture = âm thanh trên thẻ
+webrtc-item-application = ứng dụng
+webrtc-item-screen = màn hình
+webrtc-item-window = cửa sổ
+webrtc-item-browser = thẻ
+
+##
+
+# This is used for the website origin for the sharing menu if no readable origin could be deduced from the URL.
+webrtc-sharing-menuitem-unknown-host = Không rõ nguồn gốc
+# Variables:
+# $origin (String): The website origin (e.g. www.mozilla.org)
+# $itemList (String): A formatted list of items (e.g. "camera, microphone and tab audio")
+webrtc-sharing-menuitem =
+ .label = { $origin } ({ $itemList })
+webrtc-sharing-menu =
+ .label = Thiết bị chia sẻ thẻ
+ .accesskey = d
+webrtc-sharing-window = Bạn đang chia sẻ một cửa sổ ứng dụng khác.
+webrtc-sharing-browser-window = Bạn đang chia sẻ { -brand-short-name }.
+webrtc-sharing-screen = Bạn đang chia sẻ toàn bộ màn hình của bạn.
+webrtc-stop-sharing-button = Ngừng chia sẻ
+webrtc-microphone-unmuted =
+ .title = Tắt micrô
+webrtc-microphone-muted =
+ .title = Bật micrô
+webrtc-camera-unmuted =
+ .title = Tắt máy ảnh
+webrtc-camera-muted =
+ .title = Bật máy ảnh
+webrtc-minimize =
+ .title = Giảm thiểu chỉ số
+
+## These strings will display as a tooltip on supported systems where we show
+## device sharing state in the OS notification area. We do not use these strings
+## on macOS, as global menu bar items do not have native tooltips.
+
+webrtc-camera-system-menu =
+ .label = Bạn đang chia sẻ máy ảnh của mình. Nhấp để kiểm soát việc chia sẻ.
+webrtc-microphone-system-menu =
+ .label = Bạn đang chia sẻ micrô của mình. Nhấp để kiểm soát việc chia sẻ.
+webrtc-screen-system-menu =
+ .label = Bạn đang chia sẻ một cửa sổ hoặc một màn hình. Nhấp để kiểm soát việc chia sẻ.
+
+## Tooltips used by the legacy global sharing indicator
+
+webrtc-indicator-sharing-camera-and-microphone =
+ .tooltiptext = Bạn đang chia sẻ máy ảnh và micro. Nhấn vào đây để kiểm soát những gì được chia sẻ.
+webrtc-indicator-sharing-camera =
+ .tooltiptext = Bạn đang chia sẻ máy ảnh. Nhấn vào đây để kiểm soát những gì được chia sẻ.
+webrtc-indicator-sharing-microphone =
+ .tooltiptext = Bạn đang chia sẻ micro. Nhấn vào đây để kiểm soát những gì được chia sẻ.
+webrtc-indicator-sharing-application =
+ .tooltiptext = Bạn đang chia sẻ một ứng dụng. Nhấn vào đây để kiểm soát những gì được chia sẻ.
+webrtc-indicator-sharing-screen =
+ .tooltiptext = Bạn đang chia sẻ màn hình. Nhấn vào đây để kiểm soát những gì bạn chia sẻ.
+webrtc-indicator-sharing-window =
+ .tooltiptext = Bạn đang chia sẻ một cửa sổ. Nhấn vào đây để kiểm soát những gì bạn chia sẻ.
+webrtc-indicator-sharing-browser =
+ .tooltiptext = Bạn đang chia sẻ một thẻ. Nhấn vào đây để kiểm soát những gì bạn chia sẻ.
+
+## These strings are only used on Mac for menus attached to icons
+## near the clock on the mac menubar.
+## Variables:
+## $streamTitle (String): the title of the tab using the share.
+## $tabCount (Number): the title of the tab using the share.
+
+webrtc-indicator-menuitem-control-sharing =
+ .label = Kiểm soát chia sẻ
+webrtc-indicator-menuitem-control-sharing-on =
+ .label = Kiểm soát chia sẻ với "{ $streamTitle }"
+webrtc-indicator-menuitem-sharing-camera-with =
+ .label = Chia sẻ máy ảnh với “{ $streamTitle }”
+webrtc-indicator-menuitem-sharing-camera-with-n-tabs =
+ .label = Đang chia sẻ máy ảnh với { $tabCount } thẻ
+webrtc-indicator-menuitem-sharing-microphone-with =
+ .label = Chia sẻ micrô với "{ $streamTitle }"
+webrtc-indicator-menuitem-sharing-microphone-with-n-tabs =
+ .label = Đang chia sẻ micro với { $tabCount } thẻ
+webrtc-indicator-menuitem-sharing-application-with =
+ .label = Chia sẻ một ứng dụng với "{ $streamTitle }"
+webrtc-indicator-menuitem-sharing-application-with-n-tabs =
+ .label = Đang chia sẻ ứng dụng với { $tabCount } thẻ
+webrtc-indicator-menuitem-sharing-screen-with =
+ .label = Chia sẻ màn hình với "{ $streamTitle }"
+webrtc-indicator-menuitem-sharing-screen-with-n-tabs =
+ .label = Đang chia sẻ màn hình với { $tabCount } thẻ
+webrtc-indicator-menuitem-sharing-window-with =
+ .label = Chia sẻ một cửa sổ với "{ $streamTitle }"
+webrtc-indicator-menuitem-sharing-window-with-n-tabs =
+ .label = Đang chia sẻ cửa sổ với { $tabCount } thẻ
+webrtc-indicator-menuitem-sharing-browser-with =
+ .label = Chia sẻ một thẻ với “{ $streamTitle }”
+# This message is shown when the contents of a tab is shared during a WebRTC
+# session, which currently is only possible with Loop/Hello.
+webrtc-indicator-menuitem-sharing-browser-with-n-tabs =
+ .label = Đang chia sẻ các thẻ với { $tabCount } thẻ
+
+## Variables:
+## $origin (String): the website origin (e.g. www.mozilla.org).
+
+webrtc-allow-share-audio-capture = Cho phép { $origin } nghe âm thanh của thẻ này?
+webrtc-allow-share-camera = Cho phép { $origin } sử dụng máy ảnh của bạn?
+webrtc-allow-share-microphone = Cho phép { $origin } sử dụng micrô của bạn?
+webrtc-allow-share-screen = Cho phép { $origin } xem màn hình của bạn?
+# "Speakers" is used in a general sense that might include headphones or
+# another audio output connection.
+webrtc-allow-share-speaker = Cho phép { $origin } sử dụng các loa khác?
+webrtc-allow-share-camera-and-microphone = Cho phép { $origin } sử dụng máy ảnh và micrô của bạn?
+webrtc-allow-share-camera-and-audio-capture = Cho phép { $origin } sử dụng máy ảnh của bạn và nghe âm thanh của thẻ này?
+webrtc-allow-share-screen-and-microphone = Cho phép { $origin } sử dụng micrô của bạn và xem màn hình của bạn?
+webrtc-allow-share-screen-and-audio-capture = Cho phép { $origin } nghe âm thanh của thẻ này và xem màn hình của bạn?
+
+## Variables:
+## $origin (String): the first party origin.
+## $thirdParty (String): the third party origin.
+
+webrtc-allow-share-audio-capture-unsafe-delegation = Cho phép { $origin } cấp quyền cho { $thirdParty } nghe âm thanh của thẻ này?
+webrtc-allow-share-camera-unsafe-delegation = Cho phép { $origin } cấp cho { $thirdParty } quyền truy cập vào máy ảnh của bạn?
+webrtc-allow-share-microphone-unsafe-delegations = Cho phép { $origin } cấp cho { $thirdParty } quyền truy cập vào micrô của bạn?
+webrtc-allow-share-microphone-unsafe-delegation = Cho phép { $origin } cấp cho { $thirdParty } quyền truy cập vào micrô của bạn?
+webrtc-allow-share-screen-unsafe-delegation = Cho phép { $origin } cấp quyền cho { $thirdParty } xem màn hình của bạn?
+# "Speakers" is used in a general sense that might include headphones or
+# another audio output connection.
+webrtc-allow-share-speaker-unsafe-delegation = Cho phép { $origin } cấp cho { $thirdParty } quyền truy cập vào các loa khác?
+webrtc-allow-share-camera-and-microphone-unsafe-delegation = Cho phép { $origin } cấp cho { $thirdParty } quyền truy cập vào máy ảnh và micrô của bạn?
+webrtc-allow-share-camera-and-audio-capture-unsafe-delegation = Cho phép { $origin } cấp cho { $thirdParty } quyền truy cập vào máy ảnh của bạn và nghe âm thanh của thẻ này?
+webrtc-allow-share-screen-and-microphone-unsafe-delegation = Cho phép { $origin } cấp cho { $thirdParty } quyền truy cập vào micrô và xem màn hình của bạn?
+webrtc-allow-share-screen-and-audio-capture-unsafe-delegation = Cho phép { $origin } cấp quyền cho { $thirdParty } nghe âm thanh của thẻ này và xem màn hình của bạn?
+
+##
+
+webrtc-share-screen-warning = Chỉ chia sẻ màn hình với các trang web mà bạn tin tưởng. Chia sẻ có thể cho phép các trang web lừa đảo duyệt web như bạn và lấy cắp dữ liệu cá nhân của bạn.
+webrtc-share-browser-warning = Chỉ chia sẻ { -brand-short-name } với các trang web mà bạn tin tưởng. Chia sẻ có thể cho phép các trang web lừa đảo duyệt web như bạn và lấy cắp dữ liệu cá nhân của bạn.
+webrtc-share-screen-learn-more = Tìm hiểu thêm
+webrtc-pick-window-or-screen = Chọn cửa sổ hoặc màn hình
+webrtc-share-entire-screen = Toàn bộ màn hình
+webrtc-share-pipe-wire-portal = Sử dụng cài đặt của hệ điều hành
+# Variables:
+# $monitorIndex (String): screen number (digits 1, 2, etc).
+webrtc-share-monitor = Màn hình { $monitorIndex }
+# Variables:
+# $windowCount (Number): the number of windows currently displayed by the application.
+# $appName (String): the name of the application.
+webrtc-share-application = { $appName } ({ $windowCount } cửa sổ)
+
+## These buttons are the possible answers to the various prompts in the "webrtc-allow-share-*" strings.
+
+webrtc-action-allow =
+ .label = Cho phép
+ .accesskey = A
+webrtc-action-block =
+ .label = Chặn
+ .accesskey = B
+webrtc-action-always-block =
+ .label = Luôn chặn
+ .accesskey = w
+webrtc-action-not-now =
+ .label = Không phải bây giờ
+ .accesskey = N
+
+##
+
+webrtc-remember-allow-checkbox = Ghi nhớ quyết định này
+webrtc-mute-notifications-checkbox = Ẩn thông báo trang web khi chia sẻ
+webrtc-reason-for-no-permanent-allow-screen = { -brand-short-name } có thể vĩnh viễn không cho phép quyền truy cập vào màn hình của bạn.
+webrtc-reason-for-no-permanent-allow-audio = { -brand-short-name } không thể cho phép vĩnh viễn quyền truy cập vào phần âm thanh của thẻ mà không cần yêu cầu thẻ đó chia sẻ.
+webrtc-reason-for-no-permanent-allow-insecure = Kết nối của bạn đến website này không an toàn. Để bảo vệ bạn, { -brand-short-name } sẽ chỉ cho phép truy cập vào trang này trong phiên hiện tại.
diff --git a/l10n-vi/browser/chrome/browser/accounts.properties b/l10n-vi/browser/chrome/browser/accounts.properties
new file mode 100644
index 0000000000..08d2bd4c0a
--- /dev/null
+++ b/l10n-vi/browser/chrome/browser/accounts.properties
@@ -0,0 +1,112 @@
+# 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 (reconnectDescription) - %S = Email address of user's Firefox Account
+reconnectDescription = Tái kết nối %S
+
+# LOCALIZATION NOTE (verifyDescription) - %S = Email address of user's Firefox Account
+verifyDescription = Xác minh %S
+
+# These strings are shown in a desktop notification after the
+# user requests we resend a verification email.
+verificationSentTitle = Tin nhắn xác thực đã được gửi
+# LOCALIZATION NOTE (verificationSentBody) - %S = Email address of user's Firefox Account
+verificationSentBody = Một liên kết xác thực đã được gửi tới %S
+verificationNotSentTitle = Không thể gửi xác thực
+verificationNotSentBody = Chúng tôi không thể gửi thư xác thực vào thời điểm này, xin thử lại sau.
+
+# LOCALIZATION NOTE (deviceConnDisconnTitle) - the title shown in a notification
+# when either this device or another device has connected to, or disconnected
+# from, a Firefox Account.
+deviceConnDisconnTitle = Tài khoản Firefox
+
+# LOCALIZATION NOTE (otherDeviceConnectedBody, otherDeviceConnectedBody.noDeviceName)
+# These strings are used in a notification shown when a new device joins the
+# Firefox account.
+# %S is the name of the new device; otherDeviceConnectedBody.noDeviceName is shown
+# instead of otherDeviceConnectedBody when the name is not known.
+otherDeviceConnectedBody = Máy tính này hiện được kết nối với %S.
+otherDeviceConnectedBody.noDeviceName = Máy tính này hiện được kết nối với một thiết bị mới.
+
+# LOCALIZATION NOTE (thisDeviceConnectedBody) - used in a notification shown
+# after a Firefox Account is connected to the current device.
+thisDeviceConnectedBody = Bạn đã đăng nhập thành công
+
+# LOCALIZATION NOTE (thisDeviceDisconnectedBody) - used in a notification shown
+# after the Firefox Account was disconnected remotely.
+thisDeviceDisconnectedBody = Máy tính này đã bị ngắt kết nối.
+
+# LOCALIZATION NOTE (sendToAllDevices.menuitem)
+# Displayed in the Send Tab/Page/Link to Device context menu when right clicking a tab, a page or a link.
+sendToAllDevices.menuitem = Gửi tới tất cả các thiết bị
+
+# LOCALIZATION NOTE (manageDevices.menuitem)
+# Displayed in the Send Tab/Page/Link to Device context menu when right clicking a tab, a page or a link.
+manageDevices.menuitem = Quản lý thiết bị…
+
+# LOCALIZATION NOTE (sendTabToDevice.unconfigured, sendTabToDevice.unconfigured.label2)
+# Displayed in the Send Tabs context menu when right clicking a tab, a page or a link
+# and the Sync account is unconfigured. Redirects to a marketing page.
+sendTabToDevice.unconfigured.label2 = Không đăng nhập
+sendTabToDevice.unconfigured = Tìm hiểu thêm về việc gửi các thẻ…
+
+# LOCALIZATION NOTE (sendTabToDevice.signintofxa)
+# Displayed in the Send Tabs context menu and the page action panel when FxA is not
+# configured. Allows users to immediately sign into FxA via the preferences.
+# %S is replaced by brandProductName.
+sendTabToDevice.signintofxa = Đăng nhập vào %S…
+
+# LOCALIZATION NOTE (sendTabToDevice.singledevice, sendTabToDevice.connectdevice,
+# sendTabToDevice.singledevice.status)
+# Displayed in the Send Tabs context menu when right clicking a tab, a page or a link
+# and the Sync account has only 1 device. The sendTabToDevice.singledevice link
+# redirects to a marketing page, the sendTabToDevice.connectdevice redirects
+# to an FxAccounts page that tells to you to connect another device.
+sendTabToDevice.singledevice.status = Không có thiết bị nào được kết nối
+sendTabToDevice.singledevice = Tìm hiểu thêm về việc gửi các thẻ…
+sendTabToDevice.connectdevice = Kết nối thiết bị khác…
+
+# LOCALIZATION NOTE (sendTabToDevice.verify, sendTabToDevice.verify.status)
+# Displayed in the Send Tabs context menu when right clicking a tab, a page or a link
+# and the Sync account is unverified. Redirects to the Sync preferences page.
+sendTabToDevice.verify.status = Tài khoản chưa được xác thực
+sendTabToDevice.verify = Xác minh tài khoản của bạn…
+
+# LOCALIZATION NOTE (tabArrivingNotification.title, tabArrivingNotificationWithDevice.title,
+# multipleTabsArrivingNotification.title, unnamedTabsArrivingNotification2.body,
+# unnamedTabsArrivingNotificationMultiple2.body, unnamedTabsArrivingNotificationNoDevice.body,
+# singleTabArrivingWithTruncatedURL.body)
+# These strings are used in a notification shown when we're opening tab(s) another device sent us to display.
+
+# LOCALIZATION NOTE (tabArrivingNotification.title, tabArrivingNotificationWithDevice.title)
+# The body for these is the URL of the tab received
+tabArrivingNotification.title = Thẻ đã nhận
+# LOCALIZATION NOTE (tabArrivingNotificationWithDevice.title) %S is the device name
+tabArrivingNotificationWithDevice.title = Thẻ từ %S
+
+multipleTabsArrivingNotification.title = Thẻ đã nhận
+# LOCALIZATION NOTE (unnamedTabsArrivingNotification2.body):
+# Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is the number of tabs received and #2 is the device name.
+unnamedTabsArrivingNotification2.body = #1 thẻ đã tới từ #2
+# LOCALIZATION NOTE (unnamedTabsArrivingNotificationMultiple2.body):
+# Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is the number of tabs received.
+unnamedTabsArrivingNotificationMultiple2.body = #1 đã tới từ thiết bị đã kết nối của bạn
+
+# LOCALIZATION NOTE (unnamedTabsArrivingNotificationNoDevice.body):
+# Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is the number of tabs received
+# This version is used when we don't know any device names.
+unnamedTabsArrivingNotificationNoDevice.body = #1 thẻ đã đến
+
+# LOCALIZATION NOTE (singleTabArrivingWithTruncatedURL.body):
+# Used when a tab from a remote device arrives but the URL must be truncated.
+# Should display the URL with an indication that it's benen truncated.
+# %S is the portion of the URL that remains after truncation.
+singleTabArrivingWithTruncatedURL.body = %S…
+
diff --git a/l10n-vi/browser/chrome/browser/browser.properties b/l10n-vi/browser/chrome/browser/browser.properties
new file mode 100644
index 0000000000..8df4843441
--- /dev/null
+++ b/l10n-vi/browser/chrome/browser/browser.properties
@@ -0,0 +1,1064 @@
+# 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/.
+
+nv_timeout=Hết thời gian chờ
+openFile=Mở tập tin
+
+droponhometitle=Đặt làm trang chủ
+droponhomemsg=Bạn có muốn đặt trang này làm trang chủ mới của mình không?
+droponhomemsgMultiple=Bạn có muốn đặt các trang này làm trang chủ mới của mình không?
+
+# context menu strings
+
+# LOCALIZATION NOTE (contextMenuSearch): %1$S is the search engine,
+# %2$S is the selection string.
+contextMenuSearch=Tìm %1$S cho “%2$S”
+contextMenuSearch.accesskey=S
+contextMenuPrivateSearch=Tìm kiếm trong cửa sổ riêng tư
+contextMenuPrivateSearch.accesskey=h
+# LOCALIZATION NOTE (contextMenuPrivateSearchOtherEngine): %S is the search
+# engine name as set for Private Browsing mode. This label is only used when
+# this engine is different from the default engine name used in normal mode.
+contextMenuPrivateSearchOtherEngine=Tìm kiếm với %S trong cửa sổ riêng tư
+contextMenuPrivateSearchOtherEngine.accesskey=h
+
+# bookmark dialog strings
+
+bookmarkAllTabsDefault=[Tên thư mục]
+
+xpinstallPromptMessage=Trang này muốn cài đặt phần mềm lên máy tính của bạn và đã bị %S chặn lại.
+# LOCALIZATION NOTE (xpinstallPromptMessage.header)
+# The string contains the hostname of the site the add-on is being installed from.
+xpinstallPromptMessage.header=Cho phép %S cài đặt tiện ích mở rộng?
+xpinstallPromptMessage.message=Bạn đang cố gắng cài đặt tiện ích mở rộng từ %S. Hãy chắc chắn rằng bạn tin tưởng trang web này trước khi tiếp tục.
+xpinstallPromptMessage.header.unknown=Cho phép một trang không xác định cài đặt một tiện ích?
+xpinstallPromptMessage.message.unknown=Bạn đang cố gắng cài đặt tiện ích từ một trang không xác định. Hãy chắc chắn rằng bạn tin tưởng trang này trước khi tiếp tục.
+xpinstallPromptMessage.learnMore=Tìm hiểu thêm về cách cài đặt tiện ích một cách an toàn
+xpinstallPromptMessage.dontAllow=Không cho phép
+xpinstallPromptMessage.dontAllow.accesskey=D
+xpinstallPromptMessage.neverAllow=Không bao giờ cho phép
+xpinstallPromptMessage.neverAllow.accesskey=N
+# LOCALIZATION NOTE (xpinstallPromptMessage.neverAllowAndReport)
+# Long text in this context make the dropdown menu extend awkwardly to the left, avoid
+# a localization that's significantly longer than the English version.
+xpinstallPromptMessage.neverAllowAndReport=Báo cáo trang web đáng ngờ
+xpinstallPromptMessage.neverAllowAndReport.accesskey=R
+# LOCALIZATION NOTE (sitePermissionInstallFirstPrompt.header)
+# This message is shown when a SitePermissionsAddon install is triggered, i.e. when the
+# website calls sensitive APIs (e.g. navigator.requestMIDIAccess).
+sitePermissionInstallFirstPrompt.header=Trang web này đang yêu cầu quyền truy cập vào thiết bị của bạn. Có thể kích hoạt quyền truy cập thiết bị bằng cách cài đặt tiện ích mở rộng.
+# LOCALIZATION NOTE (sitePermissionInstallFirstPrompt.message)
+# This message is shown when a SitePermissionsAddon install is triggered, i.e. when the
+# website calls sensitive APIs (e.g. navigator.requestMIDIAccess).
+sitePermissionInstallFirstPrompt.message=Tiện ích này có thể được sử dụng để đánh cắp dữ liệu hoặc tấn công máy tính của bạn. Chỉ tiếp tục nếu bạn tin tưởng trang web này.
+
+# Accessibility Note:
+# Be sure you do not choose an accesskey that is used elsewhere in the active context (e.g. main menu bar, submenu of the warning popup button)
+# See https://website-archive.mozilla.org/www.mozilla.org/access/access/keyboard/ for details
+xpinstallPromptMessage.install=Tiếp tục cài đặt
+xpinstallPromptMessage.install.accesskey=C
+
+xpinstallDisabledMessageLocked=Quản trị hệ thống của bạn đã vô hiệu hóa cài đặt phần mềm.
+xpinstallDisabledMessage=Hiện tại việc cài đặt phần mềm đã bị vô hiệu hóa. Hãy nhấn Bật rồi thử lại.
+xpinstallDisabledButton=Kích hoạt
+xpinstallDisabledButton.accesskey=n
+
+# LOCALIZATION NOTE (addonInstallBlockedByPolicy)
+# This message is shown when the installation of an add-on is blocked by
+# enterprise policy. %1$S is replaced by the name of the add-on.
+# %2$S is replaced by the ID of add-on. %3$S is a custom message that
+# the administration can add to the message.
+addonInstallBlockedByPolicy=%1$S (%2$S) bị chặn bởi quản trị viên hệ thống của bạn.%3$S
+# LOCALIZATION NOTE (addonDomainBlockedByPolicy)
+# This message is shown when the installation of add-ons from a domain
+# is blocked by enterprise policy.
+addonDomainBlockedByPolicy=Quản trị viên hệ thống của bạn đã ngăn trang web này yêu cầu bạn cài đặt phần mềm trên máy tính của bạn.
+addonInstallFullScreenBlocked=Cài đặt tiện ích không được phép trong khi ở hoặc trước khi vào chế độ toàn màn hình.
+
+# LOCALIZATION NOTE (webextPerms.header,webextPerms.headerWithPerms,webextPerms.headerUnsigned,webextPerms.headerUnsignedWithPerms)
+# This string is used as a header in the webextension permissions dialog,
+# %S is replaced with the localized name of the extension being installed.
+# See https://bug1308309.bmoattachments.org/attachment.cgi?id=8814612
+# for an example of the full dialog.
+# Note, this string will be used as raw markup. Avoid characters like <, >, &
+webextPerms.header=Thêm %S?
+webextPerms.headerWithPerms=Thêm %S? Tiện ích mở rộng này sẽ có quyền:
+webextPerms.headerUnsigned=Thêm %S? Tiện ích mở rộng này chưa được xác minh. Các tiện ích mở rộng độc hại có thể lấy cắp thông tin cá nhân của bạn hoặc xâm phạm máy tính của bạn. Chỉ thêm nó nếu bạn tin tưởng.
+webextPerms.headerUnsignedWithPerms=Thêm %S? Tiện ích mở rộng này chưa được xác minh. Các tiện ích mở rộng độc hại có thể lấy cắp thông tin cá nhân của bạn hoặc xâm phạm máy tính của bạn. Chỉ thêm nó nếu bạn tin tưởng. Tiện ích mở rộng này sẽ có quyền:
+
+webextPerms.learnMore2=Tìm hiểu thêm
+webextPerms.add.label=Thêm
+webextPerms.add.accessKey=A
+webextPerms.cancel.label=Hủy bỏ
+webextPerms.cancel.accessKey=C
+
+# LOCALIZATION NOTE (webextPerms.sideloadMenuItem)
+# %1$S will be replaced with the localized name of the sideloaded add-on.
+# %2$S will be replace with the name of the application (e.g., Firefox, Nightly)
+webextPerms.sideloadMenuItem=%1$S đã thêm vào %2$S
+
+# LOCALIZATION NOTE (webextPerms.sideloadHeader)
+# This string is used as a header in the webextension permissions dialog
+# when the extension is side-loaded.
+# %S is replaced with the localized name of the extension being installed.
+# Note, this string will be used as raw markup. Avoid characters like <, >, &
+webextPerms.sideloadHeader=%S được thêm vào
+webextPerms.sideloadText2=Một chương trình khác trong máy tính của bạn đã cài đặt một tiện ích mà có thể gây ảnh hưởng đến trình duyệt của bạn. Vui lòng xem lại những quyền hạn mà tiện ích này yêu cầu và chọn kích hoạt hoặc hủy bỏ (để nó bị vô hiệu hóa).
+webextPerms.sideloadTextNoPerms=Một chương trình khác trong máy tính của bạn đã cài đặt một tiện ích mà có thể gây ảnh hưởng đến trình duyệt của bạn. Vui lòng chọn kích hoạt hoặc hủy bỏ (để nó bị vô hiệu hóa).
+
+webextPerms.sideloadEnable.label=Kích hoạt
+webextPerms.sideloadEnable.accessKey=E
+webextPerms.sideloadCancel.label=Hủy bỏ
+webextPerms.sideloadCancel.accessKey=C
+
+# LOCALIZATION NOTE (webextPerms.updateMenuItem)
+# %S will be replaced with the localized name of the extension which
+# has been updated.
+webextPerms.updateMenuItem=%S yêu cầu quyền mới
+
+# LOCALIZATION NOTE (webextPerms.updateText)
+# %S is replaced with the localized name of the updated extension.
+# Note, this string will be used as raw markup. Avoid characters like <, >, &
+webextPerms.updateText2=%S đã được cập nhật. Bạn phải phê duyệt các quyền mới trước khi phiên bản cập nhật sẽ cài đặt. Chọn “Hủy bỏ” sẽ duy trì phiên bản tiện ích mở rộng hiện tại của bạn. Tiện ích mở rộng này sẽ có quyền:
+
+webextPerms.updateAccept.label=Cập nhật
+webextPerms.updateAccept.accessKey=U
+
+# LOCALIZATION NOTE (webextPerms.optionalPermsHeader)
+# %S is replace with the localized name of the extension requested new
+# permissions.
+# Note, this string will be used as raw markup. Avoid characters like <, >, &
+webextPerms.optionalPermsHeader=%S yêu cầu thêm các quyền.
+webextPerms.optionalPermsListIntro=Tiện ích này muốn:
+webextPerms.optionalPermsAllow.label=Cho phép
+webextPerms.optionalPermsAllow.accessKey=A
+webextPerms.optionalPermsDeny.label=Từ chối
+webextPerms.optionalPermsDeny.accessKey=D
+
+webextPerms.description.bookmarks=Xem và chỉnh sửa dấu trang
+webextPerms.description.browserSettings=Đọc và chỉnh sửa cài đặt trình duyệt
+webextPerms.description.browsingData=Xóa lịch sử duyệt web, cookie và dữ liệu liên quan
+webextPerms.description.clipboardRead=Nhận dữ liệu từ bộ nhớ tạm
+webextPerms.description.clipboardWrite=Nhập dữ liệu vào bộ nhớ tạm
+webextPerms.description.declarativeNetRequest=Chặn nội dung trên bất kỳ trang nào
+webextPerms.description.devtools=Mở rộng công cụ nhà phát triển để truy cập dữ liệu của bạn trong các thẻ đang mở
+webextPerms.description.downloads=Tải xuống các tập tin và chỉnh sửa lịch sử tải về của trình duyệt
+webextPerms.description.downloads.open=Mở tập tin đã tải xuống máy tính của bạn
+webextPerms.description.find=Đọc văn bản của tất cả các thẻ đang mở
+webextPerms.description.geolocation=Truy cập vị trí của bạn
+webextPerms.description.history=Truy cập lịch sử duyệt web
+webextPerms.description.management=Theo dõi việc sử dụng tiện ích mở rộng và quản lý các chủ đề
+# LOCALIZATION NOTE (webextPerms.description.nativeMessaging)
+# %S will be replaced with the name of the application
+webextPerms.description.nativeMessaging=Trao đổi thông báo với các chương trình khác với %S
+webextPerms.description.notifications=Hiển thị thông báo cho bạn
+webextPerms.description.pkcs11=Cung cấp dịch vụ mật mã xác thực
+webextPerms.description.privacy=Đọc và chỉnh sửa các cài đặt riêng tư
+webextPerms.description.proxy=Kiểm soát cài đặt proxy của trình duyệt
+webextPerms.description.sessions=Truy cập các thẻ đã đóng gần đây
+webextPerms.description.tabs=Truy cập các thẻ trên trình duyệt
+webextPerms.description.tabHide=Ẩn và hiển thỉ các thẻ trình duyệt
+webextPerms.description.topSites=Truy cập lịch sử duyệt web
+webextPerms.description.webNavigation=Truy cập hoạt động của trình duyệt trong khi điều hướng
+
+webextPerms.hostDescription.allUrls=Truy cập dữ liệu của bạn trên mọi trang web
+
+# LOCALIZATION NOTE (webextPerms.hostDescription.wildcard)
+# %S will be replaced by the DNS domain for which a webextension
+# is requesting access (e.g., mozilla.org)
+webextPerms.hostDescription.wildcard=Truy cập dữ liệu của bạn trên trang %S
+
+# LOCALIZATION NOTE (webextPerms.hostDescription.tooManyWildcards):
+# Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 will be replaced by an integer indicating the number of additional
+# domains for which this webextension is requesting permission.
+webextPerms.hostDescription.tooManyWildcards=Truy cập dữ liệu của bạn trong #1 tên miền khác
+
+# LOCALIZATION NOTE (webextPerms.hostDescription.oneSite)
+# %S will be replaced by the DNS host name for which a webextension
+# is requesting access (e.g., www.mozilla.org)
+webextPerms.hostDescription.oneSite=Truy cập dữ liệu của bạn từ %S
+
+# LOCALIZATION NOTE (webextPerms.hostDescription.tooManySites)
+# Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 will be replaced by an integer indicating the number of additional
+# hosts for which this webextension is requesting permission.
+webextPerms.hostDescription.tooManySites=Truy cập dữ liệu của bạn trên #1 trang khác
+
+# LOCALIZATION NOTE (webextSitePerms.headerWithPerms,webextSitePerms.headerUnsignedWithPerms)
+# This string is used as a header in the webextension permissions dialog,
+# %1$S is replaced with the localized name of the extension being installed.
+# %2$S will be replaced by the DNS host name for which a webextension enables permissions
+# Note, this string will be used as raw markup. Avoid characters like <, >, &
+webextSitePerms.headerWithPerms=Thêm %1$S? Tiện ích mở rộng này cấp các khả năng sau cho %2$S:
+webextSitePerms.headerUnsignedWithPerms=Thêm %1$S? Tiện ích mở rộng này chưa được xác minh. Tiện ích mở rộng độc hại có thể lấy cắp thông tin cá nhân của bạn hoặc xâm phạm máy tính của bạn. Chỉ thêm nó nếu bạn tin tưởng. Tiện ích mở rộng này cấp các khả năng sau cho %2$S:
+
+# LOCALIZATION NOTE (webextSitePerms.headerWithGatedPerms.midi)
+# This string is used as a header in the webextension permissions dialog for synthetic add-ons.
+# The part of the string describing what privileges the extension gives should be consistent
+# with the value of webextSitePerms.description.{sitePermission}.
+# %S is the hostname of the site the add-on is being installed from.
+# Note, this string will be used as raw markup. Avoid characters like <, >, &
+webextSitePerms.headerWithGatedPerms.midi=Tiện ích mở rộng này cung cấp %S quyền truy cập vào các thiết bị MIDI của bạn.
+
+# LOCALIZATION NOTE (webextSitePerms.headerWithGatedPerms.midi-sysex)
+# This string is used as a header in the webextension permissions dialog for synthetic add-ons.
+# The part of the string describing what privileges the extension gives should be consistent
+# with the value of webextSitePerms.description.{sitePermission}.
+# %S is the hostname of the site the add-on is being installed from.
+# Note, this string will be used as raw markup. Avoid characters like <, >, &
+webextSitePerms.headerWithGatedPerms.midi-sysex=Tiện ích mở rộng này cung cấp %S quyền truy cập vào các thiết bị MIDI của bạn (với hỗ trợ SysEx).
+
+# LOCALIZATION NOTE (webextSitePerms.descriptionGatedPerms)
+# This string is used as description in the webextension permissions dialog for synthetic add-ons.
+# %S will be replaced by the DNS host name for which a webextension enables permissions
+# Note, this string will be used as raw markup. Avoid characters like <, >, &
+webextSitePerms.descriptionGatedPerms=Quyền truy cập này có thể nguy hiểm và cho phép trang web hoạt động giống như phần mềm được cài đặt trên máy tính của bạn.
+
+# These should remain in sync with permissions.NAME.label in sitePermissions.properties
+webextSitePerms.description.midi=Truy cập thiết bị MIDI
+webextSitePerms.description.midi-sysex=Truy cập thiết bị MIDI với hỗ trợ SysEx
+
+# LOCALIZATION NOTE (webext.defaultSearch.description)
+# %1$S is replaced with the localized named of the extension that is asking to change the default search engine.
+# %2$S is replaced with the name of the current search engine
+# %3$S is replaced with the name of the new search engine
+webext.defaultSearch.description=%1$S muốn thay đổi công cụ tìm kiếm mặc định của bạn từ %2$S đến %3$S. Bạn đồng ý chứ?
+webext.defaultSearchYes.label=Có
+webext.defaultSearchYes.accessKey=Y
+webext.defaultSearchNo.label=Không
+webext.defaultSearchNo.accessKey=N
+
+# LOCALIZATION NOTE (webext.remove.confirmation.message)
+# %1$S is the name of the extension which is about to be removed.
+# %2$S is brandShorterName
+webext.remove.confirmation.message=Gỡ bỏ %1$S từ %2$S?
+webext.remove.confirmation.button=Xóa
+
+# LOCALIZATION NOTE (addonPostInstall.message3)
+# %S is replaced with the localized named of the extension that was
+# just installed.
+addonPostInstall.message3=Đã thêm %S.
+
+# LOCALIZATION NOTE (addonDownloadingAndVerifying):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# Also see https://bugzilla.mozilla.org/show_bug.cgi?id=570012 for mockups
+addonDownloadingAndVerifying=Đang tải và xác thực #1 tiện ích…
+addonDownloadVerifying=Đang xác thực
+
+addonInstall.unsigned=(Chưa xác thực)
+addonInstall.cancelButton.label=Hủy bỏ
+addonInstall.cancelButton.accesskey=C
+addonInstall.acceptButton2.label=Thêm
+addonInstall.acceptButton2.accesskey=A
+
+# LOCALIZATION NOTE (addonConfirmInstallMessage,addonConfirmInstallUnsigned):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is brandShortName
+# #2 is the number of add-ons being installed
+addonConfirmInstall.message=Trang này muốn cài đặt #2 tiện ích vào #1:
+addonConfirmInstallUnsigned.message=Chú ý: Trang này muốn cài đặt #2 tiện ích chưa được kiểm định vào #1. Chúng tôi không chịu trách nhiệm về những vấn đề có thể xảy ra.
+
+# LOCALIZATION NOTE (addonConfirmInstallSomeUnsigned.message):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is brandShortName
+# #2 is the total number of add-ons being installed (at least 2)
+addonConfirmInstallSomeUnsigned.message=Chú ý: Trang này muốn cài đặt #2 tiện ích vào #1, một số trong đó chưa được kiểm định. Chúng tôi không chịu trách nhiệm về những vấn đề có thể xảy ra.
+
+# LOCALIZATION NOTE (addonInstalled):
+# %S is the name of the add-on
+addonInstalled=%S đã cài đặt thành công.
+# LOCALIZATION NOTE (addonsGenericInstalled):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 number of add-ons
+addonsGenericInstalled=#1 tiện ích đã được cài đặt thành công.
+
+# LOCALIZATION NOTE (addonInstallError-1, addonInstallError-2, addonInstallError-3, addonInstallError-4, addonInstallError-5, addonInstallError-8, addonLocalInstallError-1, addonLocalInstallError-2, addonLocalInstallError-3, addonLocalInstallError-4, addonLocalInstallError-5):
+# %1$S is the application name, %2$S is the add-on name
+addonInstallError-1=Không thể tải tiện ích do bị lỗi kết nối.
+addonInstallError-2=Không thể cài đặt tiện ích này vì nó không khớp với tiện ích %1$S được trông đợi.
+addonInstallError-3=Không thể cài đặt tiện ích được tải từ trang này do có vẻ nó bị hỏng trên đường truyền.
+addonInstallError-4=%2$S không thể cài đặt vì %1$S không thể sửa đổi tập tin cần thiết.
+addonInstallError-5=%1$S không cho phép trang này cài đặt một tiện ích chưa được kiểm định.
+addonInstallError-8=Không thể cài đặt tiện ích %2$S từ địa chỉ này.
+addonLocalInstallError-1=Không thể cài đặt tiện ích này vì có lỗi hệ thống tập tin.
+addonLocalInstallError-2=Không thể cài đặt tiện ích này vì nó không khớp với tiện ích %1$S được trông đợi.
+addonLocalInstallError-3=Không thể cài đặt tiện ích này vì có vẻ như nó đã bị hỏng trên đường truyền.
+addonLocalInstallError-4=%2$S không thể cài đặt vì %1$S không thể sửa đổi tập tin cần thiết.
+addonLocalInstallError-5=Không thể cài đặt tiện ích này vì nó chưa được kiểm định.
+
+# LOCALIZATION NOTE (addonInstallErrorIncompatible):
+# %1$S is the application name, %2$S is the application version, %3$S is the add-on name
+addonInstallErrorIncompatible=%3$S không thể cài đặt được vì nó không tương thích với %1$S %2$S.
+
+# LOCALIZATION NOTE (addonInstallErrorBlocklisted): %S is add-on name
+addonInstallErrorBlocklisted=%S không thể cài đặt được vì nó có khả năng gây ra các vấn đề về bảo mật và tính ổn định.
+
+unsignedAddonsDisabled.message=Một số tiện ích đã cài đặt không thể được kiểm định nên đã bị vô hiệu hóa.
+unsignedAddonsDisabled.learnMore.label=Tìm hiểu thêm
+unsignedAddonsDisabled.learnMore.accesskey=L
+
+# LOCALIZATION NOTE (popupWarning.message): Semicolon-separated list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is brandShortName and #2 is the number of pop-ups blocked.
+popupWarning.message=#1 đã chặn trang web này mở #2 cửa sổ bật lên.
+# LOCALIZATION NOTE (popupWarning.exceeded.message): Semicolon-separated list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# The singular form is left empty for English, since the number of blocked pop-ups is always greater than 1.
+# #1 is brandShortName and #2 is the number of pop-ups blocked.
+popupWarning.exceeded.message=#1 đã ngăn trang web này mở nhiều hơn #2 cửa sổ bật lên.
+popupWarningButton=Tùy chọn
+popupWarningButton.accesskey=O
+popupWarningButtonUnix=Tùy chỉnh
+popupWarningButtonUnix.accesskey=P
+popupShowPopupPrefix=Hiển thị '%S'
+
+# LOCALIZATION NOTE (geolocationLastAccessIndicatorText): %S is the relative time of the most recent geolocation access (e.g. 5 min. ago)
+geolocationLastAccessIndicatorText=Truy cập lần cuối %S
+
+# LOCALIZATION NOTE (openProtocolHandlerPermissionEntryLabel): %S is the scheme of the protocol the site may open an application for. For example: mailto
+openProtocolHandlerPermissionEntryLabel=%S:// đường dẫn
+
+crashedpluginsMessage.title=Phần bổ trợ %S đã bị lỗi.
+crashedpluginsMessage.reloadButton.label=Tải lại trang này
+crashedpluginsMessage.reloadButton.accesskey=R
+crashedpluginsMessage.submitButton.label=Gửi báo cáo lỗi
+crashedpluginsMessage.submitButton.accesskey=S
+crashedpluginsMessage.learnMore=Tìm hiểu thêm…
+
+# Keyword fixup messages
+# LOCALIZATION NOTE (keywordURIFixup.message): Used when the user tries to visit
+# a local host page, by the time the DNS request recognizes it, we have already
+# loaded a search page for the given word. An infobar then asks to the user
+# whether he rather wanted to visit the host. %S is the recognized host.
+keywordURIFixup.message=Có phải bạn muốn truy cập %S?
+keywordURIFixup.goTo=Đúng, đưa tôi đến %S
+keywordURIFixup.goTo.accesskey=Y
+
+pluginInfo.unknownPlugin=Không rõ
+
+# Flash activation doorhanger UI
+flashActivate.message=Bạn có muốn cho phép Adobe Flash chạy trên trang web này không? Chỉ cho phép Adobe Flash trên các trang web mà bạn tin tưởng.
+flashActivate.outdated.message=Bạn có muốn cho phép một phiên bản Adobe Flash đã lỗi thời chạy trên trang web này không? Một phiên bản đã lỗi thời có thể ảnh hưởng đến hiệu suất và bảo mật của trình duyệt.
+flashActivate.noAllow=Không cho phép
+flashActivate.allow=Cho phép
+flashActivate.noAllow.accesskey=D
+flashActivate.allow.accesskey=A
+
+# in-page UI
+# LOCALIZATION NOTE (PluginClickToActivate2): Two changes were done to the
+# previous version of the string. The first is that we changed the wording from
+# "Activate" to "Run", because it's shorter and feels less technical in English.
+# Feel free to keep using the previous wording in your language if it's already
+# the best one.
+# The second change is that we removed the period at the end of the phrase, because
+# it's not natural in our UI, and the underline was removed from this, so it doesn't
+# look like a link anymore. We suggest that everyone removes that period too.
+PluginClickToActivate2=Chạy %S
+PluginVulnerableUpdatable=Phần bổ trợ này có lỗ hổng bảo mật và cần được cập nhật.
+PluginVulnerableNoUpdate=Phần bổ trợ này có lỗ hổng bảo mật.
+
+# Sanitize
+# LOCALIZATION NOTE (update.downloadAndInstallButton.label): %S is replaced by the
+# version of the update: "Update to 28.0".
+update.downloadAndInstallButton.label=Cập nhật lên bản %S
+update.downloadAndInstallButton.accesskey=U
+
+menuOpenAllInTabs.label=Mở toàn bộ trong các thẻ mới
+
+# History menu
+# LOCALIZATION NOTE (menuUndoCloseWindowLabel): Semicolon-separated list of plural forms.
+# see bug 394759
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 Window Title, #2 Number of tabs
+menuUndoCloseWindowLabel=#1 (và #2 thẻ khác)
+menuUndoCloseWindowSingleTabLabel=#1
+
+# Unified Back-/Forward Popup
+tabHistory.current=Ở lại trang này
+
+# Unified Back-/Forward Popup
+tabHistory.reloadCurrent=Tải lại trang này
+tabHistory.goBack=Trở về lại trang này
+tabHistory.goForward=Tiến đến trang này
+
+# URL Bar
+pasteAndGo.label=Dán & mở đường dẫn
+# LOCALIZATION NOTE (reloadButton.tooltip):
+# %S is the keyboard shortcut for reloading the current page
+reloadButton.tooltip=Tải lại trang này (%S)
+# LOCALIZATION NOTE (stopButton.tooltip):
+# %S is the keyboard shortcut for stopping loading the page
+stopButton.tooltip=Dừng tải trang này (%S)
+# LOCALIZATION NOTE (urlbar-zoom-button.tooltip):
+# %S is the keyboard shortcut for resetting the zoom level to 100%
+urlbar-zoom-button.tooltip=Đặt lại mức độ thu phóng (%S)
+# LOCALIZATION NOTE (reader-mode-button.tooltip):
+# %S is the keyboard shortcut for entering/exiting reader view
+reader-mode-button.tooltip=Chuyển đến chế độ đọc sách (%S)
+
+# LOCALIZATION NOTE(zoom-button.label): %S is the current page zoom level,
+# %% will be displayed as a single % character (% is commonly used to define
+# format specifiers, so it needs to be escaped).
+zoom-button.label = %S%%
+
+# Block autorefresh
+refreshBlocked.goButton=Cho phép
+refreshBlocked.goButton.accesskey=A
+refreshBlocked.refreshLabel=%S đã ngăn trang web này tự động tải lại.
+refreshBlocked.redirectLabel=%S đã ngăn trang web này tự động chuyển đến trang khác.
+
+# General bookmarks button
+# LOCALIZATION NOTE (bookmarksMenuButton.tooltip):
+# %S is the keyboard shortcut for "Show All Bookmarks"
+bookmarksMenuButton.tooltip=Hiển thị các dấu trang của bạn (%S)
+
+# Downloads button tooltip
+# LOCALIZATION NOTE (downloads.tooltip):
+# %S is the keyboard shortcut for "Downloads"
+downloads.tooltip=Hiển thị tiến độ tải xuống (%S)
+
+# New Window button tooltip
+# LOCALIZATION NOTE (newWindowButton.tooltip):
+# %S is the keyboard shortcut for "New Window"
+newWindowButton.tooltip=Mở một cửa sổ mới (%S)
+
+# New Tab button tooltip
+# LOCALIZATION NOTE (newTabButton.tooltip):
+# %S is the keyboard shortcut for "New Tab"
+newTabButton.tooltip=Mở thẻ mới (%S)
+newTabContainer.tooltip=Mở một thẻ mới (%S)\nNhấp và giữ để mở ngăn chứa thẻ mới
+newTabAlwaysContainer.tooltip=Chọn ngăn chứa để mở một thẻ mới
+
+# Offline web applications
+offlineApps.available3=Cho phép %S lưu trữ dữ liệu trên máy tính của bạn?
+offlineApps.allow.label=Cho phép
+offlineApps.allow.accesskey=A
+offlineApps.block.label=Chặn
+offlineApps.block.accesskey=B
+
+# Canvas permission prompt
+# LOCALIZATION NOTE (canvas.siteprompt2): %S is hostname
+canvas.siteprompt2=Cho phép %S sử dụng dữ liệu hình ảnh canvas HTML5 của bạn?
+canvas.siteprompt2.warning=Điều này có thể được sử dụng để xác định danh tính máy tính của bạn.
+canvas.block=Chặn
+canvas.block.accesskey=B
+canvas.allow2=Cho phép
+canvas.allow2.accesskey=A
+canvas.remember2=Ghi nhớ quyết định này
+
+# WebAuthn prompts
+# LOCALIZATION NOTE (webauthn.registerPrompt2): %S is hostname
+webauthn.registerPrompt2=%S muốn đăng ký tài khoản với một trong các khóa bảo mật của bạn. Bây giờ bạn có thể kết nối và ủy quyền một tài khoản hoặc hủy.
+# LOCALIZATION NOTE (webauthn.CTAP2registerPrompt): %S is hostname
+webauthn.CTAP2registerPrompt=%S muốn đăng ký tài khoản bằng một trong các khóa bảo mật của bạn. Bạn có thể kết nối ngay bây giờ hoặc hủy bỏ.
+# LOCALIZATION NOTE (webauthn.registerTouchDevice): %S is hostname
+webauthn.registerTouchDevice=%S muốn đăng ký tài khoản bằng khóa bảo mật của bạn. Bạn có thể ủy quyền ngay bây giờ hoặc hủy bỏ.
+# LOCALIZATION NOTE (webauthn.registerDirectPrompt3):
+# %S is hostname.
+# The website is asking for extended information about your
+# hardware authenticator that shouldn't be generally necessary. Permitting
+# this is safe if you only use one account at this website. If you have
+# multiple accounts at this website, and you use the same hardware
+# authenticator, then the website could link those accounts together.
+# And this is true even if you use a different profile / browser (or even Tor
+# Browser). To avoid this, you should use different hardware authenticators
+# for different accounts on this website.
+webauthn.registerDirectPrompt3=%S đang yêu cầu thông tin mở rộng về khóa bảo mật của bạn, điều này có thể ảnh hưởng đến quyền riêng tư của bạn.
+# LOCALIZATION NOTE (webauthn.registerDirectPromptHint):
+# %S is brandShortName
+webauthn.registerDirectPromptHint=%S có thể ẩn danh điều này cho bạn, nhưng trang web có thể từ chối khóa này. Nếu bị từ chối, bạn có thể thử lại.
+# LOCALIZATION NOTE (webauthn.CTAP2signPrompt): %S is hostname
+webauthn.CTAP2signPrompt=%S muốn xác thực bạn bằng khóa bảo mật đã đăng ký. Bạn có thể kết nối ngay bây giờ hoặc hủy bỏ.
+# LOCALIZATION NOTE (webauthn.signTouchDevice): %S is hostname
+webauthn.signTouchDevice=%S muốn xác thực bạn bằng khóa bảo mật của bạn. Bạn có thể ủy quyền ngay bây giờ hoặc hủy bỏ.
+# LOCALIZATION NOTE (webauthn.signPrompt2): %S is hostname
+webauthn.signPrompt2=%S muốn xác thực bạn bằng khóa bảo mật đã đăng ký. Bây giờ bạn có thể kết nối và ủy quyền một tài khoản hoặc hủy.
+# LOCALIZATION NOTE (webauthn.selectSignResultPrompt): %S is hostname
+webauthn.selectSignResultPrompt=Đã tìm thấy nhiều tài khoản cho %S. Chọn để sử dụng hoặc hủy bỏ.
+# LOCALIZATION NOTE (webauthn.selectDevicePrompt): %S is hostname
+webauthn.selectDevicePrompt=Đã tìm thấy nhiều thiết bị cho %S. Vui lòng chọn một.
+# LOCALIZATION NOTE (webauthn.deviceBlockedPrompt): %S is hostname
+webauthn.deviceBlockedPrompt=Xác minh người dùng không thành công trên %S. Không còn lần thử nào nữa và thiết bị của bạn đã bị khóa do nhập sai mã PIN quá nhiều lần. Thiết bị cần được thiết lập lại.
+# LOCALIZATION NOTE (webauthn.pinAuthBlockedPrompt): %S is hostname
+webauthn.pinAuthBlockedPrompt=Xác minh người dùng không thành công trên %S. Đã có quá nhiều lần thử không thành công liên tiếp và xác thực mã PIN đã tạm thời bị chặn. Thiết bị của bạn cần khởi động lại (rút phích cắm và cắm lại).
+webauthn.cancel=Hủy bỏ
+webauthn.cancel.accesskey=c
+webauthn.proceed=Tiến hành
+webauthn.proceed.accesskey=p
+webauthn.anonymize=Vẫn ẩn danh
+
+# Spoof Accept-Language prompt
+privacy.spoof_english=Thay đổi cài đặt ngôn ngữ sang tiếng Anh sẽ gây khó khăn trong việc xác định và tăng cường sự riêng tư của bạn. Bạn có muốn yêu cầu phiên bản ngôn ngữ tiếng Anh của các trang web?
+
+# LOCALIZATION NOTE (identity.identified.verifier, identity.identified.state_and_country, identity.ev.contentOwner2):
+# %S is the hostname of the site that is being displayed.
+identity.identified.verifier=Xác minh bởi: %S
+identity.identified.verified_by_you=Bạn vừa thêm một ngoại lệ an ninh cho tên miền này.
+identity.identified.state_and_country=%S, %S
+identity.ev.contentOwner2=Chứng chỉ được cấp cho: %S
+
+# LOCALIZATION NOTE (identity.notSecure.label):
+# Keep this string as short as possible, this is displayed in the URL bar
+# use a synonym for "safe" or "private" if "secure" is too long.
+identity.notSecure.label=Không an toàn
+identity.notSecure.tooltip=Kết nối không an toàn
+
+identity.extension.label=Tiện ích mở rộng (%S)
+identity.extension.tooltip=Được tải bởi tiện ích mở rộng: %S
+
+# LOCALIZATION NOTE (contentBlocking.trackersView.blocked.label):
+# This label is shown next to a tracker in the trackers subview.
+# It forms the end of the (imaginary) sentence "www.example.com [was] Blocked"
+contentBlocking.trackersView.blocked.label=Đã chặn
+
+contentBlocking.trackersView.empty.label=Không phát hiện trên trang web này
+
+# LOCALIZATION NOTE (contentBlocking.cookies.blockingTrackers.label, contentBlocking.cookies.blocking3rdParty.label,
+# contentBlocking.cookies.blockingUnvisited.label,contentBlocking.cookies.blockingAll.label):
+contentBlocking.cookies.blockingTrackers3.label=Cookie theo dõi trên nhiều trang web
+contentBlocking.cookies.blocking3rdParty2.label=Cookie của bên thứ ba
+contentBlocking.cookies.blockingUnvisited2.label=Cookie trang web chưa truy cập
+contentBlocking.cookies.blockingAll2.label=Tất cả các cookie
+
+contentBlocking.cookiesView.firstParty.label=Từ trang web này
+# LOCALIZATION NOTE (contentBlocking.cookiesView.firstParty.empty.label):
+# This references the header from contentBlocking.cookiesView.firstParty.label:
+# "[Cookies] From This Site: None detected on this site".
+contentBlocking.cookiesView.firstParty.empty.label=Không phát hiện trên trang web này
+
+contentBlocking.cookiesView.trackers2.label=Cookie theo dõi trên nhiều trang web
+# LOCALIZATION NOTE (contentBlocking.cookiesView.trackers.empty.label):
+# This references the header from contentBlocking.cookiesView.trackers.label:
+# "Tracking Cookies: None detected on this site".
+contentBlocking.cookiesView.trackers.empty.label=Không phát hiện trên trang web này
+
+contentBlocking.cookiesView.thirdParty.label=Cookie của bên thứ ba
+# LOCALIZATION NOTE (contentBlocking.cookiesView.thirdParty.empty.label):
+# This references the header from contentBlocking.cookiesView.thirdParty.label:
+# "Third-Party Cookies: None detected on this site".
+contentBlocking.cookiesView.thirdParty.empty.label=Không phát hiện trên trang web này
+
+# LOCALIZATION NOTE (contentBlocking.cookiesView.allowed.label):
+# This label is shown next to a cookie origin in the cookies subview.
+# It forms the end of the (imaginary) sentence "www.example.com [was] Allowed"
+contentBlocking.cookiesView.allowed.label=Đã cho phép
+# LOCALIZATION NOTE (contentBlocking.cookiesView.blocked.label):
+# This label is shown next to a cookie origin in the cookies subview.
+# It forms the end of the (imaginary) sentence "www.example.com [was] Blocked"
+contentBlocking.cookiesView.blocked.label=Đã chặn
+# LOCALIZATION NOTE (contentBlocking.cookiesView.removeButton.tooltip): %S is the domain of the site.
+contentBlocking.cookiesView.removeButton.tooltip=Xóa ngoại lệ cookie cho %S
+
+# LOCALIZATION NOTE (contentBlocking.fingerprintersView.blocked.label):
+# This label is shown next to a fingerprinter in the fingerprinters subview.
+# It forms the end of the (imaginary) sentence "www.example.com [was] Blocked"
+contentBlocking.fingerprintersView.blocked.label=Đã chặn
+
+# LOCALIZATION NOTE (contentBlocking.cryptominersView.blocked.label):
+# This label is shown next to a cryptominer in the cryptominers subview.
+# It forms the end of the (imaginary) sentence "www.example.com [was] Blocked"
+contentBlocking.cryptominersView.blocked.label=Đã chặn
+
+trackingProtection.icon.activeTooltip2=Chặn trình theo dõi phương tiện truyền thông xã hội, cookie theo dõi trên nhiều trang web và dấu vết.
+trackingProtection.icon.disabledTooltip2=Trình chống theo dõi nâng cao đã bị TẮT cho trang này.
+# LOCALIZATION NOTE (trackingProtection.icon.noTrackersDetectedTooltip): %S is brandShortName.
+trackingProtection.icon.noTrackersDetectedTooltip=%S không phát hiện ra trình theo dõi đã biết trên trang này.
+
+# LOCALIZATION NOTE (protections.header):
+# Header of the Protections Panel. %S is replaced with the site's hostname.
+protections.header=Trạng thái bảo vệ cho %S
+
+# LOCALIZATION NOTE (protections.disableAriaLabel):
+# Text that gets spoken by a screen reader if the button will disable protections.
+# %s is the site's hostname.
+protections.disableAriaLabel=Tắt bảo vệ cho %S
+
+# LOCALIZATION NOTE (protections.enableAriaLabel):
+# Text that gets spoken by a screen reader if the button will enable protections.
+# %s is the site's hostname.
+protections.enableAriaLabel=Bật bảo vệ cho %S
+
+# Blocking and Not Blocking sub-views in the Protections Panel
+protections.blocking.fingerprinters.title=Đã chặn dấu vết
+protections.blocking.cryptominers.title=Đã chặn tiền điện tử
+protections.blocking.cookies.trackers.title=Đã chặn cookie theo dõi trên nhiều trang web
+protections.blocking.cookies.3rdParty.title=Đã chặn cookie của bên thứ ba
+protections.blocking.cookies.all.title=Đã chặn tất cả cookie
+protections.blocking.cookies.unvisited.title=Đã cookie trang web chưa truy cập
+protections.blocking.trackingContent.title=Đã chặn trình theo dõi nội dung
+protections.blocking.socialMediaTrackers.title=Đã chặn trình theo dõi truyền thông xã hội
+protections.notBlocking.fingerprinters.title=Không chặn dấu vết
+protections.notBlocking.cryptominers.title=Không chặn tiền điện tử
+protections.notBlocking.cookies.3rdParty.title=Không chặn cookie của bên thứ ba
+protections.notBlocking.cookies.all.title=Không chặn cookie
+protections.notBlocking.crossSiteTrackingCookies.title=Không chặn cookie theo dõi trên nhiều trang web
+protections.notBlocking.trackingContent.title=Không chặn trình theo dõi nội dung
+protections.notBlocking.socialMediaTrackers.title=Không chặn trình theo dõi truyền thông xã hội
+
+# Footer section in the Protections Panel
+# LOCALIZATION NOTE (protections.footer.blockedTrackerCounter.description,
+# protections.footer.blockedTrackerCounter.tooltip):
+# This text indicates the total number of trackers blocked on all sites. In
+# its tooltip, we show the date when we started counting this number.
+# LOCALIZATION NOTE (protections.footer.blockedTrackerCounter.description):
+# Semicolon-separated list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# Replacement for #1 is a locale-string converted positive integer.
+protections.footer.blockedTrackerCounter.description=#1 đã chặn
+# LOCALIZATION NOTE (protections.footer.blockedTrackerCounter.tooltip):
+# %S is the date on which we started counting (e.g., July 17, 2019).
+protections.footer.blockedTrackerCounter.tooltip=Từ %S
+
+# Milestones section in the Protections Panel
+# LOCALIZATION NOTE (protections.milestone.description):
+# Semicolon-separated list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is replaced with brandShortName.
+# #2 is replaced with the (locale-formatted) number of trackers blocked
+# #3 is replaced by a locale-formatted date with short month and numeric year.
+# In English this looks like "Firefox blocked over 10,000 trackers since Oct 2019"
+protections.milestone.description=#1 đã chặn #2 trình theo dõi từ #3
+
+# Application menu
+
+# LOCALIZATION NOTE(zoomReduce-button.tooltip): %S is the keyboard shortcut.
+zoomReduce-button.tooltip = Thu nhỏ (%S)
+# LOCALIZATION NOTE(zoomReset-button.tooltip): %S is the keyboard shortcut.
+zoomReset-button.tooltip = Đặt lại mức độ thu phóng (%S)
+# LOCALIZATION NOTE(zoomEnlarge-button.tooltip): %S is the keyboard shortcut.
+zoomEnlarge-button.tooltip = Phóng to (%S)
+
+# LOCALIZATION NOTE (cut-button.tooltip): %S is the keyboard shortcut.
+cut-button.tooltip = Cắt (%S)
+# LOCALIZATION NOTE (copy-button.tooltip): %S is the keyboard shortcut.
+copy-button.tooltip = Sao chép (%S)
+# LOCALIZATION NOTE (paste-button.tooltip): %S is the keyboard shortcut.
+paste-button.tooltip = Dán (%S)
+
+# Geolocation UI
+
+geolocation.allow=Cho phép
+geolocation.allow.accesskey=A
+geolocation.block=Chặn
+geolocation.block.accesskey=B
+geolocation.shareWithSite4=Cho phép %S truy cập vị trí của bạn?
+geolocation.shareWithFile4=Cho phép tập tin cục bộ này truy cập vào vị trí của bạn?
+# LOCALIZATION NOTE(geolocation.shareWithSiteUnsafeDelegation2):
+# %1$S is the first party origin, %2$S is the third party origin.
+geolocation.shareWithSiteUnsafeDelegation2=Cho phép %1$S cấp cho %2$S quyền truy cập vào vị trí của bạn?
+geolocation.remember=Ghi nhớ quyết định này
+
+# Virtual Reality Device UI
+xr.allow2=Cho phép
+xr.allow2.accesskey=A
+xr.block=Chặn
+xr.block.accesskey=B
+xr.shareWithSite4=Cho phép %S truy cập thiết bị thực tế ảo? Điều này có thể làm lộ thông tin nhạy cảm.
+xr.shareWithFile4=Cho phép tập tin cục bộ này truy cập thiết bị thực tế ảo? Điều này có thể làm lộ thông tin nhạy cảm.
+xr.remember=Ghi nhớ quyết định này
+
+# Persistent storage UI
+persistentStorage.allow=Cho phép
+persistentStorage.allow.accesskey=A
+persistentStorage.block.label=Chặn
+persistentStorage.block.accesskey=B
+persistentStorage.allowWithSite2=Cho phép %S lưu trữ dữ liệu trong bộ nhớ liên tục?
+
+# Web notifications UI
+# LOCALIZATION NOTE (alwaysBlock, block)
+# The two button strings will never be shown at the same time, so
+# it's okay for them to have the same access key
+webNotifications.allow2=Cho phép
+webNotifications.allow2.accesskey=A
+webNotifications.notNow=Không phải bây giờ
+webNotifications.notNow.accesskey=n
+webNotifications.never=Không bao giờ cho phép
+webNotifications.never.accesskey=v
+webNotifications.alwaysBlock=Luôn chặn
+webNotifications.alwaysBlock.accesskey=B
+webNotifications.block=Chặn
+webNotifications.block.accesskey=B
+webNotifications.receiveFromSite3=Cho phép %S gửi thông báo?
+
+# Phishing/Malware Notification Bar.
+# LOCALIZATION NOTE (notADeceptiveSite, notAnAttack)
+# The two button strings will never be shown at the same time, so
+# it's okay for them to have the same access key
+safebrowsing.getMeOutOfHereButton.label=Đưa tôi ra khỏi đây!
+safebrowsing.getMeOutOfHereButton.accessKey=G
+safebrowsing.deceptiveSite=Trang web lừa đảo!
+safebrowsing.notADeceptiveSiteButton.label=Đây không phải là một trang lừa đảo…
+safebrowsing.notADeceptiveSiteButton.accessKey=D
+safebrowsing.reportedAttackSite=Có người báo đây là trang web có ác ý!
+safebrowsing.notAnAttackButton.label=Trang này không có ác ý…
+safebrowsing.notAnAttackButton.accessKey=A
+safebrowsing.reportedUnwantedSite=Trang này có nghi ngờ cài đặt phần mềm không mong muốn!
+safebrowsing.reportedHarmfulSite=Báo cáo trang web độc hại!
+
+# Ctrl-Tab
+# LOCALIZATION NOTE (ctrlTab.listAllTabs.label): #1 represents the number
+# of tabs in the current browser window. It will always be 2 at least.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+ctrlTab.listAllTabs.label=Hiển thị tất cả #1 thẻ
+
+# LOCALIZATION NOTE (addKeywordTitleAutoFill): %S will be replaced by the page's title
+# Used as the bookmark name when saving a keyword for a search field.
+addKeywordTitleAutoFill=Tìm %S
+
+# troubleshootModeRestart
+# LOCALIZATION NOTE (troubleshootModeRestartPromptTitle): %S is the name of the product (e.g., Firefox)
+troubleshootModeRestartPromptTitle=Khởi động lại %S ở chế độ xử lý sự cố?
+troubleshootModeRestartPromptMessage=Các tiện ích mở rộng, chủ đề và cài đặt tùy chỉnh của bạn sẽ tạm thời bị vô hiệu hóa.
+troubleshootModeRestartButton=Khởi động lại
+
+# LOCALIZATION NOTE (browser.menu.showCharacterEncoding): Set to the string
+# "true" (spelled and capitalized exactly that way) to show the "Text
+# Encoding" menu in the main Firefox button on Windows. Any other value will
+# hide it. Regardless of the value of this setting, the "Text Encoding"
+# menu will always be accessible via the "Browser Tools" menu.
+# This is not a string to translate; it just controls whether the menu shows
+# up in the Firefox button. If users frequently use the "Text Encoding"
+# menu, set this to "true". Otherwise, you can leave it as "false".
+browser.menu.showCharacterEncoding=true
+
+# Process hang reporter
+# LOCALIZATION NOTE (processHang.selected_tab.label): %1$S is the name of the product (e.g., Firefox)
+processHang.selected_tab.label = Trang này đang làm chậm %1$S. Để tăng tốc trình duyệt của bạn, hãy dừng trang này.
+# LOCALIZATION NOTE (processHang.nonspecific_tab.label): %1$S is the name of the product (e.g., Firefox)
+processHang.nonspecific_tab.label = Một trang web đang làm chậm %1$S. Để tăng tốc trình duyệt của bạn, hãy dừng trang này.
+# LOCALIZATION NOTE (processHang.specific_tab.label): %1$S is the title of the tab.
+# %2$S is the name of the product (e.g., Firefox)
+processHang.specific_tab.label = “%1$S” đang làm chậm %2$S. Để tăng tốc trình duyệt của bạn, hãy dừng trang đó lại.
+# LOCALIZATION NOTE (processHang.add-on.label2): %1$S is the name of the
+# extension. %2$S is the name of the product (e.g., Firefox)
+processHang.add-on.label2 = “%1$S” đang làm chậm %2$S. Để tăng tốc trình duyệt của bạn, hãy dừng tiện ích đó lại.
+processHang.add-on.learn-more.text = Tìm hiểu thêm
+processHang.button_stop2.label = Dừng
+processHang.button_stop2.accessKey = S
+processHang.button_debug.label = Gỡ lỗi script
+processHang.button_debug.accessKey = D
+
+# LOCALIZATION NOTE (fullscreenButton.tooltip): %S is the keyboard shortcut for full screen
+fullscreenButton.tooltip=Hiển thị cửa sổ chiếm toàn màn hình (%S)
+
+# These are visible when opening the popup inside the bookmarks sidebar
+sidebar.moveToLeft=Chuyển thanh lề sang bên trái
+sidebar.moveToRight=Chuyển thanh lề sang bên phải
+
+# LOCALIZATION NOTE (getUserMedia.shareCamera3.message,
+# getUserMedia.shareMicrophone3.message,
+# getUserMedia.shareScreen4.message,
+# getUserMedia.shareCameraAndMicrophone3.message,
+# getUserMedia.shareCameraAndAudioCapture3.message,
+# getUserMedia.shareScreenAndMicrophone4.message,
+# getUserMedia.shareScreenAndAudioCapture4.message,
+# getUserMedia.shareAudioCapture3.message):
+# %S is the website origin (e.g. www.mozilla.org)
+getUserMedia.shareCamera3.message = Cho phép %S sử dụng máy ảnh của bạn?
+getUserMedia.shareMicrophone3.message = Cho phép %S sử dụng micrô của bạn?
+getUserMedia.shareScreen4.message = Cho phép %S xem màn hình của bạn?
+getUserMedia.shareCameraAndMicrophone3.message = Cho phép %S sử dụng máy ảnh và micrô của bạn?
+getUserMedia.shareCameraAndAudioCapture3.message = Cho phép %S sử dụng máy ảnh của bạn và nghe âm thanh của thẻ này?
+getUserMedia.shareScreenAndMicrophone4.message = Cho phép %S sử dụng micrô của bạn và xem màn hình của bạn?
+getUserMedia.shareScreenAndAudioCapture4.message = Cho phép %S nghe âm thanh của thẻ này và xem màn hình của bạn?
+getUserMedia.shareAudioCapture3.message = Cho phép %S nghe âm thanh của thẻ này?
+# LOCALIZATION NOTE (selectAudioOutput.shareSpeaker.message):
+# "Speakers" is used in a general sense that might include headphones or
+# another audio output connection.
+# %S is the website origin (e.g. www.mozilla.org)
+selectAudioOutput.shareSpeaker.message = Cho phép %S sử dụng các loa khác?
+
+# LOCALIZATION NOTE (getUserMedia.shareCameraUnsafeDelegation2.message,
+# getUserMedia.shareMicrophoneUnsafeDelegation2.message,
+# getUserMedia.shareScreenUnsafeDelegation2.message,
+# getUserMedia.shareCameraAndMicrophoneUnsafeDelegation2.message,
+# getUserMedia.shareCameraAndAudioCaptureUnsafeDelegation2.message,
+# getUserMedia.shareScreenAndMicrophoneUnsafeDelegation2.message,
+# getUserMedia.shareScreenAndAudioCaptureUnsafeDelegation2.message,
+# %1$S is the first party origin.
+# %2$S is the third party origin.
+getUserMedia.shareCameraUnsafeDelegation2.message = Cho phép %1$S cấp cho %2$S quyền truy cập vào máy ảnh của bạn?
+getUserMedia.shareMicrophoneUnsafeDelegations2.message = Cho phép %1$S cấp cho %2$S quyền truy cập vào micrô của bạn?
+getUserMedia.shareScreenUnsafeDelegation2.message = Cho phép %1$S cấp quyền cho %2$S xem màn hình của bạn?
+getUserMedia.shareCameraAndMicrophoneUnsafeDelegation2.message = Cho phép %1$S cấp cho %2$S quyền truy cập vào máy ảnh và micrô của bạn?
+getUserMedia.shareCameraAndAudioCaptureUnsafeDelegation2.message = Cho phép %1$S cấp cho %2$S quyền truy cập vào máy ảnh của bạn và nghe âm thanh của thẻ này?
+getUserMedia.shareScreenAndMicrophoneUnsafeDelegation2.message = Cho phép %1$S cấp cho %2$S quyền truy cập vào micrô và xem màn hình của bạn?
+getUserMedia.shareScreenAndAudioCaptureUnsafeDelegation2.message = Cho phép %1$S cấp quyền cho %2$S nghe âm thanh của thẻ này và xem màn hình của bạn?
+# LOCALIZATION NOTE ():
+# "Speakers" is used in a general sense that might include headphones or
+# another audio output connection.
+# %1$S is the first party origin.
+# %2$S is the third party origin.
+selectAudioOutput.shareSpeakerUnsafeDelegation.message = Cho phép %1$S cấp cho %2$S quyền truy cập vào các loa khác?
+
+# LOCALIZATION NOTE (getUserMedia.shareScreenWarning.message): NB: inserted via innerHTML, so please don't use <, > or & in this string.
+getUserMedia.shareScreenWarning2.message = Chỉ chia sẻ màn hình với các trang web mà bạn tin tưởng. Chia sẻ có thể cho phép các trang web lừa đảo duyệt web như bạn và lấy cắp dữ liệu cá nhân của bạn.
+# LOCALIZATION NOTE (getUserMedia.shareFirefoxWarning.message): NB: inserted via innerHTML, so please don't use <, > or & in this string.
+# %S is brandShortName (eg. Firefox)
+getUserMedia.shareFirefoxWarning2.message = Chỉ chia sẻ %S với các trang web mà bạn tin tưởng. Chia sẻ có thể cho phép các trang web lừa đảo duyệt web như bạn và lấy cắp dữ liệu cá nhân của bạn.
+# LOCALIZATION NOTE(getUserMedia.shareScreen.learnMoreLabel): NB: inserted via innerHTML, so please don't use <, > or & in this string.
+getUserMedia.shareScreen.learnMoreLabel = Tìm hiểu thêm
+getUserMedia.selectWindowOrScreen2.label = Cửa sổ hoặc màn hình:
+getUserMedia.selectWindowOrScreen2.accesskey = W
+getUserMedia.pickWindowOrScreen.label = Chọn cửa sổ hoặc màn hình
+getUserMedia.shareEntireScreen.label = Toàn bộ màn hình
+getUserMedia.sharePipeWirePortal.label = Sử dụng cài đặt của hệ điều hành
+# LOCALIZATION NOTE (getUserMedia.shareMonitor.label):
+# %S is screen number (digits 1, 2, etc)
+# Example: Screen 1, Screen 2,..
+getUserMedia.shareMonitor.label = Màn hình %S
+# LOCALIZATION NOTE (getUserMedia.shareApplicationWindowCount.label):
+# Semicolon-separated list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# Replacement for #1 is the name of the application.
+# Replacement for #2 is the number of windows currently displayed by the application.
+getUserMedia.shareApplicationWindowCount.label=#1 (#2 cửa sổ)
+# LOCALIZATION NOTE (getUserMedia.allow.label,
+# getUserMedia.block.label):
+# These two buttons are the possible answers to the various prompts in the
+# "getUserMedia.share{device}.message" strings.
+getUserMedia.allow.label = Cho phép
+getUserMedia.allow.accesskey = A
+getUserMedia.block.label = Chặn
+getUserMedia.block.accesskey = B
+getUserMedia.remember=Ghi nhớ quyết định này
+# LOCALIZATION NOTE (getUserMedia.reasonForNoPermanentAllow.screen3,
+# getUserMedia.reasonForNoPermanentAllow.audio,
+# getUserMedia.reasonForNoPermanentAllow.insecure):
+# %S is brandShortName
+getUserMedia.reasonForNoPermanentAllow.screen3=%S có thể vĩnh viễn không cho phép quyền truy cập vào màn hình của bạn.
+getUserMedia.reasonForNoPermanentAllow.audio=%S không thể cho phép vĩnh viễn quyền truy cập vào phần âm thanh của thẻ mà không cần yêu cầu thẻ đó chia sẻ.
+getUserMedia.reasonForNoPermanentAllow.insecure=Kết nối của bạn đến website này không an toàn. Để bảo vệ bạn, %S sẽ chỉ cho phép truy cập vào trang này trong phiên hiện tại.
+
+getUserMedia.sharingMenu.label = Thiết bị chia sẻ thẻ
+getUserMedia.sharingMenu.accesskey = d
+# LOCALIZATION NOTE (getUserMedia.sharingMenuCamera
+# getUserMedia.sharingMenuMicrophone,
+# getUserMedia.sharingMenuAudioCapture,
+# getUserMedia.sharingMenuApplication,
+# getUserMedia.sharingMenuScreen,
+# getUserMedia.sharingMenuWindow,
+# getUserMedia.sharingMenuBrowser,
+# getUserMedia.sharingMenuCameraMicrophone,
+# getUserMedia.sharingMenuCameraMicrophoneApplication,
+# getUserMedia.sharingMenuCameraMicrophoneScreen,
+# getUserMedia.sharingMenuCameraMicrophoneWindow,
+# getUserMedia.sharingMenuCameraMicrophoneBrowser,
+# getUserMedia.sharingMenuCameraAudioCapture,
+# getUserMedia.sharingMenuCameraAudioCaptureApplication,
+# getUserMedia.sharingMenuCameraAudioCaptureScreen,
+# getUserMedia.sharingMenuCameraAudioCaptureWindow,
+# getUserMedia.sharingMenuCameraAudioCaptureBrowser,
+# getUserMedia.sharingMenuCameraApplication,
+# getUserMedia.sharingMenuCameraScreen,
+# getUserMedia.sharingMenuCameraWindow,
+# getUserMedia.sharingMenuCameraBrowser,
+# getUserMedia.sharingMenuMicrophoneApplication,
+# getUserMedia.sharingMenuMicrophoneScreen,
+# getUserMedia.sharingMenuMicrophoneWindow,
+# getUserMedia.sharingMenuMicrophoneBrowser,
+# getUserMedia.sharingMenuAudioCaptureApplication,
+# getUserMedia.sharingMenuAudioCaptureScreen,
+# getUserMedia.sharingMenuAudioCaptureWindow,
+# getUserMedia.sharingMenuAudioCaptureBrowser):
+# %S is the website origin (e.g. www.mozilla.org)
+getUserMedia.sharingMenuCamera = %S (camera)
+getUserMedia.sharingMenuMicrophone = %S (micro)
+getUserMedia.sharingMenuAudioCapture = %S (âm thanh trên thẻ)
+getUserMedia.sharingMenuApplication = %S (ứng dụng)
+getUserMedia.sharingMenuScreen = %S (màn hình)
+getUserMedia.sharingMenuWindow = %S (cửa sổ)
+getUserMedia.sharingMenuBrowser = %S (thẻ)
+getUserMedia.sharingMenuCameraMicrophone = %S (camera và micro)
+getUserMedia.sharingMenuCameraMicrophoneApplication = %S (camera, micro và ứng dụng)
+getUserMedia.sharingMenuCameraMicrophoneScreen = %S (camera, micro và màn hình)
+getUserMedia.sharingMenuCameraMicrophoneWindow = %S (camera, micro và cửa sổ)
+getUserMedia.sharingMenuCameraMicrophoneBrowser = %S (camera, micro, và thẻ)
+getUserMedia.sharingMenuCameraAudioCapture = %S (camera và âm thanh của thẻ)
+getUserMedia.sharingMenuCameraAudioCaptureApplication = %S (camera, âm thanh của thẻ và ứng dụng)
+getUserMedia.sharingMenuCameraAudioCaptureScreen = %S (camera, âm thanh của thẻ và màn hình)
+getUserMedia.sharingMenuCameraAudioCaptureWindow = %S (camera, âm thanh của thẻ và cửa sổ)
+getUserMedia.sharingMenuCameraAudioCaptureBrowser = %S (camera, âm thanh và thẻ)
+getUserMedia.sharingMenuCameraApplication = %S (camera và ứng dụng)
+getUserMedia.sharingMenuCameraScreen = %S (camera và màn hình)
+getUserMedia.sharingMenuCameraWindow = %S (camera và cửa sổ)
+getUserMedia.sharingMenuCameraBrowser = %S (camera và thẻ)
+getUserMedia.sharingMenuMicrophoneApplication = %S (micro và ứng dụng)
+getUserMedia.sharingMenuMicrophoneScreen = %S (micro và màn hình)
+getUserMedia.sharingMenuMicrophoneWindow = %S (micro và cửa sổ)
+getUserMedia.sharingMenuMicrophoneBrowser = %S (micro và thẻ)
+getUserMedia.sharingMenuAudioCaptureApplication = %S (âm thanh và ứng dụng của thẻ)
+getUserMedia.sharingMenuAudioCaptureScreen = %S (âm thanh của thẻ và màn hình)
+getUserMedia.sharingMenuAudioCaptureWindow = %S (âm thanh của thẻ và cửa sổ)
+getUserMedia.sharingMenuAudioCaptureBrowser = %S (âm thanh của thẻ và thẻ)
+# LOCALIZATION NOTE(getUserMedia.sharingMenuUnknownHost): this is used for the website
+# origin for the sharing menu if no readable origin could be deduced from the URL.
+getUserMedia.sharingMenuUnknownHost = Không rõ nguồn gốc
+
+# LOCALIZATION NOTE(emeNotifications.drmContentDisabled.message): NB: inserted via innerHTML, so please don't use <, > or & in this string. %S will be the 'learn more' link
+emeNotifications.drmContentDisabled.message2 = Bạn phải kích hoạt DRM để phát một số âm thanh hoặc video trên trang này.
+emeNotifications.drmContentDisabled.button.label = Kích hoạt DRM
+emeNotifications.drmContentDisabled.button.accesskey = E
+
+# LOCALIZATION NOTE(emeNotifications.drmContentCDMInstalling.message): NB: inserted via innerHTML, so please don't use <, > or & in this string. %S is brandShortName
+emeNotifications.drmContentCDMInstalling.message = %S đang cài đặt các thành phần cần thiết để xem audio hay video trên trang này. Xin hãy thử lại sau.
+
+emeNotifications.unknownDRMSoftware = Không rõ
+
+# LOCALIZATION NOTE (customizeMode.tabTitle): %S is brandShortName
+customizeMode.tabTitle = Tùy biến %S
+
+e10s.accessibilityNotice.acceptButton.label = OK
+e10s.accessibilityNotice.acceptButton.accesskey = O
+
+# LOCALIZATION NOTE (e10s.accessibilityNotice.jawsMessage): %S is brandShortName
+e10s.accessibilityNotice.jawsMessage = Việc hiển thị nội dung thẻ bị vô hiệu do không tương thích giữa %S và phần mềm truy cận của bạn. Vui lòng cập nhật trình đọc màn hình của bạn hoặc chuyển sang phiên bản Firefox phát hành hỗ trợ mở rộng.
+
+# LOCALIZATION NOTE (userContextPersonal.label,
+# userContextWork.label,
+# userContextShopping.label,
+# userContextBanking.label,
+# userContextNone.label):
+# These strings specify the four predefined contexts included in support of the
+# Contextual Identity / Containers project. Each context is meant to represent
+# the context that the user is in when interacting with the site. Different
+# contexts will store cookies and other information from those sites in
+# different, isolated locations. You can enable the feature by typing
+# about:config in the URL bar and changing privacy.userContext.enabled to true.
+# Once enabled, you can open a new tab in a specific context by clicking
+# File > New Container Tab > (1 of 4 contexts). Once opened, you will see these
+# strings on the right-hand side of the URL bar.
+userContextPersonal.label = Cá nhân
+userContextWork.label = Công việc
+userContextBanking.label = Ngân hàng
+userContextShopping.label = Mua sắm
+userContextNone.label = Không ngăn chứa
+
+userContextPersonal.accesskey = P
+userContextWork.accesskey = W
+userContextBanking.accesskey = B
+userContextShopping.accesskey = S
+userContextNone.accesskey = N
+
+userContext.aboutPage.label = Quản lý ngăn chứa
+userContext.aboutPage.accesskey = O
+
+muteTab.label = Tắt tiếng thẻ
+muteTab.accesskey = M
+unmuteTab.label = Bật tiếng thẻ
+unmuteTab.accesskey = m
+
+muteSelectedTabs2.label = Tắt tiếng thẻ
+# LOCALIZATION NOTE (muteSelectedTabs2.accesskey): The accesskey should
+# match the accesskey for muteTab.accesskey
+muteSelectedTabs2.accesskey = M
+unmuteSelectedTabs2.label = Bỏ tắt tiếng thẻ
+# LOCALIZATION NOTE (unmuteSelectedTabs2.accesskey): The accesskey should
+# match the accesskey for unmuteTab.accesskey
+unmuteSelectedTabs2.accesskey = m
+
+# LOCALIZATION NOTE (sendTabsToDevice.label):
+# Semi-colon list of plural forms.
+# See: https://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is the number of tabs sent to the device.
+sendTabsToDevice.label = Gửi #1 thẻ đến thiết bị
+sendTabsToDevice.accesskey = n
+
+# LOCALIZATION NOTE (pendingCrashReports2.label): Semi-colon list of plural forms
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is the number of pending crash reports
+pendingCrashReports2.label = Bạn có #1 bản báo cáo lỗi chưa gửi
+pendingCrashReports.viewAll = Xem
+pendingCrashReports.send = Gửi
+pendingCrashReports.alwaysSend = Luôn gửi
+
+decoder.noCodecs.button = Tìm hiểu làm thế nào
+decoder.noCodecs.accesskey = L
+decoder.noCodecsLinux.message = Để phát video, bạn có thể cần phải cài codec.
+decoder.noHWAcceleration.message = Để cải thiện chất lượng video, bạn có thể cần phải cài Media Feature Pack của Microsoft.
+decoder.noPulseAudio.message = Để phát âm thanh, bạn có thể cần phải cài phần mềm PulseAudio.
+decoder.unsupportedLibavcodec.message = libavcodec có thể bị tấn công hoặc không được hỗ trợ, và nên được cập nhật để phát video.
+
+decoder.decodeError.message = Đã xảy ra lỗi khi mã hóa một tài nguyên phương tiện truyền thông.
+decoder.decodeError.button = Báo cáo vấn đề về trang
+decoder.decodeError.accesskey = R
+decoder.decodeWarning.message = Việc khôi phục đã xảy ra lỗi khi mã hóa một tài nguyên phương tiện truyền thông.
+
+# LOCALIZATION NOTE (captivePortal.infoMessage3):
+# Shown in a notification bar when we detect a captive portal is blocking network access
+# and requires the user to log in before browsing.
+captivePortal.infoMessage3 = Bạn phải đăng nhập vào hệ thống này trước khi bạn có thể truy cập Internet.
+# LOCALIZATION NOTE (captivePortal.showLoginPage2):
+# The label for a button shown in the info bar in all tabs except the login page tab.
+# The button shows the portal login page tab when clicked.
+captivePortal.showLoginPage2 = Mở trang đăng nhập hệ thống
+
+# LOCALIZATION NOTE (permissions.header):
+# %S is the hostname of the site that is being displayed.
+permissions.header = Quyền hạn cho %S
+permissions.remove.tooltip = Xóa quyền này và hỏi lại
+
+permissions.fullscreen.promptCanceled = Đã hủy yêu cầu cấp phép đang chờ xử lý: không nên đưa ra yêu cầu cấp phép trước khi vào toàn màn hình DOM.
+permissions.fullscreen.fullScreenCanceled = Toàn màn hình DOM đã thoát: không nên đưa ra yêu cầu cấp phép trong khi ở chế độ toàn màn hình DOM.
+
+# LOCALIZATION NOTE (aboutDialog.architecture.*):
+# The sixtyFourBit and thirtyTwoBit strings describe the architecture of the
+# current Firefox build: 32-bit or 64-bit. These strings are used in parentheses
+# between the Firefox version and the "What's new" link in the About dialog,
+# e.g.: "48.0.2 (32-bit) " or "51.0a1 (2016-09-05) (64-bit)".
+aboutDialog.architecture.sixtyFourBit = 64-bit
+aboutDialog.architecture.thirtyTwoBit = 32-bit
+
+midi.allow.label = Cho phép
+midi.allow.accesskey = A
+midi.block.label = Chặn
+midi.block.accesskey = B
+midi.remember=Ghi nhớ quyết định này
+midi.shareWithFile = Cho phép tập tin cục bộ này truy cập thiết bị MIDI của bạn?
+# LOCALIZATION NOTE (midi.shareWithSite): %S is the name of the site URL (https://...) requesting MIDI access
+midi.shareWithSite = Cho phép %S truy cập thiết bị MIDI của bạn?
+midi.shareSysexWithFile = Cho phép tập tin cục bộ này truy cập thiết bị MIDI của bạn và gửi/nhận tin nhắn SysEx?
+# LOCALIZATION NOTE (midi.shareSysexWithSite): %S is the name of the site URL (https://...) requesting MIDI access
+midi.shareSysexWithSite = Cho phép %S truy cập thiết bị MIDI của bạn và gửi/nhận tin nhắn SysEx?
+
+# LOCALIZATION NOTE (panel.back):
+# This is used by screen readers to label the "back" button in various browser
+# popup panels, including the sliding subviews of the main menu.
+panel.back = Quay lại
+
+storageAccess1.Allow.label = Cho phép
+storageAccess1.Allow.accesskey = A
+storageAccess1.DontAllow.label = Chặn
+storageAccess1.DontAllow.accesskey = B
+# LOCALIZATION NOTE (storageAccess4.message, storageAccess1.hintText):
+# %1$S is the name of the site URL (www.site1.example) trying to track the user's activity.
+# %2$S is the name of the site URL (www.site2.example) that the user is visiting. This is the same domain name displayed in the address bar.
+storageAccess4.message = Cho phép %1$S sử dụng cookie của mình trên %2$S?
+storageAccess1.hintText = Bạn có thể muốn chặn quyền truy cập nếu không rõ tại sao %1$S cần dữ liệu này.
+
+
+
+confirmationHint.sendToDevice.label = Đã gửi!
+confirmationHint.copyURL.label = Đã sao chép vào bộ nhớ tạm!
+confirmationHint.pageBookmarked2.label = Đã lưu vào dấu trang
+confirmationHint.pinTab.label = Đã ghim!
+confirmationHint.pinTab.description = Nhấp chuột phải vào thẻ để bỏ ghim nó.
+confirmationHint.passwordSaved.label = Mật khẩu đã được lưu!
+confirmationHint.loginRemoved.label = Đã xóa thông tin đăng nhập!
+confirmationHint.breakageReport.label = Đã gửi báo cáo. Cảm ơn bạn!
+
+# LOCALIZATION NOTE (gnomeSearchProviderSearch):
+# Used for search by Gnome Shell activity screen, %S is a searched string.
+gnomeSearchProviderSearch=Tìm kiếm trên web cho %S
+
+# LOCALIZATION NOTE (gnomeSearchProviderSearchWeb):
+# Used for search by Gnome Shell activity screen, %S is a searched string.
+gnomeSearchProviderSearchWeb=Tìm kiếm trên web cho “%S”
diff --git a/l10n-vi/browser/chrome/browser/customizableui/customizableWidgets.properties b/l10n-vi/browser/chrome/browser/customizableui/customizableWidgets.properties
new file mode 100644
index 0000000000..772b2c12be
--- /dev/null
+++ b/l10n-vi/browser/chrome/browser/customizableui/customizableWidgets.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/.
+
+history-panelmenu.label = Lịch sử
+# LOCALIZATION NOTE(history-panelmenu.tooltiptext2): %S is the keyboard shortcut
+history-panelmenu.tooltiptext2 = Hiển thị lịch sử của bạn (%S)
+
+find-button.label = Tìm
+# LOCALIZATION NOTE(find-button.tooltiptext3): %S is the keyboard shortcut.
+find-button.tooltiptext3 = Tìm trong trang này (%S)
+
+developer-button.label = Nhà phát triển
+# LOCALIZATION NOTE(developer-button.tooltiptext): %S is the keyboard shortcut
+developer-button.tooltiptext2 = Mở công cụ nhà phát triển Web (%S)
+
+sidebar-button.label = Thanh lề
+sidebar-button.tooltiptext2 = Hiển thị thanh lề
+
+zoom-controls.label = Chỉnh kích thước
+zoom-controls.tooltiptext2 = Chỉnh kích thước
+
+zoom-out-button.label = Thu nhỏ
+# LOCALIZATION NOTE(zoom-out-button.tooltiptext2): %S is the keyboard shortcut.
+zoom-out-button.tooltiptext2 = Thu nhỏ (%S)
+
+# LOCALIZATION NOTE(zoom-reset-button.tooltiptext2): %S is the keyboard shortcut.
+zoom-reset-button.tooltiptext2 = Đặt lại mức độ thu phóng (%S)
+
+zoom-in-button.label = Phóng to
+# LOCALIZATION NOTE(zoom-in-button.tooltiptext2): %S is the keyboard shortcut.
+zoom-in-button.tooltiptext2 = Phóng to (%S)
+
+edit-controls.label = Các nút chỉnh sửa nội dung
+edit-controls.tooltiptext2 = Các nút chỉnh sửa nội dung
+
+cut-button.label = Cắt
+# LOCALIZATION NOTE(cut-button.tooltiptext2): %S is the keyboard shortcut.
+cut-button.tooltiptext2 = Cắt (%S)
+
+copy-button.label = Sao chép
+# LOCALIZATION NOTE(copy-button.tooltiptext2): %S is the keyboard shortcut.
+copy-button.tooltiptext2 = Sao chép (%S)
+
+paste-button.label = Dán
+# LOCALIZATION NOTE(paste-button.tooltiptext2): %S is the keyboard shortcut.
+paste-button.tooltiptext2 = Dán (%S)
+
+panic-button.label = Xóa
+panic-button.tooltiptext = Xóa một số lịch sử duyệt web
+
+toolbarspring.label = Khoảng cách linh động
+toolbarseparator.label = Dấu phân cách
+toolbarspacer.label = Khoảng trắng
diff --git a/l10n-vi/browser/chrome/browser/downloads/downloads.properties b/l10n-vi/browser/chrome/browser/downloads/downloads.properties
new file mode 100644
index 0000000000..ddbc728e42
--- /dev/null
+++ b/l10n-vi/browser/chrome/browser/downloads/downloads.properties
@@ -0,0 +1,83 @@
+# 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 (stateStarting):
+# Indicates that the download is starting.
+stateStarting=Đang bắt đầu…
+# LOCALIZATION NOTE (stateFailed):
+# Indicates that the download failed because of an error.
+stateFailed=Thất bại
+# LOCALIZATION NOTE (statePaused):
+# Indicates that the download was paused by the user.
+statePaused=Đã tạm dừng
+# LOCALIZATION NOTE (stateCanceled):
+# Indicates that the download was canceled by the user.
+stateCanceled=Đã hủy
+# LOCALIZATION NOTE (stateCompleted):
+# Indicates that the download was completed.
+stateCompleted=Đã hoàn tất
+# LOCALIZATION NOTE (stateBlockedParentalControls):
+# Indicates that the download was blocked by the Parental Controls feature of
+# Windows. "Parental Controls" should be consistently named and capitalized
+# with the display of this feature in Windows. The following article can
+# provide a reference for the translation of "Parental Controls" in various
+# languages:
+# http://windows.microsoft.com/en-US/windows-vista/Set-up-Parental-Controls
+stateBlockedParentalControls=Bị chặn bởi trình kiểm soát con
+# LOCALIZATION NOTE (blockedMalware, blockedPotentiallyUnwanted,
+# blockedUncommon2):
+# These strings are shown in the panel for some types of blocked downloads. You
+# may need to adjust "downloads.width" in "downloads.dtd" if this turns out to
+# be longer than the other existing status strings.
+blockedMalware=Tập tin này có chứa virus hoặc phần mềm ác ý.
+blockedPotentiallyUnwanted=Tập tin này có thể làm hại máy tính của bạn.
+blockedPotentiallyInsecure=Tập tin không được tải xuống: Rủi ro bảo mật tiềm ẩn.
+blockedUncommon2=Tập tin này thường không được tải xuống.
+
+# LOCALIZATION NOTE (fileMovedOrMissing):
+# Displayed when a complete download which is not at the original folder.
+fileMovedOrMissing=Tập tin đã bị di chuyển hoặc bị thiếu
+
+# LOCALIZATION NOTE (fileDeleted):
+# Displayed when a downloaded file has been deleted by Firefox, e.g. by the
+# "Delete File" context menu item.
+fileDeleted=Tập tin đã bị xóa
+
+# LOCALIZATION NOTE (unblockHeaderUnblock, unblockHeaderOpen,
+# unblockTypeMalware, unblockTypePotentiallyUnwanted2,
+# unblockTypeUncommon2, unblockTip2, unblockButtonOpen,
+# unblockButtonUnblock, unblockButtonConfirmBlock, unblockInsecure2):
+# These strings are displayed in the dialog shown when the user asks a blocked
+# download to be unblocked. The severity of the threat is expressed in
+# descending order by the unblockType strings, it is higher for files detected
+# as malware and lower for uncommon downloads.
+unblockHeaderUnblock=Bạn có chắc chắn muốn cho phép việc tải xuống này không?
+unblockHeaderOpen=Bạn có chắc bạn muốn mở tập tin này không?
+unblockTypeMalware=Tập tin này có chứa virus hoặc phần mềm ác ý, có thể gây hại cho máy của bạn.
+unblockTypePotentiallyUnwanted2=Tập tin này giả dạng là một tải xuống hữu ích, nhưng nó có thể tạo ra những thay đổi không mong muốn với những ứng dụng và cài đặt của bạn.
+unblockTypeUncommon2=Tập tin này thường không được tải xuống và có thể không an toàn để mở. Nó có thể chứa virus hoặc tạo ra những thay đổi không mong muốn với những thiết lập và chương trình của bạn.
+unblockInsecure=Tập tin sử dụng kết nối không an toàn. Nó có thể bị hỏng hoặc bị giả mạo trong quá trình tải xuống.
+unblockInsecure2=Tải xuống được cung cấp qua HTTP mặc dù tài liệu hiện tại được gửi qua kết nối HTTPS an toàn. Nếu bạn tiếp tục, quá trình tải xuống có thể bị hỏng hoặc bị giả mạo trong quá trình tải xuống.
+unblockTip2=Bạn có thể tìm một nguồn tải xuống khác hoặc thử lại sau.
+unblockButtonOpen=Mở
+unblockButtonUnblock=Cho phép tải xuống
+unblockButtonConfirmBlock=Xóa tập tin
+
+# LOCALIZATION NOTE (sizeWithUnits):
+# %1$S is replaced with the size number, and %2$S with the measurement unit.
+sizeWithUnits=%1$S %2$S
+sizeUnknown=Kích thước không xác định
+
+# LOCALIZATION NOTE (statusSeparator, statusSeparatorBeforeNumber):
+# These strings define templates for the separation of different elements in the
+# status line of a download item. As a separator, by default we use the Unicode
+# character U+2014 'EM DASH' (long dash). Examples of status lines include
+# "Canceled - 222.net", "1.1 MB - website2.com", or "Paused - 1.1 MB". Note
+# that we use a wider space after the separator when it is followed by a number,
+# just to avoid visually confusing it with with a minus sign with some fonts.
+# If you use a different separator, this might not be necessary. However, there
+# is usually no need to change the separator or the order of the substitutions,
+# even for right-to-left languages, unless the defaults are not suitable.
+statusSeparator=%1$S — %2$S
+statusSeparatorBeforeNumber=%1$S — %2$S
diff --git a/l10n-vi/browser/chrome/browser/feeds/subscribe.properties b/l10n-vi/browser/chrome/browser/feeds/subscribe.properties
new file mode 100644
index 0000000000..a32ef5b4a7
--- /dev/null
+++ b/l10n-vi/browser/chrome/browser/feeds/subscribe.properties
@@ -0,0 +1,10 @@
+# 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 (addProtocolHandlerMessage):
+# Message displayed when adding a protocol handler:
+# %1$S is the application's domain, %2$S is the type of protocol
+addProtocolHandlerMessage=Thêm “%1$S” làm ứng dụng cho liên kết %2$S?
+addProtocolHandlerAddButton=Thêm ứng dụng
+addProtocolHandlerAddButtonAccesskey=A
diff --git a/l10n-vi/browser/chrome/browser/places/bookmarkProperties.properties b/l10n-vi/browser/chrome/browser/places/bookmarkProperties.properties
new file mode 100644
index 0000000000..3e72eab7a3
--- /dev/null
+++ b/l10n-vi/browser/chrome/browser/places/bookmarkProperties.properties
@@ -0,0 +1,24 @@
+# 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/.
+
+dialogAcceptLabelAddItem=Thêm
+dialogAcceptLabelSaveItem=Lưu
+dialogAcceptLabelAddMulti=Thêm các dấu trang
+dialogAcceptLabelEdit=Lưu
+dialogTitleAddBookmark=Dấu trang mới
+dialogTitleAddFolder=Thư mục mới
+dialogTitleAddMulti=Dấu trang mới
+dialogTitleEdit=Thuộc tính của "%S"
+
+dialogTitleAddNewBookmark2=Thêm dấu trang
+dialogTitleEditBookmark=Chỉnh sửa “%S”
+dialogTitleEditBookmark2=Chỉnh sửa dấu trang
+dialogTitleAddBookmarksFolder=Thêm thư mục dấu trang
+dialogTitleAddBookmarkFolder=Thêm thư mục dấu trang
+dialogTitleEditBookmarksFolder=Chỉnh sửa thư mục dấu trang
+dialogTitleEditBookmarkFolder=Chỉnh sửa thư mục dấu trang
+
+bookmarkAllTabsDefault=[Tên thư mục]
+newFolderDefault=Thư mục mới
+newBookmarkDefault=Dấu trang mới
diff --git a/l10n-vi/browser/chrome/browser/places/places.properties b/l10n-vi/browser/chrome/browser/places/places.properties
new file mode 100644
index 0000000000..9e1a412b35
--- /dev/null
+++ b/l10n-vi/browser/chrome/browser/places/places.properties
@@ -0,0 +1,79 @@
+# 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/.
+
+load-js-data-url-error=Vì lí do bảo mật, JavaScript hoặc URL dữ liệu không thể được nạp từ thanh lề hoặc cửa sổ nhật ký.
+noTitle=(không tiêu đề)
+
+bookmarksMenuEmptyFolder=(Trống)
+
+bookmarksBackupTitle=Tên tập tin sao lưu dấu trang
+
+bookmarksRestoreAlertTitle=Khôi phục dấu trang
+bookmarksRestoreAlert=Việc này sẽ ghi đè tất cả các dấu trang hiện thời của bạn. Bạn có chắc không?
+bookmarksRestoreTitle=Chọn bản sao lưu chứa dấu trang
+bookmarksRestoreFilterName=JSON
+
+bookmarksRestoreFormatError=Kiểu tập tin không hỗ trợ.
+bookmarksRestoreParseError=Không thể xử lí tập tin sao lưu.
+
+# LOCALIZATION NOTE (view.sortBy.1.name.label): sortBy properties are versioned.
+# When any of these changes, all of the properties must be bumped, and the
+# change must be annotated here. Both label and accesskey must be updated.
+# - version 1: changed view.sortBy.1.date.
+view.sortBy.1.name.label=Sắp xếp theo tên
+view.sortBy.1.name.accesskey=t
+view.sortBy.1.url.label=Sắp xếp theo địa chỉ
+view.sortBy.1.url.accesskey=c
+view.sortBy.1.date.label=Sắp xếp theo lần xem gần đây
+view.sortBy.1.date.accesskey=g
+view.sortBy.1.visitCount.label=Sắp xếp theo số lần xem
+view.sortBy.1.visitCount.accesskey=s
+view.sortBy.1.dateAdded.label=Sắp xếp theo thời điểm thêm vào
+view.sortBy.1.dateAdded.accesskey=t
+view.sortBy.1.lastModified.label=Sắp xếp theo sửa đổi lần cuối
+view.sortBy.1.lastModified.accesskey=c
+view.sortBy.1.tags.label=Sắp xếp theo nhãn
+view.sortBy.1.tags.accesskey=n
+
+searchBookmarks=Tìm kiếm dấu trang
+searchHistory=Tìm kiếm lịch sử
+searchDownloads=Tìm kiếm dữ liệu đã tải xuống
+
+SelectImport=Nhập tập tin chứa dấu trang
+EnterExport=Xuất dấu trang sang tập tin
+
+detailsPane.noItems=Không có mục nào
+# LOCALIZATION NOTE (detailsPane.itemsCountLabel): Semicolon-separated list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 number of items
+# example: 111 items
+detailsPane.itemsCountLabel=#1 mục
+
+# LOCALIZATION NOTE (lockPrompt.text)
+# %S will be replaced with the application name.
+lockPrompt.text=Hệ thống các dấu trang và lịch sử sẽ không hoạt động vì một tập tin của %S đang bị một ứng dụng khác sử dụng. Một phần mềm bảo mật nào đó cũng có thể gây ra vấn đề này.
+
+# LOCALIZATION NOTE (cmd.deleteSinglePage.accesskey,
+# cmd.deleteMultiplePages.accesskey): these accesskeys can use the same
+# character, since they're never displayed at the same time
+cmd.deleteSinglePage.label=Xóa trang
+cmd.deleteSinglePage.accesskey=D
+cmd.deleteMultiplePages.label=Xóa trang
+cmd.deleteMultiplePages.accesskey=D
+
+# LOCALIZATION NOTE (cmd.bookmarkSinglePage.accesskey,
+# cmd.bookmarkMultiplePages.accesskey): these accesskeys can use the same
+# character, since they're never displayed at the same time
+cmd.bookmarkSinglePage.label=Đánh dấu trang
+cmd.bookmarkSinglePage.accesskey=B
+cmd.bookmarkMultiplePages.label=Đánh dấu các trang
+cmd.bookmarkMultiplePages.accesskey=B
+
+# LOCALIZATION NOTE (cmd.bookmarkSinglePage.accesskey,
+# cmd.bookmarkMultiplePages.accesskey): these accesskeys can use the same
+# character, since they're never displayed at the same time
+cmd.bookmarkSinglePage2.label=Đánh dấu trang…
+cmd.bookmarkSinglePage2.accesskey=B
+cmd.bookmarkMultiplePages2.label=Đánh dấu các trang…
+cmd.bookmarkMultiplePages2.accesskey=B
diff --git a/l10n-vi/browser/chrome/browser/safebrowsing/safebrowsing.properties b/l10n-vi/browser/chrome/browser/safebrowsing/safebrowsing.properties
new file mode 100644
index 0000000000..051aa32743
--- /dev/null
+++ b/l10n-vi/browser/chrome/browser/safebrowsing/safebrowsing.properties
@@ -0,0 +1,6 @@
+# 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/.
+
+errorReportFalseDeceptiveTitle=Đây không phải là trang lừa đảo
+errorReportFalseDeceptiveMessage=Không thể báo cáo lỗi tại thời điểm này.
diff --git a/l10n-vi/browser/chrome/browser/search.properties b/l10n-vi/browser/chrome/browser/search.properties
new file mode 100644
index 0000000000..9dbeaa68f4
--- /dev/null
+++ b/l10n-vi/browser/chrome/browser/search.properties
@@ -0,0 +1,33 @@
+# 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/.
+
+searchtip=Tìm kiếm bằng %S
+
+# LOCALIZATION NOTE (searchHeader): this is displayed at the top of the panel
+# showing search suggestions.
+# %S is replaced with the name of the current default search engine.
+searchHeader=Tìm với %S
+
+# LOCALIZATION NOTE (cmd_pasteAndSearch): "Search" is a verb, this is the
+# search bar equivalent to the url bar's "Paste & Go"
+cmd_pasteAndSearch=Dán & tìm
+
+cmd_clearHistory=Xóa lịch sử tìm kiếm
+cmd_clearHistory_accesskey=X
+
+# LOCALIZATION NOTE (searchForSomethingWith2):
+# This string is used to build the header above the list of one-click
+# search providers: "Search for with:"
+searchForSomethingWith2=Tìm %S với:
+
+# LOCALIZATION NOTE (searchWithHeader):
+# The wording of this string should be as close as possible to
+# searchForSomethingWith2. This string will be used when the user
+# has not typed anything.
+searchWithHeader=Tìm với:
+
+# LOCALIZATION NOTE (searchSettings):
+# This is the label for the button that opens Search preferences.
+searchSettings=Thay đổi thiết lập tìm kiếm
+
diff --git a/l10n-vi/browser/chrome/browser/shellservice.properties b/l10n-vi/browser/chrome/browser/shellservice.properties
new file mode 100644
index 0000000000..538575a10f
--- /dev/null
+++ b/l10n-vi/browser/chrome/browser/shellservice.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/.
+
+# LOCALIZATION NOTE (setDefaultBrowserTitle, setDefaultBrowserMessage, setDefaultBrowserDontAsk, setDefaultBrowserAlertConfirm.label, setDefaultBrowserAlertNotNow.label):
+# These strings are used as an alternative to the ones above, in a modal dialog.
+# %S will be replaced by brandShortName
+setDefaultBrowserTitle=Trình duyệt mặc định
+setDefaultBrowserMessage=%S hiện tại chưa phải là trình duyệt mặc định của bạn. Bạn có muốn đặt làm trình duyệt mặc định không?
+setDefaultBrowserDontAsk=Luôn kiểm tra khi khởi động %S.
+setDefaultBrowserAlertConfirm.label=Đặt %S làm trình duyệt mặc định
+setDefaultBrowserAlertNotNow.label=&Không phải bây giờ
+
+desktopBackgroundLeafNameWin=Ảnh nền.bmp
+DesktopBackgroundDownloading=Đang lưu ảnh…
+DesktopBackgroundSet=Đặt làm ảnh nền máy tính bàn
diff --git a/l10n-vi/browser/chrome/browser/siteData.properties b/l10n-vi/browser/chrome/browser/siteData.properties
new file mode 100644
index 0000000000..fabf173ba7
--- /dev/null
+++ b/l10n-vi/browser/chrome/browser/siteData.properties
@@ -0,0 +1,8 @@
+# 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/.
+
+clearSiteDataPromptTitle=Xóa tất cả cookie và dữ liệu trang web
+# LOCALIZATION NOTE (clearSiteDataPromptText): %S = brandShortName
+clearSiteDataPromptText=Chọn ‘Xóa ngay’ sẽ xóa tất cả cookie và dữ liệu trang được lưu bởi %S. Điều này có thể khiến bạn đăng xuất khỏi các trang web và xóa nội dung web ngoại tuyến.
+clearSiteDataNow=Xóa ngay
diff --git a/l10n-vi/browser/chrome/browser/sitePermissions.properties b/l10n-vi/browser/chrome/browser/sitePermissions.properties
new file mode 100644
index 0000000000..08217300b0
--- /dev/null
+++ b/l10n-vi/browser/chrome/browser/sitePermissions.properties
@@ -0,0 +1,55 @@
+# 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 (state.current.allowed,
+# state.current.allowedForSession,
+# state.current.allowedTemporarily,
+# state.current.blockedTemporarily,
+# state.current.blocked,
+# state.current.hide):
+# This label is used to display active permission states in the site
+# identity popup (which does not have a lot of screen space).
+state.current.allowed = Đã cho phép
+state.current.allowedForSession = Cho phép theo phiên
+state.current.allowedTemporarily = Cho phép tạm thời
+state.current.blockedTemporarily = Chặn tạm thời
+state.current.blocked = Đã bị chặn
+state.current.prompt = Luôn hỏi
+
+# LOCALIZATION NOTE (state.multichoice.alwaysAsk,
+# state.multichoice.allow,
+# state.multichoice.allowForSession,
+# state.multichoice.block):
+# Used to label permission state checkboxes in the page info dialog.
+state.multichoice.alwaysAsk = Luôn hỏi
+state.multichoice.allow = Cho phép
+state.multichoice.allowForSession = Cho phép theo phiên
+state.multichoice.block = Chặn
+
+state.multichoice.autoplayblock = Chặn âm thanh
+state.multichoice.autoplayblockall = Chặn âm thanh và video
+state.multichoice.autoplayallow = Cho phép âm thanh và video
+
+permission.autoplay.label = Tự động phát
+permission.cookie.label = Đặt cookie
+permission.desktop-notification3.label = Gửi thông báo
+permission.camera.label = Sử dụng máy ảnh
+permission.microphone.label = Sử dụng micro
+permission.screen.label = Chia sẻ màn hình
+# LOCALIZATION NOTE (permission.speaker.label):
+# Short form for (permission to) "Choose and change audio output devices".
+permission.speaker.label = Chọn loa
+permission.install.label = Cài đặt tiện ích
+permission.popup.label = Mở cửa sổ bật lên
+permission.geo.label = Truy cập vị trí của bạn
+permission.xr.label = Truy cập thiết bị thực tế ảo
+permission.shortcuts.label = Ghi đè các phím tắt
+permission.focus-tab-by-prompt.label = Chuyển sang thẻ này
+permission.persistent-storage.label = Lưu trữ dữ liệu ở bộ nhớ lâu dài
+permission.canvas.label = Trích xuất dữ liệu canvas
+permission.midi.label = Truy cập thiết bị MIDI
+permission.midi-sysex.label = Truy cập thiết bị MIDI với hỗ trợ SysEx
+# LOCALIZATION NOTE (permission.open-protocol-handler.label):
+# Open as a verb. "This site may open applications".
+permission.open-protocol-handler.label = Mở ứng dụng
diff --git a/l10n-vi/browser/chrome/browser/syncSetup.properties b/l10n-vi/browser/chrome/browser/syncSetup.properties
new file mode 100644
index 0000000000..a688538107
--- /dev/null
+++ b/l10n-vi/browser/chrome/browser/syncSetup.properties
@@ -0,0 +1,14 @@
+# 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/.
+
+# Several other strings are used (via Weave.Status.login), but they come from
+# /services/sync
+
+# Firefox Accounts based setup.
+continue.label = Tiếp tục
+
+relinkVerify.title = Cảnh báo gộp dữ liệu
+relinkVerify.heading = Bạn có chắc bạn muốn đăng nhập vào Đồng bộ không?
+# LOCALIZATION NOTE (relinkVerify.description): Email address of a user previously signed into sync.
+relinkVerify.description = Một người dùng khác đã đăng nhập vào đồng bộ hóa trên máy tính này. Nếu bây giờ bạn đăng nhập thì sẽ gộp dữ liệu dấu trang, mật khẩu và những thiết lập khác với %S
diff --git a/l10n-vi/browser/chrome/browser/tabbrowser.properties b/l10n-vi/browser/chrome/browser/tabbrowser.properties
new file mode 100644
index 0000000000..ae5020b146
--- /dev/null
+++ b/l10n-vi/browser/chrome/browser/tabbrowser.properties
@@ -0,0 +1,106 @@
+# 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/.
+
+tabs.emptyTabTitle=Thẻ mới
+tabs.emptyPrivateTabTitle=Duyệt web riêng tư
+tabs.emptyPrivateTabTitle2=Thẻ riêng tư mới
+tabs.closeTab=Đóng thẻ
+tabs.close=Đóng
+
+# This section applies when closing a window with more than one tab open,
+# or when quitting when only one window is open.
+# LOCALIZATION NOTE (tabs.closeTabsTitle):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# The singular form is not considered since this string is used only for
+# multiple tabs.
+tabs.closeTabsTitle=Đóng #1 thẻ?
+tabs.closeTabsConfirmCheckbox=Xác nhận trước khi đóng nhiều thẻ
+tabs.closeButtonMultiple=Đóng thẻ
+
+# This section applies when quitting using the menu and multiple windows are open.
+# LOCALIZATION NOTE (tabs.closeTitleTabs):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# The forms for 0 or 1 items are not considered since this string is used only for
+# multiple windows. The %S replacement form will be replaced with the contents
+tabs.closeWindowsTitle=Đóng #1 cửa sổ?
+tabs.closeWindowsButton=Đóng và thoát
+# Same as tabs.closeWindowsButton, but on Windows
+tabs.closeWindowsButtonWin=Đóng và thoát
+
+# LOCALIZATION NOTE (tabs.closeTabsWithKeyTitle and closeTabsWithKeyButton):
+# This section applies when quitting using the keyboard shortcut (Ctrl/Cmd+Q)
+# Windows does not show a prompt on quit when using the keyboard shortcut by
+# default.
+# %S is replaced with brandShorterName
+tabs.closeTabsWithKeyTitle=Đóng cửa sổ và thoát %S?
+# %S is replaced with brandShorterName
+tabs.closeTabsWithKeyButton=Thoát %S
+
+# LOCALIZATION NOTE (tabs.closeTabsWithKeyConfirmCheckbox):
+# %S is replaced with the text of the keyboard shortcut for quitting.
+tabs.closeTabsWithKeyConfirmCheckbox=Xác nhận trước khi thoát bằng %S
+
+# LOCALIZATION NOTE (tabs.closeTabs.tooltip):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is the number of tabs that will be closed. This is ignored for the
+# single tab case in English, but can be used by other locales as necessary.
+tabs.closeTabs.tooltip=Đóng #1 thẻ
+
+# LOCALIZATION NOTE (tabs.muteAudio2.tooltip):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# %S is the keyboard shortcut for "Mute tab".
+# #1 is the number of tabs that will be muted. This is ignored for the
+# single tab case in English, but can be used by other locales as necessary.
+tabs.muteAudio2.tooltip=Tắt tiếng #1 thẻ (%S)
+
+# LOCALIZATION NOTE (tabs.unmuteAudio2.tooltip):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# %S is the keyboard shortcut for "Unmute tab".
+# #1 is the number of tabs that will be unmuted. This is ignored for the
+# single tab case in English, but can be used by other locales as necessary.
+tabs.unmuteAudio2.tooltip=Bật tiếng #1 thẻ (%S)
+
+# LOCALIZATION NOTE (tabs.muteAudio2.background.tooltip):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is the number of tabs that will be muted. This is ignored for the
+# single tab case in English, but can be used by other locales as necessary.
+tabs.muteAudio2.background.tooltip=Tắt tiếng #1 thẻ
+
+# LOCALIZATION NOTE (tabs.unmuteAudio2.background.tooltip):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is the number of tabs that will be unmuted. This is ignored for the
+# single tab case in English, but can be used by other locales as necessary.
+tabs.unmuteAudio2.background.tooltip=Bật tiếng #1 thẻ
+
+# LOCALIZATION NOTE (tabs.unblockAudio2.tooltip):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is the number of tabs that will have their audio unblocked. This is ignored for the
+# single tab case in English, but can be used by other locales as necessary.
+tabs.unblockAudio2.tooltip=Phát âm thanh #1 thẻ
+
+# LOCALIZATION NOTE (tabs.containers.tooltip):
+# Displayed as a tooltip on container tabs
+# %1$S is the title of the current tab
+# %2$S is the name of the current container
+tabs.containers.tooltip=%1$S - %2$S
+
+# LOCALIZATION NOTE (tabs.openWarningTitle, tabs.openWarningMultipleBranded, tabs.openButtonMultiple, tabs.openWarningPromptMeBranded):
+# These items are moved from chrome/browser/places/places.properties
+# Now they are not specific to bookmark.
+tabs.openWarningTitle=Xác nhận mở
+tabs.openWarningMultipleBranded=Bạn đang chuẩn bị mở %S thẻ. Nó sẽ gây chậm %S khi các trang web đang tải. Bạn có muốn tiếp tục?
+tabs.openButtonMultiple=Mở các thẻ
+tabs.openWarningPromptMeBranded=Cảnh báo tôi khi mở nhiều thẻ có thể làm chậm %S
+
+browsewithcaret.checkMsg=Không hiện lại hộp thoại này.
+browsewithcaret.checkWindowTitle=Duyệt với con trỏ
+browsewithcaret.checkLabel=Nhấn F7 để bật hoặc tắt chế độ duyệt với con trỏ. Chức năng này đặt một con trỏ có thể di chuyển được trên trang web, cho phép bạn chọn văn bản bằng bàn phím. Bạn có muốn bật chế độ này không?
diff --git a/l10n-vi/browser/chrome/browser/taskbar.properties b/l10n-vi/browser/chrome/browser/taskbar.properties
new file mode 100644
index 0000000000..8c333ed5bd
--- /dev/null
+++ b/l10n-vi/browser/chrome/browser/taskbar.properties
@@ -0,0 +1,12 @@
+# 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/.
+
+taskbar.tasks.newTab.label=Mở thẻ mới
+taskbar.tasks.newTab.description=Mở một thẻ trình duyệt mới.
+taskbar.tasks.newWindow.label=Mở cửa sổ mới
+taskbar.tasks.newWindow.description=Mở một cửa sổ trình duyệt mới.
+taskbar.tasks.newPrivateWindow.label=Cửa sổ riêng tư mới
+taskbar.tasks.newPrivateWindow.description=Mở một cửa sổ mới ở chế độ duyệt riêng tư.
+taskbar.frequent.label=Sử dụng thường xuyên
+taskbar.recent.label=Gần đây
diff --git a/l10n-vi/browser/chrome/browser/translation.dtd b/l10n-vi/browser/chrome/browser/translation.dtd
new file mode 100644
index 0000000000..c4ab050fb2
--- /dev/null
+++ b/l10n-vi/browser/chrome/browser/translation.dtd
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/l10n-vi/browser/chrome/browser/translation.properties b/l10n-vi/browser/chrome/browser/translation.properties
new file mode 100644
index 0000000000..3b9b9d7552
--- /dev/null
+++ b/l10n-vi/browser/chrome/browser/translation.properties
@@ -0,0 +1,12 @@
+# 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 (translation.options.neverForLanguage.label):
+# %S is a language name coming from the toolkit/intl/languageNames.ftl file.
+translation.options.neverForLanguage.label=Không bao giờ dịch %S
+
+# LOCALIZATION NOTE (translation.options.neverForLanguage.accesskey):
+# The accesskey value used here should not clash with the values used for
+# translation.options.*.accesskey in translation.dtd
+translation.options.neverForLanguage.accesskey=N
diff --git a/l10n-vi/browser/chrome/browser/uiDensity.properties b/l10n-vi/browser/chrome/browser/uiDensity.properties
new file mode 100644
index 0000000000..329809ba09
--- /dev/null
+++ b/l10n-vi/browser/chrome/browser/uiDensity.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/.
+
+uiDensity.menuitem-touch.acceltext=Chế độ máy tính bảng đã được bật
diff --git a/l10n-vi/browser/chrome/browser/webrtcIndicator.properties b/l10n-vi/browser/chrome/browser/webrtcIndicator.properties
new file mode 100644
index 0000000000..e307019478
--- /dev/null
+++ b/l10n-vi/browser/chrome/browser/webrtcIndicator.properties
@@ -0,0 +1,61 @@
+# 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 : FILE This file contains the webrtc global indicator strings
+
+# LOCALIZATION NOTE (webrtcIndicator.windowtitle): %S is the brand name (e.g. Firefox).
+# This string is used so that the window has a title in tools that enumerate/look for window
+# titles. It is not normally visible anywhere.
+webrtcIndicator.windowtitle = %S - Chỉ thị chia sẻ
+
+webrtcIndicator.sharingCameraAndMicrophone.tooltip = Bạn đang chia sẻ máy ảnh và micro. Nhấn vào đây để kiểm soát những gì được chia sẻ.
+webrtcIndicator.sharingCamera.tooltip = Bạn đang chia sẻ máy ảnh. Nhấn vào đây để kiểm soát những gì được chia sẻ.
+webrtcIndicator.sharingMicrophone.tooltip = Bạn đang chia sẻ micro. Nhấn vào đây để kiểm soát những gì được chia sẻ.
+webrtcIndicator.sharingApplication.tooltip = Bạn đang chia sẻ một ứng dụng. Nhấn vào đây để kiểm soát những gì được chia sẻ.
+webrtcIndicator.sharingScreen.tooltip = Bạn đang chia sẻ màn hình. Nhấn vào đây để kiểm soát những gì bạn chia sẻ.
+webrtcIndicator.sharingWindow.tooltip = Bạn đang chia sẻ một cửa sổ. Nhấn vào đây để kiểm soát những gì bạn chia sẻ.
+webrtcIndicator.sharingBrowser.tooltip = Bạn đang chia sẻ một thẻ. Nhấn vào đây để kiểm soát những gì bạn chia sẻ.
+
+
+# LOCALIZATION NOTE : The following strings are only used on Mac for
+# menus attached to icons near the clock on the mac menubar.
+
+# LOCALIZATION NOTE (webrtcIndicator.sharing*With.menuitem):
+# %S is the title of the tab using the share.
+webrtcIndicator.sharingCameraWith.menuitem = Chia sẻ máy ảnh với “%S”
+webrtcIndicator.sharingMicrophoneWith.menuitem = Chia sẻ micrô với "%S"
+webrtcIndicator.sharingApplicationWith.menuitem = Chia sẻ một ứng dụng với "%S"
+webrtcIndicator.sharingScreenWith.menuitem = Chia sẻ màn hình với "%S"
+webrtcIndicator.sharingWindowWith.menuitem = Chia sẻ một cửa sổ với "%S"
+webrtcIndicator.sharingBrowserWith.menuitem = Chia sẻ một thẻ với “%S”
+webrtcIndicator.controlSharing.menuitem = Kiểm soát chia sẻ
+# LOCALIZATION NOTE (webrtcIndicator.sharingCameraWithNTabs.menuitem):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+webrtcIndicator.sharingCameraWithNTabs.menuitem = Đang chia sẻ máy ảnh với #1 thẻ
+# LOCALIZATION NOTE (webrtcIndicator.sharingMicrophoneWithNTabs.menuitem):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+webrtcIndicator.sharingMicrophoneWithNTabs.menuitem = Đang chia sẻ micro với #1 thẻ
+# LOCALIZATION NOTE (webrtcIndicator.sharingApplicationWithNTabs.menuitem):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+webrtcIndicator.sharingApplicationWithNTabs.menuitem = Đang chia sẻ ứng dụng với #1 thẻ
+# LOCALIZATION NOTE (webrtcIndicator.sharingScreenWithNTabs.menuitem):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+webrtcIndicator.sharingScreenWithNTabs.menuitem = Đang chia sẻ màn hình với #1 thẻ
+# LOCALIZATION NOTE (webrtcIndicator.sharingWindowWithNTabs.menuitem):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+webrtcIndicator.sharingWindowWithNTabs.menuitem = Đang chia sẻ cửa sổ với #1 thẻ
+# LOCALIZATION NOTE (webrtcIndicator.sharingBrowserWithNTabs.menuitem):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# This message is shown when the contents of a tab is shared during a WebRTC
+# session, which currently is only possible with Loop/Hello.
+webrtcIndicator.sharingBrowserWithNTabs.menuitem = Đang chia sẻ các thẻ với #1 thẻ
+# LOCALIZATION NOTE (webrtcIndicator.controlSharingOn.menuitem):
+# %S is the title of the tab using the share.
+webrtcIndicator.controlSharingOn.menuitem = Kiểm soát chia sẻ với "%S"
diff --git a/l10n-vi/browser/chrome/overrides/appstrings.properties b/l10n-vi/browser/chrome/overrides/appstrings.properties
new file mode 100644
index 0000000000..11a1b3ec1a
--- /dev/null
+++ b/l10n-vi/browser/chrome/overrides/appstrings.properties
@@ -0,0 +1,44 @@
+# 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=Firefox không thể tìm thấy tập tin tại %S.
+fileAccessDenied=Tập tin %S không thể đọc được.
+dnsNotFound2=Chúng tôi không thể kết nối đến máy chủ tại %S.
+unknownProtocolFound=Firefox không biết cách mở đường dẫn này, vì một trong số các protocol (%S) không được liên kết với bất kỳ chương trình nào hoặc không được cho phép trong trường hợp này.
+connectionFailure=Firefox không thể tạo kết nối tới máy chủ tại %S.
+netInterrupt=Kết nối tới %S bị đứt trong khi đang tải trang.
+netTimeout=Máy chủ tại %S phản hồi quá lâu.
+redirectLoop=Firefox phát hiện máy chủ đang chuyển hướng địa chỉ yêu cầu theo một cách mà sẽ chẳng bao giờ hoàn tất.
+## LOCALIZATION NOTE (confirmRepostPrompt): In this item, don’t translate "%S"
+confirmRepostPrompt=Để hiển thị trang này, %S phải gửi những thông tin làm lặp lại hành động đã thực hiện trước đó (chẳng hạn như một xác nhận tìm kiếm hoặc giao dịch).
+resendButton.label=Gửi lại
+unknownSocketType=Firefox không biết liên lạc với máy chủ này như thế nào.
+netReset=Kết nối tới máy chủ đã bị khởi tạo lại trong khi đang tải trang.
+notCached=Tài liệu này không còn hiện hữu.
+netOffline=Firefox hiện đang ở chế độ ngoại tuyến và không thể duyệt Web.
+isprinting=Không thể chỉnh sửa tài liệu trong khi đang in hoặc ở chế độ xem trước.
+deniedPortAccess=Địa chỉ này dùng một cổng mạng vốn thường được dùng cho mục đích khác chứ không phải duyệt Web. Firefox đã hủy bỏ yêu cầu này để bảo vệ bạn.
+proxyResolveFailure=Firefox đã được cấu hình sử dụng máy chủ proxy, nhưng không thể tìm thấy.
+proxyConnectFailure=Firefox đã được cấu hình sử dụng máy chủ proxy, nhưng proxy đang từ chối kết nố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.
+externalProtocolTitle=Yêu cầu sử dụng chương trình bên ngoài
+externalProtocolPrompt=Cần mở một ứng dụng bên ngoài để có thể xử lí các liên kết %1$S:.\n\n\nLiên kết được yêu cầu:\n\n%2$S\n\nỨng dụng: %3$S\n\n\nNếu bạn không trông đợi yêu cầu này, thì đây có thể là một âm mưu nhằm khai thác điểm yếu trong chương trình đó. Hãy hủy bỏ yêu cầu này trừ khi bạn chắc chắn rằng nó không gây hại gì hết.\n
+#LOCALIZATION NOTE (externalProtocolUnknown): The following string is shown if the application name can't be determined
+externalProtocolUnknown=
+externalProtocolChkMsg=Ghi nhớ lựa chọn của tôi cho các liên kết loại này.
+externalProtocolLaunchBtn=Chạy ứng dụng
+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ị nghi ngờ tự động 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 này đã được báo cáo là trang 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.
+## LOCALIZATION NOTE (sslv3Used) - Do not translate "%S".
+sslv3Used=Firefox không thể đảm bảo an toàn dữ liệu cho 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.
+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/browser/chrome/overrides/netError.dtd b/l10n-vi/browser/chrome/overrides/netError.dtd
new file mode 100644
index 0000000000..421d0c8f4e
--- /dev/null
+++ b/l10n-vi/browser/chrome/overrides/netError.dtd
@@ -0,0 +1,133 @@
+
+
+
+%brandDTD;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Nếu địa chỉ đúng, có ba việc bạn có thể thử:
+
Thử lại sau.
+
Kiểm tra kết nối mạng của bạn.
+
Nếu bạn đã kết nối mạng nhưng có cài đặt tường lửa, hãy kiểm tra &brandShortName; có quyền truy cập web không.
">
+
+
Kiểm tra tên xem có lỗi gõ HOA-thường hay lỗi nào khác không.
Kiểm tra xem tập tin có bị di chuyển, đổi tên hay bị xóa không.
">
+
+
Nó có thể đã bị xóa, chuyển đi, hay quyền truy cập tập tin đã bị chặn.
">
+
+Vì lý do nào đó, &brandShortName; không thể mở trang này.
">
+
+
+Bạn cần đăng nhập vào mạng trước khi có thể truy cập Internet.
+">
+
+
+
+
+
+
+
+Tài liệu được yêu cầu không có sẵn trong bộ đệm của &brandShortName;.
Vì lí do bảo mật, &brandShortName; không tự động tải lại các tài liệu nhạy cảm.
Nhấn nút Thử Lại để yêu cầu tải lại tài liệu từ trang web.
">
+
+
Nhấn "Thử lại" để chuyển sang chế độ trực tuyến và tải lại trang.
">
+
+
Vui lòng liên hệ với chủ trang web để báo với họ về vấn đề này.
">
+
+
Vui lòng liên hệ với chủ trang web để báo với họ về vấn đề này.
">
+
+
+
+
+
+
Có lẽ bạn cần phải cài đặt phần mềm khác mới mở được.
">
+
+
Kiểm tra thiết lập proxy để chắc chắn rằng mọi thứ đều đúng.
Liên hệ với quản trị mạng của bạn để chắc chắn rằng máy chủ proxy vẫn đang hoạt động.
">
+
+
Kiểm tra thiết lập proxy.
Kiểm tra kết nối mạng.
Nếu máy tính hoặc mạng được bảo vệ bởi tường lửa hoặc proxy, hãy chắc chắn rằng &brandShortName; được phép truy cập Web.
">
+
+
Vấn đề này thỉnh thoảng có thể xảy ra do bạn vô hiệu hóa hoặc từ chối cookie.
">
+
+
Kiểm tra để chắc chắn rằng hệ thống của bạn có Trình quản lí Bảo mật Cá nhân đã được cài đặt.
Điều này có thể là do cấu hình không chuẩn trên máy chủ.
">
+
+
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.
Vui lòng liên hệ chủ trang web để báo với họ vấn đề này.
">
+
+
+. Nếu bạn truy cập trang web này, kẻ tấn công có thể cố gắng lấy cắp thông tin như mật khẩu, email hoặc chi tiết thẻ tín dụng của bạn.">
+ vì trang web này yêu cầu kết nối an toàn.">
+
+. Trang web định cấu hình sai hoặc đồng hồ máy tính của bạn không đúng.">
+
+
+
+
+
+Vấn đề rất có thể xảy ra với trang web và bạn không thể làm gì để giải quyết nó.
+
Nếu bạn đang sử dụng mạng công ty hoặc sử dụng phần mềm chống vi-rút, bạn có thể liên hệ với nhóm hỗ trợ để được trợ giúp. Bạn cũng có thể thông báo cho quản trị viên của trang web về sự cố.
+">
+
+Đồng hồ máy tính của bạn được đặt thành . Đảm bảo máy tính của bạn được đặt đúng ngày, giờ và múi giờ trong cài đặt hệ thống của bạn, sau đó làm mới .
+
Nếu đồng hồ của bạn đã được đặt đúng thời điểm, trang web có thể bị định cấu hình sai và bạn không thể làm gì để giải quyết vấn đề. Bạn có thể thông báo cho quản trị viên của trang web về sự cố.
+">
+
+Vấn đề rất có thể xảy ra với trang web và bạn không thể làm gì để giải quyết vấn đề này. Bạn có thể thông báo cho quản trị viên của trang web về sự cố.
+">
+
+
Trang web này có thể bị gián đoạn tạm thời hoặc do quá tải. Hãy thử lại trong chốc lát.
Nếu bạn không thể mở bất kì trang nào, hãy kiểm tra kết nối mạng.
Nếu máy tính hoặc mạng của bạn được bảo vệ bởi tường lửa hoặc proxy, hãy chắc chắn rằng &brandShortName; được phép truy cập Web.
">
+
+&brandShortName; không tải trang này vì nó có một chính sách bảo vệ nội dung không cho phép việc tải theo cách này.">
+
+&brandShortName; đã 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.">
+
+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.
Vui lòng liên hệ chủ trang web để báo họ về vấn đề này.
">
+
+
+
+
+
+
+
+
+
+
+
+ có chính sách bảo mật được gọi là HTTP Strict Transport Security (HSTS), có nghĩa là &brandShortName; chỉ có thể kết nối với nó một cách an toàn. Bạn không thể thêm ngoại lệ để truy cập trang web này.">
+
+
+
+ sử dụng công nghệ bảo mật lỗi thời và dễ bị tấn công. Một kẻ tấn công có thể dễ dàng làm lộ những thông tin mà bạn nghĩ là an toàn. Người quản lý trang web trước tiên sẽ cần phải sửa lỗi máy chủ trước khi bạn có thể vào trang.
Mã lỗi: NS_ERROR_NET_INADEQUATE_SECURITY
">
+
+
+
+ rất có thể là một trang web an toàn, nhưng không thể thiết lập kết nối an toàn. Sự cố này xảy ra do , có thể là phần mềm trên máy tính hoặc mạng của bạn.">
+
+
+, thì đây có thể là một cuộc tấn công và bạn không nên tiếp tục đến trang web.">
+, thì đây có thể là một cuộc tấn công và bạn không thể làm gì để truy cập trang web.">
+
+, việc này ngăn chặn &brandShortName; từ kết nối an toàn. Để truy cập , hãy cập nhật đồng hồ máy tính trong cài đặt hệ thống của bạn thành ngày, giờ và múi giờ hiện tại, sau đó làm mới .">
+
+
+
+
+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.
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.
">
diff --git a/l10n-vi/browser/crashreporter/crashreporter-override.ini b/l10n-vi/browser/crashreporter/crashreporter-override.ini
new file mode 100644
index 0000000000..0763ae57b0
--- /dev/null
+++ b/l10n-vi/browser/crashreporter/crashreporter-override.ini
@@ -0,0 +1,8 @@
+; 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/.
+; This file is in the UTF-8 encoding
+[Strings]
+; LOCALIZATION NOTE (CrashReporterProductErrorText2): The %s is replaced with a string containing detailed information.
+CrashReporterProductErrorText2=Firefox gặp lỗi. Chúng tôi sẽ cố gắng khôi phục các thẻ và cửa sổ khi nó khởi động lại.\n\nThật không may là trình báo lỗi không thể gửi báo cáo.\n\nChi tiết: %s
+CrashReporterDescriptionText2=Firefox đã có vấn đề và bị lỗi. Chúng tôi sẽ cố gắng khôi phục các tab và cửa sổ của bạn khi nó khởi động lại.\n\nĐể giúp chúng tôi chẩn đoán và sửa vấn đề, bạn có thể gửi cho chúng tôi một bản báo cáo lỗi.
diff --git a/l10n-vi/browser/defaultagent/defaultagent_localized.ini b/l10n-vi/browser/defaultagent/defaultagent_localized.ini
new file mode 100644
index 0000000000..39d94a2766
--- /dev/null
+++ b/l10n-vi/browser/defaultagent/defaultagent_localized.ini
@@ -0,0 +1,12 @@
+# 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/.
+
+# This file is in the UTF-8 encoding
+[Strings]
+DefaultBrowserAgentTaskDescription=Tác vụ Default Browser Agent kiểm tra khi thay đổi mặc định từ %MOZ_APP_DISPLAYNAME% sang trình duyệt khác. Nếu xảy ra thay đổi trong các trường hợp đáng ngờ, nó sẽ nhắc người dùng thay đổi trở lại với %MOZ_APP_DISPLAYNAME% không quá 2 lần. Tác vụ này được cài đặt tự động bởi %MOZ_APP_DISPLAYNAME%, và được cài đặt lại khi %MOZ_APP_DISPLAYNAME% cập nhật. Để tắt tác vụ này, hãy cập nhật tùy chỉnh “default-browser-agent.enabled” trong trang about:config hoặc “DisableDefaultBrowserAgent” trong thiết lập chính sách doanh nghiệp %MOZ_APP_DISPLAYNAME% .
+
+DefaultBrowserNotificationTitle=Đặt %MOZ_APP_DISPLAYNAME% làm trình duyệt mặc định của bạn
+DefaultBrowserNotificationText=%MOZ_APP_DISPLAYNAME% không còn là trình duyệt mặc định của bạn. Đặt nó làm mặc định cho bạn?
+DefaultBrowserNotificationYesButtonText=Đồng ý
+DefaultBrowserNotificationNoButtonText=Không
diff --git a/l10n-vi/browser/defines.inc b/l10n-vi/browser/defines.inc
new file mode 100644
index 0000000000..4f928d5431
--- /dev/null
+++ b/l10n-vi/browser/defines.inc
@@ -0,0 +1,14 @@
+# 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/.
+#filter emptyLines
+
+#define MOZ_LANGPACK_CREATOR Cộng đồng bản địa hóa Mozilla
+
+# If non-English locales wish to credit multiple contributors, uncomment this
+
+# variable definition and use the format specified.
+
+#define MOZ_LANGPACK_CONTRIBUTORS Nguyễn Mạnh HùngNguyễn Xuân MinhHuỳnh Hải ĐăngBùi Việt KhoaTrần Nguyễn SơnNgô Đức TrungNguyễn Hà DươngNguyễn Phan HảiĐặng Duy Thanh
+
+#unfilter emptyLines
diff --git a/l10n-vi/browser/extensions/formautofill/formautofill.properties b/l10n-vi/browser/extensions/formautofill/formautofill.properties
new file mode 100644
index 0000000000..f59b894ac9
--- /dev/null
+++ b/l10n-vi/browser/extensions/formautofill/formautofill.properties
@@ -0,0 +1,231 @@
+# 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 (saveAddressesMessage): %S is brandShortName. This string is used on the doorhanger to
+# notify users that addresses are saved.
+saveAddressesMessage = %S lưu địa chỉ ngay bây giờ để bạn có thể điền vào biểu mẫu nhanh hơn.
+# LOCALIZATION NOTE (autofillOptionsLink, autofillOptionsLinkOSX): These strings are used in the doorhanger for
+# updating addresses. The link leads users to Form Autofill browser preferences.
+autofillOptionsLink = Tùy chọn tự động điền mẫu
+autofillOptionsLinkOSX = Tùy chỉnh tự động điền mẫu
+# LOCALIZATION NOTE (changeAutofillOptions, changeAutofillOptionsOSX): These strings are used on the doorhanger
+# that notifies users that addresses are saved. The button leads users to Form Autofill browser preferences.
+changeAutofillOptions = Thay đổi tùy chọn tự động điền biểu mẫu
+changeAutofillOptionsOSX = Thay đổi tùy chọn tự động điền biểu mẫu
+changeAutofillOptionsAccessKey = C
+# LOCALIZATION NOTE (addressesSyncCheckbox): If Sync is enabled, this checkbox is displayed on the doorhanger
+# shown when saving addresses.
+addressesSyncCheckbox = Chia sẻ địa chỉ với các thiết bị đồng bộ
+# LOCALIZATION NOTE (creditCardsSyncCheckbox): If Sync is enabled and credit card sync is available,
+# this checkbox is displayed on the doorhanger shown when saving credit card.
+creditCardsSyncCheckbox = Chia sẻ thẻ tín dụng với các thiết bị đồng bộ
+# LOCALIZATION NOTE (updateAddressMessage, updateAddressDescriptionLabel, createAddressLabel, updateAddressLabel):
+# Used on the doorhanger when an address change is detected.
+updateAddressMessage = Bạn có muốn cập nhật địa chỉ của mình với thông tin mới này không?
+updateAddressDescriptionLabel = Địa chỉ để cập nhật:
+createAddressLabel = Tạo địa chỉ mới
+createAddressAccessKey = C
+updateAddressLabel = Cập nhật địa chỉ
+updateAddressAccessKey = U
+# LOCALIZATION NOTE (saveCreditCardMessage, saveCreditCardDescriptionLabel, saveCreditCardLabel, cancelCreditCardLabel, neverSaveCreditCardLabel):
+# Used on the doorhanger when users submit payment with credit card.
+# LOCALIZATION NOTE (saveCreditCardMessage): %S is brandShortName.
+saveCreditCardMessage = Bạn có muốn %S lưu thông tin thẻ tín dụng này? (Mã bảo mật sẽ không được lưu)
+saveCreditCardDescriptionLabel = Thẻ tín dụng để lưu:
+saveCreditCardLabel = Lưu thông tin thẻ tín dụng
+saveCreditCardAccessKey = S
+cancelCreditCardLabel = Không lưu
+cancelCreditCardAccessKey = D
+neverSaveCreditCardLabel = Không bao giờ lưu thông tin thẻ tín dụng
+neverSaveCreditCardAccessKey = N
+# LOCALIZATION NOTE (updateCreditCardMessage, updateCreditCardDescriptionLabel, createCreditCardLabel, updateCreditCardLabel):
+# Used on the doorhanger when an credit card change is detected.
+updateCreditCardMessage = Bạn có muốn cập nhật thẻ tín dụng của mình với thông tin mới này không?
+updateCreditCardDescriptionLabel = Thẻ tín dụng để cập nhật:
+createCreditCardLabel = Tạo thẻ tín dụng mới
+createCreditCardAccessKey = C
+updateCreditCardLabel = Cập nhật thẻ tín dụng
+updateCreditCardAccessKey = U
+# LOCALIZATION NOTE (openAutofillMessagePanel): Tooltip label for Form Autofill doorhanger icon on address bar.
+openAutofillMessagePanel = Mở bảng thông báo tự động điền biểu mẫu
+
+# LOCALIZATION NOTE (autocompleteFooterOption2):
+# Used as a label for the button, displayed at the bottom of the dropdown suggestion, to open Form Autofill browser preferences.
+autocompleteFooterOption2 = Tùy chọn tự động điền biểu mẫu
+# LOCALIZATION NOTE (autocompleteFooterOptionOSX2):
+# Used as a label for the button, displayed at the bottom of the dropdown suggestion, to open Form Autofill browser preferences.
+autocompleteFooterOptionOSX2 = Tùy chỉnh tự động điền biểu mẫu
+# LOCALIZATION NOTE (autocompleteFooterOptionShort2):
+# Used as a label for the button, displayed at the bottom of the dropdown suggestion, to open Form Autofill browser preferences.
+# The short version is used for inputs below a certain width (e.g. 150px).
+autocompleteFooterOptionShort2 = Tùy chọn tự động điền
+# LOCALIZATION NOTE (autocompleteFooterOptionOSXShort2):
+# Used as a label for the button, displayed at the bottom of the dropdown suggestion, to open Form Autofill browser preferences.
+# The short version is used for inputs below a certain width (e.g. 150px).
+autocompleteFooterOptionOSXShort2 = Tùy chỉnh tự động điền
+# LOCALIZATION NOTE (category.address, category.name, category.organization2, category.tel, category.email):
+# Used in autofill drop down suggestion to indicate what other categories Form Autofill will attempt to fill.
+category.address = địa chỉ
+category.name = tên
+category.organization2 = tổ chức
+category.tel = điện thoại
+category.email = thư điện tử
+# LOCALIZATION NOTE (fieldNameSeparator): This is used as a separator between categories.
+fieldNameSeparator = ,\u0020
+# LOCALIZATION NOTE (phishingWarningMessage, phishingWarningMessage2): The warning
+# text that is displayed for informing users what categories are about to be filled.
+# "%S" will be replaced with a list generated from the pre-defined categories.
+# The text would be e.g. Also autofills organization, phone, email.
+phishingWarningMessage = Cũng tự động điền %S
+phishingWarningMessage2 = Tự động điền %S
+# LOCALIZATION NOTE (insecureFieldWarningDescription): %S is brandShortName. This string is used in drop down
+# suggestion when users try to autofill credit card on an insecure website (without https).
+insecureFieldWarningDescription = %S đã phát hiện một trang web không an toàn. Tự động điền biểu mẫu tạm thời bị tắt.
+# LOCALIZATION NOTE (clearFormBtnLabel2): Label for the button in the dropdown menu that used to clear the populated
+# form.
+clearFormBtnLabel2 = Xóa biểu mẫu tự động điền
+
+autofillHeader = Biểu mẫu & Tự động điền
+# LOCALIZATION NOTE (autofillAddressesCheckbox): Label for the checkbox that enables autofilling addresses.
+autofillAddressesCheckbox = Tự động điền các địa chỉ
+# LOCALIZATION NOTE (learnMoreLabel): Label for the link that leads users to the Form Autofill SUMO page.
+learnMoreLabel = Tìm hiểu thêm
+# LOCALIZATION NOTE (savedAddressesBtnLabel): Label for the button that opens a dialog that shows the
+# list of saved addresses.
+savedAddressesBtnLabel = Địa chỉ đã lưu…
+# LOCALIZATION NOTE (autofillCreditCardsCheckbox): Label for the checkbox that enables autofilling credit cards.
+autofillCreditCardsCheckbox = Tự điện điền các thẻ tín dụng
+# LOCALIZATION NOTE (savedCreditCardsBtnLabel): Label for the button that opens a dialog that shows the list
+# of saved credit cards.
+savedCreditCardsBtnLabel = Thẻ tín dụng đã lưu…
+
+autofillReauthCheckboxMac = Yêu cầu xác thực macOS để tự động điền, xem hoặc chỉnh sửa thẻ tín dụng được lưu trữ.
+autofillReauthCheckboxWin = Yêu cầu xác thực Windows để tự động điền, xem hoặc chỉnh sửa thẻ tín dụng được lưu trữ.
+autofillReauthCheckboxLin = Yêu cầu xác thực Linux để tự động điền, xem hoặc chỉnh sửa thẻ tín dụng được lưu trữ.
+
+# LOCALIZATION NOTE (autofillReauthOSDialogMac): This string is
+# preceded by the operating system (macOS) with "Firefox is trying to ", and
+# has a period added to its end. Make sure to test in your locale.
+autofillReauthOSDialogMac = thay đổi cài đặt xác thực
+autofillReauthOSDialogWin = Để thay đổi cài đặt xác thực, nhập thông tin đăng nhập Windows của bạn.
+autofillReauthOSDialogLin = Để thay đổi cài đặt xác thực, nhập thông tin đăng nhập Linux của bạn.
+
+# LOCALIZATION NOTE (manageAddressesTitle, manageCreditCardsTitle): The dialog title for the list of addresses or
+# credit cards in browser preferences.
+manageAddressesTitle = Các địa chỉ đã lưu
+manageCreditCardsTitle = Thẻ tín dụng đã lưu
+# LOCALIZATION NOTE (addressesListHeader, creditCardsListHeader): The header for the list of addresses or credit cards
+# in browser preferences.
+addressesListHeader = Địa chỉ
+creditCardsListHeader = Thẻ tín dụng
+removeBtnLabel = Xóa
+addBtnLabel = Thêm…
+editBtnLabel = Sửa…
+# LOCALIZATION NOTE (manageDialogsWidth): This strings sets the default width for windows used to manage addresses and
+# credit cards.
+manageDialogsWidth = 560px
+
+# LOCALIZATION NOTE (addNewAddressTitle, editAddressTitle): The dialog title for creating or editing addresses
+# in browser preferences.
+addNewAddressTitle = Thêm địa chỉ mới
+editAddressTitle = Sửa địa chỉ
+givenName = Họ
+additionalName = Tên đệm
+familyName = Tên
+organization2 = Tổ chức
+streetAddress = Địa chỉ đường phố
+
+## address-level-3 (Sublocality) names
+# LOCALIZATION NOTE (neighborhood): Used in IR, MX
+neighborhood = Khu vực lân cận
+# LOCALIZATION NOTE (village_township): Used in MY
+village_township = Làng hoặc thị trấn
+island = Đảo
+# LOCALIZATION NOTE (townland): Used in IE
+townland = Thị trấn
+
+## address-level-2 names
+city = Thành phố
+# LOCALIZATION NOTE (district): Used in HK, SD, SY, TR as Address Level-2
+# and used in KR as Sublocality.
+district = Quận
+# LOCALIZATION NOTE (post_town): Used in GB, NO, SE
+post_town = Bưu điện thị trấn
+# LOCALIZATION NOTE (suburb): Used in AU as Address Level-2
+# and used in ZZ as Sublocality.
+suburb = Ngoại thành
+
+# address-level-1 names
+province = Tỉnh
+state = Bang
+county = Quận
+# LOCALIZATION NOTE (parish): Used in BB, JM
+parish = Giáo xứ
+# LOCALIZATION NOTE (prefecture): Used in JP
+prefecture = Tỉnh
+# LOCALIZATION NOTE (area): Used in HK
+area = Vùng
+# LOCALIZATION NOTE (do_si): Used in KR
+do_si = Tỉnh/Thành phố
+# LOCALIZATION NOTE (department): Used in NI, CO
+department = Sở
+# LOCALIZATION NOTE (emirate): Used in AE
+emirate = Tiểu Vương quốc
+# LOCALIZATION NOTE (oblast): Used in RU and UA
+oblast = Tỉnh
+
+# LOCALIZATION NOTE (pin, postalCode, zip, eircode): Postal code name types
+# LOCALIZATION NOTE (pin): Used in IN
+pin = Pin
+postalCode = Mã bưu chính
+zip = Mã bưu chính
+# LOCALIZATION NOTE (eircode): Used in IE
+eircode = Mã bưu chính
+
+country = Quốc gia hoặc vùng
+tel = Điện thoại
+email = Thư điện tử
+cancelBtnLabel = Hủy bỏ
+saveBtnLabel = Lưu
+countryWarningMessage2 = Tự động điền biểu mẫu hiện chỉ có sẵn cho một số quốc gia nhất định.
+
+# LOCALIZATION NOTE (addNewCreditCardTitle, editCreditCardTitle): The dialog title for creating or editing
+# credit cards in browser preferences.
+addNewCreditCardTitle = Thêm thẻ tín dụng mới
+editCreditCardTitle = Sửa thẻ tín dụng
+cardNumber = Số thẻ
+invalidCardNumber = Vui lòng nhập số thẻ hợp lệ
+nameOnCard = Tên trên thẻ
+cardExpiresMonth = Hết hạn tháng
+cardExpiresYear = Hết hạn năm
+billingAddress = Địa chỉ thanh toán
+cardNetwork = Loại thẻ
+# LOCALIZATION NOTE (cardCVV): Credit card security code https://en.wikipedia.org/wiki/Card_security_code
+cardCVV = CVV
+
+# LOCALIZATION NOTE: (cardNetwork.*): These are brand names and should only be translated when a locale-specific name for that brand is in common use
+cardNetwork.amex = American Express
+cardNetwork.cartebancaire = Carte Bancaire
+cardNetwork.diners = Diners Club
+cardNetwork.discover = Discover
+cardNetwork.jcb = JCB
+cardNetwork.mastercard = MasterCard
+cardNetwork.mir = MIR
+cardNetwork.unionpay = Union Pay
+cardNetwork.visa = Visa
+
+# LOCALIZATION NOTE (editCreditCardPasswordPrompt.*, useCreditCardPasswordPrompt.*): %S is brandShortName.
+editCreditCardPasswordPrompt.win = %S đang cố gắng hiển thị thông tin thẻ tín dụng. Xác nhận quyền truy cập vào tài khoản Windows bên dưới.
+# LOCALIZATION NOTE (editCreditCardPasswordPrompt.macos): This string is
+# preceded by the operating system (macOS) with "Firefox is trying to ", and
+# has a period added to its end. Make sure to test in your locale.
+editCreditCardPasswordPrompt.macos = hiển thị thông tin thẻ tín dụng
+editCreditCardPasswordPrompt.linux = %S đang cố gắng hiển thị thông tin thẻ tín dụng.
+
+useCreditCardPasswordPrompt.win = %S đang cố gắng sử dụng thông tin thẻ tín dụng được lưu trữ. Xác nhận quyền truy cập vào tài khoản Windows bên dưới.
+# LOCALIZATION NOTE (useCreditCardPasswordPrompt.macos): This string is
+# preceded by the operating system (macOS) with "Firefox is trying to ", and
+# has a period added to its end. Make sure to test in your locale.
+useCreditCardPasswordPrompt.macos = sử dụng thông tin thẻ tín dụng được lưu trữ
+useCreditCardPasswordPrompt.linux = %S đang cố gắng sử dụng thông tin thẻ tín dụng được lưu trữ.
diff --git a/l10n-vi/browser/extensions/report-site-issue/webcompat.properties b/l10n-vi/browser/extensions/report-site-issue/webcompat.properties
new file mode 100644
index 0000000000..b07af7b102
--- /dev/null
+++ b/l10n-vi/browser/extensions/report-site-issue/webcompat.properties
@@ -0,0 +1,10 @@
+# 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(wc-reporter.label2): This string will be used in the
+# Firefox page actions menu. Localized length should be considered.
+wc-reporter.label2=Báo cáo vấn đề về trang…
+# LOCALIZATION NOTE(wc-reporter.tooltip): A site compatibility issue is
+# a website bug that exists in one browser (Firefox), but not another.
+wc-reporter.tooltip=Báo cáo vấn đề về khả năng tương thích của trang
diff --git a/l10n-vi/browser/firefox-l10n.js b/l10n-vi/browser/firefox-l10n.js
new file mode 100644
index 0000000000..b410ad9aef
--- /dev/null
+++ b/l10n-vi/browser/firefox-l10n.js
@@ -0,0 +1,6 @@
+# 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/.
+
+#filter substitution
+
diff --git a/l10n-vi/browser/installer/custom.properties b/l10n-vi/browser/installer/custom.properties
new file mode 100644
index 0000000000..758d457ed0
--- /dev/null
+++ b/l10n-vi/browser/installer/custom.properties
@@ -0,0 +1,94 @@
+# 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:
+
+# This file must be saved as UTF8
+
+# Accesskeys are defined by prefixing the letter that is to be used for the
+# accesskey with an ampersand (e.g. &).
+
+# Do not replace $BrandShortName, $BrandFullName, or $BrandFullNameDA with a
+# custom string and always use the same one as used by the en-US files.
+# $BrandFullNameDA allows the string to contain an ampersand (e.g. DA stands
+# for double ampersand) and prevents the letter following the ampersand from
+# being used as an accesskey.
+
+# You can use \n to create a newline in the string but only when the string
+# from en-US contains a \n.
+
+REG_APP_DESC=$BrandShortName cho phép bạn duyệt web dễ dàng, an toàn. Một giao diện người dùng quen thuộc, tính năng bảo mật nâng cao bao gồm chống trộm cắp danh tính trực tuyến, và với công cụ tìm kiếm tích hợp sẽ giúp bạn tận dụng hết sức mạnh của web.
+PRIVATE_BROWSING_SHORTCUT_TITLE=$BrandShortName duyệt web riêng tư
+CONTEXT_OPTIONS=&Tùy chọn $BrandShortName
+CONTEXT_SAFE_MODE=$BrandShortName &Chế độ an toàn
+OPTIONS_PAGE_TITLE=Kiểu cài đặt
+OPTIONS_PAGE_SUBTITLE=Tùy chọn cài đặt
+SHORTCUTS_PAGE_TITLE=Tạo lối tắt
+SHORTCUTS_PAGE_SUBTITLE=Tạo các biểu tượng chương trình
+COMPONENTS_PAGE_TITLE=Cài đặt các thành phần không bắt buộc
+COMPONENTS_PAGE_SUBTITLE=Các thành phần được khuyên dùng
+OPTIONAL_COMPONENTS_DESC=Dịch vụ bảo trì sẽ cho phép bạn cập nhật $BrandShortName trong nền một cách tự động.
+MAINTENANCE_SERVICE_CHECKBOX_DESC=&Cài đặt Dịch vụ bảo trì
+SUMMARY_PAGE_TITLE=Tóm tắt
+SUMMARY_PAGE_SUBTITLE=Sẵn sàng cài đặt $BrandShortName
+SUMMARY_INSTALLED_TO=$BrandShortName sẽ được cài vào thư mục sau:
+SUMMARY_REBOOT_REQUIRED_INSTALL=Có thể cần khởi động lại máy tính để hoàn tất việc cài đặt.
+SUMMARY_REBOOT_REQUIRED_UNINSTALL=Có thể cần khởi động lại máy tính để hoàn tất việc gỡ bỏ.
+SUMMARY_TAKE_DEFAULTS=&Dùng $BrandShortName làm trình duyệt mặc định của tôi
+SUMMARY_INSTALL_CLICK=Nhấn “Cài đặt” để tiếp tục.
+SUMMARY_UPGRADE_CLICK=Nhấn “Nâng cấp” để tiếp tục.
+SURVEY_TEXT=&Vui lòng cho chúng tôi biết bạn nghĩ gì về $BrandShortName
+LAUNCH_TEXT=&Chạy $BrandShortName ngay bây giờ
+CREATE_ICONS_DESC=Tạo biểu tượng cho $BrandShortName:
+ICONS_DESKTOP=Trên &Desktop
+ICONS_STARTMENU=Trong thư mục Programs của Trình đơn &Start
+ICONS_QUICKLAUNCH=Trong thanh &Quick Launch
+ICONS_TASKBAR=Trên thanh &tác vụ của tôi
+WARN_MANUALLY_CLOSE_APP_INSTALL=$BrandShortName phải được đóng trước khi tiến hành cài đặt.\n\nVui lòng đóng $BrandShortName để tiếp tục.
+WARN_MANUALLY_CLOSE_APP_UNINSTALL=$BrandShortName phải được đóng trước khi tiến hành gỡ bỏ.\n\nVui lòng đóng $BrandShortName để tiếp tục.
+WARN_MANUALLY_CLOSE_APP_REFRESH=$BrandShortName phải được đóng trước khi tiến hành làm mới.\n\nVui lòng đóng $BrandShortName để tiếp tục.
+WARN_WRITE_ACCESS=Bạn không có quyền ghi vào thư mục cài đặt.\n\nNhấn OK để chọn thư mục khác.
+WARN_DISK_SPACE=Bạn không có đủ dung lượng đĩa để cài vào thư mục này.\n\nNhấn OK để chọn thư mục khác.
+WARN_MIN_SUPPORTED_OSVER_MSG=Xin lỗi, $BrandShortName không thể cài đặt. Phiên bản này của $BrandShortName yêu cầu ${MinSupportedVer} hoặc mới hơn. Hãy nhấn nút OK để biết thêm thông tin.
+WARN_MIN_SUPPORTED_CPU_MSG=Xin lỗi, $BrandShortName không thể cài đặt. Phiên bản này của $BrandShortName yêu cầu bộ xử lý có hỗ trợ ${MinSupportedCPU}. Hãy nhấn nút OK để biết thêm thông tin.
+WARN_MIN_SUPPORTED_OSVER_CPU_MSG=Xin lỗi, $BrandShortName không thể cài đặt. Phiên bản này của $BrandShortName yêu cầu ${MinSupportedVer} hoặc mới hơn và bộ xử lý có hỗ trợ ${MinSupportedCPU}. Hãy nhấn nút OK để biết thêm thông tin.
+WARN_RESTART_REQUIRED_UNINSTALL=Máy tính của bạn phải được khởi động lại để hoàn tất việc gỡ bỏ $BrandShortName. Bạn có muốn khởi động lại ngay bây giờ?
+WARN_RESTART_REQUIRED_UPGRADE=Máy tính của bạn phải được khởi động lại để hoàn tất việc nâng cấp $BrandShortName. Bạn có muốn khởi động lại ngay bây giờ?
+ERROR_CREATE_DIRECTORY_PREFIX=Gặp lỗi khi tạo thư mục:
+ERROR_CREATE_DIRECTORY_SUFFIX=Nhấn “Hủy bỏ” (Cancel) để dừng việc cài đặt hoặc\n“Thử lại” (Retry) để thử lần nữa.
+
+UN_CONFIRM_PAGE_TITLE=Gỡ bỏ $BrandFullName
+UN_CONFIRM_PAGE_SUBTITLE=Gỡ bỏ $BrandFullName từ máy tính của bạn.
+UN_CONFIRM_UNINSTALLED_FROM=$BrandShortName sẽ được gỡ bỏ từ thư mục sau:
+UN_CONFIRM_CLICK=Nhấp “Gỡ bỏ” để tiếp tục.
+
+UN_REFRESH_PAGE_TITLE=Thay vào đó, làm mới $BrandShortName?
+UN_REFRESH_PAGE_EXPLANATION=Nếu bạn gặp sự cố với $BrandShortName, việc làm mới có thể giúp ích.\n\nĐiều này sẽ khôi phục cài đặt mặc định và xóa tiện ích mở rộng. Bắt đầu mới cho hiệu suất tối ưu.
+UN_REFRESH_LEARN_MORE=&Tìm hiểu thêm
+UN_REFRESH_BUTTON=&Làm mới $BrandShortName
+
+BANNER_CHECK_EXISTING=Đang kiểm tra phiên bản…
+
+STATUS_INSTALL_APP=Đang cài đặt $BrandShortName…
+STATUS_INSTALL_LANG=Đang cài đặt tập tin ngôn ngữ (${AB_CD})…
+STATUS_UNINSTALL_MAIN=Đang gỡ bỏ $BrandShortName…
+STATUS_CLEANUP=Dọn dẹp nhà cửa một chút…
+
+UN_SURVEY_CHECKBOX_LABEL=Cho Mozilla biết lý do bạn gỡ cài đặt $BrandShortName
+
+# _DESC strings support approximately 65 characters per line.
+# One line
+OPTIONS_SUMMARY=Chọn kiểu cài đặt bạn muốn, rồi nhấn “Tiếp tục”.
+# One line
+OPTION_STANDARD_DESC=$BrandShortName sẽ được cài đặt cùng các tùy chọn thông dụng.
+OPTION_STANDARD_RADIO=&Chuẩn
+# Two lines
+OPTION_CUSTOM_DESC=Bạn có thể chọn từng tùy chọn riêng lẻ. Dành cho người dùng có kinh nghiệm.
+OPTION_CUSTOM_RADIO=Tùy biến (&C)
+
+# LOCALIZATION NOTE:
+# The following text replaces the Install button text on the summary page.
+# Verify that the access key for InstallBtn (in override.properties) and
+# UPGRADE_BUTTON is not already used by SUMMARY_TAKE_DEFAULTS.
+UPGRADE_BUTTON=&Nâng cấp
diff --git a/l10n-vi/browser/installer/mui.properties b/l10n-vi/browser/installer/mui.properties
new file mode 100644
index 0000000000..375703fee3
--- /dev/null
+++ b/l10n-vi/browser/installer/mui.properties
@@ -0,0 +1,61 @@
+# 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/.
+
+# To make the l10n tinderboxen see changes to this file you can change a value
+# name by adding - to the end of the name followed by chars (e.g. Branding-2).
+
+# LOCALIZATION NOTE:
+
+# This file must be saved as UTF8
+
+# Accesskeys are defined by prefixing the letter that is to be used for the
+# accesskey with an ampersand (e.g. &).
+
+# Do not replace $BrandShortName, $BrandFullName, or $BrandFullNameDA with a
+# custom string and always use the same one as used by the en-US files.
+# $BrandFullNameDA allows the string to contain an ampersand (e.g. DA stands
+# for double ampersand) and prevents the letter following the ampersand from
+# being used as an accesskey.
+
+# You can use \n to create a newline in the string but only when the string
+# from en-US contains a \n.
+
+MUI_TEXT_WELCOME_INFO_TITLE=Chào mừng đến với trình cài đặt $BrandFullNameDA
+MUI_TEXT_WELCOME_INFO_TEXT=Trình cài đặt này sẽ hướng dẫn bạn việc cài đặt $BrandFullNameDA.\n\nBạn nên đóng tất cả các chương trình khác trước khi bắt đầu Cài đặt. Điều này sẽ giúp việc cập nhật các tập tin hệ thống có thể thực hiện được mà không cần phải khởi động lại.\n\n$_CLICK
+MUI_TEXT_COMPONENTS_TITLE=Chọn các thành phần
+MUI_TEXT_COMPONENTS_SUBTITLE=Chọn những tính năng của $BrandFullNameDA mà bạn muốn cài đặt.
+MUI_INNERTEXT_COMPONENTS_DESCRIPTION_TITLE=Mô tả
+MUI_INNERTEXT_COMPONENTS_DESCRIPTION_INFO=Di chuột trên một thành phần để thấy mô tả của nó.
+MUI_TEXT_DIRECTORY_TITLE=Chọn đường dẫn cài đặt
+MUI_TEXT_DIRECTORY_SUBTITLE=Chọn thư mục để cài đặt $BrandFullNameDA.
+MUI_TEXT_INSTALLING_TITLE=Đang cài đặt
+MUI_TEXT_INSTALLING_SUBTITLE=Vui lòng chờ trong khi $BrandFullNameDA đang được cài đặt.
+MUI_TEXT_FINISH_TITLE=Cài đặt hoàn tất
+MUI_TEXT_FINISH_SUBTITLE=Cài đặt thành công.
+MUI_TEXT_ABORT_TITLE=Cài đặt bị hủy bỏ
+MUI_TEXT_ABORT_SUBTITLE=Cài đặt không thành công.
+MUI_BUTTONTEXT_FINISH=&Hoàn thành
+MUI_TEXT_FINISH_INFO_TITLE=Đã hoàn tất cài đặt $BrandFullNameDA
+MUI_TEXT_FINISH_INFO_TEXT=$BrandFullNameDA đã được cài vào máy bạn.\n\nNhấn “Hoàn thành” để đóng trình cài đặt này.
+MUI_TEXT_FINISH_INFO_REBOOT=Máy tính phải được khởi động lại để có thể hoàn tất việc cài đặt $BrandFullNameDA. Bạn có muốn khởi động lại ngay bây giờ?
+MUI_TEXT_FINISH_REBOOTNOW=Khởi động lại ngay
+MUI_TEXT_FINISH_REBOOTLATER=Tôi muốn khởi động lại sau
+MUI_TEXT_STARTMENU_TITLE=Chọn thư mục trên trình đơn Start
+MUI_TEXT_STARTMENU_SUBTITLE=Chọn một thư mục trên trình đơn Start cho các lối tắt của $BrandFullNameDA.
+MUI_INNERTEXT_STARTMENU_TOP=Chọn thư mục trên trình đơn Start mà bạn muốn dùng để tạo lối tắt cho chương trình. Bạn cũng có thể nhập tên để tạo thư mục mới.
+MUI_TEXT_ABORTWARNING=Bạn có thật sự muốn thoát trình cài đặt $BrandFullName?
+MUI_UNTEXT_WELCOME_INFO_TITLE=Chào mừng đến với trình gỡ bỏ $BrandFullNameDA
+MUI_UNTEXT_WELCOME_INFO_TEXT=Trình cài đặt này sẽ giúp bạn gỡ bỏ $BrandFullNameDA.\n\nTrước khi bắt đầu gỡ bỏ, hãy chắc chắn rằng $BrandFullNameDA không chạy.\n\n$_CLICK
+MUI_UNTEXT_CONFIRM_TITLE=Gỡ bỏ $BrandFullNameDA
+MUI_UNTEXT_CONFIRM_SUBTITLE=Gỡ bỏ $BrandFullNameDA từ máy tính của bạn.
+MUI_UNTEXT_UNINSTALLING_TITLE=Đang gỡ bỏ
+MUI_UNTEXT_UNINSTALLING_SUBTITLE=Vui lòng chờ trong khi $BrandFullNameDA đang được gỡ bỏ.
+MUI_UNTEXT_FINISH_TITLE=Gỡ bỏ hoàn tất
+MUI_UNTEXT_FINISH_SUBTITLE=Gỡ bỏ đã thành công.
+MUI_UNTEXT_ABORT_TITLE=Gỡ bỏ bị hủy bỏ
+MUI_UNTEXT_ABORT_SUBTITLE=Gỡ bỏ không thành công.
+MUI_UNTEXT_FINISH_INFO_TITLE=Đã hoàn tất gỡ bỏ $BrandFullNameDA
+MUI_UNTEXT_FINISH_INFO_TEXT=$BrandFullNameDA đã được gỡ bỏ khỏi máy tính của bạn.\n\nNhấn “Hoàn thành” để đóng trình cài đặt này.
+MUI_UNTEXT_FINISH_INFO_REBOOT=Máy tính phải được khởi động lại để có thể hoàn tất việc gỡ bỏ $BrandFullNameDA. Bạn có muốn khởi động lại ngay bây giờ?
+MUI_UNTEXT_ABORTWARNING=Bạn có thật sự muốn thoát trình gỡ bỏ $BrandFullName?
diff --git a/l10n-vi/browser/installer/nsisstrings.properties b/l10n-vi/browser/installer/nsisstrings.properties
new file mode 100644
index 0000000000..3e99cbfdf7
--- /dev/null
+++ b/l10n-vi/browser/installer/nsisstrings.properties
@@ -0,0 +1,50 @@
+# 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:
+
+# This file must be saved as UTF8
+
+# Accesskeys are defined by prefixing the letter that is to be used for the
+# accesskey with an ampersand (e.g. &).
+
+# Do not replace $BrandShortName, $BrandProductName, $BrandFullName,
+# or $BrandFullNameDA with a custom string and always use the same one as used
+# by the en-US files.
+# $BrandFullNameDA allows the string to contain an ampersand (e.g. DA stands
+# for double ampersand) and prevents the letter following the ampersand from
+# being used as an accesskey.
+
+# You can use \n to create a newline in the string but only when the string
+# from en-US contains a \n.
+
+INSTALLER_WIN_CAPTION=Trình cài đặt $BrandShortName
+
+STUB_CLEANUP_PAVEOVER_HEADER2=$BrandShortName đã được cài đặt trước đó. Hãy cập nhật nó.
+STUB_CLEANUP_REINSTALL_HEADER2=$BrandShortName đã được cài đặt trước đó. Hãy tạo bạn một bản sao mới.
+
+STUB_CLEANUP_PAVEOVER_BUTTON2=Cập nhật
+STUB_CLEANUP_REINSTALL_BUTTON2=Cài đặt lại
+STUB_CLEANUP_CHECKBOX_LABEL2=Khôi phục cài đặt mặc định và loại bỏ các tiện ích cũ cho hiệu suất tối ưu
+
+STUB_INSTALLING_LABEL2=Đang cài đặt…
+STUB_INSTALLING_HEADLINE2=Tối ưu hóa cài đặt của bạn cho tốc độ, sự riêng tư và an toàn.
+STUB_INSTALLING_BODY2=$BrandShortName sẽ sẵn sàng chỉ sau vài phút.
+STUB_BLURB_FIRST1=Nhanh hơn, $BrandShortName đáp ứng nhanh nhất chưa từng thấy
+STUB_BLURB_SECOND1=Tải trang và chuyển đổi giữa các thẻ nhanh hơn
+STUB_BLURB_THIRD1=Trình duyệt riêng tư mạnh mẽ
+STUB_BLURB_FOOTER2=Được xây dựng vì mọi người, không vì lợi nhuận
+
+WARN_MIN_SUPPORTED_OSVER_MSG=Xin lỗi, $BrandShortName không thể cài đặt. Phiên bản này của $BrandShortName yêu cầu ${MinSupportedVer} hoặc mới hơn. Hãy nhấn nút OK để biết thêm thông tin.
+WARN_MIN_SUPPORTED_CPU_MSG=Xin lỗi, $BrandShortName không thể cài đặt. Phiên bản này của $BrandShortName yêu cầu bộ xử lý có hỗ trợ ${MinSupportedCPU}. Hãy nhấn nút OK để biết thêm thông tin.
+WARN_MIN_SUPPORTED_OSVER_CPU_MSG=Xin lỗi, $BrandShortName không thể cài đặt. Phiên bản này của $BrandShortName yêu cầu ${MinSupportedVer} hoặc mới hơn và bộ xử lý có hỗ trợ ${MinSupportedCPU}. Hãy nhấn nút OK để biết thêm thông tin.
+WARN_WRITE_ACCESS_QUIT=Bạn không có quyền truy cập để ghi vào thư mục cài đặt
+WARN_DISK_SPACE_QUIT=Bạn không có đủ dung lượng trống của ổ đĩa để cài đặt.
+
+ERROR_DOWNLOAD_CONT=Hừm. Vì một số lý do nào đó, chúng tôi không thể cài đặt $BrandShortName.\nNhấn OK để bắt đầu lại.
+
+STUB_CANCEL_PROMPT_HEADING=Bạn có muốn cài đặt $BrandShortName?
+STUB_CANCEL_PROMPT_MESSAGE=Nếu bạn hủy bỏ, $BrandShortName sẽ không được cài đặt.
+STUB_CANCEL_PROMPT_BUTTON_CONTINUE=Cài đặt $BrandShortName
+STUB_CANCEL_PROMPT_BUTTON_EXIT=Hủy bỏ
diff --git a/l10n-vi/browser/installer/override.properties b/l10n-vi/browser/installer/override.properties
new file mode 100644
index 0000000000..b557f87beb
--- /dev/null
+++ b/l10n-vi/browser/installer/override.properties
@@ -0,0 +1,86 @@
+# 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:
+
+# This file must be saved as UTF8
+
+# Accesskeys are defined by prefixing the letter that is to be used for the
+# accesskey with an ampersand (e.g. &).
+
+# Do not replace $BrandShortName, $BrandFullName, or $BrandFullNameDA with a
+# custom string and always use the same one as used by the en-US files.
+# $BrandFullNameDA allows the string to contain an ampersand (e.g. DA stands
+# for double ampersand) and prevents the letter following the ampersand from
+# being used as an accesskey.
+
+# You can use \n to create a newline in the string but only when the string
+# from en-US contains a \n.
+
+# Strings that require a space at the end should be enclosed with double
+# quotes and the double quotes will be removed. To add quotes to the beginning
+# and end of a strong enclose the add and additional double quote to the
+# beginning and end of the string (e.g. ""This will include quotes"").
+
+SetupCaption=Cài đặt $BrandFullName
+UninstallCaption=Gỡ bỏ $BrandFullName
+BackBtn=< &Quay lại
+NextBtn=&Tiếp tục >
+AcceptBtn=Tôi &chấp nhận các điều khoản trong Thỏa thuận Giấy phép
+DontAcceptBtn=Tôi &không chấp nhận các điều khoản trong Thỏa thuận Giấy phép
+InstallBtn=&Cài đặt
+UninstallBtn=&Gỡ bỏ
+CancelBtn=Hủy bỏ
+CloseBtn=Đóng (&C)
+BrowseBtn=&Duyệt…
+ShowDetailsBtn=&Hiển thị chi tiết
+ClickNext=Nhấn “Tiếp tục” để tiếp tục.
+ClickInstall=Nhấn “Cài đặt” để bắt đầu cài đặt.
+ClickUninstall=Nhấn “Gỡ bỏ” để bắt đầu gỡ bỏ.
+Completed=Hoàn tất
+LicenseTextRB=Vui lòng xem thỏa thuận giấy phép trước khi cài đặt $BrandFullNameDA. Nếu bạn chấp nhận tất cả điều khoản của bản thỏa thuận, hãy chọn ô đầu tiên bên dưới. $_CLICK
+ComponentsText=Chọn các thành phần bạn muốn cài đặt và bỏ chọn các thành phần mà bạn không muốn. $_CLICK
+ComponentsSubText2_NoInstTypes=Chọn các thành phần muốn cài đặt:
+DirText=Sẽ cài đặt $BrandFullNameDA vào thư mục sau. Để cài vào thư mục khác, nhấn Duyệt và chọn một thư mục khác. $_CLICK
+DirSubText=Thư mục Đích
+DirBrowseText=Chọn thư mục để cài đặt $BrandFullNameDA:
+SpaceAvailable="Dung lượng hiện có: "
+SpaceRequired="Dung lượng yêu cầu: "
+UninstallingText=$BrandFullNameDA sẽ được gỡ bỏ khỏi thư mục sau. $_CLICK
+UninstallingSubText=Đang gỡ bỏ khỏi:
+FileError=Gặp lỗi khi mở tập tin để ghi: \r\n\r\n$0\r\n\r\nNhấn “Hủy bỏ” (Cancel) để dừng cài đặt,\r\n“Thử lại” (Retry) để thử lần nữa, hoặc\r\n“Bỏ qua” (Ignore) để bỏ qua tập tin này.
+FileError_NoIgnore=Gặp lỗi khi mở tập tin để ghi: \r\n\r\n$0\r\n\r\nNhấn “Thử lại” (Retry) để thử lần nữa, hoặc\r\n“Hủy bỏ” (Cancel) để dừng việc cài đặt.
+CantWrite="Không thể ghi: "
+CopyFailed=Thao tác sao chép thất bại
+CopyTo="Sao chép đến "
+Registering="Đang đăng kí: "
+Unregistering="Đang bỏ đăng kí: "
+SymbolNotFound="Không thể tìm biểu tượng: "
+CouldNotLoad="Không thể tải: "
+CreateFolder="Tạo thư mục: "
+CreateShortcut="Tạo lối tắt: "
+CreatedUninstaller="Đã tạo trình gỡ bỏ: "
+Delete="Xóa tập tin: "
+DeleteOnReboot="Xóa khi khởi động lại: "
+ErrorCreatingShortcut="Gặp lỗi khi tạo lối tắt: "
+ErrorCreating="Gặp lỗi khi tạo: "
+ErrorDecompressing=Gặp lỗi khi giải nén dữ liệu! Có thể trình cài đặt đã bị hư?
+ErrorRegistering=Lỗi đăng kí DLL
+ExecShell="ExecShell: "
+Exec="Thực thi: "
+Extract="Giải nén: "
+ErrorWriting="Giải nén: lỗi khi ghi vào tập tin "
+InvalidOpcode=Trình cài đặt bị hư: mã tác vụ bất hợp lệ
+NoOLE="Không có OLE cho: "
+OutputFolder="Thư mục đầu ra: "
+RemoveFolder="Gỡ bỏ thư mục: "
+RenameOnReboot="Đổi tên khi khởi động lại: "
+Rename="Đổi tên: "
+Skipped="Bỏ qua: "
+CopyDetails=Sao chép chi tiết vào bộ nhớ tạm
+LogInstall=Lưu kí tiến trình cài đặt
+Byte=B
+Kilo=K
+Mega=M
+Giga=G
diff --git a/l10n-vi/browser/langpack-metadata.ftl b/l10n-vi/browser/langpack-metadata.ftl
new file mode 100644
index 0000000000..06e81c446a
--- /dev/null
+++ b/l10n-vi/browser/langpack-metadata.ftl
@@ -0,0 +1,12 @@
+# 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/.
+
+
+## Strings used to define the metadata of langpacks published on addons.mozilla.org.
+## Only text elements and literals are supported for these strings.
+
+langpack-creator = Cộng đồng bản địa hóa Mozilla
+# To credit multiple contributors, use a comma-delimited list.
+# Example: Joe Solon, Suzy Solon
+langpack-contributors = Nguyễn Mạnh Hùng, Nguyễn Xuân Minh, Huỳnh Hải Đăng, Bùi Việt Khoa, Trần Nguyễn Sơn, Ngô Đức Trung, Nguyễn Hà Dương, Nguyễn Phan Hải, Đặng Duy Thanh
diff --git a/l10n-vi/browser/pdfviewer/chrome.properties b/l10n-vi/browser/pdfviewer/chrome.properties
new file mode 100644
index 0000000000..77eacbef64
--- /dev/null
+++ b/l10n-vi/browser/pdfviewer/chrome.properties
@@ -0,0 +1,20 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Chrome notification bar messages and buttons
+unsupported_feature=Tài liệu PDF này có thể không được hiển thị đúng.
+unsupported_feature_forms=Tài liệu PDF này có chứa form. Tuy nhiên, chúng tôi chưa hỗ trợ điền form.
+unsupported_feature_signatures=Tài liệu PDF này có chứa chữ ký điện tử. Xác thực chữ ký không được hỗ trợ.
+open_with_different_viewer=Mở bằng chương trình khác
+open_with_different_viewer.accessKey=o
diff --git a/l10n-vi/browser/pdfviewer/viewer.properties b/l10n-vi/browser/pdfviewer/viewer.properties
new file mode 100644
index 0000000000..b140a30089
--- /dev/null
+++ b/l10n-vi/browser/pdfviewer/viewer.properties
@@ -0,0 +1,277 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=Trang trước
+previous_label=Trước
+next.title=Trang Sau
+next_label=Tiếp
+
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=Trang
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=trên {{pagesCount}}
+# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}"
+# will be replaced by a number representing the currently visible page,
+# respectively a number representing the total number of pages in the document.
+page_of_pages=({{pageNumber}} trên {{pagesCount}})
+
+zoom_out.title=Thu nhỏ
+zoom_out_label=Thu nhỏ
+zoom_in.title=Phóng to
+zoom_in_label=Phóng to
+zoom.title=Thu phóng
+presentation_mode.title=Chuyển sang chế độ trình chiếu
+presentation_mode_label=Chế độ trình chiếu
+open_file.title=Mở tập tin
+open_file_label=Mở tập tin
+print.title=In
+print_label=In
+download.title=Tải xuống
+download_label=Tải xuống
+save.title=Lưu
+save_label=Lưu
+bookmark.title=Chế độ xem hiện tại (sao chép hoặc mở trong cửa sổ mới)
+bookmark_label=Chế độ xem hiện tại
+
+bookmark1.title=Trang hiện tại (xem URL từ trang hiện tại)
+bookmark1_label=Trang hiện tại
+
+# Secondary toolbar and context menu
+tools.title=Công cụ
+tools_label=Công cụ
+first_page.title=Về trang đầu
+first_page_label=Về trang đầu
+last_page.title=Đến trang cuối
+last_page_label=Đến trang cuối
+page_rotate_cw.title=Xoay theo chiều kim đồng hồ
+page_rotate_cw_label=Xoay theo chiều kim đồng hồ
+page_rotate_ccw.title=Xoay ngược chiều kim đồng hồ
+page_rotate_ccw_label=Xoay ngược chiều kim đồng hồ
+
+cursor_text_select_tool.title=Kích hoạt công cụ chọn vùng văn bản
+cursor_text_select_tool_label=Công cụ chọn vùng văn bản
+cursor_hand_tool.title=Kích hoạt công cụ con trỏ
+cursor_hand_tool_label=Công cụ con trỏ
+
+scroll_page.title=Sử dụng cuộn trang hiện tại
+scroll_page_label=Cuộn trang hiện tại
+scroll_vertical.title=Sử dụng cuộn dọc
+scroll_vertical_label=Cuộn dọc
+scroll_horizontal.title=Sử dụng cuộn ngang
+scroll_horizontal_label=Cuộn ngang
+scroll_wrapped.title=Sử dụng cuộn ngắt dòng
+scroll_wrapped_label=Cuộn ngắt dòng
+
+spread_none.title=Không nối rộng trang
+spread_none_label=Không có phân cách
+spread_odd.title=Nối trang bài bắt đầu với các trang được đánh số lẻ
+spread_odd_label=Phân cách theo số lẻ
+spread_even.title=Nối trang bài bắt đầu với các trang được đánh số chẵn
+spread_even_label=Phân cách theo số chẵn
+
+# Document properties dialog box
+document_properties.title=Thuộc tính của tài liệu…
+document_properties_label=Thuộc tính của tài liệu…
+document_properties_file_name=Tên tập tin:
+document_properties_file_size=Kích thước:
+# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}"
+# will be replaced by the PDF file size in kilobytes, respectively in bytes.
+document_properties_kb={{size_kb}} KB ({{size_b}} byte)
+# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}"
+# will be replaced by the PDF file size in megabytes, respectively in bytes.
+document_properties_mb={{size_mb}} MB ({{size_b}} byte)
+document_properties_title=Tiêu đề:
+document_properties_author=Tác giả:
+document_properties_subject=Chủ đề:
+document_properties_keywords=Từ khóa:
+document_properties_creation_date=Ngày tạo:
+document_properties_modification_date=Ngày sửa đổi:
+# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}"
+# will be replaced by the creation/modification date, and time, of the PDF file.
+document_properties_date_string={{date}}, {{time}}
+document_properties_creator=Người tạo:
+document_properties_producer=Phần mềm tạo PDF:
+document_properties_version=Phiên bản PDF:
+document_properties_page_count=Tổng số trang:
+document_properties_page_size=Kích thước trang:
+document_properties_page_size_unit_inches=in
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=khổ dọc
+document_properties_page_size_orientation_landscape=khổ ngang
+document_properties_page_size_name_a3=A3
+document_properties_page_size_name_a4=A4
+document_properties_page_size_name_letter=Thư
+document_properties_page_size_name_legal=Pháp lý
+# LOCALIZATION NOTE (document_properties_page_size_dimension_string):
+# "{{width}}", "{{height}}", {{unit}}, and {{orientation}} will be replaced by
+# the size, respectively their unit of measurement and orientation, of the (current) page.
+document_properties_page_size_dimension_string={{width}} × {{height}} {{unit}} ({{orientation}})
+# LOCALIZATION NOTE (document_properties_page_size_dimension_name_string):
+# "{{width}}", "{{height}}", {{unit}}, {{name}}, and {{orientation}} will be replaced by
+# the size, respectively their unit of measurement, name, and orientation, of the (current) page.
+document_properties_page_size_dimension_name_string={{width}} × {{height}} {{unit}} ({{name}}, {{orientation}})
+# LOCALIZATION NOTE (document_properties_linearized): The linearization status of
+# the document; usually called "Fast Web View" in English locales of Adobe software.
+document_properties_linearized=Xem nhanh trên web:
+document_properties_linearized_yes=Có
+document_properties_linearized_no=Không
+document_properties_close=Ðóng
+
+print_progress_message=Chuẩn bị trang để in…
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=Hủy bỏ
+
+# Tooltips and alt text for side panel toolbar buttons
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+toggle_sidebar.title=Bật/Tắt thanh lề
+toggle_sidebar_notification2.title=Bật tắt thanh lề (tài liệu bao gồm bản phác thảo/tập tin đính kèm/lớp)
+toggle_sidebar_label=Bật/Tắt thanh lề
+document_outline.title=Hiển thị tài liệu phác thảo (nhấp đúp vào để mở rộng/thu gọn tất cả các mục)
+document_outline_label=Bản phác tài liệu
+attachments.title=Hiện nội dung đính kèm
+attachments_label=Nội dung đính kèm
+layers.title=Hiển thị các lớp (nhấp đúp để đặt lại tất cả các lớp về trạng thái mặc định)
+layers_label=Lớp
+thumbs.title=Hiển thị ảnh thu nhỏ
+thumbs_label=Ảnh thu nhỏ
+current_outline_item.title=Tìm mục phác thảo hiện tại
+current_outline_item_label=Mục phác thảo hiện tại
+findbar.title=Tìm trong tài liệu
+findbar_label=Tìm
+
+additional_layers=Các lớp bổ sung
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
+page_landmark=Trang {{page}}
+# Thumbnails panel item (tooltip and alt text for images)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title=Trang {{page}}
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas=Ảnh thu nhỏ của trang {{page}}
+
+# Find panel button title and messages
+find_input.title=Tìm
+find_input.placeholder=Tìm trong tài liệu…
+find_previous.title=Tìm cụm từ ở phần trước
+find_previous_label=Trước
+find_next.title=Tìm cụm từ ở phần sau
+find_next_label=Tiếp
+find_highlight=Tô sáng tất cả
+find_match_case_label=Phân biệt hoa, thường
+find_match_diacritics_label=Khớp dấu phụ
+find_entire_word_label=Toàn bộ từ
+find_reached_top=Đã đến phần đầu tài liệu, quay trở lại từ cuối
+find_reached_bottom=Đã đến phần cuối của tài liệu, quay trở lại từ đầu
+# LOCALIZATION NOTE (find_match_count): The supported plural forms are
+# [one|two|few|many|other], with [other] as the default value.
+# "{{current}}" and "{{total}}" will be replaced by a number representing the
+# index of the currently active find result, respectively a number representing
+# the total number of matches in the document.
+find_match_count={[ plural(total) ]}
+find_match_count[one]={{current}} của {{total}} đã trùng
+find_match_count[two]={{current}} của {{total}} đã trùng
+find_match_count[few]={{current}} của {{total}} đã trùng
+find_match_count[many]={{current}} của {{total}} đã trùng
+find_match_count[other]={{current}} của {{total}} đã trùng
+# LOCALIZATION NOTE (find_match_count_limit): The supported plural forms are
+# [zero|one|two|few|many|other], with [other] as the default value.
+# "{{limit}}" will be replaced by a numerical value.
+find_match_count_limit={[ plural(limit) ]}
+find_match_count_limit[zero]=Nhiều hơn {{limit}} đã trùng
+find_match_count_limit[one]=Nhiều hơn {{limit}} đã trùng
+find_match_count_limit[two]=Nhiều hơn {{limit}} đã trùng
+find_match_count_limit[few]=Nhiều hơn {{limit}} đã trùng
+find_match_count_limit[many]=Nhiều hơn {{limit}} đã trùng
+find_match_count_limit[other]=Nhiều hơn {{limit}} đã trùng
+find_not_found=Không tìm thấy cụm từ này
+
+# Error panel labels
+error_more_info=Thông tin thêm
+error_less_info=Hiển thị ít thông tin hơn
+error_close=Đóng
+# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
+# replaced by the PDF.JS version and build ID.
+error_version_info=PDF.js v{{version}} (build: {{build}})
+# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
+# english string describing the error.
+error_message=Thông điệp: {{message}}
+# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
+# trace.
+error_stack=Stack: {{stack}}
+# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
+error_file=Tập tin: {{file}}
+# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
+error_line=Dòng: {{line}}
+
+# Predefined zoom values
+page_scale_width=Vừa chiều rộng
+page_scale_fit=Vừa chiều cao
+page_scale_auto=Tự động chọn kích thước
+page_scale_actual=Kích thước thực
+# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
+# numerical scale value.
+page_scale_percent={{scale}}%
+
+# Loading indicator messages
+loading=Đang tải…
+loading_error=Lỗi khi tải tài liệu PDF.
+invalid_file_error=Tập tin PDF hỏng hoặc không hợp lệ.
+missing_file_error=Thiếu tập tin PDF.
+unexpected_response_error=Máy chủ có phản hồi lạ.
+
+rendering_error=Lỗi khi hiển thị trang.
+
+# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
+# replaced by the modification date, and time, of the annotation.
+annotation_date_string={{date}}, {{time}}
+
+# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
+# "{{type}}" will be replaced with an annotation type from a list defined in
+# the PDF spec (32000-1:2008 Table 169 – Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+text_annotation_type.alt=[{{type}} Chú thích]
+password_label=Nhập mật khẩu để mở tập tin PDF này.
+password_invalid=Mật khẩu không đúng. Vui lòng thử lại.
+password_ok=OK
+password_cancel=Hủy bỏ
+
+printing_not_supported=Cảnh báo: In ấn không được hỗ trợ đầy đủ ở trình duyệt này.
+printing_not_ready=Cảnh báo: PDF chưa được tải hết để in.
+web_fonts_disabled=Phông chữ Web bị vô hiệu hóa: không thể sử dụng các phông chữ PDF được nhúng.
+
+# Editor
+editor_free_text2.title=Văn bản
+editor_free_text2_label=Văn bản
+editor_ink2.title=Vẽ
+editor_ink2_label=Vẽ
+
+free_text2_default_content=Bắt đầu nhập…
+
+# Editor Parameters
+editor_free_text_color=Màu
+editor_free_text_size=Kích cỡ
+editor_ink_color=Màu
+editor_ink_thickness=Độ dày
+editor_ink_opacity=Độ mờ
+
+# Editor aria
+editor_free_text2_aria_label=Trình sửa văn bản
+editor_ink2_aria_label=Trình sửa nét vẽ
+editor_ink_canvas_aria_label=Hình ảnh do người dùng tạo
diff --git a/l10n-vi/browser/updater/updater.ini b/l10n-vi/browser/updater/updater.ini
new file mode 100644
index 0000000000..1bd590758b
--- /dev/null
+++ b/l10n-vi/browser/updater/updater.ini
@@ -0,0 +1,10 @@
+# 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/.
+
+# This file is in the UTF-8 encoding
+# All strings must be less than 600 chars.
+[Strings]
+TitleText=Cập nhật %MOZ_APP_DISPLAYNAME%
+InfoText=%MOZ_APP_DISPLAYNAME% đang cài đặt cập nhật và sẽ khởi động trong chốc lát…
+MozillaMaintenanceDescription=Dịch vụ bảo trì của Mozilla đảm bảo rằng bạn luôn có phiên bản Mozilla Firefox mới nhất và an toàn nhất. Giữ Firefox luôn được cập nhật sẽ giúp bạn an toàn. Mozilla khuyên bạn nên kích hoạt dịch vụ này.
diff --git a/l10n-vi/calendar/README.txt b/l10n-vi/calendar/README.txt
new file mode 100644
index 0000000000..927fc142f2
--- /dev/null
+++ b/l10n-vi/calendar/README.txt
@@ -0,0 +1,3 @@
+For information about installing, running and configuring Sunbird
+including a list of known issues and troubleshooting information,
+refer to: http://www.mozilla.org/projects/calendar/
diff --git a/l10n-vi/calendar/calendar/calendar-context-menus.ftl b/l10n-vi/calendar/calendar/calendar-context-menus.ftl
new file mode 100644
index 0000000000..f129fdb7bf
--- /dev/null
+++ b/l10n-vi/calendar/calendar/calendar-context-menus.ftl
@@ -0,0 +1,7 @@
+# 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/.
+
+calendar-item-context-menu-modify-menuitem =
+ .label = Chỉnh sửa
+ .accesskey = E
diff --git a/l10n-vi/calendar/calendar/calendar-delete-prompt.ftl b/l10n-vi/calendar/calendar/calendar-delete-prompt.ftl
new file mode 100644
index 0000000000..bba109f556
--- /dev/null
+++ b/l10n-vi/calendar/calendar/calendar-delete-prompt.ftl
@@ -0,0 +1,29 @@
+# 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/.
+
+calendar-delete-event-prompt-title =
+ { $count ->
+ *[other] Xóa sự kiện
+ }
+calendar-delete-event-prompt-message =
+ { $count ->
+ *[other] Bạn có thực sự muốn xóa { $count } sự kiện này không?
+ }
+calendar-delete-task-prompt-title =
+ { $count ->
+ *[other] Xóa tác vụ
+ }
+calendar-delete-task-prompt-message =
+ { $count ->
+ *[other] Bạn có thực sự muốn xóa { $count } tác vụ này không?
+ }
+calendar-delete-item-prompt-title =
+ { $count ->
+ *[other] Xóa mục
+ }
+calendar-delete-item-prompt-message =
+ { $count ->
+ *[other] Bạn có thực sự muốn xóa { $count } mục này không?
+ }
+calendar-delete-prompt-disable-message = Đừng hỏi lại tôi nữa.
diff --git a/l10n-vi/calendar/calendar/calendar-editable-item.ftl b/l10n-vi/calendar/calendar/calendar-editable-item.ftl
new file mode 100644
index 0000000000..47560356d3
--- /dev/null
+++ b/l10n-vi/calendar/calendar/calendar-editable-item.ftl
@@ -0,0 +1,30 @@
+# 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/.
+
+calendar-editable-item-privacy-icon-private =
+ .alt = Quyền riêng tư: Sự kiện riêng tư
+calendar-editable-item-privacy-icon-confidential =
+ .alt = Quyền riêng tư: Chỉ hiển thị ngày và giờ
+calendar-editable-item-recurrence =
+ .alt = Định kỳ
+calendar-editable-item-recurrence-exception =
+ .alt = Ngoại lệ lặp lại
+calendar-editable-item-todo-icon-task =
+ .alt = Tác vụ
+calendar-editable-item-todo-icon-completed-task =
+ .alt = Tác vụ đã hoàn thành
+calendar-editable-item-multiday-event-icon-start =
+ .alt = Sự kiện kéo dài nhiều ngày bắt đầu
+calendar-editable-item-multiday-event-icon-continue =
+ .alt = Sự kiện kéo dài nhiều ngày tiếp tục
+calendar-editable-item-multiday-event-icon-end =
+ .alt = Sự kiện kéo dài nhiều ngày kết thúc
+calendar-editable-item-reminder-icon-alarm =
+ .alt = Một thông báo nhắc nhở đã được lên lịch
+calendar-editable-item-reminder-icon-suppressed-alarm =
+ .alt = Một thông báo nhắc nhở đã được lên lịch nhưng hiện đã bị chặn
+calendar-editable-item-reminder-icon-email =
+ .alt = Một e-mail nhắc nhở đã được lên lịch
+calendar-editable-item-reminder-icon-audio =
+ .alt = Một thông báo nhắc nhở bằng âm thanh đã được lên lịch
diff --git a/l10n-vi/calendar/calendar/calendar-event-dialog-reminder.ftl b/l10n-vi/calendar/calendar/calendar-event-dialog-reminder.ftl
new file mode 100644
index 0000000000..a0d402a9c2
--- /dev/null
+++ b/l10n-vi/calendar/calendar/calendar-event-dialog-reminder.ftl
@@ -0,0 +1,10 @@
+# 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/.
+
+calendar-event-reminder-icon-display =
+ .alt = Hiển thị một thông báo
+calendar-event-reminder-icon-email =
+ .alt = Gửi một e-mail
+calendar-event-reminder-icon-audio =
+ .alt = Phát âm thanh thông báo
diff --git a/l10n-vi/calendar/calendar/calendar-ics-file-dialog.ftl b/l10n-vi/calendar/calendar/calendar-ics-file-dialog.ftl
new file mode 100644
index 0000000000..bda0954aa8
--- /dev/null
+++ b/l10n-vi/calendar/calendar/calendar-ics-file-dialog.ftl
@@ -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/.
+
+calendar-ics-file-window-2 =
+ .title = Nhập sự kiện và tác vụ lịch
+calendar-ics-file-dialog-import-event-button-label = Nhập sự kiện
+calendar-ics-file-dialog-import-task-button-label = Nhập tác vụ
+calendar-ics-file-dialog-2 =
+ .buttonlabelaccept = Nhập tất cả
+calendar-ics-file-accept-button-ok-label = OK
+calendar-ics-file-cancel-button-close-label = Đóng
+calendar-ics-file-dialog-message-2 = Nhập từ tập tin:
+calendar-ics-file-dialog-calendar-menu-label = Nhập vào lịch:
+calendar-ics-file-dialog-items-loading-message =
+ .value = Đang tải các mục…
+calendar-ics-file-dialog-search-input =
+ .placeholder = Lọc các mục…
+calendar-ics-file-dialog-sort-start-ascending =
+ .label = Sắp xếp theo ngày bắt đầu (ngày đầu đến ngày cuối)
+calendar-ics-file-dialog-sort-start-descending =
+ .label = Sắp xếp theo ngày bắt đầu (ngày cuối đến ngày đầu)
+# "A > Z" is used as a concise way to say "alphabetical order".
+# You may replace it with something appropriate to your language.
+calendar-ics-file-dialog-sort-title-ascending =
+ .label = Sắp xếp theo tiêu đề (A > Z)
+# "Z > A" is used as a concise way to say "reverse alphabetical order".
+# You may replace it with something appropriate to your language.
+calendar-ics-file-dialog-sort-title-descending =
+ .label = Sắp xếp theo tiêu đề (Z > A)
+calendar-ics-file-dialog-progress-message = Đang nhập…
+calendar-ics-file-import-success = Nhập thành công!
+calendar-ics-file-import-error = Đã xảy ra lỗi và không thể nhập.
+calendar-ics-file-import-complete = Hoàn thành nhập.
+calendar-ics-file-import-duplicates =
+ { $duplicatesCount ->
+ *[other] { $duplicatesCount } mục đã bị bỏ qua vì chúng đã tồn tại trong lịch đích.
+ }
+calendar-ics-file-import-errors =
+ { $errorsCount ->
+ *[other] Không nhập được { $errorsCount } mục. Kiểm tra bảng điều khiển lỗi để biết chi tiết.
+ }
+calendar-ics-file-dialog-no-calendars = Không có lịch có thể nhập các sự kiện hoặc tác vụ.
diff --git a/l10n-vi/calendar/calendar/calendar-invitation-panel.ftl b/l10n-vi/calendar/calendar/calendar-invitation-panel.ftl
new file mode 100644
index 0000000000..7f95384781
--- /dev/null
+++ b/l10n-vi/calendar/calendar/calendar-invitation-panel.ftl
@@ -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/.
+
+# Variables:
+# $organizer (String) - The participant that created the original invitation.
+calendar-invitation-panel-intro = { $organizer } đã mời bạn đến:
+# Variables:
+# $organizer (String) - The participant that updated the original invitation.
+calendar-invitation-panel-intro-update = { $organizer } đã cập nhật:
+# Variables:
+# $organizer (String) - The participant that cancelled the invitation.
+calendar-invitation-panel-intro-cancel = { $organizer } đã hủy:
+# Variables:
+# $summary (String) - A short summary or title of the event.
+calendar-invitation-panel-title = { $summary }
+calendar-invitation-panel-action-button = Lưu
+calendar-invitation-panel-save-button = Lưu
+calendar-invitation-panel-view-button = Xem
+calendar-invitation-panel-update-button = Cập nhật
+calendar-invitation-panel-delete-button = Xóa
+calendar-invitation-panel-accept-button = Có
+calendar-invitation-panel-decline-button = Không
+calendar-invitation-panel-tentative-button = Phân vân
+calendar-invitation-panel-reply-status = * Bạn vẫn chưa quyết định hoặc chưa trả lời
+calendar-invitation-panel-prop-title-when = Lúc:
+calendar-invitation-panel-prop-title-location = Địa chỉ:
+# Variables:
+# $dayOfWeek (String) - The day of the week for a given date.
+# $date (String) - The date example: Tuesday, February 24, 2022.
+calendar-invitation-datetime-date = { $dayOfWeek }, { $date }
+# Variables:
+# $time (String) - The time part of a datetime using the "short" timeStyle.
+# $timezone (String) - The timezone info for the datetime.
+calendar-invitation-datetime-time = { $time } ({ $timezone })
+# Example: Friday, September 16, 2022
+# Variables:
+# $startDate (String) - The date (without time) the event starts on.
+calendar-invitation-interval-all-day = { $startDate }
+# Example: September 16, 2022 – September 16, 2023
+# $startMonth (String) - The month the interval starts.
+# $startDay (String) - The day of the month the interval starts.
+# $startYear (String) - The year the interval starts.
+# $endMonth (String) - The month the interval ends.
+# $endDay (String) - The day of the month the interval ends.
+# $endYear (String) - The year the interval ends.
+calendar-invitation-interval-all-day-between-years = { $startDay } { $startMonth } { $startYear } – { $endDay } { $endMonth } { $endYear }
+# Example: September 16 – 20, 2022
+# $month (String) - The month the interval is in.
+# $startDay (String) - The day of the month the interval starts.
+# $endDay (String) - The day of the month the interval ends.
+# $year (String) - The year the interval is in.
+calendar-invitation-interval-all-day-in-month = { $startDay } – { $endDay } { $month } { $year }
+# Example: September 16 – October 20, 2022
+# $startMonth (String) - The month the interval starts.
+# $startDay (String) - The day of the month the interval starts.
+# $endDay (String) - The day of the month the interval ends.
+# $year (String) - The year the interval is in.
+calendar-invitation-interval-all-day-between-months = { $startDay } { $startMonth } – { $endDay } { $endMonth } { $year }
+# Example: Friday, September 16, 2022 15:00 America/Port of Spain
+# $startDate (String) - The date the interval starts.
+# $startTime (String) - The time the interval starts.
+# $timezone (String) - The timezone the interval is in.
+calendar-invitation-interval-same-date-time = { $startTime } { $startDate } { $timezone }
+# Example: Friday, September 16, 2022 14:00 – 16:00 America/Port of Spain
+# $startDate (String) - The date the interval starts.
+# $startTime (String) - The time the interval starts.
+# $endTime (String) - The time the interval ends.
+# $timezone (String) - The timezone the interval is in.
+calendar-invitation-interval-same-day = { $startTime } – { $endTime } { $startDate } { $timezone }
+# Example: Friday, September 16, 2022 14:00 – Tuesday, September 20, 2022 16:00 America/Port of Spain
+# $startDate (String) - The date the interval starts.
+# $startTime (String) - The time the interval starts.
+# $startDate (String) - The date the interval ends.
+# $endTime (String) - The time the interval ends.
+# $timezone (String) - The timezone the interval is in.
+calendar-invitation-interval-several-days = { $startTime } { $startDate } – { $endTime } { $endDate } { $timezone }
+calendar-invitation-panel-prop-title-recurrence = Lặp lại:
+calendar-invitation-panel-prop-title-attendees = Người tham dự:
+calendar-invitation-panel-prop-title-description = Mô tả:
+# Variables:
+# $count (Number) - The number of attendees with the "ACCEPTED" participation status.
+calendar-invitation-panel-partstat-accepted = { $count } đồng ý
+# Variables:
+# $count (Number) - The number of attendees with the "DECLINED" participation status.
+calendar-invitation-panel-partstat-declined = { $count } từ chối
+# Variables:
+# $count (Number) - The number of attendees with the "TENTATIVE" participation status.
+calendar-invitation-panel-partstat-tentative = { $count } phân vân
+# Variables:
+# $count (Number) - The number of attendees with the "NEEDS-ACTION" participation status.
+calendar-invitation-panel-partstat-needs-action = { $count } đang chờ xử lý
+# Variables:
+# $count (Number) - The total number of attendees.
+calendar-invitation-panel-partstat-total = { $count } người tham dự
+calendar-invitation-panel-prop-title-attachments = Đính kèm:
diff --git a/l10n-vi/calendar/calendar/calendar-invitations-dialog.ftl b/l10n-vi/calendar/calendar/calendar-invitations-dialog.ftl
new file mode 100644
index 0000000000..5e35c0d7d5
--- /dev/null
+++ b/l10n-vi/calendar/calendar/calendar-invitations-dialog.ftl
@@ -0,0 +1,10 @@
+# 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/.
+
+calendar-invitation-current-participation-status-icon-accepted =
+ .alt = Hiện tại đã được chấp nhận
+calendar-invitation-current-participation-status-icon-declined =
+ .alt = Hiện tại đã từ chối
+calendar-invitation-current-participation-status-icon-needs-action =
+ .alt = Hiện tại chưa được quyết định
diff --git a/l10n-vi/calendar/calendar/calendar-itip-identity-dialog.ftl b/l10n-vi/calendar/calendar/calendar-itip-identity-dialog.ftl
new file mode 100644
index 0000000000..34d3b5ea23
--- /dev/null
+++ b/l10n-vi/calendar/calendar/calendar-itip-identity-dialog.ftl
@@ -0,0 +1,8 @@
+# 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/.
+
+calendar-itip-identity-dialog-title = Buổi tiệc đã tàn?
+calendar-itip-identity-warning = Bạn hiện chưa ở trong danh sách khách mời.
+calendar-itip-identity-label = Trả lời với tư cách:
+calendar-itip-identity-label-none = Liên kết sự kiện này với:
diff --git a/l10n-vi/calendar/calendar/calendar-print.ftl b/l10n-vi/calendar/calendar/calendar-print.ftl
new file mode 100644
index 0000000000..3dd66b99c7
--- /dev/null
+++ b/l10n-vi/calendar/calendar/calendar-print.ftl
@@ -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/.
+
+calendar-print-layout-label = Bố cục
+calendar-print-layout-list = Danh sách
+calendar-print-layout-month-grid = Lịch trình hàng tháng
+calendar-print-layout-week-planner = Kế hoạch hàng tuần
+calendar-print-filter-label = Những gì để in
+calendar-print-filter-events = Sự kiện
+calendar-print-filter-tasks = Tác vụ
+calendar-print-filter-completedtasks = Tác vụ đã hoàn tất
+calendar-print-filter-taskswithnoduedate = Tác vụ không có ngày đến hạn
+calendar-print-range-from = Từ
+calendar-print-range-to = Đến
+calendar-print-back-button = Quay lại
+calendar-print-next-button = Tiếp theo
diff --git a/l10n-vi/calendar/calendar/calendar-summary-dialog.ftl b/l10n-vi/calendar/calendar/calendar-summary-dialog.ftl
new file mode 100644
index 0000000000..69fa2f924c
--- /dev/null
+++ b/l10n-vi/calendar/calendar/calendar-summary-dialog.ftl
@@ -0,0 +1,15 @@
+# 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/.
+
+calendar-summary-dialog-edit-button =
+ .label = Chỉnh sửa
+ .accesskey = E
+calendar-summary-dialog-edit-menu-button =
+ .label = Chỉnh sửa
+edit-button-context-menu-this-occurrence =
+ .label = Chỉ chỉnh sửa lần xuất hiện này
+ .accesskey = t
+edit-button-context-menu-all-occurrences =
+ .label = Chỉnh sửa tất cả các lần xuất hiện
+ .accesskey = a
diff --git a/l10n-vi/calendar/calendar/calendar-uri-redirect-dialog.ftl b/l10n-vi/calendar/calendar/calendar-uri-redirect-dialog.ftl
new file mode 100644
index 0000000000..728cd482c6
--- /dev/null
+++ b/l10n-vi/calendar/calendar/calendar-uri-redirect-dialog.ftl
@@ -0,0 +1,11 @@
+# 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/.
+
+calendar-uri-redirect-window =
+ .title = Chuyển hướng URI lịch
+calendar-uri-redirect-description =
+ Máy chủ đang chuyển hướng URI cho lịch "{ $calendarName }".
+ Chấp nhận chuyển hướng và bắt đầu sử dụng URI mới cho lịch này?
+calendar-uri-redirect-original-uri-label = URI hiện tại:
+calendar-uri-redirect-target-uri-label = Chuyển hướng đến URI mới:
diff --git a/l10n-vi/calendar/calendar/calendar-widgets.ftl b/l10n-vi/calendar/calendar/calendar-widgets.ftl
new file mode 100644
index 0000000000..c39ac0f461
--- /dev/null
+++ b/l10n-vi/calendar/calendar/calendar-widgets.ftl
@@ -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/.
+
+calendar-deactivated-notification-events = Tất cả các lịch hiện đang bị vô hiệu hóa. Bật lịch hiện có hoặc thêm lịch mới để tạo và chỉnh sửa sự kiện.
+calendar-deactivated-notification-tasks = Tất cả các lịch hiện đang bị vô hiệu hóa. Kích hoạt lịch hiện có hoặc thêm lịch mới để tạo và chỉnh sửa tác vụ.
+calendar-notifications-label = Hiển thị thông báo cho các sự kiện sắp tới
+calendar-add-notification-button =
+ .label = Thêm thông báo
diff --git a/l10n-vi/calendar/calendar/category-dialog.ftl b/l10n-vi/calendar/calendar/category-dialog.ftl
new file mode 100644
index 0000000000..298a327ad8
--- /dev/null
+++ b/l10n-vi/calendar/calendar/category-dialog.ftl
@@ -0,0 +1,7 @@
+# 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/.
+
+category-name-label = Tên
+category-color-label =
+ .label = Sử dụng màu
diff --git a/l10n-vi/calendar/calendar/preferences.ftl b/l10n-vi/calendar/calendar/preferences.ftl
new file mode 100644
index 0000000000..271cc46543
--- /dev/null
+++ b/l10n-vi/calendar/calendar/preferences.ftl
@@ -0,0 +1,192 @@
+# 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/.
+
+calendar-title = Lịch
+calendar-title-reminder = Nhắc nhở
+calendar-title-notification = Thông báo
+calendar-title-category = Thể loại
+dateformat-label =
+ .value = Định dạng văn bản ngày:
+ .accesskey = N
+# $date (String) - the formatted example date
+dateformat-long =
+ .label = Dài: { $date }
+# $date (String) - the formatted example date
+dateformat-short =
+ .label = Ngắn: { $date }
+use-system-timezone-radio-button =
+ .label = Sử dụng múi giờ hệ thống
+set-timezone-manually-radio-button =
+ .label = Đặt múi giờ theo cách thủ công
+timezone-label =
+ .value = Múi giờ:
+weekstart-label =
+ .value = Bắt đầu tuần vào:
+ .accesskey = B
+day-1-name =
+ .label = Chủ nhật
+day-2-name =
+ .label = Thứ hai
+day-3-name =
+ .label = Thứ ba
+day-4-name =
+ .label = Thứ tư
+day-5-name =
+ .label = Thứ năm
+day-6-name =
+ .label = Thứ sáu
+day-7-name =
+ .label = Thứ bảy
+show-weeknumber-label =
+ .label = Hiển thị số tuần trong lượt xem và tháng nhỏ
+ .accesskey = n
+workdays-label =
+ .value = Ngày làm việc:
+day-1-checkbox =
+ .label = ChN
+ .accesskey = C
+day-2-checkbox =
+ .label = Th2
+ .accesskey = 2
+day-3-checkbox =
+ .label = Th3
+ .accesskey = 3
+day-4-checkbox =
+ .label = Th4
+ .accesskey = 4
+day-5-checkbox =
+ .label = Th5
+ .accesskey = 5
+day-6-checkbox =
+ .label = Th6
+ .accesskey = 6
+day-7-checkbox =
+ .label = Th7
+ .accesskey = 7
+dayweek-legend = Hiển thị theo ngày và tuần
+visible-hours-label =
+ .value = Hiện:
+ .accesskey = H
+visible-hours-end-label =
+ .value = giờ cùng một lúc
+day-start-label =
+ .value = Ngày bắt đầu lúc:
+ .accesskey = N
+day-end-label =
+ .value = Ngày kết thúc lúc:
+ .accesskey = y
+midnight-label =
+ .label = Nửa đêm
+noon-label =
+ .label = Trưa
+location-checkbox =
+ .label = Hiển thị địa chỉ
+ .accesskey = L
+multiweek-legend = Hiển thị theo nhiều tuần
+number-of-weeks-label =
+ .value = Số lượng tuần mà bạn muốn hiển thị (bao gồm cả các tuần trước đó):
+ .accesskey = l
+week-0-label =
+ .label = không
+week-1-label =
+ .label = 1 tuần
+week-2-label =
+ .label = 2 tuần
+week-3-label =
+ .label = 3 tuần
+week-4-label =
+ .label = 4 tuần
+week-5-label =
+ .label = 5 tuần
+week-6-label =
+ .label = 6 tuần
+previous-weeks-label =
+ .value = Số lượng tuần trước đó mà bạn muốn hiển thị:
+ .accesskey = S
+todaypane-legend = Bảng ngày hôm nay
+agenda-days =
+ .value = Chương trình cho thấy:
+ .accesskey = g
+event-task-legend = Sự kiện và nhiệm vụ
+default-length-label =
+ .value = Độ dài sự kiện và nhiệm vụ mặc định:
+ .accesskey = E
+task-start-label =
+ .value = Ngày bắt đầu:
+task-start-1-label =
+ .label = Không có
+task-start-2-label =
+ .label = Ngày bắt đầu
+task-start-3-label =
+ .label = Ngày kết thúc
+task-start-4-label =
+ .label = Ngày mai
+task-start-5-label =
+ .label = Tuần tới
+task-start-6-label =
+ .label = Liên quan đến thời gian hiện tại
+task-start-7-label =
+ .label = Liên quan đến bắt đầu
+task-start-8-label =
+ .label = Liên quan đến giờ tiếp theo
+task-due-label =
+ .value = Ngày đến hạn:
+edit-intab-label =
+ .label = Chỉnh sửa các sự kiện và tác vụ trong một thẻ thay vì trong cửa sổ hộp thoại.
+ .accesskey = t
+prompt-delete-label =
+ .label = Nhắc trước khi xóa các sự kiện và tác vụ.
+ .accesskey = V
+accessibility-legend = Trợ năng
+accessibility-colors-label =
+ .label = Tối ưu hóa màu sắc cho khả năng tiếp cận
+ .accesskey = c
+reminder-legend = Khi đổ chuông báo:
+reminder-play-checkbox =
+ .label = Phát ra âm thanh
+ .accesskey = s
+reminder-play-alarm-button =
+ .label = Phát
+ .accesskey = P
+reminder-default-sound-label =
+ .label = Sử dụng âm thanh mặc định
+ .accesskey = d
+reminder-custom-sound-label =
+ .label = Sử dụng tập tin âm thanh sau
+ .accesskey = U
+reminder-browse-sound-label =
+ .label = Duyệt…
+ .accesskey = B
+reminder-dialog-label =
+ .label = Hiển thị hộp thoại nhắc nhở
+ .accesskey = x
+missed-reminder-label =
+ .label = Hiển thị lời nhắc nhở cho lịch có thể ghi
+ .accesskey = m
+reminder-default-legend = Mặc định nhắc nhở
+default-snooze-label =
+ .value = Độ dài báo lại mặc định:
+ .accesskey = S
+event-alarm-label =
+ .value = Cài đặt nhắc nhở mặc định cho các sự kiện:
+ .accesskey = e
+alarm-on-label =
+ .label = Bật
+alarm-off-label =
+ .label = Tắt
+task-alarm-label =
+ .value = Cài đặt nhắc nhở mặc định cho các tác vụ:
+ .accesskey = a
+event-alarm-time-label =
+ .value = Thời gian mặc định một lời nhắc được đặt trước một sự kiện:
+ .accesskey = u
+task-alarm-time-label =
+ .value = Thời gian mặc định một lời nhắc được đặt trước một tác vụ:
+ .accesskey = o
+calendar-notifications-customize-label = Thông báo có thể được tùy chỉnh cho từng lịch trong cửa sổ thuộc tính của lịch.
+category-new-label = Phân mục mới
+category-edit-label = Chỉnh sửa phân mục
+category-overwrite-title = Cảnh báo: Trùng tên
+category-overwrite = Đã tồn tại một phân mục có tên đó. Bạn có muốn ghi đè nó không?
+category-blank-warning = Bạn phải nhập một tên phân mục.
diff --git a/l10n-vi/calendar/chrome/calendar/calendar-alarms.properties b/l10n-vi/calendar/chrome/calendar/calendar-alarms.properties
new file mode 100644
index 0000000000..d39bbbb58d
--- /dev/null
+++ b/l10n-vi/calendar/chrome/calendar/calendar-alarms.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/.
+
+# LOCALIZATION NOTE (reminderCustomTitle):
+# %1$S = unit, %2$S = reminderCustomOrigin
+# Example: "3 minutes" "before the task starts"
+reminderCustomTitle=%1$S %2$S
+reminderTitleAtStartEvent=Thời điểm sự kiện bắt đầu
+reminderTitleAtStartTask=Thời điểm nhiệm vụ bắt đầu
+reminderTitleAtEndEvent=Thời điểm sự kiện kết thúc
+reminderTitleAtEndTask=Thời điểm nhiệm vụ kết thúc
+
+# LOCALIZATION NOTE (reminderSnoozeOkA11y)
+# This string is not seen in the UI, it is read by screen readers when the user
+# focuses the "OK" button in the "Snooze for..." popup of the alarm dialog.
+# %1$S = any of unit*
+reminderSnoozeOkA11y=Lời nhắc báo lại cho %1$S
+
+reminderCustomOriginBeginBeforeEvent=trước khi sự kiện bắt đầu
+reminderCustomOriginBeginAfterEvent=sau khi sự kiện bắt đầu
+reminderCustomOriginEndBeforeEvent=trước khi sự kiện kết thúc
+reminderCustomOriginEndAfterEvent=sau khi sự kiện kết thúc
+reminderCustomOriginBeginBeforeTask=trước khi nhiệm vụ bắt đầu
+reminderCustomOriginBeginAfterTask=sau khi nhiệm vụ bắt đầu
+reminderCustomOriginEndBeforeTask=trước khi nhiệm vụ kết thúc
+reminderCustomOriginEndAfterTask=sau khi nhiệm vụ kết thúc
+
+reminderErrorMaxCountReachedEvent=Bộ lịch đã chọn có giới hạn #1 lời nhắc việc cho mỗi sự kiện.;Bộ lịch đã chọn có giới hạn #1 lời nhắc việc cho mỗi sự kiện.
+reminderErrorMaxCountReachedTask=Bộ lịch đã chọn có giới hạn #1 lời nhắc việc cho mỗi tác vụ.;Bộ lịch đã chọn có giới hạn #1 lời nhắc việc cho mỗi tác vụ.
+
+# LOCALIZATION NOTE (reminderReadonlyNotification)
+# This notification will be presented in the alarm dialog if reminders for not
+# writable items/calendars are displayed.
+# %1$S - localized value of calendar.alarm.snoozeallfor.label (defined in calendar.dtd)
+reminderReadonlyNotification=Lời nhắc cho lịch chỉ đọc hiện không thể được báo lại mà chỉ loại bỏ - nút '%1$S' sẽ chỉ báo lại lời nhắc cho lịch có thể ghi.
+# LOCALIZATION NOTE (reminderDisabledSnoozeButtonTooltip)
+# This tooltip is only displayed, if the button is disabled
+reminderDisabledSnoozeButtonTooltip=Báo lại lời nhắc không được hỗ trợ cho lịch chỉ đọc
diff --git a/l10n-vi/calendar/chrome/calendar/calendar-event-dialog-attendees.properties b/l10n-vi/calendar/chrome/calendar/calendar-event-dialog-attendees.properties
new file mode 100644
index 0000000000..e5e7675419
--- /dev/null
+++ b/l10n-vi/calendar/chrome/calendar/calendar-event-dialog-attendees.properties
@@ -0,0 +1,15 @@
+# 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/.
+
+event.attendee.role.required = Người tham dự quan trọng
+event.attendee.role.optional = Người tham dự tùy chọn
+event.attendee.role.nonparticipant = Không có người tham dự
+event.attendee.role.chair = Chủ tọa
+event.attendee.role.unknown = Người tham dự chưa biết (%1$S)
+
+event.attendee.usertype.individual = Cá nhân
+event.attendee.usertype.group = Nhóm
+event.attendee.usertype.resource = Tài nguyên
+event.attendee.usertype.room = Phòng
+event.attendee.usertype.unknown = Kiểu không xác định (%1$S)
diff --git a/l10n-vi/calendar/chrome/calendar/calendar-event-dialog.dtd b/l10n-vi/calendar/chrome/calendar/calendar-event-dialog.dtd
new file mode 100644
index 0000000000..699768c3da
--- /dev/null
+++ b/l10n-vi/calendar/chrome/calendar/calendar-event-dialog.dtd
@@ -0,0 +1,430 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/l10n-vi/calendar/chrome/calendar/calendar-event-dialog.properties b/l10n-vi/calendar/chrome/calendar/calendar-event-dialog.properties
new file mode 100644
index 0000000000..40a8ab5abc
--- /dev/null
+++ b/l10n-vi/calendar/chrome/calendar/calendar-event-dialog.properties
@@ -0,0 +1,541 @@
+# 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 (dailyEveryNth):
+# Edit recurrence window -> Recurrence pattern -> Daily repeat rules
+# #1 - number
+# e.g. "every 4 days"
+dailyEveryNth=mỗi ngày;mỗi #1 ngày
+repeatDetailsRuleDaily4=mỗi ngày-làm-việc
+
+# LOCALIZATION NOTE (weeklyNthOnNounclass...)
+# Edit recurrence window -> Recurrence pattern -> Weekly repeat rules
+# Translate these strings according to noun class/gender of weekday (%1$S)
+# set in 'repeadDetailsDay...Nounclass' strings.
+# Nounclass1 <-> Masculine gender; Nounclass2 <-> Feminine gender.
+# Add others strings with suffix 3, 4,... for others noun classes if your
+# language need them. In this case, corresponding strings must be added for
+# others rule strings with 'Nounclass...' suffix and corresponding values
+# "nounclass..." must be written in 'repeatDetailsDayxNounclass' strings.
+# %1$S - weekday (one or more)
+# #2 - week interval
+# e.g. "every 3 weeks on Tuesday, Wednesday and Thursday
+weeklyNthOnNounclass1=mỗi %1$S;mỗi #2 tuần vào %1$S
+weeklyNthOnNounclass2=mỗi %1$S;mỗi #2 tuần vào %1$S
+
+# LOCALIZATION NOTE (weeklyEveryNth):
+# Edit recurrence window -> Recurrence pattern -> Weekly repeat rules
+# #1 - interval
+# e.g. "every 5 weeks"
+weeklyEveryNth=mỗi tuần;mỗi #1 tuần
+
+# LOCALIZATION NOTE ('repeatDetailsDay...' and 'repeatDetailsDay...Nounclass'):
+# Week days names and week days noun classes (feminine/masculine grammatical
+# gender) for languages that need different localization when weekdays nouns
+# have different noun classes (genders).
+# For every weekday, in 'repeatDetailsDay...Nounclass' strings write:
+# "nounclass1" for languages with grammatical genders -> MASCULINE gender;
+# for languages with noun classes -> a noun class;
+# for languages without noun classes or grammatical gender.
+#
+# "nounclass2" for languages with grammatical genders -> FEMININE gender;
+# for languages with noun classes -> a different noun class.
+#
+# "nounclass3", "nounclass4" and so on for languages that need more than two
+# noun classes for weekdays. In this case add corresponding
+# rule string with "Nounclass..." suffix and ordinal string
+# "repeatOrdinalxNounclass..."
+# Will be used rule strings with "Nounclass..." suffix corresponding to the
+# following strings if there is a weekday in the rule string.
+repeatDetailsDay1=Chủ nhật
+repeatDetailsDay1Nounclass=nounclass1
+repeatDetailsDay2=Thứ hai
+repeatDetailsDay2Nounclass=nounclass1
+repeatDetailsDay3=Thứ ba
+repeatDetailsDay3Nounclass=nounclass1
+repeatDetailsDay4=Thứ tư
+repeatDetailsDay4Nounclass=nounclass1
+repeatDetailsDay5=Thứ năm
+repeatDetailsDay5Nounclass=nounclass1
+repeatDetailsDay6=Thứ sáu
+repeatDetailsDay6Nounclass=nounclass1
+repeatDetailsDay7=Thứ bảy
+repeatDetailsDay7Nounclass=nounclass1
+
+# LOCALIZATION NOTE (repeatDetailsAnd)
+# Used to show a number of weekdays in a list
+# i.e. "Sunday, Monday, Tuesday " + and + " Wednesday"
+repeatDetailsAnd=và
+
+# LOCALIZATION NOTE (monthlyRuleNthOfEveryNounclass...):
+# Edit recurrence window -> Recurrence pattern -> Monthly repeat rules
+# Translate these strings according to noun class/gender of weekday (%2$S)
+# set in 'repeadDetailsDay...Nounclass' strings.
+# Nounclass1 <-> Masculine gender; Nounclass2 <-> Feminine gender.
+# Add others strings with suffix 3, 4,... for others noun classes if your
+# language need them. In this case, corresponding strings must be added for
+# others rule strings with 'Nounclass...' suffix and corresponding values
+# "nounclass..." must be written in 'repeatDetailsDayxNounclass' strings.
+# %1$S - list of weekdays with ordinal, article and noun class/gender
+# (ordinal and weekday of every element in the list follow the order
+# and the rule of ordinalWeekdayOrder string)
+# #2 - interval
+# e.g. "the first Monday and the last Friday of every 3 months"
+monthlyRuleNthOfEveryNounclass1=%1$S của mỗi tháng;%1$S của mỗi #2 tháng
+monthlyRuleNthOfEveryNounclass2=%1$S của mỗi tháng;%1$S của mỗi #2 tháng
+
+# LOCALIZATION NOTE (ordinalWeekdayOrder):
+# Edit recurrence window -> Recurrence pattern -> Monthly repeat rules
+# This string allows to change the order of the elements "ordinal" and
+# "weekday" (or to insert a word between them) for the argument %1$S of the
+# string monthlyRuleNthOfEveryNounclass...
+# Without changing this string, the order is that one required from most
+# languages: ordinal + weekday (e.g. "'the first' 'Monday' of every 2 months").
+# %1$S - ordinal with article
+# %2$S - weekday noun
+# e.g. "'the first' 'Monday'"
+# DONT_TRANSLATE: Make sure there are no extra words in this property, just variables.
+ordinalWeekdayOrder=%2$S %1$S
+
+# LOCALIZATION NOTE (monthlyEveryOfEveryNounclass...):
+# Edit recurrence window -> Recurrence pattern -> Monthly repeat rules
+# Translate these strings according to noun class/gender of weekday (%1$S)
+# set in 'repeadDetailsDay...Nounclass' strings.
+# Nounclass1 <-> Masculine gender; Nounclass2 <-> Feminine gender.
+# Add others strings with suffix 3, 4,... for others noun classes if your
+# language need them. In this case, corresponding strings must be added for
+# others rule strings with 'Nounclass...' suffix and corresponding values
+# "nounclass..." must be written in 'repeatDetailsDayxNounclass' strings.
+# %1$S - list of single weekdays and/or weekdays with ordinal, article and
+# noun class/gender when rule contains also specific day in the month
+# #2 - interval
+# e.g. "every Monday, Tuesday and the second Sunday of every month"
+monthlyEveryOfEveryNounclass1=mỗi %1$S của mỗi tháng;mỗi %1$S của mỗi #2 tháng
+monthlyEveryOfEveryNounclass2=mỗi %1$S của mỗi tháng;mỗi %1$S của mỗi #2 tháng
+
+# LOCALIZATION NOTE (monthlyDaysOfNth_day):
+# Edit recurrence window -> Recurrence pattern -> Monthly repeat rules
+# %1$S - day of month or a sequence of days of month, possibly followed by an ordinal symbol
+# (depending on the string dayOrdinalSymbol in dateFormat.properties) separated with commas;
+# e.g. "days 3, 6 and 9" or "days 3rd, 6th and 9th"
+monthlyDaysOfNth_day=ngày %1$S;ngày %1$S
+
+# LOCALIZATION NOTE (monthlyDaysOfNth):
+# Edit recurrence window -> Recurrence pattern -> Monthly repeat rules
+# %1$S - it's the string monthlyDaysOfNth_day: day of month or a sequence of days
+# of month, possibly followed by an ordinal symbol, separated with commas;
+# #2 - monthly interval
+# e.g. "days 3, 6, 9 and 12 of every 3 months"
+monthlyDaysOfNth=%1$S của mỗi tháng;%1$S của mỗi #2 tháng
+
+# LOCALIZATION NOTE (monthlyLastDayOfNth):
+# Edit recurrence window -> Recurrence pattern -> Monthly repeat rules
+# %1$S - day of month
+# #2 - month interval
+# e.g. "the last day of every 3 months"
+monthlyLastDayOfNth=ngày cuối của mỗi tháng;ngày cuối của mỗi #1 tháng
+
+# LOCALIZATION NOTE (monthlyEveryDayOfNth):
+# Edit recurrence window -> Recurrence pattern -> Monthly repeat rules
+# #2 - month interval
+# e.g. "every day of the month every 4 months"
+monthlyEveryDayOfNth=mỗi ngày của mỗi tháng;mỗi ngày của mỗi #2 tháng
+
+# LOCALIZATION NOTE (repeatOrdinal...Nounclass...):
+# Ordinal numbers nouns for every noun class (grammatical genders) of weekdays
+# considered in 'repeatDetailsDayxNounclass' strings. For languages that need
+# localization according to genders or noun classes.
+# Nounclass1 <-> Masculine gender; Nounclass2 <-> Feminine gender.
+# Add 'repeatOrdinal...Nounclass' strings with suffix 3, 4 and so on for
+# languages with more than two noun classes for weekdays. In this case
+# must be added corresponding rule strings with 'Nounclass...' suffix and
+# corresponding values "nounclass..." must be written in
+# 'repeatDetailsDayxNounclass' strings.
+repeatOrdinal1Nounclass1=đầu tiên
+repeatOrdinal2Nounclass1=thứ hai
+repeatOrdinal3Nounclass1=thứ ba
+repeatOrdinal4Nounclass1=thứ tư
+repeatOrdinal5Nounclass1=thứ năm
+repeatOrdinal-1Nounclass1=cuối cùng
+repeatOrdinal1Nounclass2=đầu tiên
+repeatOrdinal2Nounclass2=thứ hai
+repeatOrdinal3Nounclass2=thứ ba
+repeatOrdinal4Nounclass2=thứ tư
+repeatOrdinal5Nounclass2=thứ năm
+repeatOrdinal-1Nounclass2=cuối cùng
+
+# LOCALIZATION NOTE (yearlyNthOn):
+# Edit recurrence window -> Recurrence pattern -> Yearly repeat rules
+# %1$S - month name
+# %2$S - day of month possibly followed by an ordinal symbol (depending on the string
+# dayOrdinalSymbol in dateFormat.properties)
+# #3 - yearly interval
+# e.g. "every 3 years on December 14"
+# "every 2 years on December 8th"
+yearlyNthOn=mỗi %2$S %1$S;mỗi #3 năm một lần vào %2$S %1$S
+
+# LOCALIZATION NOTE (yearlyNthOnNthOfNounclass...):
+# Edit recurrence window -> Recurrence pattern -> Yearly repeat rules
+# Translate these strings according to noun class/gender of weekday (%2$S)
+# set in 'repeadDetailsDay...Nounclass' strings.
+# Nounclass1 <-> Masculine gender; Nounclass2 <-> Feminine gender.
+# Add others strings with suffix 3, 4,... for others noun classes if your
+# language need them. In this case, corresponding strings must be added for
+# others rule strings with 'Nounclass...' suffix and corresponding values
+# "nounclass..." must be written in 'repeatDetailsDayxNounclass' strings.
+# %1$S - ordinal with article and noun class/gender corresponding to weekday
+# %2$S - weekday
+# %3$S - month
+# #4 - yearly interval
+# e.g. "the second Monday of every March"
+# e.g "every 3 years the second Monday of March"
+yearlyNthOnNthOfNounclass1=%2$S %1$S của mỗi %3$S;mỗi #4 năm một lần vào %2$S %1$S của %3$S
+yearlyNthOnNthOfNounclass2=%2$S %1$S của mỗi %3$S;mỗi #4 năm một lần vào %2$S %1$S của %3$S
+
+# LOCALIZATION NOTE (yearlyOnEveryNthOfNthNounclass...):
+# Edit recurrence window -> Recurrence pattern -> Yearly repeat rules
+# Translate these strings according to noun class/gender of weekday (%1$S)
+# set in 'repeadDetailsDay...Nounclass' strings.
+# Nounclass1 <-> Masculine gender; Nounclass2 <-> Feminine gender.
+# Add others strings with suffix 3, 4,... for others noun classes if your
+# language need them. In this case, corresponding strings must be added for
+# others rule strings with 'Nounclass...' suffix and corresponding values
+# "nounclass..." must be written in 'repeatDetailsDayxNounclass' strings.
+# %1$S - weekday
+# %2$S - month
+# #3 - yearly interval
+# e.g. "every Thursday of March"
+# e.g "every 3 years on every Thursday of March"
+yearlyOnEveryNthOfNthNounclass1=mỗi %1$S của %2$S;mỗi #3 năm vào mỗi %1$S của %2$S
+yearlyOnEveryNthOfNthNounclass2=mỗi %1$S của %2$S;mỗi #3 năm vào mỗi %1$S của %2$S
+
+#LOCALIZATION NOTE (yearlyEveryDayOf):
+# Edit recurrence window -> Recurrence pattern -> Yearly repeat rules
+# This string describes part of a yearly rule which includes every day of a month.
+# %1$S - month
+# #2 - yearly interval
+# e.g. "every day of December"
+# e.g. "every 3 years every day of December"
+yearlyEveryDayOf=mỗi ngày của %1$S, cứ sau 2 năm mỗi ngày của %1$S
+
+repeatDetailsMonth1=Tháng một
+repeatDetailsMonth2=Tháng hai
+repeatDetailsMonth3=Tháng ba
+repeatDetailsMonth4=Tháng tư
+repeatDetailsMonth5=Tháng năm
+repeatDetailsMonth6=Tháng sáu
+repeatDetailsMonth7=Tháng bảy
+repeatDetailsMonth8=Tháng tám
+repeatDetailsMonth9=Tháng chín
+repeatDetailsMonth10=Tháng mười
+repeatDetailsMonth11=Tháng mười một
+repeatDetailsMonth12=Tháng mười hai
+
+# LOCALIZATION NOTE (repeatCount):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# %1%$ - A rule string (see above). This is the first line of the link
+# %2%$ - event start date (e.g. mm/gg/yyyy)
+# %3$S - event start time (e.g. hh:mm (PM/AM))
+# %4$S - event end time (e.g. hh:mm (PM/AM))
+# #5 - event occurrence times: number
+# e.g. with monthlyRuleNthOfEvery:
+# "Occurs the first Sunday of every 3 month
+# only on 1/1/2009"
+# from 5:00 PM to 6:00 PM"
+# "Occurs the first Sunday of every 3 month
+# effective 1/1/2009 for 5 times
+# from 5:00 PM to 6:00 PM"
+repeatCount=Diễn ra %1$S\nhiệu lực %2$S trong #5 lần\ntừ %3$S tới %4$S.;Diễn ra %1$S\nhiệu lực %2$S trong #5 lần\ntừ %3$S tới %4$S.
+
+# LOCALIZATION NOTE (repeatCountAllDay):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# %1%$ - A rule string (see above). This is the first line of the link
+# %2%$ - event start date (e.g. mm/gg/yyyy)
+# #3 - event occurrence times: number
+# e.g. with monthlyRuleNthOfEvery:
+# "Occurs the first Sunday of every 3 month
+# only on 1/1/2009"
+# "Occurs the first Sunday of every 3 month
+# effective 1/1/2009 for 5 times"
+repeatCountAllDay=Diễn ra %1$S\nhiệu lực %2$S trong #3 lần.;Diễn ra %1$S\nhiệu lực %2$S trong #3 lần.
+
+# LOCALIZATION NOTE (repeatDetailsUntil):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# %1%$ - A rule string (see above). This is the first line of the link
+# %2%$ - event start date (e.g. mm/gg/yyyy)
+# %3$S - event end date (e.g. mm/gg/yyyy)
+# %4$S - event start time (e.g. hh:mm (PM/AM))
+# %5$S - event end time (e.g. hh:mm (PM/AM))
+# e.g. with weeklyNthOn:
+# "Occurs every 2 weeks on Sunday and Friday
+# effective 1/1/2009 until 1/1/2010
+# from 5:00 PM to 6:00 PM"
+repeatDetailsUntil=Diễn ra %1$S\nhiệu lực %2$S cho tới %3$S\ntừ %4$S tới %5$S.
+
+# LOCALIZATION NOTE (repeatDetailsUntilAllDay):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# %1%$ - A rule string (see above). This is the first line of the link
+# %2%$ - event start date (e.g. mm/gg/yyyy)
+# %3$S - event end date (e.g. mm/gg/yyyy)
+# e.g. with monthlyDaysOfNth and all day event:
+# "Occurs day 3 of every 5 month
+# effective 1/1/2009 until 1/1/2010"
+repeatDetailsUntilAllDay=Diễn ra %1$S\nhiệu lực %2$S cho tới %3$S.
+
+# LOCALIZATION NOTE (repeatDetailsInfinite):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# %1%$ - A rule string (see above). This is the first line of the link
+# %2%$ - event start date (e.g. mm/gg/yyyy)
+# %3$S - event start time (e.g. hh:mm (PM/AM))
+# %4$S - event end time (e.g. hh:mm (PM/AM))
+# e.g. with monthlyDaysOfNth:
+# "Occurs day 3 of every 5 month
+# effective 1/1/2009
+# from 5:00 PM to 6:00 PM"
+repeatDetailsInfinite=Diễn ra %1$S\nhiệu lực %2$S\ntừ %3$S tới %4$S.
+
+# LOCALIZATION NOTE (repeatDetailsInfiniteAllDay):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# %1%$ - A rule string (see above). This is the first line of the link
+# %2%$ - event start date (e.g. mm/gg/yyyy)
+# e.g. with monthlyDaysOfNth and all day event:
+# "Occurs day 3 of every 5 month
+# effective 1/1/2009"
+repeatDetailsInfiniteAllDay=Diễn ra %1$S\nhiệu lực %2$S.
+
+# LOCALIZATION NOTE (monthlyLastDay):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# A monthly rule with one or more days of the month (monthlyDaysOfNth) and the
+# string "the last day" of the month.
+# e.g.: "Occurs day 15, 20, 25 and the last day of every 3 months"
+monthlyLastDay=ngày cuối cùng
+
+# LOCALIZATION NOTE (ruleTooComplex):
+# This string is shown in the repeat details area if our code can't handle the
+# complexity of the recurrence rule yet.
+ruleTooComplex=Nhấn vào đây để biết thêm chi tiết
+
+# LOCALIZATION NOTE (ruleTooComplexSummary):
+# This string is shown in the event summary dialog if our code can't handle the
+# complexity of the recurrence rule yet.
+ruleTooComplexSummary=Không xác định lặp lại chi tiết
+
+# differences between the dialog for an Event or a Task
+newEvent=Sự kiện mới
+newTask=Tác vụ mới
+itemMenuLabelEvent=Sự kiện
+itemMenuAccesskeyEvent2=F
+itemMenuLabelTask=Tác vụ
+itemMenuAccesskeyTask2=F
+
+emailSubjectReply=TL: %1$S
+
+# Link Location Dialog
+specifyLinkLocation=Vui lòng xác định địa chỉ liên kết
+enterLinkLocation=Nhập một trang web, hoặc địa chỉ tài liệu.
+
+summaryDueTaskLabel=Đến hạn:
+
+# Attach File Dialog
+attachViaFilelink=Tập tin sử dụng %1$S
+selectAFile=Vui lòng chọn tập tin đính kèm
+removeCalendarsTitle=Xóa phần đính kèm
+
+# LOCALIZATION NOTE (removeAttachmentsText): Semi-colon list of plural forms for
+# prompting attachment removal.
+# See http://developer.mozilla.org/en/Localization_and_Plurals
+removeAttachmentsText=Bạn có thực sự muốn xóa #1 đính kèm không?
+
+# Recurrence Dialog Widget Order
+# LOCALIZATION NOTE: You can change the order of below params
+# Edit recurrence window -> Recurrence pattern -> Repeat monthly
+# %1$S - ordinal with article, %2$S - weekday
+# e.g. "the First Saturday"
+# DONT_TRANSLATE: Make sure there are no extra words in this property, just variables.
+monthlyOrder=%1$S %2$S
+
+# Edit recurrence window -> Recurrence pattern -> Repeat yearly
+# %1$S - day of month, %2$S - of, %3$S - month
+# e.g. "6 [of] September"
+# If you don't need %2$S in your locale - please put this on the third place.
+# DONT_TRANSLATE: Make sure there are no extra words in this property, just variables.
+yearlyOrder=%1$S %3$S %2$S
+
+# Edit recurrence window -> Recurrence pattern -> Repeat yearly
+# %1$S - ordinal with article, %2$S - weekday, %3$S - of, %4$S - month
+# e.g. "the First Saturday of September"
+# If you don't need %3$S in your locale - please put this on the third place.
+# DONT_TRANSLATE: Make sure there are no extra words in this property, just variables.
+yearlyOrder2=%1$S %2$S %3$S %4$S
+
+# LOCALIZATION NOTE (pluralForWeekdays):
+# This string allows to set the use of weekdays nouns in plural form for
+# languages that need them in sentences like "every Monday" or "every Sunday
+# of March" etc.
+# Rule strings involved by this setting are:
+# - weeklyNthOn (only the first part) e.g. "every Sunday"
+# - monthlyEveryOfEvery
+# e.g. "every Monday of every month;every Monday every 2 months"
+# - yearlyOnEveryNthOfNth
+# e.g. "every Friday of March;every 2 years on every Friday of March"
+# In your local write:
+# "true" if sentences like those above need weekday in plural form;
+# "false" if sentences like those above don't need weekday in plural form;
+pluralForWeekdays=false
+
+# LOCALIZATION NOTE (repeatDetailsDayxxxPlural):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# Weekdays in plural form used inside sentences like "every Monday" or
+# "every Sunday of May" etc. for languages that need them.
+# These plurals will be used inside the following rule strings only if string
+# 'pluralForWeekdays' (see above) is set to "true":
+# - weeklyNthOn (only the first part) e.g. "every Sunday"
+# - monthlyEveryOfEvery
+# e.g. "every Monday of every month;every Monday every 2 months"
+# - yearlyOnEveryNthOfNth
+# e.g. "every Friday of March;every 2 years on every Friday of March"
+repeatDetailsDay1Plural=Chủ nhật
+repeatDetailsDay2Plural=Thứ hai
+repeatDetailsDay3Plural=Thứ ba
+repeatDetailsDay4Plural=Thứ tư
+repeatDetailsDay5Plural=Thứ năm
+repeatDetailsDay6Plural=Thứ sáu
+repeatDetailsDay7Plural=Thứ bảy
+
+# LOCALIZATION NOTE (eventRecurrenceForeverLabel):
+# Edit/New Event dialog -> datepicker that sets the until date.
+# For recurring rules that repeat forever, this labels appears in the
+# datepicker, below the minimonth, as an option for the until date.
+eventRecurrenceForeverLabel=Mãi mãi
+
+# LOCALIZATION NOTE (eventRecurrenceMonthlyLastDayLabel):
+# Edit dialog recurrence -> Monthly Recurrence pattern -> Monthly daypicker
+# The label on the monthly daypicker's last button that allows to select
+# the last day of the month inside a BYMONTHDAY rule.
+eventRecurrenceMonthlyLastDayLabel=Ngày cuối
+
+# LOCALIZATION NOTE (counterSummaryAccepted) - this is only visible when opening the dialog from the
+# email summary view after receiving a counter message
+# %1$S - the name or email address of the replying attendee
+counterSummaryAccepted=%1$S đã chấp nhận lời mời, nhưng đưa ra đề xuất phản đối:
+
+# LOCALIZATION NOTE (counterSummaryDeclined) - this is only visible when opening the dialog from the
+# email summary view after receiving a counter message
+# %1$S - the name or email address of the replying attendee
+counterSummaryDeclined=%1$S đã từ chối lời mời, nhưng đưa ra đề xuất phản đối:
+
+# LOCALIZATION NOTE (counterSummaryDelegated) - this is only visible when opening the dialog from the
+# email summary view after receiving a counter message
+# %1$S - the name or email address of the replying attendee
+counterSummaryDelegated=%1$S đã ủy quyền lời mời, nhưng đưa ra đề xuất phản đối:
+
+# LOCALIZATION NOTE (counterSummaryNeedsAction) - this is only visible when opening the dialog from the
+# email summary view after receiving a counter message
+# %1$S - the name or email address of the replying attendee
+counterSummaryNeedsAction=%1$S chưa quyết định có tham gia hay không và đưa ra đề xuất phản đối:
+
+# LOCALIZATION NOTE (counterSummaryTentative) - this is only visible when opening the dialog from the
+# email summary view after receiving a counter message
+# %1$S - the name or email address of the replying attendee
+counterSummaryTentative=%1$S chỉ chấp nhận tạm thời lời mời và đưa ra đề xuất phản đối:
+
+# LOCALIZATION NOTE (counterOnPreviousVersionNotification) - this is only visible when opening the
+# dialog from the email summary view after receiving a counter message
+counterOnPreviousVersionNotification=Đây là một đề xuất phản đối cho một phiên bản trước của sự kiện này.
+
+# LOCALIZATION NOTE (counterOnCounterDisallowedNotification) - this is only visible when opening the
+# dialog from the email summary view after receiving a counter message
+counterOnCounterDisallowedNotification=Bạn không được phép phản đối khi gửi lời mời.
+
+# LOCALIZATION NOTE (eventAccepted) - this will be displayed as notification
+# in the summary dialog if the user has accepted the event invitation
+eventAccepted=Bạn đã chấp nhận lời mời này
+
+# LOCALIZATION NOTE (eventTentative) - this will be displayed as notification
+# in the summary dialog if the user has accepted the event invitation tentatively
+eventTentative=Bạn đã chấp nhận tạm thời lời mời này
+
+# LOCALIZATION NOTE (eventDeclined) - this will be displayed as notification
+# in the summary dialog if the user has declined the event invitation
+eventDeclined=Bạn đã từ chối lời mời này
+
+# LOCALIZATION NOTE (eventDelegated) - this will be displayed as notification
+# in the summary dialog if the user has delegated his/her participation to one
+# or more other participants (without attending / working on it his/herself)
+eventDelegated=Bạn đã ủy quyền lời mời này
+
+# LOCALIZATION NOTE (eventNeedsAction) - this will be displayed as notification
+# in the summary dialog if the user hasn't yet responded to an invitation
+eventNeedsAction=Bạn chưa trả lời lời mời này
+
+# LOCALIZATION NOTE (taskAccepted) - this will be displayed as notification
+# in the summary dialog if the user has accepted the assigned task
+taskAccepted=Bạn đã chấp nhận để làm tác vụ này
+
+# LOCALIZATION NOTE (taskTentative) - this will be displayed as notification
+# in the summary dialog if the user has accepted tentatively the assigned task
+taskTentative=Bạn đã chấp nhận tạm thời để làm tác vụ này
+
+# LOCALIZATION NOTE (taskDeclined) - this will be displayed as notification
+# in the summary dialog if the user has declined the assigned task
+taskDeclined=Bạn đã từ chối làm tác vụ này
+
+# LOCALIZATION NOTE (taskDelegated) - this will be displayed as notification
+# in the summary dialog if the user has delegated his/her assignment to one or
+# more others (without attending / working on it his/herself)
+taskDelegated=Bạn đã ủy quyền công việc cho tác vụ này
+
+# LOCALIZATION NOTE (taskNeedsAction) - this will be displayed as notification
+# in the summary dialog if the user hasn't yet responded to the task assignment
+taskNeedsAction=Bạn chưa trả lời cho tác vụ này
+
+# LOCALIZATION NOTE (taskInProgress) - this will be displayed as notification
+# in the summary dialog if the user is working on an assigned task
+taskInProgress=Bạn đã bắt đầu làm việc với tác vụ được giao này
+
+# LOCALIZATION NOTE (taskCompleted) - this will be displayed as notification
+# in the summary dialog if the user has completed the work on this assigned task
+taskCompleted=Bạn đã hoàn thành công việc của mình trong tác vụ được giao này
+
+# LOCALIZATION NOTE (sendandcloseButtonLabel) - this is a runtime replacement for
+# event.toolbar.saveandclose.label in the event dialog/tab toolbar if attendees
+# will be notified on saving & closing
+sendandcloseButtonLabel=Gửi và đóng
+
+# LOCALIZATION NOTE (sendandcloseButtonTooltip) - this is a runtime replacement for
+# event.toolbar.saveandclose.tooltip in the event dialog/tab toolbar if attendees
+# will be notified on saving & closing
+sendandcloseButtonTooltip=Thông báo cho người tham dự và đóng
+
+# LOCALIZATION NOTE (saveandsendButtonLabel) - this is a runtime replacement for
+# event.toolbar.save.label2 in the event dialog/tab toolbar if attendees
+# will be notified on saving
+saveandsendButtonLabel=Lưu và gửi
+
+# LOCALIZATION NOTE (saveandsendButtonTooltip) - this is a runtime replacement
+# for event.toolbar.save.tooltip2 in the event dialog/tab toolbar if attendees
+# will be notified on saving
+saveandsendButtonTooltip=Lưu và thông báo cho người tham dự
+
+# LOCALIZATION NOTE (saveandsendMenuLabel) - this is a runtime replacement for
+# event.menu.item.save.label in the event dialog/tab toolbar if attendees
+# will be notified on saving
+saveandsendMenuLabel=Lưu và gửi
+
+# LOCALIZATION NOTE (sendandcloseMenuLabel) - this is a runtime replacement for
+# event.menu.item.saveandclose.label in the event dialog/tab toolbar if attendees
+# will be notified on saving
+sendandcloseMenuLabel=Gửi và đóng
+
+# LOCALIZATION NOTE (attendeesTabLabel) - this is a runtime replacement for
+# event.attendees.label defined in calendar-event-dialog.dtd and used in the
+# event dialog/tab as attendee tab label if an event has at least one attendee
+# %1$S - the number of attendee (1-n)
+attendeesTabLabel=Người tham dự (%1$S):
+
+# LOCALIZATION NOTE (attachmentsTabLabel) - this is a runtime replacement for
+# event.attachments.label defined in calendar-event-dialog.dtd and used in the
+# event dialog/tab as attendee tab label if an event has at least one attachment
+# %1$S - the number of attachments (1-n)
+attachmentsTabLabel=Đính kèm (%1$S):
diff --git a/l10n-vi/calendar/chrome/calendar/calendar-extract.properties b/l10n-vi/calendar/chrome/calendar/calendar-extract.properties
new file mode 100644
index 0000000000..ba5ea830a6
--- /dev/null
+++ b/l10n-vi/calendar/chrome/calendar/calendar-extract.properties
@@ -0,0 +1,294 @@
+# 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:
+# Strings here are used to create events and tasks with start and end times
+# based on email content.
+# None of the strings are displayed in the user interface.
+#
+# You don't have to fill all from.*, until.*, *.prefix and *.suffix patterns.
+# It's ok to leave some empty.
+# Please consider declensions and gender if your language has them.
+# Don't just translate directly. The number of variants doesn't have to be
+# the same as in en-US. All of 0, 1, 2, etc is allowed in patterns except alphabet
+# pattern. You can and should add language specific variants.
+#
+# There are two different ways to find a start time text in email:
+# 1) it matches a from.* pattern and does not have end.prefix or end.suffix next to it
+# 2) it matches until.* pattern and has start.prefix or start.suffix next to it
+# Similar inverse logic applies to end times.
+# These rules enable using prefix and suffix values with only start.* or only until.*
+# patterns localized for some languages and thus not having to repeat the same
+# values in both.
+#
+# Patterns are partially space-insensitive.
+# "deadline is" pattern will find both "deadlineis" and "deadline is"
+# but "deadlineis" won't find "deadline is" or "deadline is".
+# Therefore you should include all spaces that are valid within a pattern.
+
+# LOCALIZATION NOTE (start.prefix):
+# datetimes with these in front are extracted as start times
+# can be a list of values, separate variants by |
+start.prefix =
+
+# LOCALIZATION NOTE (start.suffix):
+# datetimes followed by these are extracted as start times
+start.suffix = bởi | cho đến khi | đến | - | đến | đến | và
+
+# LOCALIZATION NOTE (end.prefix):
+# datetimes with these in front are extracted as end times
+end.prefix = bởi | cho đến khi | đến | - | đến | đến | và | đến hạn: | đến hạn | kết thúc | hạn chót là | hạn chót:
+
+# LOCALIZATION NOTE (end.suffix):
+# datetimes followed by these are extracted as end times
+# can be a list of values, separate variants by |
+end.suffix =
+
+# LOCALIZATION NOTE (no.datetime.prefix):
+# datetimes with these in front won't be used
+# specify full words here
+no.datetime.prefix = tuần trước | đã gửi | email | email | thay vì | > | thật không may | trong | không phải
+
+# LOCALIZATION NOTE (no.datetime.suffix):
+# datetimes followed by these won't be used
+no.datetime.suffix = floor | flr | : | email | e-mail | > | % | usd | dollars | $
+
+# LOCALIZATION NOTE (from.*):
+# can be a list of values, separate variants by |
+
+# LOCALIZATION NOTE (from.today):
+# must not be empty!
+from.today = hôm nay
+
+from.tomorrow = ngày mai
+# LOCALIZATION NOTE (until.*):
+# can be a list of values, separate variants by |
+until.tomorrow =
+
+# LOCALIZATION NOTE (from.ordinal.date):
+# #1 = matches numbers 1-31 and number.x
+# should not have "#1" as this would match any single number in email to a time
+from.ordinal.date = #1 | #1 | #1 | #1
+
+# LOCALIZATION NOTE (until.ordinal.date):
+# #1 = matches numbers 1-31 and number.x
+until.ordinal.date =
+
+from.noon = trưa
+until.noon =
+
+# LOCALIZATION NOTE (from.hour):
+# #1 = matches numbers 0-23 and number.0-number.23
+# should not have "#1" as this would match any single number in email to a time
+from.hour = lúc #1 | khoảng #1 | #1 - | #1 đến
+
+# LOCALIZATION NOTE (until.hour):
+# #1 = matches numbers 0-23 and number.0-number.23
+# should also list how to find end of a timeframe
+until.hour = - #1 | đến #1 | cho đến #1 | bởi #1
+
+# LOCALIZATION NOTE (from.hour.am):
+# #1 = matches numbers 0-23 and number.0-number.23
+from.hour.am = #1 sáng | #1 sáng
+
+# LOCALIZATION NOTE (until.hour.am):
+# #1 = matches numbers 0-23 and number.0-number.23
+# should also list how to find end of a timeframe
+until.hour.am =
+
+# LOCALIZATION NOTE (from.hour.pm):
+# #1 = matches numbers 0-23 and number.0-number.23
+from.hour.pm = #1 chiều | #1 chiều | #1 chiều
+
+# LOCALIZATION NOTE (until.hour.pm):
+# #1 = matches numbers 0-23 and number.0-number.23
+# should also list how to find end of a timeframe
+until.hour.pm =
+
+# LOCALIZATION NOTE (from.half.hour.before):
+# denotes times 30 minutes before next full hour
+from.half.hour.before = #1 giờ kém 30 phút
+
+# LOCALIZATION NOTE (until.half.hour.before):
+# denotes times 30 minutes before next full hour
+until.half.hour.before =
+
+# LOCALIZATION NOTE (from.half.hour.after):
+# denotes times 30 minutes after last full hour
+from.half.hour.after = #1 giờ rưỡi
+
+# LOCALIZATION NOTE (until.half.hour.after):
+# denotes times 30 minutes after last full hour
+until.half.hour.after =
+
+# LOCALIZATION NOTE (from.hour.minutes):
+# #1 = matches numbers 0-23
+# #2 = matches numbers 0-59
+from.hour.minutes = #1:#2 | lúc #1#2
+
+# LOCALIZATION NOTE (until.hour.minutes):
+# #1 = matches numbers 0-23
+# #2 = matches numbers 0-59
+until.hour.minutes =
+
+# LOCALIZATION NOTE (from.hour.minutes.am):
+# #1 = matches numbers 0-23
+# #2 = matches numbers 0-59
+from.hour.minutes.am = #1:#2 sáng | #1:#2 sáng
+
+# LOCALIZATION NOTE (until.hour.minutes.am):
+# #1 = matches numbers 0-23
+# #2 = matches numbers 0-59
+until.hour.minutes.am =
+
+# LOCALIZATION NOTE (from.hour.minutes.pm):
+# #1 = matches numbers 0-23
+# #2 = matches numbers 0-59
+from.hour.minutes.pm = #1:#2 chiều | #1:#2 chiều | #1:#2 chiều
+
+# LOCALIZATION NOTE (until.hour.minutes.pm):
+# #1 = matches numbers 0-23
+# #2 = matches numbers 0-59
+until.hour.minutes.pm =
+
+# LOCALIZATION NOTE (from.monthname.day):
+# #1 = matches numbers 1-31 and number.x
+# #2 = matches monthname
+from.monthname.day = ngày #1 #2
+
+# LOCALIZATION NOTE (until.monthname.day):
+# #1 = matches numbers 1-31
+# #2 = matches monthname
+until.monthname.day =
+
+# LOCALIZATION NOTE (from.month.day):
+# #1 = matches numbers 1-31
+# #2 = matches numbers 1-12
+from.month.day = #1/#2
+
+# LOCALIZATION NOTE (until.month.day):
+# #1 = matches numbers 1-31 and number.x
+# #2 = matches numbers 1-12
+until.month.day =
+
+# LOCALIZATION NOTE (from.year.month.day):
+# #1 = matches numbers 1-31
+# #2 = matches numbers 1-12
+# #3 = matches 2/4 numbers
+from.year.month.day = #1/#2/#3 | #1/#2/#3 | #1-#2-#3
+
+# LOCALIZATION NOTE (until.year.month.day):
+# #1 = matches numbers 1-31
+# #2 = matches numbers 1-12
+# #3 = matches 2/4 numbers
+until.year.month.day =
+
+# LOCALIZATION NOTE (from.year.monthname.day):
+# #1 = matches numbers 1-31
+# #2 = matches monthname
+# #3 = matches 2/4 numbers
+from.year.monthname.day = ngày #1 #2 năm #3
+
+# LOCALIZATION NOTE (until.year.monthname.day):
+# #1 = matches numbers 1-31
+# #2 = matches monthname
+# #3 = matches 2/4 numbers
+until.year.monthname.day =
+
+# LOCALIZATION NOTE (duration.*):
+# can be a list of values, separate variants by |
+
+# LOCALIZATION NOTE (duration.minutes):
+# #1 = matches 1/2 numbers and number.0 - and number.31
+duration.minutes = #1 phút | #1 phút | #1 phút
+
+# LOCALIZATION NOTE (duration.hours):
+# #1 = matches 1/2 numbers and number.0 - and number.31
+duration.hours = #1 giờ | #1 giờ
+
+# LOCALIZATION NOTE (duration.days):
+# #1 = matches 1/2 numbers and number.0 - and number.31
+duration.days = #1 ngày
+
+# LOCALIZATION NOTE (month.*):
+# can be a list of values, separate variants by |
+month.1 = tháng một | tg1
+month.2 = tháng hai | tg2
+month.3 = tháng ba | tg3
+month.4 = tháng tư | tg4
+month.5 = tháng năm | tg5
+month.6 = tháng sáu | tg6
+month.7 = tháng bảy | tg7
+month.8 = tháng tám | tg8
+month.9 = tháng chín | tg9
+month.10 = tháng mười | tg10
+month.11 = tháng mười một | tg11
+month.12 = tháng mười hai | tg12
+
+# LOCALIZATION NOTE (from.weekday.*):
+# used to derive start date based on weekdays mentioned
+# can be a list of values, separate variants by |
+# LOCALIZATION NOTE (from.weekday.0):
+# Regardless of what the first day of the week is in your country, 0 is Sunday here.
+from.weekday.0 = chủ nhật | chủ nhật
+from.weekday.1 = thứ hai | thứ hai
+from.weekday.2 = thứ ba | thứ ba
+from.weekday.3 = thứ tư | thứ tư
+from.weekday.4 = thứ năm | thứ năm
+from.weekday.5 = thứ sáu | thứ sáu
+from.weekday.6 = thứ bảy | thứ bảy
+
+# LOCALIZATION NOTE (until.weekday.*):
+# used to derive end date based on weekdays mentioned
+# can be a list of values, separate variants by |
+# LOCALIZATION NOTE (until.weekday.0):
+# Regardless of what the first day of the week is in your country, 0 is Sunday here.
+until.weekday.0 =
+until.weekday.1 =
+until.weekday.2 =
+until.weekday.3 =
+until.weekday.4 =
+until.weekday.5 =
+until.weekday.6 =
+
+# LOCALIZATION NOTE (number.*):
+# used within other patterns to understand dates where day of month isn't written with digits
+# can be a list of values, separate variants by |
+number.0 = không
+number.1 = một | đầu
+number.2 = hai
+number.3 = ba
+number.4 = bốn
+number.5 = năm
+number.6 = sáu
+number.7 = bảy
+number.8 = tám
+number.9 = chín
+number.10 = mười
+number.11 = mười một
+number.12 = mười hai
+number.13 = mười ba
+number.14 = mười bốn
+number.15 = mười lăm
+number.16 = mười sáu
+number.17 = mười bảy
+number.18 = mười tám
+number.19 = mười chín
+number.20 = hai mươi
+number.21 = hai mươi mốt
+number.22 = hai mươi hai
+number.23 = hai mươi ba
+number.24 = hai mươi bốn
+number.25 = hai mươi lăm
+number.26 = hai mươi sáu
+number.27 = hai mươi bảy
+number.28 = hai mươi tám
+number.29 = hai mươi chín
+number.30 = ba mươi
+number.31 = ba mươi mốt
+
+# LOCALIZATION NOTE (alphabet):
+# list all lower and uppercase letters if your language has an alphabet
+# otherwise leave it empty
+alphabet = aăâbcdđeêghiklmnopqrstuưvxyAĂÂBCDĐEÊGHIJKMNOPQRSTUƯVXY
diff --git a/l10n-vi/calendar/chrome/calendar/calendar-invitations-dialog.dtd b/l10n-vi/calendar/chrome/calendar/calendar-invitations-dialog.dtd
new file mode 100644
index 0000000000..4050714c07
--- /dev/null
+++ b/l10n-vi/calendar/chrome/calendar/calendar-invitations-dialog.dtd
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/l10n-vi/calendar/chrome/calendar/calendar-invitations-dialog.properties b/l10n-vi/calendar/chrome/calendar/calendar-invitations-dialog.properties
new file mode 100644
index 0000000000..bd62014996
--- /dev/null
+++ b/l10n-vi/calendar/chrome/calendar/calendar-invitations-dialog.properties
@@ -0,0 +1,10 @@
+# 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/.
+
+allday-event=Sự kiện cả ngày
+recurrent-event=Sự kiện lặp lại
+location=Địa chỉ: %S
+organizer=Đơn vị tổ chức: %S
+attendee=Người tham dự: %S
+none=Không có
diff --git a/l10n-vi/calendar/chrome/calendar/calendar-occurrence-prompt.dtd b/l10n-vi/calendar/chrome/calendar/calendar-occurrence-prompt.dtd
new file mode 100644
index 0000000000..5864a9335f
--- /dev/null
+++ b/l10n-vi/calendar/chrome/calendar/calendar-occurrence-prompt.dtd
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/l10n-vi/calendar/chrome/calendar/calendar-occurrence-prompt.properties b/l10n-vi/calendar/chrome/calendar/calendar-occurrence-prompt.properties
new file mode 100644
index 0000000000..f72df5c499
--- /dev/null
+++ b/l10n-vi/calendar/chrome/calendar/calendar-occurrence-prompt.properties
@@ -0,0 +1,53 @@
+# 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/.
+
+header.isrepeating.event.label=là một sự kiện lặp lại
+header.isrepeating.task.label=là một nhiệm vụ lặp lại
+header.containsrepeating.event.label=chứa các sự kiện lặp lại
+header.containsrepeating.task.label=chứa các nhiệm vụ lặp lại
+header.containsrepeating.mixed.label=chứa các mục lặp lại của các loại khác nhau
+
+windowtitle.event.copy=Sao chép sự kiện lặp lại
+windowtitle.task.copy=Sao chép nhiệm vụ lặp lại
+windowtitle.mixed.copy=Sao chép các mục lặp lại
+windowtitle.event.cut=Cắt sự kiện lặp lại
+windowtitle.task.cut=Cắt nhiệm vụ lặp lại
+windowtitle.mixed.cut=Cắt các mục lặp lại
+windowtitle.event.delete=Xóa sự kiện lặp lại
+windowtitle.task.delete=Xóa nhiệm vụ lặp lại
+windowtitle.mixed.delete=Xóa các mục lặp lại
+windowtitle.event.edit=Chỉnh sửa sự kiện lặp lại
+windowtitle.task.edit=Chỉnh sửa nhiệm vụ lặp lại
+windowtitle.mixed.edit=Chỉnh sửa các mục lặp lại
+windowtitle.multipleitems=Các mục đã chọn
+
+buttons.single.occurrence.copy.label=Chỉ sao chép lần xuất hiện này
+buttons.single.occurrence.cut.label=Chỉ cắt lần xuất hiện này
+buttons.single.occurrence.delete.label=Chỉ xóa lần xuất hiện này
+buttons.single.occurrence.edit.label=Chỉ chỉnh sửa lần xuất hiện này
+
+buttons.multiple.occurrence.copy.label=Chỉ sao chép các lần xuất hiện đã chọn
+buttons.multiple.occurrence.cut.label=Chỉ cắt các lần xuất hiện đã chọn
+buttons.multiple.occurrence.delete.label=Chỉ xóa các lần xuất hiện đã chọn
+buttons.multiple.occurrence.edit.label=Chỉ chỉnh sửa các lần xuất hiện đã chọn
+
+buttons.single.allfollowing.copy.label=Sao chép lần xuất hiện này và tất cả cái khác ở tương lai
+buttons.single.allfollowing.cut.label=Cắt lần xuất hiện này và tất cả cái khác ở tương lai
+buttons.single.allfollowing.delete.label=Xóa lần xuất hiện này và tất cả cái khác ở tương lai
+buttons.single.allfollowing.edit.label=Chỉnh sửa lần xuất hiện này và tất cả cái khác ở tương lai
+
+buttons.multiple.allfollowing.copy.label=Sao chép các lần xuất hiện được chọn và tất cả cái khác ở tương lai
+buttons.multiple.allfollowing.cut.label=Cắt các lần xuất hiện được chọn và tất cả cái khác ở tương lai
+buttons.multiple.allfollowing.delete.label=Xóa các lần xuất hiện được chọn và tất cả cái khác ở tương lai
+buttons.multiple.allfollowing.edit.label=Chỉnh sửa các lần xuất hiện được chọn và tất cả cái khác ở tương lai
+
+buttons.single.parent.copy.label=Sao chép tất cả các lần xuất hiện
+buttons.single.parent.cut.label=Cắt tất cả các lần xuất hiện
+buttons.single.parent.delete.label=Xóa tất cả các lần xuất hiện
+buttons.single.parent.edit.label=Chỉnh sửa tất cả các lần xuất hiện
+
+buttons.multiple.parent.copy.label=Sao chép tất cả các lần xuất hiện của các mục đã chọn
+buttons.multiple.parent.cut.label=Cắt tất cả các lần xuất hiện của các mục đã chọn
+buttons.multiple.parent.delete.label=Xóa tất cả các lần xuất hiện của các mục đã chọn
+buttons.multiple.parent.edit.label=Chỉnh sửa tất cả các lần xuất hiện của các mục đã chọn
diff --git a/l10n-vi/calendar/chrome/calendar/calendar.dtd b/l10n-vi/calendar/chrome/calendar/calendar.dtd
new file mode 100644
index 0000000000..1c70b0ef8b
--- /dev/null
+++ b/l10n-vi/calendar/chrome/calendar/calendar.dtd
@@ -0,0 +1,407 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/l10n-vi/calendar/chrome/calendar/calendar.properties b/l10n-vi/calendar/chrome/calendar/calendar.properties
new file mode 100644
index 0000000000..8a12350feb
--- /dev/null
+++ b/l10n-vi/calendar/chrome/calendar/calendar.properties
@@ -0,0 +1,696 @@
+# 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/.
+
+# Default name for new events
+newEvent=Sự kiện mới
+
+# Titles for the event/task dialog
+newEventDialog=Sự kiện mới
+editEventDialog=Chỉnh sửa sự kiện
+newTaskDialog=Tác vụ mới
+editTaskDialog=Chỉnh sửa tác vụ
+
+# Do you want to save changes?
+askSaveTitleEvent=Lưu sự kiện
+askSaveTitleTask=Lưu tác vụ
+askSaveMessageEvent=Sự kiện chưa được lưu. Bạn có muốn lưu sự kiện không?
+askSaveMessageTask=Tác vụ chưa được lưu. Bạn có muốn lưu tác vụ không?
+
+# Event Dialog Warnings
+warningEndBeforeStart=Ngày kết thúc bạn nhập đã xảy ra trước ngày bắt đầu
+warningUntilDateBeforeStart=Ngày kết thúc đã đến trước ngày bắt đầu
+
+# The name of the calendar provided with the application by default
+homeCalendarName=Chính
+
+# The name given to a calendar if an opened calendar has an empty filename
+untitledCalendarName=Lịch không có tiêu đề
+
+# Event status: Tentative, Confirmed, Cancelled
+# ToDo task status: NeedsAction, InProcess, Completed, Cancelled
+statusTentative =Phân vân
+statusConfirmed =Đã xác nhận
+eventStatusCancelled=Đã hủy
+todoStatusCancelled =Đã hủy
+statusNeedsAction =Cần thao tác
+statusInProcess =Đang xử lí
+statusCompleted =Hoàn tất
+
+# Task priority, these should match the priority.level.* labels in calendar.dtd
+highPriority=Cao
+normalPriority=Bình thường
+lowPriority=Thấp
+
+importPrompt=Bạn muốn chọn bộ lịch nào để nhập các mục này?
+exportPrompt=Bạn muốn chọn bộ lịch nào để xuất?
+pastePrompt=Bạn muốn dán vào lịch nào hiện tại?
+publishPrompt=Bạn muốn chọn bộ lịch nào để xuất bản?
+
+# LOCALIZATION NOTE (pasteEventAlso): The users pasting operation includes among
+# others also a meeting invitation - this is used as a affix in
+# pasteNotifyAbout
+pasteEventAlso=Dán bao gồm một cuộc họp
+# LOCALIZATION NOTE (pasteEventsAlso): The users pasting operation includes among
+# others also several meeting invitations - this is used as a affix in
+# pasteNotifyAbout
+pasteEventsAlso=Dán bao gồm các cuộc họp
+# LOCALIZATION NOTE (pasteTaskAlso): The users pasting operation includes among
+# others also an assigned task - this is used as a affix in pasteNotifyAbout
+pasteTaskAlso=Dán bao gồm một nhiệm vụ được giao
+# LOCALIZATION NOTE (pasteTasksAlso): The users pasting operation include among
+# others also several assigned tasks - this is used as a affix in
+# pasteNotifyAbout
+pasteTasksAlso=Dán bao gồm các nhiệm vụ được giao
+# LOCALIZATION NOTE (pasteItemsAlso): The users pasting operation includes among
+# others also assigned task(s) and meeting invitation(s) - this is used as a affix
+# in pasteNotifyAbout
+pasteItemsAlso=Dán bao gồm các cuộc họp và nhiệm vụ được giao
+# LOCALIZATION NOTE (pasteEventOnly): The users is pasting a meeting -
+# this is used as a affix in pasteNotifyAbout
+pasteEventOnly=Bạn đang dán một cuộc họp
+# LOCALIZATION NOTE (pasteEventsOnly): The users is pasting several meetings -
+# this is used as a affix in pasteNotifyAbout
+pasteEventsOnly=Bạn đang dán các cuộc họp
+# LOCALIZATION NOTE (pasteEventOnly): The users is pasting an assigned task -
+# this is used as a affix in pasteNotifyAbout
+pasteTaskOnly=Bạn đang dán một nhiệm vụ được giao
+# LOCALIZATION NOTE (pasteEventsOnly): The users is pasting several assigned
+# tasks - this is used as a affix in pasteNotifyAbout
+pasteTasksOnly=Bạn đang dán các nhiệm vụ được giao
+# LOCALIZATION NOTE (pasteEventsOnly): The users is pasting assigned task(s) and
+# meeting(s) - this is used as a affix in pasteNotifyAbout
+pasteItemsOnly=Bạn đang dán các cuộc họp và nhiệm vụ được giao
+
+# LOCALIZATION NOTE (pasteNotifyAbout): Text displayed if pasting an invitation
+# or assigned task
+# %1$S - pasteEvent* or pasteTask*
+pasteNotifyAbout=%1$S - bạn có muốn gửi bản cập nhật cho mọi người liên quan không?
+
+# LOCALIZATION NOTE (pasteAndNotifyLabel): button label used in calendar prompt
+# of the pasted item has attendees
+pasteAndNotifyLabel=Dán và gửi ngay
+# LOCALIZATION NOTE (pasteDontNotifyLabel): button label used in calendar prompt
+# of the pasted item has attendees
+pasteDontNotifyLabel=Dán mà không gửi
+
+# LOCALIZATION NOTE (importItemsFailed):
+# %1$S will be replaced with number of failed items
+# %2$S will be replaced with last error code / error string
+importItemsFailed=%1$S mục không nhập được. Lỗi cuối cùng là: %2$S
+# LOCALIZATION NOTE (noItemsInCalendarFile2):
+# %1$S will be replaced with file path
+noItemsInCalendarFile2=Không thể nhập từ %1$S. Không có mục nhập trong tập tin này.
+
+#spaces needed at the end of the following lines
+eventDescription=Mô tả:
+
+unableToRead=Không thể đọc từ tập tin:
+unableToWrite=Không thể ghi vào tập tin:
+defaultFileName=MozillaCalEvents
+HTMLTitle=Mozilla Lịch
+
+# LOCALIZATION NOTE (timezoneError):
+# used for an error message like 'An unknown and undefined timezone was found while reading c:\Mycalendarfile.ics'
+# %1$S will be replaced with the path to a file
+timezoneError=Nhận thấy một múi giờ chưa rõ và chưa được định nghĩa khi đang đọc %1$S.
+
+# LOCALIZATION NOTE (duplicateError):
+# %1$S will be replaced with number of duplicate items
+# %2$S will be replaced with a file path pointing to a calendar
+duplicateError=%1$S mục đã bị bỏ qua vì chúng tồn tại trong cả hai bộ lịch đích và %2$S.
+
+unableToCreateProvider=Một lỗi đã xảy ra khi đang chuẩn bị dùng bộ lịch nằm tại %1$S. Nó sẽ không hiện hữu.
+
+# Sample: Unknown timezone "USPacific" in "Dentist Appt". Using the 'floating' local timezone instead: 2008/02/28 14:00:00
+unknownTimezoneInItem=Không biết múi giờ "%1$S" trong "%2$S". Sẽ coi như là múi giờ địa phương 'trôi nổi': %3$S
+TimezoneErrorsAlertTitle=Lỗi múi giờ
+TimezoneErrorsSeeConsole=Hãy xem Bảng kiểm soát Lỗi: Các múi giờ không được biết tới sẽ được coi như là múi giờ địa phương 'trôi nổi'.
+
+# The following strings are for the prompt to delete/unsubscribe from the calendar
+removeCalendarTitle=Xóa lịch
+removeCalendarButtonDelete=Xóa lịch
+removeCalendarButtonUnsubscribe=Dừng theo dõi
+
+# LOCALIZATION NOTE (removeCalendarMessageDeleteOrUnsubscribe): Shown for
+# calendar where both deleting and unsubscribing is possible.
+# %1$S: The name of a calendar
+removeCalendarMessageDeleteOrUnsubscribe=Bạn có muốn xóa lịch "%1$S" không? Hủy đăng ký sẽ xóa lịch khỏi danh sách, xóa cũng sẽ xóa vĩnh viễn dữ liệu của nó.
+
+# LOCALIZATION NOTE (removeCalendarMessageDelete): Shown for calendar where
+# deleting is the only option.
+# %1$S: The name of a calendar
+removeCalendarMessageDelete=Bạn có muốn xóa vĩnh viễn lịch "%1$S" không?
+
+# LOCALIZATION NOTE (removeCalendarMessageUnsubscribe): Shown for calendar
+# where unsubscribing is the only option.
+# %1$S: The name of a calendar
+removeCalendarMessageUnsubscribe=Bạn có muốn hủy đăng ký từ lịch "%1$S" không?
+
+WeekTitle=Tuần %1$S
+None=Không có
+
+# Error strings
+## @name UID_NOT_FOUND
+## @loc none
+
+# LOCALIZATION NOTE (tooNewSchemaErrorText):
+# %1$S will be replaced with the name of the host application, e.g. 'Thunderbird'
+# %2$S will be replaced with the name of the new copy of the file, e.g. 'local-2020-05-11T21-30-17.sqlite'
+tooNewSchemaErrorText=Dữ liệu lịch của bạn không tương thích với phiên bản %1$S này. Dữ liệu lịch trong hồ sơ của bạn đã được cập nhật bởi phiên bản mới hơn của %1$S. Một bản sao lưu của dữ liệu đã được tạo, được đặt tên là "%2$S". Tiếp tục với một dữ liệu mới vừa được tạo.
+
+# List of events or todos (unifinder)
+eventUntitled=Trống
+
+# Tooltips of events or todos
+tooltipTitle=Tiêu đề:
+tooltipLocation=Địa chỉ:
+# event date, usually an interval, such as
+# Date: 7:00--8:00 Thu 9 Oct 2011
+# Date: Thu 9 Oct 2000 -- Fri 10 Oct 2000
+tooltipDate=Ngày tháng:
+# event calendar name
+tooltipCalName=Tên lịch:
+# event status: tentative, confirmed, cancelled
+tooltipStatus=Trạng thái:
+# event organizer
+tooltipOrganizer=Đơn vị tổ chức:
+# task/todo fields
+# start date time, due date time, task priority number, completed date time
+tooltipStart=Bắt đầu:
+tooltipDue=Đến hạn:
+tooltipPriority=Ưu tiên:
+tooltipPercent=% Hoàn tất:
+tooltipCompleted=Hoàn tất:
+
+#File commands and dialogs
+New=Mới
+Open=Mở
+filepickerTitleImport=Nhập
+filepickerTitleExport=Xuất
+
+# Filters for export/import/open file picker. %1$S will be replaced with
+# wildmat used to filter files by extension, such as (*.html; *.htm).
+filterIcs=iCalendar (%1$S)
+filterHtml=Trang Web (%1$S)
+
+# Remote calendar errors
+genericErrorTitle=Một lỗi đã xảy ra
+httpPutError=Việc xuất bản lịch bị thất bại.\nMã trạng thái: %1$S: %2$S
+otherPutError=Việc xuất bản tập tin lịch bị thất bại.\nMã trạng thái: 0x%1$S
+
+# LOCALIZATION NOTE (readOnlyMode):
+# used for an message like 'There has been an error reading data for calendar: Home. It has been...'
+# %1$S will be replaced with the name of a calendar
+readOnlyMode=Có lỗi khi đang đọc dữ liệu cho bộ lịch: %1$S. Nó đã được đặt trong chế độ chỉ-đọc, vì các thay đổi trên bộ lịch này có lẽ sẽ dẫn tới việc mất dữ liệu. Bạn có thể thay đổi thiết lập này bằng cách chọn 'Chỉnh sửa Bộ lịch'.
+
+# LOCALIZATION NOTE (disabledMode):
+# used for an message like 'There has been an error reading data for calendar: Home. It has been...'
+# %1$S will be replaced with the name of a calendar
+disabledMode=Có lỗi khi đang đọc dữ liệu cho bộ lịch: %1$S. Nó đã bị vô hiệu hóa cho tới khi có thể sử dụng an toàn.
+
+# LOCALIZATION NOTE (minorError):
+# used for an message like 'There has been an error reading data for calendar: Home. However this...'
+# %1$S will be replaced with the name of a calendar
+minorError=Có lỗi khi đang đọc dữ liệu cho bộ lịch: %1$S. Tuy nhiên, đây chỉ là lỗi nhỏ, cho nên chương trình vẫn sẽ cố gắng tiếp tục.
+
+# LOCALIZATION NOTE (stillReadOnlyError):
+# used for an message like 'There has been an error reading data for calendar: Home.'
+# %1$S will be replaced with the name of a calendar
+stillReadOnlyError=Có lỗi khi đang đọc dữ liệu cho bộ lịch: %1$S.
+utf8DecodeError=Một lỗi đã xảy ra khi đang giải mã một tập tin iCalendar (ics) dưới dạng UTF-8. Hãy kiểm tra tập tin đó, bao gồm biểu tượng và các kí tự có dấu, đã được mã hóa bằng bộ mã UTF-8.
+icsMalformedError=Việc phân tích tập tin iCalendar (ics) bị thất bại. Hãy kiểm tra xem tập tin có tuân theo cú pháp của tập tin iCalendar (ics) chưa.
+itemModifiedOnServerTitle=Mục đã bị thay đổi trên máy chủ
+itemModifiedOnServer=Mục này vừa bị thay đổi trên máy chủ.\n
+modifyWillLoseData=Gửi thay đổi của bạn sẽ ghi đè lên các thay đổi đã thực hiện trên máy chủ.
+deleteWillLoseData=Xóa mục này sẽ làm mất các thay đổi đã thực hiện trên máy chủ.
+updateFromServer=Bỏ thay đổi của tôi và tải lại
+proceedModify=Vẫn gửi thay đổi của tôi
+proceedDelete=Vẫn xóa
+dav_notDav=Tài nguyên tại %1$S không phải là một bộ sưu tập DAV hoặc không hiện hữu
+dav_davNotCaldav=Tài nguyên tại %1$S là một bộ sưu tập DAV nhưng không phải là một bộ lịch CalDAV
+itemPutError=Có lỗi khi đang lưu trữ mục này trên máy chủ.
+itemDeleteError=Có lỗi khi đang lưu trữ mục này xóa mục này khỏi máy chủ.
+caldavRequestError=Một lỗi xảy ra khi đang gửi thư mời.
+caldavResponseError=Một lỗi xảy ra khi đang gửi phản hồi.
+caldavRequestStatusCode=Mã trạng thái: %1$S
+caldavRequestStatusCodeStringGeneric=Yêu cầu không thể được xử lý.
+caldavRequestStatusCodeString400=Yêu cầu chứa cú pháp sai và không thể được xử lý.
+caldavRequestStatusCodeString403=Người dùng thiếu sự cho phép cần thiết để thực hiện yêu cầu.
+caldavRequestStatusCodeString404=Không tìm thấy tài nguyên.
+caldavRequestStatusCodeString409=Xung đột tài nguyên.
+caldavRequestStatusCodeString412=Điều kiện tiên quyết không thành công.
+caldavRequestStatusCodeString500=Lỗi máy chủ nội bộ.
+caldavRequestStatusCodeString502=Không đúng cổng (Cấu hình proxy?).
+caldavRequestStatusCodeString503=Lỗi máy chủ nội bộ (Mất máy chủ tạm thời?).
+caldavRedirectTitle=Cập nhật địa chỉ cho lịch %1$S?
+caldavRedirectText=Các yêu cầu cho %1$S đang được chuyển hướng đến một vị trí mới. Bạn có muốn thay đổi vị trí thành giá trị sau?
+caldavRedirectDisableCalendar=Vô hiệu hóa lịch
+
+
+# LOCALIZATION NOTE (likelyTimezone):
+# Translators, please put the most likely timezone(s) where the people using
+# your locale will be. Use the Olson ZoneInfo timezone name *in English*,
+# ie "Europe/Paris", (continent or ocean)/(largest city in timezone).
+# Order does not matter, except if two historically different zones now match,
+# such as America/New_York and America/Toronto, will only find first listed.
+# (Particularly needed to guess the most relevant timezones if there are
+# similar timezones at the same June/December GMT offsets with alphabetically
+# earlier ZoneInfo timezone names. Sample explanations for English below.)
+# for english-US:
+# America/Los_Angeles likelier than America/Dawson
+# America/New_York likelier than America/Detroit (NY for US-EasternTime)
+# for english:
+# Europe/London likelier than Atlantic/Canary
+# Europe/Paris likelier than Africa/Ceuta (for WestEuropeanTime)
+# America/Halifax likelier than America/Glace_Bay (Canada-AtlanticTime)
+# America/Mexico_City likelier than America/Cancun
+# America/Argentina/Buenos_Aires likelier than America/Araguaina
+# America/Sao_Paolo (may not recognize: summer-time dates change every year)
+# Asia/Singapore likelier than Antarctica/Casey
+# Asia/Tokyo likelier than Asia/Dili
+# Africa/Lagos likelier than Africa/Algiers (for WestAfricanTime)
+# Africa/Johannesburg likelier than Africa/Blantyre (for SouthAfricanStdTime)
+# Africa/Nairobi likelier than Africa/Addis_Ababa (for EastAfricanTime)
+# Australia/Brisbane likelier than Antarctica/DumontDUrville
+# Australia/Sydney likelier than Australia/Currie or Australia/Hobart
+# Pacific/Auckland likelier than Antarctica/McMurdo
+likelyTimezone=Asia/Ho_Chi_Minh
+
+# Guessed Timezone errors and warnings.
+# Testing note:
+# * remove preference for calendar.timezone.default in userprofile/prefs.js
+# * repeat
+# - set OS timezone to a city (windows: click right on clock in taskbar)
+# - restart
+# - observe guess in error console and verify whether guessed timezone city
+# makes sense for OS city.
+#
+# 'Warning: Operating system timezone "E. South America Standard Time"
+# no longer matches ZoneInfo timezone "America/Sao_Paulo".'
+# Testing notes:
+# - Brasil DST change dates are set every year by decree, so likely out of sync.
+# - Only appears on OSes from which timezone can be obtained
+# (windows; or TZ env var, /etc/localtime target path, or line in
+# /etc/timezone or /etc/sysconfig/clock contains ZoneInfo timezone id).
+# - Windows: turning off "Automatically adjust clock for daylight saving time"
+# can also trigger this warning.
+WarningOSTZNoMatch=Cảnh báo: Múi giờ hệ điều hành "%1$S"\nkhông còn phù hợp với múi giờ ZoneInfo nội bộ "%2$S".
+
+# "Skipping Operating System timezone 'Pacific/New_Country'."
+# Testing note: not easily testable. May occur someday if (non-windows)
+# OS uses different version of ZoneInfo database which has a timezone name
+# that is not included in our current ZoneInfo database (or if the mapping
+# mapping from windows to ZoneInfo timezone ids does).
+SkippingOSTimezone=Bỏ qua múi giờ hệ điều hành '%1$S'.
+
+# "Skipping locale timezone 'America/New_Yawk'."
+# Testing note: Skipping occurs if a likelyTimezone id is unknown or misspelled.
+SkippingLocaleTimezone=Bỏ qua múi giờ địa phương '%1$S'.
+
+# Testing note: "No match" timezones include Bucharest on W2k.
+# Brazil timezones may be "No match" (change every year, so often out of date,
+# and changes are often more than a week different).
+warningUsingFloatingTZNoMatch=Cảnh báo: Đang dùng múi giờ "float".\nKhông có dữ liệu múi giờ ZoneInfo phù hợp với dữ liệu múi giờ hệ điều hành.
+
+# "Warning: Using guessed timezone
+# America/New York (UTC-0500/-0400).
+# [rfc2445 summer daylight saving shift rules for timezone]
+# This ZoneInfo timezone almost matches/seems to match..."
+# This ZoneInfo timezone was chosen based on ... "
+WarningUsingGuessedTZ=Cảnh báo: Đang dùng múi giờ đoán tạm\n %1$S (UTC%2$S).\n%3$S\n%4$S
+
+# Testing note: "Almost match" timezones include Cairo on W2k.
+TZAlmostMatchesOSDifferAtMostAWeek=Múi giờ ZoneInfo này có vẻ phù hợp với múi giờ hệ điều hành.\nĐối với quy luật này, các lần đổi giờ tiếp theo từ giờ mùa hè sang giờ chuẩn\nsẽ lệch ít nhất một tuần so với lần đổi giờ của hệ điều hành.\nCó thể dữ liệu sẽ không nhất quán, ví dụ sẽ khác ngày bắt đầu,\nhoặc khác về quy luật, hoặc mức xấp xỉ cho các quy luật của những bộ lịch không thuộc hệ thống lịch Gregory.
+
+TZSeemsToMatchOS=Múi giờ ZoneInfo này có vẻ phù hợp với múi giờ hệ điều hành trong năm nay.
+
+# LOCALIZATION NOTE (TZFromOS):
+# used for a display of a chosen timezone
+# %1$S will be replaced with the name of a timezone
+TZFromOS=Múi giờ ZoneInfo này được chọn dựa trên múi giờ hệ điều hành\nxác định "%1$S".
+
+# Localization note (TZFromLocale): Substitute name of your locale language.
+TZFromLocale=Múi giờ ZoneInfo này được chọn dựa trên việc phù hợp múi giờ hệ điều hành\nvới múi giờ cho người dùng internet sử dụng tiếng Việt.
+
+TZFromKnownTimezones=Múi giờ ZoneInfo này được chọn dựa trên việc phù hợp múi giờ hệ điều hành\nvới các múi giờ theo thứ tự bảng chữ cái của id múi giờ.
+
+# Print Layout
+tasksWithNoDueDate = Tác vụ không có ngày đến hạn
+
+# Providers
+caldavName=CalDAV
+compositeName=Ghép
+icsName=iCalendar (ICS)
+memoryName=Tạm thời (bộ nhớ)
+storageName=Nội bộ (SQLite)
+
+# Used in created html code for export
+htmlPrefixTitle=Tiêu đề
+htmlPrefixWhen=Khi nào
+htmlPrefixLocation=Địa chỉ
+htmlPrefixDescription=Mô tả
+htmlTaskCompleted=%1$S (hoàn tất)
+
+# Categories
+addCategory=Thêm Phân Mục
+multipleCategories=Nhiều danh mục
+
+today=Hôm nay
+tomorrow=Ngày mai
+yesterday=Hôm qua
+
+#Today pane
+eventsonly=Sự kiện
+eventsandtasks=Sự kiện và Tác vụ
+tasksonly=Tác vụ
+shortcalendarweek=Tuần
+
+go=Duyệt xem
+
+# Some languages have different conjugations of 'next' and 'last'. If yours
+# does not, simply repeat the value. This will be used with day names, as in
+# 'next Sunday'.
+next1=tiếp
+next2=tiếp
+last1=trước
+last2=trước
+
+# Alarm Dialog
+# LOCALIZATION NOTE (alarmWindowTitle.label): Semi-colon list of plural
+# forms. See: http://developer.mozilla.org/en/Localization_and_Plurals
+alarmWindowTitle.label=#1 lời nhắc
+
+# LOCALIZATION NOTE (alarmStarts):
+# used for a display the start of an alarm like 'Starts: Thu 2 Oct 2008 13:21'
+# %1$S will be replaced with a date-time
+alarmStarts=Bắt đầu: %1$S
+
+# LOCALIZATION NOTE (alarmTodayAt):
+# used for a display the date-time of an alarm like 'Today at Thu 2 Oct 2008 13:21'
+# %1$S will be replaced with a date-time
+alarmTodayAt=Hôm nay lúc %1$S
+
+# LOCALIZATION NOTE (alarmTomorrowAt):
+# used for a display the date-time of an alarm like 'Tomorrow at Thu 2 Oct 2008 13:21'
+# %1$S will be replaced with a date-time
+alarmTomorrowAt=Ngày mai lúc %1$S
+
+# LOCALIZATION NOTE (alarmYesterdayAt):
+# used for a display the date-time of an alarm like 'Yesterday at Thu 2 Oct 2008 13:21'
+# %1$S will be replaced with a date-time
+alarmYesterdayAt=Hôm qua lúc %1$S
+
+# Alarm interface strings
+# LOCALIZATION NOTE: These strings do not get displayed. They are only visible
+# when exporting an item with i.e a DISPLAY alarm, that doesn't have a
+# description set, or an EMAIL alarm that doesn't have a summary set.
+alarmDefaultDescription=Mô tả Mozilla Mặc định
+alarmDefaultSummary=Tóm tắt Mozilla Mặc định
+
+# LOCALIZATION NOTE (alarmSnoozeLimitExceeded): Semi-colon list of plural
+# forms.
+alarmSnoozeLimitExceeded=Bạn không thể báo thức trong hơn #1 tháng.
+
+taskDetailsStatusNeedsAction=Cần thao tác
+
+# LOCALIZATION NOTE (taskDetailsStatusInProgress):
+# used for a display of how much of a task is completed '25% Complete'
+# %1$S will be replaced with the number of percentage completed
+taskDetailsStatusInProgress=%1$S%% Hoàn tất
+taskDetailsStatusCompleted=Hoàn tất
+
+# LOCALIZATION NOTE (taskDetailsStatusCompletedOn):
+# used for a display of completion date like 'Completed on Thu 2 Oct 2008 13:21'
+# %1$S will be replaced with the completion date-time of the task
+taskDetailsStatusCompletedOn=Hoàn tất lúc %1$S
+taskDetailsStatusCancelled=Đã hủy
+
+gettingCalendarInfoCommon=Đang kiểm tra Lịch…
+
+# LOCALIZATION NOTE (gettingCalendarInfoDetail):
+# used for a progress-display of processed like 'Checking Calendar 5 of 10'
+# %1$S will be replaced with the index of the currently processed calendar
+# %2$S will be replaced with the total numbers of calendars
+gettingCalendarInfoDetail=Đang kiểm tra Lịch %1$S trên tổng %2$S
+
+# LOCALIZATION NOTE (errorCode):
+# %1$S will be replaced with the number of an error code
+errorCode=Mã lỗi: %1$S
+
+# LOCALIZATION NOTE (errorDescription):
+# %1$S will be replaced with the description of an error
+errorDescription=Mô tả: %1$S
+
+# LOCALIZATION NOTE (errorWriting):
+# used for an message like 'An error occurred when writing to the calendar Home!'
+# %1$S will be replaced with the name of a calendar
+errorWriting2=Đã xảy ra lỗi khi ghi vào lịch %1$S! Xin vui lòng xem bên dưới để biết thêm thông tin.
+
+# LOCALIZATION NOTE (errorWritingDetails):
+# This will be displayed in the detail section of the error dialog
+errorWritingDetails=Nếu bạn đang thấy thông báo này sau khi báo lại hoặc bỏ qua lời nhắc và đây là lịch bạn không muốn thêm hoặc chỉnh sửa sự kiện, bạn có thể đánh dấu lịch này là chỉ đọc để tránh trải nghiệm đó trong tương lai. Để làm như vậy, hãy truy cập vào các thuộc tính lịch bằng cách nhấp chuột phải vào lịch này trong danh sách trong chế độ xem lịch hoặc tác vụ.
+
+# LOCALIZATION NOTE (tooltipCalendarDisabled):
+# used for an alert-message like 'The calendar Home is momentarily not available'
+# %1$S will be replaced with the name of a calendar
+tooltipCalendarDisabled=Bộ lịch %1$S tạm thời không hiện hữu
+
+# LOCALIZATION NOTE (tooltipCalendarReadOnly):
+# used for an message like 'The calendar Home is readonly'
+# %1$S will be replaced with the name of a calendar
+tooltipCalendarReadOnly=Bộ lịch %1$S có thuộc tính chỉ-đọc
+
+taskEditInstructions=Nhấn vào đây để Thêm Tác Vụ Mới
+taskEditInstructionsReadonly=Vui lòng chọn một Bộ lịch Có thể Ghi
+taskEditInstructionsCapability=Vui lòng chọn một Bộ lịch Hỗ trợ Tác vụ
+
+eventDetailsStartDate=Bắt đầu:
+eventDetailsEndDate=Kết thúc:
+
+# LOCALIZATION NOTE (datetimeWithTimezone):
+# used for a display of a date-time with timezone 'Thu 2 Oct 2008 13:21', Europe/Paris
+# %1$S will be replaced with the completion date-time
+# %2$S will be replaced with the name of the timezone
+datetimeWithTimezone=%1$S, %2$S
+
+# LOCALIZATION NOTE (singleLongCalendarWeek):
+# used for display of calendar weeks in short form like 'Calendar Week 43'
+# %1$S will be replaced with the index of the week
+singleLongCalendarWeek=Tuần: %1$S
+
+# LOCALIZATION NOTE (severalLongCalendarWeeks):
+# used for display of calendar weeks in short form like 'Calendar Weeks 43 - 45'
+# %1$S will be replaced with the index of the start-week
+# %2$S will be replaced with the index of the end-week
+severalLongCalendarWeeks=Tuần %1$S-%2$S
+
+# LOCALIZATION NOTE (singleShortCalendarWeek):
+# used for display of calendar weeks in short form like 'CW 43'
+# %1$S will be replaced with the index of the week
+singleShortCalendarWeek=Tuần: %1$S
+
+# LOCALIZATION NOTE (severalShortCalendarWeeks):
+# used for display of calendar weeks in short form like 'CWs 43 - 45'
+# %1$S will be replaced with the index of the start-week
+# %2$S will be replaced with the index of the end-week
+severalShortCalendarWeeks=Tuần: %1$S–%2$S
+
+# LOCALIZATION NOTE (multiweekViewWeek):
+# Used for displaying the week number in the first day box of every week
+# in multiweek and month views.
+# It allows to localize the label with the week number in case your locale
+# requires it.
+# Take into account that this label is placed in the same room of the day label
+# inside the day boxes, exactly on left side, hence a possible string shouldn't
+# be too long otherwise it will create confusion between the week number and
+# the day number other than a possible crop when the window is resized.
+#
+# %1$S is a number from 1 to 53 that represents the week number.
+multiweekViewWeek=T %1$S
+
+# Task tree, "Due In" column.
+# LOCALIZATION NOTE (dueInDays, dueInHours): Semi-colon list of plural
+# forms. See: http://developer.mozilla.org/en/Localization_and_Plurals
+dueInDays=#1 ngày
+dueInHours=#1 giờ;#1 giờ
+dueInLessThanOneHour=< 1 giờ
+
+# LOCALIZATION NOTE (monthInYear):
+# used for display of Month-dates like 'December 2008'
+# %1$S will be replaced with name of the month
+# %2$S will be replaced with the year
+monthInYear=%1$S %2$S
+
+# LOCALIZATION NOTE (monthInYear.monthFormat):
+# If your language requires a different declension, change this to
+# one of the values specified in dateFormat.properties.
+# In any case, DO NOT TRANSLATE.
+monthInYear.monthFormat=genitive
+
+# LOCALIZATION NOTE (formatDateLong):
+# used for display dates in long format like 'Mon 15 Oct 2008' when it's
+# impossible to retrieve the formatatted date from the OS.
+# %1$S will be replaced with name of the day in short format;
+# %2$S will be replaced with the day-index of the month, possibly followed by an ordinal symbol
+# (depending on the string dayOrdinalSymbol in dateFormat.properties);
+# %3$S will be replaced with the name of the month in short format;
+# %4$S will be replaced with the year.
+formatDateLong=%1$S %2$S %3$S %4$S
+
+# LOCALIZATION NOTE (dayHeaderLabel):
+# used for display the labels in the header of the days in day/week views in short
+# or long format. For example: 'Monday 6 Oct.' or 'Mon. 6 Oct.'
+# %1$S will be replaced with name of the day in short or long format
+# %2$S will be replaced with the day-index of the month, possibly followed by an ordinal symbol
+# (depending on the string dayOrdinalSymbol in dateFormat.properties), plus the name
+# of the month in short format (the day/month order depends on the OS settings).
+dayHeaderLabel=%1$S %2$S
+
+# LOCALIZATION NOTE (daysIntervalInMonth):
+# used for display of intervals in the form of 'March 3 - 9, 2008'
+# %1$S will be replaced with name of the month of the start date
+# %2$S will be replaced with the day-index of the start date possibly followed by an ordinal symbol
+# %3$S will be replaced with the day-index of the end date possibly followed by an ordinal symbol
+# %4$S will be replaced with the common year of both dates
+# The presence of the ordinal symbol in the day-indexes depends on the string
+# dayOrdinalSymbol in dateFormat.properties
+daysIntervalInMonth=%1$S %2$S – %3$S, %4$S
+
+# LOCALIZATION NOTE (daysIntervalInMonth.monthFormat):
+# If your language requires a different declension, change this to
+# one of the values specified in dateFormat.properties.
+# In any case, DO NOT TRANSLATE.
+daysIntervalInMonth.monthFormat=nominative
+
+# LOCALIZATION NOTE (daysIntervalBetweenMonths):
+# used for display of intervals in the form 'September 29 - October 5, 2008'
+# %1$S will be replaced with name of the month of the start date
+# %2$S will be replaced with the day-index of the start date possibly followed by an ordinal symbol
+# %3$S will be replaced with name of the month of the end date
+# %4$S will be replaced with the day-index of the end date possibly followed by an ordinal symbol
+# %5$S will be replaced with the common year of both dates
+# The presence of the ordinal symbol in the day-indexes depends on the string
+# dayOrdinalSymbol in dateFormat.properties
+daysIntervalBetweenMonths=%1$S %2$S – %3$S %4$S, %5$S
+
+# LOCALIZATION NOTE (daysIntervalBetweenMonths.monthFormat):
+# If your language requires a different declension, change this to
+# one of the values specified in dateFormat.properties.
+# In any case, DO NOT TRANSLATE.
+daysIntervalBetweenMonths.monthFormat=nominative
+
+# LOCALIZATION NOTE (daysIntervalBetweenYears):
+# used for display of intervals in the form 'December 29, 2008 - January 4, 2009'
+# %1$S will be replaced with name of the month of the start date
+# %2$S will be replaced with the day-index of the start date possibly followed by an ordinal symbol
+# %3$S will be replaced with the year of the start date
+# %4$S will be replaced with name of the month of the end date
+# %5$S will be replaced with the day-index of the end date possibly followed by an ordinal symbol
+# %6$S will be replaced with the year of the end date
+# The presence of the ordinal symbol in the day-indexes depends on the string
+# dayOrdinalSymbol in dateFormat.properties
+daysIntervalBetweenYears=%1$S %2$S, %3$S – %4$S %5$S, %6$S
+
+# LOCALIZATION NOTE (daysIntervalBetweenYears.monthFormat):
+# If your language requires a different declension, change this to
+# one of the values specified in dateFormat.properties.
+# In any case, DO NOT TRANSLATE.
+daysIntervalBetweenYears.monthFormat=nominative
+
+# LOCALIZATION NOTE (datetimeIntervalOnSameDateTime):
+# used for intervals where end is equals to start
+# displayed form is '5 Jan 2006 13:00'
+# %1$S will be replaced with the date of the start date
+# %2$S will be replaced with the time of the start date
+datetimeIntervalOnSameDateTime=%1$S %2$S
+
+# LOCALIZATION NOTE (datetimeIntervalOnSameDay):
+# used for intervals where end is on the same day as start, so we can leave out the
+# end date but still include end time
+# displayed form is '5 Jan 2006 13:00 - 17:00'
+# %1$S will be replaced with the date of the start date
+# %2$S will be replaced with the time of the start date
+# %3$S will be replaced with the time of the end date
+datetimeIntervalOnSameDay=%1$S %2$S–%3$S
+
+# LOCALIZATION NOTE (datetimeIntervalOnSeveralDays):
+# used for intervals spanning multiple days by including date and time
+# displayed form is '5 Jan 2006 13:00 - 7 Jan 2006 9:00'
+# %1$S will be replaced with the date of the start date
+# %2$S will be replaced with the time of the start date
+# %3$S will be replaced with the date of the end date
+# %4$S will be replaced with the time of the end date
+datetimeIntervalOnSeveralDays=%1$S %2$S – %3$S %4$S
+
+# LOCALIZATION NOTE (datetimeIntervalTaskWithoutDate):
+# used for task without start and due date
+# (showed only in exported calendar in Html format)
+datetimeIntervalTaskWithoutDate= không có ngày bắt đầu hoặc đến hạn
+# LOCALIZATION NOTE (datetimeIntervalTaskWithoutDueDate):
+# used for intervals in task with only start date
+# displayed form is 'start date 5 Jan 2006 13:00'
+# (showed only in exported calendar in Html format)
+# %1$S will be replaced with the date of the start date
+# %2$S will be replaced with the time of the start date
+datetimeIntervalTaskWithoutDueDate=ngày bắt đầu %1$S %2$S
+# LOCALIZATION NOTE (datetimeIntervalTaskWithoutStartDate):
+# used for intervals in task with only due date
+# displayed form is 'due date 5 Jan 2006 13:00'
+# (showed only in exported calendar in Html format)
+# %1$S will be replaced with the date of the due date
+# %2$S will be replaced with the time of the due date
+datetimeIntervalTaskWithoutStartDate=ngày đến hạn %1$S %2$S
+
+# LOCALIZATION NOTE (dragLabelTasksWithOnlyEntryDate
+# dragLabelTasksWithOnlyDueDate)
+# Labels that appear while dragging a task with only
+# entry date OR due date
+dragLabelTasksWithOnlyEntryDate=Thời gian bắt đầu
+dragLabelTasksWithOnlyDueDate=Đến hạn tại
+
+deleteTaskLabel=Xóa Tác Vụ
+deleteTaskAccesskey=X
+deleteItemLabel=Xóa
+deleteItemAccesskey=X
+deleteEventLabel=Xóa Sự Kiện
+deleteEventAccesskey=X
+
+calendarPropertiesEveryMinute=Mỗi #1 phút
+
+# LOCALIZATION NOTE (extractUsing)
+# Used in message header
+# %1$S will be replaced with language name from languageNames.properties
+extractUsing=Sử dụng %1$S
+
+# LOCALIZATION NOTE (extractUsingRegion)
+# Used in message header
+# %1$S will be replaced with language name from languageNames.properties
+# %2$S will be replaced with region like US in en-US
+extractUsingRegion=Sử dụng %1$S (%2$S)
+
+# LOCALIZATION NOTE (unit)
+# Used to determine the correct plural form of a unit
+unitMinutes=#1 phút
+unitHours=#1 giờ
+unitDays=#1 ngày
+unitWeeks=#1 tuần
+
+# LOCALIZATION NOTE (showCalendar)
+# Used in calendar list context menu
+# %1$S will be replaced with the calendar name
+# uses the access key calendar.context.togglevisible.accesskey
+showCalendar=Hiển thị %1$S
+hideCalendar=Ẩn %1$S
+# uses the access key calendar.context.showonly.accesskey
+showOnlyCalendar=Chỉ hiển thị %1$S
+
+# LOCALIZATION NOTE (modifyConflict)
+# Used by the event dialog to resolve item modification conflicts.
+modifyConflictPromptTitle=Xung đột sửa đổi mục
+modifyConflictPromptMessage=Mục đang được chỉnh sửa trong hộp thoại đã được sửa đổi kể từ khi nó được mở.
+modifyConflictPromptButton1=Ghi đè các thay đổi khác
+modifyConflictPromptButton2=Hủy bỏ những thay đổi này
+
+# Accessible description of a grid calendar with no selected date
+minimonthNoSelectedDate=Không có ngày nào được chọn
diff --git a/l10n-vi/calendar/chrome/calendar/calendarCreation.dtd b/l10n-vi/calendar/chrome/calendar/calendarCreation.dtd
new file mode 100644
index 0000000000..742aee0ecd
--- /dev/null
+++ b/l10n-vi/calendar/chrome/calendar/calendarCreation.dtd
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/l10n-vi/calendar/chrome/calendar/calendarCreation.properties b/l10n-vi/calendar/chrome/calendar/calendarCreation.properties
new file mode 100644
index 0000000000..335eb4f3d4
--- /dev/null
+++ b/l10n-vi/calendar/chrome/calendar/calendarCreation.properties
@@ -0,0 +1,6 @@
+# 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/.
+
+error.invalidUri=Vui lòng nhập một địa chỉ hợp lệ.
+error.alreadyExists=Bạn đã đăng kí theo dõi trang lịch tại địa chỉ này rồi.
diff --git a/l10n-vi/calendar/chrome/calendar/categories.properties b/l10n-vi/calendar/chrome/calendar/categories.properties
new file mode 100644
index 0000000000..1dc7ce36b2
--- /dev/null
+++ b/l10n-vi/calendar/chrome/calendar/categories.properties
@@ -0,0 +1,7 @@
+# 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/.
+
+# default categories
+
+categories2=Lễ kỉ niệm,Sinh nhật,Kinh doanh,Cuộc gọi,Khách hàng,Thi thố,Ưa thích,Theo dõi,Quà tặng,Ngày lễ,Ý kiến,Vấn đề,Họp mặt,Linh tinh,Cá nhân,Dự án,Ngày lễ Công cộng,Trạng thái,Nhà cung cấp,Du lịch,Tham quan
diff --git a/l10n-vi/calendar/chrome/calendar/dateFormat.properties b/l10n-vi/calendar/chrome/calendar/dateFormat.properties
new file mode 100644
index 0000000000..1183f57846
--- /dev/null
+++ b/l10n-vi/calendar/chrome/calendar/dateFormat.properties
@@ -0,0 +1,146 @@
+# 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/.
+
+# In case you are looking for the note about different declensions on date
+# formats, here it is. If your language doesn't use different declensions of
+# month names, you shouldn't have much work. Just leave the *.monthFormat
+# string on "nominative" and the string month.*.name will be filled in.
+#
+# If you need a different form for a string, you can change the
+# *.monthFormat to a different value. Supported values are currently:
+# nominative (default), genitive
+# The modified month name form will then be filled in accordingly. If this
+# system does not suit your needs, please file a bug!
+
+# LOCALIZATION NOTE (month.*.name):
+# Some languages require different declensions of month names.
+# These values will be used if *.monthFormat is set to "nominative" or in places
+# where using a different declension is not yet supported.
+month.1.name=Tháng 1
+month.2.name=Tháng 2
+month.3.name=Tháng 3
+month.4.name=Tháng 4
+month.5.name=Tháng 5
+month.6.name=Tháng 6
+month.7.name=Tháng 7
+month.8.name=Tháng 8
+month.9.name=Tháng 9
+month.10.name=Tháng 10
+month.11.name=Tháng 11
+month.12.name=Tháng 12
+
+# LOCALIZATION NOTE (month.*.genitive):
+# Some languages require different declensions of month names.
+# These values will be used if *.monthFormat is set to "genitive"
+# If your language doesn't use different declensions, just set the same
+# values as for month.*.name.
+month.1.genitive=Tháng 1
+month.2.genitive=Tháng 2
+month.3.genitive=Tháng 3
+month.4.genitive=Tháng 4
+month.5.genitive=Tháng 5
+month.6.genitive=Tháng 6
+month.7.genitive=Tháng 7
+month.8.genitive=Tháng 8
+month.9.genitive=Tháng 9
+month.10.genitive=Tháng 10
+month.11.genitive=Tháng 11
+month.12.genitive=Tháng 12
+
+month.1.Mmm=Thg01
+month.2.Mmm=Thg02
+month.3.Mmm=Thg03
+month.4.Mmm=Thg04
+month.5.Mmm=Thg05
+month.6.Mmm=Thg06
+month.7.Mmm=Thg07
+month.8.Mmm=Thg08
+month.9.Mmm=Thg09
+month.10.Mmm=Thg10
+month.11.Mmm=Thg11
+month.12.Mmm=Thg12
+
+day.1.name=Chủ nhật
+day.2.name=Thứ hai
+day.3.name=Thứ ba
+day.4.name=Thứ tư
+day.5.name=Thứ năm
+day.6.name=Thứ sáu
+day.7.name=Thứ bảy
+
+day.1.Mmm=ChN
+day.2.Mmm=Th2
+day.3.Mmm=Th3
+day.4.Mmm=Th4
+day.5.Mmm=Th5
+day.6.Mmm=Th6
+day.7.Mmm=Th7
+
+# Can someone tell me why we're not counting from zero?
+day.1.short=CN
+day.2.short=T2
+day.3.short=T3
+day.4.short=T4
+day.5.short=T5
+day.6.short=T6
+day.7.short=T7
+
+# Localizable day's date
+day.1.number=1
+day.2.number=2
+day.3.number=3
+day.4.number=4
+day.5.number=5
+day.6.number=6
+day.7.number=7
+day.8.number=8
+day.9.number=9
+day.10.number=10
+day.11.number=11
+day.12.number=12
+day.13.number=13
+day.14.number=14
+day.15.number=15
+day.16.number=16
+day.17.number=17
+day.18.number=18
+day.19.number=19
+day.20.number=20
+day.21.number=21
+day.22.number=22
+day.23.number=23
+day.24.number=24
+day.25.number=25
+day.26.number=26
+day.27.number=27
+day.28.number=28
+day.29.number=29
+day.30.number=30
+day.31.number=31
+
+# LOCALIZATION NOTE (dayOrdinalSymbol):
+# Allows to insert a string, a character or a symbol after the number of a
+# monthday in order to give it the meaning of ordinal number e.g. 1 -> 1st etc.
+# It's mainly used when formatting dates with both monthday and month name. It
+# affects the following localizable strings that hence must be localized *without*
+# any ordinal symbol for the monthday number:
+# dayHeaderLabel, monthlyDaysOfNth_day,
+# yearlyNthOn, daysIntervalBetweenYears,
+# daysIntervalBetweenMonths, daysIntervalInMonth.
+# Write only a single string if the ordinal symbol is the same for every monthday, otherwise
+# write a sequence of _31_ strings (one for each monthday) separated with commas.
+# If your language doesn't require that in the mentioned strings, leave it empty.
+# e.g.
+# dayOrdinalSymbol=.
+# -> daysIntervalInMonth: 'March 3. - 9., 2008'
+# dayOrdinalSymbol=st,nd,rd,th,th,th,th,th,th,th,th,th,th,th,th,
+# th,th,th,th,th,st,nd,rd,th,th,th,th,th,th,th,st
+# -> daysIntervalBetweenMonths: 'September 29th - November 1st, 2008'
+dayOrdinalSymbol=
+
+noon=Trưa
+midnight=Nửa đêm
+
+AllDay=Cả ngày
+Repeating=(Đang lặp lại)
diff --git a/l10n-vi/calendar/chrome/calendar/dialogs/calendar-event-dialog-reminder.dtd b/l10n-vi/calendar/chrome/calendar/dialogs/calendar-event-dialog-reminder.dtd
new file mode 100644
index 0000000000..abb3b187db
--- /dev/null
+++ b/l10n-vi/calendar/chrome/calendar/dialogs/calendar-event-dialog-reminder.dtd
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/l10n-vi/calendar/chrome/calendar/global.dtd b/l10n-vi/calendar/chrome/calendar/global.dtd
new file mode 100644
index 0000000000..3bf26aa0d4
--- /dev/null
+++ b/l10n-vi/calendar/chrome/calendar/global.dtd
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/l10n-vi/calendar/chrome/calendar/menuOverlay.dtd b/l10n-vi/calendar/chrome/calendar/menuOverlay.dtd
new file mode 100644
index 0000000000..fde1132b0f
--- /dev/null
+++ b/l10n-vi/calendar/chrome/calendar/menuOverlay.dtd
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/l10n-vi/calendar/chrome/calendar/migration.dtd b/l10n-vi/calendar/chrome/calendar/migration.dtd
new file mode 100644
index 0000000000..4de0695eca
--- /dev/null
+++ b/l10n-vi/calendar/chrome/calendar/migration.dtd
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
diff --git a/l10n-vi/calendar/chrome/calendar/migration.properties b/l10n-vi/calendar/chrome/calendar/migration.properties
new file mode 100644
index 0000000000..21f57d5aec
--- /dev/null
+++ b/l10n-vi/calendar/chrome/calendar/migration.properties
@@ -0,0 +1,13 @@
+# 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/.
+
+migratingApp = Đang di chuyển %1$S…
+
+# The next two lines are duplicated from migration.dtd until there is branding
+# for lightning
+migrationTitle = %1$S: Nhập Dữ Liệu
+migrationDescription=%1$S có thể nhập dữ liệu lịch từ nhiều chương trình thông dụng. Đã tìm thấy dữ liệu từ các chương trình sau trên máy tính của bạn. Vui lòng chọn chương trình mà bạn muốn nhập dữ liệu.
+finished = Hoàn tất
+disableExtTitle = Tìm thấy tiện ích mở rộng không tương thích
+disableExtText = Máy bạn đã có tiện ích mở rộng Mozilla Calendar, không tương thích với Lightning. Nó sẽ bị vô hiệu hóa và %1$S sẽ khởi động lại.
diff --git a/l10n-vi/calendar/chrome/calendar/provider-uninstall.dtd b/l10n-vi/calendar/chrome/calendar/provider-uninstall.dtd
new file mode 100644
index 0000000000..8bb0452a7c
--- /dev/null
+++ b/l10n-vi/calendar/chrome/calendar/provider-uninstall.dtd
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/l10n-vi/calendar/chrome/calendar/timezones.properties b/l10n-vi/calendar/chrome/calendar/timezones.properties
new file mode 100644
index 0000000000..1b8860e293
--- /dev/null
+++ b/l10n-vi/calendar/chrome/calendar/timezones.properties
@@ -0,0 +1,489 @@
+# 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/.
+
+pref.timezone.floating=Giờ địa phương
+pref.timezone.UTC=UTC/GMT
+
+# I've derived this list out of timezones.dtd
+# - replaced '_' with ' ' on value side
+# - corrected 'St xyz' to 'St. xyz'
+
+# timezone names:
+pref.timezone.Africa.Abidjan=Châu Phi/Abidjan
+pref.timezone.Africa.Accra=Châu Phi/Accra
+pref.timezone.Africa.Addis_Ababa=Châu Phi/Addis Ababa
+pref.timezone.Africa.Algiers=Châu Phi/Algiers
+pref.timezone.Africa.Asmara=Châu Phi/Asmara
+pref.timezone.Africa.Bamako=Châu Phi/Bamako
+pref.timezone.Africa.Bangui=Châu Phi/Bangui
+pref.timezone.Africa.Banjul=Châu Phi/Banjul
+pref.timezone.Africa.Bissau=Châu Phi/Bissau
+pref.timezone.Africa.Blantyre=Châu Phi/Blantyre
+pref.timezone.Africa.Brazzaville=Châu Phi/Brazzaville
+pref.timezone.Africa.Bujumbura=Châu Phi/Bujumbura
+pref.timezone.Africa.Cairo=Châu Phi/Cairo
+pref.timezone.Africa.Casablanca=Châu Phi/Casablanca
+pref.timezone.Africa.Ceuta=Châu Phi/Ceuta
+pref.timezone.Africa.Conakry=Châu Phi/Conakry
+pref.timezone.Africa.Dakar=Châu Phi/Dakar
+pref.timezone.Africa.Dar_es_Salaam=Châu Phi/Dar es Salaam
+pref.timezone.Africa.Djibouti=Châu Phi/Djibouti
+pref.timezone.Africa.Douala=Châu Phi/Douala
+pref.timezone.Africa.El_Aaiun=Châu Phi/El Aaiun
+pref.timezone.Africa.Freetown=Châu Phi/Freetown
+pref.timezone.Africa.Gaborone=Châu Phi/Gaborone
+pref.timezone.Africa.Harare=Châu Phi/Harare
+pref.timezone.Africa.Johannesburg=Châu Phi/Johannesburg
+pref.timezone.Africa.Kampala=Châu Phi/Kampala
+pref.timezone.Africa.Khartoum=Châu Phi/Khartoum
+pref.timezone.Africa.Kigali=Châu Phi/Kigali
+pref.timezone.Africa.Kinshasa=Châu Phi/Kinshasa
+pref.timezone.Africa.Lagos=Châu Phi/Lagos
+pref.timezone.Africa.Libreville=Châu Phi/Libreville
+pref.timezone.Africa.Lome=Châu Phi/Lome
+pref.timezone.Africa.Luanda=Châu Phi/Luanda
+pref.timezone.Africa.Lubumbashi=Châu Phi/Lubumbashi
+pref.timezone.Africa.Lusaka=Châu Phi/Lusaka
+pref.timezone.Africa.Malabo=Châu Phi/Malabo
+pref.timezone.Africa.Maputo=Châu Phi/Maputo
+pref.timezone.Africa.Maseru=Châu Phi/Maseru
+pref.timezone.Africa.Mbabane=Châu Phi/Mbabane
+pref.timezone.Africa.Mogadishu=Châu Phi/Mogadishu
+pref.timezone.Africa.Monrovia=Châu Phi/Monrovia
+pref.timezone.Africa.Nairobi=Châu Phi/Nairobi
+pref.timezone.Africa.Ndjamena=Châu Phi/Ndjamena
+pref.timezone.Africa.Niamey=Châu Phi/Niamey
+pref.timezone.Africa.Nouakchott=Châu Phi/Nouakchott
+pref.timezone.Africa.Ouagadougou=Châu Phi/Ouagadougou
+pref.timezone.Africa.Porto-Novo=Châu Phi/Porto-Novo
+pref.timezone.Africa.Sao_Tome=Châu Phi/Sao Tome
+pref.timezone.Africa.Tripoli=Châu Phi/Tripoli
+pref.timezone.Africa.Tunis=Châu Phi/Tunis
+pref.timezone.Africa.Windhoek=Châu Phi/Windhoek
+pref.timezone.America.Adak=Châu Mỹ/Adak
+pref.timezone.America.Anchorage=Châu Mỹ/Anchorage
+pref.timezone.America.Anguilla=Châu Mỹ/Anguilla
+pref.timezone.America.Antigua=Châu Mỹ/Antigua
+pref.timezone.America.Araguaina=Châu Mỹ/Araguaina
+pref.timezone.America.Argentina.Buenos_Aires=Châu Mỹ/Argentina/Buenos Aires
+pref.timezone.America.Argentina.Catamarca=Châu Mỹ/Argentina/Catamarca
+pref.timezone.America.Argentina.Cordoba=Châu Mỹ/Argentina/Cordoba
+pref.timezone.America.Argentina.Jujuy=Châu Mỹ/Argentina/Jujuy
+pref.timezone.America.Argentina.La_Rioja=Châu Mỹ/Argentina/La Rioja
+pref.timezone.America.Argentina.Mendoza=Châu Mỹ/Argentina/Mendoza
+pref.timezone.America.Argentina.Rio_Gallegos=Châu Mỹ/Argentina/Rio Gallegos
+pref.timezone.America.Argentina.San_Juan=Châu Mỹ/Argentina/San Juan
+pref.timezone.America.Argentina.Tucuman=Châu Mỹ/Argentina/Tucuman
+pref.timezone.America.Argentina.Ushuaia=Châu Mỹ/Argentina/Ushuaia
+pref.timezone.America.Aruba=Châu Mỹ/Aruba
+pref.timezone.America.Asuncion=Châu Mỹ/Asuncion
+pref.timezone.America.Atikokan=Châu Mỹ/Atikokan
+pref.timezone.America.Bahia=Châu Mỹ/Bahia
+pref.timezone.America.Barbados=Châu Mỹ/Barbados
+pref.timezone.America.Belem=Châu Mỹ/Belem
+pref.timezone.America.Belize=Châu Mỹ/Belize
+pref.timezone.America.Blanc-Sablon=Châu Mỹ/Blanc-Sablon
+pref.timezone.America.Boa_Vista=Châu Mỹ/Boa Vista
+pref.timezone.America.Bogota=Châu Mỹ/Bogota
+pref.timezone.America.Boise=Châu Mỹ/Boise
+pref.timezone.America.Cambridge_Bay=Châu Mỹ/Cambridge Bay
+pref.timezone.America.Campo_Grande=Châu Mỹ/Campo Grande
+pref.timezone.America.Cancun=Châu Mỹ/Cancun
+pref.timezone.America.Caracas=Châu Mỹ/Caracas
+pref.timezone.America.Cayenne=Châu Mỹ/Cayenne
+pref.timezone.America.Cayman=Châu Mỹ/Cayman
+pref.timezone.America.Chicago=Châu Mỹ/Chicago
+pref.timezone.America.Chihuahua=Châu Mỹ/Chihuahua
+pref.timezone.America.Costa_Rica=Châu Mỹ/Costa Rica
+pref.timezone.America.Cuiaba=Châu Mỹ/Cuiaba
+pref.timezone.America.Curacao=Châu Mỹ/Curacao
+pref.timezone.America.Danmarkshavn=Châu Mỹ/Danmarkshavn
+pref.timezone.America.Dawson=Châu Mỹ/Dawson
+pref.timezone.America.Dawson_Creek=Châu Mỹ/Dawson Creek
+pref.timezone.America.Denver=Châu Mỹ/Denver
+pref.timezone.America.Detroit=Châu Mỹ/Detroit
+pref.timezone.America.Dominica=Châu Mỹ/Dominica
+pref.timezone.America.Edmonton=Châu Mỹ/Edmonton
+pref.timezone.America.Eirunepe=Châu Mỹ/Eirunepe
+pref.timezone.America.El_Salvador=Châu Mỹ/El Salvador
+pref.timezone.America.Fortaleza=Châu Mỹ/Fortaleza
+pref.timezone.America.Glace_Bay=Châu Mỹ/Glace Bay
+pref.timezone.America.Godthab=Châu Mỹ/Godthab
+pref.timezone.America.Goose_Bay=Châu Mỹ/Goose Bay
+pref.timezone.America.Grand_Turk=Châu Mỹ/Grand Turk
+pref.timezone.America.Grenada=Châu Mỹ/Grenada
+pref.timezone.America.Guadeloupe=Châu Mỹ/Guadeloupe
+pref.timezone.America.Guatemala=Châu Mỹ/Guatemala
+pref.timezone.America.Guayaquil=Châu Mỹ/Guayaquil
+pref.timezone.America.Guyana=Châu Mỹ/Guyana
+pref.timezone.America.Halifax=Châu Mỹ/Halifax
+pref.timezone.America.Havana=Châu Mỹ/Havana
+pref.timezone.America.Hermosillo=Châu Mỹ/Hermosillo
+pref.timezone.America.Indiana.Indianapolis=Châu Mỹ/Indiana/Indianapolis
+pref.timezone.America.Indiana.Knox=Châu Mỹ/Indiana/Knox
+pref.timezone.America.Indiana.Marengo=Châu Mỹ/Indiana/Marengo
+pref.timezone.America.Indiana.Petersburg=Châu Mỹ/Indiana/Petersburg
+pref.timezone.America.Indiana.Vevay=Châu Mỹ/Indiana/Vevay
+pref.timezone.America.Indiana.Vincennes=Châu Mỹ/Indiana/Vincennes
+pref.timezone.America.Inuvik=Châu Mỹ/Inuvik
+pref.timezone.America.Iqaluit=Châu Mỹ/Iqaluit
+pref.timezone.America.Jamaica=Châu Mỹ/Jamaica
+pref.timezone.America.Juneau=Châu Mỹ/Juneau
+pref.timezone.America.Kentucky.Louisville=Châu Mỹ/Kentucky/Louisville
+pref.timezone.America.Kentucky.Monticello=Châu Mỹ/Kentucky/Monticello
+pref.timezone.America.La_Paz=Châu Mỹ/La Paz
+pref.timezone.America.Lima=Châu Mỹ/Lima
+pref.timezone.America.Los_Angeles=Châu Mỹ/Los Angeles
+pref.timezone.America.Maceio=Châu Mỹ/Maceio
+pref.timezone.America.Managua=Châu Mỹ/Managua
+pref.timezone.America.Manaus=Châu Mỹ/Manaus
+pref.timezone.America.Martinique=Châu Mỹ/Martinique
+pref.timezone.America.Mazatlan=Châu Mỹ/Mazatlan
+pref.timezone.America.Menominee=Châu Mỹ/Menominee
+pref.timezone.America.Merida=Châu Mỹ/Merida
+pref.timezone.America.Mexico_City=Châu Mỹ/Mexico City
+pref.timezone.America.Miquelon=Châu Mỹ/Miquelon
+pref.timezone.America.Moncton=Châu Mỹ/Moncton
+pref.timezone.America.Monterrey=Châu Mỹ/Monterrey
+pref.timezone.America.Montevideo=Châu Mỹ/Montevideo
+pref.timezone.America.Montreal=Châu Mỹ/Montreal
+pref.timezone.America.Montserrat=Châu Mỹ/Montserrat
+pref.timezone.America.Nassau=Châu Mỹ/Nassau
+pref.timezone.America.New_York=Châu Mỹ/New York
+pref.timezone.America.Nipigon=Châu Mỹ/Nipigon
+pref.timezone.America.Nome=Châu Mỹ/Nome
+pref.timezone.America.Noronha=Châu Mỹ/Noronha
+pref.timezone.America.North_Dakota.Center=Châu Mỹ/North Dakota/Center
+pref.timezone.America.North_Dakota.New_Salem=Châu Mỹ/North Dakota/New Salem
+pref.timezone.America.Panama=Châu Mỹ/Panama
+pref.timezone.America.Pangnirtung=Châu Mỹ/Pangnirtung
+pref.timezone.America.Paramaribo=Châu Mỹ/Paramaribo
+pref.timezone.America.Phoenix=Châu Mỹ/Phoenix
+pref.timezone.America.Port-au-Prince=Châu Mỹ/Port-au-Prince
+pref.timezone.America.Port_of_Spain=Châu Mỹ/Port of Spain
+pref.timezone.America.Porto_Velho=Châu Mỹ/Porto Velho
+pref.timezone.America.Puerto_Rico=Châu Mỹ/Puerto Rico
+pref.timezone.America.Rainy_River=Châu Mỹ/Rainy River
+pref.timezone.America.Rankin_Inlet=Châu Mỹ/Rankin Inlet
+pref.timezone.America.Recife=Châu Mỹ/Recife
+pref.timezone.America.Regina=Châu Mỹ/Regina
+pref.timezone.America.Rio_Branco=Châu Mỹ/Rio Branco
+pref.timezone.America.Santiago=Châu Mỹ/Santiago
+pref.timezone.America.Santo_Domingo=Châu Mỹ/Santo Domingo
+pref.timezone.America.Sao_Paulo=Châu Mỹ/Sao Paulo
+pref.timezone.America.Scoresbysund=Châu Mỹ/Scoresbysund
+pref.timezone.America.Shiprock=Châu Mỹ/Shiprock
+pref.timezone.America.St_Johns=Châu Mỹ/St. Johns
+pref.timezone.America.St_Kitts=Châu Mỹ/St. Kitts
+pref.timezone.America.St_Lucia=Châu Mỹ/St. Lucia
+pref.timezone.America.St_Thomas=Châu Mỹ/St. Thomas
+pref.timezone.America.St_Vincent=Châu Mỹ/St. Vincent
+pref.timezone.America.Swift_Current=Châu Mỹ/Swift Current
+pref.timezone.America.Tegucigalpa=Châu Mỹ/Tegucigalpa
+pref.timezone.America.Thule=Châu Mỹ/Thule
+pref.timezone.America.Thunder_Bay=Châu Mỹ/Thunder Bay
+pref.timezone.America.Tijuana=Châu Mỹ/Tijuana
+pref.timezone.America.Toronto=Châu Mỹ/Toronto
+pref.timezone.America.Tortola=Châu Mỹ/Tortola
+pref.timezone.America.Vancouver=Châu Mỹ/Vancouver
+pref.timezone.America.Whitehorse=Châu Mỹ/Whitehorse
+pref.timezone.America.Winnipeg=Châu Mỹ/Winnipeg
+pref.timezone.America.Yakutat=Châu Mỹ/Yakutat
+pref.timezone.America.Yellowknife=Châu Mỹ/Yellowknife
+pref.timezone.Antarctica.Casey=Châu Nam Cực/Casey
+pref.timezone.Antarctica.Davis=Châu Nam Cực/Davis
+pref.timezone.Antarctica.DumontDUrville=Châu Nam Cực/DumontDUrville
+pref.timezone.Antarctica.Mawson=Châu Nam Cực/Mawson
+pref.timezone.Antarctica.McMurdo=Châu Nam Cực/McMurdo
+pref.timezone.Antarctica.Palmer=Châu Nam Cực/Palmer
+pref.timezone.Antarctica.Rothera=Châu Nam Cực/Rothera
+pref.timezone.Antarctica.South_Pole=Châu Nam Cực/South Pole
+pref.timezone.Antarctica.Syowa=Châu Nam Cực/Syowa
+pref.timezone.Antarctica.Vostok=Châu Nam Cực/Vostok
+pref.timezone.Arctic.Longyearbyen=Châu Bắc Cực/Longyearbyen
+pref.timezone.Asia.Aden=Châu Á/Aden
+pref.timezone.Asia.Almaty=Châu Á/Almaty
+pref.timezone.Asia.Amman=Châu Á/Amman
+pref.timezone.Asia.Anadyr=Châu Á/Anadyr
+pref.timezone.Asia.Aqtau=Châu Á/Aqtau
+pref.timezone.Asia.Aqtobe=Châu Á/Aqtobe
+pref.timezone.Asia.Ashgabat=Châu Á/Ashgabat
+pref.timezone.Asia.Baghdad=Châu Á/Baghdad
+pref.timezone.Asia.Bahrain=Châu Á/Bahrain
+pref.timezone.Asia.Baku=Châu Á/Baku
+pref.timezone.Asia.Bangkok=Châu Á/Băng Cốc
+pref.timezone.Asia.Beirut=Châu Á/Beirut
+pref.timezone.Asia.Bishkek=Châu Á/Bishkek
+pref.timezone.Asia.Brunei=Châu Á/Brunei
+pref.timezone.Asia.Choibalsan=Châu Á/Choibalsan
+pref.timezone.Asia.Chongqing=Châu Á/Chongqing
+pref.timezone.Asia.Colombo=Châu Á/Colombo
+pref.timezone.Asia.Damascus=Châu Á/Damascus
+pref.timezone.Asia.Dhaka=Châu Á/Dhaka
+pref.timezone.Asia.Dili=Châu Á/Dili
+pref.timezone.Asia.Dubai=Châu Á/Dubai
+pref.timezone.Asia.Dushanbe=Châu Á/Dushanbe
+pref.timezone.Asia.Gaza=Châu Á/Gaza
+pref.timezone.Asia.Harbin=Châu Á/Harbin
+pref.timezone.Asia.Hong_Kong=Châu Á/Hong Kong
+pref.timezone.Asia.Hovd=Châu Á/Hovd
+pref.timezone.Asia.Irkutsk=Châu Á/Irkutsk
+pref.timezone.Asia.Istanbul=Châu Á/Istanbul
+pref.timezone.Asia.Jakarta=Châu Á/Jakarta
+pref.timezone.Asia.Jayapura=Châu Á/Jayapura
+pref.timezone.Asia.Jerusalem=Châu Á/Jerusalem
+pref.timezone.Asia.Kabul=Châu Á/Kabul
+pref.timezone.Asia.Kamchatka=Châu Á/Kamchatka
+pref.timezone.Asia.Karachi=Châu Á/Karachi
+pref.timezone.Asia.Kashgar=Châu Á/Kashgar
+pref.timezone.Asia.Kathmandu=Châu Á/Kathmandu
+pref.timezone.Asia.Krasnoyarsk=Châu Á/Krasnoyarsk
+pref.timezone.Asia.Kuala_Lumpur=Châu Á/Kuala Lumpur
+pref.timezone.Asia.Kuching=Châu Á/Kuching
+pref.timezone.Asia.Kuwait=Châu Á/Kuwait
+pref.timezone.Asia.Macau=Châu Á/Macau
+pref.timezone.Asia.Magadan=Châu Á/Magadan
+pref.timezone.Asia.Makassar=Châu Á/Makassar
+pref.timezone.Asia.Manila=Châu Á/Manila
+pref.timezone.Asia.Muscat=Châu Á/Muscat
+pref.timezone.Asia.Nicosia=Châu Á/Nicosia
+pref.timezone.Asia.Novosibirsk=Châu Á/Novosibirsk
+pref.timezone.Asia.Omsk=Châu Á/Omsk
+pref.timezone.Asia.Oral=Châu Á/Oral
+pref.timezone.Asia.Phnom_Penh=Châu Á/Phnom Penh
+pref.timezone.Asia.Pontianak=Châu Á/Pontianak
+pref.timezone.Asia.Pyongyang=Châu Á/Pyongyang
+pref.timezone.Asia.Qatar=Châu Á/Qatar
+pref.timezone.Asia.Qyzylorda=Châu Á/Qyzylorda
+pref.timezone.Asia.Rangoon=Châu Á/Rangoon
+pref.timezone.Asia.Riyadh=Châu Á/Riyadh
+pref.timezone.Asia.Sakhalin=Châu Á/Sakhalin
+pref.timezone.Asia.Samarkand=Châu Á/Samarkand
+pref.timezone.Asia.Seoul=Châu Á/Seoul
+pref.timezone.Asia.Shanghai=Châu Á/Thượng Hải
+pref.timezone.Asia.Singapore=Châu Á/Singapore
+pref.timezone.Asia.Taipei=Châu Á/Taipei
+pref.timezone.Asia.Tashkent=Châu Á/Tashkent
+pref.timezone.Asia.Tbilisi=Châu Á/Tbilisi
+pref.timezone.Asia.Tehran=Châu Á/Tehran
+pref.timezone.Asia.Thimphu=Châu Á/Thimphu
+pref.timezone.Asia.Tokyo=Châu Á/Tokyo
+pref.timezone.Asia.Ulaanbaatar=Châu Á/Ulaanbaatar
+pref.timezone.Asia.Urumqi=Châu Á/Urumqi
+pref.timezone.Asia.Vientiane=Châu Á/Vientiane
+pref.timezone.Asia.Vladivostok=Châu Á/Vladivostok
+pref.timezone.Asia.Yakutsk=Châu Á/Yakutsk
+pref.timezone.Asia.Yekaterinburg=Châu Á/Yekaterinburg
+pref.timezone.Asia.Yerevan=Châu Á/Yerevan
+pref.timezone.Atlantic.Azores=Đại Tây Dương/Azores
+pref.timezone.Atlantic.Bermuda=Đại Tây Dương/Bermuda
+pref.timezone.Atlantic.Canary=Đại Tây Dương/Canary
+pref.timezone.Atlantic.Cape_Verde=Đại Tây Dương/Cape Verde
+pref.timezone.Atlantic.Faroe=Đại Tây Dương/Faroe
+pref.timezone.Atlantic.Madeira=Đại Tây Dương/Madeira
+pref.timezone.Atlantic.Reykjavik=Đại Tây Dương/Reykjavik
+pref.timezone.Atlantic.South_Georgia=Đại Tây Dương/South Georgia
+pref.timezone.Atlantic.St_Helena=Đại Tây Dương/St. Helena
+pref.timezone.Atlantic.Stanley=Đại Tây Dương/Stanley
+pref.timezone.Australia.Adelaide=Châu Úc/Adelaide
+pref.timezone.Australia.Brisbane=Châu Úc/Brisbane
+pref.timezone.Australia.Broken_Hill=Châu Úc/Broken Hill
+pref.timezone.Australia.Currie=Châu Úc/Currie
+pref.timezone.Australia.Darwin=Châu Úc/Darwin
+pref.timezone.Australia.Eucla=Châu Úc/Eucla
+pref.timezone.Australia.Hobart=Châu Úc/Hobart
+pref.timezone.Australia.Lindeman=Châu Úc/Lindeman
+pref.timezone.Australia.Lord_Howe=Châu Úc/Lord Howe
+pref.timezone.Australia.Melbourne=Châu Úc/Melbourne
+pref.timezone.Australia.Perth=Châu Úc/Perth
+pref.timezone.Australia.Sydney=Châu Úc/Sydney
+pref.timezone.Europe.Amsterdam=Châu Âu/Amsterdam
+pref.timezone.Europe.Andorra=Châu Âu/Andorra
+pref.timezone.Europe.Athens=Châu Âu/Athens
+pref.timezone.Europe.Belgrade=Châu Âu/Belgrade
+pref.timezone.Europe.Berlin=Châu Âu/Berlin
+pref.timezone.Europe.Bratislava=Châu Âu/Bratislava
+pref.timezone.Europe.Brussels=Châu Âu/Brussels
+pref.timezone.Europe.Bucharest=Châu Âu/Bucharest
+pref.timezone.Europe.Budapest=Châu Âu/Budapest
+pref.timezone.Europe.Chisinau=Châu Âu/Chisinau
+pref.timezone.Europe.Copenhagen=Châu Âu/Copenhagen
+pref.timezone.Europe.Dublin=Châu Âu/Dublin
+pref.timezone.Europe.Gibraltar=Châu Âu/Gibraltar
+pref.timezone.Europe.Guernsey=Châu Âu/Guernsey
+pref.timezone.Europe.Helsinki=Châu Âu/Helsinki
+pref.timezone.Europe.Isle_of_Man=Châu Âu/Đảo Man
+pref.timezone.Europe.Istanbul=Châu Âu/Istanbul
+pref.timezone.Europe.Jersey=Châu Âu/Jersey
+pref.timezone.Europe.Kaliningrad=Châu Âu/Kaliningrad
+pref.timezone.Europe.Kiev=Châu Âu/Kiev
+pref.timezone.Europe.Lisbon=Châu Âu/Lisbon
+pref.timezone.Europe.Ljubljana=Châu Âu/Ljubljana
+pref.timezone.Europe.London=Châu Âu/Luân Đôn
+pref.timezone.Europe.Luxembourg=Châu Âu/Luxembourg
+pref.timezone.Europe.Madrid=Châu Âu/Madrid
+pref.timezone.Europe.Malta=Châu Âu/Malta
+pref.timezone.Europe.Mariehamn=Châu Âu/Mariehamn
+pref.timezone.Europe.Minsk=Châu Âu/Minsk
+pref.timezone.Europe.Monaco=Châu Âu/Monaco
+pref.timezone.Europe.Moscow=Châu Âu/Mátxcơva
+pref.timezone.Europe.Nicosia=Châu Âu/Nicosia
+pref.timezone.Europe.Oslo=Châu Âu/Oslo
+pref.timezone.Europe.Paris=Châu Âu/Paris
+pref.timezone.Europe.Podgorica=Châu Âu/Podgorica
+pref.timezone.Europe.Prague=Châu Âu/Prague
+pref.timezone.Europe.Riga=Châu Âu/Riga
+pref.timezone.Europe.Rome=Châu Âu/Rome
+pref.timezone.Europe.Samara=Châu Âu/Samara
+pref.timezone.Europe.San_Marino=Châu Âu/San Marino
+pref.timezone.Europe.Sarajevo=Châu Âu/Sarajevo
+pref.timezone.Europe.Simferopol=Châu Âu/Simferopol
+pref.timezone.Europe.Skopje=Châu Âu/Skopje
+pref.timezone.Europe.Sofia=Châu Âu/Sofia
+pref.timezone.Europe.Stockholm=Châu Âu/Stockholm
+pref.timezone.Europe.Tallinn=Châu Âu/Tallinn
+pref.timezone.Europe.Tirane=Châu Âu/Tirane
+pref.timezone.Europe.Uzhgorod=Châu Âu/Uzhgorod
+pref.timezone.Europe.Vaduz=Châu Âu/Vaduz
+pref.timezone.Europe.Vatican=Châu Âu/Vatican
+pref.timezone.Europe.Vienna=Châu Âu/Vienna
+pref.timezone.Europe.Vilnius=Châu Âu/Vilnius
+pref.timezone.Europe.Volgograd=Châu Âu/Volgograd
+pref.timezone.Europe.Warsaw=Châu Âu/Warsaw
+pref.timezone.Europe.Zagreb=Châu Âu/Zagreb
+pref.timezone.Europe.Zaporozhye=Châu Âu/Zaporozhye
+pref.timezone.Europe.Zurich=Châu Âu/Zurich
+pref.timezone.Indian.Antananarivo=Ấn Độ Dương/Antananarivo
+pref.timezone.Indian.Chagos=Ấn Độ Dương/Chagos
+pref.timezone.Indian.Christmas=Ấn Độ Dương/Christmas
+pref.timezone.Indian.Cocos=Ấn Độ Dương/Cocos
+pref.timezone.Indian.Comoro=Ấn Độ Dương/Comoro
+pref.timezone.Indian.Kerguelen=Ấn Độ Dương/Kerguelen
+pref.timezone.Indian.Mahe=Ấn Độ Dương/Mahe
+pref.timezone.Indian.Maldives=Ấn Độ Dương/Maldives
+pref.timezone.Indian.Mauritius=Ấn Độ Dương/Mauritius
+pref.timezone.Indian.Mayotte=Ấn Độ Dương/Mayotte
+pref.timezone.Indian.Reunion=Ấn Độ Dương/Reunion
+pref.timezone.Pacific.Apia=Thái Bình Dương/Apia
+pref.timezone.Pacific.Auckland=Thái Bình Dương/Auckland
+pref.timezone.Pacific.Chatham=Thái Bình Dương/Chatham
+pref.timezone.Pacific.Easter=Thái Bình Dương/Easter
+pref.timezone.Pacific.Efate=Thái Bình Dương/Efate
+pref.timezone.Pacific.Enderbury=Thái Bình Dương/Enderbury
+pref.timezone.Pacific.Fakaofo=Thái Bình Dương/Fakaofo
+pref.timezone.Pacific.Fiji=Thái Bình Dương/Fiji
+pref.timezone.Pacific.Funafuti=Thái Bình Dương/Funafuti
+pref.timezone.Pacific.Galapagos=Thái Bình Dương/Galapagos
+pref.timezone.Pacific.Gambier=Thái Bình Dương/Gambier
+pref.timezone.Pacific.Guadalcanal=Thái Bình Dương/Guadalcanal
+pref.timezone.Pacific.Guam=Thái Bình Dương/Guam
+pref.timezone.Pacific.Honolulu=Thái Bình Dương/Honolulu
+pref.timezone.Pacific.Johnston=Thái Bình Dương/Johnston
+pref.timezone.Pacific.Kiritimati=Thái Bình Dương/Kiritimati
+pref.timezone.Pacific.Kosrae=Thái Bình Dương/Kosrae
+pref.timezone.Pacific.Kwajalein=Thái Bình Dương/Kwajalein
+pref.timezone.Pacific.Majuro=Thái Bình Dương/Majuro
+pref.timezone.Pacific.Marquesas=Thái Bình Dương/Marquesas
+pref.timezone.Pacific.Midway=Thái Bình Dương/Midway
+pref.timezone.Pacific.Nauru=Thái Bình Dương/Nauru
+pref.timezone.Pacific.Niue=Thái Bình Dương/Niue
+pref.timezone.Pacific.Norfolk=Thái Bình Dương/Norfolk
+pref.timezone.Pacific.Noumea=Thái Bình Dương/Noumea
+pref.timezone.Pacific.Pago_Pago=Thái Bình Dương/Pago Pago
+pref.timezone.Pacific.Palau=Thái Bình Dương/Palau
+pref.timezone.Pacific.Pitcairn=Thái Bình Dương/Pitcairn
+pref.timezone.Pacific.Ponape=Thái Bình Dương/Ponape
+pref.timezone.Pacific.Port_Moresby=Thái Bình Dương/Port Moresby
+pref.timezone.Pacific.Rarotonga=Thái Bình Dương/Rarotonga
+pref.timezone.Pacific.Saipan=Thái Bình Dương/Saipan
+pref.timezone.Pacific.Tahiti=Thái Bình Dương/Tahiti
+pref.timezone.Pacific.Tarawa=Thái Bình Dương/Tarawa
+pref.timezone.Pacific.Tongatapu=Thái Bình Dương/Tongatapu
+pref.timezone.Pacific.Truk=Thái Bình Dương/Truk
+pref.timezone.Pacific.Wake=Thái Bình Dương/Wake
+pref.timezone.Pacific.Wallis=Thái Bình Dương/Wallis
+
+# the following have been missing
+pref.timezone.America.Indiana.Tell_City=Châu Mỹ/Indiana/Tell City
+pref.timezone.America.Indiana.Winamac=Châu Mỹ/Indiana/Winamac
+pref.timezone.America.Marigot=Châu Mỹ/Marigot
+pref.timezone.America.Resolute=Châu Mỹ/Resolute
+pref.timezone.America.St_Barthelemy=Châu Mỹ/St. Barthelemy
+
+# added with 2008d:
+pref.timezone.America.Argentina.San_Luis=Châu Mỹ/Argentina/San Luis
+pref.timezone.America.Santarem=Châu Mỹ/Santarem
+pref.timezone.Asia.Ho_Chi_Minh=Châu Á/Hồ Chí Minh
+pref.timezone.Asia.Kolkata=Châu Á/Kolkata
+
+# added with 2008i:
+pref.timezone.America.Argentina.Salta=Châu Mỹ/Argentina/Salta
+
+# added with 2010i
+pref.timezone.America.Matamoros=Châu Mỹ/Matamoros
+pref.timezone.America.Ojinaga=Châu Mỹ/Ojinaga
+pref.timezone.America.Santa_Isabel=Châu Mỹ/Santa Isabel
+pref.timezone.Antarctica.Macquarie=Châu Nam Cực/Macquarie
+pref.timezone.Asia.Novokuznetsk=Châu Á/Novokuznetsk
+
+#added with 2011b
+pref.timezone.America.Bahia_Banderas=Châu Mỹ/Bahia Banderas
+pref.timezone.America.North_Dakota.Beulah=Châu Mỹ/North Dakota/Beulah
+pref.timezone.Pacific.Chuuk=Thái Bình Dương/Chuuk
+pref.timezone.Pacific.Pohnpei=Thái Bình Dương/Ponape
+
+#added with 2011n
+pref.timezone.Africa.Juba=Châu Phi/Juba
+pref.timezone.America.Kralendijk=Châu Mỹ/Kralendijk
+pref.timezone.America.Lower_Princes=Châu Mỹ/Lower Princes
+pref.timezone.America.Metlakatla=Châu Mỹ/Metlakatla
+pref.timezone.America.Sitka=Châu Mỹ/Sitka
+pref.timezone.Asia.Hebron=Châu Á/Hebron
+
+#added with 2013a
+pref.timezone.America.Creston=Châu Mỹ/Creston
+pref.timezone.Asia.Khandyga=Châu Á/Khandyga
+pref.timezone.Asia.Ust-Nera=Châu Á/Ust-Nera
+pref.timezone.Europe.Busingen=Châu Âu/Busingen
+
+#added with 2014b
+pref.timezone.Antarctica.Troll=Châu Nam Cực/Troll
+
+#added with 2014j
+pref.timezone.Asia.Chita=Châu Á/Chita
+pref.timezone.Asia.Srednekolymsk=Châu Á/Srednekolymsk
+pref.timezone.Pacific.Bougainville=Thái Bình Dương/Bougainville
+
+#added with 2.2015g
+pref.timezone.America.Fort_Nelson=Châu Mỹ/Fort Nelson
+
+#added with 2.2016b
+pref.timezone.Europe.Ulyanovsk=Châu Âu/Ulyanovsk
+pref.timezone.Europe.Astrakhan=Châu Âu/Astrakhan
+pref.timezone.Asia.Barnaul=Châu Á/Barnaul
+
+#added with 2.2016i
+pref.timezone.Asia.Yangon=Châu Á/Yangon
+pref.timezone.Asia.Tomsk=Châu Á/Tomsk
+pref.timezone.Asia.Famagusta=Châu Á/Famagusta
+pref.timezone.Europe.Kirov=Châu Âu/Kirov
+
+#added with 2.2016j
+pref.timezone.Europe.Saratov=Châu Âu/Saratov
+pref.timezone.Asia.Atyrau=Châu Á/Atyrau
+
+#added with 2.2017b
+pref.timezone.America.Punta_Arenas=Châu Mỹ/Punta Arenas
+
+#added with 2.2018i
+pref.timezone.Asia.Qostanay=Châu Á/Qostanay
+
+#added with 2.2020a
+pref.timezone.America.Nuuk=Mỹ/Nuuk
+
+#added with 2.2021c
+pref.timezone.Pacific.Kanton=Thái Bình Dương/Kanton
+
+#added with 2.2022b
+pref.timezone.Europe.Kyiv=Châu Âu/Kyiv
diff --git a/l10n-vi/calendar/chrome/lightning/lightning-toolbar.dtd b/l10n-vi/calendar/chrome/lightning/lightning-toolbar.dtd
new file mode 100644
index 0000000000..1d8bef9ff5
--- /dev/null
+++ b/l10n-vi/calendar/chrome/lightning/lightning-toolbar.dtd
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/l10n-vi/calendar/chrome/lightning/lightning.dtd b/l10n-vi/calendar/chrome/lightning/lightning.dtd
new file mode 100644
index 0000000000..3ca5da35a1
--- /dev/null
+++ b/l10n-vi/calendar/chrome/lightning/lightning.dtd
@@ -0,0 +1,114 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/l10n-vi/calendar/chrome/lightning/lightning.properties b/l10n-vi/calendar/chrome/lightning/lightning.properties
new file mode 100644
index 0000000000..f4819f71db
--- /dev/null
+++ b/l10n-vi/calendar/chrome/lightning/lightning.properties
@@ -0,0 +1,201 @@
+# 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/.
+
+# addon description:
+extensions.{e2fda1a4-762b-4020-b5ad-a41df1933103}.name=Lightning
+extensions.{e2fda1a4-762b-4020-b5ad-a41df1933103}.description=Bộ lịch tích hợp cho Thunderbird
+extensions.{e2fda1a4-762b-4020-b5ad-a41df1933103}.creator=Dự án Mozilla Calendar
+
+# Lightning branding
+brandShortName=Lightning
+
+# Task mode title
+taskModeApplicationTitle=Nhiệm vụ
+
+# Tab titles
+tabTitleCalendar=Lịch
+tabTitleTasks=Nhiệm vụ
+
+# Html event display in message
+imipHtml.header=Lời mời sự kiện
+imipHtml.summary=Tiêu đề:
+imipHtml.location=Địa chỉ:
+imipHtml.when=Lúc:
+imipHtml.organizer=Người tổ chức:
+imipHtml.description=Mô tả:
+# LOCALIZATION_NOTE(imipHtml.attachments): This is a label for one or more (additional) links to
+# documents or websites attached to this event.
+imipHtml.attachments=Đính kèm:
+imipHtml.comment=Bình luận:
+imipHtml.attendees=Người tham dự:
+# LOCALIZATION_NOTE(imipHtml.url): This is a label for a reference to an (alternate) online
+# representation of the event (either directly human readable or not).
+imipHtml.url=Liên kết liên quan:
+imipHtml.canceledOccurrences=Sự cố bị hủy:
+imipHtml.modifiedOccurrences=Lần xuất hiện sửa đổi:
+imipHtml.newLocation=Địa chỉ mới: %1$S
+# LOCALIZATION_NOTE(imipHtml.attendeeDelegatedFrom): this is appended behind an attendee name in the
+# email invitation preview - don't add leading/trailing whitespaces here
+# %1$S - a single delegator or a comma separated list of delegators
+imipHtml.attendeeDelegatedFrom=(được ủy quyền từ %1$S)
+# LOCALIZATION_NOTE(imipHtml.attendeeDelegatedTo): this is appended behind an attendee name in the
+# email invitation preview - don't add leading/trailing whitespaces here
+# %1$S - a single delegatee or a comma separated list of delegatees
+imipHtml.attendeeDelegatedTo=(được ủy quyền cho %1$S)
+
+# LOCALIZATION_NOTE(imipHtml.attendee.combined): tooltip for itip icon in email invitation preview.
+# Given an attendee loungeexample.org of type room is a mandatory participant and has accepted the
+# invitation, the tooltip would be:
+# lounge@example.org (room) is a required participant. lounge@example.org has confirmed attendance.
+# %1$S - value of imipHtml.attendeeRole2.*
+# %2$S - value of imipHtml.attendeePartStat2.*
+imipHtml.attendee.combined=%1$S %2$S
+
+# LOCALIZATION_NOTE(imipHtml.attendeeRole2.CHAIR): used to compose
+# imipHtml.attendee.combined
+# %1$S - value of imipHtml.attendeeUserType2.*
+imipHtml.attendeeRole2.CHAIR=%1$S chủ trì sự kiện.
+# LOCALIZATION_NOTE(imipHtml.attendeeRole2.NON-PARTICIPANT): used to compose
+# imipHtml.attendee.combined
+# %1$S - value of imipHtml.attendeeUserType2.*
+imipHtml.attendeeRole2.NON-PARTICIPANT=%1$S là người không tham dự.
+# LOCALIZATION_NOTE(imipHtml.attendeeRole2.OPT-PARTICIPANT): used to compose
+# imipHtml.attendee.combined
+# %1$S - value of imipHtml.attendeeUserType2.*
+imipHtml.attendeeRole2.OPT-PARTICIPANT=%1$S là người tham dự tùy chọn.
+# LOCALIZATION_NOTE(imipHtml.attendeeRole2.REQ-PARTICIPANT): used to compose
+# imipHtml.attendee.combined
+# %1$S - value of imipHtml.attendeeUserType2.*
+imipHtml.attendeeRole2.REQ-PARTICIPANT=%1$S là người tham dự bắt buộc.
+
+# LOCALIZATION_NOTE(imipHtml.attendeePartStat2.ACCEPTED): used to compose
+# imipHtml.attendee.combined
+# %1$S - common name or email address of the attendee
+imipHtml.attendeePartStat2.ACCEPTED=%1$S đã xác nhận tham dự.
+# LOCALIZATION_NOTE(imipHtml.attendeePartStat2.DECLINED): used to compose
+# imipHtml.attendee.combined
+# %1$S - common name or email address of the attendee
+imipHtml.attendeePartStat2.DECLINED=%1$S đã từ chối tham dự.
+# LOCALIZATION_NOTE(imipHtml.attendeePartStat2.DELEGATED): used to compose
+# imipHtml.attendee.combined
+# %1$S - common name or email address of the attendee
+# %2$S - single delegatee or comma separated list of delegatees
+# delegation is different from invitation forwarding - in case of the former the original attendee
+# is replaced, while on the latter the receiver may take part additionally
+imipHtml.attendeePartStat2.DELEGATED=%1$S đã ủy quyền tham dự cho %2$S.
+# LOCALIZATION_NOTE(imipHtml.attendeePartStat2.NEEDS-ACTION): used to compose
+# imipHtml.attendee.combined
+# %1$S - common name or email address of the attendee
+imipHtml.attendeePartStat2.NEEDS-ACTION=%1$S vẫn cần trả lời.
+# LOCALIZATION_NOTE(imipHtml.attendeePartStat2.TENTATIVE): used to compose
+# imipHtml.attendee.combined
+# %1$S - common name or email address of the attendee
+imipHtml.attendeePartStat2.TENTATIVE=%1$S đã xác nhận tham dự dự kiến.
+
+# LOCALIZATION_NOTE(imipHtml.attendeeUserType2.INDIVIDUAL): used to compose
+# imipHtml.attendeeRole2.*
+# %1$S - email address or common name representing an individual attendee
+imipHtml.attendeeUserType2.INDIVIDUAL=%1$S
+# LOCALIZATION_NOTE(imipHtml.attendeeUserType2.GROUP): used to compose
+# imipHtml.attendeeRole2.*
+# %1$S - email address or common name representing a group (e.g. a distribution list)
+imipHtml.attendeeUserType2.GROUP=%1$S (nhóm)
+# LOCALIZATION_NOTE(imipHtml.attendeeUserType2.RESOURCE): used to compose
+# imipHtml.attendeeRole2.*
+# %1$S - email address or common name representing a resource (e.g. projector)
+imipHtml.attendeeUserType2.RESOURCE=%1$S (tài nguyên)
+# LOCALIZATION_NOTE(imipHtml.attendeeUserType2.ROOM): used to compose
+# imipHtml.attendeeRole2.*
+# %1$S - email address or common name representing a room
+imipHtml.attendeeUserType2.ROOM=%1$S (phòng)
+# LOCALIZATION_NOTE(imipHtml.attendeeUserType2.UNKNOWN): used to compose
+# imipHtml.attendeeRole2.*
+# %1$S - email address or common name representing an attendee of unknown type
+imipHtml.attendeeUserType2.UNKNOWN=%1$S
+
+imipAddedItemToCal2=Sự kiện này đã được thêm vào lịch của bạn.
+imipCanceledItem2=Sự kiện này đã bị xóa khỏi lịch của bạn.
+imipUpdatedItem2=Sự kiện này đã được cập nhật.
+imipBarCancelText=Thư này có chứa sự kiện hủy bỏ.
+imipBarCounterErrorText=Thư này có chứa phản hồi lời mời không thể xử lý.
+imipBarCounterPreviousVersionText=Thư này có chứa phản hồi cho phiên bản trước của lời mời.
+imipBarCounterText=Thư này có chứa phản hồi cho một lời mời.
+imipBarDisallowedCounterText=Thông báo này có chứa phản hồi mặc dù bạn không cho phép phản đối sự kiện này.
+imipBarDeclineCounterText=Thông báo này có chứa một phản hồi cho phản hồi của bạn.
+imipBarRefreshText=Thư này yêu cầu cập nhật sự kiện.
+imipBarPublishText=Thư này chứa một sự kiện.
+imipBarRequestText=Thư này chứa lời mời tham dự một sự kiện.
+imipBarSentText=Thư này chứa một sự kiện gửi.
+imipBarSentButRemovedText=Thư này chứa một sự kiện được gửi đi không có trong lịch của bạn nữa.
+imipBarUpdateText=Thư này chứa bản cập nhật cho một sự kiện hiện có.
+imipBarUpdateMultipleText=Thư này chứa các bản cập nhật cho nhiều sự kiện hiện có.
+imipBarUpdateSeriesText=Thư này chứa một bản cập nhật cho một chuỗi các sự kiện hiện có.
+imipBarAlreadyProcessedText=Thư này chứa một sự kiện đã được xử lí.
+imipBarProcessedNeedsAction=Thư này chứa một sự kiện mà bạn chưa phản hồi.
+imipBarProcessedMultipleNeedsAction=Thư này chứa nhiều sự kiện mà bạn chưa phản hồi.
+imipBarProcessedSeriesNeedsAction=Thư này chứa một chuỗi sự kiện mà bạn chưa phản hồi.
+imipBarReplyText=Thư này chứa trả lời cho một lời mời.
+imipBarReplyToNotExistingItem=Thư này chứa một câu trả lời đề cập đến một sự kiện không có trong lịch của bạn.
+# LOCALIZATION_NOTE(imipBarReplyToRecentlyRemovedItem):
+# %1$S - datetime of deletion
+imipBarReplyToRecentlyRemovedItem=Thư này chứa một câu trả lời đề cập đến một sự kiện đã bị xóa khỏi lịch của bạn ở %1$S.
+imipBarUnsupportedText=Thư này chứa một sự kiện mà phiên bản Lightning này không thể xử lí.
+imipBarUnsupportedText2=Thư này chứa một sự kiện mà phiên bản %1$S này không thể xử lí.
+imipBarProcessingFailed=Thất bại khi xử lí thư. Trạng thái: %1$S.
+imipBarCalendarDeactivated=Thông báo này chứa thông tin sự kiện. Cho phép một lịch để xử lý nó.
+imipBarNotWritable=Không có lịch nago có thể ghi được cấu hình cho lời mời, vui lòng kiểm tra các thuộc tính lịch.
+imipSendMail.title=Thông báo Email
+imipSendMail.text=Bạn có muốn gửi thông báo Email ngay bây giờ không?
+imipNoIdentity=Không có
+imipNoCalendarAvailable=Không có trang lịch nào có thể ghi được.
+
+itipReplySubject2=Trả lời lời mời: %1$S
+itipReplyBodyAccept=%1$S đã chấp nhận thư mời tham dự sự kiện của bạn.
+itipReplyBodyDecline=%1$S đã từ chối thư mời tham dự sự kiện của bạn.
+itipReplySubjectAccept2=Đã chấp nhận: %1$S
+itipReplySubjectDecline2=Lời mời bị từ chối: %1$S
+itipReplySubjectTentative2=Dự kiến: %1$S
+itipRequestSubject2=Lời mời: %1$S
+itipRequestUpdatedSubject2=Đã cập nhật: %1$S
+itipRequestBody=%1$S mời bạn tham dự %2$S
+itipCancelSubject2=Đã hủy bỏ: %1$S
+itipCancelBody=%1$S đã hủy bỏ sự kiện này: %2$S
+itipCounterBody=%1$S đã đưa ra phản hồi cho "%2$S":
+itipDeclineCounterBody=%1$S đã từ chối phản hồi của bạn cho "%2$S".
+itipDeclineCounterSubject=Từ chối phản hồi: %1$S
+
+confirmProcessInvitation=Gần đây bạn đã xóa mục này, bạn có chắc chắn muốn xử lý lời mời này?
+confirmProcessInvitationTitle=Bạn có muốn tiếp tục mời?
+
+invitationsLink.label=Lời mời: %1$S
+
+# LOCALIZATION_NOTE(binaryComponentKnown): This is shown when Lightning is
+# missing the binary component and knows how to calculate the expected version
+# number. To test, remove the binary component from the components/
+# subdirectory and start Lightning, or force install into a different
+# Thunderbird version. In the last part of the sentence it should be made clear
+# that the user can install e.g. 3.7, 3.7.1 or anything other 3.7.x version
+# %1$S - The Lightning brand name, from the brandShortName string above.
+# %2$S - The current Lightning version
+# %3$S - The expected Lightning version
+binaryComponentKnown=Không thể tải được thành phần nhị phân cần thiết cho %1$S, có thể do kết hợp phiên bản sai đang được sử dụng. Hiện tại bạn đã cài đặt %1$S %2$S, nhưng nên sử dụng phiên bản %3$S.
+
+# LOCALIZATION_NOTE(binaryComponentUnknown): This is shown when Lightning is
+# missing the binary component but can't calculate the expected version. This
+# happens in the rare case that Lightning is installed into something other
+# than Thunderbird or Seamonkey. You may link to a different page if you can
+# commit to keeping it up to date, I'd recommend staying with the English page.
+# %1$S - The Lightning brand name, from the brandShortName string above.
+# %2$S - The application brand name, e.g. Postbox
+# %3$S - The application version
+# %3$S - The current Lightning version
+binaryComponentUnknown=Không thể tải được thành phần nhị phân cần thiết cho %1$S, có thể do kết hợp phiên bản sai đang được sử dụng. Bạn đang sử dụng %2$S %3$S cùng với %1$S %4$S. Vui lòng kiểm tra tại https://developer.mozilla.org/en/Calendar/Calendar_Versions để biết thêm chi tiết.
+
+# LOCALIZATION_NOTE(binaryComponentTitle): The title for the dialog that
+# notifies about a version mismatch.
+# %1$S - The Lightning brand name, from the brandShortName string above.
+binaryComponentTitle=Phiên bản %1$S không khớp
+
+# LOCALIZATION NOTE(noIdentitySelectedNotification):
+noIdentitySelectedNotification=Nếu bạn muốn sử dụng lịch này để lưu trữ lời mời đến hoặc từ những người khác, bạn nên chỉ định một danh tính email bên dưới.
diff --git a/l10n-vi/calendar/extra-jar.mn b/l10n-vi/calendar/extra-jar.mn
new file mode 100644
index 0000000000..591237101e
--- /dev/null
+++ b/l10n-vi/calendar/extra-jar.mn
@@ -0,0 +1,8 @@
+# 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/.
+
+# this is an empty file
+# locales can ship "extra" files from here, to ship a custom set
+# of files for the help system
+# do not put any blank lines in this file
diff --git a/l10n-vi/calendar/lightning-l10n.js b/l10n-vi/calendar/lightning-l10n.js
new file mode 100644
index 0000000000..e91920b0bb
--- /dev/null
+++ b/l10n-vi/calendar/lightning-l10n.js
@@ -0,0 +1,23 @@
+# 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/.
+
+#filter substitution
+
+# the default day to start the week on
+#0=Sunday 1=Monday 2=Tuesday 3=Wednesday 4=Thursday 5=Friday 6=Saturday
+pref("calendar.week.start", 0);
+
+# default days off (not in work week)
+pref("calendar.week.d0sundaysoff", true);
+pref("calendar.week.d1mondaysoff", false);
+pref("calendar.week.d2tuesdaysoff", false);
+pref("calendar.week.d3wednesdaysoff", false);
+pref("calendar.week.d4thursdaysoff", false);
+pref("calendar.week.d5fridaysoff", false);
+pref("calendar.week.d6saturdaysoff", true);
+
+pref("general.useragent.locale", "@AB_CD@");
+
+# categories
+pref("calendar.categories.names", "Lễ kỉ niệm,Sinh nhật,Kinh doanh,Cuộc gọi,Khách hàng,Thi thố,Ưa thích,Theo dõi,Quà tặng,Ngày lễ,Ý kiến,Vấn đề,Họp mặt,Linh tinh,Cá nhân,Dự án,Ngày lễ Công cộng,Trạng thái,Nhà cung cấp,Du lịch,Tham quan");
diff --git a/l10n-vi/calendar/sunbird-l10n.js b/l10n-vi/calendar/sunbird-l10n.js
new file mode 100644
index 0000000000..e91920b0bb
--- /dev/null
+++ b/l10n-vi/calendar/sunbird-l10n.js
@@ -0,0 +1,23 @@
+# 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/.
+
+#filter substitution
+
+# the default day to start the week on
+#0=Sunday 1=Monday 2=Tuesday 3=Wednesday 4=Thursday 5=Friday 6=Saturday
+pref("calendar.week.start", 0);
+
+# default days off (not in work week)
+pref("calendar.week.d0sundaysoff", true);
+pref("calendar.week.d1mondaysoff", false);
+pref("calendar.week.d2tuesdaysoff", false);
+pref("calendar.week.d3wednesdaysoff", false);
+pref("calendar.week.d4thursdaysoff", false);
+pref("calendar.week.d5fridaysoff", false);
+pref("calendar.week.d6saturdaysoff", true);
+
+pref("general.useragent.locale", "@AB_CD@");
+
+# categories
+pref("calendar.categories.names", "Lễ kỉ niệm,Sinh nhật,Kinh doanh,Cuộc gọi,Khách hàng,Thi thố,Ưa thích,Theo dõi,Quà tặng,Ngày lễ,Ý kiến,Vấn đề,Họp mặt,Linh tinh,Cá nhân,Dự án,Ngày lễ Công cộng,Trạng thái,Nhà cung cấp,Du lịch,Tham quan");
diff --git a/l10n-vi/chat/accounts.dtd b/l10n-vi/chat/accounts.dtd
new file mode 100644
index 0000000000..cedf72f383
--- /dev/null
+++ b/l10n-vi/chat/accounts.dtd
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/l10n-vi/chat/accounts.properties b/l10n-vi/chat/accounts.properties
new file mode 100644
index 0000000000..ec6d816317
--- /dev/null
+++ b/l10n-vi/chat/accounts.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/.
+
+# LOCALIZATION NOTE (passwordPromptTitle, passwordPromptText):
+# %S is replaced with the name of the account
+passwordPromptTitle=Mật khẩu cho %S
+passwordPromptText=Vui lòng nhập mật khẩu của bạn cho %S để kết nối nó.
+passwordPromptSaveCheckbox=Dùng trình quản lý mật khẩu để ghi nhớ mật khẩu này.
diff --git a/l10n-vi/chat/commands.properties b/l10n-vi/chat/commands.properties
new file mode 100644
index 0000000000..7b136a24b2
--- /dev/null
+++ b/l10n-vi/chat/commands.properties
@@ -0,0 +1,27 @@
+# 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 (commands):
+# %S is a comma separated list of command names.
+commands=Các lệnh: %S.\nSử dụng <lệnh> /help để biết thêm thông tin.
+# LOCALIZATION NOTE (noCommand, noHelp):
+# %S is the command name the user typed.
+noCommand=Không có lệnh '%S'.
+noHelp=Không có trợ giúp cho lệnh '%S', xin lỗi!
+
+sayHelpString=say <message>: gửi tin nhắn mà không xử lý lệnh.
+rawHelpString=raw <nội dung tin nhắn>: gửi một tin nhắn mà không escape các thẻ HTML.
+helpHelpString=help <tên lệnh>: hiển thị trợ giúp với lệnh <tên lệnh>, hoặc danh sách các lệnh có thể sử dụng nếu không truyền tham số.
+
+# LOCALIZATION NOTE (statusCommand):
+# %1$S is replaced with a status command name
+# (one of "back", "away", "busy", "dnd", or "offline").
+# %2$S is replaced with the localized version of that status type
+# (one of the 5 strings below).
+statusCommand=%1$S <thông báo trạng thái>: đặt trạng thái cho %2$S với một thông báo trạng thái tùy chọn.
+back=khả dụng
+away=vắng mặt
+busy=không khả dụng
+dnd=không khả dụng
+offline=ngoại tuyến
diff --git a/l10n-vi/chat/contacts.properties b/l10n-vi/chat/contacts.properties
new file mode 100644
index 0000000000..a0f94fc7ae
--- /dev/null
+++ b/l10n-vi/chat/contacts.properties
@@ -0,0 +1,8 @@
+# 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 (defaultGroup):
+# This is the name of the group that will automatically be created when adding a
+# buddy without specifying a group.
+defaultGroup=Liên hệ
diff --git a/l10n-vi/chat/conversations.properties b/l10n-vi/chat/conversations.properties
new file mode 100644
index 0000000000..4ebbe3788d
--- /dev/null
+++ b/l10n-vi/chat/conversations.properties
@@ -0,0 +1,80 @@
+# 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 (targetChanged):
+# %1$S is the new conversation title (display name of the new target),
+# %2$S is the protocol name used for the new target.
+targetChanged=Cuộc trò chuyện sẽ tiếp tục với %1$S, sử dụng %2$S.
+
+# LOCALIZATION NOTE (statusChanged):
+# %1$S is the display name of the contact.
+# %2$S is the new status type (a value from status.properties).
+statusChanged=%1$S hiện là %2$S.
+# LOCALIZATION NOTE (statusChangedWithStatusText):
+# %1$S is the display name of the contact.
+# %2$S is the new status type (a value from status.properties).
+# %3$S is the status text (eg. "I'm currently away from the computer").
+statusChangedWithStatusText=%1$S hiện là %2$S: %3$S.
+# LOCALIZATION NOTE (statusChangedFromUnknown[WithStatusText]):
+# special case of the previous 2 strings for when the status was
+# previously unknown. These 2 strings should not mislead the user
+# into thinking the person's status has just changed.
+statusChangedFromUnknown=%1$S là %2$S.
+statusChangedFromUnknownWithStatusText=%1$S là %2$S: %3$S.
+# LOCALIZATION NOTE (statusKnown[WithStatusText]):
+# special case of the previous 2 strings for when an account has just
+# been reconnected, so the status is now known. These 2 strings should not
+# mislead the user into thinking the person's status has just changed.
+statusKnown=Tài khoản của bạn đã được kết nối lại (%1$S là %2$S).
+statusKnownWithStatusText=Tài khoản của bạn đã được kết nối lại (%1$S là %2$S: %3$S).
+# LOCALIZATION NOTE (statusUnknown):
+# %S is the display name of the contact.
+statusUnknown=Tài khoản của bạn bị ngắt kết nối (trạng thái của %S không còn được biết đến).
+
+accountDisconnected=Tài khoản của bạn đã bị ngắt kết nối.
+accountReconnected=Tài khoản của bạn đã được kết nối lại.
+
+# LOCALIZATION NOTE (autoReply):
+# %S is replaced by the text of a message that was sent as an automatic reply.
+autoReply=Tự động trả lời - %S
+
+# LOCALIZATION NOTE (noTopic):
+# Displayed instead of the topic when no topic is set.
+noTopic=Không có tin nhắn chủ đề cho phòng này.
+
+# LOCALIZATION NOTE (topicSet):
+# %1$S is the conversation name, %2$S is the topic.
+topicSet=Chủ đề cho %1$S là: %2$S.
+# LOCALIZATION NOTE (topicNotSet):
+# %S is the conversation name.
+topicNotSet=Không có chủ đề cho %S.
+# LOCALIZATION NOTE (topicChanged):
+# %1$S is the user who changed the topic, %2$S is the new topic.
+topicChanged=%1$S đã thay đổi chủ đề thành: %2$S.
+# LOCALIZATION NOTE (topicCleared):
+# %1$S is the user who cleared the topic.
+topicCleared=%1$S đã xóa chủ đề.
+
+# LOCALIZATION NOTE (nickSet):
+# This is displayed as a system message when a participant changes his/her
+# nickname in a conversation.
+# %1$S is the old nick.
+# %2$S is the new nick.
+nickSet=%1$S hiện được gọi là %2$S.
+# LOCALIZATION NOTE (nickSet.you):
+# This is displayed as a system message when your nickname is changed.
+# %S is your new nick.
+nickSet.you=Bây giờ bạn được gọi là %S.
+
+# LOCALIZATION NOTE (messenger.conversations.selections.ellipsis):
+# ellipsis is used when copying a part of a message to show that the message was cut
+messenger.conversations.selections.ellipsis=[…]
+
+# LOCALIZATION NOTE (messenger.conversations.selections.{system,content,action}MessagesTemplate):
+# These 3 templates are used to format selected messages before copying them.
+# Do not translate the texts between % characters, but feel free to adjust
+# whitespace and separators to make them fit your locale.
+messenger.conversations.selections.systemMessagesTemplate=%time% - %message%
+messenger.conversations.selections.contentMessagesTemplate=%sender% - %time%: %message%
+messenger.conversations.selections.actionMessagesTemplate=%time% * %sender% %message%
diff --git a/l10n-vi/chat/facebook.properties b/l10n-vi/chat/facebook.properties
new file mode 100644
index 0000000000..ca099ca972
--- /dev/null
+++ b/l10n-vi/chat/facebook.properties
@@ -0,0 +1,6 @@
+# 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/.
+
+facebook.chat.name=Trò chuyện Facebook
+facebook.disabled=Trò chuyện Facebook không còn được hỗ trợ do Facebook vô hiệu hóa cổng XMPP của họ.
diff --git a/l10n-vi/chat/imtooltip.properties b/l10n-vi/chat/imtooltip.properties
new file mode 100644
index 0000000000..a3699a1ae9
--- /dev/null
+++ b/l10n-vi/chat/imtooltip.properties
@@ -0,0 +1,12 @@
+# 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/.
+
+buddy.username=Tên đăng nhập
+buddy.account=Tài khoản
+contact.tags=Nhãn
+
+otr.tag=Trạng thái OTR
+
+encryption.tag=Trạng thái mã hóa
+message.status=Tin nhắn được mã hóa
diff --git a/l10n-vi/chat/irc.properties b/l10n-vi/chat/irc.properties
new file mode 100644
index 0000000000..9e3cc8c397
--- /dev/null
+++ b/l10n-vi/chat/irc.properties
@@ -0,0 +1,209 @@
+# 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 (irc.usernameHint):
+# This is displayed inside the accountUsernameInfoWithDescription
+# string defined in imAccounts.properties when the user is
+# configuring an IRC account.
+irc.usernameHint=biệt danh
+
+# LOCALIZATION NOTE (connection.error.*):
+# These will show in the account manager if the account is
+# disconnected because of an error.
+connection.error.lost=Mất kết nối với máy chủ
+connection.error.timeOut=Đã hết thời gian kết nối
+connection.error.invalidUsername=%S không được chấp nhận là tên đăng nhập
+connection.error.invalidPassword=Mật khẩu máy chủ không đúng
+connection.error.passwordRequired=Yêu cầu mật khẩu
+
+# LOCALIZATION NOTE (joinChat.*):
+# These show up on the join chat menu. An underscore is for the access key.
+joinChat.channel=_Kênh
+joinChat.password=_Mật khẩu
+
+# LOCALIZATION NOTE (options.*):
+# These are the protocol specific options shown in the account manager and
+# account wizard windows.
+options.server=Máy chủ
+options.port=Cổng
+options.ssl=Sử dụng SSL
+options.encoding=Bảng mã
+options.quitMessage=Thoát tin nhắn
+options.partMessage=Phần tin nhắn
+options.showServerTab=Hiển thị tin nhắn từ máy chủ
+options.alternateNicks=Biệt danh thay thế
+
+# LOCALIZATION NOTE (ctcp.version):
+# %1$S is the nickname of the user whose version was requested.
+# %2$S is the version response from the client.
+ctcp.version=%1$S đang dùng "%2$S".
+# LOCALIZATION NOTE (ctcp.time):
+# %1$S is the nickname of the user whose time was requested.
+# %2$S is the time response.
+ctcp.time=Thời gian cho %1$S là %2$S.
+
+# LOCALZIATION NOTE (command.*):
+# These are the help messages for each command, the %S is the command name
+# Each command first gives the parameter it accepts and then a description of
+# the command.
+command.action=%S <hành động thực hiện>: Thực hiện một hành động.
+command.ban=%S <nick!user@host>: Cấm người dùng khớp với mẫu đã cho.
+command.ctcp=%S <nick> <msg>: Gửi một tin nhắn CTCP tới nickname.
+command.chanserv=%S <câu lệnh>: Gửi một câu lệnh tới ChanServ.
+command.deop=%S <nick1>[,<nick2>]*: Xóa trạng thái điều hành kênh của một ai đó. Bạn phải là một điều hành kênh để làm được điều này.
+command.devoice=%S <nick1>[,<nick2>]*: Xóa trạng thái thoại kênh của một ai đó, ngăn họ nói nếu kênh được kiểm duyệt (+m). Bạn phải là một nhà điều hành kênh để làm điều này.
+command.invite2=%S <nick>[ <nick>]* [<kênh>]: Mời một hoặc nhiều nickname tham gia cùng bạn trong kênh hiện tại, hoặc tham gia kênh đã được chỉ định.
+command.join=%S <room1>[ <key1>][,<room2>[ key2>]]*: Nhập một hoặc nhiều kênh, tùy chọn cung cấp khóa cho mỗi kênh nếu cần.
+command.kick=%S <nick> [<tin nhắn>]: Xóa người nào đó từ một kênh. Bạn phải là nhà điều hành kênh để làm được điều này.
+command.list=%S: Hiển thị danh sách các phòng trò chuyện trên mạng. Cảnh báo, một số máy chủ có thể mất kết nối tới bạn khi thực hiện việc này.
+command.memoserv=%S <câu lệnh>: Gửi một câu lệnh tới MemoServ.
+command.modeUser2=%S <nick> [(+|-)<chế độ>]: Lấy, đặt hoặc hủy đặt một chế độ của người dùng.
+command.modeChannel2=%S [<kênh>] [(+|-)<chế độ mới> [<tham số>][,tham số>]*]: Lấy, đặt, hoặc hủy đặt một chế độ kênh.
+command.msg=%S <nick> <tin nhắn>: Gửi một tin nhắn riêng tới người dùng (chứ không phải kênh).
+command.nick=%S <nickname mới>: Thay đổi nickname của bạn.
+command.nickserv=%S <câu lệnh>: Gửi một câu lệnh tới NickServ.
+command.notice=%S <đối tượng> <tin nhắn>: Gửi một thông báo đến một người dùng hoặc kênh.
+command.op=%S <nick1>[,<nick2>]*: Cấp một trạng thái điều hành kênh cho một ai đó. Bạn phải là một điều hành kênh để làm được điều này.
+command.operserv=%S <câu lệnh>: Gửi một câu lệnh tới OperServ.
+command.part=%S [tin nhắn]: Để lại một tin nhắn tùy chọn ở kênh hiện tại.
+command.ping=%S [<nick>]: Truy vấn mức độ trễ của người dùng (hoặc máy chủ nếu không có người dùng nào được chỉ định).
+command.quit=%S <tin nhắn>: Ngắt kết nối tới máy chủ, với một thông báo tùy chọn.
+command.quote=%S <câu lệnh>: Gửi một câu lệnh raw tới máy chủ.
+command.time=%S: Hiển thị giờ địa phương thời điểm hiện tại của máy chủ IRC.
+command.topic=%S [<chủ đề mới>]: Đặt chủ đề cho kênh này.
+command.umode=%S (+|-)<chế độ mới>: Đặt hoặc hủy một chế độ người dùng.
+command.version=%S <nick>: Truy vấn phiên bản ứng dụng máy khách của người dùng.
+command.voice=%S <nick1>[,<nick2>]*: Cấp một trạng thái thoại kênh cho một ai đó. Bạn phải là một điều hành kênh để làm việc này.
+command.whois2=%S [<nick>]: Thu thập thông tin về một người dùng.
+
+# LOCALIZATION NOTE (message.*):
+# These are shown as system messages in the conversation.
+# %1$S is the nick and %2$S is the nick and host of the user who joined.
+message.join=%1$S [%2$S] đã vào phòng.
+message.rejoined=Bạn đã gia nhập lại phòng.
+# %1$S is the nick of who kicked you.
+# %2$S is message.kicked.reason, if a kick message was given.
+message.kicked.you=Bạn đã bị đuổi ra khỏi phòng bởi %1$S%2$S.
+# %1$S is the nick that is kicked, %2$S the nick of the person who kicked
+# %1$S. %3$S is message.kicked.reason, if a kick message was given.
+message.kicked=%1$S đã bị đuổi ra khỏi phòng bởi %2$S%3$S.
+# %S is the kick message
+message.kicked.reason=: %S
+# %1$S is the new mode, %2$S is the nickname of the user whose mode
+# was changed, and %3$S is who set the mode.
+message.usermode=Chế độ %1$S cho %2$S được đặt bởi %3$S.
+# %1$S is the new channel mode and %2$S is who set the mode.
+message.channelmode=Chế độ kênh %1$S cài đặt bởi %2$S.
+# %S is the user's mode.
+message.yourmode=Chế độ của bạn là %S.
+# Could not change the nickname. %S is the user's nick.
+message.nick.fail=Không thể sử dụng biệt danh mong muốn. Biệt danh của bạn vẫn là %S.
+# The parameter is the message.parted.reason, if a part message is given.
+message.parted.you=Bạn đã rời khỏi phòng (Phần%1$S).
+# %1$S is the user's nick, %2$S is message.parted.reason, if a part message is given.
+message.parted=%1$S đã rời khỏi phòng (Phần %2$S).
+# %S is the part message supplied by the user.
+message.parted.reason=: %S
+# %1$S is the user's nick, %2$S is message.quit2 if a quit message is given.
+message.quit=%1$S đã rời khỏi phòng (Thoát %2$S).
+# The parameter is the quit message given by the user.
+message.quit2=: %S
+# %1$S is the nickname of the user that invited us, %2$S is the conversation
+# name.
+message.inviteReceived=%1$S mời bạn tham dự %2$S.
+# %1$S is the nickname of the invited user, %2$S is the conversation name
+# they were invited to.
+message.invited=%1$S đã được mời thành công đến %2$S.
+# %1$S is the nickname of the invited user, %2$S is the conversation name
+# they were invited to but are already in
+message.alreadyInChannel=%1$S đã ở trong %2$S.
+# %S is the nickname of the user who was summoned.
+message.summoned=%S đã được triệu tập.
+# %S is the nickname of the user whose WHOIS information follows this message.
+message.whois=Thông tin WHOIS cho %S:
+# %1$S is the nickname of the (offline) user whose WHOWAS information follows this message.
+message.whowas=%1$S đang ngoại tuyến. Thông tin WHOWAS cho %1$S:
+# %1$S is the entry description (from tooltip.*), %2$S is its value.
+message.whoisEntry=\ua0\ua0\ua0\ua0%1$S: %2$S
+# %S is the nickname that is not known to the server.
+message.unknownNick=%S là một biệt danh không xác định.
+# %1$S is the nickname of the user who changed the mode and %2$S is the new
+# channel key (password).
+message.channelKeyAdded=%1$S đã thay đổi mật khẩu kênh thành %2$S.
+message.channelKeyRemoved=%S đã xóa mật khẩu kênh.
+# This will be followed by a list of ban masks.
+message.banMasks=Người dùng được kết nối từ các vị trí sau bị cấm khỏi %S:
+message.noBanMasks=Không có vị trí bị cấm cho %S.
+message.banMaskAdded=Những người dùng được kết nối từ các vị trí khớp với %1$S đã bị cấm bởi %2$S.
+message.banMaskRemoved=Những người dùng được kết nối từ các vị trí khớp với %1$S đã không còn bị cấm bởi %2$S.
+# LOCALIZATION NOTE (message.ping): Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# %1$S is the nickname of the user or the server that was pinged.
+# #2 is the delay (in milliseconds).
+message.ping=Ping trả lời từ %1$S trong #2 mili giây.
+
+
+# LOCALIZATION NOTE (error.*):
+# These are shown as error messages in the conversation or server tab.
+# %S is the channel name.
+error.noChannel=Ở đây không có kênh: %S.
+error.tooManyChannels=Không thể tham gia %S; bạn đã tham gia quá nhiều kênh.
+# %1$S is your new nick, %2$S is the kill message from the server.
+error.nickCollision=Biệt danh đã được sử dụng, thay đổi biệt danh thành %1$S [%2$S].
+error.erroneousNickname=%S không được chấp nhận là biệt danh.
+error.banned=Bạn đã bị cấm từ máy chủ này.
+error.bannedSoon=Bạn sẽ sớm bị cấm từ máy chủ này.
+error.mode.wrongUser=Bạn không thể thay đổi chế độ cho người dùng khác.
+# %S is the nickname or channel name that isn't available.
+error.noSuchNick=%S không trực tuyến.
+error.wasNoSuchNick=Không có biệt danh: %S
+error.noSuchChannel=Ở đây không có kênh: %S.
+error.unavailable=%S tạm thời không có sẵn.
+# %S is the channel name.
+error.channelBanned=Bạn đã bị cấm khỏi %S.
+error.cannotSendToChannel=Bạn không thể gửi tin nhắn đến %S.
+error.channelFull=Kênh %S đã đầy.
+error.inviteOnly=Bạn phải được mời để tham gia %S.
+error.nonUniqueTarget=%S không phải là một user@host hoặc tên viết tắt duy nhất hoặc bạn cố gắng tham gia nhiều kênh cùng một lúc.
+error.notChannelOp=Bạn không phải là nhà điều hành kênh trên %S.
+error.notChannelOwner=Bạn không phải là một chủ sở hữu kênh của %S.
+error.wrongKey=Không thể tham gia %S, mật khẩu kênh không đúng.
+error.sendMessageFailed=Đã xảy ra lỗi trong khi gửi tin nhắn cuối cùng của bạn. Vui lòng thử lại sau khi kết nối đã được thiết lập lại.
+# %1$S is the channel the user tried to join, %2$S is the channel
+# he was forwarded to.
+error.channelForward=Bạn không được tham gia %1$S và được tự động chuyển hướng đến %2$S.
+# %S is the mode that the user tried to set but was not recognized
+# by the server as a valid mode.
+error.unknownMode='%S' không phải là chế độ người dùng hợp lệ trên máy chủ này.
+
+# LOCALIZATION NOTE (tooltip.*):
+# These are the descriptions given in a tooltip with information received
+# from a whois response.
+# The human readable ("realname") description of the user.
+tooltip.realname=Tên
+tooltip.server=Kết nối với
+# The username and hostname that the user connects from (usually based on the
+# reverse DNS of the user's IP, but often mangled by the server to
+# protect users).
+tooltip.connectedFrom=Kết nối từ
+tooltip.registered=Đã đăng ký
+tooltip.registeredAs=Đã đăng ký là
+tooltip.secure=Sử dụng kết nối an toàn
+# The away message of the user
+tooltip.away=Vắng mặt
+tooltip.ircOp=Nhà điều hành IRC
+tooltip.bot=Bot
+tooltip.lastActivity=Lần hoạt động cuối
+# %S is the timespan elapsed since the last activity.
+tooltip.timespan=%S trước
+tooltip.channels=Hiện tại
+
+# %1$S is the server name, %2$S is some generic server information (usually a
+# location or the date the user was last seen).
+tooltip.serverValue=%1$S (%2$S)
+
+# LOCALIZATION NOTE (yes, no):
+# These are used to turn true/false values into a yes/no response.
+yes=Có
+no=Không
diff --git a/l10n-vi/chat/logger.properties b/l10n-vi/chat/logger.properties
new file mode 100644
index 0000000000..ce7a76a7e6
--- /dev/null
+++ b/l10n-vi/chat/logger.properties
@@ -0,0 +1,7 @@
+# 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 (badLogfile):
+# %S is the filename of the log file.
+badLogfile=Tập tin nhật ký trống hoặc bị hỏng: %S
diff --git a/l10n-vi/chat/matrix.ftl b/l10n-vi/chat/matrix.ftl
new file mode 100644
index 0000000000..745567062f
--- /dev/null
+++ b/l10n-vi/chat/matrix.ftl
@@ -0,0 +1,23 @@
+# 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/.
+
+
+### Matrix Protocol strings
+
+
+## Conversation names when a room has no user readable name.
+
+room-name-empty = Cuộc trò chuyện trống
+# Variables:
+# $oldName (String) - The previous name the conversation had before it was
+# removed.
+room-name-empty-had-name = Cuộc trò chuyện trống (tên mới của { $oldName })
+# Variables:
+# $participant (String) - The name of one participant that isn't the user.
+# $otherParticipantsCount (Number) - The count of other participants apart from
+# the user and $participant.
+room-name-others =
+ { $otherParticipantsCount ->
+ *[other] { $participant } và { $otherParticipantCount } người khác
+ }
diff --git a/l10n-vi/chat/matrix.properties b/l10n-vi/chat/matrix.properties
new file mode 100644
index 0000000000..2cb4add47b
--- /dev/null
+++ b/l10n-vi/chat/matrix.properties
@@ -0,0 +1,245 @@
+# 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 (matrix.usernameHint):
+# This is displayed inside the accountUsernameInfoWithDescription
+# string defined in imAccounts.properties when the user is
+# configuring a Matrix account.
+matrix.usernameHint=Matrix ID
+
+# LOCALIZATION NOTE (options.*):
+# These are the protocol specific options shown in the account manager and
+# account wizard windows.
+options.saveToken=Lưu trữ token truy cập
+options.deviceDisplayName=Tên hiển thị thiết bị
+options.homeserver=Máy chủ
+options.backupPassphrase=Cụm mật khẩu sao lưu chính
+
+# LOCALIZATION NOTE (options.encryption.*):
+# These are strings used to build the status information of the encryption
+# storage, shown in the account manager. %S is one of the statuses and the
+# strings are combined with a pipe (|) between.
+options.encryption.statusOk=ok
+options.encryption.statusNotOk=không sẵn sàng
+options.encryption.needBackupPassphrase=Vui lòng nhập cụm mật khẩu khóa dự phòng của bạn trong các tùy chọn giao thức.
+options.encryption.setUpSecretStorage=Để thiết lập bộ nhớ bí mật, vui lòng sử dụng một ứng dụng khách khác và sau đó nhập cụm mật khẩu khóa dự phòng đã tạo trong thẻ "Tổng quát".
+# %1$S is the session ID, %2$S is the session display name
+options.encryption.session=%1$S (%2$S)
+
+# LOCALIZATION NOTE (connection.*):
+# These will be displayed in the account manager in order to show the progress
+# of the connection.
+# (These will be displayed in account.connection.progress from
+# accounts.properties, which adds … at the end, so do not include
+# periods at the end of these messages.)
+connection.requestAuth=Chờ đợi xác thực của bạn
+connection.requestAccess=Đang hoàn tất xác thực
+
+# LOCALIZATION NOTE (connection.error.*):
+# These will show in the account manager if an error occurs during the
+# connection attempt.
+connection.error.noSupportedFlow=Máy chủ không cung cấp luồng đăng nhập tương thích.
+connection.error.authCancelled=Bạn đã hủy quá trình xác thực.
+connection.error.sessionEnded=Phiên đã được đăng xuất.
+connection.error.serverNotFound=Không thể xác định máy chủ Matrix cho tài khoản Matrix đã nhập.
+
+# LOCALIZATION NOTE (chatRoomField.*):
+# These are the name of fields displayed in the 'Join Chat' dialog
+# for Matrix accounts.
+# The _ character won't be displayed; it indicates the next
+# character of the string should be used as the access key for this
+# field.
+chatRoomField.room=_Phòng
+
+# LOCALIZATION NOTE (tooltip.*):
+# These are the descriptions given in a tooltip with information received
+# from the "User" object.
+# The human readable name of the user.
+tooltip.displayName=Tên hiển thị
+# %S is the timespan elapsed since the last activity.
+tooltip.timespan=%S trước
+tooltip.lastActive=Lần hoạt động cuối
+
+# LOCALIZATION NOTE (powerLevel.*):
+# These are the string representations of different standard power levels and strings.
+# %S are one of the power levels, Default/Moderator/Admin/Restricted/Custom.
+powerLevel.default=Mặc định
+powerLevel.moderator=Người kiểm duyệt
+powerLevel.admin=Quản trị viên
+powerLevel.restricted=Bị hạn chế
+powerLevel.custom=Tùy chọn
+# %1$S is the power level name
+# %2$S is the power level number
+powerLevel.detailed=%1$S (%2$S)
+powerLevel.defaultRole=Vai trò mặc định: %S
+powerLevel.inviteUser=Mời người dùng: %S
+powerLevel.kickUsers=Đuổi người dùng: %S
+powerLevel.ban=Cấm người dùng: %S
+powerLevel.roomAvatar=Thay đổi hình đại diện phòng: %S
+powerLevel.mainAddress=Thay đổi địa chỉ chính cho phòng: %S
+powerLevel.history=Thay đổi chế độ hiển thị lịch sử: %S
+powerLevel.roomName=Thay đổi tên phòng: %S
+powerLevel.changePermissions=Thay đổi quyền: %S
+powerLevel.server_acl=Gửi sự kiện m.room.server_acl: %S
+powerLevel.upgradeRoom=Nâng cấp phòng: %S
+powerLevel.remove=Xóa tin nhắn: %S
+powerLevel.events_default=Sự kiện mặc định: %S
+powerLevel.state_default=Thay đổi cài đặt: %S
+powerLevel.encryption=Bật mã hóa phòng: %S
+powerLevel.topic=Đặt chủ đề phòng: %S
+
+# LOCALIZATION NOTE (detail.*):
+# These are the string representations of different matrix properties.
+# %S will typically be strings with the actual values.
+# Example placeholder: "Foo bar"
+detail.name=Tên: %S
+# Example placeholder: "My first room"
+detail.topic=Chủ đề: %S
+# Example placeholder: "5"
+detail.version=Phiên bản phòng: %S
+# Example placeholder: "#thunderbird:mozilla.org"
+detail.roomId=RoomID: %S
+# %S are all admin users. Example: "@foo:example.com, @bar:example.com"
+detail.admin=Quản trị viên: %S
+# %S are all moderators. Example: "@lorem:mozilla.org, @ipsum:mozilla.org"
+detail.moderator=Người kiểm duyệt: %S
+# Example placeholder: "#thunderbird:matrix.org"
+detail.alias=Bí danh: %S
+# Example placeholder: "can_join"
+detail.guest=Quyền truy cập của khách: %S
+# This is a heading, followed by the powerLevel.* strings
+
+# LOCALIZATION NOTE (command.*):
+# These are the help messages for each command, the %S is the command name
+# Each command first gives the parameter it accepts and then a description of
+# the command.
+command.ban=%S <userId> [<reason>]: Cấm người dùng có userId khỏi phòng với thông báo lý do tùy chọn. Yêu cầu có quyền cấm người dùng.
+command.invite=%S <userId>: Mời người dùng vào phòng.
+command.kick=%S <userId> [<reason>]: Đuổi người dùng bằng userId khỏi phòng với thông báo lý do tùy chọn. Yêu cầu có quyền đuổi người dùng.
+command.nick=%S <display_name>: Thay đổi tên hiển thị của bạn.
+command.leave=%S: Rời khỏi phòng hiện tại.
+command.topic=%S <topic>: Đặt chủ đề cho phòng. Yêu cầu có quyền thay đổi chủ đề của phòng.
+command.unban=%S <userId>: Bỏ lệnh cấm người dùng bị cấm vào phòng. Yêu cầu có quyền cấm người dùng.
+command.visibility=%S [<visibility>]: Đặt khả năng hiển thị của căn phòng hiện tại trong thư mục phòng hiện tại của trang đầu máy chủ. Nhập một giá trị nguyên, Riêng tư: 0 và Công khai: 1. Mặc định là Riêng tư (0) nếu không có tham số nào được cung cấp. Yêu cầu có quyền thay đổi hiển thị của phòng.
+command.guest=%S <quyền truy cập của khách> <khả năng hiển thị lịch sử>: Đặt quyền truy cập và hiển thị lịch sử của phòng hiện tại cho người dùng khách. Nhập hai giá trị số nguyên, giá trị đầu tiên cho quyền truy cập của khách (không cho phép: 0 và cho phép: 1) và giá trị thứ hai cho khả năng hiển thị lịch sử (ẩn: 0 và hiện: 1). Yêu cầu có quyền thay đổi chế độ hiển thị lịch sử.
+command.roomname=%S <tên>: Đặt tên phòng. Yêu cầu quyền để thay đổi tên của phòng.
+command.detail=%S: Hiển thị thông tin chi tiết của phòng.
+command.addalias=%S <alias>: Tạo một bí danh cho phòng. Bí danh phòng mong đợi của biểu mẫu '#localname:domain'. Yêu cầu có quyền tạo bí danh.
+command.removealias=%S <alias>: Xóa bí danh cho phòng. Bí danh phòng mong đợi của biểu mẫu '#localname:domain'. Yêu cầu có quyền xóa bí danh.
+command.upgraderoom=%S <newVersion>: Nâng cấp phòng lên một phiên bản nhất định. Yêu cầu quyền để nâng cấp phòng.
+command.me=%S <action>: Thực hiện một hành động.
+command.msg=%S <userId> <message>: Gửi một tin nhắn trực tiếp tới một người dùng.
+command.join=%S <roomId>: Tham gia phòng được chỉ định.
+
+# LOCALIZATION NOTE (message.*):
+# These are shown as system messages in the conversation.
+# %1$S is the name of the user who banned.
+# %2$S is the name of the user who got banned.
+message.banned=%1$S đã cấm %2$S.
+# Same as message.banned but with a reason.
+# %3$S is the reason the user was banned.
+message.bannedWithReason=%1$S đã cấm %2$S. Lý do: %3$S
+# %1$S is the name of the user who accepted the invitation.
+# %2$S is the name of the user who sent the invitation.
+message.acceptedInviteFor=%1$S đã chấp nhận lời mời của %2$S.
+# %S is the name of the user who accepted an invitation.
+message.acceptedInvite=$S đã chấp nhận lời mời.
+# %1$S is the name of the user who invited.
+# %2$S is the name of the user who got invited.
+message.invited=%1$S đã mời %2$S.
+# %1$S is the name of the user who changed their display name.
+# %2$S is the old display name.
+# %3$S is the new display name.
+message.displayName.changed=%1$S đã thay đổi tên hiển thị của họ từ %2$S thành %3$S.
+# %1$S is the name of the user who set their display name.
+# %2$S is the newly set display name.
+message.displayName.set=%1$S đã đặt tên hiển thị của họ thành %2$S.
+# %1$S is the name of the user who removed their display name.
+# %2$S is the old display name which has been removed.
+message.displayName.remove=%1$S đã xóa tên hiển thị %2$S của họ.
+# %S is the name of the user who has joined the room.
+message.joined=%S đã tham gia phòng.
+# %S is the name of the user who has rejected the invitation.
+message.rejectedInvite=%S đã từ chối lời mời.
+# %S is the name of the user who has left the room.
+message.left=%S đã rời khỏi phòng.
+# %1$S is the name of the user who unbanned.
+# %2$S is the name of the user who got unbanned.
+message.unbanned=%1$S đã bỏ cấm %2$S.
+# %1$S is the name of the user who kicked.
+# %2$S is the name of the user who got kicked.
+message.kicked=%1$S đã đuổi %2$S.
+# Same as message.kicked but with a third parameter for the reason.
+# %3$S is the reason for the kick.
+message.kickedWithReason=%1$S đã đuổi %2$S. Lý do: %3$S
+# %1$S is the name of the user who withdrew invitation.
+# %2$S is the name of the user whose invitation has been withdrawn.
+message.withdrewInvite=%1$S đã rút lại lời mời với %2$S.
+# Same as message.withdrewInvite but with a third parameter for the reason.
+# %3$S is the reason the invite was withdrawn.
+message.withdrewInviteWithReason=%1$S đã rút lại lời mời của %2$S. Lý do: %3$S
+# %S is the name of the user who has removed the room name.
+message.roomName.remove=%S đã xóa tên phòng.
+# %1$S is the name of the user who changed the room name.
+# %2$S is the new room name.
+message.roomName.changed=%1$S đã đổi tên phòng thành %2$S.
+# %1$S is the name of the user who changed the power level.
+# %2$S is a list of "message.powerLevel.fromTo" strings representing power level changes separated by commas
+# power level changes, separated by commas if there are multiple changes.
+# %1$S is the name of the target user whose power level has been changed.
+# %2$S is the old power level.
+# %2$S is the new power level.
+message.powerLevel.fromTo=%1$S từ %2$S thành %3$S
+# %S is the name of the user who has allowed guests to join the room.
+message.guest.allowed=%S đã cho phép khách tham gia phòng.
+# %S is the name of the user who has prevented guests to join the room.
+message.guest.prevented=%S đã ngăn không cho khách tham gia phòng.
+# %S is the name of the user who has made future room history visible to anyone.
+message.history.anyone=%S đã đặt chế độ hiển thị lịch sử phòng trong tương lai thành mọi người.
+# %S is the name of the user who has made future room history visible to all room members.
+message.history.shared=%S đã đặt chế độ hiển thị lịch sử phòng trong tương lai thành tất cả các thành viên trong phòng.
+# %S is the name of the user who has made future room history visible to all room members, from the point they are invited.
+message.history.invited=%S đã đặt chế độ hiển thị lịch sử phòng trong tương lai thành tất cả các thành viên trong phòng, kể từ thời điểm họ được mời.
+# %S is the name of the user who has made future room history visible to all room members, from the point they joined.
+message.history.joined=%S đã đặt chế độ hiển thị lịch sử phòng trong tương lai thành các thành viên trong phòng kể từ thời điểm họ tham gia.
+# %1$S is the name of the user who changed the address.
+# %2$S is the old address.
+# %3$S is the new address.
+message.alias.main=%1$S đặt địa chỉ chính cho phòng này từ %2$S thành %3$S.
+# %1$S is the name of the user who added the address.
+# %2$S is a comma delimited list of added addresses.
+message.alias.added=%1$S đã thêm %2$S làm địa chỉ thay thế cho phòng này.
+# %1$S is the name of the user who removed the address.
+# %2$S is a comma delimited list of removed addresses.
+message.alias.removed=%1$S đã xóa %2$S khỏi địa chỉ thay thế cho phòng này.
+# %1$S is the name of the user that edited the alias addresses.
+# %2$S is a comma delimited list of removed addresses.
+# %3$S is a comma delmited list of added addresses.
+message.alias.removedAndAdded=%1$S đã xóa %2$S và thêm %3$S làm địa chỉ cho phòng này.
+message.encryptionStart=Tin nhắn trong cuộc hội thoại này hiện đã được mã hóa đầu cuối.
+# %1$S is the name of the user who sent the verification request.
+# %2$S is the name of the user that is receiving the verification request.
+message.verification.request2=%1$S muốn xác minh %2$S.
+# %1$S is the name of the user who cancelled the verification request.
+# %2$S is the reason given why the verification was cancelled.
+message.verification.cancel2=%1$S đã hủy xác minh với lý do: %2$S
+message.verification.done=Đã hoàn tất xác minh.
+message.decryptionError=Không thể giải mã nội dung của tin nhắn này. Để yêu cầu khóa mã hóa từ các thiết bị khác của bạn, hãy nhấp chuột phải vào thông báo này.
+message.decrypting=Đang giải mã...
+message.redacted=Tin nhắn đã được chỉnh sửa lại.
+# %1$S is the username of the user that reacted.
+# %2$S is the username of the user that sent the message the reaction was added to.
+# %3$S is the content (typically an emoji) of the reaction.
+message.reaction=%1$S đã bày tỏ cảm xúc với %2$S bằng %3$S.
+
+# Label in the message context menu
+message.action.requestKey=Yêu cầu lại khóa
+message.action.redact=Chỉnh sửa
+message.action.report=Báo cáo tin nhắn
+message.action.retry=Thử gửi lại
+message.action.cancel=Hủy tin nhắn
+
+# LOCALIZATION NOTE (error.*)
+# These are strings shown as system messages when an action the user took fails.
+error.sendMessageFailed=Đã xảy ra lỗi khi gửi tin nhắn của bạn "%1$S".
diff --git a/l10n-vi/chat/status.properties b/l10n-vi/chat/status.properties
new file mode 100644
index 0000000000..44d034e0b3
--- /dev/null
+++ b/l10n-vi/chat/status.properties
@@ -0,0 +1,23 @@
+# 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/.
+
+availableStatusType=Có mặt
+awayStatusType=Vắng mặt
+unavailableStatusType=Không sẵn sàng
+offlineStatusType=Ngoại tuyến
+invisibleStatusType=Ẩn
+idleStatusType=Yên lặng
+mobileStatusType=Di động
+# LOCALIZATION NOTE (unknownStatusType):
+# the status of a buddy is unknown when it's in the list of a disconnected account
+unknownStatusType=Không rõ
+
+# LOCALIZATION NOTE (statusWithStatusMessage):
+# Used to display the status of a buddy together with its status message.
+# %1$S is the status type, %2$S is the status message text.
+statusWithStatusMessage=%1$S - %2$S
+
+# LOCALIZATION NOTE (messenger.status.defaultIdleAwayMessage):
+# This will be the away message put automatically when the user is idle.
+messenger.status.defaultIdleAwayMessage=Tôi hiện đang rời khỏi máy tính.
diff --git a/l10n-vi/chat/twitter.properties b/l10n-vi/chat/twitter.properties
new file mode 100644
index 0000000000..79297ad932
--- /dev/null
+++ b/l10n-vi/chat/twitter.properties
@@ -0,0 +1,122 @@
+# 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 (twitter.protocolName)
+# This name is used whenever the name of the protocol is shown.
+twitter.protocolName=Twitter
+
+# LOCALIZATION NOTE (error.*):
+# These are errors that will be shown to the user in conversation.
+error.tooLong=Trạng thái vượt quá 140 ký tự.
+# LOCALIZATION NOTE (error.general, error.retweet, error.delete):
+# %1$S will be either the error string returned by the twitter server,
+# in English, inside parenthesis, or the empty string if we have no specific
+# message for the error.
+# %2$S is the message that caused the error.
+error.general=Đã xảy ra lỗi %1$S trong khi gửi: %2$S
+error.retweet=Đã xảy ra lỗi %1$S trong khi retweet: %2$S
+error.delete=Đã xảy ra lỗi %1$S trong khi xóa: %2$S
+error.like=Đã xảy ra lỗi %1$S trong khi thích: %2$S
+error.unlike=Đã xảy ra lỗi %1$S trong khi bỏ thích: %2$S
+# LOCALIZATION NOTE (error.descriptionTooLong)
+# %S is the truncated string that was sent to the server.
+error.descriptionTooLong=Mô tả vượt quá độ dài tối đa (160 ký tự), nó được tự động cắt ngắn thành: %S.
+
+# LOCALIZATION NOTE (timeline):
+# This is the title of the conversation tab, %S will be replaced by
+# @.
+timeline=Dòng thời gian %S
+
+# LOCALIZATION NOTE (action.*):
+# This will be an action in the context menu of displayed tweets.
+action.copyLink=Sao chép liên kết vào Tweet
+action.retweet=Retweet
+action.reply=Trả lời
+action.delete=Xóa
+# LOCALIZATION NOTE (action.follow, action.stopFollowing):
+# %S will be replaced by the screen name of a twitter user.
+action.follow=Theo dõi %S
+action.stopFollowing=Ngừng theo dõI %S
+action.like=Thích
+action.unlike=Bỏ thích
+
+# LOCALIZATION NOTE (event.follow, event.unfollow, event.followed):
+# This will be displayed in system messages inside the timeline conversation.
+# %S will be replaced by the screen name of a twitter user.
+event.follow=Bạn hiện đang theo dõi %S.
+event.unfollow=Bạn hiện không còn theo dõi %S.
+event.followed=%S hiện đang theo dõi bạn.
+# LOCALIZATION NOTE (event.deleted):
+# %S will be replaced by the text of the deleted tweet.
+event.deleted=Bạn đã xóa tweet này: "%S".
+
+# LOCALIZATION NOTE (replyingToStatusText):
+# This will be visible in the status bar of the conversation window
+# while the user is typing a reply to a tweet.
+# %S will be replaced by the text of the tweet the user is replying to.
+replyingToStatusText=Trả lời đến: %S
+
+# LOCALIZATION NOTE (connection.*):
+# These will be displayed in the account manager in order to show the progress
+# of the connection.
+# (These will be displayed in account.connection.progress from
+# accounts.properties, which adds … at the end, so do not include
+# periods at the end of these messages.)
+connection.initAuth=Bắt đầu quá trình xác thực
+connection.requestAuth=Chờ đợi xác thực của bạn
+connection.requestAccess=Hoàn tất xác thực
+connection.requestTimelines=Yêu cầu mốc thời gian của người dùng
+# LOCALIZATION NOTE (connection.error.*):
+# These will show in the account manager if an error occurs during the
+# connection attempt.
+connection.error.userMismatch=Tên người dùng không khớp.
+connection.error.failedToken=Không thể nhận mã token yêu cầu.
+connection.error.authCancelled=Bạn đã hủy quá trình xác thực.
+connection.error.authFailed=Không thể nhận được xác thực.
+connection.error.noNetwork=Không có kết nối internet.
+
+# LOCALIZATION NOTE (authPrompt):
+# This is the prompt in the browser window that pops up to authorize us
+# to use a Twitter account. It is shown in the title bar of the authorization
+# window.
+authPrompt=Cho phép quyền để sử dụng tài khoản Twitter của bạn
+
+# LOCALIZATION NOTE (options.*):
+# These are the protocol specific options shown in the account manager and
+# account wizard windows.
+options.track=Từ khóa được theo dõi
+
+# LOCALIZATION NOTE (tooltip.*):
+# These are the Twitter information that will appear in the tooltip
+# for each participant on the home timeline.
+# LOCALIZATION NOTE (tooltip.created_at): the date the user joined.
+tooltip.created_at=Người dùng kể từ
+tooltip.location=Địa chỉ
+tooltip.lang=Ngôn ngữ
+tooltip.time_zone=Múi giờ
+tooltip.url=Trang chủ
+# LOCALIZATION NOTE (tooltip.protected):
+# whether the user's tweets are publicly visible.
+tooltip.protected=Giữ kín các Tweet
+# LOCALIZATION NOTE (tooltip.following):
+# whether you are subscribed to the user's tweets.
+tooltip.following=Hiện đang theo dõi
+tooltip.name=Tên
+tooltip.description=Mô tả
+# LOCALIZATION NOTE (tooltip.*_count):
+# Please see the right side of the official Twitter website UI.
+tooltip.friends_count=Đang theo dõi
+tooltip.statuses_count=Tweet
+tooltip.followers_count=Người theo dõi
+tooltip.listed_count=Liệt kê
+
+# LOCALIZATION NOTE (yes, no):
+# These are used to turn true/false values into a yes/no response.
+yes=Có
+no=Không
+
+command.follow=%S <username>[ <username>]*: Bắt đầu theo dõi người dùng.
+command.unfollow=%S <username>[ <username>]*: Dừng theo dõi người dùng.
+
+twitter.disabled=Twitter không còn được hỗ trợ do Twitter vô hiệu hóa giao thức phát trực tuyến của họ.
diff --git a/l10n-vi/chat/xmpp.properties b/l10n-vi/chat/xmpp.properties
new file mode 100644
index 0000000000..d30effa4f3
--- /dev/null
+++ b/l10n-vi/chat/xmpp.properties
@@ -0,0 +1,281 @@
+# 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 (connection.*)
+# These will be displayed in the account manager in order to show the progress
+# of the connection.
+# (These will be displayed in account.connection.progress from
+# accounts.properties, which adds … at the end, so do not include
+# periods at the end of these messages.)
+connection.initializingStream=Đang khởi tạo luồng
+connection.initializingEncryption=Đang khởi tạo tiến trình mã hóa
+connection.authenticating=Đang xác thực
+connection.gettingResource=Đang nhận tài nguyên
+connection.downloadingRoster=Đang tải danh sách lên hệ
+connection.srvLookup=Đang tìm kiếm bản ghi SRV
+
+# LOCALIZATION NOTE (connection.error.*)
+# These will show in the account manager if an error occurs during the
+# connection attempt.
+connection.error.invalidUsername=Tên người dùng không hợp lệ (tên người dùng của bạn phải chứa ký tự '@')
+connection.error.failedToCreateASocket=Không thể tạo được socket (Bạn có đang ngoại tuyến không?)
+connection.error.serverClosedConnection=Máy chủ đã ngắt kết nối
+connection.error.resetByPeer=Kết nối đã thiết lập lại bởi ngang hàng
+connection.error.timedOut=Đã hết thời gian kết nối
+connection.error.receivedUnexpectedData=Đã nhận dữ liệu không mong muốn
+connection.error.incorrectResponse=Đã nhận được phản hồi sai
+connection.error.startTLSRequired=Máy chủ cần mã hóa nhưng mà bạn đã tắt
+connection.error.startTLSNotSupported=Máy chủ không hỗ trợ mã hóa nhưng mà cấu hình của bạn yêu cầu nó
+connection.error.failedToStartTLS=Không thể khởi tạo mã hóa
+connection.error.noAuthMec=Máy chủ không cung cấp cơ chế xác thực
+connection.error.noCompatibleAuthMec=Không có cơ chế xác thực nào do máy chủ cung cấp được hỗ trợ
+connection.error.notSendingPasswordInClear=Máy chủ chỉ hỗ trợ xác thực bằng cách gửi mật khẩu trong văn bản thô
+connection.error.authenticationFailure=Lỗi xác thực
+connection.error.notAuthorized=Chưa được uỷ quyền (Sai mật khẩu?)
+connection.error.failedToGetAResource=Không thể lấy được tài nguyên
+connection.error.failedMaxResourceLimit=Tài khoản này được kết nối từ quá nhiều nơi cùng một lúc.
+connection.error.failedResourceNotValid=Nguồn không hợp lệ.
+connection.error.XMPPNotSupported=Máy chủ này không hỗ trợ XMPP
+
+# LOCALIZATION NOTE (conversation.error.notDelivered):
+# This is displayed in a conversation as an error message when a message
+# the user has sent wasn't delivered.
+# %S is replaced by the text of the message that wasn't delivered.
+conversation.error.notDelivered=Không thể gửi tin nhắn này: %S
+# This is displayed in a conversation as an error message when joining a MUC
+# fails.
+# %S is the name of the MUC.
+conversation.error.joinFailed=Không thể tham gia: %S
+# This is displayed in a conversation as an error message when the user is
+# banned from a room.
+# %S is the name of the MUC room.
+conversation.error.joinForbidden=Không được vào %S tại vì bạn bị cấm vào phòng này.
+conversation.error.joinFailedNotAuthorized=Yêu cầu đăng ký: Bạn không được phép tham gia phòng này.
+conversation.error.creationFailedNotAllowed=Quyền truy cập bị hạn chế: Bạn không được phép tạo phòng.
+# This is displayed in a conversation as an error message when remote server
+# is not found.
+# %S is the name of MUC room.
+conversation.error.joinFailedRemoteServerNotFound=Không thể vào phòng %S vì không thể truy cập được máy chủ lưu trữ của phòng này.
+conversation.error.changeTopicFailedNotAuthorized=Bạn không được phép đặt chủ đề của căn phòng này.
+# This is displayed in a conversation as an error message when the user sends
+# a message to a room that he is not in.
+# %1$S is the name of MUC room.
+# %2$S is the text of the message that wasn't delivered.
+conversation.error.sendFailedAsNotInRoom=Không thể gửi tin nhắn đến %1$S vì bạn không còn ở trong phòng: %2$S
+# This is displayed in a conversation as an error message when the user sends
+# a message to a room that the recipient is not in.
+# %1$S is the jid of the recipient.
+# %2$S is the text of the message that wasn't delivered.
+conversation.error.sendFailedAsRecipientNotInRoom=Không thể gửi tin nhắn đến %1$S vì người nhận không còn ở trong phòng: %2$S
+# These are displayed in a conversation as a system error message.
+conversation.error.remoteServerNotFound=Không thể kết nối với máy chủ của người nhận.
+conversation.error.unknownSendError=Đã xảy ra lỗi không xác định khi gửi tin nhắn này.
+# %S is the name of the message recipient.
+conversation.error.sendServiceUnavailable=Không thể gửi tin nhắn cho %S vào lúc này.
+# %S is the nick of participant that is not in room.
+conversation.error.nickNotInRoom=%S không ở trong phòng.
+conversation.error.banCommandAnonymousRoom=Bạn không thể cấm người tham gia từ các phòng ẩn danh. Thử /kick.
+conversation.error.banKickCommandNotAllowed=Bạn không có các quyền để xóa người này khỏi phòng.
+conversation.error.banKickCommandConflict=Xin lỗi, bạn không thể tự xóa mình khỏi phòng.
+conversation.error.changeNickFailedConflict=Không thể đổi tên gọi của bạn thành %S vì tên gọi này đã được sử dụng.
+conversation.error.changeNickFailedNotAcceptable=Không thể đổi biệt danh của bạn thành %S vì biệt danh này bị khóa trong phòng này.
+conversation.error.inviteFailedForbidden=Bạn không có quyền để mời người dùng vào phòng này.
+# %S is the jid of user that is invited.
+conversation.error.failedJIDNotFound=Không thể tiếp cận %S.
+# %S is the jid that is invalid.
+conversation.error.invalidJID=%S là jid không hợp lệ (số nhận dạng Jabber phải có dạng user@domain).
+conversation.error.commandFailedNotInRoom=Bạn phải tham gia lại phòng để có thể sử dụng lệnh này.
+# %S is the name of the recipient.
+conversation.error.resourceNotAvailable=Bạn cần nói chuyện trước, vì %S có thể kết nối với nhiều hơn một máy khách.
+
+# LOCALIZATION NOTE (conversation.error.version.*):
+# %S is the name of the recipient.
+conversation.error.version.unknown=Máy khách của %S không hỗ trợ truy vấn cho phiên bản phần mềm của nó.
+
+# LOCALIZATION NOTE (tooltip.*):
+# These are the titles of lines of information that will appear in
+# the tooltip showing details about a contact or conversation.
+# LOCALIZATION NOTE (tooltip.status):
+# %S will be replaced by the XMPP resource identifier
+tooltip.status=Trạng thái (%S)
+tooltip.statusNoResource=Trạng thái
+tooltip.subscription=Đăng ký
+tooltip.fullName=Họ và tên
+tooltip.nickname=Tên hiệu
+tooltip.email=Email
+tooltip.birthday=Sinh nhật
+tooltip.userName=Tên đăng nhập
+tooltip.title=Chức danh
+tooltip.organization=Tổ chức
+tooltip.locality=Địa phương
+tooltip.country=Quốc gia
+tooltip.telephone=Số điện thoại
+
+# LOCALIZATION NOTE (chatRoomField.*):
+# These are the name of fields displayed in the 'Join Chat' dialog
+# for XMPP accounts.
+# The _ character won't be displayed; it indicates the next
+# character of the string should be used as the access key for this
+# field.
+chatRoomField.room=_Phòng
+chatRoomField.server=_Máy chủ
+chatRoomField.nick=Tên _hiệu
+chatRoomField.password=Mật _khẩu
+
+# LOCALIZATION NOTE (conversation.muc.*):
+# These are displayed as a system message when a chatroom invitation is
+# received.
+# %1$S is the inviter.
+# %2$S is the room.
+# %3$S is the reason which is a message provided by the person sending the
+# invitation.
+conversation.muc.invitationWithReason2=%1$S đã mời bạn tham gia %2$S: %3$S
+# %3$S is the password of the room.
+# %4$S is the reason which is a message provided by the person sending the
+# invitation.
+conversation.muc.invitationWithReason2.password=%1$S đã mời bạn tham gia %2$S với mật khẩu %3$S: %4$S
+conversation.muc.invitationWithoutReason=%1$S đã mời bạn tham gia %2$S
+# %3$S is the password of the room.
+conversation.muc.invitationWithoutReason.password=%1$S đã mời bạn tham gia %2$S với mật khẩu %3$S
+
+# LOCALIZATION NOTE (conversation.muc.join):
+# This is displayed as a system message when a participant joins room.
+# %S is the nick of the participant.
+conversation.message.join=%S đã vào phòng.
+
+# LOCALIZATION NOTE (conversation.muc.rejoined):
+# This is displayed as a system message when a participant rejoins room after
+# parting it.
+conversation.message.rejoined=Bạn đã gia nhập lại phòng.
+
+# LOCALIZATION NOTE (conversation.message.parted.*):
+# These are displayed as a system message when a participant parts a room.
+# %S is the part message supplied by the user.
+conversation.message.parted.you=Bạn đã rời khỏi phòng.
+conversation.message.parted.you.reason=Bạn đã rời khỏi phòng: %S
+# %1$S is the participant that is leaving.
+# %2$S is the part message supplied by the participant.
+conversation.message.parted=%1$S đã rời khỏi phòng.
+conversation.message.parted.reason=%1$S đã rời khỏi phòng: %2$S
+
+# LOCALIZATION NOTE (conversation.message.invitationDeclined*):
+# %1$S is the invitee that declined the invitation.
+# %2$S is the decline message supplied by the invitee.
+conversation.message.invitationDeclined=%1$S đã từ chối lời mời của bạn.
+conversation.message.invitationDeclined.reason=%1$S đã từ chối lời mời của bạn: %2$S
+
+# LOCALIZATION NOTE (conversation.message.banned.*):
+# These are displayed as a system message when a participant is banned from
+# a room.
+# %1$S is the participant that is banned.
+# %2$S is the reason.
+# %3$S is the person who is banning.
+conversation.message.banned=%1$S đã bị cấm vào phòng.
+conversation.message.banned.reason=%1$S đã bị cấm vào phòng: %2$S
+# %1$S is the person who is banning.
+# %2$S is the participant that is banned.
+# %3$S is the reason.
+conversation.message.banned.actor=%1$S đã cấm %2$S vào phòng.
+conversation.message.banned.actor.reason=%1$S đã cấm %2$S vào phòng: %3$S
+conversation.message.banned.you=Bạn đã bị cấm vào phòng.
+# %1$S is the reason.
+conversation.message.banned.you.reason=Bạn đã bị cấm vào phòng: %1$S
+# %1$S is the person who is banning.
+# %2$S is the reason.
+conversation.message.banned.you.actor=%1$S đã cấm bạn vào phòng.
+conversation.message.banned.you.actor.reason=%1$S đã cấm bạn vào phòng: %2$S
+
+# LOCALIZATION NOTE (conversation.message.kicked.*):
+# These are displayed as a system message when a participant is kicked from
+# a room.
+# %1$S is the participant that is kicked.
+# %2$S is the reason.
+conversation.message.kicked=%1$S đã bị đuổi ra khỏi phòng.
+conversation.message.kicked.reason=%1$S đã bị kick khỏi phòng: %2$S
+# %1$S is the person who is kicking.
+# %2$S is the participant that is kicked.
+# %3$S is the reason.
+conversation.message.kicked.actor=%1$S đã đuổi %2$S khỏi phòng.
+conversation.message.kicked.actor.reason=%1$S đã đuổi %2$S khỏi phòng: %3$S
+conversation.message.kicked.you=Bạn đã bị đuổi ra khỏi phòng.
+# %1$S is the reason.
+conversation.message.kicked.you.reason=Bạn đã bị đuổi khỏi phòng: %1$S
+# %1$S is the person who is kicking.
+# %2$S is the reason.
+conversation.message.kicked.you.actor=%1$S đã đuổi bạn khỏi phòng.
+conversation.message.kicked.you.actor.reason=%1$S đã đuổi bạn khỏi phòng: %2$S
+
+# LOCALIZATION NOTE (conversation.message.removedNonMember.*):
+# These are displayed as a system message when a participant is removed from
+# a room because the room has been changed to members-only.
+# %1$S is the participant that is removed.
+# %2$S is the person who changed the room configuration.
+conversation.message.removedNonMember=%1$S đã bị xóa khỏi phòng vì cấu hình của nó đã được thay đổi thành chỉ dành cho hội viên.
+conversation.message.removedNonMember.actor=%1$S đã bị đuổi ra khỏi phòng vì %2$S đã thay đổi thành chỉ dành cho thành viên.
+conversation.message.removedNonMember.you=Bạn đã bị đuổi ra khỏi phòng vì cấu hình của phòng đã được thay đổi thành chỉ dành cho thành viên.
+# %1$S is the person who changed the room configuration.
+conversation.message.removedNonMember.you.actor=Bạn đã bị đuổi ra khỏi phòng vì %1$S đã thay đổi phòng thành chỉ dành cho thành viên.
+
+# LOCALIZATION NOTE (conversation.message.MUCShutdown):
+# These are displayed as a system message when a participant is removed from
+# a room because of a system shutdown.
+conversation.message.mucShutdown=Bạn đã bị đuổi ra khỏi phòng do hệ thống ngừng hoạt động.
+
+# LOCALIZATION NOTE (conversation.message.version*):
+# %1$S is the name of the user whose version was requested.
+# %2$S is the client name response from the client.
+# %3$S is the client version response from the client.
+# %4$S is the operating system(OS) response from the client.
+conversation.message.version=%1$S đang dùng "%2$S %3$S".
+conversation.message.versionWithOS=%1$S đang dùng "%2$S %3$S" trên %4$S.
+
+# LOCALIZATION NOTE (options.*):
+# These are the protocol specific options shown in the account manager and
+# account wizard windows.
+options.resource=Tài nguyên
+options.priority=Ưu tiên
+options.connectionSecurity=Bảo mật kết nối
+options.connectionSecurity.requireEncryption=Yêu cầu mã hóa
+options.connectionSecurity.opportunisticTLS=Sử dụng mã hóa nếu có
+options.connectionSecurity.allowUnencryptedAuth=Cho phép gửi mật khẩu chưa được mã hóa
+options.connectServer=Máy chủ
+options.connectPort=Cổng
+options.domain=Tên miền
+
+# LOCALIZATION NOTE (*.protocolName)
+# This name is used whenever the name of the protocol is shown.
+gtalk.protocolName=Google Talk
+odnoklassniki.protocolName=Odnoklassniki
+
+# LOCALIZATION NOTE (gtalk.usernameHint):
+# This is displayed inside the accountUsernameInfoWithDescription
+# string defined in imAccounts.properties when the user is
+# configuring a Google Talk account.
+gtalk.usernameHint=địa chỉ email
+
+# LOCALIZATION NOTE (gtalk.disabled):
+# It is reported that Google Talk will be disabled on June 16, 2022. The message
+# below is being pre-emptively included so a localized error message can be
+# displayed to users if this happens.
+gtalk.disabled=Google Talk không còn được hỗ trợ do Google vô hiệu hóa cổng XMPP của họ.
+
+# LOCALIZATION NOTE (odnoklassniki.usernameHint):
+# This is displayed inside the accountUsernameInfoWithDescription
+# string defined in imAccounts.properties when the user is
+# configuring a Odnoklassniki account.
+odnoklassniki.usernameHint=ID Hồ sơ
+
+# LOCALZIATION NOTE (command.*):
+# These are the help messages for each command.
+command.join3=%S [<room>[@<server>][/<nick>]] [<password>]: Tham gia một phòng, tùy chọn cung cấp máy chủ hoặc biệt hiệu hoặc mật khẩu phòng.
+command.part2=%S [<tin nhắn>]: Rời khỏi phòng hiện tại và để lại tin nhắn.
+command.topic=%S [<chủ đề mới>]: Đặt chủ đề cho căn phòng này.
+command.ban=%S <biệt danh>[<tin nhắn>]: Cấm ai đó vào phòng. Bạn phải là quản trị viên phòng để làm điều này.
+command.kick=%S <biệt danh>[<tin nhắn>]: Xóa ai đó khỏi phòng. Bạn phải là người kiểm duyệt phòng để làm điều này.
+command.invite=%S <jid>[<tin nhắn>]: Mời người dùng tham gia phòng hiện tại bằng một tin nhắn tùy chọn.
+command.inviteto=%S <phòng jid>[<mật khẩu>]: Mời đối tác trò chuyện của bạn tham gia một phòng, cùng với mật khẩu của phòng đó nếu được yêu cầu.
+command.me=%S <hành động thực hiện>: Thực hiện một hành động.
+command.nick=%S <new nickname>: Thay đổi nickname của bạn.
+command.msg=%S <nick> <message>: Gửi một tin nhắn riêng tới một thành viên trong phòng.
+command.version=%S: Yêu cầu thông tin về khách hàng mà đối tác trò chuyện của bạn đang sử dụng.
diff --git a/l10n-vi/chat/yahoo.properties b/l10n-vi/chat/yahoo.properties
new file mode 100644
index 0000000000..b43b547039
--- /dev/null
+++ b/l10n-vi/chat/yahoo.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/.
+
+yahoo.disabled=Yahoo Messenger không còn được hỗ trợ do Yahoo vô hiệu hóa giao thức kế thừa của họ.
diff --git a/l10n-vi/devtools/client/aboutdebugging.ftl b/l10n-vi/devtools/client/aboutdebugging.ftl
new file mode 100644
index 0000000000..203b2858ec
--- /dev/null
+++ b/l10n-vi/devtools/client/aboutdebugging.ftl
@@ -0,0 +1,408 @@
+# 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/.
+
+
+### These strings are used inside the about:debugging UI.
+
+
+# Page Title strings
+
+# Page title (ie tab title) for the Setup page
+about-debugging-page-title-setup-page = Trình gỡ lỗi - Cài đặt
+
+# Page title (ie tab title) for the Runtime page
+# { $selectedRuntimeId } is the id of the current runtime, such as "this-firefox", "localhost:6080", ...
+about-debugging-page-title-runtime-page = Trình gỡ lỗi - Runtime / { $selectedRuntimeId }
+
+# Sidebar strings
+
+# Display name of the runtime for the currently running instance of Firefox. Used in the
+# Sidebar and in the Setup page.
+about-debugging-this-firefox-runtime-name = { -brand-shorter-name } này
+
+# Sidebar heading for selecting the currently running instance of Firefox
+about-debugging-sidebar-this-firefox =
+ .name = { about-debugging-this-firefox-runtime-name }
+
+# Sidebar heading for connecting to some remote source
+about-debugging-sidebar-setup =
+ .name = Cài đặt
+
+# Text displayed in the about:debugging sidebar when USB devices discovery is enabled.
+about-debugging-sidebar-usb-enabled = Đã bật USB
+
+# Text displayed in the about:debugging sidebar when USB devices discovery is disabled
+# (for instance because the mandatory ADB extension is not installed).
+about-debugging-sidebar-usb-disabled = Đã tắt USB
+
+# Connection status (connected) for runtime items in the sidebar
+aboutdebugging-sidebar-runtime-connection-status-connected = Đã kết nối
+# Connection status (disconnected) for runtime items in the sidebar
+aboutdebugging-sidebar-runtime-connection-status-disconnected = Đã ngắt kết nối
+
+# Text displayed in the about:debugging sidebar when no device was found.
+about-debugging-sidebar-no-devices = Không có thiết bị nào được phát hiện
+
+# Text displayed in buttons found in sidebar items representing remote runtimes.
+# Clicking on the button will attempt to connect to the runtime.
+about-debugging-sidebar-item-connect-button = Kết nối
+
+# Text displayed in buttons found in sidebar items when the runtime is connecting.
+about-debugging-sidebar-item-connect-button-connecting = Đang kết nối…
+
+# Text displayed in buttons found in sidebar items when the connection failed.
+about-debugging-sidebar-item-connect-button-connection-failed = Kết nối thất bại
+
+# Text displayed in connection warning on sidebar item of the runtime when connecting to
+# the runtime is taking too much time.
+about-debugging-sidebar-item-connect-button-connection-not-responding = Kết nối đang chờ xử lý, kiểm tra tin nhắn trên trình duyệt đích
+
+# Text displayed as connection error in sidebar item when the connection has timed out.
+about-debugging-sidebar-item-connect-button-connection-timeout = Đã hết thời gian kết nối
+
+# Text displayed in sidebar items for remote devices where a compatible browser (eg
+# Firefox) has not been detected yet. Typically, Android phones connected via USB with
+# USB debugging enabled, but where Firefox is not started.
+about-debugging-sidebar-runtime-item-waiting-for-browser = Đang chờ trình duyệt...
+
+# Text displayed in sidebar items for remote devices that have been disconnected from the
+# computer.
+about-debugging-sidebar-runtime-item-unplugged = Đã ngắt kết nối
+
+# Title for runtime sidebar items that are related to a specific device (USB, WiFi).
+about-debugging-sidebar-runtime-item-name =
+ .title = { $displayName } ({ $deviceName })
+# Title for runtime sidebar items where we cannot get device information (network
+# locations).
+about-debugging-sidebar-runtime-item-name-no-device =
+ .title = { $displayName }
+
+# Text to show in the footer of the sidebar that links to a help page
+# (currently: https://firefox-source-docs.mozilla.org/devtools-user/about_colon_debugging/)
+about-debugging-sidebar-support = Hỗ trợ gỡ lỗi
+
+# Text to show as the ALT attribute of a help icon that accompanies the help about
+# debugging link in the footer of the sidebar
+about-debugging-sidebar-support-icon =
+ .alt = Biểu tượng trợ giúp
+
+# Text displayed in a sidebar button to refresh the list of USB devices. Clicking on it
+# will attempt to update the list of devices displayed in the sidebar.
+about-debugging-refresh-usb-devices-button = Làm mới thiết bị
+
+# Setup Page strings
+
+# Title of the Setup page.
+about-debugging-setup-title = Cài đặt
+
+# Introduction text in the Setup page to explain how to configure remote debugging.
+about-debugging-setup-intro = Định cấu hình phương thức kết nối mà bạn muốn gỡ lỗi từ xa cho thiết bị của mình.
+
+# Explanatory text in the Setup page about what the 'This Firefox' page is for
+about-debugging-setup-this-firefox2 = Sử dụng { about-debugging-this-firefox-runtime-name } để sửa lỗi các phần mở rộng và các trình làm việc dịch vụ trên phiên bản của { -brand-shorter-name }.
+
+# Title of the heading Connect section of the Setup page.
+about-debugging-setup-connect-heading = Kết nối thiết bị
+
+# USB section of the Setup page
+about-debugging-setup-usb-title = USB
+
+# Explanatory text displayed in the Setup page when USB debugging is disabled
+about-debugging-setup-usb-disabled = Bật tính năng này sẽ tải xuống và thêm các thành phần gỡ lỗi USB Android cần thiết vào { -brand-shorter-name }.
+
+# Text of the button displayed in the USB section of the setup page when USB debugging is disabled.
+# Clicking on it will download components needed to debug USB Devices remotely.
+about-debugging-setup-usb-enable-button = Kích hoạt thiết bị USB
+
+# Text of the button displayed in the USB section of the setup page when USB debugging is enabled.
+about-debugging-setup-usb-disable-button = Vô hiệu hóa thiết bị USB
+
+# Text of the button displayed in the USB section of the setup page while USB debugging
+# components are downloaded and installed.
+about-debugging-setup-usb-updating-button = Đang cập nhật...
+
+# USB section of the Setup page (USB status)
+about-debugging-setup-usb-status-enabled = Đã bật
+about-debugging-setup-usb-status-disabled = Đã tắt
+about-debugging-setup-usb-status-updating = Đang cập nhật...
+
+# USB section step by step guide
+about-debugging-setup-usb-step-enable-dev-menu2 = Bật menu Nhà phát triển trên thiết bị Android của bạn.
+
+# USB section step by step guide
+about-debugging-setup-usb-step-enable-debug2 = Bật gỡ lỗi USB trong Menu dành cho nhà phát triển Android.
+
+# USB section step by step guide
+about-debugging-setup-usb-step-enable-debug-firefox2 = Bật gỡ lỗi USB trong Firefox trên thiết bị Android.
+
+# USB section step by step guide
+about-debugging-setup-usb-step-plug-device = Kết nối thiết bị Android với máy tính của bạn.
+
+# Text shown in the USB section of the setup page with a link to troubleshoot connection errors.
+# The link goes to https://firefox-source-docs.mozilla.org/devtools-user/about_colon_debugging/index.html#connecting-to-a-remote-device
+about-debugging-setup-usb-troubleshoot = Sự cố kết nối với thiết bị USB? Khắc phục sự cố
+
+# Network section of the Setup page
+about-debugging-setup-network =
+ .title = Vị trí mạng
+
+# Text shown in the Network section of the setup page with a link to troubleshoot connection errors.
+# The link goes to https://firefox-source-docs.mozilla.org/devtools-user/about_colon_debugging/index.html#connecting-over-the-network
+about-debugging-setup-network-troubleshoot = Sự cố kết nối qua vị trí mạng? Khắc phục sự
+
+# Text of a button displayed after the network locations "Host" input.
+# Clicking on it will add the new network location to the list.
+about-debugging-network-locations-add-button = Thêm
+
+# Text to display when there are no locations to show.
+about-debugging-network-locations-empty-text = Không có vị trí mạng được thêm vào.
+
+# Text of the label for the text input that allows users to add new network locations in
+# the Connect page. A host is a hostname and a port separated by a colon, as suggested by
+# the input's placeholder "localhost:6080".
+about-debugging-network-locations-host-input-label = Máy chủ
+
+# Text of a button displayed next to existing network locations in the Connect page.
+# Clicking on it removes the network location from the list.
+about-debugging-network-locations-remove-button = Xóa
+
+# Text used as error message if the format of the input value was invalid in the network locations form of the Setup page.
+# Variables:
+# $host-value (string) - The input value submitted by the user in the network locations form
+about-debugging-network-location-form-invalid = Máy chủ lưu trữ không hợp lệ khác "{ $host-value }". Định dạng dự kiến là tên máy chủ lưu trữ: portnumber.
+
+# Text used as error message if the input value was already registered in the network locations form of the Setup page.
+# Variables:
+# $host-value (string) - The input value submitted by the user in the network locations form
+about-debugging-network-location-form-duplicate = Máy chủ lưu trữ "{ $host-value }" đã được đăng ký
+
+# Runtime Page strings
+
+# Below are the titles for the various categories of debug targets that can be found
+# on "runtime" pages of about:debugging.
+# Title of the temporary extensions category (only available for "This Firefox" runtime).
+about-debugging-runtime-temporary-extensions =
+ .name = Tiện ích mở rộng tạm thời
+# Title of the extensions category.
+about-debugging-runtime-extensions =
+ .name = Tiện ích mở rộng
+# Title of the tabs category.
+about-debugging-runtime-tabs =
+ .name = Thẻ
+# Title of the service workers category.
+about-debugging-runtime-service-workers =
+ .name = Service Workers
+# Title of the shared workers category.
+about-debugging-runtime-shared-workers =
+ .name = Workers đã chia sẻ
+# Title of the other workers category.
+about-debugging-runtime-other-workers =
+ .name = Workers khác
+# Title of the processes category.
+about-debugging-runtime-processes =
+ .name = Tiến trình
+
+# Label of the button opening the performance profiler panel in runtime pages for remote
+# runtimes.
+about-debugging-runtime-profile-button2 = Hồ sơ hiệu suất
+
+# This string is displayed in the runtime page if the current configuration of the
+# target runtime is incompatible with service workers. "Learn more" points to:
+# https://firefox-source-docs.mozilla.org/devtools-user/about_colon_debugging/index.html#service-workers-not-compatible
+about-debugging-runtime-service-workers-not-compatible = Cấu hình trình duyệt của bạn không tương thích với Service Workers. Tìm hiểu thêm
+
+# This string is displayed in the runtime page if the remote browser version is too old.
+# "Troubleshooting" link points to https://firefox-source-docs.mozilla.org/devtools-user/about_colon_debugging/
+# { $runtimeVersion } is the version of the remote browser (for instance "67.0a1")
+# { $minVersion } is the minimum version that is compatible with the current Firefox instance (same format)
+about-debugging-browser-version-too-old = Trình duyệt được kết nối có phiên bản cũ ({ $runtimeVersion }). Phiên bản được hỗ trợ tối thiểu là ({ $minVersion }). Đây là một thiết lập không được hỗ trợ và có thể khiến DevTools bị lỗi. Vui lòng cập nhật trình duyệt được kết nối. Khắc phục sự cố
+
+# Dedicated message for a backward compatibility issue that occurs when connecting:
+# from Fx 70+ to the old Firefox for Android (aka Fennec) which uses Fx 68.
+about-debugging-browser-version-too-old-fennec = Phiên bản Firefox này không thể gỡ lỗi Firefox dành cho Android (68). Chúng tôi khuyên bạn nên cài đặt Firefox Nightly dành cho Android trên điện thoại để thử nghiệm. Chi tiết khác
+
+# This string is displayed in the runtime page if the remote browser version is too recent.
+# "Troubleshooting" link points to https://firefox-source-docs.mozilla.org/devtools-user/about_colon_debugging/
+# { $runtimeID } is the build ID of the remote browser (for instance "20181231", format is yyyyMMdd)
+# { $localID } is the build ID of the current Firefox instance (same format)
+# { $runtimeVersion } is the version of the remote browser (for instance "67.0a1")
+# { $localVersion } is the version of your current browser (same format)
+about-debugging-browser-version-too-recent = Trình được kết nối gần đây ({ $runtimeVersion }, ID bản dựng { $runtimeID }) so với { -brand-shorter-name } ({ $localVersion }, ID bản dựng { $localID }). Đây là một thiết lập không được hỗ trợ và có thể khiến DevTools bị lỗi. Vui lòng cập nhật Firefox. Khắc phục sự cố
+
+# Displayed for runtime info in runtime pages.
+# { $name } is brand name such as "Firefox Nightly"
+# { $version } is version such as "64.0a1"
+about-debugging-runtime-name = { $name } ({ $version })
+
+# Text of a button displayed in Runtime pages for remote runtimes.
+# Clicking on the button will close the connection to the runtime.
+about-debugging-runtime-disconnect-button = Ngắt kết nối
+
+# Text of the connection prompt button displayed in Runtime pages, when the preference
+# "devtools.debugger.prompt-connection" is false on the target runtime.
+about-debugging-connection-prompt-enable-button = Kích hoạt nhắc nhở kết nối
+
+# Text of the connection prompt button displayed in Runtime pages, when the preference
+# "devtools.debugger.prompt-connection" is true on the target runtime.
+about-debugging-connection-prompt-disable-button = Vô hiệu hóa nhắc nhở kết nối
+
+# Title of a modal dialog displayed on remote runtime pages after clicking on the Profile Runtime button.
+about-debugging-profiler-dialog-title2 = Profiler
+
+# Clicking on the header of a debug target category will expand or collapse the debug
+# target items in the category. This text is used as ’title’ attribute of the header,
+# to describe this feature.
+about-debugging-collapse-expand-debug-targets = Thu gọn / mở rộng
+
+# Debug Targets strings
+
+# Displayed in the categories of "runtime" pages that don't have any debug target to
+# show. Debug targets depend on the category (extensions, tabs, workers...).
+about-debugging-debug-target-list-empty = Chưa có gì cả.
+
+# Text of a button displayed next to debug targets of "runtime" pages. Clicking on this
+# button will open a DevTools toolbox that will allow inspecting the target.
+# A target can be an addon, a tab, a worker...
+about-debugging-debug-target-inspect-button = Kiểm tra
+
+# Text of a button displayed in the "This Firefox" page, in the Temporary Extension
+# section. Clicking on the button will open a file picker to load a temporary extension
+about-debugging-tmp-extension-install-button = Tải tiện ích tạm thời…
+
+# Text displayed when trying to install a temporary extension in the "This Firefox" page.
+about-debugging-tmp-extension-install-error = Có lỗi trong quá trình cài đặt tiện ích tạm thời.
+
+# Text of a button displayed for a temporary extension loaded in the "This Firefox" page.
+# Clicking on the button will reload the extension.
+about-debugging-tmp-extension-reload-button = Tải lại
+
+# Text of a button displayed for a temporary extension loaded in the "This Firefox" page.
+# Clicking on the button will uninstall the extension and remove it from the page.
+about-debugging-tmp-extension-remove-button = Xóa
+
+# Text of a button displayed for a temporary extension loaded in the "This Firefox" page.
+# Clicking on the button will forcefully terminate the extension background script (button
+# only visible in extensions that includes a non-persistent background script, either an
+# event page or a background service worker).
+about-debugging-tmp-extension-terminate-bgscript-button = Chấm dứt tập lệnh nền
+
+# Message displayed in the file picker that opens to select a temporary extension to load
+# (triggered by the button using "about-debugging-tmp-extension-install-button")
+# manifest.json .xpi and .zip should not be localized.
+# Note: this message is only displayed in Windows and Linux platforms.
+about-debugging-tmp-extension-install-message = Chọn tập tin manifest.json hoặc lưu trữ .xpi/.zip
+
+# This string is displayed as a message about the add-on having a temporaryID.
+about-debugging-tmp-extension-temporary-id = WebExtension này có ID tạm thời. Tìm hiểu thêm
+
+# Text displayed for extensions in "runtime" pages, before displaying a link the extension's
+# manifest URL.
+about-debugging-extension-manifest-url =
+ .label = URL manifest
+
+# Text displayed for extensions in "runtime" pages, before displaying the extension's uuid.
+# UUIDs look like b293e463-481e-5148-a487-5aaf7a130429
+about-debugging-extension-uuid =
+ .label = UUID nội bộ
+
+# Text displayed for extensions (temporary extensions only) in "runtime" pages, before
+# displaying the location of the temporary extension.
+about-debugging-extension-location =
+ .label = Vị trí
+
+# Text displayed for extensions in "runtime" pages, before displaying the extension's ID.
+# For instance "geckoprofiler@mozilla.com" or "{ed26ddcb-5611-4512-a89a-51b8db81cfb2}".
+about-debugging-extension-id =
+ .label = ID tiện ích mở rộng
+
+# Text displayed for extensions in "runtime" pages, before displaying the status of the
+# extension background script.
+about-debugging-extension-backgroundscript =
+ .label = Tập lệnh nền
+
+# Displayed for extension using a non-persistent background page (either an event page or
+# background service worker) when the background script is currently running.
+about-debugging-extension-backgroundscript-status-running = Đang chạy
+
+# Displayed for extension using a non-persistent background page when is currently stopped.
+about-debugging-extension-backgroundscript-status-stopped = Đã dừng
+
+# This string is displayed as a label of the button that pushes a test payload
+# to a service worker.
+# Note this relates to the "Push" API, which is normally not localized so it is
+# probably better to not localize it.
+about-debugging-worker-action-push2 = Đẩy
+ .disabledTitle = Dịch vụ đẩy Service Worker hiện đang bị vô hiệu hóa cho đa xử lý { -brand-shorter-name }
+
+# This string is displayed as a label of the button that starts a service worker.
+about-debugging-worker-action-start2 = Bắt đầu
+ .disabledTitle = Dịch vụ bắt đầu Service Worker hiện đang bị vô hiệu hóa cho đa xử lý { -brand-shorter-name }
+
+# This string is displayed as a label of the button that unregisters a service worker.
+about-debugging-worker-action-unregister = Hủy đăng ký
+
+# Displayed for service workers in runtime pages that listen to Fetch events.
+about-debugging-worker-fetch-listening =
+ .label = Fetch
+ .value = Nghe các sự kiện fetch
+
+# Displayed for service workers in runtime pages that do not listen to Fetch events.
+about-debugging-worker-fetch-not-listening =
+ .label = Fetch
+ .value = Không nghe các sự kiện fetch
+
+# Displayed for service workers in runtime pages that are currently running (service
+# worker instance is active).
+about-debugging-worker-status-running = Đang chạy
+
+# Displayed for service workers in runtime pages that are registered but stopped.
+about-debugging-worker-status-stopped = Đã dừng
+
+# Displayed for service workers in runtime pages that are registering.
+about-debugging-worker-status-registering = Đang đăng ký
+
+# Displayed for service workers in runtime pages, to label the scope of a worker
+about-debugging-worker-scope =
+ .label = Phạm vi
+
+# Displayed for service workers in runtime pages, to label the push service endpoint (url)
+# of a worker
+about-debugging-worker-push-service =
+ .label = Dịch vụ đẩy
+
+# Displayed as title of the inspect button when service worker debugging is disabled.
+about-debugging-worker-inspect-action-disabled =
+ .title = Trình kiểm tra Service Worker hiện đang bị vô hiệu hóa cho đa xử lý { -brand-shorter-name }
+
+# Displayed as title of the inspect button for zombie tabs (e.g. tabs loaded via a session restore).
+about-debugging-zombie-tab-inspect-action-disabled =
+ .title = Thẻ không được tải đầy đủ và không thể được kiểm tra
+
+# Displayed as name for the Main Process debug target in the Processes category. Only for
+# remote runtimes, if `devtools.aboutdebugging.process-debugging` is true.
+about-debugging-main-process-name = Tiến trình chính
+
+# Displayed as description for the Main Process debug target in the Processes category.
+# Only for remote browsers, if `devtools.aboutdebugging.process-debugging` is true.
+about-debugging-main-process-description2 = Quy trình chính cho trình duyệt đích
+
+# Displayed instead of the Main Process debug target when the preference
+# `devtools.browsertoolbox.fission` is true.
+about-debugging-multiprocess-toolbox-name = Hộp công cụ đa xử lý
+
+# Description for the Multiprocess Toolbox target.
+about-debugging-multiprocess-toolbox-description = Quy trình chính và quy trình nội dung cho trình duyệt đích
+
+# Alt text used for the close icon of message component (warnings, errors and notifications).
+about-debugging-message-close-icon =
+ .alt = Đóng thông báo
+
+# Label text used for the error details of message component.
+about-debugging-message-details-label-error = Chi tiết lỗi
+
+# Label text used for the warning details of message component.
+about-debugging-message-details-label-warning = Chi tiết cảnh báo
+
+# Label text used for default state of details of message component.
+about-debugging-message-details-label = Chi tiết
diff --git a/l10n-vi/devtools/client/accessibility.ftl b/l10n-vi/devtools/client/accessibility.ftl
new file mode 100644
index 0000000000..209da26a25
--- /dev/null
+++ b/l10n-vi/devtools/client/accessibility.ftl
@@ -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/.
+
+
+### These strings are used inside the Accessibility panel.
+
+accessibility-learn-more = Tìm hiểu thêm
+accessibility-text-label-header = Nhãn và tên văn bản
+accessibility-keyboard-header = Bàn phím
+
+## Text entries that are used as text alternative for icons that depict accessibility isses.
+
+
+## Text entries that are used as text alternative for icons that depict accessibility issues.
+
+accessibility-warning =
+ .alt = Cảnh báo
+accessibility-fail =
+ .alt = Lỗi
+accessibility-best-practices =
+ .alt = Thực hành tốt nhất
+
+## Text entries for a paragraph used in the accessibility panel sidebar's checks section
+## that describe that currently selected accessible object has an accessibility issue
+## with its text label or accessible name.
+
+accessibility-text-label-issue-area = Sử dụng thuộc tính alt để gắn nhãn các phần tử
area
có thuộc tính href. Tìm hiểu thêm
+accessibility-text-label-issue-dialog = Hộp thoại phải được dán nhãn. Tìm hiểu thêm
+accessibility-text-label-issue-document-title = Tài liệu phải có title. Tìm hiểu thêm
+accessibility-text-label-issue-embed = Nội dung nhúng phải được dán nhãn. Tìm hiểu thêm
+accessibility-text-label-issue-figure = Số liệu với chú thích tùy chọn nên được dán nhãn. Tìm hiểu thêm
+accessibility-text-label-issue-fieldset = Các phần tử fieldset phải được dán nhãn. Tìm hiểu thêm
+accessibility-text-label-issue-fieldset-legend2 = Sử dụng một phần tử legend để gắn nhãn fieldset. Tìm hiểu thêm
+accessibility-text-label-issue-form = Các yếu tố hình thức phải được dán nhãn. Tìm hiểu thêm
+accessibility-text-label-issue-form-visible = Các yếu tố hình thức nên có một nhãn văn bản có thể nhìn thấy. Tìm hiểu thêm
+accessibility-text-label-issue-frame = Các phần tử frame phải được dán nhãn. Tìm hiểu thêm
+accessibility-text-label-issue-glyph = Sử dụng thuộc tính alt để gắn nhãn các phần tử mglyph. Tìm hiểu thêm
+accessibility-text-label-issue-heading = Headings phải được dán nhãn. Tìm hiểu thêm
+accessibility-text-label-issue-heading-content = Headings nên có nội dung văn bản hiển thị. Tìm hiểu thêm
+accessibility-text-label-issue-iframe = Sử dụng thuộc tính title để mô tả nội dung iframe. Tìm hiểu thêm
+accessibility-text-label-issue-image = Nội dung với hình ảnh phải được dán nhãn. Tìm hiểu thêm
+accessibility-text-label-issue-interactive = Các yếu tố tương tác phải được dán nhãn. Tìm hiểu thêm
+accessibility-text-label-issue-optgroup-label2 = Sử dụng một thuộc tính label để gắn nhãn optgroup. Tìm hiểu thêm
+accessibility-text-label-issue-toolbar = Thanh công cụ phải được dán nhãn khi có nhiều hơn một thanh công cụ. Tìm hiểu thêm
+
+## Text entries for a paragraph used in the accessibility panel sidebar's checks section
+## that describe that currently selected accessible object has a keyboard accessibility
+## issue.
+
+accessibility-keyboard-issue-semantics = Các phần tử có thuộc tính focus nên có tính tương tác. Tìm hiểu thêm
+accessibility-keyboard-issue-tabindex = Tránh sử dụng thuộc tính tabindex lớn hơn 0. Tìm hiểu thêm
+accessibility-keyboard-issue-action = Các yếu tố tương tác phải có thể được kích hoạt bằng bàn phím. Tìm hiểu thêm
+accessibility-keyboard-issue-focusable = Các phần tử tương tác phải có thuộc tính focus. Tìm hiểu thêm
diff --git a/l10n-vi/devtools/client/accessibility.properties b/l10n-vi/devtools/client/accessibility.properties
new file mode 100644
index 0000000000..dc749b3887
--- /dev/null
+++ b/l10n-vi/devtools/client/accessibility.properties
@@ -0,0 +1,313 @@
+# 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 These strings are used inside the Accessibility panel
+# which is available from the Web Developer sub-menu -> 'Accessibility'.
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE These strings are used inside the Accessibility panel
+# which is in the Developer Tools, available in the
+# Browser Tools sub-menu -> 'Web Developer Tools'
+#
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE (accessibility.role): A title text used for Accessibility
+# tree header column that represents accessible element role.
+accessibility.role=Vai trò
+
+# LOCALIZATION NOTE (accessibility.name): A title text used for Accessibility
+# tree header column that represents accessible element name.
+accessibility.name=Tên
+
+# LOCALIZATION NOTE (accessibility.logo): A title text used for Accessibility
+# logo used on the accessibility panel landing page.
+accessibility.logo=Logo trợ năng
+
+# LOCALIZATION NOTE (accessibility.properties): A title text used for header
+# for Accessibility details sidebar.
+accessibility.properties=Thuộc tính
+
+# LOCALIZATION NOTE (accessibility.treeName): A title text used for
+# Accessibility tree (that represents accessible element name) container.
+accessibility.treeName=Cây tiếp cận
+
+# LOCALIZATION NOTE (accessibility.accessible.selectElement.title): A title text
+# displayed on buttons next to accessible elements in the `relations` section, allowing the
+# user to select the element in the accessibility tree.
+
+# LOCALIZATION NOTE (accessibility.accessible.selectNodeInInspector.title): A title text
+# displayed on buttons next to nodes in the sidebar, allowing the user to select the node
+# in the Inspector panel.
+accessibility.accessible.selectNodeInInspector.title=Nhấn để chọn node trong trình kiểm tra
+
+# LOCALIZATION NOTE (accessibility.accessible.notAvailable): A title text
+# displayed when accessible sidebar panel does not have an accessible object to
+# display.
+accessibility.accessible.notAvailable=Thông tin có thể truy cập hiện không có sẵn
+
+# LOCALIZATION NOTE (accessibility.enable): A title text for Enable
+# accessibility button used to enable accessibility service.
+accessibility.enable=Bật tính năng trợ năng
+
+# LOCALIZATION NOTE (accessibility.enabling): A title text for Enable
+# accessibility button used when accessibility service is being enabled.
+accessibility.enabling=Đang bật tính năng trợ năng…
+
+# LOCALIZATION NOTE (accessibility.disable): A title text for Disable
+# accessibility button used to disable accessibility service.
+accessibility.disable=Tắt tính năng trợ năng
+
+# LOCALIZATION NOTE (accessibility.disabling): A title text for Disable
+# accessibility button used when accessibility service is being
+# disabled.
+accessibility.disabling=Đang tắt tính năng trợ năng…
+
+# LOCALIZATION NOTE (accessibility.pick): A title text for Picker button
+# button used to pick accessible objects from the page.
+accessibility.pick=Chọn đối tượng có thể truy cập từ trang
+
+# LOCALIZATION NOTE (accessibility.disable.disabledTitle): A title text used for
+# a tooltip for Disable accessibility button when accessibility service can not
+# be disabled. It is the case when a user is using a 3rd party accessibility
+# tool such as screen reader.
+accessibility.disable.disabledTitle=Không thể tắt dịch vụ trợ năng. Nó được sử dụng bên ngoài công cụ nhà phát triển.
+
+# LOCALIZATION NOTE (accessibility.disable.enabledTitle): A title text used for
+# a tooltip for Disable accessibility button when accessibility service can be
+# disabled.
+accessibility.disable.enabledTitle=Dịch vụ trợ năng sẽ được tắt cho tất cả các thẻ và cửa sổ.
+
+# LOCALIZATION NOTE (accessibility.enable.disabledTitle): A title text used for
+# a tooltip for Enabled accessibility button when accessibility service can not
+# be enabled.
+accessibility.enable.disabledTitle=Dịch vụ truy cập không thể được bật. Nó được tắt thông qua ưu tiên bảo mật dịch vụ tiếp cận.
+
+# LOCALIZATION NOTE (accessibility.enable.enabledTitle): A title text used for
+# a tooltip for Enabled accessibility button when accessibility service can be
+# enabled.
+accessibility.enable.enabledTitle=Dịch vụ trợ năng sẽ được bật cho tất cả các thẻ và cửa sổ.
+
+# LOCALIZATION NOTE (accessibility.learnMore): A text that is used as is or as textual
+# description in places that link to accessibility inspector documentation.
+accessibility.learnMore=Tìm hiểu thêm
+
+# LOCALIZATION NOTE (accessibility.description.general.p1): A title text for the first
+# paragraph, used when accessibility service description is provided before accessibility
+# inspector is enabled. %S in the content will be replaced by a link at run time
+# with the accessibility.learnMore string.
+accessibility.description.general.p1=Trình kiểm tra khả năng truy cập cho phép bạn kiểm tra cây khả năng truy cập trang hiện tại, được sử dụng bởi trình đọc màn hình và các công nghệ hỗ trợ khác. %S
+
+# LOCALIZATION NOTE (accessibility.description.general.p2): A title text for the second
+# paragraph, used when accessibility service description is provided before accessibility
+# inspector is enabled.
+accessibility.description.general.p2=Các tính năng trợ năng có thể ảnh hưởng đến hiệu suất của các bảng công cụ nhà phát triển khác và nên được tắt khi không sử dụng.
+
+# LOCALIZATION NOTE (accessibility.tree.menu.printToJSON): A title text used when a
+# context menu item for printing an accessible tree to JSON is rendered after triggering a
+# context menu for an accessible tree row.
+accessibility.tree.menu.printToJSON=In bằng JSON
+
+# LOCALIZATION NOTE (accessibility.checks): A title text used for header for checks
+# section in Accessibility details sidebar.
+accessibility.checks=Kiểm tra
+
+# LOCALIZATION NOTE (accessibility.checks.empty2): A title text used for indicating that
+# accessibility checks for a node yielded no results and another node should be
+# selected.
+accessibility.checks.empty2=Không kiểm tra nút này.
+
+# LOCALIZATION NOTE (accessibility.contrast.header): A title text used for header for
+# checks related to color and contrast.
+accessibility.contrast.header=Màu sắc và độ tương phản
+
+# LOCALIZATION NOTE (accessibility.contrast.error): A title text for the color
+# contrast ratio, used when the tool is unable to calculate the contrast ratio value.
+accessibility.contrast.error=Không thể tính toán
+
+# LOCALIZATION NOTE (accessibility.contrast.large.text): A title text for the color
+# contrast ratio label indicating that the color contrast criteria used is if for large
+# text. This is lower case because it's used as a label for a tree item in accessibility
+# tree.
+accessibility.contrast.large.text=văn bản lớn
+
+# LOCALIZATION NOTE (accessibility.contrast.large.title): A title text for the tooltip
+# used for the large text label (see accessibility.contrast.large.text).
+accessibility.contrast.large.title=Văn bản là 14 điểm và đậm hoặc lớn hơn, hoặc 18 điểm hoặc lớn hơn.
+
+# LOCALIZATION NOTE (accessibility.contrast.annotation.AA): A title text for the paragraph
+# describing that the given colour contrast satisfies AA standard from Web Content
+# Accessibility Guidelines. %S in the content will be replaced by a link at run time
+# with the accessibility.learnMore string.
+accessibility.contrast.annotation.AA=Đạt tiêu chuẩn WCAG AA cho văn bản có thể truy cập. %S
+
+# LOCALIZATION NOTE (accessibility.contrast.annotation.AAA): A title text for the
+# paragraph describing that the given colour contrast satisfies AAA standard from Web
+# Content Accessibility Guidelines. %S in the content will be replaced by a link at run
+# time with the accessibility.learnMore string.
+accessibility.contrast.annotation.AAA=Đạt tiêu chuẩn WCAG AAA cho văn bản có thể truy cập. %S
+
+# LOCALIZATION NOTE (accessibility.contrast.annotation.FAIL): A title text for the
+# paragraph describing that the given colour contrast fails to meet the minimum level from
+# Web Content Accessibility Guidelines. %S in the content will be replaced by a link at
+# run time with the accessibility.learnMore string.
+accessibility.contrast.annotation.FAIL=Không đạt tiêu chuẩn WCAG cho văn bản có thể truy cập. %S
+
+# LOCALIZATION NOTE (accessibility.contrast.annotation.transparent.error): A title text for the
+# paragraph suggesting a fix for error in color contrast calculation for text nodes with zero alpha.
+accessibility.contrast.annotation.transparent.error=Chọn một màu không trong suốt.
+
+# LOCALIZATION NOTE (accessibility.badges): A title text for the group of badges
+# that are rendered for each accessible row within the accessibility tree when
+# one or more accessibility checks fail.
+accessibility.badges=Kiểm tra khả năng tiếp cận
+
+# LOCALIZATION NOTE (accessibility.filter.none): A title text for the filter
+# that is rendered within the accessibility panel toolbar for a menu item that
+# resets all filtering in tree, and for the simulation menu item that resets
+# applied color matrices to the default matrix.
+accessibility.filter.none=Không
+
+# LOCALIZATION NOTE (accessibility.filter.all2): A title text for the filter
+# that is rendered within the accessibility panel toolbar for a menu item that
+# filters the tree based on all accessibility failures within it.
+accessibility.filter.all2=Tất cả vấn đề
+
+# LOCALIZATION NOTE (accessibility.filter.contrast): A title text for the filter
+# that is rendered within the accessibility panel toolbar for a menu item that
+# filters the tree based on contrast accessibility failures within it.
+accessibility.filter.contrast=Tương phản
+
+# LOCALIZATION NOTE (accessibility.filter.textLabel): A title text for the filter
+# that is rendered within the accessibility panel toolbar for a menu item that
+# filters the tree based on text label and name accessibility failures within it.
+accessibility.filter.textLabel=Nhãn văn bản
+
+# LOCALIZATION NOTE (accessibility.filter.keyboard): A title text for the filter
+# that is rendered within the accessibility panel toolbar for a menu item that
+# filters the tree based on keyboard accessibility failures within it.
+accessibility.filter.keyboard=Bàn phím
+
+# LOCALIZATION NOTE (accessibility.badge.contrast): A title text for the badge
+# that is rendered within the accessible row in the accessibility tree for a
+# given accessible object that does not satisfy the WCAG guideline for colour
+# contrast.
+accessibility.badge.contrast=độ tương phản
+
+# LOCALIZATION NOTE (accessibility.badge.contrast.warning): A label for the
+# badge and attached warning icon that is rendered within the accessible row in
+# the accessibility tree for a given accessible object that does not satisfy the
+# WCAG guideline for colour contrast.
+accessibility.badge.contrast.warning=cảnh báo tương phản
+
+# LOCALIZATION NOTE (accessibility.badge.keyboard): A title text for the
+# badge that is rendered within the accessible row in the accessibility tree for
+# a given accessible object that does not satisfy the WCAG guideline for
+# keyboard accessibility.
+accessibility.badge.keyboard=bàn phím
+
+# LOCALIZATION NOTE (accessibility.badge.textLabel): A title text for the
+# badge that is rendered within the accessible row in the accessibility tree for
+# a given accessible object that does not satisfy the WCAG guideline for text
+# alternative.
+accessibility.badge.textLabel=nhãn văn bản
+
+# LOCALIZATION NOTE (accessibility.badge.contrast.tooltip): A title text for the
+# badge tooltip that is rendered on mouse hover over the badge in the accessible
+# row in the accessibility tree for a given accessible object that does not
+# satisfy the WCAG guideline for colour contrast.
+accessibility.badge.contrast.tooltip=Không đạt tiêu chuẩn WCAG cho văn bản có thể truy cập.
+
+# LOCALIZATION NOTE (accessibility.badge.keyboard.tooltip): A title text
+# for the badge tooltip that is rendered on mouse hover over the badge in the
+# accessible row in the accessibility tree for a given accessible object that
+# does not satisfy the WCAG guideline for keyboard accessibility.
+accessibility.badge.keyboard.tooltip=Không đáp ứng các tiêu chuẩn WCAG cho khả năng truy cập bàn phím.
+
+# LOCALIZATION NOTE (accessibility.badge.textLabel.tooltip): A title text
+# for the badge tooltip that is rendered on mouse hover over the badge in the
+# accessible row in the accessibility tree for a given accessible object that
+# does not satisfy the WCAG guideline for text alternative.
+accessibility.badge.textLabel.tooltip=Không đạt tiêu chuẩn WCAG đối với văn bản thay thế.
+
+# LOCALIZATION NOTE (accessibility.tree.filters): A title text for the toolbar
+# within the main accessibility panel that contains a list of filters to be for
+# accessibility audit.
+accessibility.tree.filters=Kiểm tra các vấn đề:
+
+# LOCALIZATION NOTE (accessibility.tree.filters.prefs): A title text for the
+# preferences button tooltip that contains preferences for accessibility audit.
+accessibility.tree.filters.prefs=Cấu hình tùy chỉnh
+
+# LOCALIZATION NOTE (accessibility.progress.initializing): A title text for the
+# accessibility panel overlay shown when accessibility audit is starting up.
+accessibility.progress.initializing=Đang khởi tạo…
+
+# LOCALIZATION NOTE (accessibility.progress.initializing): A title text for the
+# accessibility panel overlay shown when accessibility audit is running showing
+# the number of nodes being audited. Semi-colon list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+accessibility.progress.progressbar=Đang kiểm tra #1 node
+
+# LOCALIZATION NOTE (accessibility.progress.finishing): A title text for the
+# accessibility panel overlay shown when accessibility audit is finishing up.
+accessibility.progress.finishing=Kết thúc lên...
+
+# LOCALIZATION NOTE (accessibility.pref.scroll.into.view.title): A title
+# text for the tooltip for the checkbox pref in the accessibility panel that
+# sets node auto scroll.
+accessibility.pref.scroll.into.view.title=Tự động cuộn nút đã chọn vào chế độ xem
+
+# LOCALIZATION NOTE (accessibility.pref.scroll.into.view.label): A title
+# text for the checkbox pref in the accessibility panel that sets node auto
+# scroll.
+accessibility.pref.scroll.into.view.label=Cuộn đến vị trí có thể xem
+
+# LOCALIZATION NOTE (accessibility.documentation.label): This is the label for
+# the Documentation menu item.
+accessibility.documentation.label=Tài liệu…
+
+# LOCALIZATION NOTE (accessibility.simulation): A title text for the toolbar
+# within the main accessibility panel that contains a list of simulations for
+# vision deficiencies.
+accessibility.simulation=Mô phỏng:
+
+# LOCALIZATION NOTE (accessibility.simulation.protanopia): This label is shown
+# in the "Simulate" menu in the accessibility panel and represent the protanopia simulation option.
+accessibility.simulation.protanopia=Protanopia (mù màu đỏ)
+
+# LOCALIZATION NOTE (accessibility.simulation.deuteranopia): This label is shown
+# in the "Simulate" menu in the accessibility panel and represent the deuteranopia simulation option.
+accessibility.simulation.deuteranopia=Deuteranopia (mù màu xanh lá)
+
+# LOCALIZATION NOTE (accessibility.simulation.tritanopia): This label is shown
+# in the "Simulate" menu in the accessibility panel and represent the tritanopia simulation option.
+accessibility.simulation.tritanopia=Tritanopia (mù màu xanh dương)
+
+# LOCALIZATION NOTE (accessibility.simulation.contrastLoss): This label is shown
+# in the "Simulate" menu in the accessibility panel and represent the contrast loss simulation option.
+# It is also shown in the simulation menu button in the accessibility panel and represent the
+# contrast loss simulation option currently selected.
+accessibility.simulation.contrastLoss=Mất tương phản
+
+# LOCALIZATION NOTE (accessibility.simulation.achromatopsia): This label is shown
+# in the "Simulate" menu in the accessibility panel and represent the achromatopsia simulation option.
+accessibility.simulation.achromatopsia=Achromatopsia (mù đơn sắc)
+
+# LOCALIZATION NOTE (accessibility.toolbar.displayTabbingOrder.label): A title text for a checkbox label
+# in the accessibility panel toolbar that turns on/off the overlay of focusable elements in their
+# tabbing order.
+accessibility.toolbar.displayTabbingOrder.label=Hiển thị thứ tự thẻ
+
+# LOCALIZATION NOTE (accessibility.toolbar.displayTabbingOrder.tooltip): A title text for a checkbox
+# tooltip in the accessibility panel toolbar that turns on/off the overlay of focusable elements in
+# their tabbing order.
+accessibility.toolbar.displayTabbingOrder.tooltip=Hiển thị thứ tự thẻ của các phần tử và chỉ số thẻ của chúng.
diff --git a/l10n-vi/devtools/client/animationinspector.properties b/l10n-vi/devtools/client/animationinspector.properties
new file mode 100644
index 0000000000..40a901443f
--- /dev/null
+++ b/l10n-vi/devtools/client/animationinspector.properties
@@ -0,0 +1,182 @@
+# 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 These strings are used inside the Animation inspector
+# which is available as a sidebar panel in the Inspector.
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE (panel.noAnimation):
+# This is the label shown in the panel when there are no displayable animations.
+# (e.g. In case of user selected a non-element node or a node that is not animated).
+panel.noAnimation=Không tìm thấy hoạt hình nào cho phần tử hiện tại.\nNhấp một phần tử khác từ trang.
+
+# LOCALIZATION NOTE (player.animationDurationLabel):
+# This string is displayed in each animation player widget. It is the label
+# displayed before the animation duration.
+player.animationDurationLabel=Thời gian:
+
+# LOCALIZATION NOTE (player.infiniteDurationText):
+# This string is displayed in a tooltip on animation player widget, in case the
+# duration of the animation is infinite.
+player.infiniteDurationText=∞
+
+# LOCALIZATION NOTE (player.animationDelayLabel):
+# This string is displayed in each animation player widget. It is the label
+# displayed before the animation delay.
+player.animationDelayLabel=Độ trễ:
+
+# LOCALIZATION NOTE (player.animationEndDelayLabel):
+# This string is displayed in each animation player widget. It is the label
+# displayed before the animation endDelay.
+player.animationEndDelayLabel=Kết thúc độ trễ:
+
+# LOCALIZATION NOTE (player.animationRateLabel):
+# This string is displayed in each animation player widget. It is the label
+# displayed before the animation playback rate.
+player.animationRateLabel=Tỷ lệ phát lại:
+
+# LOCALIZATION NOTE (player.animationIterationCountLabel):
+# This string is displayed in each animation player widget. It is the label
+# displayed before the number of times the animation is set to repeat.
+player.animationIterationCountLabel=Lặp lại:
+
+# LOCALIZATION NOTE (player.infiniteIterationCount):
+# In case the animation repeats infinitely, this string is displayed next to the
+# player.animationIterationCountLabel string, instead of a number.
+player.infiniteIterationCount=∞
+
+# LOCALIZATION NOTE (player.infiniteIterationCountText):
+# See player.infiniteIterationCount for a description of what this is.
+# Unlike player.infiniteIterationCount, this string isn't used in HTML, but in
+# a tooltip.
+player.infiniteIterationCountText=∞
+
+# LOCALIZATION NOTE (player.animationIterationStartLabel2):
+# This string is displayed in a tooltip that appears when hovering over
+# animations in the timeline. It is the label displayed before the animation
+# iterationStart value.
+# %1$S will be replaced by the original iteration start value
+# %2$S will be replaced by the actual time of iteration start without time unit
+# e.g.
+# If iterationStart of animation is 0.5 and duration is 1 sec, the string will be
+# "Iteration start: 0.5 (0.5s)"
+player.animationIterationStartLabel2=Vòng lặp bắt đầu: %1$S(%2$S)
+
+# LOCALIZATION NOTE (player.animationOverallEasingLabel):
+# This string is displayed in a tooltip that appears when hovering over
+# animations in the timeline. It is the label displayed before the easing
+# that applies to a whole iteration of an animation as opposed to the
+# easing that applies between animation keyframes.
+player.animationOverallEasingLabel=Nới lỏng tổng thể:
+
+# LOCALIZATION NOTE (player.animationTimingFunctionLabel):
+# This string is displayed in a tooltip that appears when hovering over
+# animations in the timeline. It is the label displayed before the
+# animation-timing-function for CSS Animations.
+player.animationTimingFunctionLabel=Hàm thời gian hoạt hình:
+
+# LOCALIZATION NOTE (player.animationFillLabel):
+# This string is displayed in a tooltip that appears when hovering over
+# animations in the timeline. It is the label displayed before the animation
+# fill mode value.
+player.animationFillLabel=Điền:
+
+# LOCALIZATION NOTE (player.animationDirectionLabel):
+# This string is displayed in a tooltip that appears when hovering over
+# animations in the timeline. It is the label displayed before the animation
+# direction value.
+player.animationDirectionLabel=Hướng:
+
+# LOCALIZATION NOTE (player.timeLabel):
+# This string is displayed in each animation player widget, to indicate either
+# how long (in seconds) the animation lasts, or what is the animation's current
+# time (in seconds too);
+player.timeLabel=%Ss
+
+# LOCALIZATION NOTE (player.infiniteDurationText):
+# This string is displayed in animation player widget, in case the duration of the
+# animation is infinite.
+player.infiniteTimeLabel=∞
+
+# LOCALIZATION NOTE (player.playbackRateLabel):
+# This string is displayed in each animation player widget, as the label of
+# drop-down list items that can be used to change the rate at which the
+# animation runs (1× being the default, 2× being twice as fast).
+player.playbackRateLabel=%S×
+
+# LOCALIZATION NOTE (player.runningOnCompositorTooltip):
+# This string is displayed as a tooltip for the icon that indicates that the
+# animation is running on the compositor thread.
+player.runningOnCompositorTooltip=Hiệu ứng này đang chạy trên chủ đề tổng hợp
+
+# LOCALIZATION NOTE (player.allPropertiesOnCompositorTooltip):
+# This string is displayed as a tooltip for the icon that indicates that
+# all of animation is running on the compositor thread.
+player.allPropertiesOnCompositorTooltip=Tất cả thuộc tính hiệu ứng được tối ưu hóa
+
+# LOCALIZATION NOTE (player.somePropertiesOnCompositorTooltip):
+# This string is displayed as a tooltip for the icon that indicates that
+# all of animation is not running on the compositor thread.
+player.somePropertiesOnCompositorTooltip=Một số thuộc tính hiệu ứng được tối ưu hóa
+
+# LOCALIZATION NOTE (timeline.pausedButtonTooltip):
+# This string is displayed in the timeline toolbar, as the tooltip of the
+# pause/resume button that can be used to pause or resume the animations
+timeline.pausedButtonTooltip=Tiếp tục hiệu ứng
+
+# LOCALIZATION NOTE (timeline.resumedButtonTooltip):
+# This string is displayed in the timeline toolbar, as the tooltip of the
+# pause/resume button that can be used to pause or resume the animations
+timeline.resumedButtonTooltip=Tạm dừng hiệu ứng
+
+# LOCALIZATION NOTE (timeline.rewindButtonTooltip):
+# This string is displayed in the timeline toolbar, as the tooltip of the
+# rewind button that can be used to rewind the animations
+timeline.rewindButtonTooltip=Tua lại hiệu ứng
+
+# LOCALIZATION NOTE (timeline.timeGraduationLabel):
+# This string is displayed at the top of the animation panel, next to each time
+# graduation, to indicate what duration (in milliseconds) this graduation
+# corresponds to.
+timeline.timeGraduationLabel=%Sms
+
+# LOCALIZATION NOTE (timeline.cssanimation.nameLabel):
+# This string is displayed in a tooltip of the animation panel that is shown
+# when hovering over the name of a CSS Animation in the timeline UI.
+# %S will be replaced by the name of the animation at run-time.
+timeline.cssanimation.nameLabel=%S - Hiệu ứng CSS
+
+# LOCALIZATION NOTE (timeline.csstransition.nameLabel):
+# This string is displayed in a tooltip of the animation panel that is shown
+# when hovering over the name of a CSS Transition in the timeline UI.
+# %S will be replaced by the name of the transition at run-time.
+timeline.csstransition.nameLabel=%S - Chuyển hình CSS
+
+# LOCALIZATION NOTE (timeline.scriptanimation.nameLabel):
+# This string is displayed in a tooltip of the animation panel that is shown
+# when hovering over the name of a script-generated animation in the timeline UI.
+# %S will be replaced by the name of the animation at run-time.
+timeline.scriptanimation.nameLabel=%S - Hiệu ứng Script
+
+# LOCALIZATION NOTE (timeline.scriptanimation.unnamedLabel):
+# This string is displayed in a tooltip of the animation panel that is shown
+# when hovering over an unnamed script-generated animation in the timeline UI.
+timeline.scriptanimation.unnamedLabel=Đoạn mã hoạt hình
+
+# LOCALIZATION NOTE (timeline.unknown.nameLabel):
+# This string is displayed in a tooltip of the animation panel that is shown
+# when hovering over the name of an unknown animation type in the timeline UI.
+# This can happen if devtools couldn't figure out the type of the animation.
+# %S will be replaced by the name of the transition at run-time.
+timeline.unknown.nameLabel=%S
+
+# LOCALIZATION NOTE (detail.propertiesHeader.percentage):
+# This string is displayed on header label in .animated-properties-header.
+# %S represents the value in percentage with two decimal points, localized.
+# there are two "%" after %S to escape and display "%"
+detail.propertiesHeader.percentage=%S%%
diff --git a/l10n-vi/devtools/client/application.ftl b/l10n-vi/devtools/client/application.ftl
new file mode 100644
index 0000000000..d810c3d0a0
--- /dev/null
+++ b/l10n-vi/devtools/client/application.ftl
@@ -0,0 +1,147 @@
+# 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/.
+
+
+### These strings are used inside the Application panel which is available
+### by setting the preference `devtools-application-enabled` to true.
+
+
+### The correct localization of this file might be to keep it in English, or another
+### language commonly spoken among web developers. You want to make that choice consistent
+### across the developer tools. A good criteria is the language in which you'd find the
+### best documentation on web development on the web.
+
+# Header for the list of Service Workers displayed in the application panel for the current page.
+serviceworker-list-header = Service Workers
+
+# Text displayed next to the list of Service Workers to encourage users to check out
+# about:debugging to see all registered Service Workers.
+serviceworker-list-aboutdebugging = Mở about:debugging cho Service Workers từ các miền khác
+
+# Text for the button to unregister a Service Worker. Displayed for active Service Workers.
+serviceworker-worker-unregister = Hủy đăng ký
+
+# Text for the debug link displayed for an already started Service Worker. Clicking on the
+# link opens a new devtools toolbox for this service worker. The title attribute is only
+# displayed when the link is disabled.
+serviceworker-worker-debug = Gỡ lỗi
+ .title = Chỉ dịch vụ đang chạy có thể gỡ lỗi
+
+# Alt text for the image icon displayed inside a debug link for a service worker.
+serviceworker-worker-inspect-icon =
+ .alt = Kiểm tra
+
+# Text for the start link displayed for a registered but not running Service Worker.
+# Clicking on the link will attempt to start the service worker.
+serviceworker-worker-start3 = Bắt đầu
+
+# Text displayed for the updated time of the service worker. The