From 2aa4a82499d4becd2284cdb482213d541b8804dd Mon Sep 17 00:00:00 2001
From: Daniel Baumann
Date: Sun, 28 Apr 2024 16:29:10 +0200
Subject: Adding upstream version 86.0.1.
Signed-off-by: Daniel Baumann
---
l10n-vi/browser/branding/official/brand.dtd | 11 +
l10n-vi/browser/branding/official/brand.ftl | 37 +
l10n-vi/browser/branding/official/brand.properties | 14 +
l10n-vi/browser/browser/aboutCertError.ftl | 100 +
l10n-vi/browser/browser/aboutConfig.ftl | 50 +
l10n-vi/browser/browser/aboutDialog.ftl | 46 +
l10n-vi/browser/browser/aboutLogins.ftl | 312 +
l10n-vi/browser/browser/aboutPolicies.ftl | 17 +
l10n-vi/browser/browser/aboutPrivateBrowsing.ftl | 27 +
l10n-vi/browser/browser/aboutRestartRequired.ftl | 10 +
l10n-vi/browser/browser/aboutRobots.ftl | 29 +
l10n-vi/browser/browser/aboutSessionRestore.ftl | 51 +
l10n-vi/browser/browser/aboutTabCrashed.ftl | 27 +
l10n-vi/browser/browser/allTabsMenu.ftl | 20 +
l10n-vi/browser/browser/appMenuNotifications.ftl | 78 +
l10n-vi/browser/browser/appmenu.ftl | 168 +
l10n-vi/browser/browser/branding/brandings.ftl | 32 +
l10n-vi/browser/browser/branding/sync-brand.ftl | 13 +
l10n-vi/browser/browser/browser.ftl | 610 ++
l10n-vi/browser/browser/browserContext.ftl | 339 +
l10n-vi/browser/browser/browserSets.ftl | 180 +
l10n-vi/browser/browser/customizeMode.ftl | 47 +
.../browser/browser/defaultBrowserNotification.ftl | 9 +
l10n-vi/browser/browser/downloads.ftl | 166 +
l10n-vi/browser/browser/editBookmarkOverlay.ftl | 42 +
l10n-vi/browser/browser/menubar.ftl | 349 +
l10n-vi/browser/browser/migration.ftl | 148 +
l10n-vi/browser/browser/newInstallPage.ftl | 33 +
l10n-vi/browser/browser/newtab/asrouter.ftl | 300 +
l10n-vi/browser/browser/newtab/newtab.ftl | 241 +
l10n-vi/browser/browser/newtab/onboarding.ftl | 241 +
l10n-vi/browser/browser/nsserrors.ftl | 354 ++
l10n-vi/browser/browser/pageInfo.ftl | 252 +
l10n-vi/browser/browser/panicButton.ftl | 31 +
l10n-vi/browser/browser/places.ftl | 71 +
.../browser/policies/policies-descriptions.ftl | 114 +
l10n-vi/browser/browser/preferences/addEngine.ftl | 22 +
.../browser/preferences/applicationManager.ftl | 25 +
l10n-vi/browser/browser/preferences/blocklists.ftl | 33 +
.../browser/browser/preferences/clearSiteData.ftl | 53 +
l10n-vi/browser/browser/preferences/colors.ftl | 48 +
l10n-vi/browser/browser/preferences/connection.ftl | 88 +
l10n-vi/browser/browser/preferences/containers.ftl | 87 +
l10n-vi/browser/browser/preferences/fonts.ftl | 160 +
.../browser/browser/preferences/fxaPairDevice.ftl | 15 +
l10n-vi/browser/browser/preferences/languages.ftl | 73 +
.../browser/browser/preferences/permissions.ftl | 157 +
.../browser/browser/preferences/preferences.ftl | 1161 ++++
.../browser/browser/preferences/selectBookmark.ftl | 9 +
.../browser/preferences/siteDataSettings.ftl | 57 +
.../browser/browser/preferences/translation.ftl | 33 +
l10n-vi/browser/browser/protections.ftl | 195 +
l10n-vi/browser/browser/protectionsPanel.ftl | 98 +
l10n-vi/browser/browser/safeMode.ftl | 16 +
.../browser/browser/safebrowsing/blockedSite.ftl | 33 +
l10n-vi/browser/browser/sanitize.ftl | 110 +
l10n-vi/browser/browser/screenshots.ftl | 47 +
l10n-vi/browser/browser/search.ftl | 19 +
l10n-vi/browser/browser/setDesktopBackground.ftl | 40 +
l10n-vi/browser/browser/sidebarMenu.ftl | 15 +
l10n-vi/browser/browser/sync.ftl | 21 +
l10n-vi/browser/browser/syncedTabs.ftl | 43 +
l10n-vi/browser/browser/tabContextMenu.ftl | 95 +
l10n-vi/browser/browser/toolbarContextMenu.ftl | 74 +
l10n-vi/browser/browser/touchbar/touchbar.ftl | 38 +
l10n-vi/browser/browser/webrtcIndicator.ftl | 40 +
.../chrome/browser-region/region.properties | 29 +
l10n-vi/browser/chrome/browser/accounts.properties | 129 +
.../chrome/browser/app-extension-fields.properties | 15 +
l10n-vi/browser/chrome/browser/baseMenuOverlay.dtd | 18 +
l10n-vi/browser/chrome/browser/brandings.dtd | 13 +
l10n-vi/browser/chrome/browser/browser.dtd | 289 +
l10n-vi/browser/chrome/browser/browser.properties | 1070 ++++
.../customizableui/customizableWidgets.properties | 100 +
.../chrome/browser/downloads/downloads.properties | 99 +
.../chrome/browser/feeds/subscribe.properties | 10 +
.../browser/chrome/browser/fxmonitor.properties | 49 +
.../browser/chrome/browser/migration/migration.dtd | 53 +
.../chrome/browser/migration/migration.properties | 76 +
l10n-vi/browser/chrome/browser/newInstall.dtd | 15 +
.../browser/places/bookmarkProperties.properties | 16 +
l10n-vi/browser/chrome/browser/places/places.dtd | 63 +
.../chrome/browser/places/places.properties | 74 +
l10n-vi/browser/chrome/browser/pocket.properties | 31 +
.../browser/safebrowsing/safebrowsing.properties | 6 +
l10n-vi/browser/chrome/browser/search.properties | 45 +
.../browser/chrome/browser/shellservice.properties | 28 +
l10n-vi/browser/chrome/browser/siteData.properties | 8 +
.../chrome/browser/sitePermissions.properties | 53 +
l10n-vi/browser/chrome/browser/syncBrand.dtd | 6 +
.../browser/chrome/browser/syncSetup.properties | 14 +
.../browser/chrome/browser/tabbrowser.properties | 128 +
l10n-vi/browser/chrome/browser/taskbar.properties | 12 +
l10n-vi/browser/chrome/browser/translation.dtd | 59 +
.../browser/chrome/browser/translation.properties | 12 +
.../browser/chrome/browser/uiDensity.properties | 5 +
.../chrome/browser/webrtcIndicator.properties | 61 +
.../browser/chrome/overrides/appstrings.properties | 45 +
l10n-vi/browser/chrome/overrides/netError.dtd | 139 +
.../browser/chrome/overrides/settingsChange.dtd | 7 +
.../crashreporter/crashreporter-override.ini | 8 +
.../defaultagent/defaultagent_localized.ini | 12 +
l10n-vi/browser/defines.inc | 14 +
.../formautofill/formautofill.properties | 241 +
.../report-site-issue/webcompat.properties | 10 +
l10n-vi/browser/firefox-l10n.js | 6 +
l10n-vi/browser/installer/custom.properties | 92 +
l10n-vi/browser/installer/mui.properties | 61 +
l10n-vi/browser/installer/nsisstrings.properties | 50 +
l10n-vi/browser/installer/override.properties | 86 +
l10n-vi/browser/pdfviewer/chrome.properties | 19 +
l10n-vi/browser/pdfviewer/viewer.properties | 253 +
l10n-vi/browser/profile/bookmarks.inc | 72 +
l10n-vi/browser/updater/updater.ini | 10 +
l10n-vi/calendar/README.txt | 3 +
.../calendar/calendar/calendar-context-menus.ftl | 7 +
.../calendar/calendar/calendar-ics-file-dialog.ftl | 29 +
.../calendar/calendar/calendar-summary-dialog.ftl | 15 +
.../calendar/calendar-uri-redirect-dialog.ftl | 11 +
l10n-vi/calendar/calendar/calendar-widgets.ftl | 6 +
l10n-vi/calendar/calendar/category-dialog.ftl | 7 +
l10n-vi/calendar/calendar/preferences.ftl | 186 +
.../chrome/calendar/calendar-alarms.properties | 39 +
.../calendar-event-dialog-attendees.properties | 15 +
.../chrome/calendar/calendar-event-dialog.dtd | 428 ++
.../calendar/calendar-event-dialog.properties | 541 ++
.../chrome/calendar/calendar-extract.properties | 294 +
.../calendar/calendar-invitations-dialog.dtd | 19 +
.../calendar-invitations-dialog.properties | 10 +
.../chrome/calendar/calendar-occurrence-prompt.dtd | 7 +
.../calendar/calendar-occurrence-prompt.properties | 53 +
.../calendar/calendar-subscriptions-dialog.dtd | 14 +
l10n-vi/calendar/chrome/calendar/calendar.dtd | 411 ++
.../calendar/chrome/calendar/calendar.properties | 818 +++
.../calendar/chrome/calendar/calendarCreation.dtd | 51 +
.../chrome/calendar/calendarCreation.properties | 6 +
.../calendar/chrome/calendar/categories.properties | 7 +
.../calendar/chrome/calendar/dateFormat.properties | 146 +
.../dialogs/calendar-event-dialog-reminder.dtd | 22 +
l10n-vi/calendar/chrome/calendar/global.dtd | 54 +
l10n-vi/calendar/chrome/calendar/menuOverlay.dtd | 50 +
l10n-vi/calendar/chrome/calendar/migration.dtd | 9 +
.../calendar/chrome/calendar/migration.properties | 13 +
.../chrome/calendar/provider-uninstall.dtd | 12 +
.../calendar/chrome/calendar/timezones.properties | 488 ++
.../chrome/lightning/lightning-toolbar.dtd | 51 +
l10n-vi/calendar/chrome/lightning/lightning.dtd | 116 +
.../calendar/chrome/lightning/lightning.properties | 201 +
l10n-vi/calendar/extra-jar.mn | 8 +
l10n-vi/calendar/lightning-l10n.js | 23 +
l10n-vi/calendar/sunbird-l10n.js | 23 +
l10n-vi/chat/accounts.dtd | 41 +
l10n-vi/chat/accounts.properties | 9 +
l10n-vi/chat/commands.properties | 27 +
l10n-vi/chat/contacts.properties | 8 +
l10n-vi/chat/conversations.properties | 80 +
l10n-vi/chat/dateFormat.properties | 62 +
l10n-vi/chat/facebook.properties | 6 +
l10n-vi/chat/imtooltip.properties | 10 +
l10n-vi/chat/irc.properties | 209 +
l10n-vi/chat/logger.properties | 7 +
l10n-vi/chat/matrix.properties | 26 +
l10n-vi/chat/skype.properties | 14 +
l10n-vi/chat/status.properties | 23 +
l10n-vi/chat/twitter.properties | 122 +
l10n-vi/chat/xmpp.properties | 238 +
l10n-vi/chat/yahoo.properties | 5 +
l10n-vi/devtools/client/aboutdebugging.ftl | 394 ++
l10n-vi/devtools/client/accessibility.ftl | 51 +
l10n-vi/devtools/client/accessibility.properties | 310 +
.../devtools/client/animationinspector.properties | 182 +
l10n-vi/devtools/client/application.ftl | 187 +
l10n-vi/devtools/client/boxmodel.properties | 48 +
l10n-vi/devtools/client/changes.properties | 64 +
l10n-vi/devtools/client/compatibility.ftl | 48 +
l10n-vi/devtools/client/components.properties | 24 +
l10n-vi/devtools/client/debugger.properties | 1063 ++++
l10n-vi/devtools/client/device.properties | 20 +
l10n-vi/devtools/client/dom.properties | 19 +
l10n-vi/devtools/client/filterwidget.properties | 61 +
l10n-vi/devtools/client/font-inspector.properties | 69 +
l10n-vi/devtools/client/graphs.properties | 24 +
l10n-vi/devtools/client/har.properties | 22 +
l10n-vi/devtools/client/inspector.properties | 540 ++
.../devtools/client/jit-optimizations.properties | 35 +
l10n-vi/devtools/client/jsonview.properties | 47 +
l10n-vi/devtools/client/layout.properties | 129 +
l10n-vi/devtools/client/markers.properties | 119 +
l10n-vi/devtools/client/memory.properties | 426 ++
l10n-vi/devtools/client/menus.properties | 35 +
l10n-vi/devtools/client/netmonitor.properties | 1539 +++++
.../devtools/client/network-throttling.properties | 18 +
l10n-vi/devtools/client/performance.dtd | 130 +
l10n-vi/devtools/client/performance.properties | 160 +
l10n-vi/devtools/client/perftools.ftl | 68 +
l10n-vi/devtools/client/responsive.properties | 173 +
l10n-vi/devtools/client/shared.properties | 26 +
l10n-vi/devtools/client/sourceeditor.dtd | 25 +
l10n-vi/devtools/client/sourceeditor.properties | 117 +
l10n-vi/devtools/client/startup.properties | 253 +
l10n-vi/devtools/client/storage.dtd | 17 +
l10n-vi/devtools/client/storage.ftl | 33 +
l10n-vi/devtools/client/storage.properties | 104 +
l10n-vi/devtools/client/styleeditor.ftl | 27 +
l10n-vi/devtools/client/styleeditor.properties | 67 +
l10n-vi/devtools/client/toolbox-options.ftl | 140 +
l10n-vi/devtools/client/toolbox.properties | 285 +
l10n-vi/devtools/client/tooltips.ftl | 68 +
l10n-vi/devtools/client/webconsole.properties | 560 ++
l10n-vi/devtools/shared/accessibility.properties | 139 +
l10n-vi/devtools/shared/debugger.properties | 59 +
l10n-vi/devtools/shared/eyedropper.properties | 14 +
l10n-vi/devtools/shared/highlighters.properties | 35 +
l10n-vi/devtools/shared/screenshot.properties | 138 +
l10n-vi/devtools/shared/shared.properties | 6 +
l10n-vi/devtools/shared/styleinspector.properties | 242 +
l10n-vi/devtools/startup/aboutDevTools.ftl | 57 +
l10n-vi/devtools/startup/key-shortcuts.properties | 67 +
l10n-vi/devtools/startup/startup.properties | 8 +
.../dom/chrome/accessibility/AccessFu.properties | 305 +
.../chrome/accessibility/mac/accessible.properties | 65 +
.../accessibility/unix/accessible.properties | 17 +
.../chrome/accessibility/win/accessible.properties | 17 +
l10n-vi/dom/chrome/appstrings.properties | 38 +
l10n-vi/dom/chrome/dom/dom.properties | 317 +
l10n-vi/dom/chrome/global-strres.properties | 5 +
l10n-vi/dom/chrome/global.dtd | 5 +
l10n-vi/dom/chrome/layout/HtmlForm.properties | 43 +
l10n-vi/dom/chrome/layout/MediaDocument.properties | 21 +
l10n-vi/dom/chrome/layout/css.properties | 46 +
l10n-vi/dom/chrome/layout/htmlparser.properties | 134 +
l10n-vi/dom/chrome/layout/layout_errors.properties | 54 +
l10n-vi/dom/chrome/layout/printing.properties | 56 +
l10n-vi/dom/chrome/layout/xmlparser.properties | 48 +
l10n-vi/dom/chrome/layout/xul.properties | 5 +
l10n-vi/dom/chrome/mathml/mathml.properties | 16 +
l10n-vi/dom/chrome/netError.dtd | 96 +
l10n-vi/dom/chrome/nsWebBrowserPersist.properties | 17 +
l10n-vi/dom/chrome/plugins.properties | 18 +
l10n-vi/dom/chrome/security/caps.properties | 9 +
l10n-vi/dom/chrome/security/csp.properties | 107 +
l10n-vi/dom/chrome/security/security.properties | 154 +
l10n-vi/dom/chrome/svg/svg.properties | 5 +
l10n-vi/dom/chrome/xml/prettyprint.dtd | 5 +
l10n-vi/dom/chrome/xslt/xslt.properties | 39 +
l10n-vi/dom/dom/media.ftl | 5 +
.../editor/ui/chrome/composer/editingOverlay.dtd | 40 +
l10n-vi/editor/ui/chrome/composer/editor.dtd | 67 +
.../editor/ui/chrome/composer/editor.properties | 208 +
.../editor/ui/chrome/composer/editorOverlay.dtd | 370 ++
.../ui/chrome/composer/editorPrefsOverlay.dtd | 13 +
.../ui/chrome/composer/editorSmileyOverlay.dtd | 58 +
.../editor/ui/chrome/composer/pref-composer.dtd | 30 +
l10n-vi/editor/ui/chrome/composer/pref-editing.dtd | 31 +
.../editor/ui/chrome/dialogs/EdAdvancedEdit.dtd | 18 +
l10n-vi/editor/ui/chrome/dialogs/EdColorPicker.dtd | 22 +
.../editor/ui/chrome/dialogs/EdConvertToTable.dtd | 15 +
.../editor/ui/chrome/dialogs/EdDialogOverlay.dtd | 18 +
.../ui/chrome/dialogs/EdNamedAnchorProperties.dtd | 8 +
l10n-vi/editor/ui/chrome/dialogs/EditConflict.dtd | 10 +
.../ui/chrome/dialogs/EditorButtonProperties.dtd | 28 +
.../ui/chrome/dialogs/EditorColorProperties.dtd | 29 +
.../ui/chrome/dialogs/EditorFieldSetProperties.dtd | 20 +
.../ui/chrome/dialogs/EditorFormProperties.dtd | 22 +
.../ui/chrome/dialogs/EditorHLineProperties.dtd | 27 +
.../ui/chrome/dialogs/EditorImageProperties.dtd | 79 +
.../ui/chrome/dialogs/EditorInputProperties.dtd | 50 +
.../editor/ui/chrome/dialogs/EditorInsertChars.dtd | 19 +
.../editor/ui/chrome/dialogs/EditorInsertMath.dtd | 21 +
.../ui/chrome/dialogs/EditorInsertSource.dtd | 15 +
.../editor/ui/chrome/dialogs/EditorInsertTOC.dtd | 16 +
.../editor/ui/chrome/dialogs/EditorInsertTable.dtd | 18 +
.../ui/chrome/dialogs/EditorLabelProperties.dtd | 18 +
.../ui/chrome/dialogs/EditorLinkProperties.dtd | 6 +
.../ui/chrome/dialogs/EditorListProperties.dtd | 20 +
.../ui/chrome/dialogs/EditorPageProperties.dtd | 17 +
.../ui/chrome/dialogs/EditorPersonalDictionary.dtd | 20 +
l10n-vi/editor/ui/chrome/dialogs/EditorPublish.dtd | 65 +
.../ui/chrome/dialogs/EditorPublishProgress.dtd | 16 +
l10n-vi/editor/ui/chrome/dialogs/EditorReplace.dtd | 27 +
.../ui/chrome/dialogs/EditorSaveAsCharset.dtd | 14 +
.../ui/chrome/dialogs/EditorSelectProperties.dtd | 48 +
.../editor/ui/chrome/dialogs/EditorSnapToGrid.dtd | 13 +
.../editor/ui/chrome/dialogs/EditorSpellCheck.dtd | 38 +
.../ui/chrome/dialogs/EditorTableProperties.dtd | 75 +
.../ui/chrome/dialogs/EditorTextAreaProperties.dtd | 33 +
l10n-vi/editor/ui/chrome/region/region.properties | 9 +
.../spellcheck/hunspell/vi-x-KieuCu.[Chuan].aff | 70 +
.../spellcheck/hunspell/vi-x-KieuCu.[Chuan].dic | 6632 ++++++++++++++++++++
.../hunspell/vi-x-KieuMoi.[KhongChuan].aff | 70 +
.../hunspell/vi-x-KieuMoi.[KhongChuan].dic | 6632 ++++++++++++++++++++
l10n-vi/mail/README.txt | 3 +
l10n-vi/mail/all-l10n.js | 8 +
l10n-vi/mail/branding/thunderbird/brand.dtd | 13 +
l10n-vi/mail/branding/thunderbird/brand.ftl | 21 +
l10n-vi/mail/branding/thunderbird/brand.properties | 7 +
.../mail/chrome/communicator/utilityOverlay.dtd | 47 +
l10n-vi/mail/chrome/messenger-mapi/mapi.properties | 37 +
.../mail/chrome/messenger-newsblog/am-newsblog.dtd | 14 +
.../messenger-newsblog/feed-subscriptions.dtd | 55 +
.../chrome/messenger-newsblog/newsblog.properties | 93 +
.../mail/chrome/messenger-region/region.properties | 26 +
.../chrome/messenger-smime/certFetchingStatus.dtd | 9 +
.../chrome/messenger-smime/msgCompSMIMEOverlay.dtd | 39 +
.../chrome/messenger-smime/msgCompSecurityInfo.dtd | 18 +
.../messenger-smime/msgCompSecurityInfo.properties | 14 +
.../chrome/messenger-smime/msgReadSMIMEOverlay.dtd | 8 +
.../messenger-smime/msgReadSMIMEOverlay.properties | 11 +
.../chrome/messenger-smime/msgReadSecurityInfo.dtd | 17 +
.../messenger-smime/msgSecurityInfo.properties | 36 +
l10n-vi/mail/chrome/messenger/AccountManager.dtd | 37 +
l10n-vi/mail/chrome/messenger/AccountWizard.dtd | 127 +
l10n-vi/mail/chrome/messenger/CustomHeaders.dtd | 11 +
l10n-vi/mail/chrome/messenger/FilterEditor.dtd | 67 +
l10n-vi/mail/chrome/messenger/FilterListDialog.dtd | 40 +
l10n-vi/mail/chrome/messenger/SearchDialog.dtd | 38 +
l10n-vi/mail/chrome/messenger/aboutDialog.dtd | 112 +
l10n-vi/mail/chrome/messenger/aboutDownloads.dtd | 24 +
.../mail/chrome/messenger/aboutRights.properties | 7 +
.../chrome/messenger/aboutSupportMail.properties | 16 +
l10n-vi/mail/chrome/messenger/accountCreation.dtd | 112 +
.../chrome/messenger/accountCreation.properties | 114 +
.../messenger/accountCreationModel.properties | 20 +
.../messenger/accountCreationUtil.properties | 34 +
l10n-vi/mail/chrome/messenger/activity.dtd | 37 +
l10n-vi/mail/chrome/messenger/activity.properties | 99 +
l10n-vi/mail/chrome/messenger/addbuddy.dtd | 7 +
l10n-vi/mail/chrome/messenger/addons.properties | 251 +
.../addressbook/abAddressBookNameDialog.dtd | 7 +
.../mail/chrome/messenger/addressbook/abCard.dtd | 156 +
.../messenger/addressbook/abContactsPanel.dtd | 49 +
.../messenger/addressbook/abMailListDialog.dtd | 21 +
.../chrome/messenger/addressbook/abMainWindow.dtd | 221 +
.../messenger/addressbook/abNewCardDialog.dtd | 8 +
.../chrome/messenger/addressbook/abResultsPane.dtd | 38 +
.../messenger/addressbook/addressBook.properties | 262 +
.../addressbook/ldapAutoCompErrs.properties | 104 +
.../messenger/addressbook/pref-directory-add.dtd | 46 +
.../messenger/addressbook/pref-directory.dtd | 17 +
.../addressbook/replicationProgress.properties | 20 +
l10n-vi/mail/chrome/messenger/am-addressing.dtd | 51 +
l10n-vi/mail/chrome/messenger/am-advanced.dtd | 30 +
.../mail/chrome/messenger/am-archiveoptions.dtd | 25 +
l10n-vi/mail/chrome/messenger/am-copies.dtd | 52 +
l10n-vi/mail/chrome/messenger/am-e2e.properties | 5 +
.../mail/chrome/messenger/am-identities-list.dtd | 15 +
l10n-vi/mail/chrome/messenger/am-identity-edit.dtd | 14 +
l10n-vi/mail/chrome/messenger/am-im.dtd | 16 +
l10n-vi/mail/chrome/messenger/am-junk.dtd | 31 +
l10n-vi/mail/chrome/messenger/am-main.dtd | 47 +
l10n-vi/mail/chrome/messenger/am-mdn.dtd | 33 +
l10n-vi/mail/chrome/messenger/am-mdn.properties | 7 +
l10n-vi/mail/chrome/messenger/am-offline.dtd | 57 +
.../mail/chrome/messenger/am-server-advanced.dtd | 31 +
l10n-vi/mail/chrome/messenger/am-server-top.dtd | 89 +
.../chrome/messenger/am-serverwithnoidentities.dtd | 6 +
l10n-vi/mail/chrome/messenger/am-smime.dtd | 20 +
l10n-vi/mail/chrome/messenger/am-smime.properties | 40 +
.../messenger/app-extension-fields.properties | 11 +
l10n-vi/mail/chrome/messenger/appUpdate.properties | 40 +
.../messenger/appleMailImportMsgs.properties | 20 +
l10n-vi/mail/chrome/messenger/baseMenuOverlay.dtd | 40 +
.../chrome/messenger/beckyImportMsgs.properties | 19 +
.../mail/chrome/messenger/charsetTitles.properties | 69 +
l10n-vi/mail/chrome/messenger/chat.dtd | 44 +
l10n-vi/mail/chrome/messenger/chat.properties | 99 +
.../mail/chrome/messenger/configEditorOverlay.dtd | 6 +
l10n-vi/mail/chrome/messenger/converterDialog.dtd | 10 +
.../chrome/messenger/converterDialog.properties | 41 +
l10n-vi/mail/chrome/messenger/custom.properties | 5 +
l10n-vi/mail/chrome/messenger/customizeToolbar.dtd | 18 +
.../chrome/messenger/customizeToolbar.properties | 11 +
.../mail/chrome/messenger/devtools/dbgserver.dtd | 4 +
.../chrome/messenger/devtools/dbgserver.properties | 11 +
l10n-vi/mail/chrome/messenger/downloadheaders.dtd | 20 +
.../mail/chrome/messenger/editContactOverlay.dtd | 20 +
.../chrome/messenger/editContactOverlay.properties | 14 +
l10n-vi/mail/chrome/messenger/fieldMapImport.dtd | 20 +
l10n-vi/mail/chrome/messenger/filter.properties | 110 +
l10n-vi/mail/chrome/messenger/folderProps.dtd | 74 +
.../mail/chrome/messenger/folderWidgets.properties | 12 +
l10n-vi/mail/chrome/messenger/folderpane.dtd | 7 +
l10n-vi/mail/chrome/messenger/gloda.properties | 175 +
.../mail/chrome/messenger/glodaComplete.properties | 19 +
l10n-vi/mail/chrome/messenger/glodaFacetView.dtd | 29 +
.../chrome/messenger/glodaFacetView.properties | 171 +
l10n-vi/mail/chrome/messenger/imAccountWizard.dtd | 32 +
.../mail/chrome/messenger/imAccounts.properties | 60 +
l10n-vi/mail/chrome/messenger/imapMsgs.properties | 246 +
l10n-vi/mail/chrome/messenger/importDialog.dtd | 51 +
.../mail/chrome/messenger/importMsgs.properties | 304 +
l10n-vi/mail/chrome/messenger/joinChat.dtd | 10 +
l10n-vi/mail/chrome/messenger/junkLog.dtd | 10 +
l10n-vi/mail/chrome/messenger/junkMailInfo.dtd | 12 +
l10n-vi/mail/chrome/messenger/localMsgs.properties | 134 +
.../mail/chrome/messenger/mailEditorOverlay.dtd | 7 +
l10n-vi/mail/chrome/messenger/mailOverlay.dtd | 11 +
l10n-vi/mail/chrome/messenger/mailViewList.dtd | 7 +
l10n-vi/mail/chrome/messenger/mailViewSetup.dtd | 10 +
l10n-vi/mail/chrome/messenger/mailviews.properties | 13 +
l10n-vi/mail/chrome/messenger/markByDate.dtd | 9 +
l10n-vi/mail/chrome/messenger/messenger.dtd | 973 +++
l10n-vi/mail/chrome/messenger/messenger.properties | 791 +++
.../messenger/messengercompose/EdAdvancedEdit.dtd | 18 +
.../messenger/messengercompose/EdColorPicker.dtd | 22 +
.../messengercompose/EdConvertToTable.dtd | 15 +
.../messenger/messengercompose/EdDialogOverlay.dtd | 18 +
.../messengercompose/EdNamedAnchorProperties.dtd | 8 +
.../messengercompose/EditorColorProperties.dtd | 29 +
.../messengercompose/EditorHLineProperties.dtd | 27 +
.../messengercompose/EditorImageProperties.dtd | 79 +
.../messengercompose/EditorInsertChars.dtd | 19 +
.../messengercompose/EditorInsertMath.dtd | 21 +
.../messengercompose/EditorInsertSource.dtd | 15 +
.../messenger/messengercompose/EditorInsertTOC.dtd | 16 +
.../messengercompose/EditorInsertTable.dtd | 18 +
.../messengercompose/EditorLinkProperties.dtd | 6 +
.../messengercompose/EditorListProperties.dtd | 20 +
.../messengercompose/EditorPersonalDictionary.dtd | 18 +
.../messenger/messengercompose/EditorReplace.dtd | 29 +
.../messengercompose/EditorSpellCheck.dtd | 38 +
.../messengercompose/EditorTableProperties.dtd | 75 +
.../messenger/messengercompose/askSendFormat.dtd | 21 +
.../messengercompose/askSendFormat.properties | 9 +
.../messengercompose/composeMsgs.properties | 429 ++
.../messenger/messengercompose/editor.properties | 208 +
.../messenger/messengercompose/editorOverlay.dtd | 303 +
.../messengercompose/mailComposeEditorOverlay.dtd | 10 +
.../messengercompose/messengercompose.dtd | 346 +
.../messenger/messengercompose/sendProgress.dtd | 8 +
.../messengercompose/sendProgress.properties | 21 +
.../mail/chrome/messenger/migration/migration.dtd | 30 +
.../messenger/migration/migration.properties | 25 +
l10n-vi/mail/chrome/messenger/mime.properties | 154 +
.../mail/chrome/messenger/mimeheader.properties | 35 +
.../chrome/messenger/morkImportMsgs.properties | 18 +
.../mail/chrome/messenger/msgAccountCentral.dtd | 27 +
.../mail/chrome/messenger/msgHdrViewOverlay.dtd | 111 +
l10n-vi/mail/chrome/messenger/msgPrintEngine.dtd | 16 +
l10n-vi/mail/chrome/messenger/msgSynchronize.dtd | 25 +
.../mail/chrome/messenger/msgViewPickerOverlay.dtd | 22 +
l10n-vi/mail/chrome/messenger/msgmdn.properties | 19 +
l10n-vi/mail/chrome/messenger/multimessageview.dtd | 8 +
.../chrome/messenger/multimessageview.properties | 66 +
l10n-vi/mail/chrome/messenger/newFolderDialog.dtd | 17 +
.../newmailaccount/accountProvisioner.dtd | 43 +
.../newmailaccount/accountProvisioner.properties | 32 +
l10n-vi/mail/chrome/messenger/news.properties | 56 +
l10n-vi/mail/chrome/messenger/newsError.dtd | 31 +
.../mail/chrome/messenger/oeImportMsgs.properties | 76 +
l10n-vi/mail/chrome/messenger/offline.properties | 28 +
.../chrome/messenger/offlineStartup.properties | 8 +
.../chrome/messenger/outlookImportMsgs.properties | 78 +
l10n-vi/mail/chrome/messenger/pgpmime.properties | 10 +
.../preferences/applicationManager.properties | 13 +
.../messenger/preferences/applications.properties | 13 +
.../messenger/preferences/messagestyle.properties | 13 +
.../messenger/preferences/preferences.properties | 118 +
l10n-vi/mail/chrome/messenger/prefs.properties | 90 +
l10n-vi/mail/chrome/messenger/quickFilterBar.dtd | 276 +
l10n-vi/mail/chrome/messenger/removeAccount.dtd | 22 +
.../mail/chrome/messenger/removeAccount.properties | 5 +
.../mail/chrome/messenger/renameFolderDialog.dtd | 10 +
l10n-vi/mail/chrome/messenger/safeMode.dtd | 21 +
l10n-vi/mail/chrome/messenger/sanitize.dtd | 42 +
.../messenger/seamonkeyImportMsgs.properties | 18 +
.../chrome/messenger/search-attributes.properties | 45 +
.../chrome/messenger/search-operators.properties | 32 +
l10n-vi/mail/chrome/messenger/search.properties | 27 +
.../mail/chrome/messenger/searchTermOverlay.dtd | 20 +
.../chrome/messenger/shutdownWindow.properties | 10 +
l10n-vi/mail/chrome/messenger/smime.properties | 11 +
l10n-vi/mail/chrome/messenger/smtpEditOverlay.dtd | 24 +
l10n-vi/mail/chrome/messenger/subscribe.dtd | 22 +
l10n-vi/mail/chrome/messenger/subscribe.properties | 13 +
l10n-vi/mail/chrome/messenger/tabmail.dtd | 9 +
l10n-vi/mail/chrome/messenger/taskbar.properties | 9 +
l10n-vi/mail/chrome/messenger/telemetry.properties | 13 +
.../mail/chrome/messenger/templateUtils.properties | 7 +
.../chrome/messenger/textImportMsgs.properties | 43 +
.../chrome/messenger/vCardImportMsgs.properties | 26 +
l10n-vi/mail/chrome/messenger/viewLog.dtd | 13 +
l10n-vi/mail/chrome/messenger/viewSource.dtd | 90 +
.../mail/chrome/messenger/viewSource.properties | 17 +
l10n-vi/mail/chrome/messenger/viewZoomOverlay.dtd | 30 +
.../chrome/messenger/virtualFolderListDialog.dtd | 8 +
.../chrome/messenger/virtualFolderProperties.dtd | 22 +
.../mail/chrome/messenger/wmImportMsgs.properties | 77 +
l10n-vi/mail/chrome/mozldap/ldap.properties | 261 +
l10n-vi/mail/chrome/overrides/netError.dtd | 184 +
l10n-vi/mail/chrome/overrides/profileDowngrade.dtd | 20 +
l10n-vi/mail/chrome/overrides/settingsChange.dtd | 6 +
l10n-vi/mail/defines.inc | 9 +
l10n-vi/mail/installer/custom.properties | 85 +
l10n-vi/mail/installer/mui.properties | 60 +
l10n-vi/mail/installer/override.properties | 86 +
l10n-vi/mail/isp/isps.txt | 1 +
l10n-vi/mail/messenger/aboutProfilesExtra.ftl | 5 +
l10n-vi/mail/messenger/aboutRights.ftl | 34 +
l10n-vi/mail/messenger/aboutSupportMail.ftl | 20 +
l10n-vi/mail/messenger/accountCentral.ftl | 68 +
.../mail/messenger/addressbook/abCardDAVDialog.ftl | 45 +
.../messenger/addressbook/abCardDAVProperties.ftl | 27 +
l10n-vi/mail/messenger/menubar.ftl | 25 +
l10n-vi/mail/messenger/messenger.ftl | 36 +
.../messengercompose/messengercompose.ftl | 62 +
l10n-vi/mail/messenger/newInstall.ftl | 9 +
l10n-vi/mail/messenger/newInstallPage.ftl | 15 +
.../mail/messenger/openpgp/backupKeyPassword.ftl | 20 +
l10n-vi/mail/messenger/openpgp/changeExpiryDlg.ftl | 22 +
.../mail/messenger/openpgp/composeKeyStatus.ftl | 16 +
l10n-vi/mail/messenger/openpgp/keyWizard.ftl | 125 +
l10n-vi/mail/messenger/openpgp/msgReadStatus.ftl | 39 +
.../mail/messenger/openpgp/oneRecipientStatus.ftl | 27 +
.../mail/messenger/openpgp/openpgp-frontend.ftl | 47 +
l10n-vi/mail/messenger/openpgp/openpgp.ftl | 209 +
l10n-vi/mail/messenger/otr/add-finger.ftl | 17 +
l10n-vi/mail/messenger/otr/am-im-otr.ftl | 24 +
l10n-vi/mail/messenger/otr/auth.ftl | 59 +
l10n-vi/mail/messenger/otr/chat.ftl | 19 +
l10n-vi/mail/messenger/otr/finger-sync.ftl | 12 +
l10n-vi/mail/messenger/otr/finger.ftl | 22 +
l10n-vi/mail/messenger/otr/otr.ftl | 34 +
l10n-vi/mail/messenger/otr/otrUI.ftl | 86 +
l10n-vi/mail/messenger/policies/aboutPolicies.ftl | 17 +
.../messenger/policies/policies-descriptions.ftl | 88 +
l10n-vi/mail/messenger/preferences/am-im.ftl | 6 +
.../messenger/preferences/application-manager.ftl | 11 +
.../messenger/preferences/attachment-reminder.ftl | 26 +
l10n-vi/mail/messenger/preferences/colors.ftl | 52 +
l10n-vi/mail/messenger/preferences/connection.ftl | 115 +
l10n-vi/mail/messenger/preferences/cookies.ftl | 55 +
.../mail/messenger/preferences/dock-options.ftl | 26 +
l10n-vi/mail/messenger/preferences/fonts.ftl | 151 +
l10n-vi/mail/messenger/preferences/languages.ftl | 45 +
l10n-vi/mail/messenger/preferences/new-tag.ftl | 14 +
.../mail/messenger/preferences/notifications.ftl | 33 +
l10n-vi/mail/messenger/preferences/offline.ftl | 56 +
.../mail/messenger/preferences/passwordManager.ftl | 85 +
l10n-vi/mail/messenger/preferences/permissions.ftl | 56 +
l10n-vi/mail/messenger/preferences/preferences.ftl | 715 +++
l10n-vi/mail/messenger/preferences/receipts.ftl | 51 +
l10n-vi/mail/messenger/preferences/sendoptions.ftl | 50 +
.../messenger/preferences/system-integration.ftl | 38 +
l10n-vi/mail/updater/updater.ini | 9 +
l10n-vi/mobile/android/chrome/about.dtd | 21 +
l10n-vi/mobile/android/chrome/aboutAccounts.dtd | 13 +
.../mobile/android/chrome/aboutAccounts.properties | 16 +
l10n-vi/mobile/android/chrome/aboutAddons.dtd | 15 +
.../mobile/android/chrome/aboutAddons.properties | 12 +
l10n-vi/mobile/android/chrome/aboutCertError.dtd | 31 +
l10n-vi/mobile/android/chrome/aboutDownloads.dtd | 15 +
.../android/chrome/aboutDownloads.properties | 17 +
l10n-vi/mobile/android/chrome/aboutHome.dtd | 7 +
l10n-vi/mobile/android/chrome/aboutLogins.dtd | 9 +
.../mobile/android/chrome/aboutLogins.properties | 33 +
.../mobile/android/chrome/aboutPrivateBrowsing.dtd | 25 +
l10n-vi/mobile/android/chrome/browser.properties | 477 ++
l10n-vi/mobile/android/chrome/config.dtd | 21 +
l10n-vi/mobile/android/chrome/config.properties | 9 +
.../mobile/android/chrome/devicePrompt.properties | 5 +
.../mobile/android/chrome/passwordmgr.properties | 20 +
l10n-vi/mobile/android/chrome/phishing.dtd | 27 +
l10n-vi/mobile/android/chrome/pippki.properties | 84 +
l10n-vi/mobile/android/chrome/sync.properties | 12 +
.../android/chrome/webcompatReporter.properties | 12 +
l10n-vi/mobile/android/defines.inc | 14 +
l10n-vi/mobile/android/mobile-l10n.js | 6 +
l10n-vi/mobile/chrome/region.properties | 31 +
l10n-vi/mobile/overrides/appstrings.properties | 41 +
l10n-vi/mobile/overrides/netError.dtd | 158 +
l10n-vi/netwerk/necko.properties | 85 +
l10n-vi/other-licenses/branding/sunbird/brand.dtd | 6 +
.../branding/sunbird/brand.properties | 20 +
.../manager/chrome/pipnss/nsserrors.properties | 331 +
.../manager/chrome/pipnss/pipnss.properties | 308 +
.../manager/chrome/pippki/pippki.properties | 85 +
.../manager/security/certificates/certManager.ftl | 251 +
.../security/certificates/deviceManager.ftl | 135 +
.../security/manager/security/pippki/pippki.ftl | 91 +
l10n-vi/services/sync/sync.properties | 14 +
l10n-vi/toolkit/chrome/alerts/alert.dtd | 6 +
l10n-vi/toolkit/chrome/alerts/alert.properties | 23 +
.../chrome/autoconfig/autoconfig.properties | 12 +
.../chrome/global-platform/mac/intl.properties | 7 +
.../global-platform/mac/platformKeys.properties | 34 +
.../chrome/global-platform/unix/intl.properties | 7 +
.../global-platform/unix/platformKeys.properties | 34 +
.../chrome/global-platform/win/intl.properties | 7 +
.../global-platform/win/platformKeys.properties | 34 +
.../toolkit/chrome/global/aboutReader.properties | 66 +
.../toolkit/chrome/global/aboutStudies.properties | 32 +
.../toolkit/chrome/global/aboutWebrtc.properties | 172 +
l10n-vi/toolkit/chrome/global/appPicker.dtd | 7 +
.../toolkit/chrome/global/autocomplete.properties | 29 +
l10n-vi/toolkit/chrome/global/browser.properties | 7 +
l10n-vi/toolkit/chrome/global/charsetMenu.dtd | 5 +
.../toolkit/chrome/global/charsetMenu.properties | 127 +
l10n-vi/toolkit/chrome/global/commonDialog.dtd | 10 +
.../toolkit/chrome/global/commonDialogs.properties | 35 +
.../chrome/global/contentAreaCommands.properties | 23 +
l10n-vi/toolkit/chrome/global/datetimebox.dtd | 35 +
l10n-vi/toolkit/chrome/global/dialog.properties | 12 +
l10n-vi/toolkit/chrome/global/dialogOverlay.dtd | 10 +
l10n-vi/toolkit/chrome/global/editMenuOverlay.dtd | 11 +
.../toolkit/chrome/global/extensions.properties | 44 +
.../chrome/global/fallbackMenubar.properties | 8 +
.../toolkit/chrome/global/filepicker.properties | 17 +
l10n-vi/toolkit/chrome/global/findbar.properties | 23 +
.../global/global-extension-fields.properties | 8 +
l10n-vi/toolkit/chrome/global/globalKeys.dtd | 6 +
l10n-vi/toolkit/chrome/global/intl.css | 11 +
l10n-vi/toolkit/chrome/global/intl.properties | 51 +
l10n-vi/toolkit/chrome/global/keys.properties | 78 +
l10n-vi/toolkit/chrome/global/mozilla.dtd | 12 +
l10n-vi/toolkit/chrome/global/narrate.properties | 20 +
l10n-vi/toolkit/chrome/global/notification.dtd | 14 +
.../toolkit/chrome/global/printdialog.properties | 52 +
l10n-vi/toolkit/chrome/global/resetProfile.dtd | 7 +
.../toolkit/chrome/global/resetProfile.properties | 14 +
l10n-vi/toolkit/chrome/global/textcontext.dtd | 24 +
l10n-vi/toolkit/chrome/global/tree.dtd | 5 +
l10n-vi/toolkit/chrome/global/videocontrols.dtd | 52 +
.../toolkit/chrome/global/viewSource.properties | 16 +
l10n-vi/toolkit/chrome/global/wizard.properties | 8 +
.../chrome/mozapps/downloads/downloads.properties | 115 +
.../chrome/mozapps/downloads/settingsChange.dtd | 6 +
.../mozapps/downloads/unknownContentType.dtd | 26 +
.../downloads/unknownContentType.properties | 24 +
.../chrome/mozapps/extensions/extensions.dtd | 5 +
.../mozapps/extensions/extensions.properties | 84 +
.../toolkit/chrome/mozapps/handling/handling.dtd | 10 +
.../chrome/mozapps/handling/handling.properties | 15 +
.../mozapps/profile/profileSelection.properties | 57 +
.../chrome/mozapps/update/updates.properties | 45 +
.../chrome/passwordmgr/passwordmgr.properties | 74 +
l10n-vi/toolkit/chrome/places/places.properties | 32 +
.../toolkit/chrome/pluginproblem/pluginproblem.dtd | 32 +
l10n-vi/toolkit/chrome/search/search.properties | 18 +
l10n-vi/toolkit/crashreporter/aboutcrashes.ftl | 31 +
l10n-vi/toolkit/crashreporter/crashreporter.ini | 60 +
l10n-vi/toolkit/defines.inc | 1 +
l10n-vi/toolkit/toolkit/about/aboutAbout.ftl | 6 +
l10n-vi/toolkit/toolkit/about/aboutAddons.ftl | 426 ++
l10n-vi/toolkit/toolkit/about/aboutCompat.ftl | 13 +
l10n-vi/toolkit/toolkit/about/aboutConfig.ftl | 109 +
l10n-vi/toolkit/toolkit/about/aboutGlean.ftl | 14 +
.../toolkit/toolkit/about/aboutHttpsOnlyError.ftl | 28 +
l10n-vi/toolkit/toolkit/about/aboutMozilla.ftl | 11 +
l10n-vi/toolkit/toolkit/about/aboutNetworking.ftl | 71 +
l10n-vi/toolkit/toolkit/about/aboutPerformance.ftl | 67 +
l10n-vi/toolkit/toolkit/about/aboutPlugins.ftl | 35 +
l10n-vi/toolkit/toolkit/about/aboutProcesses.ftl | 133 +
l10n-vi/toolkit/toolkit/about/aboutProfiles.ftl | 74 +
l10n-vi/toolkit/toolkit/about/aboutRights.ftl | 36 +
.../toolkit/toolkit/about/aboutServiceWorkers.ftl | 40 +
l10n-vi/toolkit/toolkit/about/aboutSupport.ftl | 385 ++
l10n-vi/toolkit/toolkit/about/aboutTelemetry.ftl | 146 +
l10n-vi/toolkit/toolkit/about/aboutWebrtc.ftl | 185 +
l10n-vi/toolkit/toolkit/about/abuseReports.ftl | 101 +
l10n-vi/toolkit/toolkit/about/certviewer.ftl | 120 +
l10n-vi/toolkit/toolkit/about/config.ftl | 51 +
l10n-vi/toolkit/toolkit/about/url-classifier.ftl | 54 +
l10n-vi/toolkit/toolkit/extensions/blocklist.ftl | 22 +
l10n-vi/toolkit/toolkit/featuregates/features.ftl | 107 +
.../toolkit/toolkit/global/createProfileWizard.ftl | 53 +
l10n-vi/toolkit/toolkit/global/handlerDialog.ftl | 69 +
l10n-vi/toolkit/toolkit/global/processTypes.ftl | 36 +
.../toolkit/toolkit/global/profileDowngrade.ftl | 20 +
.../toolkit/toolkit/global/profileSelection.ftl | 36 +
l10n-vi/toolkit/toolkit/global/resetProfile.ftl | 14 +
l10n-vi/toolkit/toolkit/global/textActions.ftl | 49 +
.../toolkit/toolkit/global/unknownContentType.ftl | 13 +
l10n-vi/toolkit/toolkit/global/videocontrols.ftl | 14 +
l10n-vi/toolkit/toolkit/global/wizard.ftl | 37 +
l10n-vi/toolkit/toolkit/intl/languageNames.ftl | 213 +
l10n-vi/toolkit/toolkit/intl/regionNames.ftl | 280 +
.../toolkit/toolkit/main-window/autocomplete.ftl | 32 +
l10n-vi/toolkit/toolkit/main-window/findbar.ftl | 38 +
l10n-vi/toolkit/toolkit/payments/payments.ftl | 69 +
.../toolkit/pictureinpicture/pictureinpicture.ftl | 22 +
.../toolkit/toolkit/preferences/preferences.ftl | 61 +
l10n-vi/toolkit/toolkit/printing/printDialogs.ftl | 111 +
l10n-vi/toolkit/toolkit/printing/printPreview.ftl | 71 +
l10n-vi/toolkit/toolkit/printing/printUI.ftl | 106 +
l10n-vi/toolkit/toolkit/updates/elevation.ftl | 18 +
l10n-vi/toolkit/toolkit/updates/history.ftl | 27 +
687 files changed, 63880 insertions(+)
create mode 100644 l10n-vi/browser/branding/official/brand.dtd
create mode 100644 l10n-vi/browser/branding/official/brand.ftl
create mode 100644 l10n-vi/browser/branding/official/brand.properties
create mode 100644 l10n-vi/browser/browser/aboutCertError.ftl
create mode 100644 l10n-vi/browser/browser/aboutConfig.ftl
create mode 100644 l10n-vi/browser/browser/aboutDialog.ftl
create mode 100644 l10n-vi/browser/browser/aboutLogins.ftl
create mode 100644 l10n-vi/browser/browser/aboutPolicies.ftl
create mode 100644 l10n-vi/browser/browser/aboutPrivateBrowsing.ftl
create mode 100644 l10n-vi/browser/browser/aboutRestartRequired.ftl
create mode 100644 l10n-vi/browser/browser/aboutRobots.ftl
create mode 100644 l10n-vi/browser/browser/aboutSessionRestore.ftl
create mode 100644 l10n-vi/browser/browser/aboutTabCrashed.ftl
create mode 100644 l10n-vi/browser/browser/allTabsMenu.ftl
create mode 100644 l10n-vi/browser/browser/appMenuNotifications.ftl
create mode 100644 l10n-vi/browser/browser/appmenu.ftl
create mode 100644 l10n-vi/browser/browser/branding/brandings.ftl
create mode 100644 l10n-vi/browser/browser/branding/sync-brand.ftl
create mode 100644 l10n-vi/browser/browser/browser.ftl
create mode 100644 l10n-vi/browser/browser/browserContext.ftl
create mode 100644 l10n-vi/browser/browser/browserSets.ftl
create mode 100644 l10n-vi/browser/browser/customizeMode.ftl
create mode 100644 l10n-vi/browser/browser/defaultBrowserNotification.ftl
create mode 100644 l10n-vi/browser/browser/downloads.ftl
create mode 100644 l10n-vi/browser/browser/editBookmarkOverlay.ftl
create mode 100644 l10n-vi/browser/browser/menubar.ftl
create mode 100644 l10n-vi/browser/browser/migration.ftl
create mode 100644 l10n-vi/browser/browser/newInstallPage.ftl
create mode 100644 l10n-vi/browser/browser/newtab/asrouter.ftl
create mode 100644 l10n-vi/browser/browser/newtab/newtab.ftl
create mode 100644 l10n-vi/browser/browser/newtab/onboarding.ftl
create mode 100644 l10n-vi/browser/browser/nsserrors.ftl
create mode 100644 l10n-vi/browser/browser/pageInfo.ftl
create mode 100644 l10n-vi/browser/browser/panicButton.ftl
create mode 100644 l10n-vi/browser/browser/places.ftl
create mode 100644 l10n-vi/browser/browser/policies/policies-descriptions.ftl
create mode 100644 l10n-vi/browser/browser/preferences/addEngine.ftl
create mode 100644 l10n-vi/browser/browser/preferences/applicationManager.ftl
create mode 100644 l10n-vi/browser/browser/preferences/blocklists.ftl
create mode 100644 l10n-vi/browser/browser/preferences/clearSiteData.ftl
create mode 100644 l10n-vi/browser/browser/preferences/colors.ftl
create mode 100644 l10n-vi/browser/browser/preferences/connection.ftl
create mode 100644 l10n-vi/browser/browser/preferences/containers.ftl
create mode 100644 l10n-vi/browser/browser/preferences/fonts.ftl
create mode 100644 l10n-vi/browser/browser/preferences/fxaPairDevice.ftl
create mode 100644 l10n-vi/browser/browser/preferences/languages.ftl
create mode 100644 l10n-vi/browser/browser/preferences/permissions.ftl
create mode 100644 l10n-vi/browser/browser/preferences/preferences.ftl
create mode 100644 l10n-vi/browser/browser/preferences/selectBookmark.ftl
create mode 100644 l10n-vi/browser/browser/preferences/siteDataSettings.ftl
create mode 100644 l10n-vi/browser/browser/preferences/translation.ftl
create mode 100644 l10n-vi/browser/browser/protections.ftl
create mode 100644 l10n-vi/browser/browser/protectionsPanel.ftl
create mode 100644 l10n-vi/browser/browser/safeMode.ftl
create mode 100644 l10n-vi/browser/browser/safebrowsing/blockedSite.ftl
create mode 100644 l10n-vi/browser/browser/sanitize.ftl
create mode 100644 l10n-vi/browser/browser/screenshots.ftl
create mode 100644 l10n-vi/browser/browser/search.ftl
create mode 100644 l10n-vi/browser/browser/setDesktopBackground.ftl
create mode 100644 l10n-vi/browser/browser/sidebarMenu.ftl
create mode 100644 l10n-vi/browser/browser/sync.ftl
create mode 100644 l10n-vi/browser/browser/syncedTabs.ftl
create mode 100644 l10n-vi/browser/browser/tabContextMenu.ftl
create mode 100644 l10n-vi/browser/browser/toolbarContextMenu.ftl
create mode 100644 l10n-vi/browser/browser/touchbar/touchbar.ftl
create mode 100644 l10n-vi/browser/browser/webrtcIndicator.ftl
create mode 100644 l10n-vi/browser/chrome/browser-region/region.properties
create mode 100644 l10n-vi/browser/chrome/browser/accounts.properties
create mode 100644 l10n-vi/browser/chrome/browser/app-extension-fields.properties
create mode 100644 l10n-vi/browser/chrome/browser/baseMenuOverlay.dtd
create mode 100644 l10n-vi/browser/chrome/browser/brandings.dtd
create mode 100644 l10n-vi/browser/chrome/browser/browser.dtd
create mode 100644 l10n-vi/browser/chrome/browser/browser.properties
create mode 100644 l10n-vi/browser/chrome/browser/customizableui/customizableWidgets.properties
create mode 100644 l10n-vi/browser/chrome/browser/downloads/downloads.properties
create mode 100644 l10n-vi/browser/chrome/browser/feeds/subscribe.properties
create mode 100644 l10n-vi/browser/chrome/browser/fxmonitor.properties
create mode 100644 l10n-vi/browser/chrome/browser/migration/migration.dtd
create mode 100644 l10n-vi/browser/chrome/browser/migration/migration.properties
create mode 100644 l10n-vi/browser/chrome/browser/newInstall.dtd
create mode 100644 l10n-vi/browser/chrome/browser/places/bookmarkProperties.properties
create mode 100644 l10n-vi/browser/chrome/browser/places/places.dtd
create mode 100644 l10n-vi/browser/chrome/browser/places/places.properties
create mode 100644 l10n-vi/browser/chrome/browser/pocket.properties
create mode 100644 l10n-vi/browser/chrome/browser/safebrowsing/safebrowsing.properties
create mode 100644 l10n-vi/browser/chrome/browser/search.properties
create mode 100644 l10n-vi/browser/chrome/browser/shellservice.properties
create mode 100644 l10n-vi/browser/chrome/browser/siteData.properties
create mode 100644 l10n-vi/browser/chrome/browser/sitePermissions.properties
create mode 100644 l10n-vi/browser/chrome/browser/syncBrand.dtd
create mode 100644 l10n-vi/browser/chrome/browser/syncSetup.properties
create mode 100644 l10n-vi/browser/chrome/browser/tabbrowser.properties
create mode 100644 l10n-vi/browser/chrome/browser/taskbar.properties
create mode 100644 l10n-vi/browser/chrome/browser/translation.dtd
create mode 100644 l10n-vi/browser/chrome/browser/translation.properties
create mode 100644 l10n-vi/browser/chrome/browser/uiDensity.properties
create mode 100644 l10n-vi/browser/chrome/browser/webrtcIndicator.properties
create mode 100644 l10n-vi/browser/chrome/overrides/appstrings.properties
create mode 100644 l10n-vi/browser/chrome/overrides/netError.dtd
create mode 100644 l10n-vi/browser/chrome/overrides/settingsChange.dtd
create mode 100644 l10n-vi/browser/crashreporter/crashreporter-override.ini
create mode 100644 l10n-vi/browser/defaultagent/defaultagent_localized.ini
create mode 100644 l10n-vi/browser/defines.inc
create mode 100644 l10n-vi/browser/extensions/formautofill/formautofill.properties
create mode 100644 l10n-vi/browser/extensions/report-site-issue/webcompat.properties
create mode 100644 l10n-vi/browser/firefox-l10n.js
create mode 100644 l10n-vi/browser/installer/custom.properties
create mode 100644 l10n-vi/browser/installer/mui.properties
create mode 100644 l10n-vi/browser/installer/nsisstrings.properties
create mode 100644 l10n-vi/browser/installer/override.properties
create mode 100644 l10n-vi/browser/pdfviewer/chrome.properties
create mode 100644 l10n-vi/browser/pdfviewer/viewer.properties
create mode 100644 l10n-vi/browser/profile/bookmarks.inc
create mode 100644 l10n-vi/browser/updater/updater.ini
create mode 100644 l10n-vi/calendar/README.txt
create mode 100644 l10n-vi/calendar/calendar/calendar-context-menus.ftl
create mode 100644 l10n-vi/calendar/calendar/calendar-ics-file-dialog.ftl
create mode 100644 l10n-vi/calendar/calendar/calendar-summary-dialog.ftl
create mode 100644 l10n-vi/calendar/calendar/calendar-uri-redirect-dialog.ftl
create mode 100644 l10n-vi/calendar/calendar/calendar-widgets.ftl
create mode 100644 l10n-vi/calendar/calendar/category-dialog.ftl
create mode 100644 l10n-vi/calendar/calendar/preferences.ftl
create mode 100644 l10n-vi/calendar/chrome/calendar/calendar-alarms.properties
create mode 100644 l10n-vi/calendar/chrome/calendar/calendar-event-dialog-attendees.properties
create mode 100644 l10n-vi/calendar/chrome/calendar/calendar-event-dialog.dtd
create mode 100644 l10n-vi/calendar/chrome/calendar/calendar-event-dialog.properties
create mode 100644 l10n-vi/calendar/chrome/calendar/calendar-extract.properties
create mode 100644 l10n-vi/calendar/chrome/calendar/calendar-invitations-dialog.dtd
create mode 100644 l10n-vi/calendar/chrome/calendar/calendar-invitations-dialog.properties
create mode 100644 l10n-vi/calendar/chrome/calendar/calendar-occurrence-prompt.dtd
create mode 100644 l10n-vi/calendar/chrome/calendar/calendar-occurrence-prompt.properties
create mode 100644 l10n-vi/calendar/chrome/calendar/calendar-subscriptions-dialog.dtd
create mode 100644 l10n-vi/calendar/chrome/calendar/calendar.dtd
create mode 100644 l10n-vi/calendar/chrome/calendar/calendar.properties
create mode 100644 l10n-vi/calendar/chrome/calendar/calendarCreation.dtd
create mode 100644 l10n-vi/calendar/chrome/calendar/calendarCreation.properties
create mode 100644 l10n-vi/calendar/chrome/calendar/categories.properties
create mode 100644 l10n-vi/calendar/chrome/calendar/dateFormat.properties
create mode 100644 l10n-vi/calendar/chrome/calendar/dialogs/calendar-event-dialog-reminder.dtd
create mode 100644 l10n-vi/calendar/chrome/calendar/global.dtd
create mode 100644 l10n-vi/calendar/chrome/calendar/menuOverlay.dtd
create mode 100644 l10n-vi/calendar/chrome/calendar/migration.dtd
create mode 100644 l10n-vi/calendar/chrome/calendar/migration.properties
create mode 100644 l10n-vi/calendar/chrome/calendar/provider-uninstall.dtd
create mode 100644 l10n-vi/calendar/chrome/calendar/timezones.properties
create mode 100644 l10n-vi/calendar/chrome/lightning/lightning-toolbar.dtd
create mode 100644 l10n-vi/calendar/chrome/lightning/lightning.dtd
create mode 100644 l10n-vi/calendar/chrome/lightning/lightning.properties
create mode 100644 l10n-vi/calendar/extra-jar.mn
create mode 100644 l10n-vi/calendar/lightning-l10n.js
create mode 100644 l10n-vi/calendar/sunbird-l10n.js
create mode 100644 l10n-vi/chat/accounts.dtd
create mode 100644 l10n-vi/chat/accounts.properties
create mode 100644 l10n-vi/chat/commands.properties
create mode 100644 l10n-vi/chat/contacts.properties
create mode 100644 l10n-vi/chat/conversations.properties
create mode 100644 l10n-vi/chat/dateFormat.properties
create mode 100644 l10n-vi/chat/facebook.properties
create mode 100644 l10n-vi/chat/imtooltip.properties
create mode 100644 l10n-vi/chat/irc.properties
create mode 100644 l10n-vi/chat/logger.properties
create mode 100644 l10n-vi/chat/matrix.properties
create mode 100644 l10n-vi/chat/skype.properties
create mode 100644 l10n-vi/chat/status.properties
create mode 100644 l10n-vi/chat/twitter.properties
create mode 100644 l10n-vi/chat/xmpp.properties
create mode 100644 l10n-vi/chat/yahoo.properties
create mode 100644 l10n-vi/devtools/client/aboutdebugging.ftl
create mode 100644 l10n-vi/devtools/client/accessibility.ftl
create mode 100644 l10n-vi/devtools/client/accessibility.properties
create mode 100644 l10n-vi/devtools/client/animationinspector.properties
create mode 100644 l10n-vi/devtools/client/application.ftl
create mode 100644 l10n-vi/devtools/client/boxmodel.properties
create mode 100644 l10n-vi/devtools/client/changes.properties
create mode 100644 l10n-vi/devtools/client/compatibility.ftl
create mode 100644 l10n-vi/devtools/client/components.properties
create mode 100644 l10n-vi/devtools/client/debugger.properties
create mode 100644 l10n-vi/devtools/client/device.properties
create mode 100644 l10n-vi/devtools/client/dom.properties
create mode 100644 l10n-vi/devtools/client/filterwidget.properties
create mode 100644 l10n-vi/devtools/client/font-inspector.properties
create mode 100644 l10n-vi/devtools/client/graphs.properties
create mode 100644 l10n-vi/devtools/client/har.properties
create mode 100644 l10n-vi/devtools/client/inspector.properties
create mode 100644 l10n-vi/devtools/client/jit-optimizations.properties
create mode 100644 l10n-vi/devtools/client/jsonview.properties
create mode 100644 l10n-vi/devtools/client/layout.properties
create mode 100644 l10n-vi/devtools/client/markers.properties
create mode 100644 l10n-vi/devtools/client/memory.properties
create mode 100644 l10n-vi/devtools/client/menus.properties
create mode 100644 l10n-vi/devtools/client/netmonitor.properties
create mode 100644 l10n-vi/devtools/client/network-throttling.properties
create mode 100644 l10n-vi/devtools/client/performance.dtd
create mode 100644 l10n-vi/devtools/client/performance.properties
create mode 100644 l10n-vi/devtools/client/perftools.ftl
create mode 100644 l10n-vi/devtools/client/responsive.properties
create mode 100644 l10n-vi/devtools/client/shared.properties
create mode 100644 l10n-vi/devtools/client/sourceeditor.dtd
create mode 100644 l10n-vi/devtools/client/sourceeditor.properties
create mode 100644 l10n-vi/devtools/client/startup.properties
create mode 100644 l10n-vi/devtools/client/storage.dtd
create mode 100644 l10n-vi/devtools/client/storage.ftl
create mode 100644 l10n-vi/devtools/client/storage.properties
create mode 100644 l10n-vi/devtools/client/styleeditor.ftl
create mode 100644 l10n-vi/devtools/client/styleeditor.properties
create mode 100644 l10n-vi/devtools/client/toolbox-options.ftl
create mode 100644 l10n-vi/devtools/client/toolbox.properties
create mode 100644 l10n-vi/devtools/client/tooltips.ftl
create mode 100644 l10n-vi/devtools/client/webconsole.properties
create mode 100644 l10n-vi/devtools/shared/accessibility.properties
create mode 100644 l10n-vi/devtools/shared/debugger.properties
create mode 100644 l10n-vi/devtools/shared/eyedropper.properties
create mode 100644 l10n-vi/devtools/shared/highlighters.properties
create mode 100644 l10n-vi/devtools/shared/screenshot.properties
create mode 100644 l10n-vi/devtools/shared/shared.properties
create mode 100644 l10n-vi/devtools/shared/styleinspector.properties
create mode 100644 l10n-vi/devtools/startup/aboutDevTools.ftl
create mode 100644 l10n-vi/devtools/startup/key-shortcuts.properties
create mode 100644 l10n-vi/devtools/startup/startup.properties
create mode 100644 l10n-vi/dom/chrome/accessibility/AccessFu.properties
create mode 100644 l10n-vi/dom/chrome/accessibility/mac/accessible.properties
create mode 100644 l10n-vi/dom/chrome/accessibility/unix/accessible.properties
create mode 100644 l10n-vi/dom/chrome/accessibility/win/accessible.properties
create mode 100644 l10n-vi/dom/chrome/appstrings.properties
create mode 100644 l10n-vi/dom/chrome/dom/dom.properties
create mode 100644 l10n-vi/dom/chrome/global-strres.properties
create mode 100644 l10n-vi/dom/chrome/global.dtd
create mode 100644 l10n-vi/dom/chrome/layout/HtmlForm.properties
create mode 100644 l10n-vi/dom/chrome/layout/MediaDocument.properties
create mode 100644 l10n-vi/dom/chrome/layout/css.properties
create mode 100644 l10n-vi/dom/chrome/layout/htmlparser.properties
create mode 100644 l10n-vi/dom/chrome/layout/layout_errors.properties
create mode 100644 l10n-vi/dom/chrome/layout/printing.properties
create mode 100644 l10n-vi/dom/chrome/layout/xmlparser.properties
create mode 100644 l10n-vi/dom/chrome/layout/xul.properties
create mode 100644 l10n-vi/dom/chrome/mathml/mathml.properties
create mode 100644 l10n-vi/dom/chrome/netError.dtd
create mode 100644 l10n-vi/dom/chrome/nsWebBrowserPersist.properties
create mode 100644 l10n-vi/dom/chrome/plugins.properties
create mode 100644 l10n-vi/dom/chrome/security/caps.properties
create mode 100644 l10n-vi/dom/chrome/security/csp.properties
create mode 100644 l10n-vi/dom/chrome/security/security.properties
create mode 100644 l10n-vi/dom/chrome/svg/svg.properties
create mode 100644 l10n-vi/dom/chrome/xml/prettyprint.dtd
create mode 100644 l10n-vi/dom/chrome/xslt/xslt.properties
create mode 100644 l10n-vi/dom/dom/media.ftl
create mode 100644 l10n-vi/editor/ui/chrome/composer/editingOverlay.dtd
create mode 100644 l10n-vi/editor/ui/chrome/composer/editor.dtd
create mode 100644 l10n-vi/editor/ui/chrome/composer/editor.properties
create mode 100644 l10n-vi/editor/ui/chrome/composer/editorOverlay.dtd
create mode 100644 l10n-vi/editor/ui/chrome/composer/editorPrefsOverlay.dtd
create mode 100644 l10n-vi/editor/ui/chrome/composer/editorSmileyOverlay.dtd
create mode 100644 l10n-vi/editor/ui/chrome/composer/pref-composer.dtd
create mode 100644 l10n-vi/editor/ui/chrome/composer/pref-editing.dtd
create mode 100644 l10n-vi/editor/ui/chrome/dialogs/EdAdvancedEdit.dtd
create mode 100644 l10n-vi/editor/ui/chrome/dialogs/EdColorPicker.dtd
create mode 100644 l10n-vi/editor/ui/chrome/dialogs/EdConvertToTable.dtd
create mode 100644 l10n-vi/editor/ui/chrome/dialogs/EdDialogOverlay.dtd
create mode 100644 l10n-vi/editor/ui/chrome/dialogs/EdNamedAnchorProperties.dtd
create mode 100644 l10n-vi/editor/ui/chrome/dialogs/EditConflict.dtd
create mode 100644 l10n-vi/editor/ui/chrome/dialogs/EditorButtonProperties.dtd
create mode 100644 l10n-vi/editor/ui/chrome/dialogs/EditorColorProperties.dtd
create mode 100644 l10n-vi/editor/ui/chrome/dialogs/EditorFieldSetProperties.dtd
create mode 100644 l10n-vi/editor/ui/chrome/dialogs/EditorFormProperties.dtd
create mode 100644 l10n-vi/editor/ui/chrome/dialogs/EditorHLineProperties.dtd
create mode 100644 l10n-vi/editor/ui/chrome/dialogs/EditorImageProperties.dtd
create mode 100644 l10n-vi/editor/ui/chrome/dialogs/EditorInputProperties.dtd
create mode 100644 l10n-vi/editor/ui/chrome/dialogs/EditorInsertChars.dtd
create mode 100644 l10n-vi/editor/ui/chrome/dialogs/EditorInsertMath.dtd
create mode 100644 l10n-vi/editor/ui/chrome/dialogs/EditorInsertSource.dtd
create mode 100644 l10n-vi/editor/ui/chrome/dialogs/EditorInsertTOC.dtd
create mode 100644 l10n-vi/editor/ui/chrome/dialogs/EditorInsertTable.dtd
create mode 100644 l10n-vi/editor/ui/chrome/dialogs/EditorLabelProperties.dtd
create mode 100644 l10n-vi/editor/ui/chrome/dialogs/EditorLinkProperties.dtd
create mode 100644 l10n-vi/editor/ui/chrome/dialogs/EditorListProperties.dtd
create mode 100644 l10n-vi/editor/ui/chrome/dialogs/EditorPageProperties.dtd
create mode 100644 l10n-vi/editor/ui/chrome/dialogs/EditorPersonalDictionary.dtd
create mode 100644 l10n-vi/editor/ui/chrome/dialogs/EditorPublish.dtd
create mode 100644 l10n-vi/editor/ui/chrome/dialogs/EditorPublishProgress.dtd
create mode 100644 l10n-vi/editor/ui/chrome/dialogs/EditorReplace.dtd
create mode 100644 l10n-vi/editor/ui/chrome/dialogs/EditorSaveAsCharset.dtd
create mode 100644 l10n-vi/editor/ui/chrome/dialogs/EditorSelectProperties.dtd
create mode 100644 l10n-vi/editor/ui/chrome/dialogs/EditorSnapToGrid.dtd
create mode 100644 l10n-vi/editor/ui/chrome/dialogs/EditorSpellCheck.dtd
create mode 100644 l10n-vi/editor/ui/chrome/dialogs/EditorTableProperties.dtd
create mode 100644 l10n-vi/editor/ui/chrome/dialogs/EditorTextAreaProperties.dtd
create mode 100644 l10n-vi/editor/ui/chrome/region/region.properties
create mode 100644 l10n-vi/extensions/spellcheck/hunspell/vi-x-KieuCu.[Chuan].aff
create mode 100644 l10n-vi/extensions/spellcheck/hunspell/vi-x-KieuCu.[Chuan].dic
create mode 100644 l10n-vi/extensions/spellcheck/hunspell/vi-x-KieuMoi.[KhongChuan].aff
create mode 100644 l10n-vi/extensions/spellcheck/hunspell/vi-x-KieuMoi.[KhongChuan].dic
create mode 100644 l10n-vi/mail/README.txt
create mode 100644 l10n-vi/mail/all-l10n.js
create mode 100644 l10n-vi/mail/branding/thunderbird/brand.dtd
create mode 100644 l10n-vi/mail/branding/thunderbird/brand.ftl
create mode 100644 l10n-vi/mail/branding/thunderbird/brand.properties
create mode 100644 l10n-vi/mail/chrome/communicator/utilityOverlay.dtd
create mode 100644 l10n-vi/mail/chrome/messenger-mapi/mapi.properties
create mode 100644 l10n-vi/mail/chrome/messenger-newsblog/am-newsblog.dtd
create mode 100644 l10n-vi/mail/chrome/messenger-newsblog/feed-subscriptions.dtd
create mode 100644 l10n-vi/mail/chrome/messenger-newsblog/newsblog.properties
create mode 100644 l10n-vi/mail/chrome/messenger-region/region.properties
create mode 100644 l10n-vi/mail/chrome/messenger-smime/certFetchingStatus.dtd
create mode 100644 l10n-vi/mail/chrome/messenger-smime/msgCompSMIMEOverlay.dtd
create mode 100644 l10n-vi/mail/chrome/messenger-smime/msgCompSecurityInfo.dtd
create mode 100644 l10n-vi/mail/chrome/messenger-smime/msgCompSecurityInfo.properties
create mode 100644 l10n-vi/mail/chrome/messenger-smime/msgReadSMIMEOverlay.dtd
create mode 100644 l10n-vi/mail/chrome/messenger-smime/msgReadSMIMEOverlay.properties
create mode 100644 l10n-vi/mail/chrome/messenger-smime/msgReadSecurityInfo.dtd
create mode 100644 l10n-vi/mail/chrome/messenger-smime/msgSecurityInfo.properties
create mode 100644 l10n-vi/mail/chrome/messenger/AccountManager.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/AccountWizard.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/CustomHeaders.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/FilterEditor.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/FilterListDialog.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/SearchDialog.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/aboutDialog.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/aboutDownloads.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/aboutRights.properties
create mode 100644 l10n-vi/mail/chrome/messenger/aboutSupportMail.properties
create mode 100644 l10n-vi/mail/chrome/messenger/accountCreation.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/accountCreation.properties
create mode 100644 l10n-vi/mail/chrome/messenger/accountCreationModel.properties
create mode 100644 l10n-vi/mail/chrome/messenger/accountCreationUtil.properties
create mode 100644 l10n-vi/mail/chrome/messenger/activity.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/activity.properties
create mode 100644 l10n-vi/mail/chrome/messenger/addbuddy.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/addons.properties
create mode 100644 l10n-vi/mail/chrome/messenger/addressbook/abAddressBookNameDialog.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/addressbook/abCard.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/addressbook/abContactsPanel.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/addressbook/abMailListDialog.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/addressbook/abMainWindow.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/addressbook/abNewCardDialog.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/addressbook/abResultsPane.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/addressbook/addressBook.properties
create mode 100644 l10n-vi/mail/chrome/messenger/addressbook/ldapAutoCompErrs.properties
create mode 100644 l10n-vi/mail/chrome/messenger/addressbook/pref-directory-add.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/addressbook/pref-directory.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/addressbook/replicationProgress.properties
create mode 100644 l10n-vi/mail/chrome/messenger/am-addressing.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/am-advanced.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/am-archiveoptions.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/am-copies.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/am-e2e.properties
create mode 100644 l10n-vi/mail/chrome/messenger/am-identities-list.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/am-identity-edit.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/am-im.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/am-junk.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/am-main.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/am-mdn.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/am-mdn.properties
create mode 100644 l10n-vi/mail/chrome/messenger/am-offline.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/am-server-advanced.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/am-server-top.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/am-serverwithnoidentities.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/am-smime.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/am-smime.properties
create mode 100644 l10n-vi/mail/chrome/messenger/app-extension-fields.properties
create mode 100644 l10n-vi/mail/chrome/messenger/appUpdate.properties
create mode 100644 l10n-vi/mail/chrome/messenger/appleMailImportMsgs.properties
create mode 100644 l10n-vi/mail/chrome/messenger/baseMenuOverlay.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/beckyImportMsgs.properties
create mode 100644 l10n-vi/mail/chrome/messenger/charsetTitles.properties
create mode 100644 l10n-vi/mail/chrome/messenger/chat.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/chat.properties
create mode 100644 l10n-vi/mail/chrome/messenger/configEditorOverlay.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/converterDialog.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/converterDialog.properties
create mode 100644 l10n-vi/mail/chrome/messenger/custom.properties
create mode 100644 l10n-vi/mail/chrome/messenger/customizeToolbar.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/customizeToolbar.properties
create mode 100644 l10n-vi/mail/chrome/messenger/devtools/dbgserver.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/devtools/dbgserver.properties
create mode 100644 l10n-vi/mail/chrome/messenger/downloadheaders.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/editContactOverlay.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/editContactOverlay.properties
create mode 100644 l10n-vi/mail/chrome/messenger/fieldMapImport.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/filter.properties
create mode 100644 l10n-vi/mail/chrome/messenger/folderProps.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/folderWidgets.properties
create mode 100644 l10n-vi/mail/chrome/messenger/folderpane.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/gloda.properties
create mode 100644 l10n-vi/mail/chrome/messenger/glodaComplete.properties
create mode 100644 l10n-vi/mail/chrome/messenger/glodaFacetView.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/glodaFacetView.properties
create mode 100644 l10n-vi/mail/chrome/messenger/imAccountWizard.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/imAccounts.properties
create mode 100644 l10n-vi/mail/chrome/messenger/imapMsgs.properties
create mode 100644 l10n-vi/mail/chrome/messenger/importDialog.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/importMsgs.properties
create mode 100644 l10n-vi/mail/chrome/messenger/joinChat.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/junkLog.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/junkMailInfo.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/localMsgs.properties
create mode 100644 l10n-vi/mail/chrome/messenger/mailEditorOverlay.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/mailOverlay.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/mailViewList.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/mailViewSetup.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/mailviews.properties
create mode 100644 l10n-vi/mail/chrome/messenger/markByDate.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/messenger.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/messenger.properties
create mode 100644 l10n-vi/mail/chrome/messenger/messengercompose/EdAdvancedEdit.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/messengercompose/EdColorPicker.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/messengercompose/EdConvertToTable.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/messengercompose/EdDialogOverlay.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/messengercompose/EdNamedAnchorProperties.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/messengercompose/EditorColorProperties.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/messengercompose/EditorHLineProperties.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/messengercompose/EditorImageProperties.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/messengercompose/EditorInsertChars.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/messengercompose/EditorInsertMath.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/messengercompose/EditorInsertSource.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/messengercompose/EditorInsertTOC.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/messengercompose/EditorInsertTable.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/messengercompose/EditorLinkProperties.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/messengercompose/EditorListProperties.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/messengercompose/EditorPersonalDictionary.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/messengercompose/EditorReplace.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/messengercompose/EditorSpellCheck.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/messengercompose/EditorTableProperties.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/messengercompose/askSendFormat.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/messengercompose/askSendFormat.properties
create mode 100644 l10n-vi/mail/chrome/messenger/messengercompose/composeMsgs.properties
create mode 100644 l10n-vi/mail/chrome/messenger/messengercompose/editor.properties
create mode 100644 l10n-vi/mail/chrome/messenger/messengercompose/editorOverlay.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/messengercompose/mailComposeEditorOverlay.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/messengercompose/messengercompose.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/messengercompose/sendProgress.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/messengercompose/sendProgress.properties
create mode 100644 l10n-vi/mail/chrome/messenger/migration/migration.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/migration/migration.properties
create mode 100644 l10n-vi/mail/chrome/messenger/mime.properties
create mode 100644 l10n-vi/mail/chrome/messenger/mimeheader.properties
create mode 100644 l10n-vi/mail/chrome/messenger/morkImportMsgs.properties
create mode 100644 l10n-vi/mail/chrome/messenger/msgAccountCentral.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/msgHdrViewOverlay.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/msgPrintEngine.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/msgSynchronize.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/msgViewPickerOverlay.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/msgmdn.properties
create mode 100644 l10n-vi/mail/chrome/messenger/multimessageview.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/multimessageview.properties
create mode 100644 l10n-vi/mail/chrome/messenger/newFolderDialog.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/newmailaccount/accountProvisioner.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/newmailaccount/accountProvisioner.properties
create mode 100644 l10n-vi/mail/chrome/messenger/news.properties
create mode 100644 l10n-vi/mail/chrome/messenger/newsError.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/oeImportMsgs.properties
create mode 100644 l10n-vi/mail/chrome/messenger/offline.properties
create mode 100644 l10n-vi/mail/chrome/messenger/offlineStartup.properties
create mode 100644 l10n-vi/mail/chrome/messenger/outlookImportMsgs.properties
create mode 100644 l10n-vi/mail/chrome/messenger/pgpmime.properties
create mode 100644 l10n-vi/mail/chrome/messenger/preferences/applicationManager.properties
create mode 100644 l10n-vi/mail/chrome/messenger/preferences/applications.properties
create mode 100644 l10n-vi/mail/chrome/messenger/preferences/messagestyle.properties
create mode 100644 l10n-vi/mail/chrome/messenger/preferences/preferences.properties
create mode 100644 l10n-vi/mail/chrome/messenger/prefs.properties
create mode 100644 l10n-vi/mail/chrome/messenger/quickFilterBar.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/removeAccount.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/removeAccount.properties
create mode 100644 l10n-vi/mail/chrome/messenger/renameFolderDialog.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/safeMode.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/sanitize.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/seamonkeyImportMsgs.properties
create mode 100644 l10n-vi/mail/chrome/messenger/search-attributes.properties
create mode 100644 l10n-vi/mail/chrome/messenger/search-operators.properties
create mode 100644 l10n-vi/mail/chrome/messenger/search.properties
create mode 100644 l10n-vi/mail/chrome/messenger/searchTermOverlay.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/shutdownWindow.properties
create mode 100644 l10n-vi/mail/chrome/messenger/smime.properties
create mode 100644 l10n-vi/mail/chrome/messenger/smtpEditOverlay.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/subscribe.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/subscribe.properties
create mode 100644 l10n-vi/mail/chrome/messenger/tabmail.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/taskbar.properties
create mode 100644 l10n-vi/mail/chrome/messenger/telemetry.properties
create mode 100644 l10n-vi/mail/chrome/messenger/templateUtils.properties
create mode 100644 l10n-vi/mail/chrome/messenger/textImportMsgs.properties
create mode 100644 l10n-vi/mail/chrome/messenger/vCardImportMsgs.properties
create mode 100644 l10n-vi/mail/chrome/messenger/viewLog.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/viewSource.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/viewSource.properties
create mode 100644 l10n-vi/mail/chrome/messenger/viewZoomOverlay.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/virtualFolderListDialog.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/virtualFolderProperties.dtd
create mode 100644 l10n-vi/mail/chrome/messenger/wmImportMsgs.properties
create mode 100644 l10n-vi/mail/chrome/mozldap/ldap.properties
create mode 100644 l10n-vi/mail/chrome/overrides/netError.dtd
create mode 100644 l10n-vi/mail/chrome/overrides/profileDowngrade.dtd
create mode 100644 l10n-vi/mail/chrome/overrides/settingsChange.dtd
create mode 100644 l10n-vi/mail/defines.inc
create mode 100644 l10n-vi/mail/installer/custom.properties
create mode 100644 l10n-vi/mail/installer/mui.properties
create mode 100644 l10n-vi/mail/installer/override.properties
create mode 100644 l10n-vi/mail/isp/isps.txt
create mode 100644 l10n-vi/mail/messenger/aboutProfilesExtra.ftl
create mode 100644 l10n-vi/mail/messenger/aboutRights.ftl
create mode 100644 l10n-vi/mail/messenger/aboutSupportMail.ftl
create mode 100644 l10n-vi/mail/messenger/accountCentral.ftl
create mode 100644 l10n-vi/mail/messenger/addressbook/abCardDAVDialog.ftl
create mode 100644 l10n-vi/mail/messenger/addressbook/abCardDAVProperties.ftl
create mode 100644 l10n-vi/mail/messenger/menubar.ftl
create mode 100644 l10n-vi/mail/messenger/messenger.ftl
create mode 100644 l10n-vi/mail/messenger/messengercompose/messengercompose.ftl
create mode 100644 l10n-vi/mail/messenger/newInstall.ftl
create mode 100644 l10n-vi/mail/messenger/newInstallPage.ftl
create mode 100644 l10n-vi/mail/messenger/openpgp/backupKeyPassword.ftl
create mode 100644 l10n-vi/mail/messenger/openpgp/changeExpiryDlg.ftl
create mode 100644 l10n-vi/mail/messenger/openpgp/composeKeyStatus.ftl
create mode 100644 l10n-vi/mail/messenger/openpgp/keyWizard.ftl
create mode 100644 l10n-vi/mail/messenger/openpgp/msgReadStatus.ftl
create mode 100644 l10n-vi/mail/messenger/openpgp/oneRecipientStatus.ftl
create mode 100644 l10n-vi/mail/messenger/openpgp/openpgp-frontend.ftl
create mode 100644 l10n-vi/mail/messenger/openpgp/openpgp.ftl
create mode 100644 l10n-vi/mail/messenger/otr/add-finger.ftl
create mode 100644 l10n-vi/mail/messenger/otr/am-im-otr.ftl
create mode 100644 l10n-vi/mail/messenger/otr/auth.ftl
create mode 100644 l10n-vi/mail/messenger/otr/chat.ftl
create mode 100644 l10n-vi/mail/messenger/otr/finger-sync.ftl
create mode 100644 l10n-vi/mail/messenger/otr/finger.ftl
create mode 100644 l10n-vi/mail/messenger/otr/otr.ftl
create mode 100644 l10n-vi/mail/messenger/otr/otrUI.ftl
create mode 100644 l10n-vi/mail/messenger/policies/aboutPolicies.ftl
create mode 100644 l10n-vi/mail/messenger/policies/policies-descriptions.ftl
create mode 100644 l10n-vi/mail/messenger/preferences/am-im.ftl
create mode 100644 l10n-vi/mail/messenger/preferences/application-manager.ftl
create mode 100644 l10n-vi/mail/messenger/preferences/attachment-reminder.ftl
create mode 100644 l10n-vi/mail/messenger/preferences/colors.ftl
create mode 100644 l10n-vi/mail/messenger/preferences/connection.ftl
create mode 100644 l10n-vi/mail/messenger/preferences/cookies.ftl
create mode 100644 l10n-vi/mail/messenger/preferences/dock-options.ftl
create mode 100644 l10n-vi/mail/messenger/preferences/fonts.ftl
create mode 100644 l10n-vi/mail/messenger/preferences/languages.ftl
create mode 100644 l10n-vi/mail/messenger/preferences/new-tag.ftl
create mode 100644 l10n-vi/mail/messenger/preferences/notifications.ftl
create mode 100644 l10n-vi/mail/messenger/preferences/offline.ftl
create mode 100644 l10n-vi/mail/messenger/preferences/passwordManager.ftl
create mode 100644 l10n-vi/mail/messenger/preferences/permissions.ftl
create mode 100644 l10n-vi/mail/messenger/preferences/preferences.ftl
create mode 100644 l10n-vi/mail/messenger/preferences/receipts.ftl
create mode 100644 l10n-vi/mail/messenger/preferences/sendoptions.ftl
create mode 100644 l10n-vi/mail/messenger/preferences/system-integration.ftl
create mode 100644 l10n-vi/mail/updater/updater.ini
create mode 100644 l10n-vi/mobile/android/chrome/about.dtd
create mode 100644 l10n-vi/mobile/android/chrome/aboutAccounts.dtd
create mode 100644 l10n-vi/mobile/android/chrome/aboutAccounts.properties
create mode 100644 l10n-vi/mobile/android/chrome/aboutAddons.dtd
create mode 100644 l10n-vi/mobile/android/chrome/aboutAddons.properties
create mode 100644 l10n-vi/mobile/android/chrome/aboutCertError.dtd
create mode 100644 l10n-vi/mobile/android/chrome/aboutDownloads.dtd
create mode 100644 l10n-vi/mobile/android/chrome/aboutDownloads.properties
create mode 100644 l10n-vi/mobile/android/chrome/aboutHome.dtd
create mode 100644 l10n-vi/mobile/android/chrome/aboutLogins.dtd
create mode 100644 l10n-vi/mobile/android/chrome/aboutLogins.properties
create mode 100644 l10n-vi/mobile/android/chrome/aboutPrivateBrowsing.dtd
create mode 100644 l10n-vi/mobile/android/chrome/browser.properties
create mode 100644 l10n-vi/mobile/android/chrome/config.dtd
create mode 100644 l10n-vi/mobile/android/chrome/config.properties
create mode 100644 l10n-vi/mobile/android/chrome/devicePrompt.properties
create mode 100644 l10n-vi/mobile/android/chrome/passwordmgr.properties
create mode 100644 l10n-vi/mobile/android/chrome/phishing.dtd
create mode 100644 l10n-vi/mobile/android/chrome/pippki.properties
create mode 100644 l10n-vi/mobile/android/chrome/sync.properties
create mode 100644 l10n-vi/mobile/android/chrome/webcompatReporter.properties
create mode 100644 l10n-vi/mobile/android/defines.inc
create mode 100644 l10n-vi/mobile/android/mobile-l10n.js
create mode 100644 l10n-vi/mobile/chrome/region.properties
create mode 100644 l10n-vi/mobile/overrides/appstrings.properties
create mode 100644 l10n-vi/mobile/overrides/netError.dtd
create mode 100644 l10n-vi/netwerk/necko.properties
create mode 100644 l10n-vi/other-licenses/branding/sunbird/brand.dtd
create mode 100644 l10n-vi/other-licenses/branding/sunbird/brand.properties
create mode 100644 l10n-vi/security/manager/chrome/pipnss/nsserrors.properties
create mode 100644 l10n-vi/security/manager/chrome/pipnss/pipnss.properties
create mode 100644 l10n-vi/security/manager/chrome/pippki/pippki.properties
create mode 100644 l10n-vi/security/manager/security/certificates/certManager.ftl
create mode 100644 l10n-vi/security/manager/security/certificates/deviceManager.ftl
create mode 100644 l10n-vi/security/manager/security/pippki/pippki.ftl
create mode 100644 l10n-vi/services/sync/sync.properties
create mode 100644 l10n-vi/toolkit/chrome/alerts/alert.dtd
create mode 100644 l10n-vi/toolkit/chrome/alerts/alert.properties
create mode 100644 l10n-vi/toolkit/chrome/autoconfig/autoconfig.properties
create mode 100644 l10n-vi/toolkit/chrome/global-platform/mac/intl.properties
create mode 100644 l10n-vi/toolkit/chrome/global-platform/mac/platformKeys.properties
create mode 100644 l10n-vi/toolkit/chrome/global-platform/unix/intl.properties
create mode 100644 l10n-vi/toolkit/chrome/global-platform/unix/platformKeys.properties
create mode 100644 l10n-vi/toolkit/chrome/global-platform/win/intl.properties
create mode 100644 l10n-vi/toolkit/chrome/global-platform/win/platformKeys.properties
create mode 100644 l10n-vi/toolkit/chrome/global/aboutReader.properties
create mode 100644 l10n-vi/toolkit/chrome/global/aboutStudies.properties
create mode 100644 l10n-vi/toolkit/chrome/global/aboutWebrtc.properties
create mode 100644 l10n-vi/toolkit/chrome/global/appPicker.dtd
create mode 100644 l10n-vi/toolkit/chrome/global/autocomplete.properties
create mode 100644 l10n-vi/toolkit/chrome/global/browser.properties
create mode 100644 l10n-vi/toolkit/chrome/global/charsetMenu.dtd
create mode 100644 l10n-vi/toolkit/chrome/global/charsetMenu.properties
create mode 100644 l10n-vi/toolkit/chrome/global/commonDialog.dtd
create mode 100644 l10n-vi/toolkit/chrome/global/commonDialogs.properties
create mode 100644 l10n-vi/toolkit/chrome/global/contentAreaCommands.properties
create mode 100644 l10n-vi/toolkit/chrome/global/datetimebox.dtd
create mode 100644 l10n-vi/toolkit/chrome/global/dialog.properties
create mode 100644 l10n-vi/toolkit/chrome/global/dialogOverlay.dtd
create mode 100644 l10n-vi/toolkit/chrome/global/editMenuOverlay.dtd
create mode 100644 l10n-vi/toolkit/chrome/global/extensions.properties
create mode 100644 l10n-vi/toolkit/chrome/global/fallbackMenubar.properties
create mode 100644 l10n-vi/toolkit/chrome/global/filepicker.properties
create mode 100644 l10n-vi/toolkit/chrome/global/findbar.properties
create mode 100644 l10n-vi/toolkit/chrome/global/global-extension-fields.properties
create mode 100644 l10n-vi/toolkit/chrome/global/globalKeys.dtd
create mode 100644 l10n-vi/toolkit/chrome/global/intl.css
create mode 100644 l10n-vi/toolkit/chrome/global/intl.properties
create mode 100644 l10n-vi/toolkit/chrome/global/keys.properties
create mode 100644 l10n-vi/toolkit/chrome/global/mozilla.dtd
create mode 100644 l10n-vi/toolkit/chrome/global/narrate.properties
create mode 100644 l10n-vi/toolkit/chrome/global/notification.dtd
create mode 100644 l10n-vi/toolkit/chrome/global/printdialog.properties
create mode 100644 l10n-vi/toolkit/chrome/global/resetProfile.dtd
create mode 100644 l10n-vi/toolkit/chrome/global/resetProfile.properties
create mode 100644 l10n-vi/toolkit/chrome/global/textcontext.dtd
create mode 100644 l10n-vi/toolkit/chrome/global/tree.dtd
create mode 100644 l10n-vi/toolkit/chrome/global/videocontrols.dtd
create mode 100644 l10n-vi/toolkit/chrome/global/viewSource.properties
create mode 100644 l10n-vi/toolkit/chrome/global/wizard.properties
create mode 100644 l10n-vi/toolkit/chrome/mozapps/downloads/downloads.properties
create mode 100644 l10n-vi/toolkit/chrome/mozapps/downloads/settingsChange.dtd
create mode 100644 l10n-vi/toolkit/chrome/mozapps/downloads/unknownContentType.dtd
create mode 100644 l10n-vi/toolkit/chrome/mozapps/downloads/unknownContentType.properties
create mode 100644 l10n-vi/toolkit/chrome/mozapps/extensions/extensions.dtd
create mode 100644 l10n-vi/toolkit/chrome/mozapps/extensions/extensions.properties
create mode 100644 l10n-vi/toolkit/chrome/mozapps/handling/handling.dtd
create mode 100644 l10n-vi/toolkit/chrome/mozapps/handling/handling.properties
create mode 100644 l10n-vi/toolkit/chrome/mozapps/profile/profileSelection.properties
create mode 100644 l10n-vi/toolkit/chrome/mozapps/update/updates.properties
create mode 100644 l10n-vi/toolkit/chrome/passwordmgr/passwordmgr.properties
create mode 100644 l10n-vi/toolkit/chrome/places/places.properties
create mode 100644 l10n-vi/toolkit/chrome/pluginproblem/pluginproblem.dtd
create mode 100644 l10n-vi/toolkit/chrome/search/search.properties
create mode 100644 l10n-vi/toolkit/crashreporter/aboutcrashes.ftl
create mode 100644 l10n-vi/toolkit/crashreporter/crashreporter.ini
create mode 100644 l10n-vi/toolkit/defines.inc
create mode 100644 l10n-vi/toolkit/toolkit/about/aboutAbout.ftl
create mode 100644 l10n-vi/toolkit/toolkit/about/aboutAddons.ftl
create mode 100644 l10n-vi/toolkit/toolkit/about/aboutCompat.ftl
create mode 100644 l10n-vi/toolkit/toolkit/about/aboutConfig.ftl
create mode 100644 l10n-vi/toolkit/toolkit/about/aboutGlean.ftl
create mode 100644 l10n-vi/toolkit/toolkit/about/aboutHttpsOnlyError.ftl
create mode 100644 l10n-vi/toolkit/toolkit/about/aboutMozilla.ftl
create mode 100644 l10n-vi/toolkit/toolkit/about/aboutNetworking.ftl
create mode 100644 l10n-vi/toolkit/toolkit/about/aboutPerformance.ftl
create mode 100644 l10n-vi/toolkit/toolkit/about/aboutPlugins.ftl
create mode 100644 l10n-vi/toolkit/toolkit/about/aboutProcesses.ftl
create mode 100644 l10n-vi/toolkit/toolkit/about/aboutProfiles.ftl
create mode 100644 l10n-vi/toolkit/toolkit/about/aboutRights.ftl
create mode 100644 l10n-vi/toolkit/toolkit/about/aboutServiceWorkers.ftl
create mode 100644 l10n-vi/toolkit/toolkit/about/aboutSupport.ftl
create mode 100644 l10n-vi/toolkit/toolkit/about/aboutTelemetry.ftl
create mode 100644 l10n-vi/toolkit/toolkit/about/aboutWebrtc.ftl
create mode 100644 l10n-vi/toolkit/toolkit/about/abuseReports.ftl
create mode 100644 l10n-vi/toolkit/toolkit/about/certviewer.ftl
create mode 100644 l10n-vi/toolkit/toolkit/about/config.ftl
create mode 100644 l10n-vi/toolkit/toolkit/about/url-classifier.ftl
create mode 100644 l10n-vi/toolkit/toolkit/extensions/blocklist.ftl
create mode 100644 l10n-vi/toolkit/toolkit/featuregates/features.ftl
create mode 100644 l10n-vi/toolkit/toolkit/global/createProfileWizard.ftl
create mode 100644 l10n-vi/toolkit/toolkit/global/handlerDialog.ftl
create mode 100644 l10n-vi/toolkit/toolkit/global/processTypes.ftl
create mode 100644 l10n-vi/toolkit/toolkit/global/profileDowngrade.ftl
create mode 100644 l10n-vi/toolkit/toolkit/global/profileSelection.ftl
create mode 100644 l10n-vi/toolkit/toolkit/global/resetProfile.ftl
create mode 100644 l10n-vi/toolkit/toolkit/global/textActions.ftl
create mode 100644 l10n-vi/toolkit/toolkit/global/unknownContentType.ftl
create mode 100644 l10n-vi/toolkit/toolkit/global/videocontrols.ftl
create mode 100644 l10n-vi/toolkit/toolkit/global/wizard.ftl
create mode 100644 l10n-vi/toolkit/toolkit/intl/languageNames.ftl
create mode 100644 l10n-vi/toolkit/toolkit/intl/regionNames.ftl
create mode 100644 l10n-vi/toolkit/toolkit/main-window/autocomplete.ftl
create mode 100644 l10n-vi/toolkit/toolkit/main-window/findbar.ftl
create mode 100644 l10n-vi/toolkit/toolkit/payments/payments.ftl
create mode 100644 l10n-vi/toolkit/toolkit/pictureinpicture/pictureinpicture.ftl
create mode 100644 l10n-vi/toolkit/toolkit/preferences/preferences.ftl
create mode 100644 l10n-vi/toolkit/toolkit/printing/printDialogs.ftl
create mode 100644 l10n-vi/toolkit/toolkit/printing/printPreview.ftl
create mode 100644 l10n-vi/toolkit/toolkit/printing/printUI.ftl
create mode 100644 l10n-vi/toolkit/toolkit/updates/elevation.ftl
create mode 100644 l10n-vi/toolkit/toolkit/updates/history.ftl
(limited to 'l10n-vi')
diff --git a/l10n-vi/browser/branding/official/brand.dtd b/l10n-vi/browser/branding/official/brand.dtd
new file mode 100644
index 0000000000..d094ad0f8d
--- /dev/null
+++ b/l10n-vi/browser/branding/official/brand.dtd
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/l10n-vi/browser/branding/official/brand.ftl b/l10n-vi/browser/branding/official/brand.ftl
new file mode 100644
index 0000000000..cdefe46dc2
--- /dev/null
+++ b/l10n-vi/browser/branding/official/brand.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/.
+
+
+## Firefox Brand
+##
+## Firefox must be treated as a brand, and kept in English.
+## It cannot be:
+## - Declined to adapt to grammatical case.
+## - Transliterated.
+## - Translated.
+##
+## Reference: https://www.mozilla.org/styleguide/communications/translation/
+
+## Firefox and Mozilla Brand
+##
+## Firefox and Mozilla 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
+
+-brand-shorter-name = Firefox
+-brand-short-name = Firefox
+-brand-full-name = Mozilla Firefox
+# This brand name can be used in messages where the product name needs to
+# remain unchanged across different versions (Nightly, Beta, etc.).
+-brand-product-name = Firefox
+-vendor-short-name = Mozilla
+trademarkInfo = Firefox và logo Firefox là thương hiệu của Tổ chức Mozilla.
diff --git a/l10n-vi/browser/branding/official/brand.properties b/l10n-vi/browser/branding/official/brand.properties
new file mode 100644
index 0000000000..e33c13c988
--- /dev/null
+++ b/l10n-vi/browser/branding/official/brand.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/.
+
+brandShorterName=Firefox
+brandShortName=Firefox
+brandFullName=Mozilla Firefox
+# LOCALIZATION NOTE(brandProductName):
+# This brand name can be used in messages where the product name needs to
+# remain unchanged across different versions (Nightly, Beta, etc.).
+brandProductName=Firefox
+vendorShortName=Mozilla
+
+syncBrandShortName=Đồng bộ hóa
diff --git a/l10n-vi/browser/browser/aboutCertError.ftl b/l10n-vi/browser/browser/aboutCertError.ftl
new file mode 100644
index 0000000000..50583e79e7
--- /dev/null
+++ b/l10n-vi/browser/browser/aboutCertError.ftl
@@ -0,0 +1,100 @@
+# 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:
+# $hostname (String) - Hostname of the website with cert error.
+cert-error-intro = { $hostname } sử dụng một chứng nhận bảo mật không hợp lệ.
+cert-error-mitm-intro = Các trang web chứng minh danh tính của họ thông qua các chứng nhận, được cấp bởi các cơ quan chứng nhận.
+cert-error-mitm-mozilla = { -brand-short-name } được hỗ trợ bởi Mozilla phi lợi nhuận, nơi quản lý một cửa hàng ủy quyền chứng nhận (CA) hoàn toàn mở. Cửa hàng CA giúp đảm bảo rằng các cơ quan cấp chứng nhận đang tuân theo các thực tiễn tốt nhất để bảo mật người dùng.
+cert-error-mitm-connection = { -brand-short-name } sử dụng cửa hàng Mozilla CA để xác minh rằng kết nối là an toàn, thay vì các chứng nhận được cung cấp bởi hệ điều hành của người dùng. Vì vậy, nếu chương trình chống vi-rút hoặc mạng đang chặn kết nối với chứng nhận bảo mật do CA không có trong cửa hàng Mozilla CA, kết nối được coi là không an toàn.
+cert-error-trust-unknown-issuer-intro = Ai đó có thể đang cố gắng mạo danh trang web và bạn không nên tiếp tục.
+# Variables:
+# $hostname (String) - Hostname of the website with cert error.
+cert-error-trust-unknown-issuer = Trang web chứng minh danh tính của họ thông qua các chứng nhận. { -brand-short-name } không tin tưởng { $hostname } vì nhà phát hành chứng nhận của nó không xác định, chứng nhận tự ký hoặc máy chủ không gửi chứng nhận trung gian chính xác.
+cert-error-trust-cert-invalid = Chứng nhận không đáng tin vì nó được cấp phát bởi một chứng nhận CA không hợp lệ.
+cert-error-trust-untrusted-issuer = Chứng nhận không đáng tin cậy vì chứng nhận của bên cấp phát không đáng tin cậy.
+cert-error-trust-signature-algorithm-disabled = Chứng nhận không đáng tin cậy vì được ký bằng một thuật toán đã bị vô hiệu do không an toàn.
+cert-error-trust-expired-issuer = Chứng nhận không đáng tin cậy vì chứng nhận bên cấp phát đã hết hạn.
+cert-error-trust-self-signed = Chứng nhận này không đáng tin cậy vì nó được tự ký.
+cert-error-trust-symantec = Chứng nhận do GeoTrust, RapidSSL, Symantec, Thawte và VeriSign cấp không còn được coi là an toàn vì các cơ quan cấp chứng nhận này đã không tuân theo các thực tiễn bảo mật trong quá khứ.
+cert-error-untrusted-default = Chứng nhận không thuộc về một nguồn đáng tin cậy.
+# Variables:
+# $hostname (String) - Hostname of the website with cert error.
+cert-error-domain-mismatch = Trang web chứng minh danh tính của họ thông qua các chứng nhận. { -brand-short-name } không tin tưởng trang web này vì nó sử dụng chứng nhận không hợp lệ cho { $hostname }.
+# Variables:
+# $hostname (String) - Hostname of the website with cert error.
+# $alt-name (String) - Alternate domain name for which the cert is valid.
+cert-error-domain-mismatch-single = Trang web chứng minh danh tính của họ thông qua các chứng nhận. { -brand-short-name } không tin tưởng trang web này vì nó sử dụng chứng nhận không hợp lệ cho { $hostname }. Chứng nhận chỉ có giá trị cho { $alt-name }.
+# Variables:
+# $hostname (String) - Hostname of the website with cert error.
+# $alt-name (String) - Alternate domain name for which the cert is valid.
+cert-error-domain-mismatch-single-nolink = Trang web chứng minh danh tính của họ thông qua các chứng nhận. { -brand-short-name } không tin tưởng trang web này vì nó sử dụng chứng nhận không hợp lệ cho { $hostname }. Chứng nhận chỉ có giá trị cho { $alt-name }.
+# Variables:
+# $subject-alt-names (String) - Alternate domain names for which the cert is valid.
+cert-error-domain-mismatch-multiple = Trang web chứng minh danh tính của họ thông qua các chứng nhận. { -brand-short-name } không tin tưởng trang web này vì nó sử dụng chứng nhận không hợp lệ cho { $hostname }. Chứng nhận chỉ có giá trị cho các tên sau: { $subject-alt-names }
+# Variables:
+# $hostname (String) - Hostname of the website with cert error.
+# $not-after-local-time (Date) - Certificate is not valid after this time.
+cert-error-expired-now = Các trang web chứng minh danh tính của họ thông qua các chứng nhận, có giá trị trong một khoảng thời gian đã đặt. Chứng nhận cho { $hostname } đã hết hạn vào { $not-after-local-time }.
+# Variables:
+# $hostname (String) - Hostname of the website with cert error.
+# $not-before-local-time (Date) - Certificate is not valid before this time.
+cert-error-not-yet-valid-now = Các trang web chứng minh danh tính của họ thông qua các chứng nhận, có giá trị trong một khoảng thời gian đã đặt. Chứng nhận cho { $hostname } sẽ không có giá trị cho đến { $not-before-local-time }.
+# Variables:
+# $error (String) - NSS error code string that specifies type of cert error. e.g. unknown issuer, invalid cert, etc.
+cert-error-code-prefix-link = Mã lỗi: { $error }
+# Variables:
+# $hostname (String) - Hostname of the website with cert error.
+cert-error-symantec-distrust-description = Các trang web chứng minh danh tính của họ thông qua các chứng nhận, được cấp bởi các cơ quan chứng nhận. Hầu hết các trình duyệt không còn tin tưởng các chứng chỉ do GeoTrust, RapidSSL, Symantec, Thawte và VeriSign cấp. { $hostname } sử dụng chứng nhận từ một trong những cơ quan này và do đó, danh tính của trang web không thể chứng minh được.
+cert-error-symantec-distrust-admin = Bạn có thể thông báo cho quản trị viên trang web về vấn đề này.
+# Variables:
+# $hasHSTS (Boolean) - Indicates whether HSTS header is present.
+cert-error-details-hsts-label = HTTP Strict Transport Security: { $hasHSTS }
+# Variables:
+# $hasHPKP (Boolean) - Indicates whether HPKP header is present.
+cert-error-details-key-pinning-label = HTTP Public Key Pinning: { $hasHPKP }
+cert-error-details-cert-chain-label = Chuỗi chứng nhận:
+open-in-new-window-for-csp-or-xfo-error = Mở trang web trong cửa sổ mới
+# Variables:
+# $hostname (String) - Hostname of the website blocked by csp or xfo error.
+csp-xfo-blocked-long-desc = Để bảo vệ tính bảo mật của bạn, { $hostname } sẽ không cho phép { -brand-short-name } hiển thị trang nếu một trang web khác đã nhúng nó. Để xem trang này, bạn cần mở nó trong một cửa sổ mới.
+
+## Messages used for certificate error titles
+
+connectionFailure-title = Không thể kết nối
+deniedPortAccess-title = Địa chỉ này đã bị chặn
+# "Hmm" is a sound made when considering or puzzling over something.
+# You don't have to include it in your translation if your language does not have a written word like this.
+dnsNotFound-title = Hmm. Chúng tôi gặp khó khăn khi tìm trang web đó.
+fileNotFound-title = Không tìm thấy tập tin
+fileAccessDenied-title = Truy cập tập tin bị từ chối
+generic-title = Lỗi.
+captivePortal-title = Đăng nhập vào mạng
+# "Hmm" is a sound made when considering or puzzling over something.
+# You don't have to include it in your translation if your language does not have a written word like this.
+malformedURI-title = Hmm. Địa chỉ không đúng.
+netInterrupt-title = Kết nối bị ngắt
+notCached-title = Tài liệu đã hết hạn
+netOffline-title = Chế độ ngoại tuyến
+contentEncodingError-title = Lỗi encoding
+unsafeContentType-title = Kiểu tập tin không an toàn
+netReset-title = Kết nối bị khởi tạo lại
+netTimeout-title = Kết nối đã mất quá nhiều thời gian
+unknownProtocolFound-title = Chương trình không hiểu địa chỉ này
+proxyConnectFailure-title = Máy chủ proxy từ chối kết nối
+proxyResolveFailure-title = Không tìm thấy máy chủ proxy
+redirectLoop-title = Trang này không chuyển hướng đúng cách
+unknownSocketType-title = Nhận được phản hồi lạ từ máy chủ
+nssFailure2-title = Không thể kết nối an toàn
+csp-xfo-error-title = { -brand-short-name } không thể mở trang này
+corruptedContentError-title = Lỗi nội dung bị hỏng
+remoteXUL-title = Remote XUL
+sslv3Used-title = Không thể kết nối một cách an toàn
+inadequateSecurityError-title = Kết nối của bạn không an toàn
+blockedByPolicy-title = Trang bị chặn
+clockSkewError-title = Đồng hồ trên máy tính của bạn không đúng
+networkProtocolError-title = Lỗi giao thức mạng
+nssBadCert-title = Cảnh báo: Rủi ro bảo mật tiềm ẩn
+nssBadCert-sts-title = Không kết nối: Sự cố bảo mật tiềm ẩn
+certerror-mitm-title = Phần mềm đang ngăn chặn { -brand-short-name } từ kết nối an toàn đến trang web này
diff --git a/l10n-vi/browser/browser/aboutConfig.ftl b/l10n-vi/browser/browser/aboutConfig.ftl
new file mode 100644
index 0000000000..9a46463bb9
--- /dev/null
+++ b/l10n-vi/browser/browser/aboutConfig.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 on the warning you see when first visiting about:config.
+
+about-config-intro-warning-title = Tiến hành thận trọng
+about-config-intro-warning-text = Thay đổi tùy chọn cấu hình nâng cao có thể ảnh hưởng đến hiệu suất hoặc bảo mật { -brand-short-name }.
+about-config-intro-warning-checkbox = Cảnh báo khi tôi cố gắng truy cập các tùy chọn này
+about-config-intro-warning-button = Chấp nhận rủi ro và tiếp tục
+
+##
+
+# This is shown on the page before searching but after the warning is accepted.
+about-config-caution-text = Thay đổi các tùy chọn này có thể ảnh hưởng đến hiệu suất hoặc bảo mật { -brand-short-name }.
+about-config-page-title = Tùy chọn nâng cao
+about-config-search-input1 =
+ .placeholder = Tìm kiếm tên tùy chọn
+about-config-show-all = Hiển thị tất cả
+about-config-pref-add-button =
+ .title = Thêm
+about-config-pref-toggle-button =
+ .title = Bật/Tắt
+about-config-pref-edit-button =
+ .title = Chỉnh sửa
+about-config-pref-save-button =
+ .title = Lưu
+about-config-pref-reset-button =
+ .title = Đặt lại
+about-config-pref-delete-button =
+ .title = Xóa
+
+## Labels for the type selection radio buttons shown when adding preferences.
+
+about-config-pref-add-type-boolean = Luận lí
+about-config-pref-add-type-number = Số
+about-config-pref-add-type-string = Chuỗi
+
+## Preferences with a non-default value are differentiated visually, and at the
+## same time the state is made accessible to screen readers using an aria-label
+## that won't be visible or copied to the clipboard.
+##
+## Variables:
+## $value (String): The full value of the preference.
+
+about-config-pref-accessible-value-default =
+ .aria-label = { $value } (mặc định)
+about-config-pref-accessible-value-custom =
+ .aria-label = { $value } (tùy chỉnh)
diff --git a/l10n-vi/browser/browser/aboutDialog.ftl b/l10n-vi/browser/browser/aboutDialog.ftl
new file mode 100644
index 0000000000..83948ac11c
--- /dev/null
+++ b/l10n-vi/browser/browser/aboutDialog.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/.
+
+aboutDialog-title =
+ .title = Giới thiệu về { -brand-full-name }
+releaseNotes-link = Có gì mới
+update-checkForUpdatesButton =
+ .label = Kiểm tra cập nhật
+ .accesskey = C
+update-updateButton =
+ .label = Khởi động lại để cập nhật { -brand-shorter-name }
+ .accesskey = R
+update-checkingForUpdates = Đang kiểm tra cập nhật…
+update-downloading = Đang tải cập nhật —
+update-downloading-message = Đang tải xuống bản cập nhật —
+update-applying = Đang cài đặt cập nhật…
+update-failed = Cập nhật thất bại.
+update-failed-main = Cập nhật thất bại. Tải phiên bản mới nhất
+update-adminDisabled = Cập nhật bị vô hiệu hóa bởi quản trị hệ thống
+update-noUpdatesFound = { -brand-short-name } đã được cập nhật
+update-otherInstanceHandlingUpdates = { -brand-short-name } đang được cập nhật bởi tiến trình khác
+update-manual = Cập nhật có tại
+update-unsupported = Bạn không thể cập nhật thêm trên hệ thống này nữa.
+update-restarting = Đang khởi động lại…
+channel-description = Bạn hiện đang ở trên kênh cập nhật .
+warningDesc-version = { -brand-short-name } được thiết kế để thử nghiệm và có thể không ổn định.
+aboutdialog-help-user = Trợ giúp { -brand-product-name }
+aboutdialog-submit-feedback = Gửi phản hồi
+community-exp = là một cùng chung sức bảo vệ Web mở, công khai và cho phép ai cũng truy cập được.
+community-2 = { -brand-short-name } được thiết kế bởi , một cùng chung sức bảo vệ Web mở và cho phép ai cũng truy cập được.
+helpus = Bạn muốn giúp đỡ? , hoặc
+bottomLinks-license = Thông tin giấy phép
+bottomLinks-rights = Quyền hạn người dùng cuối
+bottomLinks-privacy = Chính sách riêng tư
+# Example of resulting string: 66.0.1 (64-bit)
+# Variables:
+# $version (String): version of Firefox, e.g. 66.0.1
+# $bits (Number): bits of the architecture (32 or 64)
+aboutDialog-version = { $version } ({ $bits }-bit)
+# Example of resulting string: 66.0a1 (2019-01-16) (64-bit)
+# Variables:
+# $version (String): version of Firefox for Nightly builds, e.g. 66.0a1
+# $isodate (String): date in ISO format, e.g. 2019-01-16
+# $bits (Number): bits of the architecture (32 or 64)
+aboutDialog-version-nightly = { $version } ({ $isodate }) ({ $bits }-bit)
diff --git a/l10n-vi/browser/browser/aboutLogins.ftl b/l10n-vi/browser/browser/aboutLogins.ftl
new file mode 100644
index 0000000000..9dee79dcaa
--- /dev/null
+++ b/l10n-vi/browser/browser/aboutLogins.ftl
@@ -0,0 +1,312 @@
+# 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: New strings should use the about-logins- prefix.
+
+about-logins-page-title = Đăng nhập & mật khẩu
+
+# "Google Play" and "App Store" are both branding and should not be translated
+
+login-app-promo-title = Mang mật khẩu của bạn đi khắp mọi nơi
+login-app-promo-subtitle = Tải ứng dụng { -lockwise-brand-name } miễn phí
+login-app-promo-android =
+ .alt = Tải xuống trên Google Play
+login-app-promo-apple =
+ .alt = Tải xuống trên App Store
+login-filter =
+ .placeholder = Tìm kiếm thông tin đăng nhập
+create-login-button = Tạo đăng nhập mới
+fxaccounts-sign-in-text = Nhận mật khẩu của bạn trên các thiết bị khác của bạn
+fxaccounts-sign-in-button = Đăng nhập vào { -sync-brand-short-name }
+fxaccounts-avatar-button =
+ .title = Quản lý tài khoản
+
+## The ⋯ menu that is in the top corner of the page
+
+menu =
+ .title = Mở menu
+# This menuitem is only visible on Windows and macOS
+about-logins-menu-menuitem-import-from-another-browser = Nhập dữ liệu từ trình duyệt khác…
+about-logins-menu-menuitem-import-from-a-file = Nhập từ tập tin…
+about-logins-menu-menuitem-export-logins = Xuất thông tin đăng nhập…
+about-logins-menu-menuitem-remove-all-logins = Xóa tất cả thông tin đăng nhập…
+menu-menuitem-preferences =
+ { PLATFORM() ->
+ [windows] Tùy chọn
+ *[other] Tùy chỉnh
+ }
+about-logins-menu-menuitem-help = Trợ giúp
+menu-menuitem-android-app = { -lockwise-brand-short-name } dành cho Android
+menu-menuitem-iphone-app = { -lockwise-brand-short-name } dành cho iPhone và iPad
+
+## Login List
+
+login-list =
+ .aria-label = Đăng nhập phù hợp với truy vấn tìm kiếm
+login-list-count =
+ { $count ->
+ *[other] { $count } thông tin đăng nhập
+ }
+login-list-sort-label-text = Sắp xếp theo:
+login-list-name-option = Tên (A-Z)
+login-list-name-reverse-option = Tên (Z-A)
+about-logins-login-list-alerts-option = Cảnh báo
+login-list-last-changed-option = Sửa đổi lần cuối
+login-list-last-used-option = Sử dụng lần cuối
+login-list-intro-title = Không tìm thấy thông tin đăng nhập
+login-list-intro-description = Khi bạn lưu mật khẩu trong { -brand-product-name }, nó sẽ hiển thị ở đây.
+about-logins-login-list-empty-search-title = Không tìm thấy thông tin đăng nhập
+about-logins-login-list-empty-search-description = Không có kết quả phù hợp với tìm kiếm của bạn.
+login-list-item-title-new-login = Đăng nhập mới
+login-list-item-subtitle-new-login = Nhập thông tin đăng nhập của bạn
+login-list-item-subtitle-missing-username = (không có tên người dùng)
+about-logins-list-item-breach-icon =
+ .title = Trang web bị rò rỉ
+about-logins-list-item-vulnerable-password-icon =
+ .title = Mật khẩu dễ bị tấn công
+
+## Introduction screen
+
+login-intro-heading = Đang tìm kiếm thông tin đăng nhập đã lưu của bạn? Thiết lập { -sync-brand-short-name }.
+about-logins-login-intro-heading-logged-out = Đang tìm kiếm thông tin đăng nhập đã lưu của bạn? Thiết lập { -sync-brand-short-name } hoặc nhập chúng.
+about-logins-login-intro-heading-logged-in = Không tìm thấy thông tin đăng nhập được đồng bộ hóa.
+login-intro-description = Nếu bạn đã lưu thông tin đăng nhập của mình vào { -brand-product-name } trên một thiết bị khác, thì đây là cách để có được chúng ở đây:
+login-intro-instruction-fxa = Tạo hoặc đăng nhập vào { -fxaccount-brand-name } trên thiết bị nơi đăng nhập của bạn được lưu
+login-intro-instruction-fxa-settings = Đảm bảo rằng bạn đã chọn hộp kiểm Đăng nhập trong Cài đặt { -sync-brand-short-name }
+about-logins-intro-instruction-help = Truy cập hỗ trợ của { -lockwise-brand-short-name } để được trợ giúp thêm
+about-logins-intro-import = Nếu thông tin đăng nhập của bạn được lưu trong một trình duyệt khác, bạn có thể nhập chúng vào { -lockwise-brand-short-name }
+about-logins-intro-import2 = Nếu thông tin đăng nhập của bạn được lưu bên ngoài { -brand-product-name }, bạn có thể nhập chúng từ trình duyệt khác hoặc từ một tập tin
+
+## Login
+
+login-item-new-login-title = Tạo đăng nhập mới
+login-item-edit-button = Chỉnh sửa
+about-logins-login-item-remove-button = Xóa
+login-item-origin-label = Địa chỉ trang web
+login-item-tooltip-message = Đảm bảo rằng địa chỉ này khớp với địa chỉ chính xác của trang web mà bạn đăng nhập.
+login-item-origin =
+ .placeholder = https://www.example.com
+login-item-username-label = Tên đăng nhập
+about-logins-login-item-username =
+ .placeholder = (không có tên người dùng)
+login-item-copy-username-button-text = Sao chép
+login-item-copied-username-button-text = Đã sao chép!
+login-item-password-label = Mật khẩu
+login-item-password-reveal-checkbox =
+ .aria-label = Hiện mật khẩu
+login-item-copy-password-button-text = Sao chép
+login-item-copied-password-button-text = Đã sao chép!
+login-item-save-changes-button = Lưu thay đổi
+login-item-save-new-button = Lưu
+login-item-cancel-button = Hủy bỏ
+login-item-time-changed = Sửa đổi lần cuối: { DATETIME($timeChanged, day: "numeric", month: "long", year: "numeric") }
+login-item-time-created = Được tạo: { DATETIME($timeCreated, day: "numeric", month: "long", year: "numeric") }
+login-item-time-used = Lần sử dụng cuối: { DATETIME($timeUsed, day: "numeric", month: "long", year: "numeric") }
+
+## OS Authentication dialog
+
+about-logins-os-auth-dialog-caption = { -brand-full-name }
+
+## 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 respected locale.
+
+# This message can be seen when attempting to edit a login in about:logins on Windows.
+about-logins-edit-login-os-auth-dialog-message-win = Để chỉnh sửa thông tin đăng nhập của bạn, 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 when attempting to edit a login in about:logins
+# On MacOS, only provide the reason that account verification is needed. Do not put a complete sentence here.
+about-logins-edit-login-os-auth-dialog-message-macosx = chỉnh sửa thông tin đăng nhập đã lưu
+# This message can be seen when attempting to reveal a password in about:logins on Windows.
+about-logins-reveal-password-os-auth-dialog-message-win = Để xem mật khẩu của bạn, 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 when attempting to reveal a password in about:logins
+# On MacOS, only provide the reason that account verification is needed. Do not put a complete sentence here.
+about-logins-reveal-password-os-auth-dialog-message-macosx = hiển thị mật khẩu đã lưu
+# This message can be seen when attempting to copy a password in about:logins on Windows.
+about-logins-copy-password-os-auth-dialog-message-win = Để sao chép mật khẩu của bạn, 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 when attempting to copy a password in about:logins
+# On MacOS, only provide the reason that account verification is needed. Do not put a complete sentence here.
+about-logins-copy-password-os-auth-dialog-message-macosx = sao chép mật khẩu đã lưu
+
+## Master Password notification
+
+master-password-notification-message = Vui lòng nhập mật khẩu chính của bạn để xem thông tin đăng nhập và mật khẩu đã lưu
+# This message can be seen when attempting to export a password in about:logins on Windows.
+about-logins-export-password-os-auth-dialog-message-win = Để xuất ra thông tin đăng nhập của bạn, hãy nhập thông tin đăng nhập Windows của bạn. Điều này giúp bảo mật tài khoản của bạn.
+# This message can be seen when attempting to export a password in about:logins
+# On MacOS, only provide the reason that account verification is needed. Do not put a complete sentence here.
+about-logins-export-password-os-auth-dialog-message-macosx = xuất thông tin đăng nhập và mật khẩu
+
+## Primary Password notification
+
+about-logins-primary-password-notification-message = Vui lòng nhập mật khẩu chính của bạn để xem thông tin đăng nhập và mật khẩu đã lưu
+master-password-reload-button =
+ .label = Đăng nhập
+ .accesskey = L
+
+## Password Sync notification
+
+enable-password-sync-notification-message =
+ { PLATFORM() ->
+ [windows] Muốn có thông tin đăng nhập của bạn ở mọi nơi bạn sử dụng { -brand-product-name }? Chuyển đến tùy chọn { -sync-brand-short-name } của bạn và chọn hộp kiểm Đăng nhập.
+ *[other] Muốn có thông tin đăng nhập của bạn ở mọi nơi bạn sử dụng { -brand-product-name }? Chuyển đến tùy chỉnh { -sync-brand-short-name } của bạn và chọn hộp kiểm Đăng nhập.
+ }
+enable-password-sync-preferences-button =
+ .label =
+ { PLATFORM() ->
+ [windows] Truy cập tùy chọn { -sync-brand-short-name }
+ *[other] Truy cập tùy chỉnh { -sync-brand-short-name }
+ }
+ .accesskey = V
+about-logins-enable-password-sync-dont-ask-again-button =
+ .label = Đừng hỏi lại tôi nữa.
+ .accesskey = D
+
+## Dialogs
+
+confirmation-dialog-cancel-button = Hủy bỏ
+confirmation-dialog-dismiss-button =
+ .title = Hủy bỏ
+about-logins-confirm-remove-dialog-title = Xoá thông tin đăng nhập này?
+confirm-delete-dialog-message = Thao tác này không thể hoàn tác được.
+about-logins-confirm-remove-dialog-confirm-button = Xóa
+about-logins-confirm-remove-all-dialog-confirm-button-label =
+ { $count ->
+ [1] Xóa
+ *[other] Xóa tất cả
+ }
+about-logins-confirm-remove-all-dialog-checkbox-label =
+ { $count ->
+ [1] Có, xóa thông tin đăng nhập này
+ *[other] Có, xóa các thông tin đăng nhập này
+ }
+about-logins-confirm-remove-all-dialog-title =
+ { $count ->
+ *[other] Xóa tất cả { $count } thông tin đăng nhập?
+ }
+about-logins-confirm-remove-all-dialog-message =
+ { $count ->
+ [1] Thao tác này sẽ xóa thông tin đăng nhập bạn đã lưu vào { -brand-short-name } và mọi cảnh báo rò rỉ xuất hiện ở đây. Bạn sẽ không thể hoàn tác hành động này.
+ *[other] Thao tác này sẽ xóa các thông tin đăng nhập bạn đã lưu vào { -brand-short-name } và mọi cảnh báo rò rỉ xuất hiện ở đây. Bạn sẽ không thể hoàn tác hành động này.
+ }
+about-logins-confirm-remove-all-sync-dialog-title =
+ { $count ->
+ *[other] Xóa tất cả { $count } thông tin đăng nhập khỏi tất cả các thiết bị?
+ }
+about-logins-confirm-remove-all-sync-dialog-message =
+ { $count ->
+ [1] Thao tác này sẽ xóa thông tin đăng nhập bạn đã lưu vào { -brand-short-name } trên tất cả các thiết bị được đồng bộ hóa với { -fxaccount-brand-name } của bạn. Thao tác này cũng sẽ xóa các cảnh báo rò rỉ xuất hiện ở đây. Bạn sẽ không thể hoàn tác hành động này.
+ *[other] Thao tác này sẽ xóa tất cả các thông tin đăng nhập bạn đã lưu vào { -brand-short-name } trên tất cả các thiết bị được đồng bộ hóa với { -fxaccount-brand-name } của bạn. Thao tác này cũng sẽ xóa các cảnh báo rò rỉ xuất hiện ở đây. Bạn sẽ không thể hoàn tác hành động này.
+ }
+about-logins-confirm-export-dialog-title = Xuất thông tin đăng nhập và mật khẩu
+about-logins-confirm-export-dialog-message = Mật khẩu của bạn sẽ được lưu dưới dạng văn bản có thể đọc được (ví dụ: BadP@ssw0rd) để bất kỳ ai có thể mở tập tin được xuất đều có thể xem chúng.
+about-logins-confirm-export-dialog-confirm-button = Xuất…
+about-logins-alert-import-title = Hoàn thành nhập
+about-logins-alert-import-message = Xem tóm tắt chi tiết nhập
+confirm-discard-changes-dialog-title = Hủy bỏ những thay đổi chưa lưu?
+confirm-discard-changes-dialog-message = Tất cả các thay đổi chưa được lưu sẽ bị mất.
+confirm-discard-changes-dialog-confirm-button = Loại bỏ
+
+## Breach Alert notification
+
+about-logins-breach-alert-title = Vi phạm trang web
+breach-alert-text = Mật khẩu đã bị rò rỉ hoặc đánh cắp từ trang web này kể từ lần cuối bạn cập nhật thông tin đăng nhập. Thay đổi mật khẩu của bạn để bảo vệ tài khoản của bạn.
+about-logins-breach-alert-date = Vi phạm này xảy ra vào { DATETIME($date, day: "numeric", month: "long", year: "numeric") }
+# Variables:
+# $hostname (String) - The hostname of the website associated with the login, e.g. "example.com"
+about-logins-breach-alert-link = Đi đến { $hostname }
+about-logins-breach-alert-learn-more-link = Tìm hiểu thêm
+
+## Vulnerable Password notification
+
+about-logins-vulnerable-alert-title = Mật khẩu dễ bị tấn công
+about-logins-vulnerable-alert-text2 = Mật khẩu này đã được sử dụng trên một tài khoản khác có khả năng bị rò rỉ dữ liệu. Việc sử dụng lại thông tin đăng nhập sẽ khiến tất cả các tài khoản của bạn gặp rủi ro. Thay đổi mật khẩu này.
+# Variables:
+# $hostname (String) - The hostname of the website associated with the login, e.g. "example.com"
+about-logins-vulnerable-alert-link = Đi đến { $hostname }
+about-logins-vulnerable-alert-learn-more-link = Tìm hiểu thêm
+
+## Error Messages
+
+# This is an error message that appears when a user attempts to save
+# a new login that is identical to an existing saved login.
+# Variables:
+# $loginTitle (String) - The title of the website associated with the login.
+about-logins-error-message-duplicate-login-with-link = Một mục nhập cho { $loginTitle } với tên người dùng đã tồn tại. Chuyển đến giá trị hiện có?
+# This is a generic error message.
+about-logins-error-message-default = Đã xảy ra lỗi trong khi cố gắng lưu mật khẩu này.
+
+## Login Export Dialog
+
+# Title of the file picker dialog
+about-logins-export-file-picker-title = Xuất tập tin đăng nhập
+# The default file name shown in the file picker when exporting saved logins.
+# This must end in .csv
+about-logins-export-file-picker-default-filename = logins.csv
+about-logins-export-file-picker-export-button = Xuất
+# A description for the .csv file format that may be shown as the file type
+# filter by the operating system.
+about-logins-export-file-picker-csv-filter-title =
+ { PLATFORM() ->
+ [macos] Tài liệu CSV
+ *[other] Tập tin CSV
+ }
+
+## Login Import Dialog
+
+# Title of the file picker dialog
+about-logins-import-file-picker-title = Nhập tập tin đăng nhập
+about-logins-import-file-picker-import-button = Nhập
+# A description for the .csv file format that may be shown as the file type
+# filter by the operating system.
+about-logins-import-file-picker-csv-filter-title =
+ { PLATFORM() ->
+ [macos] Tài liệu CSV
+ *[other] Tập tin CSV
+ }
+# A description for the .tsv file format that may be shown as the file type
+# filter by the operating system. TSV is short for 'tab separated values'.
+about-logins-import-file-picker-tsv-filter-title =
+ { PLATFORM() ->
+ [macos] Tài liệu TSV
+ *[other] Tập tin TSV
+ }
+
+##
+## Variables:
+## $count (number) - The number of affected elements
+
+about-logins-import-dialog-title = Hoàn thành nhập
+about-logins-import-dialog-items-added =
+ { $count ->
+ *[other] Đã thêm thông tin đăng nhập mới:{ $count }
+ }
+about-logins-import-dialog-items-modified =
+ { $count ->
+ *[other] Đã cập nhật thông tin đăng nhập đã có:{ $count }
+ }
+about-logins-import-dialog-items-no-change =
+ { $count ->
+ *[other] Tìm thấy thông tin đăng nhập bị trùng:{ $count }(không nhập)
+ }
+about-logins-import-dialog-items-error =
+ { $count ->
+ *[other] Lỗi:{ $count }(không nhập)
+ }
+about-logins-import-dialog-done = Xong
+about-logins-import-dialog-error-title = Lỗi khi nhập
+about-logins-import-dialog-error-conflicting-values-title = Nhiều giá trị xung đột cho một thông tin đăng nhập
+about-logins-import-dialog-error-conflicting-values-description = Ví dụ: nhiều tên người dùng, mật khẩu, URL, v.v. cho một thông tin đăng nhập.
+about-logins-import-dialog-error-file-format-title = Vấn đề định dạng tập tin
+about-logins-import-dialog-error-file-format-description = Header cột không chính xác hoặc bị thiếu. Đảm bảo rằng tập tin bao gồm các cột cho tên người dùng, mật khẩu và URL.
+about-logins-import-dialog-error-file-permission-title = Không thể đọc tập tin
+about-logins-import-dialog-error-file-permission-description = { -brand-short-name } không có quyền đọc tập tin. Thử thay đổi quyền đối với tập tin.
+about-logins-import-dialog-error-unable-to-read-title = Không thể phân tích cú pháp tập tin
+about-logins-import-dialog-error-unable-to-read-description = Đảm bảo rằng bạn đã chọn đúng tập tin CSV hoặc TSV.
+about-logins-import-dialog-error-no-logins-imported = Không có thông tin đăng nhập nào được nhập
+about-logins-import-dialog-error-learn-more = Tìm hiểu thêm
+about-logins-import-dialog-error-try-again = Thử lại…
+about-logins-import-dialog-error-cancel = Hủy bỏ
+
+## 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/aboutPolicies.ftl b/l10n-vi/browser/browser/aboutPolicies.ftl
new file mode 100644
index 0000000000..72323ef897
--- /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 = Kích hoạt
+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..dce95bf621
--- /dev/null
+++ b/l10n-vi/browser/browser/aboutPrivateBrowsing.ftl
@@ -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/.
+
+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-info-myths = Những lầm tưởng phổ biến về duyệt web riêng tư
+about-private-browsing =
+ .title = Tìm kiếm trên mạng
+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 = { -brand-short-name } xóa lịch sử tìm kiếm và duyệt web của bạn khi bạn thoát khỏi ứng dụng hoặc đóng tất cả các thẻ và cửa sổ duyệt web riêng tư. Mặc dù điều này không làm cho bạn ẩn danh với các trang web hoặc nhà cung cấp dịch vụ internet của bạn, nhưng việc giữ kín những gì bạn làm trực tuyến với mọi người sử dụng máy tính này sẽ dễ dàng hơn.
+about-private-browsing-need-more-privacy = Cần thêm quyền riêng tư?
+about-private-browsing-turn-on-vpn = Hãy thử { -mozilla-vpn-brand-name }
+# 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
diff --git a/l10n-vi/browser/browser/aboutRestartRequired.ftl b/l10n-vi/browser/browser/aboutRestartRequired.ftl
new file mode 100644
index 0000000000..c46ab57f30
--- /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-header = Xin lỗi. Chúng tôi chỉ cần làm một việc nho nhỏ để tiếp tục.
+restart-required-intro-brand = { -brand-short-name } vừa được cập nhật trong nền. Nhấp vào Khởi động lại { -brand-short-name } để hoàn thành cập nhật.
+restart-required-description = Sau đó, chúng tôi sẽ khôi phục tất cả các trang, cửa sổ và thẻ của bạn để bạn có thể quay lại công việc của mình một cách nhanh chóng.
+
+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..baf237be59
--- /dev/null
+++ b/l10n-vi/browser/browser/aboutTabCrashed.ftl
@@ -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/.
+
+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 = 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-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 = Bao gồm các URL của các trang web mà bạn đã vào khi { -brand-short-name } bị đổ vỡ.
+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-email-placeholder = Nhập địa chỉ thư điện tử của bạn ở đây
+crashed-email-me = Gửi thư điện tử cho tôi khi có thêm thông tin
+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 = Cập nhật các tùy chọn để tự động gửi báo cáo khi { -brand-short-name } bị đổ vỡ.
+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/allTabsMenu.ftl b/l10n-vi/browser/browser/allTabsMenu.ftl
new file mode 100644
index 0000000000..c02a8c539f
--- /dev/null
+++ b/l10n-vi/browser/browser/allTabsMenu.ftl
@@ -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/.
+
+all-tabs-menu-undo-close-tabs =
+ .label =
+ { $tabCount ->
+ [1] Mở lại thẻ vừa đóng
+ *[other] Mở lại các thẻ vừa đóng
+ }
+# "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/appMenuNotifications.ftl b/l10n-vi/browser/browser/appMenuNotifications.ftl
new file mode 100644
index 0000000000..d4564e6e30
--- /dev/null
+++ b/l10n-vi/browser/browser/appMenuNotifications.ftl
@@ -0,0 +1,78 @@
+# 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-available =
+ .label = Một bản cập nhật { -brand-shorter-name } mới đã sẵn sàng.
+ .buttonlabel = Tải bản cập nhật
+ .buttonaccesskey = D
+ .secondarybuttonlabel = Không phải bây giờ
+ .secondarybuttonaccesskey = N
+appmenu-update-available-message = Cập nhật { -brand-shorter-name } bản mới nhất để cải thiện tốc độ và bảo mật.
+appmenu-update-manual =
+ .label = { -brand-shorter-name } không thể cập nhật lên phiên bản mới nhất.
+ .buttonlabel = Tải { -brand-shorter-name }
+ .buttonaccesskey = D
+ .secondarybuttonlabel = Không phải bây giờ
+ .secondarybuttonaccesskey = N
+appmenu-update-manual-message = Tải xuống bản sao của { -brand-shorter-name } và chúng tôi sẽ giúp bạn cài đặt nó.
+appmenu-update-whats-new =
+ .value = Xem có gì mới.
+appmenu-update-unsupported =
+ .label = { -brand-shorter-name } không thể cập nhật lên phiên bản mới nhất.
+ .buttonlabel = Tìm hiểu thêm
+ .buttonaccesskey = T
+ .secondarybuttonlabel = Đóng
+ .secondarybuttonaccesskey = D
+appmenu-update-unsupported-message = Phiên bản mới nhất của { -brand-shorter-name } không được hỗ trợ trên hệ thống của bạn.
+appmenu-update-restart =
+ .label = Khởi động lại để cập nhật { -brand-shorter-name }.
+ .buttonlabel = Khởi động lại và khôi phục
+ .buttonaccesskey = R
+ .secondarybuttonlabel = Không phải bây giờ
+ .secondarybuttonaccesskey = N
+appmenu-update-restart-message = Sau khi khởi động lại, { -brand-shorter-name } sẽ khôi phục toàn bộ những thẻ đang mở và cửa sổ của bạn mà không ở chế độ duyệt web riêng tư.
+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-installed =
+ .buttonlabel = OK, đã hiểu
+ .buttonaccesskey = O
+appmenu-addon-post-install-message = Quản lý tiện ích của bạn bằng cách nhấp vào trong trình đơn .
+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 =
+ .label = Thẻ mới của bạn đã bị thay đổi.
+ .buttonlabel = Giữ các thay đổi
+ .buttonaccesskey = K
+ .secondarybuttonlabel = Tắt tiện ích mở rộng
+ .secondarybuttonaccesskey = D
+appmenu-homepage-controlled =
+ .label = Trang chủ của bạn đã thay đổi.
+ .buttonlabel = Giữ các thay đổi
+ .buttonaccesskey = K
+ .secondarybuttonlabel = Tắt tiện ích mở rộng
+ .secondarybuttonaccesskey = D
+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 = Tắt 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..a331ae6111
--- /dev/null
+++ b/l10n-vi/browser/browser/appmenu.ftl
@@ -0,0 +1,168 @@
+# 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-update-banner =
+ .label-update-downloading = Đang tải xuống bản cập nhật { -brand-shorter-name }
+appmenuitem-protection-dashboard-title = Bảng điều khiển bảo vệ
+appmenuitem-customize-mode =
+ .label = Tùy biến…
+
+## Zoom Controls
+
+appmenuitem-new-window =
+ .label = Cửa sổ mới
+appmenuitem-new-private-window =
+ .label = Cửa sổ riêng tư mới
+appmenuitem-passwords =
+ .label = Mật khẩu
+appmenuitem-extensions-and-themes =
+ .label = Tiện ích mở rộng và chủ đề
+appmenuitem-find-in-page =
+ .label = Tìm trong trang…
+appmenuitem-more-tools =
+ .label = Thêm công cụ
+appmenuitem-exit =
+ .label = Thoát
+# 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.
+
+fxa-toolbar-sync-now =
+ .label = Đồng bộ ngay
+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-title =
+ .value = { -profiler-brand-name }
+profiler-popup-reveal-description-button =
+ .aria-label = Hiện 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 = 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 = Chỉnh sửa cài đặt…
+profiler-popup-disabled =
+ Profiler hiện bị vô hiệu hóa, rất có thể do cửa sổ Duyệt web riêng tư
+ đang mở.
+profiler-popup-recording-screen = Đang ghi…
+# The profiler presets list is generated elsewhere, but the custom preset is defined
+# here only.
+profiler-popup-presets-custom =
+ .label = Tùy chỉnh
+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
+ }
+
+## 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ổ
+
+## Help panel
+
+appmenu-help-header =
+ .title = Trợ giúp { -brand-shorter-name }
+appmenu-about =
+ .label = Về { -brand-shorter-name }
+ .accesskey = A
+appmenu-help-product =
+ .label = Trợ giúp { -brand-shorter-name }
+ .accesskey = H
+appmenu-help-show-tour =
+ .label = Các tính năng cơ bản của { -brand-shorter-name }
+ .accesskey = o
+appmenu-help-import-from-another-browser =
+ .label = Nhập dữ liệu từ trình duyệt khác…
+ .accesskey = I
+appmenu-help-keyboard-shortcuts =
+ .label = Các phím tắt bàn phím
+ .accesskey = K
+appmenu-get-help =
+ .label = Nhận trợ giúp
+ .accesskey = H
+appmenu-help-troubleshooting-info =
+ .label = Thông tin xử lý sự cố
+ .accesskey = T
+appmenu-help-taskmanager =
+ .label = Quản lý tác vụ
+appmenu-help-feedback-page =
+ .label = Gửi phản hồi…
+ .accesskey = S
+
+## appmenu-help-safe-mode-without-addons and appmenu-help-safe-mode-without-addons
+## are mutually exclusive, so it's possible to use the same accesskey for both.
+
+appmenu-help-safe-mode-without-addons =
+ .label = Khởi động lại và vô hiệu hóa các tiện ích…
+ .accesskey = R
+appmenu-help-safe-mode-with-addons =
+ .label = Khởi động lại và kích hoạt các tiện ích
+ .accesskey = R
+
+## 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
+
+##
+
+appmenu-help-check-for-update =
+ .label = Kiểm tra cập nhật…
+
+## 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
diff --git a/l10n-vi/browser/browser/branding/brandings.ftl b/l10n-vi/browser/browser/branding/brandings.ftl
new file mode 100644
index 0000000000..8ed0b6e58d
--- /dev/null
+++ b/l10n-vi/browser/browser/branding/brandings.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/.
+
+## The following feature names must be treated as a brand, and kept in English.
+## They cannot be:
+## - Declined to adapt to grammatical case.
+## - Transliterated.
+## - Translated.
+
+## 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
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..2ea419ee62
--- /dev/null
+++ b/l10n-vi/browser/browser/branding/sync-brand.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/.
+
+-sync-brand-short-name = Đồng bộ hóa
+
+# “Sync” can be localized, “Firefox” must be treated as a brand,
+# and kept in English.
+-sync-brand-name = Đồng bộ hóa Firefox
+
+# “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..10adf49028
--- /dev/null
+++ b/l10n-vi/browser/browser/browser.ftl
@@ -0,0 +1,610 @@
+# 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ư)
+# 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 }
+
+##
+
+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
+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
+# 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:
+
+## 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.
+# 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-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-add-to-urlbar =
+ .label = Thêm vào thanh địa chỉ
+page-action-manage-extension =
+ .label = Quản lý tiện ích mở rộng…
+page-action-remove-from-urlbar =
+ .label = Xóa khỏi thanh địa chỉ
+page-action-remove-extension =
+ .label = Xóa tiện ích mở rộng
+
+## Page Action menu
+
+# Variables
+# $tabCount (integer) - Number of tabs selected
+page-action-send-tabs-panel =
+ .label = Gửi { $tabCount } thẻ đến thiết bị
+page-action-send-tabs-urlbar =
+ .tooltiptext = Gửi { $tabCount } thẻ đến thiết bị
+page-action-pocket-panel =
+ .label = Lưu trang vào { -pocket-brand-name }
+page-action-copy-url-panel =
+ .label = Sao chép liên kết
+page-action-copy-url-urlbar =
+ .tooltiptext = Sao chép liên kết
+page-action-email-link-panel =
+ .label = Gửi liên kết qua email…
+page-action-email-link-urlbar =
+ .tooltiptext = Gửi liên kết qua email…
+page-action-share-url-panel =
+ .label = Chia sẻ
+page-action-share-url-urlbar =
+ .tooltiptext = Chia sẻ
+page-action-share-more-panel =
+ .label = Thêm…
+page-action-send-tab-not-ready =
+ .label = Đang đồng bộ các thiết bị…
+# "Pin" is being used as a metaphor for expressing the fact that these tabs
+# are "pinned" to the left edge of the tabstrip. Really we just want the
+# string to express the idea that this is a lightweight and reversible
+# action that keeps your tab where you can reach it easily.
+page-action-pin-tab-panel =
+ .label = Ghim thẻ
+page-action-pin-tab-urlbar =
+ .tooltiptext = Ghim thẻ
+page-action-unpin-tab-panel =
+ .label = Gỡ thẻ
+page-action-unpin-tab-urlbar =
+ .tooltiptext = Gỡ thẻ
+
+## 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:
+# This string won't wrap, so if the translated string is longer,
+# consider translating it as if it said only "Search Settings".
+search-one-offs-change-settings-button =
+ .label = Thay đổi thiết lập tìm kiếm
+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 })
+
+## 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 })
+
+## Bookmark Panel
+
+bookmark-panel-show-editor-checkbox =
+ .label = Hiện trình chỉnh sửa này khi lưu
+ .accesskey = S
+bookmark-panel-done-button =
+ .label = Xong
+# 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
+
+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-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 =
+ .value = Quyền hạn
+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-reload-hint = Bạn có thể cần phải tải lại trang để các thay đổi được áp dụng.
+identity-permissions-empty = Bạn chưa cấp cho trang này bất kỳ một quyền đặc biệt nào.
+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
+
+browser-tab-audio-playing = Đang phát
+browser-tab-audio-muted = Đã tắt tiếng
+# 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
+
+## 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 =
+ .value = Chia sẻ camera:
+ .accesskey = C
+popup-select-microphone =
+ .value = Chia sẻ micro:
+ .accesskey = M
+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-not-now =
+ .label = Không phải bây giờ
+ .accesskey = w
+popup-screen-sharing-never =
+ .label = Không bao giờ cho phép
+ .accesskey = N
+popup-silence-notifications-checkbox = Vô hiệu hóa thông báo từ { -brand-short-name } trong khi chia sẻ
+popup-silence-notifications-checkbox-warning = { -brand-short-name } sẽ không hiển thị thông báo trong khi bạn đang 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.
+
+## URL Bar
+
+urlbar-default-placeholder =
+ .defaultPlaceholder = Nhập địa chỉ hoặc từ khóa tìm kiếm
+# 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ẻ
+# 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ỉ
+urlbar-remote-control-notification-anchor =
+ .tooltiptext = Trình duyệt đang ở trong chế độ truy cập từ xa
+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
+urlbar-pocket-button =
+ .tooltiptext = Lưu vào { -pocket-brand-name }
+
+## 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 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ẻ
+
+## 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ó.
+crashed-subframe-learnmore =
+ .label = Tìm hiểu thêm
+ .accesskey = L
+crashed-subframe-submit =
+ .label = Gửi báo cáo
+ .accesskey = S
+
+## Bookmarks panels, menus and toolbar
+
+bookmarks-show-all-bookmarks =
+ .label = Xem tất cả dấu trang
+bookmarks-recent-bookmarks =
+ .value = Dấu trang gần đây
+bookmarks-manage-bookmarks =
+ .label = Quản lý dấu trang
+bookmarks-recent-bookmarks-panel =
+ .value = Dấu trang gần đây
+bookmarks-toolbar-chevron =
+ .tooltiptext = Hiện thêm các 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 =
+ .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-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
+# 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
+
+## Library Panel items
+
+library-bookmarks-menu =
+ .label = Dấu trang
+library-bookmarks-bookmark-this-page =
+ .label = Đánh dấu trang này
+library-bookmarks-bookmark-edit =
+ .label = Chỉnh sửa dấu trang này
+library-recent-activity-title =
+ .value = Hoạt động gần đây
+
+## More items
+
+more-menu-go-offline =
+ .label = Làm việc ngoại tuyến
+ .accesskey = k
diff --git a/l10n-vi/browser/browser/browserContext.ftl b/l10n-vi/browser/browser/browserContext.ftl
new file mode 100644
index 0000000000..021df86ae0
--- /dev/null
+++ b/l10n-vi/browser/browser/browserContext.ftl
@@ -0,0 +1,339 @@
+# 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
+
+main-context-menu-back =
+ .tooltiptext = Trở lại trang trước
+ .aria-label = Quay lại
+ .accesskey = B
+navbar-tooltip-back =
+ .value = { main-context-menu-back.tooltiptext }
+toolbar-button-back =
+ .label = { main-context-menu-back.aria-label }
+# 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
+navbar-tooltip-back-2 =
+ .value = { main-context-menu-back-2.tooltiptext }
+toolbar-button-back-2 =
+ .label = { main-context-menu-back-2.aria-label }
+
+## Forward
+
+main-context-menu-forward =
+ .tooltiptext = Tiến đến một trang
+ .aria-label = Tiếc tục
+ .accesskey = F
+navbar-tooltip-forward =
+ .value = { main-context-menu-forward.tooltiptext }
+toolbar-button-forward =
+ .label = { main-context-menu-forward.aria-label }
+# 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
+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
+toolbar-button-reload =
+ .label = { main-context-menu-reload.aria-label }
+
+## Stop
+
+main-context-menu-stop =
+ .aria-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 }
+
+## Save Page
+
+main-context-menu-page-save =
+ .label = Lưu trang dưới dạng…
+ .accesskey = P
+toolbar-button-page-save =
+ .label = { main-context-menu-page-save.label }
+
+## 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
+# 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 trang đánh dấu 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 trang đánh dấu này ({ $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ở lên kết trong thẻ chứa mới
+ .accesskey = b
+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-this-link =
+ .label = Đánh dấu liên kết này
+ .accesskey = L
+main-context-menu-save-link =
+ .label = Lưu liên kết tới…
+ .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 Location" 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-link =
+ .label = Sao chép địa chỉ liên kết
+ .accesskey = a
+
+## 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 =
+ .label = Tốc độ phát
+ .accesskey = d
+main-context-menu-media-play-speed-slow =
+ .label = Chậm (0,5×)
+ .accesskey = S
+main-context-menu-media-play-speed-normal =
+ .label = Bình thường
+ .accesskey = N
+main-context-menu-media-play-speed-fast =
+ .label = Nhanh (1,25×)
+ .accesskey = F
+main-context-menu-media-play-speed-faster =
+ .label = Nhanh hơn (1,5×)
+ .accesskey = a
+# "Ludicrous" is a reference to the movie "Space Balls" and is meant
+# to say that this speed is very fast.
+main-context-menu-media-play-speed-fastest =
+ .label = Rất nhanh (2×)
+ .accesskey = L
+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 các đ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-pip =
+ .label = 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 =
+ .label = Xem ảnh
+ .accesskey = I
+main-context-menu-video-view =
+ .label = Xem Video
+ .accesskey = I
+main-context-menu-image-copy =
+ .label = Sao chép ảnh
+ .accesskey = y
+main-context-menu-image-copy-location =
+ .label = Sao chép địa chỉ ảnh
+ .accesskey = o
+main-context-menu-video-copy-location =
+ .label = Sao chép địa chỉ video
+ .accesskey = o
+main-context-menu-audio-copy-location =
+ .label = Sao chép địa chỉ â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-as-background =
+ .label = Đặt làm hình nền desktop…
+ .accesskey = S
+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 tới…
+ .accesskey = v
+main-context-menu-audio-save-as =
+ .label = Lưu audio tới…
+ .accesskey = v
+main-context-menu-video-image-save-as =
+ .label = Lưu ảnh chụp màn hình dưới dạng…
+ .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
+main-context-menu-view-background-image =
+ .label = Xem ảnh nền
+ .accesskey = w
+main-context-menu-generate-new-password =
+ .label = Sử dụng mật khẩu được tạo…
+ .accesskey = G
+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 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-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-view-selection-source =
+ .label = Xem mã nguồn của đoạn bôi đen
+ .accesskey = e
+main-context-menu-view-page-source =
+ .label = Xem mã nguồn trang
+ .accesskey = V
+main-context-menu-view-page-info =
+ .label = Xem thông tin trang
+ .accesskey = I
+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-element =
+ .label = Kiểm tra phần tử HTML
+ .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
diff --git a/l10n-vi/browser/browser/browserSets.ftl b/l10n-vi/browser/browser/browserSets.ftl
new file mode 100644
index 0000000000..b8fbe3d63b
--- /dev/null
+++ b/l10n-vi/browser/browser/browserSets.ftl
@@ -0,0 +1,180 @@
+# 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-all-shortcut =
+ .key =
+ { PLATFORM() ->
+ [linux] o
+ *[other] b
+ }
+# 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 = -
+# If in keyboard layouts popular for your locale you need to use the shift key
+# to access the original shortcuts, the following shortcuts can be used.
+# Otherwise their values should remain empty.
+full-zoom-reduce-shortcut-alt =
+ .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/customizeMode.ftl b/l10n-vi/browser/browser/customizeMode.ftl
new file mode 100644
index 0000000000..1b2089fe21
--- /dev/null
+++ b/l10n-vi/browser/browser/customizeMode.ftl
@@ -0,0 +1,47 @@
+# 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-lwthemes-menu-manage =
+ .label = Quản lý
+ .accesskey = M
+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-extra-drag-space =
+ .label = Kéo khoảng trắng
+customize-mode-lwthemes =
+ .label = Chủ đề
+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 =
+ .label = Làm gọn
+ .accesskey = C
+ .tooltiptext = Làm gọn
+customize-mode-lwthemes-menu-get-more =
+ .label = Tải thêm các chủ đề
+ .accesskey = G
+customize-mode-undo-cmd =
+ .label = Hoàn tác
+customize-mode-lwthemes-my-themes =
+ .value = Chủ đề của tôi
+customize-mode-touchbar-cmd =
+ .label = Tùy biến Touch Bar…
diff --git a/l10n-vi/browser/browser/defaultBrowserNotification.ftl b/l10n-vi/browser/browser/defaultBrowserNotification.ftl
new file mode 100644
index 0000000000..53af12800d
--- /dev/null
+++ b/l10n-vi/browser/browser/defaultBrowserNotification.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/.
+
+# 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
diff --git a/l10n-vi/browser/browser/downloads.ftl b/l10n-vi/browser/browser/downloads.ftl
new file mode 100644
index 0000000000..f725bd3764
--- /dev/null
+++ b/l10n-vi/browser/browser/downloads.ftl
@@ -0,0 +1,166 @@
+# 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-list =
+ .style = width: 70ch
+
+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ỏ
+
+# This message is only displayed on Windows and Linux devices
+downloads-cmd-show-menuitem =
+ .label = Mở thư mục chứa
+ .accesskey = m
+
+# This message is only displayed on macOS devices
+downloads-cmd-show-menuitem-mac =
+ .label = Hiển thị trong Finder
+ .accesskey = F
+
+downloads-cmd-use-system-default =
+ .label = Mở trong Trình xem hệ thống
+ .accesskey = V
+
+downloads-cmd-always-use-system-default =
+ .label = Luôn mở trong Trình xem hệ thống
+ .accesskey = w
+
+downloads-cmd-show-button =
+ .tooltiptext =
+ { PLATFORM() ->
+ [macos] Hiển thị trong Finder
+ *[other] Mở thư mục chứa
+ }
+
+downloads-cmd-show-panel =
+ .aria-label =
+ { PLATFORM() ->
+ [macos] Hiển thị trong Finder
+ *[other] Mở thư mục chứa
+ }
+downloads-cmd-show-description =
+ .value =
+ { PLATFORM() ->
+ [macos] Hiển thị trong Finder
+ *[other] Mở thư mục chứa
+ }
+
+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
+
+# 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ê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 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
+
+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.
diff --git a/l10n-vi/browser/browser/editBookmarkOverlay.ftl b/l10n-vi/browser/browser/editBookmarkOverlay.ftl
new file mode 100644
index 0000000000..9582cd475f
--- /dev/null
+++ b/l10n-vi/browser/browser/editBookmarkOverlay.ftl
@@ -0,0 +1,42 @@
+# 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 =
+ .value = Tên:
+ .accesskey = n
+
+bookmark-overlay-location =
+ .value = Địa chỉ:
+ .accesskey = a
+
+bookmark-overlay-folder =
+ .value = Thư mục:
+
+bookmark-overlay-choose =
+ .label = Chọn…
+
+bookmark-overlay-folders-expander =
+ .tooltiptext = Hiện 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 =
+ .value = Nhãn:
+ .accesskey = h
+
+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 tất cả các nhãn
+ .tooltiptextdown = { bookmark-overlay-tags-expander.tooltiptext }
+ .tooltiptextup = Ẩn
+
+bookmark-overlay-keyword =
+ .value = Từ khóa
+ .accesskey = k
diff --git a/l10n-vi/browser/browser/menubar.ftl b/l10n-vi/browser/browser/menubar.ftl
new file mode 100644
index 0000000000..09400dbccc
--- /dev/null
+++ b/l10n-vi/browser/browser/menubar.ftl
@@ -0,0 +1,349 @@
+# 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-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 }
+# This menu-quit-button string is only used on Linux.
+menu-quit-button =
+ .label = { menu-quit.label }
+# This menu-quit-button-win string is only used on Windows.
+menu-quit-button-win =
+ .label = { menu-quit.label }
+ .tooltip = 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
+menu-file-close =
+ .label = Đóng
+ .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-print-setup =
+ .label = Thiết lập trang…
+ .accesskey = u
+menu-file-print-preview =
+ .label = Xem trước trang in
+ .accesskey = v
+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-on =
+ .label = Tìm trong trang này…
+ .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-toolbar =
+ .label = Tùy biến…
+ .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-charset =
+ .label = Bảng mã 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
+
+##
+
+menu-view-show-all-tabs =
+ .label = Hiện 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-show-all =
+ .label = Xem tất cả dấu trang
+menu-bookmark-this-page =
+ .label = Đánh dấu trang này
+menu-bookmark-edit =
+ .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 =
+ .label = Tiện ích
+ .accesskey = A
+menu-tools-fxa-sign-in =
+ .label = Đăng nhập vào { -brand-product-name }…
+ .accesskey = g
+menu-tools-turn-on-sync =
+ .label = Bật { -sync-brand-short-name }…
+ .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-web-developer =
+ .label = Nhà phát triển Web
+ .accesskey = W
+menu-tools-page-source =
+ .label = Mở mã nguồn trang
+ .accesskey = o
+menu-tools-page-info =
+ .label = Thông tin về trang này
+ .accesskey = I
+menu-preferences =
+ .label =
+ { PLATFORM() ->
+ [windows] Tùy chọn
+ *[other] Tùy chỉnh
+ }
+ .accesskey =
+ { PLATFORM() ->
+ [windows] O
+ *[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-help-product
+#
+# These strings are duplicated to allow for different casing depending on
+# where the strings appear.
+
+
+# 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-help-product =
+ .label = Trợ giúp { -brand-shorter-name }
+ .accesskey = H
+menu-help-show-tour =
+ .label = Các tính năng cơ bản của { -brand-shorter-name }
+ .accesskey = o
+menu-help-import-from-another-browser =
+ .label = Nhập dữ liệu từ trình duyệt khác…
+ .accesskey = I
+menu-help-keyboard-shortcuts =
+ .label = Các phím tắt bàn phím
+ .accesskey = K
+menu-get-help =
+ .label = Nhận trợ giúp
+ .accesskey = H
+menu-help-troubleshooting-info =
+ .label = Thông tin xử lý sự cố
+ .accesskey = T
+menu-help-taskmanager =
+ .label = Quản lý tác vụ
+menu-help-feedback-page =
+ .label = Gửi phản hồi…
+ .accesskey = S
+menu-help-safe-mode-without-addons =
+ .label = Khởi động lại và vô hiệu hóa các tiện ích…
+ .accesskey = R
+menu-help-safe-mode-with-addons =
+ .label = Khởi động lại và kích hoạt các tiện ích
+ .accesskey = R
+# 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
+menu-help-check-for-update =
+ .label = Kiểm tra cập nhật…
+ .accesskey = C
diff --git a/l10n-vi/browser/browser/migration.ftl b/l10n-vi/browser/browser/migration.ftl
new file mode 100644
index 0000000000..3598e4a898
--- /dev/null
+++ b/l10n-vi/browser/browser/migration.ftl
@@ -0,0 +1,148 @@
+# 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-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
+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.
+# Displays which browser the bookmarks are being imported from
+#
+# Variables:
+# $source (String): The browser the user has chosen to import bookmarks from.
+imported-bookmarks-source = Từ { $source }
+source-name-ie = Internet Explorer
+source-name-edge = Microsoft Edge
+source-name-edge-beta = Microsoft Edge Beta
+source-name-safari = Safari
+source-name-canary = Google Chrome Canary
+source-name-chrome = Google Chrome
+source-name-chrome-beta = Google Chrome Beta
+source-name-chrome-dev = Google Chrome Dev
+source-name-chromium = Chromium
+source-name-firefox = Mozilla Firefox
+source-name-360se = 360 Secure Browser
+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] Trang ưa thích
+ [edge] Trang ưa thích
+ *[other] Trang đánh dấu
+ }
+browser-data-bookmarks-label =
+ .value =
+ { $browser ->
+ [ie] Trang ưa thích
+ [edge] Trang ưa thích
+ *[other] Trang đánh dấu
+ }
+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/newInstallPage.ftl b/l10n-vi/browser/browser/newInstallPage.ftl
new file mode 100644
index 0000000000..708dd64f6b
--- /dev/null
+++ b/l10n-vi/browser/browser/newInstallPage.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/.
+
+
+### For this feature, "installation" is used to mean "this discrete download of
+### Firefox" and "version" is used to mean "the specific revision number of a
+### given Firefox channel". These terms are not synonymous.
+
+title = Tin tức quan trọng
+heading = Thay đổi đối với hồ sơ { -brand-short-name } của bạn
+
+changed-title = Những gì đã thay đổi?
+changed-desc-profiles = Bản cài đặt { -brand-short-name } này có cấu hình mới. Cấu hình là tập hợp các tệp mà Firefox lưu thông tin như dấu trang, mật khẩu và tùy chọn người dùng.
+changed-desc-dedicated = Để giúp dễ dàng và an toàn hơn khi chuyển đổi giữa các bản cài đặt Firefox (bao gồm Firefox, Firefox ESR, Firefox Beta, Firefox dành cho nhà phát triển và Firefox Nightly), bản cài đặt này hiện có một cấu hình chuyên dụng. Nó không tự động chia sẻ thông tin đã lưu của bạn với các bản cài đặt Firefox khác.
+
+lost = Bạn chưa mất bất kỳ dữ liệu cá nhân hoặc tùy chỉnh nào. Nếu bạn đã lưu thông tin vào Firefox trên máy tính này, nó vẫn có sẵn trong một bản cài đặt Firefox khác.
+
+options-title = Tôi có những lựa chọn gì?
+options-do-nothing = Nếu bạn không làm gì, dữ liệu hồ sơ của bạn trong { -brand-short-name } sẽ khác với dữ liệu hồ sơ trong các bản cài đặt khác của Firefox.
+options-use-sync = Nếu bạn muốn tất cả dữ liệu hồ sơ của mình giống nhau trên tất cả các cài đặt của Firefox, bạn có thể sử dụng { -fxaccount-brand-name } để giữ chúng đồng bộ hóa.
+
+resources = Tài nguyên:
+support-link = Sử dụng trình quản lý hồ sơ - Bài viết hỗ trợ
+
+sync-header = Đăng nhập hoặc tạo { -fxaccount-brand-name }
+sync-label = Nhập email của bạn
+sync-input =
+ .placeholder = Email
+sync-button = Tiếp tục
+sync-terms = Bằng cách tiếp tục, bạn đồng ý với điều khoản dịch vụ và thông báo bảo mật.
+sync-first = Lần đầu tiên sử dụng { -sync-brand-name }? Bạn sẽ cần đăng nhập vào mọi cài đặt Firefox để đồng bộ hóa thông tin của bạn.
+sync-learn = Tìm hiểu thêm
diff --git a/l10n-vi/browser/browser/newtab/asrouter.ftl b/l10n-vi/browser/browser/newtab/asrouter.ftl
new file mode 100644
index 0000000000..5b78bb70c0
--- /dev/null
+++ b/l10n-vi/browser/browser/newtab/asrouter.ftl
@@ -0,0 +1,300 @@
+# 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-pintab-heading = Hãy thử cái này: Ghim thẻ
+
+##
+
+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-pintab-ok-button = Ghim thẻ này
+ .accesskey = P
+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
+ }
+cfr-doorhanger-pintab-description = Dễ dàng truy cập vào các trang web được sử dụng nhiều nhất của bạn. Giữ các trang web mở trong một thẻ (ngay cả khi bạn khởi động lại).
+
+## These messages are steps on how to use the feature and are shown together.
+
+cfr-doorhanger-pintab-step1 = Nhấp chuột phải trên thẻ bạn muốn ghim.
+cfr-doorhanger-pintab-step2 = Chọn Ghim thẻ từ menu.
+cfr-doorhanger-pintab-step3 = Nếu trang web có bản cập nhật, bạn sẽ thấy một chấm màu xanh trên thẻ được ghim.
+cfr-doorhanger-pintab-animation-pause = Tạm dừng
+cfr-doorhanger-pintab-animation-resume = Tiếp tục
+
+## 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-panel-header = Có gì mới
+cfr-whatsnew-release-notes-link-text = Đọc ghi chú phát hành
+cfr-whatsnew-fx70-title = { -brand-short-name } bây giờ chiến đấu mạnh mẽ hơn cho quyền riêng tư của bạn
+cfr-whatsnew-fx70-body =
+ Bản cập nhật mới nhất nâng cao tính năng chống theo dõi và làm cho nó
+ dễ dàng hơn bao giờ hết để tạo mật khẩu an toàn cho mọi trang web.
+cfr-whatsnew-tracking-protect-title = Bảo vệ bạn khỏi trình theo dõi
+cfr-whatsnew-tracking-protect-body =
+ { -brand-short-name } chặn nhiều trình theo dõi xã hội và trang web phổ biến mà
+ nó theo dõi những gì bạn làm trực tuyến
+cfr-whatsnew-tracking-protect-link-text = Xem báo cáo của bạn
+# This string is displayed before a large numeral that indicates the total
+# number of tracking elements blocked. Don’t add $blockedCount to your
+# localization, because it would result in the number showing twice.
+cfr-whatsnew-tracking-blocked-title =
+ { $blockedCount ->
+ *[other] Trình theo dõi đã chặn
+ }
+cfr-whatsnew-tracking-blocked-subtitle = Từ { DATETIME($earliestDate, month: "long", year: "numeric") }
+cfr-whatsnew-tracking-blocked-link-text = Xem báo cáo
+cfr-whatsnew-lockwise-backup-title = Sao lưu mật khẩu của bạn
+cfr-whatsnew-lockwise-backup-body = Bây giờ tạo mật khẩu an toàn, bạn có thể truy cập bất cứ nơi nào bạn đăng nhập.
+cfr-whatsnew-lockwise-backup-link-text = Bật sao lưu
+cfr-whatsnew-lockwise-take-title = Mang mật khẩu theo bên bạn
+cfr-whatsnew-lockwise-take-body =
+ Ứng dụng di động { -lockwise-brand-short-name } cho phép bạn truy cập an toàn
+ mật khẩu được sao lưu từ bất cứ đâu.
+cfr-whatsnew-lockwise-take-link-text = Tải ứng dụng
+
+## Search Bar
+
+cfr-whatsnew-searchbar-title = Nhập ít hơn, tìm nhiều hơn với thanh địa chỉ
+cfr-whatsnew-searchbar-body-topsites = Bây giờ, chỉ cần chọn thanh địa chỉ và một hộp sẽ mở rộng với các liên kết đến các trang web hàng đầu của bạn.
+
+## Search bar
+
+cfr-whatsnew-searchbar-icon-alt-text = Biểu tượng kính lúp
+
+## Picture-in-Picture
+
+cfr-whatsnew-pip-header = Xem video trong khi bạn duyệt
+cfr-whatsnew-pip-body = Hình trong hình bật video vào một cửa sổ nổi để bạn có thể xem trong khi làm việc trong các thẻ khác.
+cfr-whatsnew-pip-cta = Tìm hiểu thêm
+
+## Permission Prompt
+
+cfr-whatsnew-permission-prompt-header = Ít trang web gây phiền nhiễu hơn
+cfr-whatsnew-permission-prompt-body = { -brand-shorter-name } hiện chặn các trang web tự động yêu cầu gửi cho bạn thông báo bật lên.
+cfr-whatsnew-permission-prompt-cta = Tìm hiểu thêm
+
+## Fingerprinter Counter
+
+# This string is displayed before a large numeral that indicates the total
+# number of tracking elements blocked. Don’t add $fingerprinterCount to your
+# localization, because it would result in the number showing twice.
+cfr-whatsnew-fingerprinter-counter-header =
+ { $fingerprinterCount ->
+ *[other] Dấu vết bị chặn
+ }
+cfr-whatsnew-fingerprinter-counter-body = { -brand-shorter-name } chặn nhiều trang lấy dấu vết để bí mật thu thập thông tin về thiết bị và hành động của bạn để tạo hồ sơ quảng cáo về bạn.
+# Message variation when fingerprinters count is less than 10
+cfr-whatsnew-fingerprinter-counter-header-alt = Dấu vết
+cfr-whatsnew-fingerprinter-counter-body-alt = { -brand-shorter-name } có thể chặn những trang lấy dấu vết để bí mật thu thập thông tin về thiết bị và hành động của bạn để tạo hồ sơ quảng cáo về bạn.
+
+## Bookmark Sync
+
+cfr-doorhanger-sync-bookmarks-header = Nhận dấu trang này trên điện thoại của bạn
+cfr-doorhanger-sync-bookmarks-body = Nhận dấu trang, mật khẩu, lịch sử của bạn và nhiều nơi khác mà bạn đã đăng nhập vào { -brand-product-name }.
+cfr-doorhanger-sync-bookmarks-ok-button = Bật { -sync-brand-short-name }
+ .accesskey = T
+
+## Login Sync
+
+cfr-doorhanger-sync-logins-header = Không bao giờ mất mật khẩu lần nữa
+cfr-doorhanger-sync-logins-body = 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.
+cfr-doorhanger-sync-logins-ok-button = Bật { -sync-brand-short-name }
+ .accesskey = T
+
+## Send Tab
+
+cfr-doorhanger-send-tab-header = Đọc cái này khi đang di chuyển
+cfr-doorhanger-send-tab-recipe-header = Mang công thức này vào bếp
+cfr-doorhanger-send-tab-body = Gửi thẻ cho phép bạn dễ dàng chia sẻ liên kết này với điện thoại của mình hoặc bất cứ nơi nào bạn đăng nhập vào { -brand-product-name }.
+cfr-doorhanger-send-tab-ok-button = Thử trình gửi thẻ
+ .accesskey = T
+
+## Firefox Send
+
+cfr-doorhanger-firefox-send-header = Chia sẻ PDF này một cách an toàn
+cfr-doorhanger-firefox-send-body = Giữ các tài liệu nhạy cảm của bạn an toàn khỏi những con mắt tò mò với mã hóa đầu cuối và một liên kết sẽ biến mất khi bạn thực hiện xong.
+cfr-doorhanger-firefox-send-ok-button = Thử { -send-brand-name }
+ .accesskey = T
+
+## Social Tracking Protection
+
+cfr-doorhanger-socialtracking-ok-button = Xem mục bảo vệ
+ .accesskey = P
+cfr-doorhanger-socialtracking-close-button = Đóng
+ .accesskey = C
+cfr-doorhanger-socialtracking-dont-show-again = Đừng hiện cho tôi những tin này nữa
+ .accesskey = D
+cfr-doorhanger-socialtracking-heading = { -brand-short-name } đã dừng mạng xã hội mà nó theo dõi bạn tại đây
+cfr-doorhanger-socialtracking-description = Vấn đề riêng tư của bạn. { -brand-short-name } hiện chặn các trình theo dõi phương tiện truyền thông xã hội phổ biến, giới hạn số lượng dữ liệu họ có thể thu thập về những gì bạn làm trực tuyến.
+cfr-doorhanger-fingerprinters-heading = { -brand-short-name } đã chặn một dấu vết trên trang này
+cfr-doorhanger-fingerprinters-description = Vấn đề riêng tư của bạn. { -brand-short-name } hiện chặn các dấu vết, mà nó thu thập các mẫu thông tin nhận dạng duy nhất về thiết bị của bạn để theo dõi bạn.
+cfr-doorhanger-cryptominers-heading = { -brand-short-name } đã chặn một loại tiền điện tử trên trang này
+cfr-doorhanger-cryptominers-description = Vấn đề riêng tư của bạn. { -brand-short-name } hiện chặn các loại tiền điện tử, mà nó 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ố.
+
+## Enhanced Tracking Protection Milestones
+
+# Variables:
+# $blockedCount (Number) - The total count of blocked trackers. This number will always be greater than 1.
+# $date (Number) - The date we began recording the count of blocked trackers
+cfr-doorhanger-milestone-heading =
+ { $blockedCount ->
+ *[other] { -brand-short-name } đã chặn hơn { $blockedCount } trình theo dõi từ { $date }!
+ }
+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
+
+## What’s New Panel Content for Firefox 76
+
+
+## Lockwise message
+
+cfr-whatsnew-lockwise-header = Dễ dàng tạo mật khẩu an toàn
+cfr-whatsnew-lockwise-body = Thật khó để nghĩ về mật khẩu độc đáo, an toàn cho mọi tài khoản. Khi tạo mật khẩu, chọn trường mật khẩu để sử dụng mật khẩu được tạo an toàn từ { -brand-shorter-name }.
+cfr-whatsnew-lockwise-icon-alt = Biểu tượng { -lockwise-brand-short-name }
+
+## Vulnerable Passwords message
+
+cfr-whatsnew-passwords-header = Nhận thông báo về mật khẩu dễ bị tấn công
+cfr-whatsnew-passwords-body = Tin tặc biết mọi người sử dụng lại cùng một mật khẩu. Nếu bạn đã sử dụng cùng một mật khẩu trên nhiều trang web và một trong những trang web đó đã bị rò rỉ dữ liệu, bạn sẽ thấy một cảnh báo trong { -lockwise-brand-short-name } để thay đổi mật khẩu của bạn trên các trang web đó.
+cfr-whatsnew-passwords-icon-alt = Biểu tượng khóa mật khẩu dễ bị tổn thương
+
+## Picture-in-Picture fullscreen message
+
+cfr-whatsnew-pip-fullscreen-header = Làm cho hình trong hình toàn màn hình
+cfr-whatsnew-pip-fullscreen-body = Khi bạn bật video vào một cửa sổ nổi, bây giờ bạn có thể nhấp đúp vào cửa sổ đó để vào chế độ toàn màn hình.
+cfr-whatsnew-pip-fullscreen-icon-alt = Biểu tượng hình trong hình
+
+## Protections Dashboard message
+
+cfr-whatsnew-protections-header = Bảo vệ trong nháy mắt
+cfr-whatsnew-protections-body = Bảng điều khiển bảo vệ bao gồm các báo cáo tóm tắt về rò rỉ dữ liệu và quản lý mật khẩu. Bây giờ bạn có thể theo dõi có bao nhiêu rò rỉ mà bạn đã giải quyết và xem liệu bất kỳ mật khẩu đã lưu nào của bạn có thể bị lộ trong một rò rỉ dữ liệu hay không.
+cfr-whatsnew-protections-cta-link = Xem bảng điều khiển bảo vệ
+cfr-whatsnew-protections-icon-alt = Biểu tượng khiên
+
+## Better PDF message
+
+cfr-whatsnew-better-pdf-header = Trải nghiệm PDF tốt hơn
+cfr-whatsnew-better-pdf-body = Tài liệu PDF hiện mở trực tiếp bằng { -brand-short-name }, giữ cho công việc của bạn trong tầm tay dễ dàng.
+
+## 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 = OK, đã hiểu
+ .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
+
+## What's new: Cookies message
+
+cfr-whatsnew-clear-cookies-header = Bảo vệ tự động, không có theo dõi ẩn
+cfr-whatsnew-clear-cookies-body = Một số trình theo dõi chuyển hướng bạn đến các trang web khác bí mật đặt cookie. { -brand-short-name } bây giờ sẽ tự động xóa các cookie đó để bạn không thể bị theo dõi.
+cfr-whatsnew-clear-cookies-image-alt = Minh họa về cookie bị chặn
+
+## What's new: Media controls message
+
+cfr-whatsnew-media-keys-header = Điều khiển phương tiện khác
+cfr-whatsnew-media-keys-body = Phát và tạm dừng âm thanh hoặc video ngay từ bàn phím hoặc tai nghe của bạn, giúp bạn dễ dàng điều khiển phương tiện từ thẻ, chương trình khác hoặc ngay cả khi máy tính của bạn bị khóa. Bạn cũng có thể di chuyển giữa các bản nhạc bằng cách sử dụng các phím tiến và lùi.
+cfr-whatsnew-media-keys-button = Tìm hiểu cách thức
+
+## What's new: Search shortcuts
+
+cfr-whatsnew-search-shortcuts-header = Tìm kiếm các phím tắt trong thanh địa chỉ
+cfr-whatsnew-search-shortcuts-body = Bây giờ, khi bạn nhập công cụ tìm kiếm hoặc trang web cụ thể vào thanh địa chỉ, một phím tắt màu xanh lam sẽ xuất hiện trong các đề xuất tìm kiếm bên dưới. Chọn lối tắt đó để hoàn tất tìm kiếm của bạn trực tiếp từ thanh địa chỉ.
+
+## What's new: Cookies protection
+
+cfr-whatsnew-supercookies-header = Bảo vệ khỏi supercookie độc hại
+cfr-whatsnew-supercookies-body = Các trang web có thể bí mật đính kèm một “supercookie” vào trình duyệt của bạn để có thể theo dõi bạn trên khắp trang web, ngay cả sau khi bạn xóa cookie của mình. { -brand-short-name } hiện cung cấp khả năng bảo vệ mạnh mẽ chống lại các supercookie để chúng không thể được sử dụng để theo dõi các hoạt động trực tuyến của bạn từ trang web này sang trang web khác.
+
+## What's new: Better bookmarking
+
+cfr-whatsnew-bookmarking-header = Đánh dấu trang tốt hơn
+cfr-whatsnew-bookmarking-body = Theo dõi các trang web yêu thích của bạn dễ dàng hơn. Bây giờ { -brand-short-name } nhớ vị trí ưa thích của bạn cho các dấu trang đã lưu, hiển thị thanh công cụ dấu trang theo mặc định trên các thẻ mới và cho phép bạn dễ dàng truy cập vào phần còn lại của dấu trang thông qua thư mục thanh công cụ.
+
+## What's new: Cross-site cookie tracking
+
+cfr-whatsnew-cross-site-tracking-header = Bảo vệ toàn diện khỏi theo dõi cookie trên nhiều trang web
+cfr-whatsnew-cross-site-tracking-body = Bây giờ bạn có thể chọn tham gia để bảo vệ tốt hơn khỏi theo dõi cookie. { -brand-short-name } có thể cô lập các hoạt động và dữ liệu của bạn với trang web bạn hiện đang truy cập, vì vậy thông tin được lưu trữ trong trình duyệt sẽ không được chia sẻ giữa các trang web.
diff --git a/l10n-vi/browser/browser/newtab/newtab.ftl b/l10n-vi/browser/browser/newtab/newtab.ftl
new file mode 100644
index 0000000000..732486392e
--- /dev/null
+++ b/l10n-vi/browser/browser/newtab/newtab.ftl
@@ -0,0 +1,241 @@
+# 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-button-label = Cá nhân hóa
+ .title = Cá nhân hóa thẻ mới
+ .aria-label = Cá nhân hóa thẻ mới
+
+## Search box component.
+
+# "Search" is a verb/action
+newtab-search-box-search-button =
+ .title = Tìm kiếm
+ .aria-label = Tìm kiếm
+newtab-search-box-search-the-web-text = Tìm trên mạng
+newtab-search-box-search-the-web-input =
+ .placeholder = Tìm trên mạng
+ .title = Tìm trên mạng
+ .aria-label = Tìm trên mạng
+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-topsites-header = Thêm trang web hàng đầu
+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 tới 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 }
+
+## 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-highlights = Nổi bật
+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 vừa truy cập 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-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.
+
+## 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-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
+# 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.
+newtab-custom-snippets-title = Ghi chú nhỏ
+newtab-custom-snippets-subtitle = Mẹo và tin tức từ { -vendor-short-name } và { -brand-product-name }
+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..02a01e8b0d
--- /dev/null
+++ b/l10n-vi/browser/browser/newtab/onboarding.ftl
@@ -0,0 +1,241 @@
+# 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 simplified onboarding modal / 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.
+
+
+## These button action text can be split onto multiple lines, so use explicit
+## newlines in translations to control where the line break appears (e.g., to
+## avoid breaking quoted text).
+
+onboarding-button-label-learn-more = Tìm hiểu thêm
+onboarding-button-label-get-started = Bắt đầu
+
+## Welcome modal dialog strings
+
+
+### UI strings for the simplified 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-welcome-body = Bạn đã có trình duyệt. Xem phần còn lại của { -brand-product-name }.
+onboarding-welcome-learn-more = Tìm hiểu thêm về các tiện ích.
+onboarding-welcome-modal-get-body = Bạn đã có trình duyệt. Bây giờ hãy tận dụng tối đa { -brand-product-name }.
+onboarding-welcome-modal-supercharge-body = Bảo vệ quyền riêng tư của bạn.
+onboarding-welcome-modal-privacy-body = Bạn đã có trình duyệt. Hãy để thêm bảo vệ quyền riêng tư.
+onboarding-welcome-modal-family-learn-more = Tìm hiểu về sản phẩm của gia đình { -brand-product-name }
+onboarding-welcome-form-header = Bắt đầu ở đây
+onboarding-join-form-body = Nhập địa chỉ thư điện tử của bạn để bắt đầu.
+onboarding-join-form-email =
+ .placeholder = Nhập thư điện tử
+onboarding-join-form-email-error = Yêu cầu thư điện tử hợp lệ
+onboarding-join-form-legal = Khi chọn tiếp tục, bạn đồng ý với điều khoản dịch vụ và thông báo bảo mật.
+onboarding-join-form-continue = Tiếp tục
+# This message is followed by a link using onboarding-join-form-signin ("Sign In") as text.
+onboarding-join-form-signin-label = Đã có một tài khoản?
+# Text for link to submit the sign in form
+onboarding-join-form-signin = Đăng nhập
+onboarding-start-browsing-button-label = Bắt đầu duyệt web
+onboarding-not-now-button-label = Không phải bây giờ
+onboarding-cards-dismiss =
+ .title = Bỏ qua
+ .aria-label = Bỏ qua
+
+## Welcome full page string
+
+onboarding-fullpage-welcome-subheader = Hãy bắt đầu khám phá mọi thứ bạn có thể làm.
+onboarding-fullpage-form-email =
+ .placeholder = Địa chỉ email của bạn…
+
+## Firefox Sync modal dialog strings.
+
+onboarding-sync-welcome-header = Mang { -brand-product-name } theo bạn
+onboarding-sync-welcome-content = Đồng bộ các dấu trang, lịch sử, mật khẩu và các cài đặt khác lên tất cả các thiết bị của bạn.
+onboarding-sync-welcome-learn-more-link = Tìm hiểu thêm về Tài khoản Firefox
+onboarding-sync-form-input =
+ .placeholder = Email
+onboarding-sync-form-continue-button = Tiếp tục
+onboarding-sync-form-skip-login-button = Bỏ qua bước này
+
+## This is part of the line "Enter your email to continue to Firefox Sync"
+
+onboarding-sync-form-header = Nhập email của bạn
+onboarding-sync-form-sub-header = để tiếp tục với { -sync-brand-name }
+
+## These are individual benefit messages shown with an image, title and
+## description.
+
+onboarding-benefit-products-text = Hoàn thành công việc với một nhóm công cụ tôn trọng quyền riêng tư của bạn trên các thiết bị của bạn.
+# "Personal Data Promise" is a concept that should be translated consistently
+# across the product. It refers to a concept shown elsewhere to the user: "The
+# Firefox Personal Data Promise is the way we honor your data in everything we
+# make and do. We take less data. We keep it safe. And we make sure that we are
+# transparent about how we use it."
+onboarding-benefit-privacy-text = Tất cả mọi thứ chúng tôi làm đều tôn vinh lời hứa dữ liệu cá nhân của chúng tôi: Lấy ít hơn. Giữ nó an toàn. Không có bí mật.
+onboarding-benefit-sync-title = { -sync-brand-short-name }
+onboarding-benefit-sync-text = Nhận dấu trang, mật khẩu, lịch sử của bạn và nhiều nơi khác mà bạn đã đăng nhập vào { -brand-product-name }.
+onboarding-benefit-monitor-title = { -monitor-brand-short-name }
+onboarding-benefit-monitor-text = Nhận thông báo khi thông tin cá nhân của bạn bị rò rỉ trong dữ liệu đã biết.
+onboarding-benefit-lockwise-title = { -lockwise-brand-short-name }
+onboarding-benefit-lockwise-text = Quản lý mật khẩu được bảo vệ và di động.
+
+## 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
+
+## Multistage 3-screen onboarding flow strings (about:welcome pages)
+
+# The in this string allows a "zap" underline style to be
+# automatically added to the text inside it. { -brand-short-name } should stay inside the span.
+onboarding-multistage-welcome-header = Chào mừng bạn đến với { -brand-short-name }
+onboarding-multistage-welcome-subtitle = Trình duyệt riêng tư nhanh chóng, an toàn và riêng tư được hỗ trợ bởi một tổ chức phi lợi nhuận.
+onboarding-multistage-welcome-primary-button-label = Bắt đầu thiết lập
+onboarding-multistage-welcome-secondary-button-label = Đăng nhập
+onboarding-multistage-welcome-secondary-button-text = Đã có một tài khoản?
+# The in this string allows a "zap" underline style to be
+# automatically added to the text inside it. "more" should stay inside the span.
+onboarding-multistage-import-header = Nhập mật khẩu, dấu trang và hơn thế nữa
+onboarding-multistage-import-subtitle = Đã sử dụng một trình duyệt khác? Rất dễ dàng để mang mọi thứ đến { -brand-short-name }.
+onboarding-multistage-import-primary-button-label = Bắt đầu nhập
+onboarding-multistage-import-secondary-button-label = Không phải bây giờ
+# Info displayed in the footer of import settings screen during onboarding flow.
+# This supports welcome screen showing top sites imported from the user's default browser.
+onboarding-import-sites-disclaimer = Các trang web được liệt kê ở đây đã được tìm thấy trên thiết bị này. { -brand-short-name } không lưu hoặc đồng bộ hóa dữ liệu từ trình duyệt khác trừ khi bạn chọn nhập nó.
+# 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 }
+# The in this string allows a "zap" underline style to be
+# automatically added to the text inside it. "look" should stay inside the span.
+onboarding-multistage-theme-header = Chọn một cách nhìn
+onboarding-multistage-theme-subtitle = Cá nhân hóa { -brand-short-name } với một chủ đề.
+onboarding-multistage-theme-primary-button-label = Lưu chủ đề
+onboarding-multistage-theme-secondary-button-label = Không phải bây giờ
+# Automatic theme uses operating system color settings
+onboarding-multistage-theme-label-automatic = Tự động
+onboarding-multistage-theme-label-light = Sáng
+onboarding-multistage-theme-label-dark = Tối
+# "Firefox Alpenglow" here is the name of the theme, and should be kept in English.
+onboarding-multistage-theme-label-alpenglow = Firefox Alpenglow
+
+## 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 automatic theme
+onboarding-multistage-theme-tooltip-automatic-2 =
+ .title =
+ Kế thừa sự xuất hiện của hệ điều hành
+ của bạn cho các nút, menu và cửa sổ.
+# Input description for automatic theme
+onboarding-multistage-theme-description-automatic-2 =
+ .aria-description =
+ Kế thừa sự xuất hiện của hệ điều hành
+ của bạn cho các nút, menu và cửa sổ.
+# Tooltip displayed on hover of light theme
+onboarding-multistage-theme-tooltip-light-2 =
+ .title =
+ Sử dụng giao diện sáng cho các nút,
+ menu và cửa sổ.
+# Input description for light theme
+onboarding-multistage-theme-description-light =
+ .aria-description =
+ Sử dụng giao diện sáng cho các nút,
+ menu và cửa sổ.
+# Tooltip displayed on hover of dark theme
+onboarding-multistage-theme-tooltip-dark-2 =
+ .title =
+ Sử dụng giao diện tối cho các nút,
+ menu và cửa sổ.
+# Input description for dark theme
+onboarding-multistage-theme-description-dark =
+ .aria-description =
+ Sử dụng giao diện tối cho các nút,
+ menu và cửa sổ.
+# Tooltip displayed on hover of Alpenglow theme
+onboarding-multistage-theme-tooltip-alpenglow-2 =
+ .title =
+ Sử dụng giao diện đầy màu sắc cho các nút,
+ menu và cửa sổ
+# Input description for Alpenglow theme
+onboarding-multistage-theme-description-alpenglow =
+ .aria-description =
+ Sử dụng giao diện đầy màu sắc cho các nút,
+ menu và cửa sổ
+
+## These strings belong to the individual onboarding messages.
+
+
+## Each message has a title and a description of what the browser feature is.
+## Each message also has an associated button for the user to try the feature.
+## The string for the button is found above, in the UI strings section
+
+onboarding-tracking-protection-title2 = Bảo vệ khỏi trình theo dõi
+onboarding-tracking-protection-text2 = { -brand-short-name } giúp ngăn các trang web theo dõi bạn trực tuyến, khiến quảng cáo khó theo dõi bạn hơn trên web.
+onboarding-tracking-protection-button2 = Nó hoạt động như thế nào
+onboarding-data-sync-title = Mang theo các cài đặt của bạn
+# "Sync" is short for synchronize.
+onboarding-data-sync-text2 = Đồng bộ hóa dấu trang, mật khẩu và hơn thế nữa ở mọi nơi bạn sử dụng { -brand-product-name }.
+onboarding-data-sync-button2 = Đăng nhập vào { -sync-brand-short-name }
+onboarding-firefox-monitor-title = Cảnh báo về vi phạm dữ liệu
+onboarding-firefox-monitor-text2 = { -monitor-brand-name } giám sát nếu email của bạn xuất hiện trong vụ rò rỉ dữ liệu đã biết và thông báo cho bạn nếu nó xuất hiện trong vụ rò rỉ mới.
+onboarding-firefox-monitor-button = Đăng ký thông báo
+onboarding-browse-privately-title = Duyệt web riêng tư hơn
+onboarding-browse-privately-text = Duyệt web riêng tư sẽ xóa lịch sử tìm kiếm và duyệt web của bạn để giữ bí mật với bất kỳ ai sử dụng máy tính của bạn.
+onboarding-browse-privately-button = Mở một cửa sổ riêng tư
+onboarding-firefox-send-title = Giữ các tập tin bạn chia sẻ ở chế độ riêng tư
+onboarding-firefox-send-text2 = Tải tập tin của bạn lên { -send-brand-name } để chia sẻ chúng với mã hóa đầu cuối và liên kết tự động hết hạn.
+onboarding-firefox-send-button = Thử { -send-brand-name }
+onboarding-mobile-phone-title = Tải { -brand-product-name } trên điện thoại của bạn
+onboarding-mobile-phone-text = Tải xuống { -brand-product-name } cho iOS hoặc Android và đồng bộ dữ liệu của bạn trên các thiết bị khác nhau.
+# "Mobile" is short for mobile/cellular phone, "Browser" is short for web
+# browser.
+onboarding-mobile-phone-button = Tải về trình duyệt di động
+onboarding-send-tabs-title = Gửi ngay cho chính mình các thẻ
+# "Send Tabs" refers to "Send Tab to Device" feature that appears when opening a
+# tab's context menu.
+onboarding-send-tabs-text2 = Dễ dàng chia sẻ các trang giữa các thiết bị của bạn mà không phải sao chép liên kết hoặc rời khỏi trình duyệt.
+onboarding-send-tabs-button = Bắt đầu sử dụng trình gửi thẻ
+onboarding-pocket-anywhere-title = Đọc và nghe mọi nơi
+onboarding-pocket-anywhere-text2 = Lưu nội dung yêu thích của bạn ngoại tuyến với ứng dụng { -pocket-brand-name } và đọc, nghe và xem bất cứ khi nào nó tiện lợi cho bạn.
+onboarding-pocket-anywhere-button = Thử { -pocket-brand-name }
+onboarding-lockwise-strong-passwords-title = Tạo và lưu trữ mật khẩu mạnh
+onboarding-lockwise-strong-passwords-text = { -lockwise-brand-name } tạo mật khẩu mạnh ngay tại chỗ và lưu tất cả chúng vào một nơi.
+onboarding-lockwise-strong-passwords-button = Quản lý thông tin đăng nhập của bạn
+onboarding-facebook-container-title = Đặt ranh giới với Facebook
+onboarding-facebook-container-text2 = { -facebook-container-brand-name } giữ cho hồ sơ của bạn tách biệt với mọi thứ khác, khiến Facebook khó nhắm mục tiêu quảng cáo của bạn hơn.
+onboarding-facebook-container-button = Thêm phần mở rộng
+onboarding-import-browser-settings-title = Nhập dấu trang, mật khẩu và hơn thế nữa
+onboarding-import-browser-settings-text = Dễ dàng nhập các trang web và cài đặt Chrome.
+onboarding-import-browser-settings-button = Nhập dữ liệu từ Chrome
+onboarding-personal-data-promise-title = Được thiết kế xung quanh sự riêng tư
+onboarding-personal-data-promise-text = { -brand-product-name } xử lí dữ liệu của bạn một cách tôn trọng bằng cách lấy ít dữ liệu hơn, bảo vệ dữ liệu và hiểu rõ về cách chúng tôi sử dụng dữ liệu đó.
+onboarding-personal-data-promise-button = Đọc tuyên ngôn của chúng tôi
+
+## Message strings belonging to the Return to AMO flow
+
+return-to-amo-sub-header = 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-header = Bây giờ chúng tôi sẽ cài đặt các tiện ích { $addon-name }.
+return-to-amo-extension-button = Thêm tiện ích mở rộng
+return-to-amo-get-started-button = Bắt đầu với { -brand-short-name }
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/pageInfo.ftl b/l10n-vi/browser/browser/pageInfo.ftl
new file mode 100644
index 0000000000..d78c7af321
--- /dev/null
+++ b/l10n-vi/browser/browser/pageInfo.ftl
@@ -0,0 +1,252 @@
+# 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-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 = Có phải trang web này lưu trữ thông tin trên máy tính của tôi?
+
+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/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..d3e7b5a0db
--- /dev/null
+++ b/l10n-vi/browser/browser/places.ftl
@@ -0,0 +1,71 @@
+# 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-tab =
+ .label = Mở trong thẻ mới
+ .accesskey = w
+places-open-all-in-tabs =
+ .label = Mở toàn bộ trong thẻ
+ .accesskey = O
+places-open-window =
+ .label = Mở trong cửa sổ mới
+ .accesskey = N
+places-open-private-window =
+ .label = Mở trong cửa sổ riêng tư mới
+ .accesskey = P
+places-new-bookmark =
+ .label = Dấu trang mới…
+ .accesskey = B
+places-new-folder-contextmenu =
+ .label = Thư mục mới…
+ .accesskey = F
+places-new-folder =
+ .label = Thư mục mới…
+ .accesskey = o
+places-new-separator =
+ .label = Ngăn cách mới
+ .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-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-properties =
+ .label = Thuộc tính
+ .accesskey = i
+# 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
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..c0de4f0483
--- /dev/null
+++ b/l10n-vi/browser/browser/policies/policies-descriptions.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/.
+
+
+## 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-AppAutoUpdate = Bật hoặc tắt cập nhật chương trình tự động.
+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-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ụ dành cho 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-DisableMasterPasswordCreation = Nếu đúng, không thể tạo mật khẩu chính.
+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-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 = Bật hoặc tắt tiện ích mở rộng phương tiện được mã hóa và tùy chọn khóa 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-FlashPlugin = Cho phép hoặc từ chối việc sử dụng phần bổ trợ Flash.
+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-MasterPassword = Yêu cầu hoặc ngăn chặn sử dụng mật khẩu chính.
+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.
+# 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-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-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.
+# “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.
diff --git a/l10n-vi/browser/browser/preferences/addEngine.ftl b/l10n-vi/browser/browser/preferences/addEngine.ftl
new file mode 100644
index 0000000000..e68f469cb5
--- /dev/null
+++ b/l10n-vi/browser/browser/preferences/addEngine.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/.
+
+add-engine-window =
+ .title = Thêm công cụ tìm kiếm
+ .style = 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-cancel =
+ .label = Hủy bỏ
+ .accesskey = C
+add-engine-ok =
+ .label = Thêm công cụ tìm kiếm
+ .accesskey = A
+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..108ce450d6
--- /dev/null
+++ b/l10n-vi/browser/browser/preferences/applicationManager.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/.
+
+app-manager-window =
+ .title = Chi tiết ứng dụng
+ .style = 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..c69d6ccb02
--- /dev/null
+++ b/l10n-vi/browser/browser/preferences/blocklists.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/.
+
+blocklist-window =
+ .title = Danh sách chặn
+ .style = 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-button-cancel =
+ .label = Hủy bỏ
+ .accesskey = H
+blocklist-button-ok =
+ .label = Lưu thay đổi
+ .accesskey = L
+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..429cb8c877
--- /dev/null
+++ b/l10n-vi/browser/browser/preferences/clearSiteData.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/.
+
+clear-site-data-window =
+ .title = Xóa dữ liệu
+ .style = 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 cache ({ $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-cancel =
+ .label = Hủy bỏ
+ .accesskey = C
+clear-site-data-clear =
+ .label = Xóa
+ .accesskey = l
+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..c4be1b2477
--- /dev/null
+++ b/l10n-vi/browser/browser/preferences/colors.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/.
+
+colors-window =
+ .title = Màu sắc
+ .style =
+ { PLATFORM() ->
+ [macos] width: 41em
+ *[other] width: 38em
+ }
+
+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 sắc 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..6b4cf45dd8
--- /dev/null
+++ b/l10n-vi/browser/browser/preferences/connection.ftl
@@ -0,0 +1,88 @@
+# 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-close-key =
+ .key = w
+connection-disable-extension =
+ .label = Tắt 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-http-sharing =
+ .label = Đồng thời sử dụng proxy này cho FTP và HTTPS
+ .accesskey = s
+connection-proxy-https = HTTPS Proxy
+ .accesskey = H
+connection-proxy-ssl-port = Cổng
+ .accesskey = :
+connection-proxy-ftp = Proxy FTP
+ .accesskey = F
+connection-proxy-ftp-port = Cổng
+ .accesskey = n
+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 and ::1.
+connection-proxy-noproxy-localhost-desc = Các kết nối với localhost, 127.0.0.1 và ::1 không bao giờ đi qua máy chủ proxy.
+# 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..8e021dcaa3
--- /dev/null
+++ b/l10n-vi/browser/browser/preferences/containers.ftl
@@ -0,0 +1,87 @@
+# 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 =
+ .title = Tùy chọn ngăn chứa { $name }
+ .style = 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-button-done =
+ .label = Xong
+ .accesskey = X
+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..0c719a07f6
--- /dev/null
+++ b/l10n-vi/browser/browser/preferences/fonts.ftl
@@ -0,0 +1,160 @@
+# 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.
+
+fonts-languages-fallback-header = Mã hóa văn bản cho nội dung cũ
+fonts-languages-fallback-desc = Mã hóa văn bản này được dùng cho nội dung cũ mà thất bại trong việc khai báo mã hóa của nó.
+
+fonts-languages-fallback-label = Mã hóa văn bản dự phòng
+ .accesskey = T
+
+fonts-languages-fallback-name-auto =
+ .label = Mặc định cho bản địa hiện tại
+fonts-languages-fallback-name-arabic =
+ .label = Ả Rập
+fonts-languages-fallback-name-baltic =
+ .label = Ban-tích
+fonts-languages-fallback-name-ceiso =
+ .label = Trung Âu, ISO
+fonts-languages-fallback-name-cewindows =
+ .label = Trung Âu, Microsoft
+fonts-languages-fallback-name-simplified =
+ .label = Hoa giản thể
+fonts-languages-fallback-name-traditional =
+ .label = Hoa phồn thể
+fonts-languages-fallback-name-cyrillic =
+ .label = Kirin
+fonts-languages-fallback-name-greek =
+ .label = Hi Lạp
+fonts-languages-fallback-name-hebrew =
+ .label = Do Thái
+fonts-languages-fallback-name-japanese =
+ .label = Nhật
+fonts-languages-fallback-name-korean =
+ .label = Hàn
+fonts-languages-fallback-name-thai =
+ .label = Thái
+fonts-languages-fallback-name-turkish =
+ .label = Thổ Nhĩ Kỳ
+fonts-languages-fallback-name-vietnamese =
+ .label = Việt
+fonts-languages-fallback-name-other =
+ .label = Khác (gồm Tây Âu)
+
+# 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/fxaPairDevice.ftl b/l10n-vi/browser/browser/preferences/fxaPairDevice.ftl
new file mode 100644
index 0000000000..3e9b04576d
--- /dev/null
+++ b/l10n-vi/browser/browser/preferences/fxaPairDevice.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/.
+
+fxa-pair-device-dialog =
+ .title = Kết nối thiết bị khác
+ .style = width: 26em; min-height: 35em;
+fxa-qrcode-heading-phase1 = 1. Cài đặt Firefox trên thiết bị di động của bạn nếu chưa có.
+fxa-qrcode-heading-phase2 = 2. Sau đó đăng nhập vào { -sync-brand-short-name }, hoặc trên Android quét mã ghép nối bên trong cài đặt { -sync-brand-short-name }.
+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-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..38b02c0674
--- /dev/null
+++ b/l10n-vi/browser/browser/preferences/languages.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/.
+
+webpage-languages-window =
+ .title = Cài đặt ngôn ngữ của trang web
+ .style = width: 40em
+
+languages-close-key =
+ .key = w
+
+languages-description = Thỉnh thoảng các trang web cung cấp nhiều hơn một 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 = { -brand-short-name } Cài đặt ngôn ngữ
+ .style = 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 = Đang tìm kiế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/permissions.ftl b/l10n-vi/browser/browser/preferences/permissions.ftl
new file mode 100644
index 0000000000..53dddd5808
--- /dev/null
+++ b/l10n-vi/browser/browser/preferences/permissions.ftl
@@ -0,0 +1,157 @@
+# 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-close-key =
+ .key = w
+permissions-address = Địa chỉ của trang web
+ .accesskey = d
+permissions-block =
+ .label = Chặn
+ .accesskey = C
+permissions-session =
+ .label = Cho phép theo phiên
+ .accesskey = S
+permissions-allow =
+ .label = Cho phép
+ .accesskey = h
+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
+permissions-button-cancel =
+ .label = Hủy bỏ
+ .accesskey = H
+permissions-button-ok =
+ .label = Lưu thay đổi
+ .accesskey = L
+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
+
+## 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-desc = Bạn đã tắt bảo vệ trên các trang web này.
+
+## Exceptions - Cookies
+
+permissions-exceptions-cookie-window =
+ .title = Ngoại lệ - Cookie và dữ liệu trang web
+ .style = { permissions-window.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 - 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-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-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-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-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-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-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-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-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-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..2bd999e7cd
--- /dev/null
+++ b/l10n-vi/browser/browser/preferences/preferences.ftl
@@ -0,0 +1,1161 @@
+# 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
+pref-page-title =
+ { PLATFORM() ->
+ [windows] Tùy chọn
+ *[other] Tùy chỉnh
+ }
+# 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-box =
+ .style = width: 15.4em
+ .placeholder =
+ { PLATFORM() ->
+ [windows] Tìm trong phần tùy chọn
+ *[other] Tìm trong phần tùy chỉnh
+ }
+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-title2 = { -sync-brand-short-name }
+category-sync2 =
+ .tooltiptext = { pane-sync-title2 }
+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-description = Thay đổi tùy chọn cấu hình nâng cao có thể ảnh hưởng đến hiệu suất hoặc bảo mật { -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 their home page
+# is being controlled by an extension.
+extension-controlled-homepage-override = Một tiện ích mở rông, { $name }, đang kiểm soát trang chủ của bạn.
+# This string is shown to notify the user that their new tab page
+# is being controlled by an extension.
+extension-controlled-new-tab-url = Một tiện ích mở rông, { $name }, đang kiểm soát phần thẻ mới của bạn.
+# This string is shown to notify the user that the password manager setting
+# is being controlled by an extension
+extension-controlled-password-saving = Một tiện ích mở rộng, { $name }, đang 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-controlled-web-notifications = Một tiện ích mở rộng, { $name }, đang kiểm soát cài đặt này.
+# This string is shown to notify the user that the default search engine
+# is being controlled by an extension.
+extension-controlled-default-search = Một tiện ích mở rộng, { $name }, đã cài đặt công cụ tìm kiếm mặc định của bạn.
+# This string is shown to notify the user that Container Tabs
+# are being enabled by an extension.
+extension-controlled-privacy-containers = Một tiện ích mở rộng, { $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-controlled-websites-content-blocking-all-trackers = Một tiện ích mở rộng, { $name }, đang 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-controlled-proxy-config = Một tiện ích mở rộng, { $name }, đang kiểm soát cách { -brand-short-name } kết nố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-message =
+ { PLATFORM() ->
+ [windows] Xin lỗi! Không có kết quả trong phần Tùy chọn cho “”.
+ *[other] Xin lỗi! Không có kết quả trong phần Tùy chỉnh cho “”.
+ }
+search-results-help-link = Cần trợ giúp? Đi đến Hỗ trợ { -brand-short-name }
+
+## General Section
+
+startup-header = Khởi động
+# { -brand-short-name } will be 'Firefox Developer Edition',
+# since this setting is only exposed in Firefox Developer Edition
+separate-profile-mode =
+ .label = Cho phép { -brand-short-name } và Firefox cùng chạy song song
+use-firefox-sync = Mẹo nhỏ: Việc này sử dụng các hồ sơ độc lập nhau. Bạn có thể dùng { -sync-brand-short-name } để đồng bộ giữa chúng.
+get-started-not-logged-in = Đăng nhập vào { -sync-brand-short-name }…
+get-started-configured = Mở tùy chỉnh của { -sync-brand-short-name }
+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
+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-previous-session =
+ .label = Khôi phục phiên làm việc 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 = Tắt 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
+warn-on-close-multiple-tabs =
+ .label = Cảnh báo bạn khi đóng nhiều thẻ một lúc
+ .accesskey = m
+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-links-to-new-tabs =
+ .label = Khi bạn mở một liên kết trong thẻ mới, chuyển sang thẻ đó 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ủ đề
+fonts-and-colors-header = Phông & Màu sắc
+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
+colors-settings =
+ .label = Màu sắc…
+ .accesskey = M
+# 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 giải pháp 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
+# 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-to =
+ .label = Lưu các 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
+applications-type-pdf = Định dạng tài liệu di động (PDF)
+# Variables:
+# $type (String) - the MIME type (e.g application/binary)
+applications-type-pdf-with-type = { applications-type-pdf } ({ $type })
+# 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 }
+
+##
+
+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-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-setting-write-failure-title = Lỗi khi lưu tùy chọn 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-message =
+ { -brand-short-name } đã gặp lỗi và đã không lưu thay đổi này. Lưu ý rằng thiết lập tùy chọn 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 này.
+
+ Không thể ghi vào tệp: { $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-use-onscreen-keyboard =
+ .label = Hiện 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-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 trang chủ của Firefox
+home-prefs-content-description = Chọn nội dung mà bạn muốn thêm vào trang chủ của Firefox.
+home-prefs-search-header =
+ .label = Tìm kiếm web
+home-prefs-topsites-header =
+ .label = Các trang Web hàng đầu
+home-prefs-topsites-description = Những trang bạn truy cập nhiều nhất
+home-prefs-topsites-by-option-sponsored =
+ .label = Các trang hàng đầu được tài trợ
+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-update = Nội dung đặc biệt trên web, được quản lý 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-highlights-header =
+ .label = Nổi bật
+home-prefs-highlights-description = Một lựa chọn các trang web mà bạn đã lưu hoặc truy cập
+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 = Trang đã được lưu 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 = Cập nhật từ { -vendor-short-name } và { -brand-product-name }
+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
+# 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 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-generic = Thay đổi tùy chọn cho các đề xuất trên thanh địa chỉ khác
+search-suggestions-cant-show = Gợi ý tìm kiếm sẽ không được hiện ở 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-header = Công cụ tìm kiếm với một lần nhấn
+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-button =
+ .aria-label =
+ { PLATFORM() ->
+ [windows] Quay lại Tùy chọn
+ *[other] Quay lại Tùy chỉnh
+ }
+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-preferences-button =
+ .label = Tùy chỉnh
+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-description = Đồng bộ dấu trang, lịch sử, thẻ, mật khẩu, tiện ích và tùy chỉnh tới tất cả các thiết bị của bạn.
+sync-signedout-account-signin2 =
+ .label = Đăng nhập vào { -sync-brand-short-name }…
+ .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-setup =
+ .label = Thiết lập { -sync-brand-short-name }…
+ .accesskey = S
+prefs-sync-offer-setup-label = Đồng bộ dấu trang, lịch sử, thẻ, mật khẩu, tiện ích và tùy chỉnh 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 = Đă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-prefs =
+ { PLATFORM() ->
+ [windows] Tùy chọn
+ *[other] Tùy chỉnh
+ }
+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-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 = Đă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-prefs =
+ .label =
+ { PLATFORM() ->
+ [windows] Tùy chọn
+ *[other] Tùy chỉnh
+ }
+ .tooltiptext = Các cài đặt chung, cài đặt về sự 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 = Đă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
+# 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-master-pw-use =
+ .label = Dùng mật khẩu chính
+ .accesskey = U
+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-master-pw-fips-title = Bạn đang ở chế độ FIPS. FIPS yêu cầu mật khẩu chính không được để trống.
+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
+
+## OS Authentication dialog
+
+# This message can be seen by trying to add a Master Password.
+master-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 Master 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.
+master-password-os-auth-dialog-message-macosx = tạo một mật khẩu chính
+# 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 { -brand-short-name } đóng
+ .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-and-social-media-trackers =
+ .label = Trình theo dõi trên nhiều trang web và truyền thông xã hội
+sitedata-option-block-cross-site-tracking-cookies-including-social-media =
+ .label = Cookie theo dõi trên nhiều trang web — bao gồm cookie truyền thông xã hội
+sitedata-option-block-cross-site-cookies-including-social-media =
+ .label = Cookie trên nhiều trang web — bao gồm cookie trên mạng xã hội
+sitedata-option-block-cross-site-and-social-media-trackers-plus-isolate =
+ .label = Trình theo dõi trên nhiều trang web và mạng xã hội, đồng thời cô lập các cookie còn lại
+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 =
+ .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-permissions =
+ .label = Quản lí các quyền...
+ .accesskey = P
+sitedata-cookies-exceptions =
+ .label = Quản lý các 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-suggestions-settings = Thay đổi tùy chỉnh phần gợi ý của công cụ tìm kiế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-private-windows = Trình theo dõi nội dung trong cửa sổ riêng tư
+content-blocking-cross-site-cookies = Cookie trên nhiều trang web
+content-blocking-cross-site-tracking-cookies = Cookie theo dõi trên nhiều trang web
+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-cryptominers = Tiền điện tử
+content-blocking-fingerprinters = Dấu vết (Fingerprintng)
+content-blocking-warning-title = Hãy cân nhắc!
+content-blocking-and-isolating-etp-warning-description = Chặn trình theo dõi và cô lập cookie có thể ảnh hưởng đến chức năng của một số trang web. Tải lại một trang với trình theo dõi để tải tất cả nội dung.
+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ý các 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
+permissions-block-popups-exceptions =
+ .label = Ngoại trừ…
+ .accesskey = E
+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
+permissions-a11y-privacy-checkbox =
+ .label = Ngăn chặn khả năng tiếp cận dịch vụ truy cập vào trình duyệt của bạn
+ .accesskey = a
+permissions-a11y-privacy-link = Tìm hiểu thêm
+
+## 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 =
+ .label = Cho phép { -brand-short-name } thay bạn gửi các báo cáo sự cố còn tồn đọng
+ .accesskey = c
+collection-backlogged-crash-reports-link = Tìm hiểu thêm
+
+## 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-personal-label = Khi một máy chủ yêu cầu chứng thực cá nhân của bạn
+certs-select-auto-option =
+ .label = Tự động chọn một cái
+ .accesskey = S
+certs-select-ask-option =
+ .label = Luôn hỏi bạn
+ .accesskey = A
+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-learn-more-button =
+ .label = Tìm hiểu thêm
+ .accesskey = L
+space-alert-over-5gb-pref-button =
+ .label =
+ { PLATFORM() ->
+ [windows] Mở tùy chọn
+ *[other] Mở tùy chỉnh
+ }
+ .accesskey =
+ { PLATFORM() ->
+ [windows] O
+ *[other] O
+ }
+space-alert-over-5gb-message =
+ { PLATFORM() ->
+ [windows] Không đủ dung lượng đĩa cho { -brand-short-name }. 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 Tùy chọn > Riêng tư & Bảo mật > Cookie và Dữ liệu trang.
+ *[other] Không đủ dung lượng đĩa cho { -brand-short-name }. 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 Tùy chọn > Riêng tư & Bảo mật > Cookie và Dữ liệu trang.
+ }
+space-alert-under-5gb-ok-button =
+ .label = OK, đã hiểu
+ .accesskey = K
+space-alert-under-5gb-message = Không đủ dung lượng đĩa cho { -brand-short-name }. 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:
+# Variables:
+# $service-name (String) - Name of a cloud storage provider like Dropbox, Google Drive, etc...
+save-files-to-cloud-storage =
+ .label = Lưu tập tin vào { $service-name }
diff --git a/l10n-vi/browser/browser/preferences/selectBookmark.ftl b/l10n-vi/browser/browser/preferences/selectBookmark.ftl
new file mode 100644
index 0000000000..7d41ab3bb1
--- /dev/null
+++ b/l10n-vi/browser/browser/preferences/selectBookmark.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/.
+
+select-bookmark-window =
+ .title = Đặt làm trang chủ
+ .style = 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..7ecb01a9df
--- /dev/null
+++ b/l10n-vi/browser/browser/preferences/siteDataSettings.ftl
@@ -0,0 +1,57 @@
+# 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-button-cancel =
+ .label = Hủy bỏ
+ .accesskey = C
+site-data-button-save =
+ .label = Lưu thay đổi
+ .accesskey = a
+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?
+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..7a00262e84
--- /dev/null
+++ b/l10n-vi/browser/browser/preferences/translation.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/.
+
+translation-window =
+ .title = Ngoại lệ - Dịch tự động
+ .style = 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-button-close =
+ .label = Đóng
+ .accesskey = C
+translation-dialog =
+ .buttonlabelaccept = Đóng
+ .buttonaccesskeyaccept = C
diff --git a/l10n-vi/browser/browser/protections.ftl b/l10n-vi/browser/browser/protections.ftl
new file mode 100644
index 0000000000..b62ba3c212
--- /dev/null
+++ b/l10n-vi/browser/browser/protections.ftl
@@ -0,0 +1,195 @@
+# 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
+lockwise-title-logged-in2 = Quản lý mật khẩu
+lockwise-header-content = { -lockwise-brand-name } lưu trữ an toàn mật khẩu của bạ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-save-passwords-button = Lưu mật khẩu
+ .title = Lưu mật khẩu trên { -lockwise-brand-short-name }
+protection-report-manage-passwords-button = Quản lý mật khẩu
+ .title = Quản lý mật khẩu trên { -lockwise-brand-short-name }
+lockwise-mobile-app-title = Mang mật khẩu của bạn đi khắp mọi nơi
+lockwise-no-logins-card-content = Sử dụng mật khẩu được lưu trong { -brand-short-name } trên bất kỳ thiết bị nào.
+lockwise-app-links = { -lockwise-brand-name } dành cho Android và iOS
+# 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
+turn-on-sync = Bật { -sync-brand-short-name }…
+ .title = Đi đến tùy chọn đồng bộ hóa
+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..c692c3b908
--- /dev/null
+++ b/l10n-vi/browser/browser/protectionsPanel.ftl
@@ -0,0 +1,98 @@
+# 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-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..f6d979250a
--- /dev/null
+++ b/l10n-vi/browser/browser/safeMode.ftl
@@ -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/.
+
+safe-mode-window =
+ .title = { -brand-short-name } Chế độ An toàn
+ .style = max-width: 400px
+start-safe-mode =
+ .label = Khởi động vào chế độ an toàn
+refresh-profile =
+ .label = Cài đặt lại { -brand-short-name }
+safe-mode-description = Chế độ an toàn là một chế độ đặc biệt của { -brand-short-name } dùng để chẩn đoán và giải quyết rắc rối.
+safe-mode-description-details = Tiện ích mở rộng và cài đặt tùy chỉnh của bạn sẽ tạm thời bị vô hiệu hóa và các tính năng của { -brand-short-name } có thể không hoạt động như thông thường.
+refresh-profile-instead = Bạn có thể bỏ qua bước nhận dạng lỗi và thử cài đặt lạ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..2f5c7bb577
--- /dev/null
+++ b/l10n-vi/browser/browser/safebrowsing/blockedSite.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/.
+
+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 = { $sitename } đã báo cáo là có chứa phần mềm độc hại. Bạn có thể báo cáo một vấn đề phát hiện hoặc bỏ qua nguy cơ và đi đến trang web không an toàn này.
+safeb-blocked-malware-page-error-desc-no-override = { $sitename } đã báo cáo là có chứa phần mềm độc hại. Bạn có thể báo cáo một vấn đề phát hiện.
+safeb-blocked-malware-page-learn-more = Tìm hiểu thêm về nội dung web có hại bao gồm vi-rút và phần mềm độc hại khác và cách bảo vệ máy tính của bạn tại StopBadware.org. Tìm hiểu thêm về cách { -brand-short-name } chống lừa đảo và phần mềm độc hại 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..f8bed54d90
--- /dev/null
+++ b/l10n-vi/browser/browser/sanitize.ftl
@@ -0,0 +1,110 @@
+# 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-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-preferences =
+ .label = Tùy chỉnh trang web
+ .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..d61c772c2c
--- /dev/null
+++ b/l10n-vi/browser/browser/screenshots.ftl
@@ -0,0 +1,47 @@
+# 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-context-menu = Chụp ảnh màn hình
+
+screenshots-my-shots-button = Các ảnh chụp của tôi
+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-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-self-screenshot-error-title = Bạn không thể chụp một trang của { -screenshots-brand-name }!
+
+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?
diff --git a/l10n-vi/browser/browser/search.ftl b/l10n-vi/browser/browser/search.ftl
new file mode 100644
index 0000000000..5f730d2878
--- /dev/null
+++ b/l10n-vi/browser/browser/search.ftl
@@ -0,0 +1,19 @@
+# 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 }
+
+##
+
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..1df1e07ae6
--- /dev/null
+++ b/l10n-vi/browser/browser/sidebarMenu.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/.
+
+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ề
diff --git a/l10n-vi/browser/browser/sync.ftl b/l10n-vi/browser/browser/sync.ftl
new file mode 100644
index 0000000000..47d2e95bae
--- /dev/null
+++ b/l10n-vi/browser/browser/sync.ftl
@@ -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/.
+
+fxa-toolbar-sync-syncing =
+ .label = Đang đồng bộ hóa…
+fxa-toolbar-sync-syncing-tabs =
+ .label = Đang đồng bộ các thẻ…
+sync-disconnect-dialog-title = Ngắt kết nối { -sync-brand-short-name }?
+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.
+fxa-disconnect-dialog-title = Ngắt kết nối { -brand-product-name }?
+fxa-disconnect-dialog-body = { -brand-product-name } sẽ ngắt kết nối khỏi đồ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-dialog-heading = Đă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-checkbox =
+ .label = Xóa dữ liệu khỏi thiết bị này (thông tin đăng nhập, mật khẩu, lịch sử, dấu trang, v.v.).
+fxa-signout-dialog =
+ .title = Đăng xuất khỏi { -fxaccount-brand-name }
+ .style = min-width: 375px;
+ .buttonlabelaccept = Đă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..c7529c07e3
--- /dev/null
+++ b/l10n-vi/browser/browser/syncedTabs.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/.
+
+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-openprefs = Mở tùy chỉnh của { -sync-brand-short-name }
+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ộ
+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-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
+fxa-sign-in = Đăng nhập vào { -sync-brand-short-name }
+turn-on-sync = Bật { -sync-brand-short-name }
diff --git a/l10n-vi/browser/browser/tabContextMenu.ftl b/l10n-vi/browser/browser/tabContextMenu.ftl
new file mode 100644
index 0000000000..7b82f30813
--- /dev/null
+++ b/l10n-vi/browser/browser/tabContextMenu.ftl
@@ -0,0 +1,95 @@
+# 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/.
+
+reload-tab =
+ .label = Tải lại thẻ
+ .accesskey = R
+select-all-tabs =
+ .label = Chọn tất cả các thẻ
+ .accesskey = S
+duplicate-tab =
+ .label = Nhân đôi thẻ
+ .accesskey = D
+duplicate-tabs =
+ .label = Nhân đôi các thẻ
+ .accesskey = D
+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
+reopen-in-container =
+ .label = Mở trong ngăn chứa
+ .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
+
+## Variables:
+## $tabCount (Number): the number of tabs that are affected by the action.
+
+tab-context-undo-close-tabs =
+ .label =
+ { $tabCount ->
+ [1] Mở lại thẻ vừa đóng
+ *[other] Mở lại các thẻ vừa đóng
+ }
+ .accesskey = U
+close-tab =
+ .label = Đóng thẻ
+ .accesskey = c
+close-tabs =
+ .label = Đóng các thẻ
+ .accesskey = S
+move-tabs =
+ .label = Di chuyển các thẻ
+ .accesskey = v
+move-tab =
+ .label = Di chuyển thẻ
+ .accesskey = v
+tab-context-close-tabs =
+ .label =
+ { $tabCount ->
+ [1] Đóng thẻ
+ *[other] Đóng các thẻ
+ }
+ .accesskey = C
+tab-context-move-tabs =
+ .label =
+ { $tabCount ->
+ [1] Di chuyển thẻ
+ *[other] Di chuyển các thẻ
+ }
+ .accesskey = v
diff --git a/l10n-vi/browser/browser/toolbarContextMenu.ftl b/l10n-vi/browser/browser/toolbarContextMenu.ftl
new file mode 100644
index 0000000000..9a6250e710
--- /dev/null
+++ b/l10n-vi/browser/browser/toolbarContextMenu.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/.
+
+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-undo-close-tabs =
+ .label =
+ { $tabCount ->
+ [1] Mở lại thẻ vừa đóng
+ *[other] Mở lại các thẻ vừa đóng
+ }
+ .accesskey = U
+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 menubarCmd ("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 =
+ .label = Tự động ẩn trong thanh công cụ
+ .accesskey = A
+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-bookmarks-toolbar-always-show =
+ .label = Luôn luôn
+ .accesskey = A
+toolbar-context-menu-bookmarks-toolbar-never-show =
+ .label = Không bao giờ
+ .accesskey = N
+toolbar-context-menu-bookmarks-toolbar-on-new-tab =
+ .label = Chỉ trên thẻ mới
+ .accesskey = O
+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 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
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/webrtcIndicator.ftl b/l10n-vi/browser/browser/webrtcIndicator.ftl
new file mode 100644
index 0000000000..128a33014d
--- /dev/null
+++ b/l10n-vi/browser/browser/webrtcIndicator.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/.
+
+
+# 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.
+
+# 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.
+webrtc-indicator-title = { -brand-short-name } - Chỉ số chia sẻ
+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-button =
+ .title = Bạn đang chia sẻ micro. Nhấn vào đây để kiểm soát những gì được chia sẻ.
+webrtc-camera-button =
+ .title = Bạn đang chia sẻ camera. Nhấn vào đây để kiểm soát những gì được 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ố
+# This string 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ẻ.
diff --git a/l10n-vi/browser/chrome/browser-region/region.properties b/l10n-vi/browser/chrome/browser-region/region.properties
new file mode 100644
index 0000000000..f857ee8df1
--- /dev/null
+++ b/l10n-vi/browser/chrome/browser-region/region.properties
@@ -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/.
+
+# 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.
+
+# 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=4
+
+# The default set of protocol handlers for mailto:
+gecko.handlerService.schemes.mailto.0.name=Yahoo! Thư
+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
+
+# The default set of protocol handlers for irc:
+gecko.handlerService.schemes.irc.0.name = Mibbit
+gecko.handlerService.schemes.irc.0.uriTemplate = https://www.mibbit.com/?url=%s
+
+# The default set of protocol handlers for ircs:
+gecko.handlerService.schemes.ircs.0.name = Mibbit
+gecko.handlerService.schemes.ircs.0.uriTemplate = https://www.mibbit.com/?url=%s
diff --git a/l10n-vi/browser/chrome/browser/accounts.properties b/l10n-vi/browser/chrome/browser/accounts.properties
new file mode 100644
index 0000000000..ff48ebe5a1
--- /dev/null
+++ b/l10n-vi/browser/chrome/browser/accounts.properties
@@ -0,0 +1,129 @@
+# 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…
+
+# LOCALIZATION NOTE (account.title):
+# Used as a default header for the FxA toolbar menu.
+account.title = Tài khoản
+
+# LOCALIZATION NOTE (account.accountSettings):
+# Used as the description below user's email in the FxA toolbar menu.
+account.accountSettings = Cài đặt tài khoản
+
+# LOCALIZATION NOTE (account.finishAccountSetup):
+# Used as the FxA toolbar menu item value when user has not
+# finished setting up an account.
+account.finishAccountSetup = Hoàn tất thiết lập tài khoản
+
+# LOCALIZATION NOTE (account.reconnectToFxA):
+# Used as the FxA toolbar menu item title when the user
+# needs to reconnect their account.
+account.reconnectToFxA = Kết nối lại với tài khoản Firefox
diff --git a/l10n-vi/browser/chrome/browser/app-extension-fields.properties b/l10n-vi/browser/chrome/browser/app-extension-fields.properties
new file mode 100644
index 0000000000..1e4008284d
--- /dev/null
+++ b/l10n-vi/browser/chrome/browser/app-extension-fields.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/.
+
+# LOCALIZATION NOTE (extension.firefox-compact-light@mozilla.org.name): This is displayed in about:addons -> Appearance
+extension.firefox-compact-light@mozilla.org.name=Sáng
+extension.firefox-compact-light@mozilla.org.description=Một chủ đề với tông màu sáng.
+
+# LOCALIZATION NOTE (extension.firefox-compact-dark@mozilla.org.name): This is displayed in about:addons -> Appearance
+extension.firefox-compact-dark@mozilla.org.name=Tối
+extension.firefox-compact-dark@mozilla.org.description=Một chủ đề với tông màu tối.
+
+# LOCALIZATION NOTE (extension.firefox-alpenglow@mozilla.org.name): This is displayed in about:addons -> Appearance
+extension.firefox-alpenglow@mozilla.org.name=Firefox Alpenglow
+extension.firefox-alpenglow@mozilla.org.description=Sử dụng giao diện đầy màu sắc cho các nút, menu và cửa sổ.
diff --git a/l10n-vi/browser/chrome/browser/baseMenuOverlay.dtd b/l10n-vi/browser/chrome/browser/baseMenuOverlay.dtd
new file mode 100644
index 0000000000..3674a8e179
--- /dev/null
+++ b/l10n-vi/browser/chrome/browser/baseMenuOverlay.dtd
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/l10n-vi/browser/chrome/browser/brandings.dtd b/l10n-vi/browser/chrome/browser/brandings.dtd
new file mode 100644
index 0000000000..46a76ff0ff
--- /dev/null
+++ b/l10n-vi/browser/chrome/browser/brandings.dtd
@@ -0,0 +1,13 @@
+
+
+
+
+
+
diff --git a/l10n-vi/browser/chrome/browser/browser.dtd b/l10n-vi/browser/chrome/browser/browser.dtd
new file mode 100644
index 0000000000..23263938fc
--- /dev/null
+++ b/l10n-vi/browser/chrome/browser/browser.dtd
@@ -0,0 +1,289 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/l10n-vi/browser/chrome/browser/browser.properties b/l10n-vi/browser/chrome/browser/browser.properties
new file mode 100644
index 0000000000..2675c18091
--- /dev/null
+++ b/l10n-vi/browser/chrome/browser/browser.properties
@@ -0,0 +1,1070 @@
+# 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
+# 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
+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)
+# 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.unsignedWarning=Cảnh báo: Tiện ích này chưa được xác thực. Những tiện ích độc hại có thể lấy cắp thông tin cá nhân hoặc làm tổn hại đến máy tính của bạn. Chỉ cài đặt tiện ích này nếu bạn tin tưởng nguồn cài đặt.
+
+# 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 bạn cho phép để:
+webextPerms.learnMore=Tìm hiểu thêm về quyền hạn
+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.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
+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.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 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 hiện 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 (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.title)
+# %S is the name of the extension which is about to be removed.
+webext.remove.confirmation.title=Xóa %S
+# 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 (webext.remove.abuseReportCheckbox.message)
+# %S is vendorShortName
+webext.remove.abuseReportCheckbox.message=Tôi muốn báo cáo tiện ích mở rộng này cho %S
+
+# LOCALIZATION NOTE (addonPostInstall.message1)
+# %1$S is replaced with the localized named of the extension that was
+# just installed.
+# %2$S is replaced with the localized name of the application.
+addonPostInstall.message1=%1$S được thêm vào %2$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, 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.
+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
+popupAllow=Cho phép %S mở cửa sổ bật lên
+popupBlock=Chặn cửa sổ bật lên từ %S
+popupWarningDontShowFromMessage=Không hiện thông báo này khi có cửa sổ bật lên bị chặn
+popupShowPopupPrefix=Hiện '%S'
+
+# LOCALIZATION NOTE (popupShowBlockedPopupsIndicatorText): Semicolon separated list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is the number of pop-ups blocked.
+popupShowBlockedPopupsIndicatorText=Hiển thị #1 cửa sổ bật lên bị chặn…
+
+# 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
+keywordURIFixup.dismiss=Không, cảm ơn
+keywordURIFixup.dismiss.accesskey=N
+
+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
+menuRestoreAllTabs.label=Mở lại tất cả các thẻ
+# LOCALIZATION NOTE (menuRestoreAllWindows, menuUndoCloseWindowLabel, menuUndoCloseWindowSingleTabLabel):
+# see bug 394759
+menuRestoreAllWindows.label=Mở lại tất cả các cửa sổ
+
+# 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
+tabHistory.goBack=Trở về lại trang này
+tabHistory.goForward=Tiến tới 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 (urlbar.placeholder):
+# %S is the name of the user's current search engine
+urlbar.placeholder=Tìm với %S hoặc nhập địa chỉ
+
+# 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)
+
+# Print button tooltip on OS X
+# LOCALIZATION NOTE (printButton.tooltip):
+# Use the unicode ellipsis char, \u2026,
+# or use "..." if \u2026 doesn't suit traditions in your locale.
+# %S is the keyboard shortcut for "Print"
+printButton.tooltip=In trang này… (%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.available2=Bạn có cho phép %S lưu trữ dữ liệu trên máy tính của bạn không?
+offlineApps.allowStoring.label=Cho phép lưu trữ dữ liệu
+offlineApps.allowStoring.accesskey=A
+offlineApps.dontAllow.label=Không cho phép
+offlineApps.dontAllow.accesskey=n
+
+# Canvas permission prompt
+# LOCALIZATION NOTE (canvas.siteprompt): %S is hostname
+canvas.siteprompt=Bạn có cho phép %S sử dụng dữ liệu ảnh canvas HTML5 của bạn không? Điều này có thể được sử dụng để nhận diện máy tính của bạn.
+canvas.notAllow=Không cho phép
+canvas.notAllow.accesskey=n
+canvas.allow=Cho phép truy cập dữ liệu
+canvas.allow.accesskey=A
+canvas.remember=Luôn nhớ quyết định của tôi
+
+# 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.registerDirectPrompt2):
+# %1$S is hostname. %2$S is brandShortName.
+# 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.registerDirectPrompt2=%1$S đang yêu cầu thông tin mở rộng về khóa bảo mật của bạn, nó có thể ảnh hưởng đến quyền riêng tư của bạn.\n\n%2$S có thể ẩn danh danh sách 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.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.
+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.headerMainWithHost, identity.headerSecurityWithHost):
+# %S is the hostname of the site that is being displayed.
+identity.headerMainWithHost=Thông tin trang web %S
+identity.headerSecurityWithHost=Bảo mật kết nối cho %S
+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 này 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
+identity.showDetails.tooltip=Hiện thông tin kết nối
+
+# 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
+
+# Edit Bookmark UI
+editBookmarkPanel.newBookmarkTitle=Dấu trang mới
+editBookmarkPanel.editBookmarkTitle=Chỉnh sửa dấu trang này
+editBookmarkPanel.cancel.label=Hủy bỏ
+editBookmarkPanel.cancel.accesskey=C
+
+# LOCALIZATION NOTE (editBookmark.removeBookmarks.label): Semicolon-separated list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# Replacement for #1 is the number of bookmarks to be removed.
+# If this causes problems with localization you can also do "Remove Bookmarks (#1)"
+# instead of "Remove #1 Bookmarks".
+editBookmark.removeBookmarks.label=Xóa #1 dấu trang
+editBookmark.removeBookmarks.accesskey=R
+
+# 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.allowLocation=Cho phép truy cập vị trí
+geolocation.allowLocation.accesskey=A
+geolocation.dontAllowLocation=Không cho phép
+geolocation.dontAllowLocation.accesskey=n
+geolocation.shareWithSite3=Bạn có cho phép %S truy cập vào vị trí của bạn không?
+geolocation.shareWithFile3=Bạn có cho phép tập tin nội bộ truy cập vị trí của bạn không?
+# LOCALIZATION NOTE(geolocation.shareWithSiteUnsafeDelegation):
+# %1$S is the first party origin, %2$S is the third party origin.
+geolocation.shareWithSiteUnsafeDelegation=Bạn có cho phép %1$S cấp quyền cho %2$S truy cập vị trí của bạn không?
+geolocation.remember=Ghi nhớ quyết định này
+
+# Virtual Reality Device UI
+xr.allow=Cho phép truy cập thực tế ảo
+xr.allow.accesskey=A
+xr.dontAllow=Không cho phép
+xr.dontAllow.accesskey=n
+xr.shareWithSite3=Bạn có cho phép %S truy cập các thiết bị thực tế ảo không? Điều này có thể gây lộ ra thông tin nhạy cảm.
+xr.shareWithFile3=Bạn sẽ cho phép tập tin cục bộ này truy cập các thiết bị thực tế ảo? Điều này có thể gây lộ ra 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.neverAllow.label=Không bao giờ cho phép
+persistentStorage.neverAllow.accesskey=N
+persistentStorage.notNow.label=Không phải bây giờ
+persistentStorage.notNow.accesskey=w
+persistentStorage.allowWithSite=Bạn có cho phép %S lưu trữ dữ liệu lâu dài không?
+
+webNotifications.allow=Cho phép thông báo
+webNotifications.allow.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.receiveFromSite2=Bạn có cho phép %S gửi thông báo không?
+
+# 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
+
+# safeModeRestart
+safeModeRestartPromptTitle=Khởi động lại và vô hiệu hóa các tiện ích
+safeModeRestartPromptMessage=Bạn có thực sự muốn khởi động lại và vô hiệu hóa tất cả tiện ích?
+safeModeRestartButton=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 "Web Developer" 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
+
+# Mozilla data reporting notification (Telemetry, Firefox Health Report, etc)
+dataReportingNotification.message = %1$S tự động gửi dữ liệu về %2$S để chúng tôi có thể cải thiện trải nghiệm của bạn.
+dataReportingNotification.button.label = Chọn những thứ tôi muốn chia sẻ
+dataReportingNotification.button.accessKey = C
+
+# Process hang reporter
+processHang.label = Có trang web đang làm cho trình duyệt bị chậm. Bạn muốn xử lý như thế nào?
+# LOCALIZATION NOTE (processHang.add-on.label): %1$S is the name of the
+# extension. %2$S is the name of the product (e.g., Firefox)
+processHang.add-on.label = Một đoạn mã trong tiện ích mở rộng “%1$S” làm %2$S bị chậm.
+processHang.add-on.learn-more.text = Tìm hiểu thêm
+processHang.button_stop.label = Dừng nó
+processHang.button_stop.accessKey = S
+processHang.button_stop_sandbox.label = Tạm thời tắt tiện ích mở rộng trên trang
+processHang.button_stop_sandbox.accessKey = A
+processHang.button_wait.label = Đợi
+processHang.button_wait.accessKey = W
+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.shareCamera2.message,
+# getUserMedia.shareMicrophone2.message,
+# getUserMedia.shareScreen3.message,
+# getUserMedia.shareCameraAndMicrophone2.message,
+# getUserMedia.shareCameraAndAudioCapture2.message,
+# getUserMedia.shareScreenAndMicrophone3.message,
+# getUserMedia.shareScreenAndAudioCapture3.message,
+# getUserMedia.shareAudioCapture2.message):
+# %S is the website origin (e.g. www.mozilla.org)
+getUserMedia.shareCamera2.message = Bạn có cho phép %S sử dụng máy ảnh của bạn không?
+getUserMedia.shareMicrophone2.message = Bạn có cho phép %S sử dụng micrô của bạn không?
+getUserMedia.shareScreen3.message = Bạn có cho phép %S xem màn hình của bạn không?
+getUserMedia.shareCameraAndMicrophone2.message = Bạn có cho phép %S sử dụng máy ảnh và micrô của bạn không?
+getUserMedia.shareCameraAndAudioCapture2.message = Bạn có cho phép %S sử dụng máy ảnh của bạn và lắng nghe âm thanh trong thẻ này không?
+getUserMedia.shareScreenAndMicrophone3.message = Bạn có cho phép %S sử dụng micrô và xem màn hình của bạn không?
+getUserMedia.shareScreenAndAudioCapture3.message = Bạn có cho phép %S lắng nghe âm thanh trong thẻ này và xem màn hình của bạn không?
+getUserMedia.shareAudioCapture2.message = Bạn có cho phép %S để lắng nghe âm thanh trong thẻ này không?
+
+# LOCALIZATION NOTE (getUserMedia.shareCameraUnsafeDelegation.message,
+# getUserMedia.shareMicrophoneUnsafeDelegation.message,
+# getUserMedia.shareScreenUnsafeDelegation.message,
+# getUserMedia.shareCameraAndMicrophoneUnsafeDelegation.message,
+# getUserMedia.shareCameraAndAudioCaptureUnsafeDelegation.message,
+# getUserMedia.shareScreenAndMicrophoneUnsafeDelegation.message,
+# getUserMedia.shareScreenAndAudioCaptureUnsafeDelegation.message,
+# %1$S is the first party origin.
+# %2$S is the third party origin.
+getUserMedia.shareCameraUnsafeDelegation.message = Bạn có cho phép %1$S cấp quyền cho %2$S truy cập vào máy ảnh của bạn không?
+getUserMedia.shareMicrophoneUnsafeDelegations.message = Bạn có cho phép %1$S cấp quyền cho %2$S truy cập vào micrô của bạn không?
+getUserMedia.shareScreenUnsafeDelegation.message = Bạn có cho phép %1$S cấp quyền cho %2$S xem màn hình của bạn không?
+getUserMedia.shareCameraAndMicrophoneUnsafeDelegation.message = Bạn có cho phép %1$S cấp quyền cho %2$S truy cập máy ảnh và micrô của bạn không?
+getUserMedia.shareCameraAndAudioCaptureUnsafeDelegation.message = Bạn có cho phép %1$S cấp quyền cho %2$S truy cập vào máy ảnh của bạn và nghe âm thanh của thẻ này không?
+getUserMedia.shareScreenAndMicrophoneUnsafeDelegation.message = Bạn có cho phép %1$S cấp quyền cho %2$S truy cập vào micrô của bạn và xem màn hình của bạn không?
+getUserMedia.shareScreenAndAudioCaptureUnsafeDelegation.message = Bạn có 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 không?
+
+# LOCALIZATION NOTE (getUserMedia.shareScreenWarning.message): NB: inserted via innerHTML, so please don't use <, > or & in this string.
+# %S will be the 'learn more' link
+getUserMedia.shareScreenWarning.message = Chỉ chia sẻ màn hình với trang bạn tin tưởng. Chia sẻ có thể cho phép trang web lừa đảo giả danh và đánh cắp dữ liệu cá nhân của bạn. %S
+# LOCALIZATION NOTE (getUserMedia.shareFirefoxWarning.message): NB: inserted via innerHTML, so please don't use <, > or & in this string.
+# %1$S is brandShortName (eg. Firefox)
+# %2$S will be the 'learn more' link
+getUserMedia.shareFirefoxWarning.message = Chỉ chia sẻ %1$S với trang bạn tin tưởng. Chia sẻ có thể cho phép trang web lừa đảo giả danh và đánh cắp dữ liệu cá nhân của bạn. %2$S
+# 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.selectWindowOrScreen.label=Cửa sổ hoặc màn hình để chia sẻ:
+getUserMedia.selectWindowOrScreen.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.dontAllow.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.dontAllow.label = Không cho phép
+getUserMedia.dontAllow.accesskey = D
+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.drmContentPlaying.message2): %S is brandShortName.
+emeNotifications.drmContentPlaying.message2 = 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 %S.
+emeNotifications.drmContentPlaying.button.label = Thiết lập…
+emeNotifications.drmContentPlaying.button.accesskey = 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.message = Bạn phải kích hoạt DRM để phát âm thanh hoặc video trên trang này. %S
+emeNotifications.drmContentDisabled.button.label = Kích hoạt DRM
+emeNotifications.drmContentDisabled.button.accesskey = E
+# LOCALIZATION NOTE(emeNotifications.drmContentDisabled.learnMoreLabel): NB: inserted via innerHTML, so please don't use <, > or & in this string.
+emeNotifications.drmContentDisabled.learnMoreLabel = Tìm hiểu thêm
+
+# 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 - %S is brandShortName
+slowStartup.message = Có vẻ %S khởi động khá chậm.
+slowStartup.helpButton.label = Tìm hiểu làm thế nào để tăng tốc
+slowStartup.helpButton.accesskey = L
+slowStartup.disableNotificationButton.label = Đừng nói với tôi nữa
+slowStartup.disableNotificationButton.accesskey = A
+
+# LOCALIZATION NOTE - %S is brandShortName
+flashHang.message = %S đã thay đổi một số thiết lập Adoble Flash để cải thiện tốc độ.
+flashHang.helpButton.label = Tìm hiểu thêm…
+flashHang.helpButton.accesskey = L
+
+# 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
+
+userContextOpenLink.label = Mở liên kết trong thẻ %S mới
+
+muteTab.label = Tắt tiếng thẻ
+muteTab.accesskey = M
+unmuteTab.label = Bật tiếng thẻ
+unmuteTab.accesskey = m
+playTab.label = Phát âm thanh thẻ
+playTab.accesskey = l
+
+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
+playTabs.label = Phát âm thanh các thẻ
+playTabs.accesskey = y
+
+# 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 (pageAction.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.
+pageAction.sendTabsToDevice.label = Gửi #1 thẻ đến thiết bị
+
+# 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
+
+# LOCALIZATION NOTE (certImminentDistrust.message):
+# Shown in the browser console when visiting a website that is trusted today,
+# but won't be in the future unless the site operator makes a change.
+certImminentDistrust.message = Chứng chỉ bảo mật được sử dụng trên trang web này sẽ không còn được tin cậy trong một bản phát hành trong tương lai. Để biết thêm thông tin, truy cập https://wiki.mozilla.org/CA/Upcoming_Distrust_Actions
+
+midi.Allow.label = Cho phép
+midi.Allow.accesskey = A
+midi.DontAllow.label = Không cho phép
+midi.DontAllow.accesskey = N
+midi.remember=Ghi nhớ quyết định này
+midi.shareWithFile.message = Bạn có cho phép tập tin cục bộ này truy cập thiết bị MIDI của mình không?
+# LOCALIZATION NOTE (midi.shareWithSite.message): %S is the name of the site URL (https://...) requesting MIDI access
+midi.shareWithSite.message = Bạn có cho phép %S truy cập Thiết bị MIDI của mình không?
+midi.shareSysexWithFile.message = Bạn có 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 không?
+# LOCALIZATION NOTE (midi.shareSysexWithSite.message): %S is the name of the site URL (https://...) requesting MIDI access
+midi.shareSysexWithSite.message = Bạn có cho phép %S truy cập thiết bị MIDI của bạn và gửi/nhận tin nhắn SysEx không?
+
+# 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
+
+storageAccess.Allow.label = Cho phép truy cập
+storageAccess.Allow.accesskey = A
+storageAccess.DontAllow.label = Chặn truy cập
+storageAccess.DontAllow.accesskey = B
+# LOCALIZATION NOTE (storageAccess2.message):
+# %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.
+storageAccess2.message = Bạn có cho phép %1$S theo dõi hoạt động duyệt web của mình trên %2$S không?
+
+# LOCALIZATION NOTE (storageAccess3.message, storageAccess.hintText):
+# %1$S and %3$S are both 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.
+storageAccess3.message = Bạn có cho phép %1$S sử dụng cookie và dữ liệu trang web trên %2$S không? Cho phép điều này có thể cho phép %3$S theo dõi những gì bạn làm trên trang web này.
+storageAccess.hintText = Bạn nên chặn quyền truy cập nếu bạn không tin tưởng hoặc không nhận ra %1$S.
+
+
+
+confirmationHint.sendToDevice.label = Đã gửi!
+confirmationHint.copyURL.label = Đã sao chép vào bộ nhớ tạm!
+confirmationHint.pageBookmarked.label = Đã lưu vào Thư viện!
+confirmationHint.addSearchEngine.label = Đã thêm công cụ tìm kiếm!
+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 (livebookmarkMigration.title):
+# Used by the export of user's live bookmarks to an OPML file as a title for the file.
+# %S will be replaced with brandShortName
+livebookmarkMigration.title = Dấu trang trực tiếp %S
+
+# 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
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..4b63820b7b
--- /dev/null
+++ b/l10n-vi/browser/chrome/browser/customizableui/customizableWidgets.properties
@@ -0,0 +1,100 @@
+# 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)
+
+remotetabs-panelmenu.label = Các thẻ đã đồng bộ
+remotetabs-panelmenu.tooltiptext2 = Hiện thẻ từ các thiết bị khác
+
+privatebrowsing-button.label = Cửa sổ riêng tư mới
+# LOCALIZATION NOTE(privatebrowsing-button.tooltiptext): %S is the keyboard shortcut
+privatebrowsing-button.tooltiptext = Mở một cửa sổ duyệt web riêng tư mới (%S)
+
+save-page-button.label = Lưu trang
+# LOCALIZATION NOTE(save-page-button.tooltiptext3): %S is the keyboard shortcut
+save-page-button.tooltiptext3 = Lưu trang này (%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)
+
+open-file-button.label = Mở tập tin
+# LOCALIZATION NOTE (open-file-button.tooltiptext3): %S is the keyboard shortcut.
+open-file-button.tooltiptext3 = Mở một tập tin (%S)
+
+developer-button.label = Nhà phát triển
+# LOCALIZATION NOTE(developer-button.tooltiptext): %S is the keyboard shortcut
+developer-button.tooltiptext2 = Mở bảng công cụ lập trình web (%S)
+
+profiler-button.label = Hiệu suất phát hiện
+profiler-button.tooltiptext = Ghi lại một hồ sơ hiệu suất
+
+sidebar-button.label = Thanh lề
+sidebar-button.tooltiptext2 = Hiện thanh lề
+
+add-ons-button.label = Tiện ích
+# LOCALIZATION NOTE(add-ons-button.tooltiptext3): %S is the keyboard shortcut
+add-ons-button.tooltiptext3 = Quản lý tiện ích mở rộng của bạn (%S)
+
+preferences-button.label = Tùy chỉnh
+preferences-button.tooltiptext2 = Mở tùy thích
+preferences-button.tooltiptext.withshortcut = Mở trang tùy chỉnh (%S)
+# LOCALIZATION NOTE (preferences-button.labelWin): Windows-only label for Options
+preferences-button.labelWin = Tùy chọn
+# LOCALIZATION NOTE (preferences-button.tooltipWin): Windows-only tooltip for Options
+preferences-button.tooltipWin2 = Mở trang tùy chọn
+
+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)
+
+# LOCALIZATION NOTE (characterencoding-button2.label): The \u00ad text at the beginning
+# of the string is used to disable auto hyphenation on the button text when it is displayed
+# in the menu panel.
+characterencoding-button2.label = Bảng mã
+characterencoding-button2.tooltiptext = Hiện tùy chọn chỉnh bảng mã văn bản
+
+email-link-button.label = Gửi liên kết này qua email
+email-link-button.tooltiptext3 = Gửi một thư điện tử chứa liên kết tới trang này
+
+# LOCALIZATION NOTE(quit-button.tooltiptext.linux2): %1$S is the brand name (e.g. Firefox),
+# %2$S is the keyboard shortcut
+quit-button.tooltiptext.linux2 = Thoát %1$S (%2$S)
+# LOCALIZATION NOTE(quit-button.tooltiptext.mac): %1$S is the brand name (e.g. Firefox),
+# %2$S is the keyboard shortcut
+quit-button.tooltiptext.mac = Thoát %1$S (%2$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..e27516b757
--- /dev/null
+++ b/l10n-vi/browser/chrome/browser/downloads/downloads.properties
@@ -0,0 +1,99 @@
+# 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.
+blockedInsecure = Không thể tải xuống tập tin này một cách an toà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 (unblockHeaderUnblock, unblockHeaderOpen,
+# unblockTypeMalware, unblockTypePotentiallyUnwanted2,
+# unblockTypeUncommon2, unblockTip2, unblockButtonOpen,
+# unblockButtonUnblock, unblockButtonConfirmBlock, unblockInsecure):
+# 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.
+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
+
+# LOCALIZATION NOTE (otherDownloads3):
+# 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. Use a
+# semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/Localization_and_Plurals
+otherDownloads3=%1$S tập tin đang tải xuống
+
+# LOCALIZATION NOTE (showLabel, showMacLabel):
+# This is displayed when you hover a download item in the Library widget view.
+# showMacLabel is only shown on Mac OSX.
+showLabel=Mở thư mục chứa
+showMacLabel=Mở trong Finder
+# LOCALIZATION NOTE (openFileLabel):
+# Displayed when hovering a complete download, indicates that it's possible to
+# open the file using an app available in the system.
+openFileLabel=Mở tập tin
+# LOCALIZATION NOTE (retryLabel):
+# Displayed when hovering a download which is able to be retried by users,
+# indicates that it's possible to download this file again.
+retryLabel=Thử tải lại
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/fxmonitor.properties b/l10n-vi/browser/chrome/browser/fxmonitor.properties
new file mode 100644
index 0000000000..2c5bb800ea
--- /dev/null
+++ b/l10n-vi/browser/chrome/browser/fxmonitor.properties
@@ -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 https://mozilla.org/MPL/2.0/.
+
+# 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 of the popup
+fxmonitor.popupHeader=Đã có tài khoản trên trang web này?
+# Firefox Monitor must be treated as a brand, and kept in English.
+# It cannot be:
+# - Declined to adapt to grammatical case.
+# - Transliterated.
+# - Translated.
+fxmonitor.brandName=Firefox Monitor
+# Tooltip text for the popup's anchor icon in the URL bar
+# %S is replaced with fxmonitor.brandName.
+fxmonitor.anchorIcon.tooltiptext=Đã báo cáo trang web cho %S
+# Text content of popup. Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# This version is only used when the number of accounts is smaller than 100,000.
+# The placeholders are:
+# #1: The exact number of accounts compromised in the breach.
+# #2: The name of the breached site.
+# #3: The year of the breach.
+# #4: The brand name ("Firefox Monitor").
+fxmonitor.popupText=#1 tài khoản từ #2 đã bị xâm phạm trong năm #3. Kiểm tra trong #4 để xem bạn có gặp rủi ro không.
+# Text content of popup. Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# This version is only used when the number of accounts is greater than 100,000.
+# The placeholders are:
+# #1: The number of accounts compromised in the breach, rounded down to the
+# most significant digit.
+# Ex.: 234,567 -> More than 200,000 accounts [...]
+# 345,678,901 -> More than 300,000,000 accounts [...]
+# 4,567,890,123 -> More than 4,000,000,000 accounts [...]
+# #2: The name of the breached site.
+# #3: The year of the breach.
+# #4: The brand name ("Firefox Monitor").
+fxmonitor.popupTextRounded=Hơn #1 tài khoản từ #2 đã bị xâm phạm ở #3. Kiểm tra trong #4 để xem bạn có gặp rủi ro không.
+# %S is replaced with fxmonitor.brandName.
+fxmonitor.checkButton.label=Kiểm tra trong %S
+fxmonitor.checkButton.accessKey=C
+fxmonitor.dismissButton.label=Bỏ qua
+fxmonitor.dismissButton.accessKey=D
+# %S is replaced with fxmonitor.brandName.
+fxmonitor.neverShowButton.label=Không bao giờ hiển thị cảnh báo %S
+fxmonitor.neverShowButton.accessKey=N
diff --git a/l10n-vi/browser/chrome/browser/migration/migration.dtd b/l10n-vi/browser/chrome/browser/migration/migration.dtd
new file mode 100644
index 0000000000..d89f8d664c
--- /dev/null
+++ b/l10n-vi/browser/chrome/browser/migration/migration.dtd
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/l10n-vi/browser/chrome/browser/migration/migration.properties b/l10n-vi/browser/chrome/browser/migration/migration.properties
new file mode 100644
index 0000000000..b181ec1843
--- /dev/null
+++ b/l10n-vi/browser/chrome/browser/migration/migration.properties
@@ -0,0 +1,76 @@
+# 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/.
+
+profileName_format=%S %S
+
+# Browser Specific
+sourceNameIE=Internet Explorer
+sourceNameEdge=Microsoft Edge
+sourceNameEdgeBeta=Microsoft Edge Beta
+sourceNameSafari=Safari
+sourceNameCanary=Google Chrome Canary
+sourceNameChrome=Google Chrome
+sourceNameChromeBeta=Google Chrome Beta
+sourceNameChromeDev=Google Chrome Dev
+sourceNameChromium=Chromium
+sourceNameFirefox=Mozilla Firefox
+sourceName360se=360 Secure Browser
+
+importedBookmarksFolder=Từ %S
+
+importedSafariReadingList=Đang đọc danh sách (Từ Safari)
+importedEdgeReadingList=Đang đọc danh sách (từ Edge)
+
+# Import Sources
+# Note: When adding an import source for profile reset, add the string name to
+# resetProfile.js if it should be listed in the reset dialog.
+1_ie=Tùy chọn Internet
+1_edge=Thiết lập
+1_safari=Tùy chỉnh
+1_chrome=Tùy chỉnh
+1_360se=Tùy chỉnh
+
+2_ie=Cookie
+2_edge=Cookie
+2_safari=Cookie
+2_chrome=Cookie
+2_firefox=Cookie
+2_360se=Cookie
+
+4_ie=Lịch sử duyệt web
+4_edge=Lịch sử duyệt web
+4_safari=Lịch sử duyệt web
+4_chrome=Lịch sử duyệt web
+4_firefox_history_and_bookmarks=Lịch sử duyệt web và dấu trang
+4_360se=Lịch sử duyệt web
+
+8_ie=Lịch sử các biểu mẫu đã lưu
+8_edge=Lịch sử các biểu mẫu đã lưu
+8_safari=Lịch sử các biểu mẫu đã lưu
+8_chrome=Lịch sử các Biểu mẫu đã lưu
+8_firefox=Lịch sử các Biểu mẫu đã lưu
+8_360se=Lịch sử các biểu mẫu đã lưu
+
+16_ie=Mật khẩu đã lưu
+16_edge=Mật khẩu đã lưu
+16_safari=Mật khẩu đã lưu
+16_chrome=Mật khẩu đã lưu
+16_firefox=Mật khẩu đã lưu
+16_360se=Mật khẩu đã lưu
+
+32_ie=Ưa thích
+32_edge=Ưa thích
+32_safari=Dấu trang
+32_chrome=Dấu trang
+32_360se=Dấu trang
+
+64_ie=Dữ liệu Khác
+64_edge=Dữ liệu khác
+64_safari=Dữ liệu Khác
+64_chrome=Dữ liệu Khác
+64_firefox_other=Dữ liệu Khác
+64_360se=Dữ liệu khác
+
+128_firefox=Cửa Sổ và Thẻ
+
diff --git a/l10n-vi/browser/chrome/browser/newInstall.dtd b/l10n-vi/browser/chrome/browser/newInstall.dtd
new file mode 100644
index 0000000000..e42ad36b13
--- /dev/null
+++ b/l10n-vi/browser/chrome/browser/newInstall.dtd
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
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..3374ae32cb
--- /dev/null
+++ b/l10n-vi/browser/chrome/browser/places/bookmarkProperties.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/.
+
+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"
+
+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.dtd b/l10n-vi/browser/chrome/browser/places/places.dtd
new file mode 100644
index 0000000000..85e2552ead
--- /dev/null
+++ b/l10n-vi/browser/chrome/browser/places/places.dtd
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Z">
+
+ A">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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..7cd481c776
--- /dev/null
+++ b/l10n-vi/browser/chrome/browser/places/places.properties
@@ -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/.
+
+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.title=Lỗi Khởi Động Trình Duyệt
+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.
+lockPromptInfoButton.label=Tìm hiểu thêm
+lockPromptInfoButton.accessKey=h
+
+# 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
diff --git a/l10n-vi/browser/chrome/browser/pocket.properties b/l10n-vi/browser/chrome/browser/pocket.properties
new file mode 100644
index 0000000000..1a6ec8baa4
--- /dev/null
+++ b/l10n-vi/browser/chrome/browser/pocket.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 http://mozilla.org/MPL/2.0/.
+
+addtags = Thêm các tag
+alreadyhaveacct = Bạn đã có tài khoản Pocket?
+errorgeneric = Đã xảy ra lỗi khi đang lưu vào Pocket.
+learnmore = Tìm hiểu thêm
+loginnow = Đăng nhập
+maxtaglength = Các tag được giới hạn trong 25 ký tự
+onlylinkssaved = Chỉ các các liên kết mới có thể được lưu lại
+pagenotsaved = Trang chưa được lưu
+pageremoved = Trang đã bị xóa
+pagesaved = Đã được lưu vào Pocket
+processingremove = Đang xóa trang...
+processingtags = Đang thêm các tag...
+removepage = Xóa trang
+save = Lưu lại
+saving = Đang lưu lại...
+signupemail = Đăng ký bằng email
+signuptosave = Đăng ký Pocket. Hoàn toàn miễn phí.
+suggestedtags = Các tag được đề xuất
+tagline = Lưu bài viết và video từ Firefox để xem trên Pocket trên bất kỳ thiết bị nào, bất cứ lúc nào.
+taglinestory_one = Nhấp vào nút Pocket để lưu bất kỳ bài viết, video hoặc trang nào từ Firefox.
+taglinestory_two = Xem trên Pocket ở bất cứ thiết bị và thời gian nào.
+tagssaved = Các tag đã được thêm vào
+tos = Nếu tiếp tục, bạn đã đồng với Điều khoản dịch vụ và Chính sách bảo mật của Pocket
+tryitnow = Thử nó ngay
+signupfirefox = Đăng ký với Firefox
+viewlist = Xem danh sách
+
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..6e8a0527fc
--- /dev/null
+++ b/l10n-vi/browser/chrome/browser/search.properties
@@ -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/.
+
+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 (cmd_addFoundEngine): %S is replaced by the name of
+# a search engine offered by a web page. Each engine is displayed as a
+# menuitem at the bottom of the search panel.
+cmd_addFoundEngine=Thêm "%S"
+# LOCALIZATION NOTE (cmd_addFoundEngineMenu): When more than 5 engines
+# are offered by a web page, instead of listing all of them in the
+# search panel using the cmd_addFoundEngine string, they will be
+# grouped in a submenu using cmd_addFoundEngineMenu as a label.
+cmd_addFoundEngineMenu=Thêm dịch vụ tìm kiếm
+
+searchAddFoundEngine2=Thêm công cụ tìm kiếm
+
+# 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..936c078090
--- /dev/null
+++ b/l10n-vi/browser/chrome/browser/shellservice.properties
@@ -0,0 +1,28 @@
+# 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 (setDefaultBrowserMessage2, setDefaultBrowserConfirm.label):
+# %S will be replaced by brandShortName
+setDefaultBrowserMessage2 = Đặt %S làm trình duyệt mặc định để tận dụng được tối đa
+setDefaultBrowserConfirm.label = Đặt %S làm trình duyệt mặc định
+setDefaultBrowserConfirm.accesskey = m
+setDefaultBrowserOptions.label = Tùy chọn
+setDefaultBrowserOptions.accesskey = y
+setDefaultBrowserNotNow.label = Không phải bây giờ
+setDefaultBrowserNotNow.accesskey = K
+setDefaultBrowserNever.label = Đừng hỏi lại
+setDefaultBrowserNever.accesskey = h
+
+# 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. 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..2c5c8a1f1e
--- /dev/null
+++ b/l10n-vi/browser/chrome/browser/sitePermissions.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/.
+
+# 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 = Dùng máy quay
+permission.microphone.label = Dùng micrô
+permission.screen.label = Chia sẻ màn hình
+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
+permission.https-only-load-insecure.label = Sử dụng HTTP không an toàn
+# 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/syncBrand.dtd b/l10n-vi/browser/chrome/browser/syncBrand.dtd
new file mode 100644
index 0000000000..bb7caaba7f
--- /dev/null
+++ b/l10n-vi/browser/chrome/browser/syncBrand.dtd
@@ -0,0 +1,6 @@
+
+
+
+
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..1c7247f221
--- /dev/null
+++ b/l10n-vi/browser/chrome/browser/tabbrowser.properties
@@ -0,0 +1,128 @@
+# 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.closeTab=Đóng thẻ
+tabs.close=Đóng
+tabs.closeTitleTabs=Đóng thẻ?
+tabs.closeAndQuitTitleTabs=Thoát và đóng thẻ?
+tabs.closeAndQuitTitleTabsWin=Thoát và đóng thẻ?
+# LOCALIZATION NOTE (tabs.closeWarningMultiple):
+# 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.closeWarningMultiple=Bạn có chắc rằng bạn muốn đóng #1 thẻ này không?
+# LOCALIZATION NOTE (tabs.closeWarningMultipleSessionRestore2):
+# 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 tabs.
+# If
+# "Tabs in non-private windows will be restored when you restart"
+# is difficult to translate, you could translate
+# "Tabs (except those in private windows) will be restored when you restart"
+# instead.
+tabs.closeWarningMultipleSessionRestore2=Bạn chuẩn bị đóng #1 thẻ. Các thẻ không nằm ở trong cửa sổ duyệt web riêng tư sẽ được khôi phục khi bạn khởi động lại. Bạn có chắc chắn muốn tiếp tục?
+tabs.closeButtonMultiple=Đóng thẻ
+tabs.closeWarningPromptMe=Cảnh báo khi tôi đóng nhiều thẻ một lúc
+
+# LOCALIZATION NOTE (tabs.closeWarningMultipleWindows):
+# 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
+# of tabs.closeWarningMultipleWindowsTabSnippet, which will contain the number
+# of tabs in these windows.
+# Note that every one of these plural forms must contain one instance of '%S'.
+tabs.closeWarningMultipleWindows=Bạn đang chuẩn bị đóng #1 cửa sổ %S. Bạn có muốn tiếp tục?
+# LOCALIZATION NOTE (tabs.closeWarningMultipleWindowsSessionRestore2):
+# 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
+# of tabs.closeWarningMultipleWindowsTabSnippet, which will contain the number
+# of tabs in these windows.
+# If
+# "Tabs in non-private windows will be restored when you restart"
+# is difficult to translate, you could translate
+# "Tabs (except those in private windows) will be restored when you restart"
+# instead.
+# Note that every one of these plural forms must contain one instance of '%S'.
+tabs.closeWarningMultipleWindowsSessionRestore2=Bạn chuẩn bị đóng #1 cửa sổ %S. Các thẻ không nằm ở trong cửa sổ duyệt web riêng tư sẽ được khôi phục khi bạn khởi động lại. Bạn có chắc chắn muốn tiếp tục?
+
+# LOCALIZATION NOTE (tabs.closeWarningMultipleWindowsTabSnippet):
+# 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 windows which must contain multiple tabs (in total).
+# This string will be inserted in tabs.closeWarningMultipleWindows
+tabs.closeWarningMultipleWindowsTabSnippet=với #1 thẻ
+
+# 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.allowTabFocusByPromptForSite):
+# %S is the hostname of the site where dialogs are allowed to switch tabs
+tabs.allowTabFocusByPromptForSite=Cho phép hộp hội thoại từ %S đưa bạn đến thẻ của chúng
+
+# 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..af4cafb57b
--- /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=Độ 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..3c74703cda
--- /dev/null
+++ b/l10n-vi/browser/chrome/browser/translation.dtd
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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..87ce668244
--- /dev/null
+++ b/l10n-vi/browser/chrome/overrides/appstrings.properties
@@ -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/.
+
+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.
+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.
+## 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..a2b39d9835
--- /dev/null
+++ b/l10n-vi/browser/chrome/overrides/netError.dtd
@@ -0,0 +1,139 @@
+
+
+
+%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.
">
+
+
+
+
+
+
+
Vui lòng liên hệ với chủ trang web để báo với họ 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/chrome/overrides/settingsChange.dtd b/l10n-vi/browser/chrome/overrides/settingsChange.dtd
new file mode 100644
index 0000000000..7a79d57311
--- /dev/null
+++ b/l10n-vi/browser/chrome/overrides/settingsChange.dtd
@@ -0,0 +1,7 @@
+
+
+
+
+
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..a9745f1c34
--- /dev/null
+++ b/l10n-vi/browser/extensions/formautofill/formautofill.properties
@@ -0,0 +1,241 @@
+# 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 (autofillSecurityOptionsLink, autofillSecurityOptionsLinkOSX): These strings are used
+# in the doorhanger for saving credit card info. The link leads users to Form Autofill browser preferences.
+autofillSecurityOptionsLink = Tùy chọn bảo mật & tự động điền mẫu
+autofillSecurityOptionsLinkOSX = Tùy chọn tự động điền & bảo mật biểu 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 ( (autocompleteFooterOptionShort, autocompleteFooterOptionOSXShort): Used as a label for the button,
+# displayed at the bottom of the dropdown suggestion, to open Form Autofill browser preferences.
+autocompleteFooterOptionShort = Tùy chọn khác
+autocompleteFooterOptionOSXShort = Tùy chỉnh
+
+# 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.
+editCreditCardPasswordPrompt.macosx = %S đang cố gắng hiển thị thông tin thẻ tín dụng.
+# 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.
+useCreditCardPasswordPrompt.macosx = %S đang cố gắng sử dụng thông tin thẻ tín dụng được lưu trữ.
+# 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..72607133f3
--- /dev/null
+++ b/l10n-vi/browser/installer/custom.properties
@@ -0,0 +1,92 @@
+# 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.
+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
+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..7af98b26ad
--- /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 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 tới "
+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/pdfviewer/chrome.properties b/l10n-vi/browser/pdfviewer/chrome.properties
new file mode 100644
index 0000000000..560617b8be
--- /dev/null
+++ b/l10n-vi/browser/pdfviewer/chrome.properties
@@ -0,0 +1,19 @@
+# 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.
+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..71e167fa73
--- /dev/null
+++ b/l10n-vi/browser/pdfviewer/viewer.properties
@@ -0,0 +1,253 @@
+# 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
+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
+
+# 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
+first_page_label=Về trang đầu
+last_page.title=Đến trang cuối
+last_page.label=Đế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_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ồ
+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_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_notification.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)
+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 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_canvas): "{{page}}" will be replaced by the page number.
+page_canvas=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_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}}
+rendering_error=Lỗi khi hiển thị trang.
+
+# 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_error_indicator=Lỗ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ạ.
+
+# 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.
diff --git a/l10n-vi/browser/profile/bookmarks.inc b/l10n-vi/browser/profile/bookmarks.inc
new file mode 100644
index 0000000000..7e839af77e
--- /dev/null
+++ b/l10n-vi/browser/profile/bookmarks.inc
@@ -0,0 +1,72 @@
+# 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
+
+# LOCALIZATION NOTE: The 'en-US' strings in the URLs will be replaced with
+# your locale code, and link to your translated pages as soon as they're
+# live.
+
+#define bookmarks_title Dấu trang
+#define bookmarks_heading Dấu trang
+
+#define bookmarks_toolbarfolder Thư mục thanh dấu trang
+#define 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
+
+# LOCALIZATION NOTE (getting_started):
+# link title for https://www.mozilla.org/en-US/firefox/central/
+#define getting_started Bắt đầu
+
+# LOCALIZATION NOTE (firefox_heading):
+# Firefox links folder name
+#define firefox_heading Mozilla Firefox
+
+# LOCALIZATION NOTE (firefox_help):
+# link title for https://www.mozilla.org/en-US/firefox/help/
+#define firefox_help Trợ giúp và Hướng dẫn
+
+# LOCALIZATION NOTE (firefox_customize):
+# link title for https://www.mozilla.org/en-US/firefox/customize/
+#define firefox_customize Tùy biến Firefox
+
+# LOCALIZATION NOTE (firefox_community):
+# link title for https://www.mozilla.org/en-US/contribute/
+#define firefox_community Tham gia đóng góp
+
+# LOCALIZATION NOTE (firefox_about):
+# link title for https://www.mozilla.org/en-US/about/
+#define firefox_about Giới thiệu về Chúng tôi
+
+# LOCALIZATION NOTE (nightly_heading):
+# Firefox Nightly links folder name
+#define nightly_heading Tài nguyên Firefox Nightly
+
+# LOCALIZATION NOTE (nightly_blog):
+# Nightly builds only, link title for https://blog.nightly.mozilla.org/
+#define nightly_blog Nhật ký Firefox Nightly
+
+# LOCALIZATION NOTE (bugzilla):
+# Nightly builds only, link title for https://bugzilla.mozilla.org/
+#define bugzilla Quản lý lỗi của Mozilla
+
+# LOCALIZATION NOTE (mdn):
+# Nightly builds only, link title for https://developer.mozilla.org/
+#define mdn Mạng lưới nhà phát triển của Mozilla
+
+# LOCALIZATION NOTE (nightly_tester_tools):
+# Nightly builds only, link title for https://addons.mozilla.org/en-US/firefox/addon/nightly-tester-tools/
+#define nightly_tester_tools Các công cụ thử nghiệm Nightly
+
+# LOCALIZATION NOTE (crashes):
+# Nightly builds only, link title for about:crashes
+#define crashes Tất cả những sự cố của bạn
+
+# LOCALIZATION NOTE (irc):
+# Nightly builds only, link title for ircs://irc.mozilla.org/nightly
+#define irc Thảo luận về Nightly trên IRC
+
+# LOCALIZATION NOTE (planet):
+# Nightly builds only, link title for https://planet.mozilla.org/
+#define planet Planet Mozilla
+
+#unfilter emptyLines
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-ics-file-dialog.ftl b/l10n-vi/calendar/calendar/calendar-ics-file-dialog.ftl
new file mode 100644
index 0000000000..5abe019aad
--- /dev/null
+++ b/l10n-vi/calendar/calendar/calendar-ics-file-dialog.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-ics-file-window-2 =
+ .title = Nhập sự kiện và nhiệm 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 nhiệm 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-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 nhiệm vụ.
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..be89f557d3
--- /dev/null
+++ b/l10n-vi/calendar/calendar/calendar-widgets.ftl
@@ -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/.
+
+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ụ.
diff --git a/l10n-vi/calendar/calendar/category-dialog.ftl b/l10n-vi/calendar/calendar/category-dialog.ftl
new file mode 100644
index 0000000000..10cb1a0afa
--- /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 = 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..bdcff23ef9
--- /dev/null
+++ b/l10n-vi/calendar/calendar/preferences.ftl
@@ -0,0 +1,186 @@
+# 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-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 }
+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
+# Note: "Upcoming" is the name of a section and the translation must match the
+# translation of that section name (calendar.upcoming.button.label). Also,
+# it should be upper case (as a proper name) if the target language permits.
+soon-label =
+ .value = Phần sắp tới cho thấy:
+ .accesskey = U
+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
+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
+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..cc37090461
--- /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ỉ bỏ qua - 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..0ad05495b6
--- /dev/null
+++ b/l10n-vi/calendar/chrome/calendar/calendar-event-dialog.dtd
@@ -0,0 +1,428 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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..6b37ddf68b
--- /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 nhiệm 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 nhiệm 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 nhiệm 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 nhiệm 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 nhiệm 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 nhiệm 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 nhiệm 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-subscriptions-dialog.dtd b/l10n-vi/calendar/chrome/calendar/calendar-subscriptions-dialog.dtd
new file mode 100644
index 0000000000..eaf7d2197d
--- /dev/null
+++ b/l10n-vi/calendar/chrome/calendar/calendar-subscriptions-dialog.dtd
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/l10n-vi/calendar/chrome/calendar/calendar.dtd b/l10n-vi/calendar/chrome/calendar/calendar.dtd
new file mode 100644
index 0000000000..ee2ec0368e
--- /dev/null
+++ b/l10n-vi/calendar/chrome/calendar/calendar.dtd
@@ -0,0 +1,411 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/l10n-vi/calendar/chrome/calendar/calendar.properties b/l10n-vi/calendar/chrome/calendar/calendar.properties
new file mode 100644
index 0000000000..ae508f4c06
--- /dev/null
+++ b/l10n-vi/calendar/chrome/calendar/calendar.properties
@@ -0,0 +1,818 @@
+# 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/.
+
+# Misc. strings in JS
+
+# LOCALIZATION NOTE (PrintPreviewWindowTitle):
+# %1$S will be replaced with the title of a html frame
+PrintPreviewWindowTitle=Xem trước Bản in của %1$S
+Untitled=Trống
+
+# 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 Tạm
+
+# 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 (noItemsInCalendarFile):
+# %1$S will be replaced with file path
+noItemsInCalendarFile=Không thể nhập từ %1$S. Không có mục nhập trong tập tin này.
+
+# 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=MozillaLich
+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.
+unknownTimezonesError=Một lỗi đã xảy ra khi đang chuẩn bị dùng bộ lịch nằm tại %1$S. Bộ lịch có thể trỏ tới các múi giờ chưa được biết tới. Vui lòng cài đặt gói calendar-timezones.xpi mới nhất.
+missingCalendarTimezonesError=Không tìm thấy múi giờ! Vui lòng cài đặt gói calendar-timezones.xpi.
+
+# 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
+tooNewSchemaErrorBoxTitle=Lịch của bạn không tương thích với phiên bản này của %1$S
+
+# LOCALIZATION NOTE (tooNewSchemaErrorBoxTextLightning):
+# %1$S will be replaced with the name of the calendar application e.g. 'Lightning'
+# %2$S will be replaced with the name of the host application 'calendar'
+tooNewSchemaErrorBoxTextLightning=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 của %1$S, và việc tiếp tục có thể sẽ khiến thông tin bị mất hoặc hư hại. %1$S bây giờ sẽ bị vô hiệu hóa và %2$S sẽ khởi động lại.
+
+# LOCALIZATION NOTE (tooNewSchemaButtonRestart):
+# %1$S will be replaced with the name of the host application 'Calendar'
+tooNewSchemaButtonRestart=Khởi động lại %1$S
+
+# LOCALIZATION NOTE (tooNewSchemaButtonQuit):
+# %1$S will be replaced with the name of the host application 'Calendar'
+tooNewSchemaButtonQuit=Thoát %1$S
+
+# 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:
+
+# Tooltips for attendees and organizer in event and summary dialog
+
+# LOCALIZATION_NOTE(dialog.tooltip.attendee.combined): tooltip for itip icon in summary/event dialog.
+# 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 dialog.tooltip.attendeeRole2.*
+# %2$S - value of dialog.tooltip.attendeePartStat2.*
+dialog.tooltip.attendee.combined=%1$S %2$S
+
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeRole2.CHAIR): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - value of dialog.tooltip.attendeeUserType2.*
+dialog.tooltip.attendeeRole2.CHAIR=%1$S chủ trì sự kiện.
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeRole2.NON-PARTICIPANT): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - value of dialog.tooltip.attendeeUserType2.*
+dialog.tooltip.attendeeRole2.NON-PARTICIPANT=%1$S là người không tham gia.
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeRole2.OPT-PARTICIPANT): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - value of dialog.tooltip.attendeeUserType2.*
+dialog.tooltip.attendeeRole2.OPT-PARTICIPANT=%1$S là người tham dự tùy chọn.
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeRole2.REQ-PARTICIPANT): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - value of dialog.tooltip.attendeeUserType2.*
+dialog.tooltip.attendeeRole2.REQ-PARTICIPANT=%1$S là người tham gia bắt buộc.
+
+# LOCALIZATION_NOTE(dialog.tooltip.attendeePartStat2.ACCEPTED): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - common name or email address of the attendee
+dialog.tooltip.attendeePartStat2.ACCEPTED=%1$S đã xác nhận tham dự.
+# LOCALIZATION_NOTE(dialog.tooltip.attendeePartStat2.DECLINED): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - common name or email address of the attendee
+dialog.tooltip.attendeePartStat2.DECLINED=%1$S đã từ chối tham dự.
+# LOCALIZATION_NOTE(dialog.tooltip.attendeePartStat2.DELEGATED): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - common name or email address of the attendee
+dialog.tooltip.attendeePartStat2.DELEGATED=%1$S đã ủy quyền tham dự.
+# LOCALIZATION_NOTE(dialog.tooltip.attendeePartStat2.NEEDS-ACTION): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - common name or email address of the attendee
+dialog.tooltip.attendeePartStat2.NEEDS-ACTION=%1$S vẫn cần trả lời.
+# LOCALIZATION_NOTE(dialog.tooltip.attendeePartStat2.TENTATIVE): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - common name or email address of the attendee
+dialog.tooltip.attendeePartStat2.TENTATIVE=%1$S đã xác nhận tham dự dự kiến.
+
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeUserType2.INDIVIDUAL): used to compose
+# dialog.tooltip.attendeeRole2.*
+# %1$S - email address or common name representing individual attendee
+dialog.tooltip.attendeeUserType2.INDIVIDUAL=%1$S
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeUserType2.GROUP): used to compose
+# dialog.tooltip.attendeeRole2.*
+# %1$S - email address or common name representing a group (e.g. a distribution list)
+dialog.tooltip.attendeeUserType2.GROUP=%1$S (nhóm)
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeUserType2.RESOURCE): used to compose
+# dialog.tooltip.attendeeRole2.*
+# %1$S - email address or common name representing a resource (e.g. projector)
+dialog.tooltip.attendeeUserType2.RESOURCE=%1$S (tài nguyên)
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeUserType2.ROOM): used to compose
+# dialog.tooltip.attendeeRole2.*
+# %1$S - email address or common name representing a room
+dialog.tooltip.attendeeUserType2.ROOM=%1$S (phòng)
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeUserType2.UNKNOWN): used to compose
+# dialog.tooltip.attendeeRole2.*
+# %1$S - email address or common name representing an attendee of unknown type
+dialog.tooltip.attendeeUserType2.UNKNOWN=%1$S
+
+#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)
+filterXml=Tài liệu XML (%1$S)
+filterHtml=Trang Web (%1$S)
+filterOutlookCsv=Giá trị Phân tách bằng Dấu phẩy từ Outlook (%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ờ bản địa '%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ờ 'trôi nổi'.\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 khá 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
+formatListName = Danh sách
+weekPrinterName = Kế hoạch Hàng tuần
+monthPrinterName = Kẻ ô Hàng tháng
+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 list layout print and html 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 (abbreviationOfWeek):
+# 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.
+abbreviationOfWeek=%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ụ
+deleteTaskMessage=Bạn có thật sự muốn xóa Tác vụ này không?
+deleteTaskAccesskey=X
+deleteItemLabel=Xóa
+deleteItemMessage=Bạn có thật sự muốn xóa Mục này không?
+deleteItemAccesskey=X
+deleteEventLabel=Xóa Sự Kiện
+deleteEventMessage=Bạn có thật sự muốn xóa Sự kiện này không?
+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
+
+# LOCALIZATION_NOTE(dialog.attendee.append.delegatedFrom): this is appended behind an attendee name
+# in the tooltip and the visible name for an attendee in the event summary dialog - don't add
+# leading or trailing whitespaces here
+# %1$S - a single delegatee or a comma separated list of delegatees
+# delegation is different from simple invitation forwarding - in case of delegation the original
+# invited attendee gets replaced
+dialog.attendee.append.delegatedFrom=(được ủy quyền từ %1$S)
+# LOCALIZATION_NOTE(dialog.attendee.append.delegatedTo): this is appended behind an attendee name
+# in the tooltip for an attendee in the event summary dialog - don't add leading or trailing
+# whitespaces here
+# delegation is different from simple invitation forwarding - in case of delegation the original
+# invited attendee gets replaced
+dialog.attendee.append.delegatedTo=(được ủy quyền cho %1$S)
+
+# 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..115f4bb7ac
--- /dev/null
+++ b/l10n-vi/calendar/chrome/calendar/dialogs/calendar-event-dialog-reminder.dtd
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/l10n-vi/calendar/chrome/calendar/global.dtd b/l10n-vi/calendar/chrome/calendar/global.dtd
new file mode 100644
index 0000000000..29ffa16813
--- /dev/null
+++ b/l10n-vi/calendar/chrome/calendar/global.dtd
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/l10n-vi/calendar/chrome/calendar/menuOverlay.dtd b/l10n-vi/calendar/chrome/calendar/menuOverlay.dtd
new file mode 100644
index 0000000000..dd31743b91
--- /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..04b68c2bcd
--- /dev/null
+++ b/l10n-vi/calendar/chrome/calendar/timezones.properties
@@ -0,0 +1,488 @@
+# 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/.
+
+# extension:
+extensions.calendar-timezones@mozilla.org.name=Định nghĩa múi giờ cho Mozilla Calendar
+extensions.calendar-timezones@mozilla.org.description=Định nghĩa múi giờ theo yêu cầu của Lightning
+extensions.calendar-timezones@mozilla.org.creator=Dự án Mozilla Calendar
+
+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
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..c87a6eccc7
--- /dev/null
+++ b/l10n-vi/calendar/chrome/lightning/lightning.dtd
@@ -0,0 +1,116 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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/dateFormat.properties b/l10n-vi/chat/dateFormat.properties
new file mode 100644
index 0000000000..58c9c512a5
--- /dev/null
+++ b/l10n-vi/chat/dateFormat.properties
@@ -0,0 +1,62 @@
+# 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/.
+
+month.1.Mmm=thg 1
+month.2.Mmm=thg 2
+month.3.Mmm=thg 3
+month.4.Mmm=thg 4
+month.5.Mmm=thg 5
+month.6.Mmm=thg 6
+month.7.Mmm=thg 7
+month.8.Mmm=thg 8
+month.9.Mmm=thg 9
+month.10.Mmm=thg 10
+month.11.Mmm=thg 11
+month.12.Mmm=thg 12
+
+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
+
+day.1.name=chủ nhật
+day.2.name=thứ 2
+day.3.name=thứ 3
+day.4.name=thứ 4
+day.5.name=thứ 5
+day.6.name=thứ 6
+day.7.name=thứ 7
+
+day.1.Mmm=CN
+day.2.Mmm=th 2
+day.3.Mmm=th 3
+day.4.Mmm=th 4
+day.5.Mmm=th 5
+day.6.Mmm=th 6
+day.7.Mmm=th 7
+
+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
+
+noon=Trưa
+midnight=Nửa đêm
+
+AllDay=Cả ngày
+
+# LOCALIZATION NOTE (finduri-MonthYear):
+# %1$S is the month name, %2$S is the year (4 digits format).
+finduri-MonthYear=%1$S năm %2$S
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..7e9d0c713f
--- /dev/null
+++ b/l10n-vi/chat/imtooltip.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/.
+
+buddy.username=Tên đăng nhập
+buddy.account=Tài khoản
+contact.tags=Nhãn
+
+otr.tag=Trạng thái OTR
+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..9db435d4ea
--- /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ị mờ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ị mờ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.properties b/l10n-vi/chat/matrix.properties
new file mode 100644
index 0000000000..9f6f680bbb
--- /dev/null
+++ b/l10n-vi/chat/matrix.properties
@@ -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/.
+
+# LOCALIZATION NOTE (options.*):
+# These are the protocol specific options shown in the account manager and
+# account wizard windows.
+options.connectServer=Máy chủ
+options.connectPort=Cổng
+
+# 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
diff --git a/l10n-vi/chat/skype.properties b/l10n-vi/chat/skype.properties
new file mode 100644
index 0000000000..b14e6a2fe8
--- /dev/null
+++ b/l10n-vi/chat/skype.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/.
+
+# LOCALIZATION NOTE (connection.*):
+# These will show in the account manager to show progress during a connection.
+connecting.authenticating=Đang chứng thực
+connecting.registrationToken=Đang nhận token đăng ký
+
+# LOCALIZATION NOTE (error.*):
+# These will show in the account manager if the account is disconnected
+# because of an error.
+error.auth=Không thể xác thực với máy chủ
+error.registrationToken=Không thể nhận được token đăng ký
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..2d5d1320fe
--- /dev/null
+++ b/l10n-vi/chat/xmpp.properties
@@ -0,0 +1,238 @@
+# 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.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.timedOut=Đã hết thời gian kết nối
+connection.error.startTLSRequired=Máy chủ cần mã hóa nhưng mà bạn đã tắt
+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.authenticationFailure=Lỗi xác thực
+connection.error.notAuthorized=Chưa được uỷ quyền (Sai mật khẩu?)
+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.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.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.
+# 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.
+# 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.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.
+# %S is the jid that is invalid.
+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.
+
+# LOCALIZATION NOTE (conversation.error.version.*):
+# %S is the name of the recipient.
+
+# 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.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.
+
+# 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ị kick 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.
+# %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.
+
+# 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.
+# %1$S is the person who changed the room configuration.
+
+# 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.
+
+# 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".
+
+# 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 (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.part2=%S [<message>]: Rời khỏi phòng hiện tại và để lại tin nhắn.
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..07dea82a21
--- /dev/null
+++ b/l10n-vi/devtools/client/aboutdebugging.ftl
@@ -0,0 +1,394 @@
+# 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
+
+# Temporary text displayed in sidebar items representing remote runtimes after
+# successfully connecting to them. Temporary UI, do not localize.
+about-debugging-sidebar-item-connected-label = Đã 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://developer.mozilla.org/docs/Tools/about: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://developer.mozilla.org/docs/Tools/Remote_Debugging/Debugging_over_USB
+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://developer.mozilla.org/en-US/docs/Tools/Remote_Debugging/Debugging_over_a_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 MDN.
+# https://developer.mozilla.org/en-US/docs/Tools/about%3Adebugging#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://developer.mozilla.org/docs/Tools/about:debugging#Troubleshooting
+# { $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://developer.mozilla.org/docs/Tools/about:debugging#Troubleshooting
+# { $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
+
+# 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
+
+# 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..bd49dcbf86
--- /dev/null
+++ b/l10n-vi/devtools/client/accessibility.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/.
+
+
+### 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.
+
+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..8a0b5742a3
--- /dev/null
+++ b/l10n-vi/devtools/client/accessibility.properties
@@ -0,0 +1,310 @@
+# 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 (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.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=Dịch vụ truy cập không thể được tắt. Nó được sử dụng bên ngoài công cụ dành cho 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ụ khác dành cho nhà phát triển 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.beta): A title text for the features in the
+# accessibility panel that are currently in beta.
+accessibility.beta=beta
+
+# 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.deuteranomaly): This label is shown
+# in the "Simulate" menu in the accessibility panel and represent the deuteranomaly simulation option.
+accessibility.simulation.deuteranomaly=Deuteranomaly (mù màu xanh lá nhẹ)
+
+# LOCALIZATION NOTE (accessibility.simulation.protanomaly): This label is shown
+# in the "Simulate" menu in the accessibility panel and represent the protanomaly simulation option.
+accessibility.simulation.protanomaly=Protanomaly (mù màu đỏ nhẹ)
+
+# 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.tritanomaly): This label is shown
+# in the "Simulate" menu in the accessibility panel and represent the tritanomaly simulation option.
+accessibility.simulation.tritanomaly=Tritanomaly (mù màu xanh dương nhẹ)
+
+# 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..2c0893fbfc
--- /dev/null
+++ b/l10n-vi/devtools/client/application.ftl
@@ -0,0 +1,187 @@
+# 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
+
+# Text for the debug link displayed for an already started Service Worker, when we
+# are in multi e10s mode, which effectively disables this link.
+serviceworker-worker-debug-forbidden = Gỡ lỗi
+ .title = Chỉ có thể gỡ lối trình làm việc dịch vụ khi multi e10s bị vô hiệu hóa
+
+# 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-start2 = Khởi động
+ .title = Chỉ có thể khởi động trình làm việc dịch vụ khi multi e10s bị vô hiệu hóa
+
+# 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