summaryrefslogtreecommitdiffstats
path: root/l10n-vi/mobile
diff options
context:
space:
mode:
Diffstat (limited to 'l10n-vi/mobile')
-rw-r--r--l10n-vi/mobile/android/chrome/about.dtd21
-rw-r--r--l10n-vi/mobile/android/chrome/aboutAccounts.dtd13
-rw-r--r--l10n-vi/mobile/android/chrome/aboutAccounts.properties16
-rw-r--r--l10n-vi/mobile/android/chrome/aboutAddons.dtd15
-rw-r--r--l10n-vi/mobile/android/chrome/aboutAddons.properties12
-rw-r--r--l10n-vi/mobile/android/chrome/aboutCertError.dtd31
-rw-r--r--l10n-vi/mobile/android/chrome/aboutDownloads.dtd15
-rw-r--r--l10n-vi/mobile/android/chrome/aboutDownloads.properties17
-rw-r--r--l10n-vi/mobile/android/chrome/aboutHome.dtd7
-rw-r--r--l10n-vi/mobile/android/chrome/aboutLogins.dtd9
-rw-r--r--l10n-vi/mobile/android/chrome/aboutLogins.properties33
-rw-r--r--l10n-vi/mobile/android/chrome/aboutPrivateBrowsing.dtd25
-rw-r--r--l10n-vi/mobile/android/chrome/browser.properties477
-rw-r--r--l10n-vi/mobile/android/chrome/config.dtd21
-rw-r--r--l10n-vi/mobile/android/chrome/config.properties9
-rw-r--r--l10n-vi/mobile/android/chrome/devicePrompt.properties5
-rw-r--r--l10n-vi/mobile/android/chrome/passwordmgr.properties20
-rw-r--r--l10n-vi/mobile/android/chrome/phishing.dtd27
-rw-r--r--l10n-vi/mobile/android/chrome/pippki.properties84
-rw-r--r--l10n-vi/mobile/android/chrome/sync.properties12
-rw-r--r--l10n-vi/mobile/android/chrome/webcompatReporter.properties12
-rw-r--r--l10n-vi/mobile/android/defines.inc14
-rw-r--r--l10n-vi/mobile/android/mobile-l10n.js6
-rw-r--r--l10n-vi/mobile/chrome/region.properties31
-rw-r--r--l10n-vi/mobile/overrides/appstrings.properties41
-rw-r--r--l10n-vi/mobile/overrides/netError.dtd158
26 files changed, 1131 insertions, 0 deletions
diff --git a/l10n-vi/mobile/android/chrome/about.dtd b/l10n-vi/mobile/android/chrome/about.dtd
new file mode 100644
index 0000000000..1886ee4f07
--- /dev/null
+++ b/l10n-vi/mobile/android/chrome/about.dtd
@@ -0,0 +1,21 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<!ENTITY aboutPage.title "Thông tin về &brandShortName;">
+<!ENTITY aboutPage.warningVersion "&brandShortName; được thiết kế để thử nghiệm và có thể không ổn định.">
+<!ENTITY aboutPage.checkForUpdates.link "Kiểm tra cập nhật »">
+<!ENTITY aboutPage.checkForUpdates.checking "Đang tìm các cập nhật…">
+<!ENTITY aboutPage.checkForUpdates.none "Không có cập nhật">
+<!ENTITY aboutPage.checkForUpdates.available2 "Tải xuống bản cập nhật">
+<!ENTITY aboutPage.checkForUpdates.downloading "Đang tải cập nhật xuống…">
+<!ENTITY aboutPage.checkForUpdates.downloaded2 "Cài đặt cập nhật">
+<!ENTITY aboutPage.faq.label "Câu hỏi thường gặp">
+<!ENTITY aboutPage.support.label "Hỗ trợ">
+<!ENTITY aboutPage.privacyPolicy.label "Chính sách riêng tư">
+<!ENTITY aboutPage.rights.label "Biết Về Quyền Của Bạn">
+<!ENTITY aboutPage.relNotes.label "Ghi chú Phát hành">
+<!ENTITY aboutPage.credits.label "Công trạng">
+<!ENTITY aboutPage.license.label "Thông tin Giấy phép">
+
+<!-- LOCALIZATION NOTE (aboutPage.logoTrademark): The message is explicitly about the word "Firefox" being trademarked, that's why we use it, instead of brandShortName. -->
+<!ENTITY aboutPage.logoTrademark "Firefox và logo Firefox là thương hiệu của tổ chức Tổ chức Mozilla.">
diff --git a/l10n-vi/mobile/android/chrome/aboutAccounts.dtd b/l10n-vi/mobile/android/chrome/aboutAccounts.dtd
new file mode 100644
index 0000000000..1259df8f5d
--- /dev/null
+++ b/l10n-vi/mobile/android/chrome/aboutAccounts.dtd
@@ -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/. -->
+
+<!ENTITY aboutAccounts.connected.title "Tài khoản Firefox">
+<!ENTITY aboutAccounts.connected.description "Bạn đang kết nối với cái tên">
+<!ENTITY aboutAccounts.syncPreferences.label "Chạm để kiểm tra cài đặt đồng bộ hóa">
+
+<!ENTITY aboutAccounts.noConnection.title "Không có kết nối mạng">
+<!ENTITY aboutAccounts.retry.label "Thử lại">
+
+<!ENTITY aboutAccounts.restrictedError.title "Bị hạn chế">
+<!ENTITY aboutAccounts.restrictedError.description "Bạn không thể quản lý tài khoản Firefox từ hồ sơ này.">
diff --git a/l10n-vi/mobile/android/chrome/aboutAccounts.properties b/l10n-vi/mobile/android/chrome/aboutAccounts.properties
new file mode 100644
index 0000000000..a303c7139e
--- /dev/null
+++ b/l10n-vi/mobile/android/chrome/aboutAccounts.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 (relinkDenied.message): Ideally, this string is short (it's
+# a toast message).
+relinkDenied.message = Đã đăng nhập để đồng bộ hóa!
+# LOCALIZATION NOTE (relinkDenied.openPrefs): Ideally, this string is short (it's a
+# button label) and upper-case, to match Google and Android's convention.
+relinkDenied.openPrefs = PREFS
+
+relinkVerify.title = Bạn có chắc muốn đăng nhập để đồng bộ hóa?
+# LOCALIZATION NOTE (relinkVerify.message): Email address of a user previously signed in to Sync.
+relinkVerify.message = Bạn đã đăng nhập vào đồng bộ hóa bằng một địa chỉ email khác trước đây. Đăng nhập lần này sẽ sát nhập các trang đánh dấu, mật khẩu và các thiết lập khác với %S
+relinkVerify.continue = Tiếp tục
+relinkVerify.cancel = Hủy bỏ
diff --git a/l10n-vi/mobile/android/chrome/aboutAddons.dtd b/l10n-vi/mobile/android/chrome/aboutAddons.dtd
new file mode 100644
index 0000000000..b84c5da2a5
--- /dev/null
+++ b/l10n-vi/mobile/android/chrome/aboutAddons.dtd
@@ -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/. -->
+
+<!ENTITY aboutAddons.title2 "Tiện ích">
+<!ENTITY aboutAddons.header2 "Tiện ích của bạn">
+
+<!ENTITY addonAction.enable "Bật">
+<!ENTITY addonAction.disable "Vô hiệu hóa">
+<!ENTITY addonAction.uninstall "Gỡ bỏ">
+<!ENTITY addonAction.undo "Hoàn tác">
+<!ENTITY addonAction.update "Cập nhật">
+
+<!ENTITY addonUnsigned.message "&brandShortName; không thể xác thực tiện ích này.">
+<!ENTITY addonUnsigned.learnMore "Tìm hiểu thêm">
diff --git a/l10n-vi/mobile/android/chrome/aboutAddons.properties b/l10n-vi/mobile/android/chrome/aboutAddons.properties
new file mode 100644
index 0000000000..1fa3c50240
--- /dev/null
+++ b/l10n-vi/mobile/android/chrome/aboutAddons.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/.
+
+addonStatus.uninstalled=%S sẽ được gỡ bỏ sau khi bạn khởi động lại.
+
+# Will keep both strings and at runtime will fallback on the old one if the new one is not yet localized
+addons.browseAll=Tìm tất cả các tiện ích Firefox
+
+addons.browseRecommended=Duyệt các tiện ích mở rộng đề xuất cho Firefox
+
+addon.options=Tùy chọn
diff --git a/l10n-vi/mobile/android/chrome/aboutCertError.dtd b/l10n-vi/mobile/android/chrome/aboutCertError.dtd
new file mode 100644
index 0000000000..0ba184db88
--- /dev/null
+++ b/l10n-vi/mobile/android/chrome/aboutCertError.dtd
@@ -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/. -->
+
+<!ENTITY % brandDTD
+ SYSTEM "chrome://branding/locale/brand.dtd">
+ %brandDTD;
+
+<!-- These strings are used by Firefox's custom about:certerror page,
+a replacement for the standard security certificate errors produced
+by NSS/PSM via netError.xhtml. -->
+
+<!ENTITY certerror.pagetitle "Kết Nối không đáng tin cậy">
+<!ENTITY certerror.longpagetitle "Kết Nối Này Không Đáng Tin">
+
+<!-- Localization note (certerror.introPara1) - The string "#1" will
+be replaced at runtime with the name of the server to which the user
+was trying to connect. -->
+<!ENTITY certerror.introPara1 "Bạn đã yêu cầu &brandShortName; kết nối an toàn tới <b>#1</b>, nhưng chúng tôi không thể xác nhận kết nối của bạn là an toàn.">
+
+<!ENTITY certerror.whatShouldIDo.heading "Tôi Nên Làm Gì?">
+<!ENTITY certerror.whatShouldIDo.content "Nếu bạn thường kết nối tới trang này mà không gặp vấn đề gì, lỗi này có thể là do ai đó đang cố gắng mạo danh trang này, và bạn không nên tiếp tục nữa.">
+<!ENTITY certerror.getMeOutOfHere.label "Đưa tôi ra khỏi đây!">
+
+<!ENTITY certerror.expert.heading "Tôi hiểu các nguy cơ">
+<!ENTITY certerror.expert.content "Nếu bạn hiểu điều gì đang xảy ra, bạn có thể yêu cầu &brandShortName; tin tưởng định danh của trang này. <b>Cho dù bạn tin tưởng trang web này, lỗi này cũng vẫn có thể là do ai đó đang cố tác động tới kết nối của bạn.</b>">
+<!ENTITY certerror.expert.contentPara2 "Đừng thêm ngoại lệ trừ khi bạn biết lí do đúng đắn khiến trang này không dùng định danh đáng tin cậy.">
+<!ENTITY certerror.addTemporaryException.label "Truy cập trang">
+<!ENTITY certerror.addPermanentException.label "Thêm ngoại lệ vĩnh viễn">
+
+<!ENTITY certerror.technical.heading "Chi tiết Kĩ thuật">
diff --git a/l10n-vi/mobile/android/chrome/aboutDownloads.dtd b/l10n-vi/mobile/android/chrome/aboutDownloads.dtd
new file mode 100644
index 0000000000..d9590ef33d
--- /dev/null
+++ b/l10n-vi/mobile/android/chrome/aboutDownloads.dtd
@@ -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/. -->
+
+<!ENTITY aboutDownloads.title "Tải xuống">
+<!ENTITY aboutDownloads.header "Tải xuống của bạn">
+<!ENTITY aboutDownloads.empty "Không có tải xuống nào">
+
+<!ENTITY aboutDownloads.open "Mở">
+<!ENTITY aboutDownloads.remove "Xóa">
+<!ENTITY aboutDownloads.removeAll "Xoá tất cả">
+<!ENTITY aboutDownloads.pause "Tạm dừng">
+<!ENTITY aboutDownloads.resume "Tiếp tục">
+<!ENTITY aboutDownloads.cancel "Hủy bỏ">
+<!ENTITY aboutDownloads.retry "Thử lại">
diff --git a/l10n-vi/mobile/android/chrome/aboutDownloads.properties b/l10n-vi/mobile/android/chrome/aboutDownloads.properties
new file mode 100644
index 0000000000..eff6b57b34
--- /dev/null
+++ b/l10n-vi/mobile/android/chrome/aboutDownloads.properties
@@ -0,0 +1,17 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (downloadMessage.deleteAll):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+downloadMessage.deleteAll=Xoá #1 tác vụ tải xuống?
+
+downloadAction.deleteAll=Xoá tất cả
+
+downloadState.downloading=Đang tải xuống…
+downloadState.canceled=Đã hủy
+downloadState.failed=Thất bại
+downloadState.paused=Đã tạm dừng
+downloadState.starting=Đang bắt đầu…
+downloadState.unknownSize=Dung lượng không xác định
diff --git a/l10n-vi/mobile/android/chrome/aboutHome.dtd b/l10n-vi/mobile/android/chrome/aboutHome.dtd
new file mode 100644
index 0000000000..11a47475c9
--- /dev/null
+++ b/l10n-vi/mobile/android/chrome/aboutHome.dtd
@@ -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/. -->
+<!-- This string should be kept in sync with the home_title string
+ in android_strings.dtd -->
+
+<!ENTITY abouthome.title "Trang chủ &brandShortName;">
diff --git a/l10n-vi/mobile/android/chrome/aboutLogins.dtd b/l10n-vi/mobile/android/chrome/aboutLogins.dtd
new file mode 100644
index 0000000000..97d76ce47d
--- /dev/null
+++ b/l10n-vi/mobile/android/chrome/aboutLogins.dtd
@@ -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/. -->
+<!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd">
+ %brandDTD;
+<!ENTITY aboutLogins.title "Đăng nhập">
+<!ENTITY aboutLogins.update "Cập nhật">
+<!ENTITY aboutLogins.emptyLoginText "Giữ thông tin đăng nhập an toàn">
+<!ENTITY aboutLogins.emptyLoginHint "Thông tin đăng nhập và lý lịch bạn lưu lại bằng &brandShortName; sẽ hiển thị ở đây.">
diff --git a/l10n-vi/mobile/android/chrome/aboutLogins.properties b/l10n-vi/mobile/android/chrome/aboutLogins.properties
new file mode 100644
index 0000000000..f95110392d
--- /dev/null
+++ b/l10n-vi/mobile/android/chrome/aboutLogins.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/.
+
+loginsMenu.showPassword=Hiện mật khẩu
+loginsMenu.copyPassword=Sao chép mật khẩu
+loginsMenu.copyUsername=Sao chép tên người dùng
+loginsMenu.editLogin=Chỉnh sửa thông tin đăng nhập
+loginsMenu.delete=Xóa
+
+loginsMenu.deleteAll=Xoá tất cả
+
+loginsDialog.confirmDelete=Xoá thông tin đăng nhập này?
+loginsDialog.confirmDeleteForFxaUser=Xóa thông tin đăng nhập này?\n\nĐiều này có thể ảnh hưởng đến thông tin đăng nhập đã được đồng bộ hóa.
+loginsDialog.confirmDeleteAll=Xóa tất cả thông tin đăng nhập?
+loginsDialog.confirmDeleteAllForFxaUser=Xóa tất cả thông tin đăng nhập?\n\nĐiều này có thể ảnh hưởng đến thông tin đăng nhập đã được đồng bộ hóa.
+loginsDialog.copy=Sao chép
+loginsDialog.confirm=OK
+loginsDialog.cancel=Hủy bỏ
+
+editLogin.fallbackTitle=Chỉnh sửa thông tin đăng nhập
+editLogin.saved1=Thông tin đăng nhập đã được lưu
+editLogin.couldNotSave=Không thể lưu thay đổi
+
+loginsDetails.copyFailed=Sao chép không thành công
+loginsDetails.passwordCopied=Đã sao chép mật khẩu
+loginsDetails.usernameCopied=Đã sao chép tên người dùng
+loginsDetails.deleted=Đã xóa thông tin đăng nhập
+
+loginsDetails.deletedAll=Tất cả thông tin đăng nhập đã bị xóa
+
+password-btn.show=Hiện
+password-btn.hide=Ẩn
diff --git a/l10n-vi/mobile/android/chrome/aboutPrivateBrowsing.dtd b/l10n-vi/mobile/android/chrome/aboutPrivateBrowsing.dtd
new file mode 100644
index 0000000000..eef2bf1f94
--- /dev/null
+++ b/l10n-vi/mobile/android/chrome/aboutPrivateBrowsing.dtd
@@ -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/. -->
+
+<!ENTITY privatebrowsingpage.title "Duyệt web Riêng tư">
+
+<!-- Localisation note: the plus sign here is a shorthand way of expressing the word "and". Contextually the privatebrowsingpage.title.private string
+ is used as a title, with the privatebrowsingpage.title string preceding it but on a separate line.
+ So the final line will say "Private Browsing + Tracking Protection". -->
+<!ENTITY privatebrowsingpage.title.private "+ Chống theo dõi">
+<!-- Localization note (privatebrowsingpage.title.normal1): "Private Browsing"
+ is capitalized in English to be consistent with our existing uses of the
+ term. -->
+<!ENTITY privatebrowsingpage.title.normal1 "Bạn không ở trong chế độ duyệt riêng tư">
+
+<!ENTITY privatebrowsingpage.description.trackingProtection "&brandShortName; chặn những thành phần của trang có thể theo dõi hoạt động duyệt web của bạn.">
+<!ENTITY privatebrowsingpage.description.privateDetails "Chúng tôi không lưu lại bất kỳ lịch sử duyệt web nào, nhưng các tập tin đã tải xuống và trang đánh dấu mới sẽ được lưu lại trên thiết bị của bạn.">
+
+<!-- Localization note (privatebrowsingpage.description.normal2): "Private
+ Browsing is capitalized in English to be consistent with our existing uses
+ of the term. -->
+<!ENTITY privatebrowsingpage.description.normal2 "Trong chế độ duyệt riêng tư, chúng tôi sẽ không giữ bất kỳ lịch sử hoặc cookie duyệt web nào của bạn. Các trang đánh dấu bạn thêm và các tập tin bạn tải xuống vẫn sẽ được lưu trên thiết bị của bạn.">
+
+<!ENTITY privatebrowsingpage.link.private "Muốn tìm hiểu thêm?">
+<!ENTITY privatebrowsingpage.link.normal "Mở trong một thẻ riêng tư mới">
diff --git a/l10n-vi/mobile/android/chrome/browser.properties b/l10n-vi/mobile/android/chrome/browser.properties
new file mode 100644
index 0000000000..c85c9fdbe1
--- /dev/null
+++ b/l10n-vi/mobile/android/chrome/browser.properties
@@ -0,0 +1,477 @@
+# 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/.
+
+addonsConfirmInstall.title=Cài đặt Tiện ích
+addonsConfirmInstall.install=Cài đặt
+
+addonsConfirmInstallUnsigned.title=Tiện ích chưa được xác thực
+addonsConfirmInstallUnsigned.message=Trang này muốn cài đặt một tiện ích chưa được xác thực. Chúng tôi không chịu trách nhiệm những vẫn đề có thể xảy ra.
+
+# Alerts
+alertAddonsDownloading=Đang tải tiện ích
+alertAddonsInstalledNoRestart.message=Cài đặt hoàn tất
+
+# LOCALIZATION NOTE (alertAddonsInstalledNoRestart.action2): Ideally, this string is short (it's a
+# button label) and upper-case, to match Google and Android's convention.
+alertAddonsInstalledNoRestart.action2=TIỆN ÍCH
+
+alertDownloadsStart2=Bắt đầu tải xuống
+alertDownloadsDone2=Tải xuống đã hoàn tất
+alertDownloadsToast=Đã bắt đầu tải xuống…
+alertDownloadsPause=Tạm dừng
+alertDownloadsResume=Tiếp tục
+alertDownloadsCancel=Hủy bỏ
+# LOCALIZATION NOTE (alertDownloadSucceeded): This text is shown as a snackbar inside the app after a
+# successful download. %S will be replaced by the file name of the download.
+alertDownloadSucceeded=Đã tải xuống %S
+# LOCALIZATION NOTE (downloads.disabledInGuest): This message appears in a toast
+# when the user tries to download something in Guest mode.
+downloads.disabledInGuest=Tải xuống bị vô hiệu hóa trong phiên làm việc khách
+
+# LOCALIZATION NOTE (alertSearchEngineAddedToast, alertSearchEngineErrorToast, alertSearchEngineDuplicateToast)
+# %S will be replaced by the name of the search engine (exposed by the current page)
+# that has been added; for example, 'Google'.
+alertSearchEngineAddedToast='%S' đã được thêm vào danh sách công cụ tìm kiếm
+alertSearchEngineErrorToast=Không thể thêm '%S' vào danh sách công cụ tìm kiếm
+alertSearchEngineDuplicateToast='%S' đã có trong danh sách công cụ tìm kiếm
+
+# LOCALIZATION NOTE (alertShutdownSanitize): This text is shown as a snackbar during shutdown if the
+# user has enabled "Clear private data on exit".
+alertShutdownSanitize=Xóa dữ liệu riêng tư…
+
+alertPrintjobToast=Đang in...
+
+download.blocked=Không thể tải xuống tập tin
+
+addonError.titleError=Lỗi
+addonError.titleBlocked=Tiện ích đã bị chặn
+addonError.learnMore=Tìm hiểu thêm
+
+# LOCALIZATION NOTE (unsignedAddonsDisabled.title, unsignedAddonsDisabled.message):
+# These strings will appear in a dialog when Firefox detects that installed add-ons cannot be verified.
+unsignedAddonsDisabled.title=Tiện ích chưa được xác thực
+unsignedAddonsDisabled.message=Một số tiện ích đã cài đặt không thể xác thực được nên chúng đã bị vô hiệu hóa.
+unsignedAddonsDisabled.dismiss=Bỏ qua
+unsignedAddonsDisabled.viewAddons=Xem tiện tích
+
+# LOCALIZATION NOTE (addonError-1, addonError-2, addonError-3, addonError-4, addonError-5):
+# #1 is the add-on name, #2 is the add-on host, #3 is the application name
+addonError-1=Không thể tải tiện ích này vì không thể kết nối tới #2.
+addonError-2=Tiện ích từ #2 không thể cài đặt được vì nó không phải là tiện ích #3 yêu cầu.
+addonError-3=Tiện ích tải từ #2 không thể cài đặt được vì có vẻ như nó đã bị hỏng.
+addonError-4=#1 không thể cài đặt được vì #3 không thể sửa đổi tập tin cần thiết.
+addonError-5=#3 đã chặn #2 cài đặt một tiện ích chưa được xác thực.
+
+# LOCALIZATION NOTE (addonLocalError-1, addonLocalError-2, addonLocalError-3, addonLocalError-4, addonLocalError-5, addonErrorIncompatible, addonErrorBlocklisted):
+# #1 is the add-on name, #3 is the application name, #4 is the application version
+addonLocalError-1=Tiện ích này không thể cài đặt được vì một lỗi hệ thống.
+addonLocalError-2=Tiện ích này không thể cài đặt được vì nó không phải là tiện ích #3 yêu cầu.
+addonLocalError-3=Tiện ích này không thể cài đặt được vì có vẻ như nó đã bị hỏng.
+addonLocalError-4=#1 không thể cài đặt được vì #3 không thể sửa đổi tập tin cần thiết.
+addonLocalError-5=Tiện ích này không thể cài đặt được vì nó chưa được xác thực
+addonErrorIncompatible=#1 không thể cài đặt được vì nó không tương thích với #3 #4.
+addonErrorBlocklisted=#1 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à ổn định.
+
+# Notifications
+notificationRestart.normal=Khởi động lại để hoàn tất thay đổi.
+notificationRestart.blocked=Đã cài đặt tiện ích không an toàn. Khởi động lại để vô hiệu hóa.
+notificationRestart.button=Khởi động lại
+doorhanger.learnMore=Tìm hiểu thêm
+
+# Popup Blocker
+
+# LOCALIZATION NOTE (popup.message): Semicolon-separated list of plural forms.
+# #1 is brandShortName and #2 is the number of pop-ups blocked.
+popup.message=#1 ngăn không cho trang web này mở một cửa sổ bật lên. Bạn có muốn hiển thị nó?; #1 ngăn không cho trang web này mở cửa sổ bật lên #2. Bạn có muốn hiển thị chúng?
+popup.dontAskAgain=Không hỏi lại về trang này
+popup.show=Hiển thị
+popup.dontShow=Không hiển thị
+
+# SafeBrowsing
+safeBrowsingDoorhanger=Trang này đã được xác định là có chứa phần mềm độc hại hoặc cố gắng lừa đảo. Hãy cẩn thận.
+
+# LOCALIZATION NOTE (blockPopups.label2): Label that will be used in
+# site settings dialog.
+blockPopups.label2=Cửa sổ bật lên
+
+# XPInstall
+xpinstallPromptWarning2=%S đã chặn yêu cầu cài đặt phần mềm từ trang này (%S) vào máy bạn.
+xpinstallPromptWarningLocal=%S đã chặn tiện ích này (%S) được cài đặt trên thiết bị của bạn.
+xpinstallPromptWarningDirect=%S đã chặn một tiện ích cài đặt lên thiết bị của bạn.
+xpinstallPromptAllowButton=Cho phép
+xpinstallDisabledMessageLocked=Việc cài đặt phần mềm đã bị vô hiệu hóa bởi người quản trị hệ thống của bạn.
+xpinstallDisabledMessage2=Việc cài đặt phần mềm hiện tại đã bị vô hiệu hóa. Hãy nhấn Bật rồi thử lại.‌
+xpinstallDisabledButton=Bật
+
+# LOCALIZATION NOTE (webextPerms.header)
+# 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?
+
+# LOCALIZATION NOTE (webextPerms.listIntro)
+# This string will be followed by a list of permissions requested
+# by the webextension.
+webextPerms.listIntro=Nó yêu cầu sự cho phép của bạn để:
+webextPerms.add.label=Thêm
+webextPerms.cancel.label=Hủy bỏ
+
+# LOCALIZATION NOTE (webextPerms.updateText)
+# %S is replaced with the localized name of the updated extension.
+webextPerms.updateText=%S đã được cập nhật. Bạn phải cho phép các quyền mới trước khi cài đặt phiên bản cập nhật. Chọn “Hủy bỏ” sẽ giữ lại phiên bản hiện tại của tiện ích.
+
+webextPerms.updateAccept.label=Cập nhật
+
+# LOCALIZATION NOTE (webextPerms.optionalPermsHeader)
+# %S is replaced with the localized name of the extension requesting new
+# permissions.
+webextPerms.optionalPermsHeader=%S yêu cầu quyền bổ sung.
+webextPerms.optionalPermsListIntro=Trang cần truy cập:
+webextPerms.optionalPermsAllow.label=Cho phép
+webextPerms.optionalPermsDeny.label=Từ chối
+
+webextPerms.description.bookmarks=Xem và chỉnh sửa trang đánh dấu
+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 gần đây, cookie, và dữ liệu liên quan
+webextPerms.description.clipboardRead=Lấy dữ liệu từ bảng tạm
+webextPerms.description.clipboardWrite=Nhập dữ liệu vào bảng tạm
+webextPerms.description.devtools=Mở rộng công cụ dành cho 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 xuống 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 tin nhắn 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.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.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 các trang có tên miền %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
+
+
+# Site Identity
+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 trang web này
+identity.identified.state_and_country=%S, %S
+
+# Geolocation UI
+geolocation.allow=Chia sẻ
+geolocation.dontAllow=Không chia sẻ
+# LOCALIZATION NOTE (geolocation.location): Label that will be used in
+# site settings dialog.
+geolocation.location=Vị trí
+
+# Desktop notification UI
+desktopNotification2.allow=Luôn luôn
+desktopNotification2.dontAllow=Không bao giờ
+# LOCALIZATION NOTE (desktopNotification.notifications): Label that will be
+# used in site settings dialog.
+desktopNotification.notifications=Thông báo
+
+# Imageblocking
+imageblocking.downloadedImage=Hình ảnh không bị chặn
+imageblocking.showAllImages=Hiện tất cả
+
+# New Tab Popup
+# LOCALIZATION NOTE (newtabpopup, newprivatetabpopup): Semicolon-separated list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 number of tabs
+newtabpopup.opened=#1 thẻ mới được mở
+newprivatetabpopup.opened=Thẻ riêng tư mới đã được mở; #1 thẻ riêng tư mới đã được mở
+
+# LOCALIZATION NOTE (newtabpopup.switch): Ideally, this string is short (it's a
+# button label) and upper-case, to match Google and Android's convention.
+newtabpopup.switch=CHUYỂN
+
+# Undo close tab toast
+# LOCALIZATION NOTE (undoCloseToast.message): This message appears in a toast
+# when the user closes a tab. %S is the title of the tab that was closed.
+undoCloseToast.message=Đã đóng %S
+
+# Private Tab closed message
+# LOCALIZATION NOTE (privateClosedMessage.message): This message appears
+# when the user closes a private tab.
+privateClosedMessage.message=Đã đóng thẻ duyệt web riêng tư
+
+# LOCALIZATION NOTE (undoCloseToast.messageDefault): This message appears in a
+# toast when the user closes a tab if there is no title to display.
+undoCloseToast.messageDefault=Thẻ đã đóng
+
+# LOCALIZATION NOTE (undoCloseToast.action2): Ideally, this string is short (it's a
+# button label) and upper-case, to match Google and Android's convention.
+undoCloseToast.action2=HOÀN TÁC
+
+# Offline web applications
+offlineApps.ask=Cho phép %S lưu dữ liệu trên thiết bị của bạn để sử dụng ngoại tuyến?
+offlineApps.dontAskAgain=Không hỏi lại lần nữa cho trang này
+offlineApps.allow=Cho phép
+offlineApps.dontAllow2=Không cho phép
+
+# LOCALIZATION NOTE (offlineApps.offlineData): Label that will be used in
+# site settings dialog.
+offlineApps.offlineData=Dữ liệu ngoại tuyến
+
+# LOCALIZATION NOTE (password.logins): Label that will be used in
+ # site settings dialog.
+password.logins=Đăng nhập
+# LOCALIZATION NOTE (password.save): This should match
+# saveButton in passwordmgr.properties
+password.save=Lưu
+# LOCALIZATION NOTE (password.dontSave): This should match
+# dontSaveButton in passwordmgr.properties
+password.dontSave=Không lưu
+
+# LOCALIZATION NOTE (browser.menu.showCharacterEncoding): Set to the string
+# "true" (spelled and capitalized exactly that way) to show the "Character
+# Encoding" menu in the site menu. Any other value will hide it. Without this
+# setting, the "Character Encoding" menu must be enabled via Preferences.
+# This is not a string to translate. If users frequently use the "Character Encoding"
+# menu, set this to "true". Otherwise, you can leave it as "false".
+browser.menu.showCharacterEncoding=false
+
+# Text Selection
+selectionHelper.textCopied=Đã sao chép văn bản vào clipboard
+
+# Casting
+# LOCALIZATION NOTE (casting.sendToDevice): Label that will be used in the
+# dialog/prompt.
+casting.sendToDevice=Gửi đến thiết bị
+
+# Context menu
+contextmenu.openInNewTab=Mở liên kết trong thẻ mới
+contextmenu.openInPrivateTab=Mở liên kết trong thẻ riêng tư
+contextmenu.share=Chia sẻ
+contextmenu.copyLink=Sao chép liên kết
+contextmenu.shareLink=Chia sẻ liên kết
+contextmenu.bookmarkLink=Đánh dấu liên kết
+contextmenu.copyEmailAddress=Sao chép địa chỉ email
+contextmenu.shareEmailAddress=Chia sẻ địa chỉ thư điện tử
+contextmenu.copyPhoneNumber=Sao chép số điện thoại
+contextmenu.sharePhoneNumber=Chia sẻ số điện thoại
+contextmenu.fullScreen=Toàn màn hình
+contextmenu.viewImage=Xem ảnh
+contextmenu.copyImageLocation=Sao chép địa chỉ ảnh
+contextmenu.shareImage=Chia sẻ hình ảnh
+# LOCALIZATION NOTE (contextmenu.search):
+# The label of the contextmenu item which allows you to search with your default search engine for
+# the text you have selected. %S is the name of the search engine. For example, "Google".
+contextmenu.search=Công cụ tìm kiếm %S
+contextmenu.saveImage=Lưu ảnh
+contextmenu.showImage=Hiện ảnh
+contextmenu.setImageAs=Đặt ảnh làm
+# LOCALIZATION NOTE (contextmenu.addSearchEngine3): This string should be rather short. If it is
+# significantly longer than the translation for the "Paste" action then this might trigger an
+# Android bug positioning the floating text selection partially off the screen. This issue heavily
+# depends on the screen size and the specific translations. For English "Paste" / "Add search engine"
+# is working while "Paste" / "Add as search engine" triggers the bug. See bug 1262098 for more details.
+# Manual testing the scenario described in bug 1262098 is highly recommended.
+contextmenu.addSearchEngine3=Thêm công cụ tìm kiếm
+contextmenu.playMedia=Phát
+contextmenu.pauseMedia=Tạm dừng
+contextmenu.showControls2=Hiện điều khiển
+contextmenu.mute=Tắt tiếng
+contextmenu.unmute=Bật tiếng
+contextmenu.saveVideo=Lưu video
+contextmenu.saveAudio=Lưu âm thanh
+contextmenu.addToContacts=Thêm liên lạc
+# LOCALIZATION NOTE (contextmenu.sendToDevice):
+# The label that will be used in the contextmenu and the pageaction
+contextmenu.sendToDevice=Gửi đến thiết bị
+
+contextmenu.copy=Sao chép
+contextmenu.cut=Cắt
+contextmenu.selectAll=Chọn toàn bộ
+contextmenu.paste=Dán
+
+contextmenu.call=Gọi
+
+#Input widgets UI
+inputWidgetHelper.date=Chọn ngày
+inputWidgetHelper.datetime-local=Chọn ngày và giờ
+inputWidgetHelper.time=Chọn giờ
+inputWidgetHelper.week=Chọn tuần
+inputWidgetHelper.month=Chọn tháng
+inputWidgetHelper.cancel=Hủy bỏ
+inputWidgetHelper.set=Thiết lập
+inputWidgetHelper.clear=Xóa
+
+# Web Console API
+stacktrace.anonymousFunction=<vô danh>
+stacktrace.outputMessage=Truy stack từ %S, hàm %S, dòng %S.
+timer.start=%S: Đã khởi động đồng hồ
+
+# LOCALIZATION NOTE (timer.end):
+# This string is used to display the result of the console.timeEnd() call.
+# %1$S=name of timer, %2$S=number of milliseconds
+timer.end=%1$S: %2$Sms
+
+# Click to play plugins
+clickToPlayPlugins.activate=Kích hoạt
+clickToPlayPlugins.dontActivate=Không kích hoạt
+# LOCALIZATION NOTE (clickToPlayPlugins.plugins): Label that
+# will be used in site settings dialog.
+clickToPlayPlugins.plugins=Phần bổ trợ
+
+# Site settings dialog
+
+masterPassword.incorrect=Mật khẩu không đúng
+
+# Debugger
+# LOCALIZATION NOTE (remoteIncomingPromptTitle): The title displayed on the
+# dialog that prompts the user to allow the incoming connection.
+remoteIncomingPromptTitle=Kết nối đến
+# LOCALIZATION NOTE (remoteIncomingPromptUSB): The message displayed on the
+# dialog that prompts the user to allow an incoming USB connection.
+remoteIncomingPromptUSB=Cho phép gỡ lỗi qua USB?
+# LOCALIZATION NOTE (remoteIncomingPromptUSB): The message displayed on the
+# dialog that prompts the user to allow an incoming TCP connection.
+remoteIncomingPromptTCP=Cho phép kết nối gỡ lỗi từ xa từ %1$S:%2$S? Kết nối này đòi hỏi một mã QR được quét để xác thực chứng chỉ thiết bị từ xa. Bạn có thể tránh việc quét cho lần sau bằng cách ghi nhớ các thiết bị.
+# LOCALIZATION NOTE (remoteIncomingPromptDeny): This button will deny an
+# an incoming remote debugger connection.
+remoteIncomingPromptDeny=Từ chối
+# LOCALIZATION NOTE (remoteIncomingPromptAllow): This button will allow an
+# an incoming remote debugger connection.
+remoteIncomingPromptAllow=Cho phép
+# LOCALIZATION NOTE (remoteIncomingPromptScan): This button will start a QR
+# code scanner to authenticate an incoming remote debugger connection. The
+# connection will be allowed assuming the scan succeeds.
+remoteIncomingPromptScan=Quét
+# LOCALIZATION NOTE (remoteIncomingPromptScanAndRemember): This button will
+# start a QR code scanner to authenticate an incoming remote debugger
+# connection. The connection will be allowed assuming the scan succeeds, and
+# the other endpoint's certificate will be saved to skip future scans for this
+# client.
+remoteIncomingPromptScanAndRemember=Quét và ghi nhớ
+# LOCALIZATION NOTE (remoteQRScanFailedPromptTitle): The title displayed in a
+# dialog when we are unable to complete the QR code scan for an incoming remote
+# debugging connection.
+remoteQRScanFailedPromptTitle=Lỗi quét QR
+# LOCALIZATION NOTE (remoteQRScanFailedPromptMessage): The message displayed in
+# a dialog when we are unable to complete the QR code scan for an incoming
+# remote debugging connection.
+remoteQRScanFailedPromptMessage=Không thể quét mã QR để gỡ lỗi từ xa. Hãy chắc rằng ứng dụng quét mã vạch đã được cài đặt và thử lại lần nữa.
+# LOCALIZATION NOTE (remoteQRScanFailedPromptOK): This button dismisses the
+# dialog that appears when we are unable to complete the QR code scan for an
+# incoming remote debugging connection.
+remoteQRScanFailedPromptOK=Đồng ý
+
+# Helper apps
+helperapps.open=Mở
+helperapps.openWithApp2=Mở bằng ứng dụng %S
+helperapps.openWithList2=Mở bằng ứng dụng
+helperapps.always=Luôn luôn
+helperapps.never=Không bao giờ
+helperapps.pick=Hoàn thành hành động bằng
+helperapps.saveToDisk=Tải xuống
+helperapps.alwaysUse=Luôn luôn
+helperapps.useJustOnce=Chỉ lần này
+
+# LOCALIZATION NOTE (getUserMedia.shareCamera.message, getUserMedia.shareMicrophone.message, getUserMedia.shareCameraAndMicrophone.message, getUserMedia.sharingCamera.message, getUserMedia.sharingMicrophone.message, getUserMedia.sharingCameraAndMicrophone.message): %S is the website origin (e.g. www.mozilla.org)
+getUserMedia.shareCamera.message = Bạn có muốn chia sẻ máy ảnh với %S?
+getUserMedia.shareMicrophone.message = Bạn có muốn chia sẻ mic của bạn với %S?
+getUserMedia.shareCameraAndMicrophone.message = Bạn có muốn chia sẻ máy quay và micrô của bạn với %S?
+getUserMedia.denyRequest.label = Không chia sẻ
+getUserMedia.shareRequest.label = Chia sẻ
+getUserMedia.videoSource.default = Máy ảnh %S
+getUserMedia.videoSource.frontCamera = Máy ảnh trước
+getUserMedia.videoSource.backCamera = Máy ảnh sau
+getUserMedia.videoSource.none = Không video
+getUserMedia.videoSource.tabShare = Chọn một thẻ để truyền hình
+getUserMedia.videoSource.prompt = Nguồn video
+getUserMedia.audioDevice.default = Micrô %S
+getUserMedia.audioDevice.none = Không âm thanh
+getUserMedia.audioDevice.prompt = Micrô để sử dụng
+getUserMedia.sharingCamera.message2 = Đã bật máy ảnh
+getUserMedia.sharingMicrophone.message2 = Đã bật micrô
+getUserMedia.sharingCameraAndMicrophone.message2 = Đã bật máy ảnh và micrô
+getUserMedia.blockedCameraAccess = Máy ảnh đã bị khóa.
+getUserMedia.blockedMicrophoneAccess = Micrô đã bị khóa.
+getUserMedia.blockedCameraAndMicrophoneAccess = Máy ảnh và micrô đã bị khóa.
+
+# 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.
+# In android this will be only exposed by web extensions
+userContextPersonal.label = Cá nhân
+userContextWork.label = Công việc
+userContextBanking.label = Ngân hàng
+userContextShopping.label = Mua sắm
+
+# LOCALIZATION NOTE (readerMode.toolbarTip):
+# Tip shown to users the first time we hide the reader mode toolbar.
+readerMode.toolbarTip=Chạm vào màn hình để hiển thị tùy chọn
+
+#Open in App
+openInApp.pageAction = Mở trong ứng dụng
+openInApp.ok = Đồng ý
+openInApp.cancel = Hủy bỏ
+
+#Tab sharing
+tabshare.title = "Chọn một thẻ để truyền hình"
+#Tabs in context menus
+browser.menu.context.default = Liên kết
+browser.menu.context.img = Ảnh
+browser.menu.context.video = Video
+browser.menu.context.audio = Âm thanh
+browser.menu.context.tel = Điện thoại
+browser.menu.context.mailto = Thư
+
+# "Subscribe to page" prompts created in FeedHandler.js
+feedHandler.chooseFeed=Chọn nguồn tin
+feedHandler.subscribeWith=Đăng ký nhận tin với
+
+# LOCALIZATION NOTE (nativeWindow.deprecated):
+# This string is shown in the console when someone uses deprecated NativeWindow apis.
+# %1$S=name of the api that's deprecated, %2$S=New API to use. This may be a url to
+# a file they should import or the name of an api.
+nativeWindow.deprecated=%1$S đã không được chấp nhận. Xin vui lòng sử dụng %2$S để thay thế
+
+# Vibration API permission prompt
+vibrationRequest.message = Cho phép trang này rung thiết bị của bạn?
+vibrationRequest.denyButton = Không cho phép
+vibrationRequest.allowButton = Cho phép
diff --git a/l10n-vi/mobile/android/chrome/config.dtd b/l10n-vi/mobile/android/chrome/config.dtd
new file mode 100644
index 0000000000..3c21d7bd7c
--- /dev/null
+++ b/l10n-vi/mobile/android/chrome/config.dtd
@@ -0,0 +1,21 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+
+<!ENTITY toolbar.searchPlaceholder "Tìm kiếm">
+
+<!ENTITY newPref.namePlaceholder "Tên">
+
+<!ENTITY newPref.valueBoolean "Luận lí">
+<!ENTITY newPref.valueString "Chuỗi">
+<!ENTITY newPref.valueInteger "Số nguyên">
+
+<!ENTITY newPref.stringPlaceholder "Nhập một chuỗi">
+<!ENTITY newPref.numberPlaceholder "Nhập một số">
+
+<!ENTITY newPref.toggleButton "Bật tắt">
+<!ENTITY newPref.cancelButton "Hủy bỏ">
+
+<!ENTITY contextMenu.copyPrefName "Sao chép tên">
+<!ENTITY contextMenu.copyPrefValue "Sao chép giá trị">
diff --git a/l10n-vi/mobile/android/chrome/config.properties b/l10n-vi/mobile/android/chrome/config.properties
new file mode 100644
index 0000000000..b09407fa39
--- /dev/null
+++ b/l10n-vi/mobile/android/chrome/config.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/.
+
+newPref.createButton=Tạo
+newPref.changeButton=Thay đổi
+
+pref.toggleButton=Bật/Tắt
+pref.resetButton=Mặc định
diff --git a/l10n-vi/mobile/android/chrome/devicePrompt.properties b/l10n-vi/mobile/android/chrome/devicePrompt.properties
new file mode 100644
index 0000000000..a41b203375
--- /dev/null
+++ b/l10n-vi/mobile/android/chrome/devicePrompt.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/.
+
+deviceMenu.title=Thiết bị gần đây
diff --git a/l10n-vi/mobile/android/chrome/passwordmgr.properties b/l10n-vi/mobile/android/chrome/passwordmgr.properties
new file mode 100644
index 0000000000..9e5faa0fdb
--- /dev/null
+++ b/l10n-vi/mobile/android/chrome/passwordmgr.properties
@@ -0,0 +1,20 @@
+# 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/.
+
+# String will be replaced by brandShortName.
+saveLogin=Bạn có muốn %S nhớ thông tin đăng nhập này?
+rememberButton=Lưu lại
+neverButton=Không bao giờ
+
+# String is the login's hostname
+updatePassword=Cập nhật mật khẩu đã lưu cho %S?
+updatePasswordNoUser=Cập nhật mật khẩu đã lưu cho thông tin đăng nhập này?
+updateButton=Cập nhật
+dontUpdateButton=Không cập nhật
+
+userSelectText2=Chọn đăng nhập để cập nhật:
+passwordChangeTitle=Xác nhận Thay đổi Mật khẩu
+
+username=Tên đăng nhập
+password=Mật khẩu
diff --git a/l10n-vi/mobile/android/chrome/phishing.dtd b/l10n-vi/mobile/android/chrome/phishing.dtd
new file mode 100644
index 0000000000..734f0dd1fb
--- /dev/null
+++ b/l10n-vi/mobile/android/chrome/phishing.dtd
@@ -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/. -->
+
+<!ENTITY safeb.palm.accept.label "Đưa tôi ra khỏi đây!">
+<!ENTITY safeb.palm.decline.label "Bỏ qua cảnh báo này">
+<!ENTITY safeb.palm.reportPage.label "Tại sao trang này bị chặn?">
+<!-- Localization note (safeb.palm.advisory.desc) - Please don't translate <a id="advisory_provider"/> tag. It will be replaced at runtime with advisory link-->
+<!ENTITY safeb.palm.advisory.desc "Tư vấn được cung cấp bởi <a id='advisory_provider'/>">
+
+<!ENTITY safeb.blocked.malwarePage.title "Trang web Ác ý Đã biết!">
+<!-- Localization note (safeb.blocked.malware.shortDesc) - Please don't translate the contents of the <span id="malware_sitename"/> tag. It will be replaced at runtime with a domain name (e.g. www.badsite.com) -->
+<!ENTITY safeb.blocked.malwarePage.shortDesc "Trang web tại <span id='malware_sitename'/> được 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.">
+<!ENTITY safeb.blocked.malwarePage.longDesc "<p>Trang ác ý cố gắng cài đặt các chương trình để ăn cắp thông tin cá nhân, dùng máy của bạn để tấn công máy khác, hoặc làm hư hệ thống của bạn.</p><p>Một số trang ác ý cố tình phân phối phần mềm độc hại, nhưng đa số đã bị sửa đổi mà không được phép hoặc người sở hữu không được biết.</p>">
+
+<!ENTITY safeb.blocked.phishingPage.title3 "Trang web lừa đảo!">
+<!-- Localization note (safeb.blocked.phishingPage.shortDesc3) - Please don't translate the contents of the <span id="phishing_sitename"/> tag. It will be replaced at runtime with a domain name (e.g. www.badsite.com) -->
+<!ENTITY safeb.blocked.phishingPage.shortDesc3 "Trang web tại <span id='phishing_sitename'/> được 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.">
+<!ENTITY safeb.blocked.phishingPage.longDesc3 "<p>Trang web lừa đảo là trang được thiết kế để lừa bạn làm điều gì đó nguy hiểm như cài đặt phần mềm độc hại, tiết lộ thông tin cá nhân như mật khẩu, số điện thoại hay số thẻ tín dụng.</p><p>Cung cấp bất kỳ thông tin gì cho các trang web này có thể dẫn đến trộm cắp hay sự lừa đảo khác.</p>">
+
+<!ENTITY safeb.blocked.unwantedPage.title "Trang này có nghi ngờ cài đặt phần mềm không mong muốn!">
+<!-- Localization note (safeb.blocked.unwanted.shortDesc) - Please don't translate the contents of the <span id="unwanted_sitename"/> tag. It will be replaced at runtime with a domain name (e.g. www.badsite.com) -->
+<!ENTITY safeb.blocked.unwantedPage.shortDesc "Trang web tại <span id='unwanted_sitename'/> được báo cáo là có chứa 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.">
+<!ENTITY safeb.blocked.unwantedPage.longDesc "Phần mềm không mong muốn mà trang này cố gắng cài đặt có thể là lừa đảo và ảnh hưởng nghiêm trọng đến hoạt động của thiết bị.">
+
+<!ENTITY safeb.blocked.harmfulPage.title "Trang bạn đang truy cập có thể chứa phần mềm gây hại">
+<!ENTITY safeb.blocked.harmfulPage.shortDesc "&brandShortName; đã chặn trang này vì có thể nó thử cài đặt các ứng dụng nguy hiểm mà nó có thể ăn cắp hoặc xóa thông tin của bạn (ví dụ, hình ảnh, mật khẩu, tin nhắn và thẻ tín dụng)."> \ No newline at end of file
diff --git a/l10n-vi/mobile/android/chrome/pippki.properties b/l10n-vi/mobile/android/chrome/pippki.properties
new file mode 100644
index 0000000000..36051e889b
--- /dev/null
+++ b/l10n-vi/mobile/android/chrome/pippki.properties
@@ -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/.
+
+nssdialogs.ok.label=OK
+nssdialogs.cancel.label=Hủy bỏ
+
+# These strings are stolen from security/manager/locales/en-US/chrome/pippki/pippki.dtd
+downloadCert.title=Đang tải Chứng chỉ
+downloadCert.message1=Bạn được hỏi có tin tưởng một CA (Bên thẩm định Chứng chỉ) mới hay không.
+downloadCert.viewCert.label=Xem
+downloadCert.trustSSL=Tin chứng chỉ này để nhận diện các trang web.
+downloadCert.trustEmail=Tin chứng chỉ này để nhận diện người dùng thư điện tử.
+pkcs12.getpassword.title=Hộp thoại Mục nhập Mật khẩu
+pkcs12.getpassword.message=Hãy nhập mật khẩu dùng để mật hóa bản sao lưu chứng chỉ này.
+clientAuthAsk.title=Yêu cầu Nhận diện Người dùng
+clientAuthAsk.message1=Trang này yêu cầu bạn tự nhận diện chính mình với một chứng chỉ:
+clientAuthAsk.message2=Chọn một chứng chỉ để thực hiện việc nhận diện này:
+clientAuthAsk.message3=Chi tiết của chứng chỉ đã chọn:
+clientAuthAsk.remember.label=Ghi nhớ quyết định này
+# LOCALIZATION NOTE(clientAuthAsk.nickAndSerial): Represents a single cert when
+# the user is choosing from a list of certificates.
+# %1$S is the nickname of the cert.
+# %2$S is the serial number of the cert in AA:BB:CC hex format.
+clientAuthAsk.nickAndSerial=%1$S [%2$S]
+# LOCALIZATION NOTE(clientAuthAsk.hostnameAndPort):
+# %1$S is the hostname of the server.
+# %2$S is the port of the server.
+clientAuthAsk.hostnameAndPort=%1$S:%2$S
+# LOCALIZATION NOTE(clientAuthAsk.organization): %S is the Organization of the
+# server cert.
+clientAuthAsk.organization=Tổ chức: "%S"
+# LOCALIZATION NOTE(clientAuthAsk.issuer): %S is the Organization of the
+# issuer cert of the server cert.
+clientAuthAsk.issuer=Được cấp dưới: "%S"
+# LOCALIZATION NOTE(clientAuthAsk.issuedTo): %1$S is the Distinguished Name of
+# the currently selected client cert, such as "CN=John Doe,OU=Example" (without
+# quotes).
+clientAuthAsk.issuedTo=Được cấp cho: %1$S
+# LOCALIZATION NOTE(clientAuthAsk.serial): %1$S is the serial number of the
+# selected cert in AA:BB:CC hex format.
+clientAuthAsk.serial=Số seri: %1$S
+# LOCALIZATION NOTE(clientAuthAsk.validityPeriod):
+# %1$S is the already localized notBefore date of the selected cert.
+# %2$S is the already localized notAfter date of the selected cert.
+clientAuthAsk.validityPeriod=Hợp lệ từ %1$S đến %2$S
+# LOCALIZATION NOTE(clientAuthAsk.keyUsages): %1$S is a comma separated list of
+# already localized key usages the selected cert is valid for.
+clientAuthAsk.keyUsages=Sử dụng khóa: %1$S
+# LOCALIZATION NOTE(clientAuthAsk.emailAddresses): %1$S is a comma separated
+# list of e-mail addresses the selected cert is valid for.
+clientAuthAsk.emailAddresses=Địa chỉ thư điện tử: %1$S
+# LOCALIZATION NOTE(clientAuthAsk.issuedBy): %1$S is the Distinguished Name of
+# the cert which issued the selected cert.
+clientAuthAsk.issuedBy=Được cấp bởi: %1$S
+# LOCALIZATION NOTE(clientAuthAsk.storedOn): %1$S is the name of the PKCS #11
+# token the selected cert is stored on.
+clientAuthAsk.storedOn=Lưu trữ trên: %1$S
+clientAuthAsk.viewCert.label=Xem
+
+certmgr.title=Chi tiết chứng chỉ
+# These strings are stolen from security/manager/locales/en-US/chrome/pippki/certManager.dtd
+certmgr.subjectinfo.label=Cấp cho
+certmgr.issuerinfo.label=Cấp bởi
+certmgr.periodofvalidity.label=Thời gian hiệu lực
+certmgr.fingerprints.label=Vân tay
+certdetail.cn=Tên chung (CN): %1$S
+certdetail.o=Tổ chức (O): %1$S
+certdetail.ou=Đơn vị của tổ chức (OU): %1$S
+# LOCALIZATION NOTE(certdetail.serialnumber): %1$S is the serial number of the
+# cert being viewed in AA:BB:CC hex format.
+certdetail.serialnumber=Số sê-ri: %1$S
+# LOCALIZATION NOTE(certdetail.sha256fingerprint): %1$S is the SHA-256
+# Fingerprint of the cert being viewed in AA:BB:CC hex format.
+certdetail.sha256fingerprint=Vân tay SHA-256: %1$S
+# LOCALIZATION NOTE(certdetail.sha1fingerprint): %1$S is the SHA-1 Fingerprint
+# of the cert being viewed in AA:BB:CC hex format.
+certdetail.sha1fingerprint=Vân tay SHA1: %1$S
+# LOCALIZATION NOTE(certdetail.notBefore): %1$S is the already localized
+# notBefore date of the cert being viewed.
+certdetail.notBefore=Bắt đầu vào: %1$S
+# LOCALIZATION NOTE(certdetail.notAfter): %1$S is the already localized notAfter
+# date of the cert being viewed.
+certdetail.notAfter=Hết hạn vào: %1$S
diff --git a/l10n-vi/mobile/android/chrome/sync.properties b/l10n-vi/mobile/android/chrome/sync.properties
new file mode 100644
index 0000000000..de904f43ed
--- /dev/null
+++ b/l10n-vi/mobile/android/chrome/sync.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/.
+
+# Mobile Sync
+
+# %S is the date and time at which the last sync successfully completed
+lastSync2.label=Lần đồng bộ cuối: %S
+
+# %S is the username logged in
+account.label=Tài khoản: %S
+
diff --git a/l10n-vi/mobile/android/chrome/webcompatReporter.properties b/l10n-vi/mobile/android/chrome/webcompatReporter.properties
new file mode 100644
index 0000000000..cda3ff8e02
--- /dev/null
+++ b/l10n-vi/mobile/android/chrome/webcompatReporter.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 (webcompat.menu.name): A "site issue" is a bug, display,
+# or functionality problem with a webpage in the browser.
+webcompat.menu.name=Báo cáo vấn đề về trang
+
+# LOCALIZATION NOTE (webcompat.reportDesktopMode.message): A " site issue" is a
+# bug, display, or functionality problem with a webpage in the browser.
+webcompat.reportDesktopMode.message=Báo cáo vấn đề về trang?
+webcompat.reportDesktopModeYes.label=Báo cáo
diff --git a/l10n-vi/mobile/android/defines.inc b/l10n-vi/mobile/android/defines.inc
new file mode 100644
index 0000000000..48fcae60a5
--- /dev/null
+++ b/l10n-vi/mobile/android/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 vi.mozdev.org
+
+# If non-English locales wish to credit multiple contributors, uncomment this
+
+# variable definition and use the format specified.
+
+#define MOZ_LANGPACK_CONTRIBUTORS <em:contributor>Nguyễn Mạnh Hùng</em:contributor> <em:contributor>Nguyễn Xuân Minh</em:contributor> <em:contributor>Huỳnh Hải Đăng</em:contributor> <em:contributor>Bùi Việt Khoa</em:contributor> <em:contributor>Trần Nguyễn Sơn</em:contributor>
+
+#unfilter emptyLines
diff --git a/l10n-vi/mobile/android/mobile-l10n.js b/l10n-vi/mobile/android/mobile-l10n.js
new file mode 100644
index 0000000000..b410ad9aef
--- /dev/null
+++ b/l10n-vi/mobile/android/mobile-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/mobile/chrome/region.properties b/l10n-vi/mobile/chrome/region.properties
new file mode 100644
index 0000000000..7204fdac3d
--- /dev/null
+++ b/l10n-vi/mobile/chrome/region.properties
@@ -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 https://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE: REVIEW_REQUIRED
+# Please do not commit any changes to this file without a review from the
+# l10n-drivers team (this includes en-US). In order to get one, please file
+# a bug, add the "productization" keyword and CC l10n@mozilla.com.
+
+# 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/.
+
+# Increment this number when anything gets changed in the list below. This will
+# cause Firefox to re-read these prefs and inject any new handlers into the
+# profile database. Note that "new" is defined as "has a different URL"; this
+# means that it's not possible to update the name of existing handler, so don't
+# make any spelling errors here.
+gecko.handlerService.defaultHandlersVersion=3
+
+# The default set of protocol handlers for mailto:
+gecko.handlerService.schemes.mailto.0.name=Yahoo! Mail
+gecko.handlerService.schemes.mailto.0.uriTemplate=https://compose.mail.yahoo.com/?To=%s
+gecko.handlerService.schemes.mailto.1.name=Gmail
+gecko.handlerService.schemes.mailto.1.uriTemplate=https://mail.google.com/mail/?extsrc=mailto&url=%s
+
+# This is the default set of web based feed handlers shown in the reader
+# selection UI
+browser.contentHandlers.types.0.title=My Yahoo!
+browser.contentHandlers.types.0.uri=https://add.my.yahoo.com/rss?url=%s
+
diff --git a/l10n-vi/mobile/overrides/appstrings.properties b/l10n-vi/mobile/overrides/appstrings.properties
new file mode 100644
index 0000000000..e1f3d57857
--- /dev/null
+++ b/l10n-vi/mobile/overrides/appstrings.properties
@@ -0,0 +1,41 @@
+# 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/.
+
+# BEFORE EDITING THIS FILE, PLEASE NOTE:
+# These strings are only here to support shipping Fennec ESR.
+# They are unused in GeckoView, so please don't make any changes.
+
+malformedURI2=Đường dẫn URL không đúng và không thể mở được.
+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=Firefox không thể tìm thấy máy chủ tại %S.
+unknownProtocolFound=Firefox không biết cách mở địa chỉ này, vì một trong những giao thức (%S) sau không được liên kết với bất kỳ chương trình nào hoặc không được 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ị gián đoạn 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 bất kì hành động nào (như là tìm kiếm hoặc xác nhận giao dịch) đã thực hiện trước đó.
+resendButton.label=Gửi lại
+unknownSocketType=Firefox không biết liên lạc với máy chủ 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=Tài liệu không thể chỉnh sửa trong khi đang In hoặc 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 hơn là 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=Trang bạn muốn xem không thể hiển thị 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=Trang bạn muốn xem không thể hiển thị vì nó chứa 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 họ vấn đề này.
+malwareBlocked=Trang web tại %S bị báo cáo là trang web ác ý và đã bị chặn dựa trên tùy chỉnh bảo mật của bạn.
+harmfulBlocked=Trang web %S được báo cáo là một trang web có khả năng gây hại và đã bị chặn dựa trên cấu hình bảo mật của bạn.
+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 cấu hình bảo mật của bạn.
+unwantedBlocked=Trang web tại %S bị báo cáo là có cài đặt phần mềm không mong muốn và đã bị chặn dựa trên tùy chỉnh bảo mật của bạn.
+cspBlocked=Trang này có một chính sách bảo mật nội dung mà nó không được cho phép tải theo cách này.
+corruptedContentErrorv2=Trang web tại %S đã có một vi phạm trong giao thức mạng mà không thể sửa chữa được.
+remoteXUL=Trang này sử dụng một kỹ thuật không được hỗ trợ và không còn có sẵn mặc định trong Firefox.
+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.
+weakCryptoUsed=Chủ sở hữu của %S đã cấu hình trang web của họ không đúng. Để bảo vệ thông tin của bạn không bị trộm cắp, Firefox đã ngừng kết nối đến trang web này.
+inadequateSecurityError=Trang web đã cố gắng giao tiếp ở mức độ bảo mật thấp.
+networkProtocolError=Firefox đã trải qua một vi phạm giao thức mạng mà không thể sửa chữa được.
diff --git a/l10n-vi/mobile/overrides/netError.dtd b/l10n-vi/mobile/overrides/netError.dtd
new file mode 100644
index 0000000000..e26a31daa3
--- /dev/null
+++ b/l10n-vi/mobile/overrides/netError.dtd
@@ -0,0 +1,158 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd">
+%brandDTD;
+
+<!ENTITY loadError.label "Gặp vấn đề khi tải trang">
+<!ENTITY retry.label "Thử lại">
+
+<!-- Specific error messages -->
+
+<!ENTITY connectionFailure.title "Không thể kết nối">
+<!ENTITY connectionFailure.longDesc2 "&sharedLongDesc3;">
+
+<!ENTITY deniedPortAccess.title "Địa chỉ này đã bị chặn">
+<!ENTITY deniedPortAccess.longDesc "">
+
+<!ENTITY dnsNotFound.title "Không tìm thấy máy chủ">
+<!-- LOCALIZATION NOTE (dnsNotFound.longDesc4) This string contains markup including widgets for searching
+ or enabling wifi connections. The text inside tags should be localized. Do not change the ids. -->
+<!ENTITY dnsNotFound.longDesc4 "<ul>
+ <li>Kiểm tra xem địa chỉ bạn nhập có lỗi không, ví dụ như
+ <strong>ww</strong>.example.com thay vì
+ <strong>www</strong>.example.com</li>
+ <div id='searchbox'>
+ <input id='searchtext' type='search'></input>
+ <button id='searchbutton'>Tìm kiếm</button>
+ </div>
+ <li>Nếu bạn không thể tải bất kỳ trang nào, hãy kiểm tra dữ liệu trên thiết bị hoặc kết nối Wi-Fi của bạn.
+ <button id='wifi'>Mở Wi-Fi</button>
+ </li>
+</ul>
+">
+
+<!ENTITY fileNotFound.title "Không tìm thấy tập tin">
+<!ENTITY fileNotFound.longDesc "<ul> <li>Kiểm tra tên xem có lỗi gõ HOA-thường hay lỗi nào khác không.</li> <li>Kiểm tra xem tập tin có bị chuyển, đổi tên hay bị xóa không.</li> </ul>">
+
+<!ENTITY fileAccessDenied.title "Truy cập tập tin đã bị từ chối">
+<!ENTITY fileAccessDenied.longDesc "<ul> <li>Nó có thể đã được gỡ bỏ, di chuyển, hoặc quyền truy cập tập tin có thể đã bị từ chối.</li> </ul>">
+
+<!ENTITY generic.title "Ôi không">
+<!ENTITY generic.longDesc "<p>&brandShortName; không thể tải trang này vì nào một vài lý do đó.</p>‌">
+
+<!ENTITY malformedURI.title "Địa chỉ không hợp lệ">
+<!-- LOCALIZATION NOTE (malformedURI.longDesc2) This string contains markup including widgets for searching
+ or enabling wifi connections. The text inside the tags should be localized. Do not touch the ids. -->
+<!ENTITY malformedURI.longDesc2 " <ul>
+ <li>Địa chỉ web thường được viết như
+ <strong>http://www.example.com/</strong></li>
+ <div id='searchbox'>
+ <input id='searchtext' type='search'></input>
+ <button id='searchbutton'>Tìm kiếm</button>
+ </div>
+ <li>Hãy chắc chắn rằng bạn đang sử dụng dấu gạch chéo (tức là
+ <strong>/</strong>).</li> </ul>">
+
+<!ENTITY netInterrupt.title "Kết nối bị ngắt">
+<!ENTITY netInterrupt.longDesc2 "&sharedLongDesc3;">
+
+<!ENTITY notCached.title "Tài liệu đã hết hạn">
+<!ENTITY notCached.longDesc "<p>Các tài liệu được yêu cầu không có sẵn trong bộ nhớ tạm của &brandShortName;.</p><ul><li>Để bảo mật, &brandShortName; không tự động yêu cầu lại tài liệu nhạy cảm.</li><li>Bấm thử lần nữa để yêu cầu lại tài liệu từ trang web.</li></ul>">
+
+<!ENTITY netOffline.title "Chế độ ngoại tuyến">
+
+<!ENTITY contentEncodingError.title "Lỗi Bảng Mã">
+<!ENTITY contentEncodingError.longDesc "<ul> <li>Vui lòng liên hệ với chủ trang web để báo họ vấn đề này.</li> </ul>">
+
+<!ENTITY unsafeContentType.title "Kiểu tập tin Không an toàn">
+<!ENTITY unsafeContentType.longDesc "<ul> <li>Vui lòng liên hệ với chủ trang web để báo họ vấn đề này.</li> </ul>">
+
+<!ENTITY netReset.title "Kết nối bị khởi tạo lại">
+<!ENTITY netReset.longDesc2 "&sharedLongDesc3;">
+
+<!ENTITY netTimeout.title "Kết nối bị hết thời gian">
+<!ENTITY netTimeout.longDesc2 "&sharedLongDesc3;">
+
+<!ENTITY unknownProtocolFound.title "Địa chỉ không hiểu được">
+<!ENTITY unknownProtocolFound.longDesc "<ul> <li>Có lẽ bạn cần phải cài đặt phần mềm khác để mở địa chỉ này.</li> </ul>">
+
+<!ENTITY proxyConnectFailure.title "Máy chủ proxy từ chối kết nối">
+<!ENTITY proxyConnectFailure.longDesc "<ul> <li>Kiểm tra thiết lập proxy để chắc chắn rằng mọi thứ đều đúng.</li> <li>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.</li> </ul>">
+
+<!ENTITY proxyResolveFailure.title "Không thể tìm thấy máy chủ proxy">
+<!-- LOCALIZATION NOTE (proxyResolveFailure.longDesc3) This string contains markup including widgets for enabling wifi connections.
+ The text inside the tags should be localized. Do not touch the ids. -->
+<!ENTITY proxyResolveFailure.longDesc3 "<ul> <li>Kiểm tra thiết lập proxy để chắc chắn rằng chúng đã hoạt động.</li> <li>Kiểm tra để chắc chắn rằng thiết bị có một kết nối dữ liệu mạng hoặc Wi-Fi. <button id='wifi'>Bật Wi-Fi</button> </li> </ul>">
+
+<!ENTITY redirectLoop.title "Trang không chuyển hướng đúng cách">
+<!ENTITY redirectLoop.longDesc "<ul> <li>Vấn đề này thỉnh thoảng có thể xảy ra do vô hiệu hóa hoặc từ chối cookie.</li> </ul>">
+
+<!ENTITY unknownSocketType.title "Phản hồi không mong muốn từ máy chủ">
+<!ENTITY unknownSocketType.longDesc "<ul> <li>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.</li> <li>Điều này có thể là do cấu hình không chuẩn trên máy chủ.</li> </ul>">
+
+<!ENTITY nssFailure2.title "Kết nối An toàn bị Thất bại">
+<!ENTITY nssFailure2.longDesc2 "
+<ul>
+ <li>Trang bạn đang cố gắng xem không thể hiển thị vì không được kiểm chứng tính xác thực của các dữ liệu đã nhận.</li>
+ <li>Xin vui lòng liên hệ với chủ sở hữu trang web để thông báo cho họ về vấn đề này.</li>
+</ul>
+">
+
+<!ENTITY nssBadCert.title "Kết nối An toàn bị Thất bại">
+<!ENTITY nssBadCert.longDesc2 "
+<ul>
+ <li>Điều này có thể là một vấn đề với cấu hình của máy chủ, hoặc có thể ai đó đang cố gắng mạo danh máy chủ.</li>
+ <li>Nếu bạn đã kết nối với máy chủ này thành công trong quá khứ, các lỗi có thể là tạm thời, và bạn có thể thử lại sau.</li>
+</ul>
+">
+
+<!-- LOCALIZATION NOTE (sharedLongDesc3) This string contains markup including widgets for enabling wifi connections.
+ The text inside the tags should be localized. Do not touch the ids. -->
+<!ENTITY sharedLongDesc3 "
+<ul>
+ <li>Các trang web có thể tạm thời không sẵn sàng hoặc quá tải. Thử lại sau ít phút.</li>
+ <li>Nếu bạn không thể tải trang bất kỳ, hãy kiểm tra dữ liệu di động hoặc kết nối mạng không dây.
+ <button id='wifi'>Kích hoạt mạng không dây</button>
+ </li>
+</ul>
+">
+
+<!ENTITY cspBlocked.title "Bị chặn bởi Chính sách Bảo vệ Nội dung">
+<!ENTITY cspBlocked.longDesc "<p>&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.</p>">
+
+<!ENTITY corruptedContentErrorv2.title "Lỗi nội dung không toàn vẹn">
+<!ENTITY corruptedContentErrorv2.longDesc "<p>Trang mà bạn đang cố xem không thể hiển thị được vì một lỗi trong truyền tải dữ liệu.</p><ul><li>Vui lòng liên hệ chủ trang web để báo họ về vấn đề này.</li></ul>">
+
+<!ENTITY securityOverride.linkText "Hoặc bạn có thể thêm một ngoại lệ…">
+<!ENTITY securityOverride.getMeOutOfHereButton "Đưa tôi ra khỏi đây!">
+<!ENTITY securityOverride.exceptionButtonLabel "Thêm Ngoại Lệ…">
+
+<!-- LOCALIZATION NOTE (securityOverride.warningContent) - Do not translate the
+contents of the <xul:button> tags. The only language content is the label= field,
+which uses strings already defined above. The button is included here (instead of
+netError.xhtml) because it exposes functionality specific to firefox. -->
+
+<!ENTITY securityOverride.warningContent "<p>Bạn không nên thêm ngoại lệ nếu bạn đang dùng một kết nối mạng mà bạn không tin tưởng hoàn toàn hoặc bạn không quen thấy cảnh báo cho máy chủ này.</p> <button id='getMeOutOfHereButton'>&securityOverride.getMeOutOfHereButton;</button> <button id='exceptionDialogButton'>&securityOverride.exceptionButtonLabel;</button>">
+
+<!ENTITY remoteXUL.title "XUL từ xa">
+<!ENTITY remoteXUL.longDesc "<p><ul><li>Vui lòng liên hệ với chủ trang web để báo họ vấn đề này.</li></ul></p>">
+
+<!ENTITY sslv3Used.title "Không thể kết nối an toàn">
+<!-- LOCALIZATION NOTE (sslv3Used.longDesc) - Do not translate
+ "SSL_ERROR_UNSUPPORTED_VERSION". -->
+<!ENTITY sslv3Used.longDesc "Thông tin bổ sung: SSL_ERROR_UNSUPPORTED_VERSION">
+
+<!ENTITY weakCryptoUsed.title "Kết nối của bạn không an toàn">
+<!-- LOCALIZATION NOTE (weakCryptoUsed.longDesc) - Do not translate
+ "SSL_ERROR_NO_CYPHER_OVERLAP". -->
+<!ENTITY weakCryptoUsed.longDesc "Thông tin bổ sung: SSL_ERROR_NO_CYPHER_OVERLAP">
+
+<!ENTITY inadequateSecurityError.title "Kết nối của bạn không an toàn">
+<!-- LOCALIZATION NOTE (inadequateSecurityError.longDesc) - Do not translate
+ "NS_ERROR_NET_INADEQUATE_SECURITY". -->
+<!ENTITY inadequateSecurityError.longDesc "<p><span class='hostname'></span> sử dụng công nghệ bảo mật là lỗi thời và dễ bị tấn công. Một kẻ tấn công có thể dễ dàng tiết lộ thông tin mà bạn nghĩ là an toàn. Quản trị trang web sẽ cần phải sửa chữa các máy chủ đầu tiên trước khi bạn có thể truy cập vào các trang web.</p><p>Mã lỗi: NS_ERROR_NET_INADEQUATE_SECURITY</p>">
+
+<!ENTITY networkProtocolError.title "Lỗi giao thức mạng">
+<!ENTITY networkProtocolError.longDesc "<p>Trang bạn đang cố xem không thể hiển thị vì lỗi trong giao thức mạng đã được phát hiện.</p><ul><li>Vui lòng liên hệ với chủ sở hữu trang web để thông báo cho họ về sự cố này.</li></ul>">