summaryrefslogtreecommitdiffstats
path: root/l10n-vi
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 14:29:10 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 14:29:10 +0000
commit2aa4a82499d4becd2284cdb482213d541b8804dd (patch)
treeb80bf8bf13c3766139fbacc530efd0dd9d54394c /l10n-vi
parentInitial commit. (diff)
downloadfirefox-2aa4a82499d4becd2284cdb482213d541b8804dd.tar.xz
firefox-2aa4a82499d4becd2284cdb482213d541b8804dd.zip
Adding upstream version 86.0.1.upstream/86.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'l10n-vi')
-rw-r--r--l10n-vi/browser/branding/official/brand.dtd11
-rw-r--r--l10n-vi/browser/branding/official/brand.ftl37
-rw-r--r--l10n-vi/browser/branding/official/brand.properties14
-rw-r--r--l10n-vi/browser/browser/aboutCertError.ftl100
-rw-r--r--l10n-vi/browser/browser/aboutConfig.ftl50
-rw-r--r--l10n-vi/browser/browser/aboutDialog.ftl46
-rw-r--r--l10n-vi/browser/browser/aboutLogins.ftl312
-rw-r--r--l10n-vi/browser/browser/aboutPolicies.ftl17
-rw-r--r--l10n-vi/browser/browser/aboutPrivateBrowsing.ftl27
-rw-r--r--l10n-vi/browser/browser/aboutRestartRequired.ftl10
-rw-r--r--l10n-vi/browser/browser/aboutRobots.ftl29
-rw-r--r--l10n-vi/browser/browser/aboutSessionRestore.ftl51
-rw-r--r--l10n-vi/browser/browser/aboutTabCrashed.ftl27
-rw-r--r--l10n-vi/browser/browser/allTabsMenu.ftl20
-rw-r--r--l10n-vi/browser/browser/appMenuNotifications.ftl78
-rw-r--r--l10n-vi/browser/browser/appmenu.ftl168
-rw-r--r--l10n-vi/browser/browser/branding/brandings.ftl32
-rw-r--r--l10n-vi/browser/browser/branding/sync-brand.ftl13
-rw-r--r--l10n-vi/browser/browser/browser.ftl610
-rw-r--r--l10n-vi/browser/browser/browserContext.ftl339
-rw-r--r--l10n-vi/browser/browser/browserSets.ftl180
-rw-r--r--l10n-vi/browser/browser/customizeMode.ftl47
-rw-r--r--l10n-vi/browser/browser/defaultBrowserNotification.ftl9
-rw-r--r--l10n-vi/browser/browser/downloads.ftl166
-rw-r--r--l10n-vi/browser/browser/editBookmarkOverlay.ftl42
-rw-r--r--l10n-vi/browser/browser/menubar.ftl349
-rw-r--r--l10n-vi/browser/browser/migration.ftl148
-rw-r--r--l10n-vi/browser/browser/newInstallPage.ftl33
-rw-r--r--l10n-vi/browser/browser/newtab/asrouter.ftl300
-rw-r--r--l10n-vi/browser/browser/newtab/newtab.ftl241
-rw-r--r--l10n-vi/browser/browser/newtab/onboarding.ftl241
-rw-r--r--l10n-vi/browser/browser/nsserrors.ftl354
-rw-r--r--l10n-vi/browser/browser/pageInfo.ftl252
-rw-r--r--l10n-vi/browser/browser/panicButton.ftl31
-rw-r--r--l10n-vi/browser/browser/places.ftl71
-rw-r--r--l10n-vi/browser/browser/policies/policies-descriptions.ftl114
-rw-r--r--l10n-vi/browser/browser/preferences/addEngine.ftl22
-rw-r--r--l10n-vi/browser/browser/preferences/applicationManager.ftl25
-rw-r--r--l10n-vi/browser/browser/preferences/blocklists.ftl33
-rw-r--r--l10n-vi/browser/browser/preferences/clearSiteData.ftl53
-rw-r--r--l10n-vi/browser/browser/preferences/colors.ftl48
-rw-r--r--l10n-vi/browser/browser/preferences/connection.ftl88
-rw-r--r--l10n-vi/browser/browser/preferences/containers.ftl87
-rw-r--r--l10n-vi/browser/browser/preferences/fonts.ftl160
-rw-r--r--l10n-vi/browser/browser/preferences/fxaPairDevice.ftl15
-rw-r--r--l10n-vi/browser/browser/preferences/languages.ftl73
-rw-r--r--l10n-vi/browser/browser/preferences/permissions.ftl157
-rw-r--r--l10n-vi/browser/browser/preferences/preferences.ftl1161
-rw-r--r--l10n-vi/browser/browser/preferences/selectBookmark.ftl9
-rw-r--r--l10n-vi/browser/browser/preferences/siteDataSettings.ftl57
-rw-r--r--l10n-vi/browser/browser/preferences/translation.ftl33
-rw-r--r--l10n-vi/browser/browser/protections.ftl195
-rw-r--r--l10n-vi/browser/browser/protectionsPanel.ftl98
-rw-r--r--l10n-vi/browser/browser/safeMode.ftl16
-rw-r--r--l10n-vi/browser/browser/safebrowsing/blockedSite.ftl33
-rw-r--r--l10n-vi/browser/browser/sanitize.ftl110
-rw-r--r--l10n-vi/browser/browser/screenshots.ftl47
-rw-r--r--l10n-vi/browser/browser/search.ftl19
-rw-r--r--l10n-vi/browser/browser/setDesktopBackground.ftl40
-rw-r--r--l10n-vi/browser/browser/sidebarMenu.ftl15
-rw-r--r--l10n-vi/browser/browser/sync.ftl21
-rw-r--r--l10n-vi/browser/browser/syncedTabs.ftl43
-rw-r--r--l10n-vi/browser/browser/tabContextMenu.ftl95
-rw-r--r--l10n-vi/browser/browser/toolbarContextMenu.ftl74
-rw-r--r--l10n-vi/browser/browser/touchbar/touchbar.ftl38
-rw-r--r--l10n-vi/browser/browser/webrtcIndicator.ftl40
-rw-r--r--l10n-vi/browser/chrome/browser-region/region.properties29
-rw-r--r--l10n-vi/browser/chrome/browser/accounts.properties129
-rw-r--r--l10n-vi/browser/chrome/browser/app-extension-fields.properties15
-rw-r--r--l10n-vi/browser/chrome/browser/baseMenuOverlay.dtd18
-rw-r--r--l10n-vi/browser/chrome/browser/brandings.dtd13
-rw-r--r--l10n-vi/browser/chrome/browser/browser.dtd289
-rw-r--r--l10n-vi/browser/chrome/browser/browser.properties1070
-rw-r--r--l10n-vi/browser/chrome/browser/customizableui/customizableWidgets.properties100
-rw-r--r--l10n-vi/browser/chrome/browser/downloads/downloads.properties99
-rw-r--r--l10n-vi/browser/chrome/browser/feeds/subscribe.properties10
-rw-r--r--l10n-vi/browser/chrome/browser/fxmonitor.properties49
-rw-r--r--l10n-vi/browser/chrome/browser/migration/migration.dtd53
-rw-r--r--l10n-vi/browser/chrome/browser/migration/migration.properties76
-rw-r--r--l10n-vi/browser/chrome/browser/newInstall.dtd15
-rw-r--r--l10n-vi/browser/chrome/browser/places/bookmarkProperties.properties16
-rw-r--r--l10n-vi/browser/chrome/browser/places/places.dtd63
-rw-r--r--l10n-vi/browser/chrome/browser/places/places.properties74
-rw-r--r--l10n-vi/browser/chrome/browser/pocket.properties31
-rw-r--r--l10n-vi/browser/chrome/browser/safebrowsing/safebrowsing.properties6
-rw-r--r--l10n-vi/browser/chrome/browser/search.properties45
-rw-r--r--l10n-vi/browser/chrome/browser/shellservice.properties28
-rw-r--r--l10n-vi/browser/chrome/browser/siteData.properties8
-rw-r--r--l10n-vi/browser/chrome/browser/sitePermissions.properties53
-rw-r--r--l10n-vi/browser/chrome/browser/syncBrand.dtd6
-rw-r--r--l10n-vi/browser/chrome/browser/syncSetup.properties14
-rw-r--r--l10n-vi/browser/chrome/browser/tabbrowser.properties128
-rw-r--r--l10n-vi/browser/chrome/browser/taskbar.properties12
-rw-r--r--l10n-vi/browser/chrome/browser/translation.dtd59
-rw-r--r--l10n-vi/browser/chrome/browser/translation.properties12
-rw-r--r--l10n-vi/browser/chrome/browser/uiDensity.properties5
-rw-r--r--l10n-vi/browser/chrome/browser/webrtcIndicator.properties61
-rw-r--r--l10n-vi/browser/chrome/overrides/appstrings.properties45
-rw-r--r--l10n-vi/browser/chrome/overrides/netError.dtd139
-rw-r--r--l10n-vi/browser/chrome/overrides/settingsChange.dtd7
-rw-r--r--l10n-vi/browser/crashreporter/crashreporter-override.ini8
-rw-r--r--l10n-vi/browser/defaultagent/defaultagent_localized.ini12
-rw-r--r--l10n-vi/browser/defines.inc14
-rw-r--r--l10n-vi/browser/extensions/formautofill/formautofill.properties241
-rw-r--r--l10n-vi/browser/extensions/report-site-issue/webcompat.properties10
-rw-r--r--l10n-vi/browser/firefox-l10n.js6
-rw-r--r--l10n-vi/browser/installer/custom.properties92
-rw-r--r--l10n-vi/browser/installer/mui.properties61
-rw-r--r--l10n-vi/browser/installer/nsisstrings.properties50
-rw-r--r--l10n-vi/browser/installer/override.properties86
-rw-r--r--l10n-vi/browser/pdfviewer/chrome.properties19
-rw-r--r--l10n-vi/browser/pdfviewer/viewer.properties253
-rw-r--r--l10n-vi/browser/profile/bookmarks.inc72
-rw-r--r--l10n-vi/browser/updater/updater.ini10
-rw-r--r--l10n-vi/calendar/README.txt3
-rw-r--r--l10n-vi/calendar/calendar/calendar-context-menus.ftl7
-rw-r--r--l10n-vi/calendar/calendar/calendar-ics-file-dialog.ftl29
-rw-r--r--l10n-vi/calendar/calendar/calendar-summary-dialog.ftl15
-rw-r--r--l10n-vi/calendar/calendar/calendar-uri-redirect-dialog.ftl11
-rw-r--r--l10n-vi/calendar/calendar/calendar-widgets.ftl6
-rw-r--r--l10n-vi/calendar/calendar/category-dialog.ftl7
-rw-r--r--l10n-vi/calendar/calendar/preferences.ftl186
-rw-r--r--l10n-vi/calendar/chrome/calendar/calendar-alarms.properties39
-rw-r--r--l10n-vi/calendar/chrome/calendar/calendar-event-dialog-attendees.properties15
-rw-r--r--l10n-vi/calendar/chrome/calendar/calendar-event-dialog.dtd428
-rw-r--r--l10n-vi/calendar/chrome/calendar/calendar-event-dialog.properties541
-rw-r--r--l10n-vi/calendar/chrome/calendar/calendar-extract.properties294
-rw-r--r--l10n-vi/calendar/chrome/calendar/calendar-invitations-dialog.dtd19
-rw-r--r--l10n-vi/calendar/chrome/calendar/calendar-invitations-dialog.properties10
-rw-r--r--l10n-vi/calendar/chrome/calendar/calendar-occurrence-prompt.dtd7
-rw-r--r--l10n-vi/calendar/chrome/calendar/calendar-occurrence-prompt.properties53
-rw-r--r--l10n-vi/calendar/chrome/calendar/calendar-subscriptions-dialog.dtd14
-rw-r--r--l10n-vi/calendar/chrome/calendar/calendar.dtd411
-rw-r--r--l10n-vi/calendar/chrome/calendar/calendar.properties818
-rw-r--r--l10n-vi/calendar/chrome/calendar/calendarCreation.dtd51
-rw-r--r--l10n-vi/calendar/chrome/calendar/calendarCreation.properties6
-rw-r--r--l10n-vi/calendar/chrome/calendar/categories.properties7
-rw-r--r--l10n-vi/calendar/chrome/calendar/dateFormat.properties146
-rw-r--r--l10n-vi/calendar/chrome/calendar/dialogs/calendar-event-dialog-reminder.dtd22
-rw-r--r--l10n-vi/calendar/chrome/calendar/global.dtd54
-rw-r--r--l10n-vi/calendar/chrome/calendar/menuOverlay.dtd50
-rw-r--r--l10n-vi/calendar/chrome/calendar/migration.dtd9
-rw-r--r--l10n-vi/calendar/chrome/calendar/migration.properties13
-rw-r--r--l10n-vi/calendar/chrome/calendar/provider-uninstall.dtd12
-rw-r--r--l10n-vi/calendar/chrome/calendar/timezones.properties488
-rw-r--r--l10n-vi/calendar/chrome/lightning/lightning-toolbar.dtd51
-rw-r--r--l10n-vi/calendar/chrome/lightning/lightning.dtd116
-rw-r--r--l10n-vi/calendar/chrome/lightning/lightning.properties201
-rw-r--r--l10n-vi/calendar/extra-jar.mn8
-rw-r--r--l10n-vi/calendar/lightning-l10n.js23
-rw-r--r--l10n-vi/calendar/sunbird-l10n.js23
-rw-r--r--l10n-vi/chat/accounts.dtd41
-rw-r--r--l10n-vi/chat/accounts.properties9
-rw-r--r--l10n-vi/chat/commands.properties27
-rw-r--r--l10n-vi/chat/contacts.properties8
-rw-r--r--l10n-vi/chat/conversations.properties80
-rw-r--r--l10n-vi/chat/dateFormat.properties62
-rw-r--r--l10n-vi/chat/facebook.properties6
-rw-r--r--l10n-vi/chat/imtooltip.properties10
-rw-r--r--l10n-vi/chat/irc.properties209
-rw-r--r--l10n-vi/chat/logger.properties7
-rw-r--r--l10n-vi/chat/matrix.properties26
-rw-r--r--l10n-vi/chat/skype.properties14
-rw-r--r--l10n-vi/chat/status.properties23
-rw-r--r--l10n-vi/chat/twitter.properties122
-rw-r--r--l10n-vi/chat/xmpp.properties238
-rw-r--r--l10n-vi/chat/yahoo.properties5
-rw-r--r--l10n-vi/devtools/client/aboutdebugging.ftl394
-rw-r--r--l10n-vi/devtools/client/accessibility.ftl51
-rw-r--r--l10n-vi/devtools/client/accessibility.properties310
-rw-r--r--l10n-vi/devtools/client/animationinspector.properties182
-rw-r--r--l10n-vi/devtools/client/application.ftl187
-rw-r--r--l10n-vi/devtools/client/boxmodel.properties48
-rw-r--r--l10n-vi/devtools/client/changes.properties64
-rw-r--r--l10n-vi/devtools/client/compatibility.ftl48
-rw-r--r--l10n-vi/devtools/client/components.properties24
-rw-r--r--l10n-vi/devtools/client/debugger.properties1063
-rw-r--r--l10n-vi/devtools/client/device.properties20
-rw-r--r--l10n-vi/devtools/client/dom.properties19
-rw-r--r--l10n-vi/devtools/client/filterwidget.properties61
-rw-r--r--l10n-vi/devtools/client/font-inspector.properties69
-rw-r--r--l10n-vi/devtools/client/graphs.properties24
-rw-r--r--l10n-vi/devtools/client/har.properties22
-rw-r--r--l10n-vi/devtools/client/inspector.properties540
-rw-r--r--l10n-vi/devtools/client/jit-optimizations.properties35
-rw-r--r--l10n-vi/devtools/client/jsonview.properties47
-rw-r--r--l10n-vi/devtools/client/layout.properties129
-rw-r--r--l10n-vi/devtools/client/markers.properties119
-rw-r--r--l10n-vi/devtools/client/memory.properties426
-rw-r--r--l10n-vi/devtools/client/menus.properties35
-rw-r--r--l10n-vi/devtools/client/netmonitor.properties1539
-rw-r--r--l10n-vi/devtools/client/network-throttling.properties18
-rw-r--r--l10n-vi/devtools/client/performance.dtd130
-rw-r--r--l10n-vi/devtools/client/performance.properties160
-rw-r--r--l10n-vi/devtools/client/perftools.ftl68
-rw-r--r--l10n-vi/devtools/client/responsive.properties173
-rw-r--r--l10n-vi/devtools/client/shared.properties26
-rw-r--r--l10n-vi/devtools/client/sourceeditor.dtd25
-rw-r--r--l10n-vi/devtools/client/sourceeditor.properties117
-rw-r--r--l10n-vi/devtools/client/startup.properties253
-rw-r--r--l10n-vi/devtools/client/storage.dtd17
-rw-r--r--l10n-vi/devtools/client/storage.ftl33
-rw-r--r--l10n-vi/devtools/client/storage.properties104
-rw-r--r--l10n-vi/devtools/client/styleeditor.ftl27
-rw-r--r--l10n-vi/devtools/client/styleeditor.properties67
-rw-r--r--l10n-vi/devtools/client/toolbox-options.ftl140
-rw-r--r--l10n-vi/devtools/client/toolbox.properties285
-rw-r--r--l10n-vi/devtools/client/tooltips.ftl68
-rw-r--r--l10n-vi/devtools/client/webconsole.properties560
-rw-r--r--l10n-vi/devtools/shared/accessibility.properties139
-rw-r--r--l10n-vi/devtools/shared/debugger.properties59
-rw-r--r--l10n-vi/devtools/shared/eyedropper.properties14
-rw-r--r--l10n-vi/devtools/shared/highlighters.properties35
-rw-r--r--l10n-vi/devtools/shared/screenshot.properties138
-rw-r--r--l10n-vi/devtools/shared/shared.properties6
-rw-r--r--l10n-vi/devtools/shared/styleinspector.properties242
-rw-r--r--l10n-vi/devtools/startup/aboutDevTools.ftl57
-rw-r--r--l10n-vi/devtools/startup/key-shortcuts.properties67
-rw-r--r--l10n-vi/devtools/startup/startup.properties8
-rw-r--r--l10n-vi/dom/chrome/accessibility/AccessFu.properties305
-rw-r--r--l10n-vi/dom/chrome/accessibility/mac/accessible.properties65
-rw-r--r--l10n-vi/dom/chrome/accessibility/unix/accessible.properties17
-rw-r--r--l10n-vi/dom/chrome/accessibility/win/accessible.properties17
-rw-r--r--l10n-vi/dom/chrome/appstrings.properties38
-rw-r--r--l10n-vi/dom/chrome/dom/dom.properties317
-rw-r--r--l10n-vi/dom/chrome/global-strres.properties5
-rw-r--r--l10n-vi/dom/chrome/global.dtd5
-rw-r--r--l10n-vi/dom/chrome/layout/HtmlForm.properties43
-rw-r--r--l10n-vi/dom/chrome/layout/MediaDocument.properties21
-rw-r--r--l10n-vi/dom/chrome/layout/css.properties46
-rw-r--r--l10n-vi/dom/chrome/layout/htmlparser.properties134
-rw-r--r--l10n-vi/dom/chrome/layout/layout_errors.properties54
-rw-r--r--l10n-vi/dom/chrome/layout/printing.properties56
-rw-r--r--l10n-vi/dom/chrome/layout/xmlparser.properties48
-rw-r--r--l10n-vi/dom/chrome/layout/xul.properties5
-rw-r--r--l10n-vi/dom/chrome/mathml/mathml.properties16
-rw-r--r--l10n-vi/dom/chrome/netError.dtd96
-rw-r--r--l10n-vi/dom/chrome/nsWebBrowserPersist.properties17
-rw-r--r--l10n-vi/dom/chrome/plugins.properties18
-rw-r--r--l10n-vi/dom/chrome/security/caps.properties9
-rw-r--r--l10n-vi/dom/chrome/security/csp.properties107
-rw-r--r--l10n-vi/dom/chrome/security/security.properties154
-rw-r--r--l10n-vi/dom/chrome/svg/svg.properties5
-rw-r--r--l10n-vi/dom/chrome/xml/prettyprint.dtd5
-rw-r--r--l10n-vi/dom/chrome/xslt/xslt.properties39
-rw-r--r--l10n-vi/dom/dom/media.ftl5
-rw-r--r--l10n-vi/editor/ui/chrome/composer/editingOverlay.dtd40
-rw-r--r--l10n-vi/editor/ui/chrome/composer/editor.dtd67
-rw-r--r--l10n-vi/editor/ui/chrome/composer/editor.properties208
-rw-r--r--l10n-vi/editor/ui/chrome/composer/editorOverlay.dtd370
-rw-r--r--l10n-vi/editor/ui/chrome/composer/editorPrefsOverlay.dtd13
-rw-r--r--l10n-vi/editor/ui/chrome/composer/editorSmileyOverlay.dtd58
-rw-r--r--l10n-vi/editor/ui/chrome/composer/pref-composer.dtd30
-rw-r--r--l10n-vi/editor/ui/chrome/composer/pref-editing.dtd31
-rw-r--r--l10n-vi/editor/ui/chrome/dialogs/EdAdvancedEdit.dtd18
-rw-r--r--l10n-vi/editor/ui/chrome/dialogs/EdColorPicker.dtd22
-rw-r--r--l10n-vi/editor/ui/chrome/dialogs/EdConvertToTable.dtd15
-rw-r--r--l10n-vi/editor/ui/chrome/dialogs/EdDialogOverlay.dtd18
-rw-r--r--l10n-vi/editor/ui/chrome/dialogs/EdNamedAnchorProperties.dtd8
-rw-r--r--l10n-vi/editor/ui/chrome/dialogs/EditConflict.dtd10
-rw-r--r--l10n-vi/editor/ui/chrome/dialogs/EditorButtonProperties.dtd28
-rw-r--r--l10n-vi/editor/ui/chrome/dialogs/EditorColorProperties.dtd29
-rw-r--r--l10n-vi/editor/ui/chrome/dialogs/EditorFieldSetProperties.dtd20
-rw-r--r--l10n-vi/editor/ui/chrome/dialogs/EditorFormProperties.dtd22
-rw-r--r--l10n-vi/editor/ui/chrome/dialogs/EditorHLineProperties.dtd27
-rw-r--r--l10n-vi/editor/ui/chrome/dialogs/EditorImageProperties.dtd79
-rw-r--r--l10n-vi/editor/ui/chrome/dialogs/EditorInputProperties.dtd50
-rw-r--r--l10n-vi/editor/ui/chrome/dialogs/EditorInsertChars.dtd19
-rw-r--r--l10n-vi/editor/ui/chrome/dialogs/EditorInsertMath.dtd21
-rw-r--r--l10n-vi/editor/ui/chrome/dialogs/EditorInsertSource.dtd15
-rw-r--r--l10n-vi/editor/ui/chrome/dialogs/EditorInsertTOC.dtd16
-rw-r--r--l10n-vi/editor/ui/chrome/dialogs/EditorInsertTable.dtd18
-rw-r--r--l10n-vi/editor/ui/chrome/dialogs/EditorLabelProperties.dtd18
-rw-r--r--l10n-vi/editor/ui/chrome/dialogs/EditorLinkProperties.dtd6
-rw-r--r--l10n-vi/editor/ui/chrome/dialogs/EditorListProperties.dtd20
-rw-r--r--l10n-vi/editor/ui/chrome/dialogs/EditorPageProperties.dtd17
-rw-r--r--l10n-vi/editor/ui/chrome/dialogs/EditorPersonalDictionary.dtd20
-rw-r--r--l10n-vi/editor/ui/chrome/dialogs/EditorPublish.dtd65
-rw-r--r--l10n-vi/editor/ui/chrome/dialogs/EditorPublishProgress.dtd16
-rw-r--r--l10n-vi/editor/ui/chrome/dialogs/EditorReplace.dtd27
-rw-r--r--l10n-vi/editor/ui/chrome/dialogs/EditorSaveAsCharset.dtd14
-rw-r--r--l10n-vi/editor/ui/chrome/dialogs/EditorSelectProperties.dtd48
-rw-r--r--l10n-vi/editor/ui/chrome/dialogs/EditorSnapToGrid.dtd13
-rw-r--r--l10n-vi/editor/ui/chrome/dialogs/EditorSpellCheck.dtd38
-rw-r--r--l10n-vi/editor/ui/chrome/dialogs/EditorTableProperties.dtd75
-rw-r--r--l10n-vi/editor/ui/chrome/dialogs/EditorTextAreaProperties.dtd33
-rw-r--r--l10n-vi/editor/ui/chrome/region/region.properties9
-rw-r--r--l10n-vi/extensions/spellcheck/hunspell/vi-x-KieuCu.[Chuan].aff70
-rw-r--r--l10n-vi/extensions/spellcheck/hunspell/vi-x-KieuCu.[Chuan].dic6632
-rw-r--r--l10n-vi/extensions/spellcheck/hunspell/vi-x-KieuMoi.[KhongChuan].aff70
-rw-r--r--l10n-vi/extensions/spellcheck/hunspell/vi-x-KieuMoi.[KhongChuan].dic6632
-rw-r--r--l10n-vi/mail/README.txt3
-rw-r--r--l10n-vi/mail/all-l10n.js8
-rw-r--r--l10n-vi/mail/branding/thunderbird/brand.dtd13
-rw-r--r--l10n-vi/mail/branding/thunderbird/brand.ftl21
-rw-r--r--l10n-vi/mail/branding/thunderbird/brand.properties7
-rw-r--r--l10n-vi/mail/chrome/communicator/utilityOverlay.dtd47
-rw-r--r--l10n-vi/mail/chrome/messenger-mapi/mapi.properties37
-rw-r--r--l10n-vi/mail/chrome/messenger-newsblog/am-newsblog.dtd14
-rw-r--r--l10n-vi/mail/chrome/messenger-newsblog/feed-subscriptions.dtd55
-rw-r--r--l10n-vi/mail/chrome/messenger-newsblog/newsblog.properties93
-rw-r--r--l10n-vi/mail/chrome/messenger-region/region.properties26
-rw-r--r--l10n-vi/mail/chrome/messenger-smime/certFetchingStatus.dtd9
-rw-r--r--l10n-vi/mail/chrome/messenger-smime/msgCompSMIMEOverlay.dtd39
-rw-r--r--l10n-vi/mail/chrome/messenger-smime/msgCompSecurityInfo.dtd18
-rw-r--r--l10n-vi/mail/chrome/messenger-smime/msgCompSecurityInfo.properties14
-rw-r--r--l10n-vi/mail/chrome/messenger-smime/msgReadSMIMEOverlay.dtd8
-rw-r--r--l10n-vi/mail/chrome/messenger-smime/msgReadSMIMEOverlay.properties11
-rw-r--r--l10n-vi/mail/chrome/messenger-smime/msgReadSecurityInfo.dtd17
-rw-r--r--l10n-vi/mail/chrome/messenger-smime/msgSecurityInfo.properties36
-rw-r--r--l10n-vi/mail/chrome/messenger/AccountManager.dtd37
-rw-r--r--l10n-vi/mail/chrome/messenger/AccountWizard.dtd127
-rw-r--r--l10n-vi/mail/chrome/messenger/CustomHeaders.dtd11
-rw-r--r--l10n-vi/mail/chrome/messenger/FilterEditor.dtd67
-rw-r--r--l10n-vi/mail/chrome/messenger/FilterListDialog.dtd40
-rw-r--r--l10n-vi/mail/chrome/messenger/SearchDialog.dtd38
-rw-r--r--l10n-vi/mail/chrome/messenger/aboutDialog.dtd112
-rw-r--r--l10n-vi/mail/chrome/messenger/aboutDownloads.dtd24
-rw-r--r--l10n-vi/mail/chrome/messenger/aboutRights.properties7
-rw-r--r--l10n-vi/mail/chrome/messenger/aboutSupportMail.properties16
-rw-r--r--l10n-vi/mail/chrome/messenger/accountCreation.dtd112
-rw-r--r--l10n-vi/mail/chrome/messenger/accountCreation.properties114
-rw-r--r--l10n-vi/mail/chrome/messenger/accountCreationModel.properties20
-rw-r--r--l10n-vi/mail/chrome/messenger/accountCreationUtil.properties34
-rw-r--r--l10n-vi/mail/chrome/messenger/activity.dtd37
-rw-r--r--l10n-vi/mail/chrome/messenger/activity.properties99
-rw-r--r--l10n-vi/mail/chrome/messenger/addbuddy.dtd7
-rw-r--r--l10n-vi/mail/chrome/messenger/addons.properties251
-rw-r--r--l10n-vi/mail/chrome/messenger/addressbook/abAddressBookNameDialog.dtd7
-rw-r--r--l10n-vi/mail/chrome/messenger/addressbook/abCard.dtd156
-rw-r--r--l10n-vi/mail/chrome/messenger/addressbook/abContactsPanel.dtd49
-rw-r--r--l10n-vi/mail/chrome/messenger/addressbook/abMailListDialog.dtd21
-rw-r--r--l10n-vi/mail/chrome/messenger/addressbook/abMainWindow.dtd221
-rw-r--r--l10n-vi/mail/chrome/messenger/addressbook/abNewCardDialog.dtd8
-rw-r--r--l10n-vi/mail/chrome/messenger/addressbook/abResultsPane.dtd38
-rw-r--r--l10n-vi/mail/chrome/messenger/addressbook/addressBook.properties262
-rw-r--r--l10n-vi/mail/chrome/messenger/addressbook/ldapAutoCompErrs.properties104
-rw-r--r--l10n-vi/mail/chrome/messenger/addressbook/pref-directory-add.dtd46
-rw-r--r--l10n-vi/mail/chrome/messenger/addressbook/pref-directory.dtd17
-rw-r--r--l10n-vi/mail/chrome/messenger/addressbook/replicationProgress.properties20
-rw-r--r--l10n-vi/mail/chrome/messenger/am-addressing.dtd51
-rw-r--r--l10n-vi/mail/chrome/messenger/am-advanced.dtd30
-rw-r--r--l10n-vi/mail/chrome/messenger/am-archiveoptions.dtd25
-rw-r--r--l10n-vi/mail/chrome/messenger/am-copies.dtd52
-rw-r--r--l10n-vi/mail/chrome/messenger/am-e2e.properties5
-rw-r--r--l10n-vi/mail/chrome/messenger/am-identities-list.dtd15
-rw-r--r--l10n-vi/mail/chrome/messenger/am-identity-edit.dtd14
-rw-r--r--l10n-vi/mail/chrome/messenger/am-im.dtd16
-rw-r--r--l10n-vi/mail/chrome/messenger/am-junk.dtd31
-rw-r--r--l10n-vi/mail/chrome/messenger/am-main.dtd47
-rw-r--r--l10n-vi/mail/chrome/messenger/am-mdn.dtd33
-rw-r--r--l10n-vi/mail/chrome/messenger/am-mdn.properties7
-rw-r--r--l10n-vi/mail/chrome/messenger/am-offline.dtd57
-rw-r--r--l10n-vi/mail/chrome/messenger/am-server-advanced.dtd31
-rw-r--r--l10n-vi/mail/chrome/messenger/am-server-top.dtd89
-rw-r--r--l10n-vi/mail/chrome/messenger/am-serverwithnoidentities.dtd6
-rw-r--r--l10n-vi/mail/chrome/messenger/am-smime.dtd20
-rw-r--r--l10n-vi/mail/chrome/messenger/am-smime.properties40
-rw-r--r--l10n-vi/mail/chrome/messenger/app-extension-fields.properties11
-rw-r--r--l10n-vi/mail/chrome/messenger/appUpdate.properties40
-rw-r--r--l10n-vi/mail/chrome/messenger/appleMailImportMsgs.properties20
-rw-r--r--l10n-vi/mail/chrome/messenger/baseMenuOverlay.dtd40
-rw-r--r--l10n-vi/mail/chrome/messenger/beckyImportMsgs.properties19
-rw-r--r--l10n-vi/mail/chrome/messenger/charsetTitles.properties69
-rw-r--r--l10n-vi/mail/chrome/messenger/chat.dtd44
-rw-r--r--l10n-vi/mail/chrome/messenger/chat.properties99
-rw-r--r--l10n-vi/mail/chrome/messenger/configEditorOverlay.dtd6
-rw-r--r--l10n-vi/mail/chrome/messenger/converterDialog.dtd10
-rw-r--r--l10n-vi/mail/chrome/messenger/converterDialog.properties41
-rw-r--r--l10n-vi/mail/chrome/messenger/custom.properties5
-rw-r--r--l10n-vi/mail/chrome/messenger/customizeToolbar.dtd18
-rw-r--r--l10n-vi/mail/chrome/messenger/customizeToolbar.properties11
-rw-r--r--l10n-vi/mail/chrome/messenger/devtools/dbgserver.dtd4
-rw-r--r--l10n-vi/mail/chrome/messenger/devtools/dbgserver.properties11
-rw-r--r--l10n-vi/mail/chrome/messenger/downloadheaders.dtd20
-rw-r--r--l10n-vi/mail/chrome/messenger/editContactOverlay.dtd20
-rw-r--r--l10n-vi/mail/chrome/messenger/editContactOverlay.properties14
-rw-r--r--l10n-vi/mail/chrome/messenger/fieldMapImport.dtd20
-rw-r--r--l10n-vi/mail/chrome/messenger/filter.properties110
-rw-r--r--l10n-vi/mail/chrome/messenger/folderProps.dtd74
-rw-r--r--l10n-vi/mail/chrome/messenger/folderWidgets.properties12
-rw-r--r--l10n-vi/mail/chrome/messenger/folderpane.dtd7
-rw-r--r--l10n-vi/mail/chrome/messenger/gloda.properties175
-rw-r--r--l10n-vi/mail/chrome/messenger/glodaComplete.properties19
-rw-r--r--l10n-vi/mail/chrome/messenger/glodaFacetView.dtd29
-rw-r--r--l10n-vi/mail/chrome/messenger/glodaFacetView.properties171
-rw-r--r--l10n-vi/mail/chrome/messenger/imAccountWizard.dtd32
-rw-r--r--l10n-vi/mail/chrome/messenger/imAccounts.properties60
-rw-r--r--l10n-vi/mail/chrome/messenger/imapMsgs.properties246
-rw-r--r--l10n-vi/mail/chrome/messenger/importDialog.dtd51
-rw-r--r--l10n-vi/mail/chrome/messenger/importMsgs.properties304
-rw-r--r--l10n-vi/mail/chrome/messenger/joinChat.dtd10
-rw-r--r--l10n-vi/mail/chrome/messenger/junkLog.dtd10
-rw-r--r--l10n-vi/mail/chrome/messenger/junkMailInfo.dtd12
-rw-r--r--l10n-vi/mail/chrome/messenger/localMsgs.properties134
-rw-r--r--l10n-vi/mail/chrome/messenger/mailEditorOverlay.dtd7
-rw-r--r--l10n-vi/mail/chrome/messenger/mailOverlay.dtd11
-rw-r--r--l10n-vi/mail/chrome/messenger/mailViewList.dtd7
-rw-r--r--l10n-vi/mail/chrome/messenger/mailViewSetup.dtd10
-rw-r--r--l10n-vi/mail/chrome/messenger/mailviews.properties13
-rw-r--r--l10n-vi/mail/chrome/messenger/markByDate.dtd9
-rw-r--r--l10n-vi/mail/chrome/messenger/messenger.dtd973
-rw-r--r--l10n-vi/mail/chrome/messenger/messenger.properties791
-rw-r--r--l10n-vi/mail/chrome/messenger/messengercompose/EdAdvancedEdit.dtd18
-rw-r--r--l10n-vi/mail/chrome/messenger/messengercompose/EdColorPicker.dtd22
-rw-r--r--l10n-vi/mail/chrome/messenger/messengercompose/EdConvertToTable.dtd15
-rw-r--r--l10n-vi/mail/chrome/messenger/messengercompose/EdDialogOverlay.dtd18
-rw-r--r--l10n-vi/mail/chrome/messenger/messengercompose/EdNamedAnchorProperties.dtd8
-rw-r--r--l10n-vi/mail/chrome/messenger/messengercompose/EditorColorProperties.dtd29
-rw-r--r--l10n-vi/mail/chrome/messenger/messengercompose/EditorHLineProperties.dtd27
-rw-r--r--l10n-vi/mail/chrome/messenger/messengercompose/EditorImageProperties.dtd79
-rw-r--r--l10n-vi/mail/chrome/messenger/messengercompose/EditorInsertChars.dtd19
-rw-r--r--l10n-vi/mail/chrome/messenger/messengercompose/EditorInsertMath.dtd21
-rw-r--r--l10n-vi/mail/chrome/messenger/messengercompose/EditorInsertSource.dtd15
-rw-r--r--l10n-vi/mail/chrome/messenger/messengercompose/EditorInsertTOC.dtd16
-rw-r--r--l10n-vi/mail/chrome/messenger/messengercompose/EditorInsertTable.dtd18
-rw-r--r--l10n-vi/mail/chrome/messenger/messengercompose/EditorLinkProperties.dtd6
-rw-r--r--l10n-vi/mail/chrome/messenger/messengercompose/EditorListProperties.dtd20
-rw-r--r--l10n-vi/mail/chrome/messenger/messengercompose/EditorPersonalDictionary.dtd18
-rw-r--r--l10n-vi/mail/chrome/messenger/messengercompose/EditorReplace.dtd29
-rw-r--r--l10n-vi/mail/chrome/messenger/messengercompose/EditorSpellCheck.dtd38
-rw-r--r--l10n-vi/mail/chrome/messenger/messengercompose/EditorTableProperties.dtd75
-rw-r--r--l10n-vi/mail/chrome/messenger/messengercompose/askSendFormat.dtd21
-rw-r--r--l10n-vi/mail/chrome/messenger/messengercompose/askSendFormat.properties9
-rw-r--r--l10n-vi/mail/chrome/messenger/messengercompose/composeMsgs.properties429
-rw-r--r--l10n-vi/mail/chrome/messenger/messengercompose/editor.properties208
-rw-r--r--l10n-vi/mail/chrome/messenger/messengercompose/editorOverlay.dtd303
-rw-r--r--l10n-vi/mail/chrome/messenger/messengercompose/mailComposeEditorOverlay.dtd10
-rw-r--r--l10n-vi/mail/chrome/messenger/messengercompose/messengercompose.dtd346
-rw-r--r--l10n-vi/mail/chrome/messenger/messengercompose/sendProgress.dtd8
-rw-r--r--l10n-vi/mail/chrome/messenger/messengercompose/sendProgress.properties21
-rw-r--r--l10n-vi/mail/chrome/messenger/migration/migration.dtd30
-rw-r--r--l10n-vi/mail/chrome/messenger/migration/migration.properties25
-rw-r--r--l10n-vi/mail/chrome/messenger/mime.properties154
-rw-r--r--l10n-vi/mail/chrome/messenger/mimeheader.properties35
-rw-r--r--l10n-vi/mail/chrome/messenger/morkImportMsgs.properties18
-rw-r--r--l10n-vi/mail/chrome/messenger/msgAccountCentral.dtd27
-rw-r--r--l10n-vi/mail/chrome/messenger/msgHdrViewOverlay.dtd111
-rw-r--r--l10n-vi/mail/chrome/messenger/msgPrintEngine.dtd16
-rw-r--r--l10n-vi/mail/chrome/messenger/msgSynchronize.dtd25
-rw-r--r--l10n-vi/mail/chrome/messenger/msgViewPickerOverlay.dtd22
-rw-r--r--l10n-vi/mail/chrome/messenger/msgmdn.properties19
-rw-r--r--l10n-vi/mail/chrome/messenger/multimessageview.dtd8
-rw-r--r--l10n-vi/mail/chrome/messenger/multimessageview.properties66
-rw-r--r--l10n-vi/mail/chrome/messenger/newFolderDialog.dtd17
-rw-r--r--l10n-vi/mail/chrome/messenger/newmailaccount/accountProvisioner.dtd43
-rw-r--r--l10n-vi/mail/chrome/messenger/newmailaccount/accountProvisioner.properties32
-rw-r--r--l10n-vi/mail/chrome/messenger/news.properties56
-rw-r--r--l10n-vi/mail/chrome/messenger/newsError.dtd31
-rw-r--r--l10n-vi/mail/chrome/messenger/oeImportMsgs.properties76
-rw-r--r--l10n-vi/mail/chrome/messenger/offline.properties28
-rw-r--r--l10n-vi/mail/chrome/messenger/offlineStartup.properties8
-rw-r--r--l10n-vi/mail/chrome/messenger/outlookImportMsgs.properties78
-rw-r--r--l10n-vi/mail/chrome/messenger/pgpmime.properties10
-rw-r--r--l10n-vi/mail/chrome/messenger/preferences/applicationManager.properties13
-rw-r--r--l10n-vi/mail/chrome/messenger/preferences/applications.properties13
-rw-r--r--l10n-vi/mail/chrome/messenger/preferences/messagestyle.properties13
-rw-r--r--l10n-vi/mail/chrome/messenger/preferences/preferences.properties118
-rw-r--r--l10n-vi/mail/chrome/messenger/prefs.properties90
-rw-r--r--l10n-vi/mail/chrome/messenger/quickFilterBar.dtd276
-rw-r--r--l10n-vi/mail/chrome/messenger/removeAccount.dtd22
-rw-r--r--l10n-vi/mail/chrome/messenger/removeAccount.properties5
-rw-r--r--l10n-vi/mail/chrome/messenger/renameFolderDialog.dtd10
-rw-r--r--l10n-vi/mail/chrome/messenger/safeMode.dtd21
-rw-r--r--l10n-vi/mail/chrome/messenger/sanitize.dtd42
-rw-r--r--l10n-vi/mail/chrome/messenger/seamonkeyImportMsgs.properties18
-rw-r--r--l10n-vi/mail/chrome/messenger/search-attributes.properties45
-rw-r--r--l10n-vi/mail/chrome/messenger/search-operators.properties32
-rw-r--r--l10n-vi/mail/chrome/messenger/search.properties27
-rw-r--r--l10n-vi/mail/chrome/messenger/searchTermOverlay.dtd20
-rw-r--r--l10n-vi/mail/chrome/messenger/shutdownWindow.properties10
-rw-r--r--l10n-vi/mail/chrome/messenger/smime.properties11
-rw-r--r--l10n-vi/mail/chrome/messenger/smtpEditOverlay.dtd24
-rw-r--r--l10n-vi/mail/chrome/messenger/subscribe.dtd22
-rw-r--r--l10n-vi/mail/chrome/messenger/subscribe.properties13
-rw-r--r--l10n-vi/mail/chrome/messenger/tabmail.dtd9
-rw-r--r--l10n-vi/mail/chrome/messenger/taskbar.properties9
-rw-r--r--l10n-vi/mail/chrome/messenger/telemetry.properties13
-rw-r--r--l10n-vi/mail/chrome/messenger/templateUtils.properties7
-rw-r--r--l10n-vi/mail/chrome/messenger/textImportMsgs.properties43
-rw-r--r--l10n-vi/mail/chrome/messenger/vCardImportMsgs.properties26
-rw-r--r--l10n-vi/mail/chrome/messenger/viewLog.dtd13
-rw-r--r--l10n-vi/mail/chrome/messenger/viewSource.dtd90
-rw-r--r--l10n-vi/mail/chrome/messenger/viewSource.properties17
-rw-r--r--l10n-vi/mail/chrome/messenger/viewZoomOverlay.dtd30
-rw-r--r--l10n-vi/mail/chrome/messenger/virtualFolderListDialog.dtd8
-rw-r--r--l10n-vi/mail/chrome/messenger/virtualFolderProperties.dtd22
-rw-r--r--l10n-vi/mail/chrome/messenger/wmImportMsgs.properties77
-rw-r--r--l10n-vi/mail/chrome/mozldap/ldap.properties261
-rw-r--r--l10n-vi/mail/chrome/overrides/netError.dtd184
-rw-r--r--l10n-vi/mail/chrome/overrides/profileDowngrade.dtd20
-rw-r--r--l10n-vi/mail/chrome/overrides/settingsChange.dtd6
-rw-r--r--l10n-vi/mail/defines.inc9
-rw-r--r--l10n-vi/mail/installer/custom.properties85
-rw-r--r--l10n-vi/mail/installer/mui.properties60
-rw-r--r--l10n-vi/mail/installer/override.properties86
-rw-r--r--l10n-vi/mail/isp/isps.txt1
-rw-r--r--l10n-vi/mail/messenger/aboutProfilesExtra.ftl5
-rw-r--r--l10n-vi/mail/messenger/aboutRights.ftl34
-rw-r--r--l10n-vi/mail/messenger/aboutSupportMail.ftl20
-rw-r--r--l10n-vi/mail/messenger/accountCentral.ftl68
-rw-r--r--l10n-vi/mail/messenger/addressbook/abCardDAVDialog.ftl45
-rw-r--r--l10n-vi/mail/messenger/addressbook/abCardDAVProperties.ftl27
-rw-r--r--l10n-vi/mail/messenger/menubar.ftl25
-rw-r--r--l10n-vi/mail/messenger/messenger.ftl36
-rw-r--r--l10n-vi/mail/messenger/messengercompose/messengercompose.ftl62
-rw-r--r--l10n-vi/mail/messenger/newInstall.ftl9
-rw-r--r--l10n-vi/mail/messenger/newInstallPage.ftl15
-rw-r--r--l10n-vi/mail/messenger/openpgp/backupKeyPassword.ftl20
-rw-r--r--l10n-vi/mail/messenger/openpgp/changeExpiryDlg.ftl22
-rw-r--r--l10n-vi/mail/messenger/openpgp/composeKeyStatus.ftl16
-rw-r--r--l10n-vi/mail/messenger/openpgp/keyWizard.ftl125
-rw-r--r--l10n-vi/mail/messenger/openpgp/msgReadStatus.ftl39
-rw-r--r--l10n-vi/mail/messenger/openpgp/oneRecipientStatus.ftl27
-rw-r--r--l10n-vi/mail/messenger/openpgp/openpgp-frontend.ftl47
-rw-r--r--l10n-vi/mail/messenger/openpgp/openpgp.ftl209
-rw-r--r--l10n-vi/mail/messenger/otr/add-finger.ftl17
-rw-r--r--l10n-vi/mail/messenger/otr/am-im-otr.ftl24
-rw-r--r--l10n-vi/mail/messenger/otr/auth.ftl59
-rw-r--r--l10n-vi/mail/messenger/otr/chat.ftl19
-rw-r--r--l10n-vi/mail/messenger/otr/finger-sync.ftl12
-rw-r--r--l10n-vi/mail/messenger/otr/finger.ftl22
-rw-r--r--l10n-vi/mail/messenger/otr/otr.ftl34
-rw-r--r--l10n-vi/mail/messenger/otr/otrUI.ftl86
-rw-r--r--l10n-vi/mail/messenger/policies/aboutPolicies.ftl17
-rw-r--r--l10n-vi/mail/messenger/policies/policies-descriptions.ftl88
-rw-r--r--l10n-vi/mail/messenger/preferences/am-im.ftl6
-rw-r--r--l10n-vi/mail/messenger/preferences/application-manager.ftl11
-rw-r--r--l10n-vi/mail/messenger/preferences/attachment-reminder.ftl26
-rw-r--r--l10n-vi/mail/messenger/preferences/colors.ftl52
-rw-r--r--l10n-vi/mail/messenger/preferences/connection.ftl115
-rw-r--r--l10n-vi/mail/messenger/preferences/cookies.ftl55
-rw-r--r--l10n-vi/mail/messenger/preferences/dock-options.ftl26
-rw-r--r--l10n-vi/mail/messenger/preferences/fonts.ftl151
-rw-r--r--l10n-vi/mail/messenger/preferences/languages.ftl45
-rw-r--r--l10n-vi/mail/messenger/preferences/new-tag.ftl14
-rw-r--r--l10n-vi/mail/messenger/preferences/notifications.ftl33
-rw-r--r--l10n-vi/mail/messenger/preferences/offline.ftl56
-rw-r--r--l10n-vi/mail/messenger/preferences/passwordManager.ftl85
-rw-r--r--l10n-vi/mail/messenger/preferences/permissions.ftl56
-rw-r--r--l10n-vi/mail/messenger/preferences/preferences.ftl715
-rw-r--r--l10n-vi/mail/messenger/preferences/receipts.ftl51
-rw-r--r--l10n-vi/mail/messenger/preferences/sendoptions.ftl50
-rw-r--r--l10n-vi/mail/messenger/preferences/system-integration.ftl38
-rw-r--r--l10n-vi/mail/updater/updater.ini9
-rw-r--r--l10n-vi/mobile/android/chrome/about.dtd21
-rw-r--r--l10n-vi/mobile/android/chrome/aboutAccounts.dtd13
-rw-r--r--l10n-vi/mobile/android/chrome/aboutAccounts.properties16
-rw-r--r--l10n-vi/mobile/android/chrome/aboutAddons.dtd15
-rw-r--r--l10n-vi/mobile/android/chrome/aboutAddons.properties12
-rw-r--r--l10n-vi/mobile/android/chrome/aboutCertError.dtd31
-rw-r--r--l10n-vi/mobile/android/chrome/aboutDownloads.dtd15
-rw-r--r--l10n-vi/mobile/android/chrome/aboutDownloads.properties17
-rw-r--r--l10n-vi/mobile/android/chrome/aboutHome.dtd7
-rw-r--r--l10n-vi/mobile/android/chrome/aboutLogins.dtd9
-rw-r--r--l10n-vi/mobile/android/chrome/aboutLogins.properties33
-rw-r--r--l10n-vi/mobile/android/chrome/aboutPrivateBrowsing.dtd25
-rw-r--r--l10n-vi/mobile/android/chrome/browser.properties477
-rw-r--r--l10n-vi/mobile/android/chrome/config.dtd21
-rw-r--r--l10n-vi/mobile/android/chrome/config.properties9
-rw-r--r--l10n-vi/mobile/android/chrome/devicePrompt.properties5
-rw-r--r--l10n-vi/mobile/android/chrome/passwordmgr.properties20
-rw-r--r--l10n-vi/mobile/android/chrome/phishing.dtd27
-rw-r--r--l10n-vi/mobile/android/chrome/pippki.properties84
-rw-r--r--l10n-vi/mobile/android/chrome/sync.properties12
-rw-r--r--l10n-vi/mobile/android/chrome/webcompatReporter.properties12
-rw-r--r--l10n-vi/mobile/android/defines.inc14
-rw-r--r--l10n-vi/mobile/android/mobile-l10n.js6
-rw-r--r--l10n-vi/mobile/chrome/region.properties31
-rw-r--r--l10n-vi/mobile/overrides/appstrings.properties41
-rw-r--r--l10n-vi/mobile/overrides/netError.dtd158
-rw-r--r--l10n-vi/netwerk/necko.properties85
-rw-r--r--l10n-vi/other-licenses/branding/sunbird/brand.dtd6
-rw-r--r--l10n-vi/other-licenses/branding/sunbird/brand.properties20
-rw-r--r--l10n-vi/security/manager/chrome/pipnss/nsserrors.properties331
-rw-r--r--l10n-vi/security/manager/chrome/pipnss/pipnss.properties308
-rw-r--r--l10n-vi/security/manager/chrome/pippki/pippki.properties85
-rw-r--r--l10n-vi/security/manager/security/certificates/certManager.ftl251
-rw-r--r--l10n-vi/security/manager/security/certificates/deviceManager.ftl135
-rw-r--r--l10n-vi/security/manager/security/pippki/pippki.ftl91
-rw-r--r--l10n-vi/services/sync/sync.properties14
-rw-r--r--l10n-vi/toolkit/chrome/alerts/alert.dtd6
-rw-r--r--l10n-vi/toolkit/chrome/alerts/alert.properties23
-rw-r--r--l10n-vi/toolkit/chrome/autoconfig/autoconfig.properties12
-rw-r--r--l10n-vi/toolkit/chrome/global-platform/mac/intl.properties7
-rw-r--r--l10n-vi/toolkit/chrome/global-platform/mac/platformKeys.properties34
-rw-r--r--l10n-vi/toolkit/chrome/global-platform/unix/intl.properties7
-rw-r--r--l10n-vi/toolkit/chrome/global-platform/unix/platformKeys.properties34
-rw-r--r--l10n-vi/toolkit/chrome/global-platform/win/intl.properties7
-rw-r--r--l10n-vi/toolkit/chrome/global-platform/win/platformKeys.properties34
-rw-r--r--l10n-vi/toolkit/chrome/global/aboutReader.properties66
-rw-r--r--l10n-vi/toolkit/chrome/global/aboutStudies.properties32
-rw-r--r--l10n-vi/toolkit/chrome/global/aboutWebrtc.properties172
-rw-r--r--l10n-vi/toolkit/chrome/global/appPicker.dtd7
-rw-r--r--l10n-vi/toolkit/chrome/global/autocomplete.properties29
-rw-r--r--l10n-vi/toolkit/chrome/global/browser.properties7
-rw-r--r--l10n-vi/toolkit/chrome/global/charsetMenu.dtd5
-rw-r--r--l10n-vi/toolkit/chrome/global/charsetMenu.properties127
-rw-r--r--l10n-vi/toolkit/chrome/global/commonDialog.dtd10
-rw-r--r--l10n-vi/toolkit/chrome/global/commonDialogs.properties35
-rw-r--r--l10n-vi/toolkit/chrome/global/contentAreaCommands.properties23
-rw-r--r--l10n-vi/toolkit/chrome/global/datetimebox.dtd35
-rw-r--r--l10n-vi/toolkit/chrome/global/dialog.properties12
-rw-r--r--l10n-vi/toolkit/chrome/global/dialogOverlay.dtd10
-rw-r--r--l10n-vi/toolkit/chrome/global/editMenuOverlay.dtd11
-rw-r--r--l10n-vi/toolkit/chrome/global/extensions.properties44
-rw-r--r--l10n-vi/toolkit/chrome/global/fallbackMenubar.properties8
-rw-r--r--l10n-vi/toolkit/chrome/global/filepicker.properties17
-rw-r--r--l10n-vi/toolkit/chrome/global/findbar.properties23
-rw-r--r--l10n-vi/toolkit/chrome/global/global-extension-fields.properties8
-rw-r--r--l10n-vi/toolkit/chrome/global/globalKeys.dtd6
-rw-r--r--l10n-vi/toolkit/chrome/global/intl.css11
-rw-r--r--l10n-vi/toolkit/chrome/global/intl.properties51
-rw-r--r--l10n-vi/toolkit/chrome/global/keys.properties78
-rw-r--r--l10n-vi/toolkit/chrome/global/mozilla.dtd12
-rw-r--r--l10n-vi/toolkit/chrome/global/narrate.properties20
-rw-r--r--l10n-vi/toolkit/chrome/global/notification.dtd14
-rw-r--r--l10n-vi/toolkit/chrome/global/printdialog.properties52
-rw-r--r--l10n-vi/toolkit/chrome/global/resetProfile.dtd7
-rw-r--r--l10n-vi/toolkit/chrome/global/resetProfile.properties14
-rw-r--r--l10n-vi/toolkit/chrome/global/textcontext.dtd24
-rw-r--r--l10n-vi/toolkit/chrome/global/tree.dtd5
-rw-r--r--l10n-vi/toolkit/chrome/global/videocontrols.dtd52
-rw-r--r--l10n-vi/toolkit/chrome/global/viewSource.properties16
-rw-r--r--l10n-vi/toolkit/chrome/global/wizard.properties8
-rw-r--r--l10n-vi/toolkit/chrome/mozapps/downloads/downloads.properties115
-rw-r--r--l10n-vi/toolkit/chrome/mozapps/downloads/settingsChange.dtd6
-rw-r--r--l10n-vi/toolkit/chrome/mozapps/downloads/unknownContentType.dtd26
-rw-r--r--l10n-vi/toolkit/chrome/mozapps/downloads/unknownContentType.properties24
-rw-r--r--l10n-vi/toolkit/chrome/mozapps/extensions/extensions.dtd5
-rw-r--r--l10n-vi/toolkit/chrome/mozapps/extensions/extensions.properties84
-rw-r--r--l10n-vi/toolkit/chrome/mozapps/handling/handling.dtd10
-rw-r--r--l10n-vi/toolkit/chrome/mozapps/handling/handling.properties15
-rw-r--r--l10n-vi/toolkit/chrome/mozapps/profile/profileSelection.properties57
-rw-r--r--l10n-vi/toolkit/chrome/mozapps/update/updates.properties45
-rw-r--r--l10n-vi/toolkit/chrome/passwordmgr/passwordmgr.properties74
-rw-r--r--l10n-vi/toolkit/chrome/places/places.properties32
-rw-r--r--l10n-vi/toolkit/chrome/pluginproblem/pluginproblem.dtd32
-rw-r--r--l10n-vi/toolkit/chrome/search/search.properties18
-rw-r--r--l10n-vi/toolkit/crashreporter/aboutcrashes.ftl31
-rw-r--r--l10n-vi/toolkit/crashreporter/crashreporter.ini60
-rw-r--r--l10n-vi/toolkit/defines.inc1
-rw-r--r--l10n-vi/toolkit/toolkit/about/aboutAbout.ftl6
-rw-r--r--l10n-vi/toolkit/toolkit/about/aboutAddons.ftl426
-rw-r--r--l10n-vi/toolkit/toolkit/about/aboutCompat.ftl13
-rw-r--r--l10n-vi/toolkit/toolkit/about/aboutConfig.ftl109
-rw-r--r--l10n-vi/toolkit/toolkit/about/aboutGlean.ftl14
-rw-r--r--l10n-vi/toolkit/toolkit/about/aboutHttpsOnlyError.ftl28
-rw-r--r--l10n-vi/toolkit/toolkit/about/aboutMozilla.ftl11
-rw-r--r--l10n-vi/toolkit/toolkit/about/aboutNetworking.ftl71
-rw-r--r--l10n-vi/toolkit/toolkit/about/aboutPerformance.ftl67
-rw-r--r--l10n-vi/toolkit/toolkit/about/aboutPlugins.ftl35
-rw-r--r--l10n-vi/toolkit/toolkit/about/aboutProcesses.ftl133
-rw-r--r--l10n-vi/toolkit/toolkit/about/aboutProfiles.ftl74
-rw-r--r--l10n-vi/toolkit/toolkit/about/aboutRights.ftl36
-rw-r--r--l10n-vi/toolkit/toolkit/about/aboutServiceWorkers.ftl40
-rw-r--r--l10n-vi/toolkit/toolkit/about/aboutSupport.ftl385
-rw-r--r--l10n-vi/toolkit/toolkit/about/aboutTelemetry.ftl146
-rw-r--r--l10n-vi/toolkit/toolkit/about/aboutWebrtc.ftl185
-rw-r--r--l10n-vi/toolkit/toolkit/about/abuseReports.ftl101
-rw-r--r--l10n-vi/toolkit/toolkit/about/certviewer.ftl120
-rw-r--r--l10n-vi/toolkit/toolkit/about/config.ftl51
-rw-r--r--l10n-vi/toolkit/toolkit/about/url-classifier.ftl54
-rw-r--r--l10n-vi/toolkit/toolkit/extensions/blocklist.ftl22
-rw-r--r--l10n-vi/toolkit/toolkit/featuregates/features.ftl107
-rw-r--r--l10n-vi/toolkit/toolkit/global/createProfileWizard.ftl53
-rw-r--r--l10n-vi/toolkit/toolkit/global/handlerDialog.ftl69
-rw-r--r--l10n-vi/toolkit/toolkit/global/processTypes.ftl36
-rw-r--r--l10n-vi/toolkit/toolkit/global/profileDowngrade.ftl20
-rw-r--r--l10n-vi/toolkit/toolkit/global/profileSelection.ftl36
-rw-r--r--l10n-vi/toolkit/toolkit/global/resetProfile.ftl14
-rw-r--r--l10n-vi/toolkit/toolkit/global/textActions.ftl49
-rw-r--r--l10n-vi/toolkit/toolkit/global/unknownContentType.ftl13
-rw-r--r--l10n-vi/toolkit/toolkit/global/videocontrols.ftl14
-rw-r--r--l10n-vi/toolkit/toolkit/global/wizard.ftl37
-rw-r--r--l10n-vi/toolkit/toolkit/intl/languageNames.ftl213
-rw-r--r--l10n-vi/toolkit/toolkit/intl/regionNames.ftl280
-rw-r--r--l10n-vi/toolkit/toolkit/main-window/autocomplete.ftl32
-rw-r--r--l10n-vi/toolkit/toolkit/main-window/findbar.ftl38
-rw-r--r--l10n-vi/toolkit/toolkit/payments/payments.ftl69
-rw-r--r--l10n-vi/toolkit/toolkit/pictureinpicture/pictureinpicture.ftl22
-rw-r--r--l10n-vi/toolkit/toolkit/preferences/preferences.ftl61
-rw-r--r--l10n-vi/toolkit/toolkit/printing/printDialogs.ftl111
-rw-r--r--l10n-vi/toolkit/toolkit/printing/printPreview.ftl71
-rw-r--r--l10n-vi/toolkit/toolkit/printing/printUI.ftl106
-rw-r--r--l10n-vi/toolkit/toolkit/updates/elevation.ftl18
-rw-r--r--l10n-vi/toolkit/toolkit/updates/history.ftl27
687 files changed, 63880 insertions, 0 deletions
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 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY brandShorterName "Firefox">
+<!ENTITY brandShortName "Firefox">
+<!ENTITY 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.). -->
+<!ENTITY brandProductName "Firefox">
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 <a data-l10n-name="domain-mismatch-link">{ $alt-name }</a>.
+# 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: <a data-l10n-name="error-code-link">{ $error }</a>
+# 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 = <img data-l10n-name="icon"/>Đang tải cập nhật — <label data-l10n-name="download-status"/>
+update-downloading-message = Đang tải xuống bản cập nhật — <label data-l10n-name="download-status"/>
+update-applying = Đang cài đặt cập nhật…
+update-failed = Cập nhật thất bại. <label data-l10n-name="failed-link">Tải phiên bản mới nhất</label>
+update-failed-main = Cập nhật thất bại. <a data-l10n-name="failed-link-main">Tải phiên bản mới nhất</a>
+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 <label data-l10n-name="manual-link"/>
+update-unsupported = Bạn không thể cập nhật thêm trên hệ thống này nữa. <label data-l10n-name="unsupported-link">Tìm hiểu thêm</label>
+update-restarting = Đang khởi động lại…
+channel-description = Bạn hiện đang ở trên kênh cập nhật <label data-l10n-name="current-channel"></label>.
+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 = <label data-l10n-name="community-exp-mozillaLink">{ -vendor-short-name }</label> là một <label data-l10n-name="community-exp-creditsLink">cộng đồng toàn cầu</label> 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 <label data-l10n-name="community-mozillaLink">{ -vendor-short-name }</label>, một <label data-l10n-name="community-creditsLink">cộng đồng toàn cầu</label> 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 đỡ? <label data-l10n-name="helpus-donateLink">Quyên góp tài chính</label>, hoặc <label data-l10n-name="helpus-getInvolvedLink">tham gia đóng góp!</label>
+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 <a data-l10n-name="help-link">hỗ trợ của { -lockwise-brand-short-name }</a> để đượ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ể <a data-l10n-name="import-link"> nhập chúng vào { -lockwise-brand-short-name }</a>
+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ể <a data-l10n-name="import-browser-link">nhập chúng từ trình duyệt khác</a> hoặc <a data-l10n-name="import-file-link">từ một tập tin</a>
+
+## 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. <a data-l10n-name="duplicate-link">Chuyển đến giá trị hiện có?</a>
+# 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] <span>Đã thêm thông tin đăng nhập mới:</span> <span data-l10n-name="count">{ $count }</span>
+ }
+about-logins-import-dialog-items-modified =
+ { $count ->
+ *[other] <span>Đã cập nhật thông tin đăng nhập đã có:</span> <span data-l10n-name="count">{ $count }</span>
+ }
+about-logins-import-dialog-items-no-change =
+ { $count ->
+ *[other] <span>Tìm thấy thông tin đăng nhập bị trùng:</span> <span data-l10n-name="count">{ $count }</span> <span data-l10n-name="meta">(không nhập)</span>
+ }
+about-logins-import-dialog-items-error =
+ { $count ->
+ *[other] <span>Lỗi:</span> <span data-l10n-name="count">{ $count }</span> <span data-l10n-name="meta">(không nhập)</span>
+ }
+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 <a data-l10n-name="link-options">Tùy chọn</a>
+ *[other] Để chọn một công cụ tìm kiếm khác, hãy truy cập <a data-l10n-name="link-options">Tùy chỉnh</a>
+ }
+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, <a data-l10n-name="link-more">tìm hiểu thêm về những gì bạn có thể làm.</a>
+
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 <image data-l10n-name='addon-install-icon'></image> trong trình đơn <image data-l10n-name='addon-menu-icon'></image>.
+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. <label data-l10n-name="link">Tìm hiểu thêm</label>
+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. <label data-l10n-name="link">Tìm hiểu thêm</label>
+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). <label data-l10n-name="link">Tìm hiểu thêm</label>
+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). <label data-l10n-name="link">Tìm hiểu thêm</label>
+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. <a data-l10n-name="manage-bookmarks">Quản lý dấu trang…</a>
+
+## 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 `<span data-l10n-name="domain">` markup.
+# Variables
+# $domain (String): the domain that is full screen, e.g. "mozilla.org"
+fullscreen-warning-domain = <span data-l10n-name="domain">{ $domain }</span> 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 `<span data-l10n-name="domain">` markup.
+# Variables
+# $domain (String): the domain that is using pointer-lock, e.g. "mozilla.org"
+pointerlock-warning-domain = <span data-l10n-name="domain">{ $domain }</span> 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 = <strong>Một phần của trang này đã bị vớ.</strong> Để { -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 <strong> and </strong> tags surrounding it.
+default-browser-notification-message = <strong>Đặt { -brand-short-name } làm trình duyệt mặc định của bạn?</strong> 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>Bạn chưa mất bất kỳ dữ liệu cá nhân hoặc tùy chỉnh nào.</b> 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 <a data-l10n-name="terms">điều khoản dịch vụ</a> và <a data-l10n-name="privacy">thông báo bảo mật</a>.
+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 = <b>Nhấp chuột phải</b> trên thẻ bạn muốn ghim.
+cfr-doorhanger-pintab-step2 = Chọn <b>Ghim thẻ</b> 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 <b>{ $blockedCount }</b> trình theo dõi từ { $date }!
+ }
+cfr-doorhanger-milestone-heading2 =
+ { $blockedCount ->
+ *[other] { -brand-short-name } đã chặn hơn <b>{ $blockedCount }</b> 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, <strong>dữ liệu duyệt của bạn
+ không bao giờ để lại bản sao { -brand-product-name }</strong> 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.<br/>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.<br/>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 <a data-l10n-name="terms">điều khoản dịch vụ</a> và <a data-l10n-name="privacy">thông báo bảo mật</a>.
+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 }
+# <img data-l10n-name="icon"/> 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 <img data-l10n-name="icon"/> <b>{ $addon-name }</b>.
+return-to-amo-add-extension-label = Thêm tiện ích mở rộng
+
+## Multistage 3-screen onboarding flow strings (about:welcome pages)
+
+# The <span data-l10n-name="zap"></span> 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 <span data-l10n-name="zap">{ -brand-short-name }</span>
+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 <span data-l10n-name="zap"></span> 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à <span data-l10n-name="zap">hơn thế nữa</span>
+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 <span data-l10n-name="zap"></span> 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 <span data-l10n-name="zap">cách nhìn</span>
+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 }
+# <icon></icon> 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 <icon></icon><b>{ $addon-name }.</b>
+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 <strong> 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 <strong>Cookie</strong> gần đây
+panic-button-delete-history = Xóa <strong>lịch sử</strong> gần đây
+panic-button-delete-tabs-and-windows = Đóng tất cả các <strong>thẻ</strong> và <strong>cửa sổ</strong>
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 <a data-l10n-name="disconnect-link" title="Disconnect">Disconnect</a>.
+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 <a data-l10n-name="connect-another-device">Firefox trên thiết bị di động</a> 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 <a data-l10n-name="connect-another-device">Firefox trên thiết bị di động</a> 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ở <b>menu</b> (<img data-l10n-name="ios-menu-icon"/> hoặc <img data-l10n-name="android-menu-icon"/>), chạm vào <img data-l10n-name="settings-icon"/> <b>Cài đặt</b> và chọn <b>Bật đồng bộ hóa</b>
+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.
+##
+## <img data-l10n-name="icon"/> 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, <img data-l10n-name="icon"/> { $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, <img data-l10n-name="icon"/> { $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, <img data-l10n-name="icon"/> { $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, <img data-l10n-name="icon"/> { $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, <img data-l10n-name="icon"/> { $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, <img data-l10n-name="icon"/> { $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, <img data-l10n-name="icon"/> { $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, <img data-l10n-name="icon"/> { $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.
+#
+# <img data-l10n-name="addons-icon"/> will be replaced with Add-ons icon
+# <img data-l10n-name="menu-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 <img data-l10n-name="addons-icon"/> trên bảng chọn <img data-l10n-name="menu-icon"/>.
+
+## Preferences UI Search Results
+
+search-results-header = Kết quả tìm kiếm
+# `<span data-l10n-name="query"></span>` 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 “<span data-l10n-name="query"></span>”.
+ *[other] Xin lỗi! Không có kết quả trong phần Tùy chỉnh cho “<span data-l10n-name="query"></span>”.
+ }
+search-results-help-link = Cần trợ giúp? Đi đến <a data-l10n-name="url">Hỗ trợ { -brand-short-name }</a>
+
+## 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 <img> element is replaced by the logo of the provider
+# used to provide machine translations for web pages.
+translate-attribution = Dịch bởi <img data-l10n-name="logo"/>
+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 } <a data-l10n-name="learn-more">Có gì mới</a>
+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. <a data-l10n-name="learn-more">Tìm hiểu làm cách nào để kiểm tra khi chế độ đa tiến trình được bật</a>
+# 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.
+# `<img data-l10n-name="android-icon"/>` - Android logo icon
+# `<a data-l10n-name="android-link">` - Link to Android Download
+# `<img data-l10n-name="ios-icon">` - iOS logo icon
+# `<a data-l10n-name="ios-link">` - 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 <img data-l10n-name="android-icon"/> <a data-l10n-name="android-link">Android</a> hoặc <img data-l10n-name="ios-icon"/> <a data-l10n-name="ios-link">iOS</a> để đồ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] <b>{ $count }</b> 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. <a data-l10n-name="learn-more-link">Tìm hiểu thêm</a>
+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. <a data-l10n-name="learn-more-link">Tìm hiểu thêm</a>
+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. <a data-l10n-name="learn-more-link">Tìm hiểu thêm</a>
+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. <a data-l10n-name="learn-more-link">Tìm hiểu thêm</a>
+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. <a data-l10n-name="learn-more-link">Tìm hiểu thêm</a>
+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 <a data-l10n-name="android-mobile-inline-link">Android</a> và <a data-l10n-name="ios-mobile-inline-link">iOS</a>
+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 <a data-l10n-name="lockwise-android-inline-link">Android</a> và <a data-l10n-name="lockwise-ios-inline-link">iOS</a>
+# 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 <ul>
+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. <label data-l10n-name="learn-more">Tìm hiểu thêm</label>
+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 <a data-l10n-name='advisory_provider'>{ $advisoryname }</a>.
+safeb-palm-accept-label = Quay lại
+safeb-palm-see-details-label = Xem chi tiết
+safeb-blocked-phishing-page-error-desc-override = <span data-l10n-name='sitename'>{ $sitename }</span> đã bị <a data-l10n-name='error_desc_link'> báo cáo là trang web lừa đảo</a>. Bạn có thể <a data-l10n-name='report_detection'>báo cáo một vấn đề phát hiện</a> hoặc <a data-l10n-name='ignore_warning_link'>bỏ qua rủi ro</a> và truy cập trang không an toàn này.
+safeb-blocked-phishing-page-error-desc-no-override = <span data-l10n-name='sitename'>{ $sitename }</span> đã bị <a data-l10n-name='error_desc_link'>báo cáo là trang web lừa đảo</a>. Bạn có thể <a data-l10n-name='report_detection'>báo cáo một vấn đề phát hiện</a>.
+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 <a data-l10n-name='learn_more_link'>www.antiphishing.org</a>. 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 <a data-l10n-name='firefox_support'>support.mozilla.org</a>.
+safeb-blocked-malware-page-error-desc-override = <span data-l10n-name='sitename'>{ $sitename }</span> đã <a data-l10n-name='error_desc_link'>báo cáo là có chứa phần mềm độc hại</a>. Bạn có thể <a data-l10n-name='report_detection'>báo cáo một vấn đề phát hiện</a> hoặc <a data-l10n-name='ignore_warning_link'>bỏ qua nguy cơ</a> và đi đến trang web không an toàn này.
+safeb-blocked-malware-page-error-desc-no-override = <span data-l10n-name='sitename'>{ $sitename }</span> đã <a data-l10n-name='error_desc_link'>báo cáo là có chứa phần mềm độc hại</a>. Bạn có thể <a data-l10n-name='report_detection'>báo cáo một vấn đề phát hiện</a>.
+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 <a data-l10n-name='learn_more_link'>StopBadware.org</a>. 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 <a data-l10n-name='firefox_support'>support.mozilla.org</a>.
+safeb-blocked-malware-page-error-desc-override-sumo = <span data-l10n-name='sitename'>{ $sitename }</span> đã được <a data-l10n-name='error_desc_link'>được báo cáo là có chứa phần mềm độc hại</a>. Bạn có thể <a data-l10n-name='ignore_warning_link'>bỏ qua rủi ro</a> và đi đến trang web không an toàn.
+safeb-blocked-malware-page-error-desc-no-override-sumo = <span data-l10n-name='sitename'>{ $sitename }</span> đã được <a data-l10n-name='error_desc_link'>được báo cáo là có chứa phần mềm độc hại</a>.
+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 <a data-l10n-name='firefox_support'>support.mozilla.org</a>.
+safeb-blocked-unwanted-page-error-desc-override = <span data-l10n-name='sitename'>{ $sitename }</span> đã được <a data-l10n-name='error_desc_link'>báo cáo là có chứa phần mềm có hại</a>. Bạn có thể <a data-l10n-name='ignore_warning_link'>bỏ qua rủi ro</a> và truy cập trang web không an toàn này.
+safeb-blocked-unwanted-page-error-desc-no-override = <span data-l10n-name='sitename'>{ $sitename }</span> đã bị <a data-l10n-name='error_desc_link'>báo cáo có chứa phần mềm gây hại</a>.
+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 <a data-l10n-name='learn_more_link'>chính sách phần mềm không mong muốn</a>. 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 <a data-l10n-name='firefox_support'>support.mozilla.org</a>.
+safeb-blocked-harmful-page-error-desc-override = <span data-l10n-name='sitename'>{ $sitename }</span> đã bị <a data-l10n-name='error_desc_link'>báo cáo là có chứa một ứng dụng có khả năng gây hại</a>. Bạn có thể <a data-l10n-name='ignore_warning_link'>bỏ qua rủi ro</a> và truy cập vào trang không an toàn này.
+safeb-blocked-harmful-page-error-desc-no-override = <span data-l10n-name='sitename'>{ $sitename }</span> đã bị <a data-l10n-name='error_desc_link'>báo cáo là có chứa một ứng dụng có khả năng gây hại</a>.
+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 <a data-l10n-name='firefox_support'>support.mozilla.org</a>.
+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 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY aboutProduct2.label "Về &brandShorterName;">
+<!ENTITY aboutProduct2.accesskey "A">
+
+<!ENTITY preferencesCmdMac.label "Tùy chọn…">
+
+<!ENTITY servicesMenuMac.label "Dịch vụ">
+
+<!ENTITY hideThisAppCmdMac2.label "Ẩn &brandShorterName;">
+
+<!ENTITY hideOtherAppsCmdMac.label "Ẩn các mục khác">
+
+<!ENTITY showAllAppsCmdMac.label "Hiển thị tất cả">
+
+<!ENTITY touchBarCmdMac.label "Tùy chỉnh Touch Bar…">
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 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.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:
+ 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. -->
+
+<!ENTITY sendFullName "Firefox Send">
+<!ENTITY monitorFullName "Firefox Monitor">
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 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.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 browser main menu items -->
+<!-- LOCALIZATION NOTE : FILE Do not translate commandkeys -->
+
+<!ENTITY appmenu.tooltip "Mở menu">
+<!ENTITY navbarOverflow.label "Thêm công cụ...">
+
+<!-- Tab context menu -->
+
+<!-- LOCALIZATION NOTE (pinTab.label, unpinTab.label): "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. -->
+<!ENTITY pinTab.label "Ghim thẻ">
+<!ENTITY unpinTab.label "Gỡ thẻ">
+
+<!ENTITY listAllTabs.label "Liệt kê tất cả các thẻ">
+
+<!ENTITY tabCmd.label "Thẻ mới">
+<!ENTITY openFileCmd.label "Mở tập tin…">
+<!ENTITY printCmd.label "In…">
+
+<!ENTITY taskManagerCmd.label "Quản lý tác vụ">
+
+<!ENTITY menubarCmd.label "Thanh menu">
+<!ENTITY menubarCmd.accesskey "M">
+<!-- LOCALIZATION NOTE: The accessibleLabel 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. -->
+<!ENTITY navbar.accessibleLabel "Điều hướng">
+<!ENTITY personalbarCmd.label "Thanh dấu trang">
+<!ENTITY personalbarCmd.accesskey "B">
+<!-- LOCALIZATION NOTE: The accessibleLabel 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. -->
+<!ENTITY personalbar.accessibleLabel "Dấu trang">
+<!ENTITY bookmarksToolbarItem.label "Các mục của thanh dấu trang">
+
+<!ENTITY fullScreenCmd.label "Toàn màn hình">
+
+
+<!ENTITY pictureInPictureHideToggle.label "Ẩn nút hình trong hình">
+<!ENTITY pictureInPictureHideToggle.accesskey "H">
+
+<!-- LOCALIZATION NOTE (fxa.menu) Used to define the different labels
+ for the Firefox Account toolbar menu screen. The `Signed in as` text is
+ followed by the user's email. -->
+<!ENTITY fxa.menu.syncSettings2.label "Cài đặt &syncBrand.shortName.label;">
+<!ENTITY fxa.menu.connectAnotherDevice2.label "Kết nối thiết bị khác…">
+<!ENTITY fxa.menu.firefoxAccount "&syncBrand.fxAccount.label;">
+
+<!ENTITY fxa.menu.signin.label "Đăng nhập vào &brandProductName;">
+<!ENTITY fxa.menu.turnOnSync.label "Bật &syncBrand.shortName.label;">
+<!ENTITY fxa.menu.firefoxServices.label "Dịch vụ &brandProductName;">
+<!ENTITY fxa.menu.account.label "Tài khoản">
+<!ENTITY fxa.menu.settings.label "Cài đặt">
+<!ENTITY fxa.menu.accountSettings.label "Cài đặt tài khoản">
+<!ENTITY fxa.menu.manageAccount2.label "Quản lý tài khoản">
+<!ENTITY fxa.menu.signOut.label "Đăng xuất…">
+<!ENTITY fxa.menu.setupSync.label "Thiết lập &syncBrand.shortName.label;…">
+
+<!-- LOCALIZATION NOTE (fxa.service) Used to define the different FxA services
+ for the Firefox Account toolbar menu screen. -->
+<!ENTITY fxa.service.sendTab.description "Gửi một thẻ ngay lập tức đến bất kỳ thiết bị nào mà bạn đã đăng nhập.">
+
+<!-- LOCALIZATION NOTE (fullscreenWarning.beforeDomain.label,
+ fullscreenWarning.afterDomain.label): these two strings are used
+ respectively before and after the domain requiring fullscreen.
+ Localizers can use one of them, or both, to better adapt this
+ sentence to their language. -->
+<!ENTITY fullscreenWarning.beforeDomain.label "">
+<!ENTITY fullscreenWarning.afterDomain.label "giờ đã hiển thị toàn màn hình">
+<!ENTITY fullscreenWarning.generic.label "Trang này giờ đã hiển thị toàn màn hình">
+
+<!-- LOCALIZATION NOTE (exitDOMFullscreen.button,
+ exitDOMFullscreenMac.button): the "escape" button on PC keyboards
+ is uppercase, while on Mac keyboards it is lowercase -->
+<!ENTITY exitDOMFullscreen.button "Thoát toàn màn hình (Esc)">
+<!ENTITY exitDOMFullscreenMac.button "Thoát toàn màn hình (esc)">
+
+<!-- LOCALIZATION NOTE (pointerlockWarning.beforeDomain.label,
+ pointerlockWarning.afterDomain.label): these two strings are used
+ respectively before and after the domain requiring pointerlock.
+ Localizers can use one of them, or both, to better adapt this
+ sentence to their language. -->
+<!ENTITY pointerlockWarning.beforeDomain.label "">
+<!ENTITY pointerlockWarning.afterDomain.label "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.">
+<!ENTITY pointerlockWarning.generic.label "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.">
+
+<!ENTITY showAllBookmarks2.label "Xem tất cả dấu trang">
+<!ENTITY recentBookmarks.label "Dấu trang gần đây">
+<!ENTITY bookmarksToolbarChevron.tooltip "Hiện thêm các dấu trang">
+
+<!ENTITY printButton.label "In">
+<!ENTITY printButton.tooltip "In trang này">
+
+
+<!ENTITY searchItem.title "Tìm kiếm">
+
+<!-- Toolbar items -->
+<!ENTITY homeButton.label "Trang chủ">
+<!ENTITY homeButton.defaultPage.tooltip "&brandShortName; Trang Chủ">
+
+<!ENTITY bookmarksButton.label "Dấu trang">
+
+<!ENTITY bookmarksSubview.label "Dấu trang">
+<!ENTITY bookmarksMenuButton2.label "Trình đơn dấu trang">
+<!ENTITY bookmarksMenuButton.other.label "Dấu trang khác">
+<!ENTITY bookmarksMenuButton.mobile.label "Dấu trang trên di động">
+<!ENTITY viewBookmarksSidebar2.label "Hiển thị thanh lề dấu trang">
+<!ENTITY hideBookmarksSidebar.label "Ẩn thanh lề dấu trang">
+<!ENTITY viewBookmarksToolbar.label "Hiển thị thanh công cụ dấu trang">
+<!ENTITY hideBookmarksToolbar.label "Ẩn thanh công cụ dấu trang">
+<!ENTITY searchBookmarks.label "Tìm kiếm dấu trang">
+<!ENTITY bookmarkingTools.label "Công cụ đánh dấu trang">
+<!ENTITY addBookmarksMenu.label "Thêm bảng chọn dấu trang vào thanh công cụ">
+<!ENTITY removeBookmarksMenu.label "Xóa bảng chọn dấu trang từ thanh công cụ">
+
+<!ENTITY historyButton.label "Lịch sử">
+
+<!ENTITY downloads.label "Tải xuống">
+<!-- LOCALIZATION NOTE (libraryDownloads.label): This label is similar to
+ - downloads.label, but used in the Library panel. -->
+<!ENTITY libraryDownloads.label "Tải xuống">
+<!ENTITY addons.label "Tiện ích">
+
+<!ENTITY webDeveloperMenu.label "Nhà phát triển Web">
+
+<!ENTITY newNavigatorCmd.label "Cửa sổ mới">
+<!ENTITY newPrivateWindow.label "Cửa sổ riêng tư mới">
+
+<!ENTITY editMenu.label "Chỉnh sửa">
+<!ENTITY preferencesCmd2.label "Tùy chọn">
+<!ENTITY preferencesCmdUnix.label "Tùy chỉnh">
+<!ENTITY logins.label "Đăng nhập và mật khẩu">
+
+<!ENTITY overflowCustomizeToolbar.label "Tùy biến thanh công cụ…">
+<!ENTITY overflowCustomizeToolbar.accesskey "C">
+
+<!ENTITY historyMenu.label "Lịch sử">
+<!ENTITY historyUndoMenu.label "Thẻ mới đóng gần đây">
+<!-- LOCALIZATION NOTE (historyUndoWindowMenu): see bug 394759 -->
+<!ENTITY historyUndoWindowMenu.label "Các cửa sổ mới đóng">
+
+<!ENTITY appMenuHistory.showAll.label "Xem toàn bộ lịch sử">
+<!ENTITY appMenuHistory.clearRecent.label "Xóa lịch sử gần đây…">
+<!ENTITY appMenuHistory.restoreSession.label "Khôi phục phiên làm việc trước">
+<!ENTITY appMenuHistory.viewSidebar.label "Hiển thị thanh lề lịch sử">
+<!ENTITY appMenuHistory.hideSidebar.label "Ẩn thanh lề lịch sử">
+<!ENTITY appMenuHistory.recentHistory.label "Lịch sử gần đây">
+<!ENTITY appMenuHelp.label "Trợ giúp">
+
+<!ENTITY appMenuRemoteTabs.label "Các thẻ đã đồng bộ">
+<!-- LOCALIZATION NOTE (appMenuRemoteTabs.notabs.label): This is shown beneath
+ the name of a device when that device has no open tabs -->
+<!ENTITY appMenuRemoteTabs.notabs.label "Không có thẻ đang mở">
+<!-- LOCALIZATION NOTE (appMenuRemoteTabs.showMore.label, appMenuRemoteTabs.showMore.tooltip):
+ This is shown after the tabs list if we can display more tabs by clicking on the button -->
+<!ENTITY appMenuRemoteTabs.showMore.label "Hiển thị nhiều hơn">
+<!ENTITY appMenuRemoteTabs.showMore.tooltip "Hiển thị các thẻ từ thiết bị này">
+<!-- LOCALIZATION NOTE (appMenuRemoteTabs.showAll.label, appMenuRemoteTabs.showAll.tooltip):
+ This is shown after the tabs list if we can all the remaining tabs by clicking on the button -->
+<!ENTITY appMenuRemoteTabs.showAll.label "Hiện tất cả">
+<!ENTITY appMenuRemoteTabs.showAll.tooltip "Hiển thị các thẻ từ thiết bị này">
+<!-- LOCALIZATION NOTE (appMenuRemoteTabs.tabsnotsyncing.label): This is shown
+ when Sync is configured but syncing tabs is disabled. -->
+<!ENTITY appMenuRemoteTabs.tabsnotsyncing.label "Bật đồng bộ thẻ để xem danh sách thẻ từ các thiết bị khác của bạn.">
+<!-- LOCALIZATION NOTE (appMenuRemoteTabs.noclients.subtitle): This is shown
+ when Sync is configured but this appears to be the only device attached to
+ the account. We also show links to download Firefox for android/ios. -->
+<!ENTITY appMenuRemoteTabs.noclients.subtitle "Muốn xem thẻ từ các thiết bị khác của bạn ở đây?">
+<!ENTITY appMenuRemoteTabs.opensyncprefs.label "Mở Tùy chỉnh Đồng bộ">
+<!ENTITY appMenuRemoteTabs.welcome.label "Xem danh sách các thẻ từ các thiết bị khác của bạn.">
+<!ENTITY appMenuRemoteTabs.unverified.label "Tài khoản của bạn cần phải xác thực.">
+<!ENTITY appMenuRemoteTabs.signintosync.label "Đăng nhập vào &syncBrand.shortName.label;…">
+<!ENTITY appMenuRemoteTabs.turnonsync.label "Bật &syncBrand.shortName.label;…">
+<!ENTITY appMenuRemoteTabs.managedevices.label "Quản lý các thiết bị…">
+<!ENTITY appMenuRemoteTabs.sidebar.label "Xem các thẻ đã đồng bộ trên thanh lề">
+<!ENTITY appMenuRemoteTabs.hidesidebar.label "Ẩn thanh lề đồng bộ hóa">
+<!ENTITY appMenuRemoteTabs.connectdevice.label "Kết nối thiết bị khác">
+
+<!ENTITY appMenuRecentHighlights.label "Nổi bật gần đây">
+
+<!ENTITY customizeMenu.addToToolbar.label "Thêm vào thanh công cụ">
+<!ENTITY customizeMenu.addToToolbar.accesskey "A">
+<!-- LOCALIZATION NOTE (customizeMenu.addToOverflowMenu.label,
+ customizeMenu.pinToOverflowMenu.label, customizeMenu.unpinFromOverflowMenu.label)
+ The overflow menu is the menu that appears if you click the chevron (>> button)
+ in the location bar. -->
+<!ENTITY customizeMenu.addToOverflowMenu.label "Thêm vào menu gợi ý trên thanh địa chỉ">
+<!ENTITY customizeMenu.addToOverflowMenu.accesskey "M">
+<!ENTITY customizeMenu.unpinFromOverflowMenu.label "Gỡ khỏi menu gợi ý trên thanh địa chỉ">
+<!ENTITY customizeMenu.unpinFromOverflowMenu.accesskey "U">
+<!ENTITY customizeMenu.removeFromToolbar.label "Xóa khỏi thanh công cụ">
+<!ENTITY customizeMenu.removeFromToolbar.accesskey "R">
+<!ENTITY customizeMenu.addMoreItems.label "Thêm mục mới…">
+<!ENTITY customizeMenu.addMoreItems.accesskey "A">
+
+<!-- LOCALIZATION NOTE (moreMenu.label) This label is used in the new Photon
+ app (hamburger) menu. When clicked, it opens a subview that contains
+ secondary commands. -->
+<!ENTITY moreMenu.label "Xem thêm">
+
+<!ENTITY contentSearchSubmit.tooltip "Gửi tìm kiếm">
+
+<!-- LOCALIZATION NOTE (searchInput.placeholder):
+ This string is displayed in the search box when the input field is empty. -->
+<!ENTITY searchInput.placeholder "Tìm kiếm">
+<!ENTITY searchIcon.tooltip "Tìm kiếm">
+
+<!ENTITY openLinkCmdInTab.accesskey "T">
+
+<!ENTITY pageAction.copyLink.label "Sao chép liên kết">
+
+<!ENTITY saveToPocketCmd.label "Lưu trang vào Pocket">
+<!ENTITY pocketMenuitem.label "Xem danh sách Pocket">
+
+<!ENTITY emailPageCmd.label "Gửi liên kết qua email…">
+
+<!-- Media (video/audio) controls -->
+
+<!-- LOCALIZATION NOTE :
+fullZoomEnlargeCmd.commandkey3, fullZoomReduceCmd.commandkey2 and
+fullZoomResetCmd.commandkey2 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. -->
+
+<!ENTITY fullZoom.label "Thu phóng">
+
+<!ENTITY sidebarCloseButton.tooltip "Đóng thanh lề">
+
+<!ENTITY quitApplicationCmdWin2.label "Thoát">
+<!ENTITY quitApplicationCmdWin2.accesskey "x">
+<!ENTITY quitApplicationCmdWin2.tooltip "Thoát &brandShorterName;">
+<!ENTITY quitApplicationCmd.label "Thoát">
+<!ENTITY quitApplicationCmd.accesskey "Q">
+<!ENTITY quitApplicationCmdMac2.label "Thoát &brandShorterName;">
+
+<!ENTITY allowPopups.accesskey "p">
+<!-- On Windows we use the term "Options" to describe settings, but
+ on Linux and Mac OS X we use "Preferences" - carry that distinction
+ over into this string, which is used in the "popup blocked" info bar . -->
+<!ENTITY editPopupSettingsUnix.label "Tùy chỉnh chặn cửa sổ bật lên…">
+<!ENTITY editPopupSettings.label "Tùy chọn chặn cửa sổ bật lên…">
+<!ENTITY editPopupSettings.accesskey "E">
+<!ENTITY dontShowMessage.accesskey "D">
+
+<!ENTITY findOnCmd.label "Tìm trong trang này…">
+
+<!ENTITY spellAddDictionaries.label "Thêm từ điển…">
+<!ENTITY spellAddDictionaries.accesskey "A">
+
+
+<!-- Name for the tabs toolbar as spoken by screen readers.
+ The word "toolbar" is appended automatically and should not be contained below! -->
+<!ENTITY tabsToolbar.label "Thẻ trình duyệt">
+
+<!ENTITY syncBrand.shortName.label "Đồng bộ hóa">
+
+<!ENTITY customizeMode.autoHideDownloadsButton.label "Tự động ẩn">
+
+
+<!ENTITY uiTour.infoPanel.close "Đóng">
+
+<!ENTITY panicButton.thankyou.msg1 "Lịch sử gần đây đã bị xóa.">
+<!ENTITY panicButton.thankyou.msg2 "Duyệt web an toàn!">
+<!ENTITY panicButton.thankyou.buttonlabel "Cảm ơn!">
+
+<!ENTITY updateAvailable.panelUI.label "Tải xuống bản cập nhật &brandShorterName;">
+<!ENTITY updateManual.panelUI.label "Tải xuống bản sao của &brandShorterName;">
+<!ENTITY updateUnsupported.panelUI.label "Bạn không thể thực hiện cập nhật thêm">
+<!ENTITY updateRestart.panelUI.label2 "Khởi động lại để cập nhật &brandShorterName;">
+
+<!ENTITY sendToDevice.syncNotReady.label "Đang đồng bộ các thiết bị…">
+
+<!ENTITY pageAction.shareUrl.label "Chia sẻ">
+<!ENTITY pageAction.shareMore.label "Thêm…">
+
+<!ENTITY libraryButton.tooltip "Xem lịch sử, dấu trang đã lưu và nhiều hơn nữa">
+
+<!-- LOCALIZATION NOTE: (accessibilityIndicator.tooltip): This is used to
+ display a tooltip for accessibility indicator in toolbar/tabbar. It is also
+ used as a textual label for the indicator used by assistive technology
+ users. -->
+<!ENTITY accessibilityIndicator.tooltip "Chức năng về khả năng truy cập đã được bật">
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) <What's new>" 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 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+
+<!ENTITY migrationWizard.title "Trình nhập dữ liệu">
+
+<!ENTITY importFrom.label "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ừ:">
+<!ENTITY importFromUnix.label "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ừ:">
+
+<!ENTITY importFromIE.label "Microsoft Internet Explorer">
+<!ENTITY importFromIE.accesskey "I">
+<!ENTITY importFromEdge.label "Microsoft Edge">
+<!ENTITY importFromEdge.accesskey "E">
+<!ENTITY importFromEdgeLegacy.label "Microsoft Edge cũ">
+<!ENTITY importFromEdgeLegacy.accesskey "L">
+<!ENTITY importFromEdgeBeta.label "Microsoft Edge Beta">
+<!ENTITY importFromEdgeBeta.accesskey "d">
+<!ENTITY importFromNothing.label "Không nhập gì cả">
+<!ENTITY importFromNothing.accesskey "h">
+<!ENTITY importFromSafari.label "Safari">
+<!ENTITY importFromSafari.accesskey "S">
+<!ENTITY importFromCanary.label "Chrome Canary">
+<!ENTITY importFromCanary.accesskey "n">
+<!ENTITY importFromChrome.label "Chrome">
+<!ENTITY importFromChrome.accesskey "C">
+<!ENTITY importFromChromeBeta.label "Chrome Beta">
+<!ENTITY importFromChromeBeta.accesskey "B">
+<!ENTITY importFromChromeDev.label "Chrome Dev">
+<!ENTITY importFromChromeDev.accesskey "D">
+<!ENTITY importFromChromium.label "Chromium">
+<!ENTITY importFromChromium.accesskey "u">
+<!ENTITY importFromFirefox.label "Firefox">
+<!ENTITY importFromFirefox.accesskey "x">
+<!ENTITY importFrom360se.label "360 Secure Browser">
+<!ENTITY importFrom360se.accesskey "3">
+
+<!ENTITY noMigrationSources.label "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.">
+
+<!ENTITY importSource.title "Nhập cài đặt và dữ liệu">
+<!ENTITY importItems.title "Các mục cần nhập">
+<!ENTITY importItems.label "Chọn các mục để nhập:">
+
+<!ENTITY migrating.title "Đang nhập…">
+<!ENTITY migrating.label "Các mục sau đang được nhập…">
+
+<!ENTITY selectProfile.title "Chọn Hồ Sơ">
+<!ENTITY selectProfile.label "Các hồ sơ có thể nhập được từ:">
+
+<!ENTITY done.title "Nhập Xong">
+<!ENTITY done.label "Các mục sau đã được nhập thành công:">
+
+<!ENTITY closeSourceBrowser.label "Vui lòng chắc chắn trình duyệt được chọn đã đóng truớc khi tiếp tục.">
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 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.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: 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.
+-->
+
+<!ENTITY window.title "Tin tức quan trọng">
+<!ENTITY window.style "width: 490px">
+<!ENTITY sync "Để đồng bộ hóa thông tin bạn đã lưu vào Firefox với bản cài đặt &brandShortName;, đăng nhập bằng &syncBrand.fxAccount.label;.">
+<!ENTITY continue-button "Tiếp tục">
+
+<!ENTITY mainText "Cài đặt này của &brandShortName; có một hồ sơ mới. Nó không chia sẻ dấu trang, mật khẩu và tùy chọn người dùng với các bản cài đặt khác của Firefox (bao gồm Firefox, Firefox ESR, Firefox Beta, Firefox dành cho nhà phát triển và Firefox Nightly) trên máy tính này.">
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 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.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 (places.library.title): use "Library", "Archive" or "Repository" -->
+<!ENTITY places.library.title "Thư viện">
+<!ENTITY places.library.width "700">
+<!ENTITY places.library.height "500">
+<!ENTITY organize.label "Quản lí">
+<!ENTITY organize.accesskey "Q">
+<!ENTITY organize.tooltip "Tổ chức dấu trang của bạn">
+
+<!ENTITY file.close.label "Đóng">
+<!ENTITY file.close.accesskey "C">
+<!ENTITY cmd.close.key "w">
+<!ENTITY views.label "Xem">
+<!ENTITY views.accesskey "V">
+<!ENTITY views.tooltip "Thay đổi cách nhìn của bạn">
+<!ENTITY view.columns.label "Hiển thị cột">
+<!ENTITY view.columns.accesskey "C">
+<!ENTITY view.sort.label "Sắp xếp">
+<!ENTITY view.sort.accesskey "S">
+<!ENTITY view.unsorted.label "Chưa sắp xếp">
+<!ENTITY view.unsorted.accesskey "U">
+<!ENTITY view.sortAscending.label "Sắp xếp từ A > Z">
+<!ENTITY view.sortAscending.accesskey "A">
+<!ENTITY view.sortDescending.label "Sắp xếp từ Z > A">
+<!ENTITY view.sortDescending.accesskey "Z">
+
+<!ENTITY importBookmarksFromHTML.label "Nhập dấu trang từ HTML…">
+<!ENTITY importBookmarksFromHTML.accesskey "I">
+<!ENTITY exportBookmarksToHTML.label "Xuất dấu trang sang HTML…">
+<!ENTITY exportBookmarksToHTML.accesskey "E">
+<!ENTITY importOtherBrowser.label "Nhập dữ liệu từ trình duyệt khác…">
+<!ENTITY importOtherBrowser.accesskey "A">
+
+<!ENTITY cmd.backup.label "Sao lưu…">
+<!ENTITY cmd.backup.accesskey "B">
+<!ENTITY cmd.restore2.label "Khôi phục">
+<!ENTITY cmd.restore2.accesskey "R">
+<!ENTITY cmd.restoreFromFile.label "Chọn tập tin…">
+<!ENTITY cmd.restoreFromFile.accesskey "C">
+
+<!ENTITY col.name.label "Tên">
+<!ENTITY col.tags.label "Nhãn">
+<!ENTITY col.url.label "Địa chỉ">
+<!ENTITY col.mostrecentvisit.label "Lần truy cập gần nhất">
+<!ENTITY col.visitcount.label "Số lần xem">
+<!ENTITY col.dateadded.label "Ngày thêm">
+<!ENTITY col.lastmodified.label "Sửa đổi lần cuối">
+
+<!ENTITY cmd.find.key "f">
+
+<!ENTITY maintenance.label "Nhập và sao lưu">
+<!ENTITY maintenance.accesskey "I">
+<!ENTITY maintenance.tooltip "Nhập và sao lưu dấu trang của bạn">
+
+<!ENTITY backButton.tooltip "Quay lại">
+
+<!ENTITY forwardButton.tooltip "Tiến">
+
+<!ENTITY detailsPane.selectAnItemText.description "Chọn một mục để xem và chỉnh sửa thuộc tính của nó">
+
diff --git a/l10n-vi/browser/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 <a href="%1$S" target="_blank">Điều khoản dịch vụ</a> và <a href="%2$S" target="_blank">Chính sách bảo mật</a> 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 <user-typed string> 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 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY syncBrand.shortName.label "Đồng bộ hóa">
+<!ENTITY syncBrand.fxAccount.label "Tài khoản Firefox">
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 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.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.thisPageIsIn.label,
+ - translation.translateThisPage.label):
+ - These 2 strings are used to construct a sentence that contains a dropdown
+ - showing the detected language of the current web page.
+ - In en-US it looks like this:
+ - This page is in [detected language] Translate this page?
+ - "detected language" here is a language name coming from the
+ - toolkit/intl/languageNames.ftl file; for some locales it may not be in
+ - the correct grammar case to keep the same structure of the original
+ - sentence. -->
+<!ENTITY translation.thisPageIsIn.label "Trang này sử dụng tiếng">
+<!ENTITY translation.translateThisPage.label "Dịch trang này?">
+<!ENTITY translation.translate.button "Dịch">
+<!ENTITY translation.notNow.button "Không phải bây giờ">
+
+<!ENTITY translation.translatingContent.label "Đang dịch nội dung trang…">
+
+<!-- LOCALIZATION NOTE (translation.translatedFrom.label,
+ - translation.translatedTo.label,
+ - translation.translatedToSuffix.label):
+ - These 3 strings are used to construct a sentence that contains 2 dropdowns
+ - showing the source and target language of a translated web page.
+ - In en-US it looks like this:
+ - This page has been translated from [from language] to [to language]
+ - "from language" and "to language" here are language names coming from the
+ - toolkit/intl/languageNames.ftl file; for some locales they may not be in
+ - the correct grammar case to keep the same structure of the original
+ - sentence.
+ -
+ - translation.translatedToSuffix.label (empty in en-US) is for locales that
+ - need to display some text after the second drop down for the sentence to
+ - be grammatically correct. -->
+<!ENTITY translation.translatedFrom.label "Trang này đã được dịch từ tiếng">
+<!ENTITY translation.translatedTo.label "sang tiếng">
+<!ENTITY translation.translatedToSuffix.label "">
+
+<!ENTITY translation.showOriginal.button "Xem bản gốc">
+<!ENTITY translation.showTranslation.button "Xem bản dịch">
+
+<!ENTITY translation.errorTranslating.label "Có lỗi khi đang dịch trang này.">
+<!ENTITY translation.tryAgain.button "Thử lại">
+
+<!ENTITY translation.serviceUnavailable.label "Hiện tại không thể dịch được. Vui lòng thử lại sau.">
+
+<!ENTITY translation.options.menu "Tùy chọn">
+<!-- LOCALIZATION NOTE (translation.options.neverForSite.accesskey,
+ - translation.options.preferences.accesskey):
+ - The accesskey values used here should not clash with the value used for
+ - translation.options.neverForLanguage.accesskey in translation.properties
+ -->
+<!ENTITY translation.options.neverForSite.label "Không bao giờ dịch trang này">
+<!ENTITY translation.options.neverForSite.accesskey "e">
+<!ENTITY translation.options.preferences.label "Tùy chọn dịch">
+<!ENTITY translation.options.preferences.accesskey "T">
+
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=<Không rõ>
+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 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd">
+%brandDTD;
+
+<!ENTITY loadError.label "Sự cố khi tải trang">
+<!ENTITY retry.label "Thử lại">
+<!ENTITY returnToPreviousPage.label "Quay lại">
+<!ENTITY returnToPreviousPage1.label "Quay lại (Khuyến nghị)">
+<!ENTITY advanced2.label "Nâng cao…">
+<!ENTITY viewCertificate.label "Xem chứng chỉ">
+
+<!-- Specific error messages -->
+
+<!ENTITY connectionFailure.longDesc "&sharedLongDesc;">
+
+<!ENTITY deniedPortAccess.longDesc "">
+
+<!ENTITY dnsNotFound.pageTitle "Không tìm thấy máy chủ">
+<!ENTITY dnsNotFound.longDesc1 "<strong>Nếu địa chỉ đúng, có ba việc bạn có thể thử:</strong> <ul>
+ <li>Thử lại sau.</li>
+ <li>Kiểm tra kết nối mạng của bạn.</li>
+ <li>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.</li> </ul>">
+
+<!ENTITY fileNotFound.longDesc "<ul> <li>Kiểm tra tên xem có lỗi gõ HOA-thường hay lỗi nào khác không.</li> <li>Kiểm tra xem tập tin có bị di chuyển, đổi tên hay bị xóa không.</li> </ul>">
+
+<!ENTITY fileAccessDenied.longDesc "<ul> <li>Nó có thể đã bị xóa, chuyển đi, hay quyền truy cập tập tin đã bị chặn.</li> </ul>">
+
+<!ENTITY generic.longDesc "<p>Vì lý do nào đó, &brandShortName; không thể mở trang này.</p>">
+
+<!ENTITY captivePortal.title "Đăng nhập vào mạng">
+<!ENTITY captivePortal.longDesc2 "
+<p>Bạn cần đăng nhập vào mạng trước khi có thể truy cập Internet.</p>
+">
+
+<!ENTITY openPortalLoginPage.label2 "Mở trang đăng nhập mạng">
+
+<!ENTITY malformedURI.pageTitle "URL không hợp lệ">
+
+<!ENTITY netInterrupt.longDesc "&sharedLongDesc;">
+
+<!ENTITY notCached.longDesc "<p>Tài liệu được yêu cầu không có sẵn trong bộ đệm của &brandShortName;.</p><ul><li>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.</li><li>Nhấn nút Thử Lại để yêu cầu tải lại tài liệu từ trang web.</li></ul>">
+
+<!ENTITY netOffline.longDesc2 "<ul> <li>Nhấn &quot;Thử lại&quot; để chuyển sang chế độ trực tuyến và tải lại trang.</li> </ul>">
+
+<!ENTITY contentEncodingError.longDesc "<ul> <li>Vui lòng liên hệ với chủ trang web để báo với họ về vấn đề này.</li> </ul>">
+
+<!ENTITY unsafeContentType.longDesc "<ul> <li>Vui lòng liên hệ với chủ trang web để báo với họ về vấn đề này.</li> </ul>">
+
+<!ENTITY netReset.longDesc "&sharedLongDesc;">
+
+<!ENTITY netTimeout.longDesc "&sharedLongDesc;">
+
+<!ENTITY unknownProtocolFound.longDesc "<ul> <li>Có lẽ bạn cần phải cài đặt phần mềm khác mới mở được.</li> </ul>">
+
+<!ENTITY proxyConnectFailure.longDesc "<ul> <li>Kiểm tra thiết lập proxy để chắc chắn rằng mọi thứ đều đúng.</li> <li>Liên hệ với quản trị mạng của bạn để chắc chắn rằng máy chủ proxy vẫn đang hoạt động.</li> </ul>">
+
+<!ENTITY proxyResolveFailure.longDesc "<ul> <li>Kiểm tra thiết lập proxy.</li> <li>Kiểm tra kết nối mạng.</li> <li>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.</li> </ul>">
+
+<!ENTITY redirectLoop.longDesc "<ul> <li>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.</li> </ul>">
+
+<!ENTITY unknownSocketType.longDesc "<ul> <li>Kiểm tra để chắc chắn rằng hệ thống của bạn có Trình quản lí Bảo mật Cá nhân đã được cài đặt.</li> <li>Điều này có thể là do cấu hình không chuẩn trên máy chủ.</li> </ul>">
+
+<!ENTITY nssFailure2.longDesc2 "<ul><li>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.</li><li>Vui lòng liên hệ chủ trang web để báo với họ vấn đề này.</li></ul>">
+
+<!-- Localization note (certerror.introPara2) - The text content of the span tag
+will be replaced at runtime with the name of the server to which the user
+was trying to connect. -->
+<!ENTITY certerror.introPara2 "&brandShortName; phát hiện một mối đe dọa bảo mật và không tiếp tục đến <span class='hostname'/>. 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.">
+<!ENTITY certerror.sts.introPara "&brandShortName; phát hiện một mối đe dọa bảo mật tiềm năng và không tiếp tục đến <span class='hostname'/> vì trang web này yêu cầu kết nối an toàn.">
+
+<!ENTITY certerror.expiredCert.introPara "&brandShortName; đã phát hiện sự cố và không tiếp tục đến <span class='hostname'/>. Trang web định cấu hình sai hoặc đồng hồ máy tính của bạn không đúng.">
+<!ENTITY certerror.expiredCert.secondPara2 "Có vẻ như chứng chỉ của trang web đã hết hạn, việc này sẽ ngăn chặn &brandShortName; từ kết nối an toàn. Nếu bạn truy cập trang 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.">
+<!ENTITY certerror.expiredCert.sts.secondPara "Có vẻ như chứng chỉ của trang web đã hết hạn, việc này sẽ ngăn chặn &brandShortName; từ kết nối an toàn.">
+
+<!ENTITY certerror.whatCanYouDoAboutItTitle "Bạn có thể làm gì về nó?">
+
+<!ENTITY certerror.unknownIssuer.whatCanYouDoAboutIt "
+<p>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ó.</p>
+<p>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ố.</p>
+">
+
+<!ENTITY certerror.expiredCert.whatCanYouDoAboutIt2 "
+<p>Đồng hồ máy tính của bạn được đặt thành <span id='wrongSystemTime_systemDate2'/>. Đả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 <span class='hostname'/>.</p>
+<p>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ố.</p>
+">
+
+<!ENTITY certerror.badCertDomain.whatCanYouDoAboutIt "
+<p>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ố.</p>
+">
+
+<!ENTITY sharedLongDesc "<ul> <li>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.</li> <li>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.</li> <li>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.</li> </ul>">
+
+<!ENTITY cspBlocked.longDesc "<p>&brandShortName; không tải trang này vì nó có một chính sách bảo vệ nội dung không cho phép việc tải theo cách này.</p>">
+
+<!ENTITY xfoBlocked.longDesc "<p>&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.</p>">
+
+<!ENTITY corruptedContentErrorv2.longDesc "<p>Không thể hiển thị được trang mà bạn muốn xem vì có lỗi trong truyền tải dữ liệu.</p><ul><li>Vui lòng liên hệ chủ trang web để báo họ về vấn đề này.</li></ul>">
+
+<!ENTITY securityOverride.exceptionButton1Label "Chấp nhận rủi ro và tiếp tục">
+
+<!ENTITY errorReporting.automatic2 "Báo cáo những lỗi như thế này để giúp Mozilla nhận diện và chặn những trang độc hại">
+<!ENTITY errorReporting.learnMore "Tìm hiểu thêm…">
+
+<!ENTITY remoteXUL.longDesc "<p><ul><li>Vui lòng liên hệ với chủ trang web để báo với họ vấn đề này.</li></ul></p>">
+
+<!-- LOCALIZATION NOTE (sslv3Used.longDesc2) - Do not translate
+ "SSL_ERROR_UNSUPPORTED_VERSION". -->
+<!ENTITY sslv3Used.longDesc2 "Thông tin bổ sung: SSL_ERROR_UNSUPPORTED_VERSION">
+
+<!ENTITY certerror.pagetitle2 "Cảnh báo: Rủi ro bảo mật tiềm ẩn">
+<!ENTITY certerror.sts.pagetitle "Không kết nối: Sự cố bảo mật tiềm ẩn">
+<!ENTITY certerror.whatShouldIDo.badStsCertExplanation1 "<span class='hostname'></span> 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.">
+<!ENTITY certerror.copyToClipboard.label "Sao chép văn bản vào bộ nhớ tạm">
+
+<!-- LOCALIZATION NOTE (inadequateSecurityError.longDesc) - Do not translate
+ "NS_ERROR_NET_INADEQUATE_SECURITY". -->
+<!ENTITY inadequateSecurityError.longDesc "<p><span class='hostname'></span> sử dụng công nghệ bảo mật lỗi thời và dễ bị tấn 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.</p><p>Mã lỗi: NS_ERROR_NET_INADEQUATE_SECURITY</p>">
+
+<!ENTITY blockedByPolicy.title "Trang bị chặn">
+
+<!ENTITY certerror.mitm.longDesc "<span class='hostname'></span> 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 <span class='mitm-name'/>, có thể là phần mềm trên máy tính hoặc mạng của bạn.">
+<!ENTITY certerror.mitm.whatCanYouDoAboutIt1 "Nếu phần mềm chống vi-rút của bạn bao gồm một tính năng quét các kết nối được mã hóa (thường được gọi là “quét trang web” hoặc “quét https”), bạn có thể tắt tính năng đó. Nếu điều đó không hoạt động, bạn có thể gỡ bỏ và cài đặt lại phần mềm chống vi-rút.">
+<!ENTITY certerror.mitm.whatCanYouDoAboutIt2 "Nếu bạn đang ở trong một mạng công ty, bạn có thể phải liên hệ với bộ phận CNTT của bạn.">
+<!ENTITY certerror.mitm.whatCanYouDoAboutIt3 "Nếu bạn không quen với <span class='mitm-name'/>, 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.">
+<!ENTITY certerror.mitm.sts.whatCanYouDoAboutIt3 "Nếu bạn không quen với <span class='mitm-name'/>, 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.">
+
+<!ENTITY clockSkewError.longDesc "Đồng hồ máy tính của bạn hiện tại là <span id='wrongSystemTime_systemDate1'/>, việc này ngăn chặn &brandShortName; từ kết nối an toàn. Để truy cập <span class='hostname'></span>, 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 <span class='hostname'></span>.">
+
+<!ENTITY prefReset.longDesc "Dường như là cài đặt bảo mật mạng của bạn có thể gây ra điều này. Bạn có muốn khôi phục cài đặt mặc định?">
+<!ENTITY prefReset.label "Khôi phục cài đặt mặc định">
+
+<!ENTITY enableTls10.longDesc "Trang web này có thể không hỗ trợ giao thức TLS 1.2, đây là phiên bản tối thiểu được hỗ trợ bởi &brandShortName;. Kích hoạt TLS 1.0 và TLS 1.1 có thể cho phép kết nối này.">
+<!ENTITY enableTls10.note "TLS 1.0 và TLS 1.1 sẽ bị vô hiệu hóa vĩnh viễn trong phiên bản tương lai.">
+<!ENTITY enableTls10.label "Kích hoạt TLS 1.0 và 1.1">
+
+<!ENTITY networkProtocolError.longDesc "<p>Không thể hiển thị trang bạn đang cố xem vì lỗi trong giao thức mạng đã được phát hiện.</p><ul><li>Vui lòng liên hệ với chủ sở hữu trang web để thông báo cho họ về sự cố này.</li></ul>">
diff --git a/l10n-vi/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 @@
+<!-- -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- -->
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY settingsChangePreferences.label "Thiết lập có thể thay đổi bằng thẻ ứng dụng trong tùy chỉnh của &brandShortName;.">
+<!ENTITY settingsChangeOptions.label "Thiết lập có thể thay đổi bằng thẻ ứng dụng trong tùy chọn của &brandShortName;.">
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 <em:contributor>Nguyễn Mạnh Hùng</em:contributor> <em:contributor>Nguyễn Xuân Minh</em:contributor> <em:contributor>Huỳnh Hải Đăng</em:contributor> <em:contributor>Bùi Việt Khoa</em:contributor> <em:contributor>Trần Nguyễn Sơn</em:contributor> <em:contributor>Ngô Đức Trung</em:contributor> <em:contributor>Nguyễn Hà Dương</em:contributor> <em:contributor>Nguyễn Phan Hải</em:contributor> <em:contributor>Đặng Duy Thanh</em:contributor>
+
+#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 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY event.title.label "Chỉnh sửa Mục" >
+
+<!ENTITY event.dialog.keepDurationButton.tooltip "Giữ thời lượng khi thay đổi ngày kết thúc">
+<!ENTITY event.dialog.keepDurationButton.accesskey "K">
+
+<!ENTITY newevent.from.label "Từ" >
+<!ENTITY newevent.to.label "Tới" >
+
+<!ENTITY newevent.status.label "Trạng thái" >
+<!ENTITY newevent.status.accesskey "r" >
+<!ENTITY newevent.eventStatus.none.label "Không xác định" >
+<!ENTITY newevent.eventStatus.none.accesskey "K" >
+<!ENTITY newevent.todoStatus.none.label "Không xác định" >
+<!ENTITY newevent.eventStatus.cancelled.label "Đã hủy" >
+<!ENTITY newevent.eventStatus.cancelled.accesskey "n" >
+<!ENTITY newevent.todoStatus.cancelled.label "Đã hủy" >
+<!ENTITY newevent.status.tentative.label "Phân vân" >
+<!ENTITY newevent.status.tentative.accesskey "P" >
+<!ENTITY newevent.status.confirmed.label "Đã xác nhận" >
+<!ENTITY newevent.status.confirmed.accesskey "c" >
+<!ENTITY newevent.status.needsaction.label "Cần thao tác" >
+<!ENTITY newevent.status.inprogress.label "Đang xử lí" >
+<!ENTITY newevent.status.completed.label "Xong vào" >
+
+<!-- The following entity is for New Task dialog only -->
+<!ENTITY newtodo.percentcomplete.label "&#37; hoàn tất">
+
+<!-- LOCALIZATON NOTE(event.attendees.notify.label,event.attendees.notifyundisclosed.label,
+ event.attendees.disallowcounter.label)
+ - These three labels are displayed side by side in the event dialog, make sure
+ - they still fit in. -->
+<!ENTITY event.attendees.notify.label "Thông báo cho người tham dự">
+<!ENTITY event.attendees.notify.accesskey "f">
+<!ENTITY event.attendees.notifyundisclosed.label "Lời mời riêng cho mỗi người tham dự">
+<!ENTITY event.attendees.notifyundisclosed.accesskey "x">
+<!ENTITY event.attendees.notifyundisclosed.tooltip "Tùy chọn này sẽ gửi một email mời cho mỗi người tham dự. Mỗi lời mời chỉ chứa người tham dự người nhận để các danh tính người tham dự khác không được tiết lộ.">
+<!ENTITY event.attendees.disallowcounter.label "Không cho phép truy cập">
+<!ENTITY event.attendees.disallowcounter.accesskey "a">
+<!ENTITY event.attendees.disallowcounter.tooltip "Cho biết rằng bạn sẽ không chấp nhận phản đối">
+
+<!-- Keyboard Shortcuts -->
+<!ENTITY event.dialog.new.event.key2 "I">
+<!ENTITY event.dialog.new.task.key2 "D">
+<!ENTITY event.dialog.new.message.key2 "N">
+<!ENTITY event.dialog.close.key "W">
+<!ENTITY event.dialog.save.key "S">
+<!ENTITY event.dialog.saveandclose.key "L">
+<!ENTITY event.dialog.print.key "P">
+<!ENTITY event.dialog.undo.key "Z">
+<!ENTITY event.dialog.redo.key "Y">
+<!ENTITY event.dialog.cut.key "X">
+<!ENTITY event.dialog.copy.key "C">
+<!ENTITY event.dialog.paste.key "V">
+<!ENTITY event.dialog.select.all.key "A">
+
+<!-- Menubar -->
+<!ENTITY event.menu.item.new.label "Mới">
+<!ENTITY event.menu.item.new.accesskey "M">
+<!ENTITY event.menu.item.new.event.label "Sự kiện">
+<!ENTITY event.menu.item.new.event.accesskey "S">
+<!ENTITY event.menu.item.new.task.label "Tác vụ">
+<!ENTITY event.menu.item.new.task.accesskey "T">
+<!ENTITY event.menu.item.new.message.label "Thông điệp">
+<!ENTITY event.menu.item.new.message.accesskey "i">
+<!ENTITY event.menu.item.new.contact.label "Sổ địa chỉ liên hệ">
+<!ENTITY event.menu.item.new.contact.accesskey "a">
+<!ENTITY event.menu.item.close.label "Đóng">
+<!ENTITY event.menu.item.close.accesskey "g">
+
+<!-- LOCALIZATION NOTE
+ - event.menu.item.save.accesskey is used for the "Save" menu item
+ - when editing events/tasks in a dialog window.
+ - event.menu.item.save.tab.accesskey is used for the "Save" menu item
+ - when editing events/tasks in a tab. -->
+<!ENTITY event.menu.item.save.label "Lưu">
+<!ENTITY event.menu.item.save.accesskey "L">
+<!ENTITY event.menu.item.save.tab.accesskey "a">
+
+<!-- LOCALIZATION NOTE
+ - event.menu.item.saveandclose.accesskey is used for "Save and Close"
+ - menu item when editing events/tasks in a dialog window.
+ - event.menu.item.saveandclose.tab.accesskey is used for "Save and Close"
+ - when editing events/tasks in a tab. -->
+<!ENTITY event.menu.item.saveandclose.label "Lưu và Đóng">
+<!ENTITY event.menu.item.saveandclose.accesskey "v">
+<!ENTITY event.menu.item.saveandclose.tab.accesskey "z">
+
+<!ENTITY event.menu.item.delete.label "Xóa…">
+<!ENTITY event.menu.item.delete.accesskey "X">
+<!ENTITY event.menu.item.page.setup.label "Thiết lập Trang">
+<!ENTITY event.menu.item.page.setup.accesskey "p">
+<!ENTITY event.menu.item.print.label "In">
+<!ENTITY event.menu.item.print.accesskey "I">
+
+<!ENTITY event.menu.edit.label "Chỉnh sửa">
+<!ENTITY event.menu.edit.accesskey "C">
+<!ENTITY event.menu.edit.undo.label "Hoàn tác">
+<!ENTITY event.menu.edit.undo.accesskey "H">
+<!ENTITY event.menu.edit.redo.label "Làm lại">
+<!ENTITY event.menu.edit.redo.accesskey "L">
+<!ENTITY event.menu.edit.cut.label "Cắt">
+<!ENTITY event.menu.edit.cut.accesskey "t">
+<!ENTITY event.menu.edit.copy.label "Sao chép">
+<!ENTITY event.menu.edit.copy.accesskey "C">
+<!ENTITY event.menu.edit.paste.label "Dán">
+<!ENTITY event.menu.edit.paste.accesskey "D">
+<!ENTITY event.menu.edit.select.all.label "Chọn Toàn Bộ">
+<!ENTITY event.menu.edit.select.all.accesskey "B">
+
+<!ENTITY event.menu.view.label "Hiển thị">
+<!ENTITY event.menu.view.accesskey "H">
+<!ENTITY event.menu.view.toolbars.label "Thanh Công Cụ">
+<!ENTITY event.menu.view.toolbars.accesskey "C">
+<!ENTITY event.menu.view.toolbars.event.label "Thanh Sự Kiện">
+<!ENTITY event.menu.view.toolbars.event.accesskey "S">
+<!ENTITY event.menu.view.toolbars.customize.label "Tùy biến…">
+<!ENTITY event.menu.view.toolbars.customize.accesskey "y">
+<!ENTITY event.menu.view.showlink.label "Hiển thị Liên kết Liên quan">
+<!ENTITY event.menu.view.showlink.accesskey "H">
+
+<!ENTITY event.menu.options.label "Tùy chọn">
+<!ENTITY event.menu.options.accesskey "y">
+<!ENTITY event.menu.options.attendees.label "Mời khách Tham dự…">
+<!ENTITY event.menu.options.attendees.accesskey "M">
+<!ENTITY event.menu.options.timezone2.label "Hiển thị múi giờ">
+<!ENTITY event.menu.options.timezone2.accesskey "z">
+<!ENTITY event.menu.options.priority2.label "Ưu tiên">
+<!ENTITY event.menu.options.priority2.accesskey "u">
+<!ENTITY event.menu.options.priority.notspecified.label "Không xác định">
+<!ENTITY event.menu.options.priority.notspecified.accesskey "K">
+<!ENTITY event.menu.options.priority.low.label "Thấp">
+<!ENTITY event.menu.options.priority.low.accesskey "T">
+<!ENTITY event.menu.options.priority.normal.label "Bình thường">
+<!ENTITY event.menu.options.priority.normal.accesskey "B">
+<!ENTITY event.menu.options.priority.high.label "Cao">
+<!ENTITY event.menu.options.priority.high.accesskey "C">
+<!ENTITY event.menu.options.privacy.label "Riêng tư">
+<!ENTITY event.menu.options.privacy.accesskey "R">
+<!ENTITY event.menu.options.privacy.public.label "Sự kiện Công khai">
+<!ENTITY event.menu.options.privacy.public.accesskey "S">
+<!ENTITY event.menu.options.privacy.confidential.label "Chỉ hiện Ngày và Giờ">
+<!ENTITY event.menu.options.privacy.confidential.accesskey "N">
+<!ENTITY event.menu.options.privacy.private.label "Sự kiện Cá nhân">
+<!ENTITY event.menu.options.privacy.private.accesskey "C">
+<!ENTITY event.menu.options.show.time.label "Hiện tình trạng lịch trình là">
+<!ENTITY event.menu.options.show.time.accesskey "t">
+<!ENTITY event.menu.options.show.time.busy.label "Bận">
+<!ENTITY event.menu.options.show.time.busy.accesskey "B">
+<!ENTITY event.menu.options.show.time.free.label "Rảnh">
+<!ENTITY event.menu.options.show.time.free.accesskey "F">
+
+<!ENTITY event.invite.attendees.label "Mời khách Tham dự…">
+<!ENTITY event.invite.attendees.accesskey "M">
+<!ENTITY event.email.attendees.label "Gửi Email cho Tất cả Khách tham dự…">
+<!ENTITY event.email.attendees.accesskey "a">
+<!ENTITY event.email.tentative.attendees.label "Gửi Email cho các Khách tham dự Chưa quyết định…">
+<!ENTITY event.email.tentative.attendees.accesskey "u">
+<!ENTITY event.remove.attendees.label2 "Xóa tất cả những người tham dự">
+<!ENTITY event.remove.attendees.accesskey "r">
+<!ENTITY event.remove.attendee.label "Xóa người tham dự">
+<!ENTITY event.remove.attendee.accesskey "e">
+
+<!-- Toolbar -->
+<!ENTITY event.toolbar.save.label2 "Lưu">
+<!ENTITY event.toolbar.saveandclose.label "Lưu và đóng">
+<!ENTITY event.toolbar.delete.label "Xóa">
+<!ENTITY event.toolbar.attendees.label "Mời khách Tham dự">
+<!ENTITY event.toolbar.privacy.label "Riêng tư">
+
+<!ENTITY event.toolbar.save.tooltip2 "Lưu">
+<!ENTITY event.toolbar.saveandclose.tooltip "Lưu và đóng">
+<!ENTITY event.toolbar.delete.tooltip "Xóa">
+<!ENTITY event.toolbar.attendees.tooltip "Mời khách tham dự">
+<!ENTITY event.toolbar.attachments.tooltip "Thêm đính kèm">
+<!ENTITY event.toolbar.privacy.tooltip "Thay đổi quyền riêng tư">
+<!ENTITY event.toolbar.priority.tooltip "Thay đổi ưu tiên">
+<!ENTITY event.toolbar.status.tooltip "Thay đổi trạng thái">
+<!ENTITY event.toolbar.freebusy.tooltip "Thay đổi thời gian rảnh/bận">
+
+<!-- Counter box -->
+<!-- LOCALIZATON NOTE(counter.button.*)
+ - This is only visible in the UI if you have received a counterproposal before and are going to
+ - reschedule the event from the imipbar in the email view. Clicking on the buttons will only
+ - populate the form fields in the dialog, there's no other immediate action on clicking like with
+ - the imip bar. Rescheduling will happen after clicking on save&close as usual. This screenshot
+ - illustrates how it might look like: https://bugzilla.mozilla.org/attachment.cgi?id=8810121 -->
+<!ENTITY counter.button.proposal.label "Áp dụng đề xuất">
+<!ENTITY counter.button.proposal.accesskey "p">
+<!ENTITY counter.button.proposal.tooltip2 "Các trường sự kiện sẽ được điền vào bằng cách sử dụng các giá trị từ phản hồi, chỉ lưu có hoặc không có thay đổi bổ sung sẽ thông báo cho tất cả người tham dự theo đó">
+<!ENTITY counter.button.original.label "Áp dụng dữ liệu gốc">
+<!ENTITY counter.button.original.accesskey "r">
+<!ENTITY counter.button.original.tooltip2 "Các trường sẽ được đặt thành các giá trị từ sự kiện ban đầu, trước khi phản hồi được thực hiện">
+
+<!-- Main page -->
+<!ENTITY event.title.textbox.label "Tiêu đề:" >
+<!ENTITY event.title.textbox.accesskey "u">
+<!ENTITY event.location.label "Địa chỉ:" >
+<!ENTITY event.location.accesskey "L">
+<!ENTITY event.categories.label "Phân mục:">
+<!ENTITY event.categories.accesskey "n">
+<!ENTITY event.categories.textbox.label "Thêm một danh mục mới" >
+<!ENTITY event.calendar.label "Lịch:" >
+<!ENTITY event.calendar.accesskey "L">
+<!ENTITY event.attendees.label "Khách tham dự:" >
+<!ENTITY event.attendees.accesskey "a">
+<!ENTITY event.alldayevent.label "Sự kiện Cả ngày" >
+<!ENTITY event.alldayevent.accesskey "S">
+<!ENTITY event.from.label "Bắt đầu:" >
+<!ENTITY event.from.accesskey "B">
+<!ENTITY task.from.label "Bắt đầu:" >
+<!ENTITY task.from.accesskey "B">
+<!ENTITY event.to.label "Kết thúc:" >
+<!ENTITY event.to.accesskey "K">
+<!ENTITY task.to.label "Ngày đến hạn:" >
+<!ENTITY task.to.accesskey "N">
+<!ENTITY task.status.label "Trạng thái:" >
+<!ENTITY task.status.accesskey "r">
+<!ENTITY event.repeat.label "Lặp lại:" >
+<!ENTITY event.repeat.accesskey "i">
+<!ENTITY event.until.label "Cho đến khi:">
+<!ENTITY event.until.accesskey "B">
+<!ENTITY event.reminder.label "Nhắc việc:" >
+<!ENTITY event.reminder.accesskey "v">
+<!ENTITY event.description.label "Mô tả:" >
+<!ENTITY event.description.accesskey "M">
+<!ENTITY event.attachments.label "Đính kèm:" >
+<!ENTITY event.attachments.accesskey "k" >
+<!ENTITY event.attachments.menubutton.label "Đính kèm">
+<!ENTITY event.attachments.menubutton.accesskey "A">
+<!ENTITY event.attachments.url.label "Trang web…">
+<!ENTITY event.attachments.url.accesskey "W">
+<!ENTITY event.attachments.popup.remove.label "Xóa" >
+<!ENTITY event.attachments.popup.remove.accesskey "X" >
+<!ENTITY event.attachments.popup.open.label "Mở" >
+<!ENTITY event.attachments.popup.open.accesskey "M" >
+<!ENTITY event.attachments.popup.removeAll.label "Xóa tất cả" >
+<!ENTITY event.attachments.popup.removeAll.accesskey "a" >
+<!ENTITY event.attachments.popup.attachPage.label "Đính kèm Trang web…" >
+<!ENTITY event.attachments.popup.attachPage.accesskey "w" >
+<!ENTITY event.url.label "Liên kết Liên quan:" >
+<!ENTITY event.priority2.label "Ưu tiên:">
+
+<!ENTITY event.reminder.none.label "Không có nhắc việc " >
+<!ENTITY event.reminder.0minutes.before.label "0 phút trước" >
+<!ENTITY event.reminder.5minutes.before.label "5 phút trước lúc đó" >
+<!ENTITY event.reminder.15minutes.before.label "15 phút trước lúc đó" >
+<!ENTITY event.reminder.30minutes.before.label "30 phút trước lúc đó" >
+<!ENTITY event.reminder.1hour.before.label "1 tiếng trước lúc đó" >
+<!ENTITY event.reminder.2hours.before.label "2 tiếng trước lúc đó" >
+<!ENTITY event.reminder.12hours.before.label "12 giờ trước" >
+<!ENTITY event.reminder.1day.before.label "1 ngày trước lúc đó" >
+<!ENTITY event.reminder.2days.before.label "2 ngày trước lúc đó" >
+<!ENTITY event.reminder.1week.before.label "1 tuần trước lúc đó" >
+<!ENTITY event.reminder.custom.label "Tùy biến…" >
+
+<!ENTITY event.reminder.multiple.label "Nhiều lời Nhắc việc…" >
+
+<!ENTITY event.statusbarpanel.freebusy.label "Tình trạng lịch trình:">
+<!ENTITY event.statusbarpanel.privacy.label "Riêng tư:">
+
+<!-- Recurrence dialog -->
+<!ENTITY recurrence.title.label "Chỉnh sửa Việc tái diễn">
+
+<!ENTITY event.repeat.does.not.repeat.label "Không lặp lại">
+<!ENTITY event.repeat.daily.label "Hàng ngày">
+<!ENTITY event.repeat.weekly.label "Hàng tuần">
+<!ENTITY event.repeat.every.weekday.label "Mỗi ngày-làm-việc">
+<!ENTITY event.repeat.bi.weekly.label "Mỗi hai tuần">
+<!ENTITY event.repeat.monthly.label "Hàng tháng">
+<!ENTITY event.repeat.yearly.label "Hàng năm">
+<!ENTITY event.repeat.custom.label "Tùy biến…">
+
+<!ENTITY event.recurrence.pattern.label "Khuôn mẫu cho việc tái diễn">
+<!ENTITY event.recurrence.occurs.label "Lặp lại" >
+<!ENTITY event.recurrence.day.label "hàng ngày" >
+<!ENTITY event.recurrence.week.label "hàng tuần" >
+<!ENTITY event.recurrence.month.label "hàng tháng" >
+<!ENTITY event.recurrence.year.label "hàng năm" >
+
+<!ENTITY event.recurrence.pattern.every.label "Mỗi" >
+<!ENTITY repeat.units.days.both "Ngày" >
+<!ENTITY event.recurrence.pattern.every.weekday.label "Mỗi ngày-làm-việc" >
+
+<!ENTITY event.recurrence.pattern.weekly.every.label "Mỗi" >
+<!ENTITY repeat.units.weeks.both "Tuần" >
+<!ENTITY event.recurrence.on.label "Vào:" >
+
+<!ENTITY event.recurrence.pattern.monthly.every.label "Mỗi" >
+<!ENTITY repeat.units.months.both "Tháng" >
+<!ENTITY event.recurrence.monthly.every.label "Mỗi" >
+<!ENTITY event.recurrence.monthly.first.label "Tuần Đầu">
+<!ENTITY event.recurrence.monthly.second.label "Tuần Hai">
+<!ENTITY event.recurrence.monthly.third.label "Tuần Ba">
+<!ENTITY event.recurrence.monthly.fourth.label "Tuần Bốn">
+<!ENTITY event.recurrence.monthly.fifth.label "Tuần Năm">
+<!ENTITY event.recurrence.monthly.last.label "Tuần Cuối">
+<!ENTITY event.recurrence.pattern.monthly.week.1.label "Chủ nhật" >
+<!ENTITY event.recurrence.pattern.monthly.week.2.label "Thứ Hai" >
+<!ENTITY event.recurrence.pattern.monthly.week.3.label "Thứ Ba" >
+<!ENTITY event.recurrence.pattern.monthly.week.4.label "Thứ Tư" >
+<!ENTITY event.recurrence.pattern.monthly.week.5.label "Thứ Năm" >
+<!ENTITY event.recurrence.pattern.monthly.week.6.label "Thứ Sáu" >
+<!ENTITY event.recurrence.pattern.monthly.week.7.label "Thứ Bảy" >
+<!ENTITY event.recurrence.repeat.dayofmonth.label "Ngày của tháng">
+<!ENTITY event.recurrence.repeat.recur.label "Tái diễn vào ngày">
+
+<!ENTITY event.recurrence.every.label "Mỗi:" >
+<!ENTITY repeat.units.years.both "Năm" >
+<!ENTITY event.recurrence.pattern.yearly.every.month.label "Mỗi" >
+
+<!-- LOCALIZATON NOTE
+ Some languages use a preposition when describing dates:
+ Portuguese: 6 de Setembro
+ English: 6 [of] September
+ event.recurrence.pattern.yearly.of.label is "of" in
+ Edit recurrence window -> Recurrence pattern -> Repeat yearly
+-->
+<!ENTITY event.recurrence.pattern.yearly.of.label "" >
+
+<!ENTITY event.recurrence.pattern.yearly.month.1.label "Tháng Một" >
+<!ENTITY event.recurrence.pattern.yearly.month.2.label "Tháng Hai" >
+<!ENTITY event.recurrence.pattern.yearly.month.3.label "Tháng Ba" >
+<!ENTITY event.recurrence.pattern.yearly.month.4.label "Tháng Tư" >
+<!ENTITY event.recurrence.pattern.yearly.month.5.label "Tháng Năm" >
+<!ENTITY event.recurrence.pattern.yearly.month.6.label "Tháng Sáu" >
+<!ENTITY event.recurrence.pattern.yearly.month.7.label "Tháng Bảy" >
+<!ENTITY event.recurrence.pattern.yearly.month.8.label "Tháng Tám" >
+<!ENTITY event.recurrence.pattern.yearly.month.9.label "Tháng Chín" >
+<!ENTITY event.recurrence.pattern.yearly.month.10.label "Tháng Mười" >
+<!ENTITY event.recurrence.pattern.yearly.month.11.label "Tháng Mười Một" >
+<!ENTITY event.recurrence.pattern.yearly.month.12.label "Tháng Mười Hai" >
+<!ENTITY event.recurrence.yearly.every.label "Mỗi">
+<!ENTITY event.recurrence.yearly.first.label "Tuần Đầu">
+<!ENTITY event.recurrence.yearly.second.label "Tuần Hai">
+<!ENTITY event.recurrence.yearly.third.label "Tuần Ba">
+<!ENTITY event.recurrence.yearly.fourth.label "Tuần Bốn">
+<!ENTITY event.recurrence.yearly.fifth.label "Tuần Năm">
+<!ENTITY event.recurrence.yearly.last.label "Tuần Cuối">
+<!ENTITY event.recurrence.pattern.yearly.week.1.label "Chủ nhật" >
+<!ENTITY event.recurrence.pattern.yearly.week.2.label "Thứ Hai" >
+<!ENTITY event.recurrence.pattern.yearly.week.3.label "Thứ Ba" >
+<!ENTITY event.recurrence.pattern.yearly.week.4.label "Thứ Tư" >
+<!ENTITY event.recurrence.pattern.yearly.week.5.label "Thứ Năm" >
+<!ENTITY event.recurrence.pattern.yearly.week.6.label "Thứ Sáu" >
+<!ENTITY event.recurrence.pattern.yearly.week.7.label "Thứ Bảy" >
+<!ENTITY event.recurrence.pattern.yearly.day.label "ngày" >
+<!ENTITY event.recurrence.of.label "của" >
+<!ENTITY event.recurrence.pattern.yearly.month2.1.label "Tháng Một" >
+<!ENTITY event.recurrence.pattern.yearly.month2.2.label "Tháng Hai" >
+<!ENTITY event.recurrence.pattern.yearly.month2.3.label "Tháng Ba" >
+<!ENTITY event.recurrence.pattern.yearly.month2.4.label "Tháng Tư" >
+<!ENTITY event.recurrence.pattern.yearly.month2.5.label "Tháng Năm" >
+<!ENTITY event.recurrence.pattern.yearly.month2.6.label "Tháng Sáu" >
+<!ENTITY event.recurrence.pattern.yearly.month2.7.label "Tháng Bảy" >
+<!ENTITY event.recurrence.pattern.yearly.month2.8.label "Tháng Tám" >
+<!ENTITY event.recurrence.pattern.yearly.month2.9.label "Tháng Chín" >
+<!ENTITY event.recurrence.pattern.yearly.month2.10.label "Tháng Mười" >
+<!ENTITY event.recurrence.pattern.yearly.month2.11.label "Tháng Mười Một" >
+<!ENTITY event.recurrence.pattern.yearly.month2.12.label "Tháng Mười Hai" >
+
+<!ENTITY event.recurrence.range.label "Khoảng thời gian tái diễn">
+<!ENTITY event.recurrence.forever.label "Không có ngày kết thúc" >
+<!ENTITY event.recurrence.repeat.for.label "Tạo" >
+<!ENTITY event.recurrence.appointments.label "Cuộc hẹn" >
+<!ENTITY event.repeat.until.label "Lặp lại cho tới khi" >
+<!ENTITY event.recurrence.preview.label "Xem trước">
+
+<!-- Attendees dialog -->
+<!ENTITY invite.title.label "Mời khách Tham dự">
+<!ENTITY event.organizer.label "Người tổ chức">
+<!ENTITY event.freebusy.suggest.slot "Đề xuất khung thời gian:">
+<!ENTITY event.freebusy.button.next.slot "Khe tiếp theo">
+<!ENTITY event.freebusy.button.previous.slot "Khe trước">
+<!ENTITY event.freebusy.zoom "Thu phóng:">
+<!ENTITY event.freebusy.legend.free "Rảnh" >
+<!ENTITY event.freebusy.legend.busy "Bận" >
+<!ENTITY event.freebusy.legend.busy_tentative "Phân vân" >
+<!ENTITY event.freebusy.legend.busy_unavailable "Ra khỏi văn phòng" >
+<!ENTITY event.freebusy.legend.unknown "Không có thông tin" >
+<!ENTITY event.attendee.role.required "Người tham dự Quan trọng">
+<!ENTITY event.attendee.role.optional "Người tham dự Phụ">
+<!ENTITY event.attendee.role.chair "Chủ tọa">
+<!ENTITY event.attendee.role.nonparticipant "Không có Người tham dự">
+<!ENTITY event.attendee.usertype.individual "Cá nhân">
+<!ENTITY event.attendee.usertype.group "Nhóm">
+<!ENTITY event.attendee.usertype.resource "Tài nguyên">
+<!ENTITY event.attendee.usertype.room "Phòng">
+<!ENTITY event.attendee.usertype.unknown "Không rõ">
+
+<!-- Timezone dialog -->
+<!ENTITY timezone.title.label "Vui lòng Xác định Múi giờ">
+<!ENTITY event.timezone.custom.label "Hiện thêm múi giờ…">
+
+<!-- Read-Only dialog -->
+<!ENTITY read.only.general.label "Tổng quát">
+<!ENTITY read.only.title.label "Tiêu đề:">
+<!ENTITY read.only.calendar.label "Lịch:">
+<!ENTITY read.only.event.start.label "Ngày bắt đầu:">
+<!ENTITY read.only.task.start.label "Ngày bắt đầu:">
+<!ENTITY read.only.event.end.label "Ngày kết thúc:">
+<!ENTITY read.only.task.due.label "Ngày đến hạn:">
+<!ENTITY read.only.repeat.label "Lặp lại:">
+<!ENTITY read.only.location.label "Địa chỉ:">
+<!ENTITY read.only.category.label "Phân mục:">
+<!ENTITY read.only.organizer.label "Người tổ chức:">
+<!ENTITY read.only.reminder.label "Nhắc việc:">
+<!ENTITY read.only.attachments.label "Đính kèm:">
+<!ENTITY read.only.attendees.label "Khách tham dự">
+<!ENTITY read.only.description.label "Mô tả">
+<!ENTITY read.only.link.label "Liên kết Liên quan">
+
+<!-- Summary dialog -->
+<!ENTITY summary.dialog.saveclose.label "Lưu và đóng">
+<!ENTITY summary.dialog.saveclose.tooltiptext "Lưu các thay đổi và đóng cửa sổ mà không thay đổi trạng thái tham gia và gửi phản hồi">
+<!ENTITY summary.dialog.accept.label "Chấp nhận">
+<!ENTITY summary.dialog.accept.tooltiptext "Chấp nhận lời mời">
+<!ENTITY summary.dialog.tentative.label "Phân vân">
+<!ENTITY summary.dialog.tentative.tooltiptext "Dự kiến chấp nhận lời mời">
+<!ENTITY summary.dialog.decline.label "Từ chối">
+<!ENTITY summary.dialog.decline.tooltiptext "Từ chối lời mời">
+<!ENTITY summary.dialog.dontsend.label "Không gửi phản hồi">
+<!ENTITY summary.dialog.dontsend.tooltiptext "Thay đổi trạng thái tham gia của bạn mà không gửi trả lời cho người tổ chức và đóng cửa sổ">
+<!ENTITY summary.dialog.send.label "Gửi phản hồi ngay">
+<!ENTITY summary.dialog.send.tooltiptext "Gửi phản hồi cho người tổ chức và đóng cửa sổ">
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 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.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 Invitations Dialog -->
+<!ENTITY calendar.invitations.dialog.invitations.text "Thư mời">
+<!ENTITY calendar.invitations.dialog.statusmessage.updating.text "Cập nhật danh sách thư mời.">
+<!ENTITY calendar.invitations.dialog.statusmessage.noinvitations.text "Không tìm thấy các thư mời chưa có xác nhận.">
+
+<!-- Calendar Invitations List -->
+<!ENTITY calendar.invitations.list.accept.button.label "Chấp nhận">
+<!ENTITY calendar.invitations.list.decline.button.label "Từ chối">
+<!ENTITY calendar.invitations.list.recurrentevent.text "Lặp lại sự kiện">
+<!ENTITY calendar.invitations.list.alldayevent.text "Sự kiện cả ngày">
+<!ENTITY calendar.invitations.list.location.text "Địa chỉ: ">
+<!ENTITY calendar.invitations.list.organizer.text "Người tổ chức: ">
+<!ENTITY calendar.invitations.list.attendee.text "Người tham dự: ">
+<!ENTITY calendar.invitations.list.none.text "Không có">
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 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY buttons.occurrence.accesskey "t">
+<!ENTITY buttons.allfollowing.accesskey "f">
+<!ENTITY buttons.parent.accesskey "a">
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 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.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 Subscriptions Dialog -->
+<!ENTITY calendar.subscriptions.dialog.title "Theo dõi Lịch">
+<!ENTITY calendar.subscriptions.dialog.search.label.value "Hiện các lịch có:">
+<!ENTITY calendar.subscriptions.dialog.search.button.label "Tìm kiếm">
+<!ENTITY calendar.subscriptions.dialog.select.label.value "Chọn các lịch để theo dõi:">
+<!ENTITY calendar.subscriptions.dialog.subscribe.button.label "Theo dõi">
+<!ENTITY calendar.subscriptions.dialog.unsubscribe.button.label "Dừng theo dõi">
+<!ENTITY calendar.subscriptions.dialog.statusmessage.busy.label "Tìm kiếm…">
+<!ENTITY calendar.subscriptions.dialog.statusmessage.nomatches.label "Không có kết quả phù hợp.">
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 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- General -->
+<!ENTITY calendar.calendar.label "Lịch">
+<!ENTITY calendar.calendar.accesskey "C">
+
+<!ENTITY calendar.newevent.button.tooltip "Tạo một sự kiện mới" >
+<!ENTITY calendar.newtask.button.tooltip "Tạo một nhiệm vụ mới" >
+
+<!ENTITY calendar.unifinder.todoitems.label "Nhiệm vụ" >
+
+<!ENTITY calendar.unifinder.showcompletedtodos.label "Hiện các nhiệm vụ đã hoàn tất">
+
+<!ENTITY calendar.today.button.label "Hôm nay">
+<!ENTITY calendar.tomorrow.button.label "Ngày mai">
+<!ENTITY calendar.upcoming.button.label "Sắp tới">
+
+<!ENTITY calendar.events.filter.all.label "Tất cả sự kiện">
+<!ENTITY calendar.events.filter.today.label "Sự kiện hôm nay">
+<!ENTITY calendar.events.filter.future.label "Tất cả các sự kiện trong tương lai">
+<!ENTITY calendar.events.filter.current.label "Ngày được chọn">
+<!ENTITY calendar.events.filter.currentview.label "Sự kiện trong chế độ xem hiện tại">
+<!ENTITY calendar.events.filter.next7Days.label "Sự kiện trong 7 ngày tới">
+<!ENTITY calendar.events.filter.next14Days.label "Sự kiện trong 14 ngày tới">
+<!ENTITY calendar.events.filter.next31Days.label "Sự kiện trong 31 ngày tới">
+<!ENTITY calendar.events.filter.thisCalendarMonth.label "Sự kiện trong tháng này">
+
+<!-- LOCALIZATION NOTE(calendar.unifinder.tree.done.tooltip)
+ - This label and tooltip is used for the column with the checkbox in the
+ - task tree view. -->
+<!ENTITY calendar.unifinder.tree.done.label "Xong">
+<!ENTITY calendar.unifinder.tree.done.tooltip2 "Sắp xếp theo hoàn thành">
+<!ENTITY calendar.unifinder.tree.priority.label "Ưu tiên">
+<!ENTITY calendar.unifinder.tree.priority.tooltip2 "Sắp xếp theo mức độ ưu tiên">
+<!ENTITY calendar.unifinder.tree.title.label "Tiêu đề">
+<!ENTITY calendar.unifinder.tree.title.tooltip2 "Sắp xếp theo tiêu đề">
+<!ENTITY calendar.unifinder.tree.percentcomplete.label "Hoàn tất &#37;">
+<!ENTITY calendar.unifinder.tree.percentcomplete.tooltip2 "Sắp xếp theo hoàn tất &#37;">
+<!ENTITY calendar.unifinder.tree.startdate.label "Bắt đầu">
+<!ENTITY calendar.unifinder.tree.startdate.tooltip2 "Sắp xếp theo ngày bắt đầu">
+<!ENTITY calendar.unifinder.tree.enddate.label "Kết thúc">
+<!ENTITY calendar.unifinder.tree.enddate.tooltip2 "Sắp xếp theo ngày kết thúc">
+<!ENTITY calendar.unifinder.tree.duedate.label "Đến hạn">
+<!ENTITY calendar.unifinder.tree.duedate.tooltip2 "Sắp xếp theo ngày đến hạn">
+<!ENTITY calendar.unifinder.tree.completeddate.label "Hoàn tất">
+<!ENTITY calendar.unifinder.tree.completeddate.tooltip2 "Sắp xếp theo ngày hoàn tất">
+<!ENTITY calendar.unifinder.tree.categories.label "Danh mục">
+<!ENTITY calendar.unifinder.tree.categories.tooltip2 "Sắp xếp theo danh mục">
+<!ENTITY calendar.unifinder.tree.location.label "Địa điểm">
+<!ENTITY calendar.unifinder.tree.location.tooltip2 "Sắp xếp theo địa chỉ">
+<!ENTITY calendar.unifinder.tree.status.label "Trạng thái">
+<!ENTITY calendar.unifinder.tree.status.tooltip2 "Sắp xếp theo trạng thái">
+<!ENTITY calendar.unifinder.tree.calendarname.label "Tên Lịch">
+<!ENTITY calendar.unifinder.tree.calendarname.tooltip2 "Sắp xếp theo tên lịch">
+<!ENTITY calendar.unifinder.tree.duration.label "Đến hạn trong">
+<!ENTITY calendar.unifinder.tree.duration.tooltip2 "Sắp xếp theo thời gian cho đến khi đến hạn">
+<!ENTITY calendar.unifinder.close.tooltip "Đóng tìm kiếm và danh sách sự kiện">
+
+<!ENTITY calendar.today.button.tooltip "Nhảy tới Hôm nay" >
+<!ENTITY calendar.todaypane.button.tooltip "Hiện Bảng Ngày Hôm Nay" >
+
+<!ENTITY calendar.day.button.tooltip "Chuyển sang xem theo ngày" >
+<!ENTITY calendar.week.button.tooltip "Chuyển sang xem theo tuần" >
+<!ENTITY calendar.month.button.tooltip "Chuyển sang xem theo tháng" >
+<!ENTITY calendar.multiweek.button.tooltip "Chuyển sang xem theo nhiều tuần" >
+
+<!ENTITY calendar.nextday.label "Ngày Sau" >
+<!ENTITY calendar.prevday.label "Ngày Trước" >
+<!ENTITY calendar.nextday.accesskey "x" >
+<!ENTITY calendar.prevday.accesskey "s" >
+<!ENTITY calendar.nextweek.label "Tuần Sau" >
+<!ENTITY calendar.prevweek.label "Tuần Trước" >
+<!ENTITY calendar.nextweek.accesskey "x" >
+<!ENTITY calendar.prevweek.accesskey "s" >
+<!ENTITY calendar.nextmonth.label "Tháng Sau" >
+<!ENTITY calendar.prevmonth.label "Tháng Trước" >
+<!ENTITY calendar.nextmonth.accesskey "x" >
+<!ENTITY calendar.prevmonth.accesskey "s" >
+
+<!ENTITY calendar.navigation.nextday.tooltip "Tiến Một Ngày" >
+<!ENTITY calendar.navigation.prevday.tooltip "Lùi một ngày" >
+<!ENTITY calendar.navigation.nextweek.tooltip "Tiến Một Tuần" >
+<!ENTITY calendar.navigation.prevweek.tooltip "Lùi một tuần" >
+<!ENTITY calendar.navigation.nextmonth.tooltip "Tiến Một Tháng" >
+<!ENTITY calendar.navigation.prevmonth.tooltip "Lùi một tháng" >
+
+<!ENTITY calendar.newevent.button.label "Sự kiện Mới" >
+<!ENTITY calendar.newtask.button.label "Tác vụ Mới" >
+<!ENTITY calendar.print.button.label "In" >
+<!ENTITY calendar.print.button.accesskey "P">
+
+<!ENTITY calendar.day.button.label "Ngày" >
+<!ENTITY calendar.week.button.label "Tuần" >
+<!ENTITY calendar.month.button.label "Tháng" >
+<!ENTITY calendar.multiweek.button.label "Nhiều Tuần" >
+<!ENTITY calendar.onlyworkday.checkbox.label "Chỉ hiện các ngày làm việc" >
+<!ENTITY calendar.onlyworkday.checkbox.accesskey "l" >
+<!ENTITY calendar.displaytodos.checkbox.label "Tác vụ trong Trang lịch" >
+<!ENTITY calendar.displaytodos.checkbox.accesskey "v" >
+<!ENTITY calendar.completedtasks.checkbox.label "Hiện các Tác vụ đã hoàn tất" >
+<!ENTITY calendar.completedtasks.checkbox.accesskey "H" >
+
+<!ENTITY calendar.orientation.label "Xoay bố cục Trang lịch" >
+<!ENTITY calendar.orientation.accesskey "X" >
+
+<!ENTITY calendar.search.options.searchfor " chứa">
+
+<!ENTITY calendar.list.header.label "Lịch">
+
+<!ENTITY calendar.task.filter.title.label "Hiện">
+<!ENTITY calendar.task.filter.all.label "Tất cả">
+<!ENTITY calendar.task.filter.all.accesskey "T">
+<!ENTITY calendar.task.filter.today.label "Hôm nay">
+<!ENTITY calendar.task.filter.today.accesskey "H">
+<!ENTITY calendar.task.filter.next7days.label "Bảy Ngày Tới">
+<!ENTITY calendar.task.filter.next7days.accesskey "B">
+<!ENTITY calendar.task.filter.notstarted.label "Tác vụ Chưa bắt đầu">
+<!ENTITY calendar.task.filter.notstarted.accesskey "a">
+<!ENTITY calendar.task.filter.overdue.label "Tác vụ Quá hạn">
+<!ENTITY calendar.task.filter.overdue.accesskey "Q">
+<!ENTITY calendar.task.filter.completed.label "Tác vụ Đã hoàn tất">
+<!ENTITY calendar.task.filter.completed.accesskey "o">
+<!ENTITY calendar.task.filter.open.label "Tác vụ Chưa hoàn tất">
+<!ENTITY calendar.task.filter.open.accesskey "v">
+
+<!-- LOCALIZATION NOTE(calendar.task.filter.current.label)
+ "Current Tasks" will show all tasks, except those with a start date set
+ that is after today and after the selected date. If a task repeats, a
+ separate entry will be shown for each of the occurrences that happen on or
+ before today (or the selected date, whichever is later). -->
+<!ENTITY calendar.task.filter.current.label "Nhiệm vụ hiện tại">
+<!ENTITY calendar.task.filter.current.accesskey "u">
+
+<!ENTITY calendar.task-details.title.label "tiêu đề">
+<!ENTITY calendar.task-details.organizer.label "từ">
+<!ENTITY calendar.task-details.priority.label "ưu tiên">
+<!ENTITY calendar.task-details.priority.low.label "Thấp">
+<!ENTITY calendar.task-details.priority.normal.label "Bình thường">
+<!ENTITY calendar.task-details.priority.high.label "Cao">
+<!ENTITY calendar.task-details.status.label "trạng thái">
+<!ENTITY calendar.task-details.category.label "phân mục">
+<!ENTITY calendar.task-details.repeat.label "lặp lại">
+<!ENTITY calendar.task-details.attachments.label "đính kèm">
+<!ENTITY calendar.task-details.start.label "ngày bắt đầu">
+<!ENTITY calendar.task-details.due.label "ngày đến hạn">
+
+<!ENTITY calendar.task.category.button.tooltip "Phân loại tác vụ">
+<!ENTITY calendar.task.complete.button.tooltip "Đánh dấu các tác vụ đã chọn là hoàn tất">
+<!ENTITY calendar.task.priority.button.tooltip "Thay đổi mức ưu tiên">
+
+<!ENTITY calendar.task.text-filter.textbox.emptytext.base1 "Lọc nhiệm vụ #1">
+<!ENTITY calendar.task.text-filter.textbox.emptytext.keylabel.nonmac "&lt;Ctrl+Shift+K&gt;">
+<!ENTITY calendar.task.text-filter.textbox.emptytext.keylabel.mac "&lt;&#x21E7;&#x2318;K&gt;">
+
+<!-- Context Menu -->
+<!ENTITY calendar.context.modifyorviewitem.label "Mở">
+<!ENTITY calendar.context.modifyorviewitem.accesskey "M">
+<!ENTITY calendar.context.modifyorviewtask.label "Mở Tác Vụ…">
+<!ENTITY calendar.context.modifyorviewtask.accesskey "M">
+<!ENTITY calendar.context.newevent.label "Sự kiện Mới…">
+<!ENTITY calendar.context.newevent.accesskey "S">
+<!ENTITY calendar.context.newtodo.label "Tác vụ Mới…">
+<!ENTITY calendar.context.newtodo.accesskey "v">
+<!ENTITY calendar.context.deletetask.label "Xóa Tác Vụ">
+<!ENTITY calendar.context.deletetask.accesskey "X">
+<!ENTITY calendar.context.deleteevent.label "Xóa Sự Kiện">
+<!ENTITY calendar.context.deleteevent.accesskey "a">
+<!ENTITY calendar.context.cutevent.label "Cắt">
+<!ENTITY calendar.context.cutevent.accesskey "t">
+<!ENTITY calendar.context.copyevent.label "Sao chép">
+<!ENTITY calendar.context.copyevent.accesskey "C">
+<!ENTITY calendar.context.pasteevent.label "Dán">
+<!ENTITY calendar.context.pasteevent.accesskey "D">
+<!ENTITY calendar.context.button.label "Bảng Ngày Hôm Nay">
+<!ENTITY calendar.context.button.accesskey "B">
+
+<!ENTITY calendar.context.attendance.menu.label "Tham dự">
+<!ENTITY calendar.context.attendance.menu.accesskey "d">
+<!ENTITY calendar.context.attendance.occurrence.label "Lần xuất hiện này">
+<!ENTITY calendar.context.attendance.all2.label "Tất cả các chuỗi sự kiện">
+<!ENTITY calendar.context.attendance.send.label "Gửi thông báo ngay bây giờ">
+<!ENTITY calendar.context.attendance.send.accesskey "S">
+<!ENTITY calendar.context.attendance.dontsend.label "Không gửi thông báo">
+<!ENTITY calendar.context.attendance.dontsend.accesskey "D">
+
+<!ENTITY calendar.context.attendance.occ.accepted.accesskey "A">
+<!ENTITY calendar.context.attendance.occ.accepted.label "Đã chấp nhận">
+<!ENTITY calendar.context.attendance.occ.tentative.accesskey "y">
+<!ENTITY calendar.context.attendance.occ.tentative.label "Đã chấp nhận tạm thời">
+<!ENTITY calendar.context.attendance.occ.declined.accesskey "c">
+<!ENTITY calendar.context.attendance.occ.declined.label "Đã từ chối">
+<!ENTITY calendar.context.attendance.occ.delegated.accesskey "g">
+<!ENTITY calendar.context.attendance.occ.delegated.label "Đã ủy quyền">
+<!ENTITY calendar.context.attendance.occ.needsaction.accesskey "S">
+<!ENTITY calendar.context.attendance.occ.needsaction.label "Vẫn cần hành động">
+<!ENTITY calendar.context.attendance.occ.inprogress.accesskey "I">
+<!ENTITY calendar.context.attendance.occ.inprogress.label "Trong tiến trình">
+<!ENTITY calendar.context.attendance.occ.completed.accesskey "C">
+<!ENTITY calendar.context.attendance.occ.completed.label "Đã hoàn tất">
+
+<!ENTITY calendar.context.attendance.all.accepted.accesskey "e">
+<!ENTITY calendar.context.attendance.all.accepted.label "Đã chấp nhận">
+<!ENTITY calendar.context.attendance.all.tentative.accesskey "v">
+<!ENTITY calendar.context.attendance.all.tentative.label "Đã chấp nhận tạm thời">
+<!ENTITY calendar.context.attendance.all.declined.accesskey "d">
+<!ENTITY calendar.context.attendance.all.declined.label "Đã từ chối">
+<!ENTITY calendar.context.attendance.all.delegated.accesskey "l">
+<!ENTITY calendar.context.attendance.all.delegated.label "Đã ủy quyền">
+<!ENTITY calendar.context.attendance.all.needsaction.accesskey "l">
+<!ENTITY calendar.context.attendance.all.needsaction.label "Vẫn cần hành động">
+<!ENTITY calendar.context.attendance.all.inprogress.accesskey "p">
+<!ENTITY calendar.context.attendance.all.inprogress.label "Trong tiến trình">
+<!ENTITY calendar.context.attendance.all.completed.accesskey "m">
+<!ENTITY calendar.context.attendance.all.completed.label "Đã hoàn tất">
+
+<!-- Task Context Menu -->
+<!ENTITY calendar.context.progress.label "Tiến trình">
+<!ENTITY calendar.context.progress.accesskey "i">
+<!ENTITY calendar.context.priority.label "Ưu tiên">
+<!ENTITY calendar.context.priority.accesskey "u">
+<!ENTITY calendar.context.postpone.label "Hoãn nhiệm vụ">
+<!ENTITY calendar.context.postpone.accesskey "s">
+
+<!ENTITY percnt "&#38;#37;" ><!--=percent sign-->
+
+<!ENTITY calendar.context.markcompleted.label "Đánh dấu Đã hoàn tất">
+<!ENTITY calendar.context.markcompleted.accesskey "o">
+
+<!ENTITY progress.level.0 "Xong 0&percnt;">
+<!ENTITY progress.level.0.accesskey "0">
+<!ENTITY progress.level.25 "Xong 25&percnt;">
+<!ENTITY progress.level.25.accesskey "2">
+<!ENTITY progress.level.50 "Xong 50&percnt;">
+<!ENTITY progress.level.50.accesskey "5">
+<!ENTITY progress.level.75 "Xong 75&percnt;">
+<!ENTITY progress.level.75.accesskey "7">
+<!ENTITY progress.level.100 "Xong 100&percnt;">
+<!ENTITY progress.level.100.accesskey "1">
+
+<!ENTITY priority.level.none "Không xác định">
+<!ENTITY priority.level.none.accesskey "K">
+<!ENTITY priority.level.low "Thấp">
+<!ENTITY priority.level.low.accesskey "T">
+<!ENTITY priority.level.normal "Bình thường">
+<!ENTITY priority.level.normal.accesskey "B">
+<!ENTITY priority.level.high "Cao">
+<!ENTITY priority.level.high.accesskey "C">
+
+<!ENTITY calendar.context.postpone.1hour.label "1 giờ">
+<!ENTITY calendar.context.postpone.1hour.accesskey "H">
+<!ENTITY calendar.context.postpone.1day.label "1 ngày">
+<!ENTITY calendar.context.postpone.1day.accesskey "D">
+<!ENTITY calendar.context.postpone.1week.label "1 tuần">
+<!ENTITY calendar.context.postpone.1week.accesskey "W">
+
+<!ENTITY calendar.copylink.label "Sao chép địa chỉ liên kết">
+<!ENTITY calendar.copylink.accesskey "C">
+
+<!-- Task View -->
+<!-- Note that the above *.context.* strings are currently used for the other
+ task action buttons -->
+<!ENTITY calendar.taskview.delete.label "Xóa">
+
+<!-- Server Context Menu -->
+<!ENTITY calendar.context.newserver.label "Lịch Mới…">
+<!ENTITY calendar.context.newserver.accesskey "L">
+<!ENTITY calendar.context.findcalendar.label "Tìm Lịch…" >
+<!ENTITY calendar.context.findcalendar.accesskey "T" >
+<!ENTITY calendar.context.deleteserver2.label "Xóa lịch…">
+<!ENTITY calendar.context.deleteserver2.accesskey "D">
+
+<!-- LOCALIZATION NOTE (calendar.context.removeserver.label): Removing the
+ calendar is the general action of removing it, while deleting means to
+ clear the data and unsubscribing means just taking it out of the calendar
+ list. -->
+<!ENTITY calendar.context.removeserver.label "Xóa lịch…">
+<!ENTITY calendar.context.removeserver.accesskey "R">
+<!ENTITY calendar.context.unsubscribeserver.label "Hủy đăng ký lịch…">
+<!ENTITY calendar.context.unsubscribeserver.accesskey "U">
+<!ENTITY calendar.context.synccalendars.label "Đồng bộ hóa lịch">
+<!ENTITY calendar.context.synccalendars.accesskey "S">
+<!ENTITY calendar.context.publish.label "Xuất bản Lịch…">
+<!ENTITY calendar.context.publish.accesskey "b">
+<!ENTITY calendar.context.export.label "Xuất lịch…">
+<!ENTITY calendar.context.export.accesskey "X">
+<!ENTITY calendar.context.properties.label "Thuộc tính">
+<!ENTITY calendar.context.properties.accesskey "T">
+
+<!-- LOCALIZATION NOTE (calendar.context.showcalendar.accesskey)
+ This is the access key used for the showCalendar string -->
+<!ENTITY calendar.context.showcalendar.accesskey "h">
+
+<!-- LOCALIZATION NOTE (calendar.context.hidecalendar.accesskey)
+ This is the access key used for the hideCalendar string -->
+<!ENTITY calendar.context.hidecalendar.accesskey "H">
+
+<!-- LOCALIZATION NOTE (calendar.context.showonly.accesskey)
+ This is the access key used for the showOnlyCalendar string -->
+<!ENTITY calendar.context.showonly.accesskey "O">
+<!ENTITY calendar.context.showall.label "Hiển thị tất cả các lịch">
+<!ENTITY calendar.context.showall.accesskey "A">
+
+<!ENTITY calendar.context.convertmenu.label "Chuyển đổi Thành">
+<!ENTITY calendar.context.convertmenu.accesskey.mail "n">
+<!ENTITY calendar.context.convertmenu.accesskey.calendar "h">
+<!ENTITY calendar.context.convertmenu.event.label "Sự kiện…">
+<!ENTITY calendar.context.convertmenu.event.accesskey "S">
+<!ENTITY calendar.context.convertmenu.message.label "Thư tin…">
+<!ENTITY calendar.context.convertmenu.message.accesskey "T">
+<!ENTITY calendar.context.convertmenu.task.label "Tác vụ…">
+<!ENTITY calendar.context.convertmenu.task.accesskey "v">
+
+<!ENTITY calendar.tasks.view.minimonth.label "Tháng Mini">
+<!ENTITY calendar.tasks.view.minimonth.accesskey "M">
+
+<!ENTITY calendar.tasks.view.calendarlist.label "Danh sách Lịch">
+<!ENTITY calendar.tasks.view.calendarlist.accesskey "L">
+
+<!ENTITY calendar.tasks.view.filtertasks.label "Lọc các Tác vụ">
+<!ENTITY calendar.tasks.view.filtertasks.accesskey "L">
+
+<!-- Calendar Alarm Dialog -->
+
+<!ENTITY calendar.alarm.location.label "Địa chỉ:" >
+<!ENTITY calendar.alarm.details.label "Chi tiết…" >
+
+<!ENTITY calendar.alarm.snoozefor.label "Tạm im trong" >
+<!ENTITY calendar.alarm.snoozeallfor.label "Tạm im Tất cả trong" >
+<!ENTITY calendar.alarm.title.label "Chuông báo Lịch" >
+<!ENTITY calendar.alarm.dismiss.label "Bỏ qua" >
+<!ENTITY calendar.alarm.dismissall.label "Bỏ qua tất cả" >
+
+<!ENTITY calendar.alarm.snooze.5minutes.label "5 Phút" >
+<!ENTITY calendar.alarm.snooze.10minutes.label "10 Phút" >
+<!ENTITY calendar.alarm.snooze.15minutes.label "15 Phút" >
+<!ENTITY calendar.alarm.snooze.30minutes.label "30 Phút" >
+<!ENTITY calendar.alarm.snooze.45minutes.label "45 Phút" >
+<!ENTITY calendar.alarm.snooze.1hour.label "1 Tiếng" >
+<!ENTITY calendar.alarm.snooze.2hours.label "2 Tiếng" >
+<!ENTITY calendar.alarm.snooze.1day.label "1 Ngày" >
+
+<!-- LOCALIZATION NOTE (calendar.alarm.snooze.cancel)
+ This string is not seen in the UI, it is read by screen readers when the
+ user focuses the "Cancel" button in the "Snooze for..." popup of the alarm
+ dialog. -->
+<!ENTITY calendar.alarm.snooze.cancel "Hủy báo lại">
+
+<!-- Calendar Server Dialog -->
+<!ENTITY calendar.server.dialog.title.edit "Chỉnh sửa Lịch">
+<!ENTITY calendar.server.dialog.name.label "Tên Lịch:">
+
+<!-- Calendar Properties -->
+<!ENTITY calendarproperties.color.label "Màu sắc:">
+<!ENTITY calendarproperties.webdav.label "iCalendar (ICS)">
+<!ENTITY calendarproperties.caldav.label "CalDAV">
+<!ENTITY calendarproperties.wcap.label "Máy chủ Lịch Hệ thống Sun Java (WCAP)">
+<!ENTITY calendarproperties.format.label "Định dạng:">
+<!ENTITY calendarproperties.location.label "Địa chỉ:">
+<!ENTITY calendarproperties.refreshInterval.label "Làm mới lịch:">
+<!ENTITY calendarproperties.refreshInterval.manual.label "Thủ công">
+<!ENTITY calendarproperties.name.label "Tên:">
+<!ENTITY calendarproperties.readonly.label "Chỉ Đọc">
+<!ENTITY calendarproperties.firealarms.label "Hiện các Chuông báo">
+<!ENTITY calendarproperties.cache3.label "Hỗ trợ ngoại tuyến">
+<!ENTITY calendarproperties.enabled.label "Kích hoạt bộ lịch này">
+<!ENTITY calendarproperties.enabled2.label "Kích hoạt lịch này">
+<!ENTITY calendarproperties.forceDisabled.label "Không thể tìm thấy nhà cung cấp bộ lịch này. Điều này thường xảy ra khi bạn vô hiệu hóa hoặc gỡ bỏ tiện ích nào đó.">
+<!ENTITY calendarproperties.unsubscribe.label "Dừng theo dõi">
+<!ENTITY calendarproperties.unsubscribe.accesskey "D">
+
+<!-- Calendar Publish Dialog -->
+<!ENTITY calendar.publish.dialog.title "Xuất bản Lịch">
+<!ENTITY calendar.publish.url.label "Địa chỉ Xuất bản:">
+<!ENTITY calendar.publish.publish.button "Xuất bản">
+<!ENTITY calendar.publish.close.button "Đóng">
+
+<!ENTITY calendar.publish.example.url.description "Ví dụ như http://www.tênmáychủ.com/webdav/test.ics">
+
+<!-- Select Calendar Dialog -->
+<!ENTITY calendar.select.dialog.title "Chọn Lịch">
+
+<!-- Calendar Printing -->
+<!ENTITY calendar.print.window.title "In Lịch">
+<!ENTITY calendar.print.title.label "Tiêu đề:">
+<!ENTITY calendar.print.layout.label "Bố cục:">
+<!ENTITY calendar.print.range.label "Thông tin để In ra">
+<!ENTITY calendar.print.currentView2.label "Phần đang hiển thị">
+<!ENTITY calendar.print.selectedEventsAndTasks.label "Tác vụ/sự kiện đã chọn">
+<!ENTITY calendar.print.tasks.label "Tác vụ">
+<!ENTITY calendar.print.events.label "Sự kiện">
+<!ENTITY calendar.print.custom.label "Khoảng ngày tùy biến:">
+<!ENTITY calendar.print.from.label "Từ:">
+<!ENTITY calendar.print.to.label "Tới:">
+<!ENTITY calendar.print.settingsGroup.label "Thiết lập In">
+<!ENTITY calendar.print.optionsGroup.label "Tùy chọn">
+<!ENTITY calendar.print.taskswithnoduedate.label "Tác vụ không có ngày đến hạn">
+<!ENTITY calendar.print.completedtasks.label "Tác vụ đã hoàn tất">
+
+<!-- Error reporting -->
+<!ENTITY calendar.error.detail "Chi tiết…">
+<!ENTITY calendar.error.code "Mã lỗi:">
+<!ENTITY calendar.error.description "Mô tả:">
+<!ENTITY calendar.error.title "Một lỗi đã xảy ra">
+
+<!-- Extract buttons in message header -->
+<!ENTITY calendar.extract.event.button "Thêm dưới dạng sự kiện">
+<!ENTITY calendar.extract.task.button "Thêm dưới dạng nhiệm vụ">
+<!ENTITY calendar.extract.event.button.tooltip "Trích xuất thông tin lịch từ tin nhắn và thêm nó vào lịch của bạn như một sự kiện">
+<!ENTITY calendar.extract.task.button.tooltip "Trích xuất thông tin lịch từ tin nhắn và thêm nó vào lịch của bạn như là một nhiệm vụ">
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 <email address> 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 <email address> 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 <email address> 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 <email address> 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 <email address> 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 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY wizard.title "Tạo lịch mới" >
+<!ENTITY wizard.label "Tạo một bộ lịch mới" >
+<!ENTITY wizard.description "Khởi tạo bộ lịch của bạn" >
+
+<!ENTITY initialpage.description "Bộ lịch của bạn có thể được lưu trữ trên máy tính hoặc trên một máy chủ để có thể truy cập nó từ xa hoặc chia sẻ nó với bạn bè hoặc đồng nghiệp." >
+<!ENTITY initialpage.computer.label "Trên máy tính của tôi">
+<!ENTITY initialpage.network.label "Trên mạng">
+
+<!ENTITY locationpage.description "Cung cấp thông tin về những thứ cần thiết để truy cập bộ lịch từ xa của bạn" >
+<!ENTITY locationpage.login.description "Tùy chọn: nhập tên đăng nhập và mật khẩu" >
+<!ENTITY locationpage.username.label "Tên đăng nhập:" >
+<!ENTITY locationpage.password.label "Mật khẩu:" >
+
+<!ENTITY custompage.shortdescription "Tùy biến lịch của bạn" >
+<!ENTITY custompage.longdescription "Bạn có thể đặt biệt danh cho bộ lịch của bạn và tô màu các sự kiện của bộ lịch này." >
+
+<!ENTITY finishpage.shortdescription "Đã tạo lịch" >
+<!ENTITY finishpage.longdescription "Bộ lịch của bạn đã được tạo." >
+
+<!-- Below are new strings for the revised new calendar dialog. The above strings should be
+ removed/renamed later on -->
+
+<!ENTITY sourcetabs.other.label "Khác">
+
+<!ENTITY buttons.create.label "Tạo lịch">
+<!ENTITY buttons.create.accesskey "r">
+
+<!ENTITY buttons.find.label "Tìm lịch">
+<!ENTITY buttons.find.accesskey "F">
+
+<!ENTITY buttons.back.label "Quay lại">
+<!ENTITY buttons.back.accesskey "B">
+
+<!ENTITY buttons.subscribe.label "Đăng kí">
+<!ENTITY buttons.subscribe.accesskey "S">
+
+<!ENTITY calendartype.label "Kiểu lịch:">
+<!ENTITY location.label "Địa chỉ:">
+<!ENTITY location.placeholder "URL hoặc tên máy chủ của máy chủ lịch">
+
+<!ENTITY network.nocredentials.label "Vị trí này không yêu cầu thông tin đăng nhập">
+<!ENTITY network.loading.description "Xin vui lòng chờ trong khi lịch của bạn đang được phát hiện.">
+<!ENTITY network.notfound.description "Không thể tìm thấy lịch tại địa chỉ này. Vui lòng kiểm tra cài đặt của bạn.">
+<!ENTITY network.authfail.description "Thông tin đăng nhập bạn đã nhập không được chấp nhận. Vui lòng kiểm tra cài đặt của bạn.">
+
+<!ENTITY network.subscribe.single.description "Vui lòng chọn lịch bạn muốn đăng ký.">
+<!ENTITY network.subscribe.multiple.description "Nhiều loại lịch có sẵn cho địa chỉ này. Vui lòng chọn kiểu lịch, sau đó đánh dấu các lịch bạn muốn đăng ký.">
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 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY reminderdialog.title "Thiết lập Nhắc việc">
+<!ENTITY reminder.add.label "Thêm">
+<!ENTITY reminder.add.accesskey "T">
+<!ENTITY reminder.remove.label "Xóa">
+<!ENTITY reminder.remove.accesskey "X">
+
+<!ENTITY reminder.reminderDetails.label "Chi tiết Nhắc việc">
+<!ENTITY reminder.action.label "Chọn một Thao tác Nhắc việc">
+
+<!ENTITY reminder.relation.before.label "trước" >
+<!ENTITY reminder.relation.after.label "sau" >
+
+<!ENTITY reminder.action.alert.label "Hiện một Cảnh báo">
+<!ENTITY reminder.action.email.label "Gửi một Email">
+
+<!ENTITY alarm.units.minutes "phút" >
+<!ENTITY alarm.units.hours "giờ" >
+<!ENTITY alarm.units.days "ngày" >
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 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY time.midnight "Nửa đêm" >
+<!ENTITY time.noon "Trưa" >
+
+<!-- Day Names -->
+<!-- LOCALIZATION NOTE : Accesskeys for day.1.Ddd to day.7.Ddd are currently
+ only used in Preferences > Views > Workweek groupbox -->
+<!ENTITY day.1.Ddd "ChN" >
+<!ENTITY day.1.Ddd.accesskey "C">
+<!ENTITY day.2.Ddd "Th2" >
+<!ENTITY day.2.Ddd.accesskey "2">
+<!ENTITY day.3.Ddd "Th3" >
+<!ENTITY day.3.Ddd.accesskey "3">
+<!ENTITY day.4.Ddd "Th4" >
+<!ENTITY day.4.Ddd.accesskey "4">
+<!ENTITY day.5.Ddd "Th5" >
+<!ENTITY day.5.Ddd.accesskey "5">
+<!ENTITY day.6.Ddd "Th6" >
+<!ENTITY day.6.Ddd.accesskey "6">
+<!ENTITY day.7.Ddd "Th7" >
+<!ENTITY day.7.Ddd.accesskey "7">
+
+<!ENTITY day.1.name "Chủ nhật" >
+<!ENTITY day.2.name "Thứ Hai" >
+<!ENTITY day.3.name "Thứ Ba" >
+<!ENTITY day.4.name "Thứ Tư" >
+<!ENTITY day.5.name "Thứ Năm" >
+<!ENTITY day.6.name "Thứ Sáu" >
+<!ENTITY day.7.name "Thứ Bảy" >
+
+<!ENTITY month.1.name "Tháng Một" >
+<!ENTITY month.2.name "Tháng Hai" >
+<!ENTITY month.3.name "Tháng Ba" >
+<!ENTITY month.4.name "Tháng Tư" >
+<!ENTITY month.5.name "Tháng Năm" >
+<!ENTITY month.6.name "Tháng Sáu" >
+<!ENTITY month.7.name "Tháng Bảy" >
+<!ENTITY month.8.name "Tháng Tám" >
+<!ENTITY month.9.name "Tháng Chín" >
+<!ENTITY month.10.name "Tháng Mười" >
+<!ENTITY month.11.name "Tháng Mười Một" >
+<!ENTITY month.12.name "Tháng Mười Hai" >
+
+<!ENTITY onemonthbackward.tooltip "Lùi một tháng" >
+<!ENTITY onemonthforward.tooltip "Tiến Một Tháng" >
+<!ENTITY oneyearbackward.tooltip "Một năm trước" >
+<!ENTITY oneyearforward.tooltip "Một năm tiếp" >
+<!ENTITY showToday.tooltip "Nhảy tới Hôm nay">
+<!ENTITY onedayforward.tooltip "Tiến Một Ngày">
+<!ENTITY onedaybackward.tooltip "Lùi một ngày">
+<!ENTITY showselectedday.tooltip "Hiện các sự kiện của ngày đã chọn">
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 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.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 Menu -->
+<!ENTITY event.new.event "Sự kiện Mới…">
+<!ENTITY event.new.event.accesskey "S">
+
+<!ENTITY event.new.task "Nhiệm vụ mới…">
+<!ENTITY event.new.task.accesskey "k">
+
+<!ENTITY calendar.import.label "Nhập…">
+<!ENTITY calendar.import.accesskey "N">
+
+<!ENTITY calendar.export.label "Xuất…">
+<!ENTITY calendar.export.accesskey "X">
+
+<!ENTITY calendar.publish.label "Xuất bản…">
+<!ENTITY calendar.publish.accesskey "b">
+
+<!ENTITY calendar.deletecalendar.label "Xóa Lịch Đã Chọn…">
+<!ENTITY calendar.deletecalendar.accesskey "X">
+<!ENTITY calendar.unsubscribecalendar.label "Hủy đăng ký lịch đã chọn…">
+<!ENTITY calendar.unsubscribecalendar.accesskey "U">
+
+<!-- LOCALIZATION NOTE (calendar.removecalendar.label): Removing the calendar
+ is the general action of removing it, while deleting means to clear the
+ data and unsubscribing means just taking it out of the calendar list. -->
+<!ENTITY calendar.removecalendar.label "Xóa lịch đã chọn…">
+<!ENTITY calendar.removecalendar.accesskey "R">
+
+
+<!ENTITY calendar.menu.customize.label "Tùy biến…">
+<!ENTITY calendar.menu.customize.accesskey "T">
+
+<!ENTITY showUnifinderCmd.label "Tìm Sự Kiện">
+<!ENTITY showUnifinderCmd.accesskey "m">
+<!ENTITY showUnifinderCmd.tooltip "Chuyển đến khung tìm sự kiện">
+
+<!ENTITY calendar.displaytodos.checkbox.label "Hiện các Tác vụ trong Lịch">
+<!ENTITY calendar.displaytodos.checkbox.accesskey "v">
+
+<!ENTITY goTodayCmd.label "Hôm nay">
+<!ENTITY goTodayCmd.accesskey "H">
+
+<!ENTITY showCurrentView.label "Hiển thị Hiện tại">
+<!ENTITY showCurrentView.accesskey "H">
+
+<!ENTITY calendar.properties.label "Thuộc tính Lịch…">
+<!ENTITY calendar.properties.accesskey "c">
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 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY migration.title "&brandFullName;: Nhập Dữ Liệu">
+<!ENTITY migration.welcome "Chào mừng">
+<!ENTITY migration.importing "Nhập">
+<!ENTITY migration.list.description "&brandShortName; 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.">
+<!ENTITY migration.progress.description "Nhập dữ liệu đã chọn">
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 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY providerUninstall.title "Gỡ bỏ Nhà cung cấp">
+<!ENTITY providerUninstall.accept.label "Dừng theo dõi Phần đã chọn">
+<!ENTITY providerUninstall.accept.accesskey "D">
+<!ENTITY providerUninstall.cancel.label "Giữ tiện ích">
+<!ENTITY providerUninstall.cancel.accesskey "K">
+<!ENTITY providerUninstall.preName.label "Bạn đã yêu cầu gỡ bỏ hoặc vô hiệu hóa:">
+<!ENTITY providerUninstall.postName.label "Việc này sẽ làm vô hiệu hóa các bộ lịch bên dưới.">
+<!ENTITY providerUninstall.reinstallNote.label "Trừ khi bạn đang định cài lại nhà cung cấp này, bạn có thể chọn dừng theo dõi các bộ lịch từ họ.">
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 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY lightning.toolbar.calendar.name "Thanh công cụ lịch">
+<!ENTITY lightning.toolbar.calendar.name.accesskey "C">
+<!ENTITY lightning.toolbar.task.name "Thanh công cụ nhiệm vụ">
+<!ENTITY lightning.toolbar.task.name.accesskey "T">
+
+<!ENTITY lightning.toolbar.sync.label "Đồng bộ hoá">
+<!ENTITY lightning.toolbar.sync.tooltip "Tải lại lịch và đồng bộ hóa các thay đổi">
+<!ENTITY lightning.toolbar.delete.label "Xóa">
+<!ENTITY lightning.toolbar.delete.tooltip "Xóa các sự kiện hoặc nhiệm vụ được chọn">
+<!ENTITY lightning.toolbar.edit.label "Chỉnh sửa">
+<!ENTITY lightning.toolbar.edit.tooltip "Chỉnh sửa sự kiện hoặc nhiệm vụ được chọn">
+<!ENTITY lightning.toolbar.gototoday.label "Đi đến hôm nay">
+<!ENTITY lightning.toolbar.gototoday.tooltip "Đi đến hôm nay">
+<!ENTITY lightning.toolbar.print.label "In">
+<!ENTITY lightning.toolbar.print.tooltip "In sự kiện hoặc nhiệm vụ">
+
+<!-- Mode Toolbar -->
+<!ENTITY lightning.toolbar.calendar.label "Lịch">
+<!ENTITY lightning.toolbar.calendar.tooltip "Chuyển sang thẻ lịch">
+<!ENTITY lightning.toolbar.calendar.accesskey "C">
+<!ENTITY lightning.toolbar.task.label "Nhiệm vụ">
+<!ENTITY lightning.toolbar.task.tooltip "Chuyển sang thẻ nhiệm vụ">
+<!ENTITY lightning.toolbar.task.accesskey "T">
+
+<!-- Toolbar write button -->
+<!ENTITY lightning.toolbar.newevent.label "Sự kiện">
+<!ENTITY lightning.toolbar.newevent.tooltip "Tạo một sự kiện mới">
+<!ENTITY lightning.toolbar.newtask.label "Nhiệm vụ">
+<!ENTITY lightning.toolbar.newtask.tooltip "Tạo một nhiệm vụ mới">
+
+<!-- Calendar and Task Mode Toolbar -->
+<!ENTITY lightning.toolbar.day.label "Ngày">
+<!ENTITY lightning.toolbar.day.accesskey "D">
+<!ENTITY lightning.toolbar.week.label "Tuần">
+<!ENTITY lightning.toolbar.week.accesskey "W">
+<!ENTITY lightning.toolbar.multiweek.label "Nhiều tuần">
+<!ENTITY lightning.toolbar.multiweek.accesskey "u">
+<!ENTITY lightning.toolbar.month.label "Tháng">
+<!ENTITY lightning.toolbar.month.accesskey "M">
+<!-- LOCALIZATION NOTE: the same as appmenuButton.label and appmenuButton1.tooltip
+ from messenger.dtd -->
+<!ENTITY lightning.toolbar.appmenuButton.label "Trình đơn ứng dụng">
+<!ENTITY lightning.toolbar.appmenuButton1.tooltip "Hiển thị menu &brandShortName;">
+<!ENTITY lightning.toolbar.calendarmenu.label "Ngăn lịch">
+<!ENTITY lightning.toolbar.calendarmenu.accesskey "P">
+<!ENTITY lightning.toolbar.calendarpane.label "Hiển thị ngăn lịch">
+<!ENTITY lightning.toolbar.calendarpane.accesskey "P">
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 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- WARNING! This file contains UTF-8 encoded characters!
+ - If this ==> … <== doesn't look like an ellipsis (three dots in a row),
+ - your editor isn't using UTF-8 encoding and may munge up the document!
+ -->
+
+<!-- Tools menu -->
+<!ENTITY lightning.preferencesLabel "Lịch">
+
+<!-- New menu popup in File menu -->
+<!ENTITY lightning.menupopup.new.event.label "Sự kiện…">
+<!ENTITY lightning.menupopup.new.event.accesskey "E">
+<!ENTITY lightning.menupopup.new.task.label "Nhiệm vụ…">
+<!ENTITY lightning.menupopup.new.task.accesskey "T">
+<!ENTITY lightning.menupopup.new.calendar.label "Lịch…">
+<!ENTITY lightning.menupopup.new.calendar.accesskey "n">
+
+<!-- Open menu popup in File menu -->
+<!ENTITY lightning.menupopup.open.label "Mở">
+<!ENTITY lightning.menupopup.open.accesskey "O">
+<!ENTITY lightning.menupopup.open.message.label "Thư đã lưu…">
+<!ENTITY lightning.menupopup.open.message.accesskey "M">
+
+<!-- Open menu popup in File menu -->
+<!ENTITY lightning.menupopup.open.calendar.label "Tập tin lịch…">
+<!ENTITY lightning.menupopup.open.calendar.accesskey "C">
+
+<!-- View Menu -->
+<!ENTITY lightning.menu.view.calendar.label "Lịch">
+<!ENTITY lightning.menu.view.calendar.accesskey "n">
+<!ENTITY lightning.menu.view.tasks.label "Nhiệm vụ">
+<!ENTITY lightning.menu.view.tasks.accesskey "k">
+
+<!-- Events and Tasks menu -->
+<!ENTITY lightning.menu.eventtask.label "Sự kiện và nhiệm vụ">
+<!ENTITY lightning.menu.eventtask.accesskey "n">
+
+<!-- properties dialog, calendar creation wizard -->
+<!-- LOCALIZATON NOTE(lightning.calendarproperties.email.label,
+ lightning.calendarproperties.forceEmailScheduling.label)
+ These strings are used in the calendar wizard and the calendar properties dialog, but are only
+ displayed when setting/using a caldav calendar -->
+<!ENTITY lightning.calendarproperties.email.label "Email:">
+<!ENTITY lightning.calendarproperties.forceEmailScheduling.label "Ưu tiên lập lịch email phía khách hàng">
+<!-- LOCALIZATON NOTE(lightning.calendarproperties.forceEmailScheduling.tooltiptext1,
+ lightning.calendarproperties.forceEmailScheduling.tooltiptext2)
+ - tooltiptext1 is used in the calendar wizard when setting a new caldav calendar
+ - tooltiptext2 is used in the calendar properties dialog for caldav calendars -->
+<!ENTITY lightning.calendarproperties.forceEmailScheduling.tooltiptext1 "Hiện tại, bạn chỉ có thể kích hoạt tính năng này sau khi thiết lập lịch này trong hộp thoại thuộc tính của nó nếu máy chủ lịch đảm nhiệm việc lên lịch.">
+<!ENTITY lightning.calendarproperties.forceEmailScheduling.tooltiptext2 "Tùy chọn này chỉ khả dụng nếu máy chủ lịch xử lý lập lịch. Kích hoạt sẽ cho phép quay trở lại lịch trình dựa trên email tiêu chuẩn thay vì để nó đến máy chủ.">
+
+<!-- iMIP Bar (meeting support) -->
+<!ENTITY lightning.imipbar.btnAccept.label "Chấp nhận">
+<!ENTITY lightning.imipbar.btnAccept2.tooltiptext "Chấp nhận lời mời sự kiện">
+<!ENTITY lightning.imipbar.btnAcceptRecurrences.label "Chấp nhận tất cả">
+<!ENTITY lightning.imipbar.btnAcceptRecurrences2.tooltiptext "Chấp nhận lời mời sự kiện cho tất cả các lần xuất hiện của sự kiện">
+<!ENTITY lightning.imipbar.btnAdd.label "Thêm">
+<!ENTITY lightning.imipbar.btnAdd.tooltiptext "Thêm sự kiện vào lịch">
+<!ENTITY lightning.imipbar.btnDecline.label "Từ chối">
+<!ENTITY lightning.imipbar.btnDecline2.tooltiptext "Từ chối lời mời sự kiện">
+<!ENTITY lightning.imipbar.btnDeclineRecurrences.label "Từ chối tất cả">
+<!ENTITY lightning.imipbar.btnDeclineRecurrences2.tooltiptext "Từ chối lời mời sự kiện cho tất cả các lần xuất hiện của sự kiện">
+<!ENTITY lightning.imipbar.btnDeclineCounter.label "Từ chối">
+<!ENTITY lightning.imipbar.btnDeclineCounter.tooltiptext "Từ chối đề xuất phản biện">
+<!ENTITY lightning.imipbar.btnDelete.label "Xóa">
+<!ENTITY lightning.imipbar.btnDelete.tooltiptext "Xóa khỏi lịch">
+<!ENTITY lightning.imipbar.btnDetails.label "Chi tiết…">
+<!ENTITY lightning.imipbar.btnDetails.tooltiptext "Hiển thị chi tiết sự kiện">
+<!ENTITY lightning.imipbar.btnDoNotShowImipBar.label "Đừng hỏi lại tôi những thông báo này">
+<!ENTITY lightning.imipbar.btnGoToCalendar.label "Lịch">
+<!ENTITY lightning.imipbar.btnGoToCalendar.tooltiptext "Chuyển đến thẻ lịch">
+<!ENTITY lightning.imipbar.btnMore.label "Thêm">
+<!ENTITY lightning.imipbar.btnMore.tooltiptext "Nhấn vào đây để hiển thị nhiều tùy chọn hơn">
+<!ENTITY lightning.imipbar.btnReconfirm2.label "Xác nhận lại">
+<!ENTITY lightning.imipbar.btnReconfirm.tooltiptext "Gửi xác nhận lại cho người tổ chức">
+<!ENTITY lightning.imipbar.btnReschedule.label "Sắp xếp lại">
+<!ENTITY lightning.imipbar.btnReschedule.tooltiptext "Sắp xếp lại sự kiện">
+<!ENTITY lightning.imipbar.btnSaveCopy.label "Lưu bản sao">
+<!ENTITY lightning.imipbar.btnSaveCopy.tooltiptext "Lưu một bản sao của sự kiện vào lịch độc lập với việc trả lời cho người tổ chức. Danh sách những người tham dự sẽ bị xóa.">
+<!ENTITY lightning.imipbar.btnTentative.label "Dự kiến">
+<!ENTITY lightning.imipbar.btnTentative2.tooltiptext "Dự kiến chấp nhận lời mời sự kiện">
+<!ENTITY lightning.imipbar.btnTentativeRecurrences.label "Dự kiến tất cả">
+<!ENTITY lightning.imipbar.btnTentativeRecurrences2.tooltiptext "Dự kiến chấp nhận lời mời sự kiện cho tất cả các lần xuất hiện của sự kiện">
+<!ENTITY lightning.imipbar.btnUpdate.label "Cập nhật">
+<!ENTITY lightning.imipbar.btnUpdate.tooltiptext "Cập nhật sự kiện trong lịch">
+<!ENTITY lightning.imipbar.description "Thư này chứa lời mời tham dự một sự kiện.">
+
+<!ENTITY lightning.imipbar.btnSend.label "Gửi phản hồi ngay">
+<!ENTITY lightning.imipbar.btnSend.tooltiptext "Gửi phản hồi cho người tổ chức">
+<!ENTITY lightning.imipbar.btnSendSeries.tooltiptext "Gửi phản hồi cho toàn bộ chuỗi sự kiện đến nhà tổ chức">
+<!ENTITY lightning.imipbar.btnDontSend.label "Không gửi phản hồi">
+<!ENTITY lightning.imipbar.btnDontSend.tooltiptext "Thay đổi trạng thái tham gia của bạn mà không gửi phản hồi cho người tổ chức">
+<!ENTITY lightning.imipbar.btnDontSendSeries.tooltiptext "Thay đổi trạng thái tham gia của bạn cho chuỗi mà không gửi phản hồi cho người tổ chức">
+
+<!-- Lightning specific keybindings -->
+<!ENTITY lightning.keys.event.showCalendar.key "C">
+<!ENTITY lightning.keys.event.showTasks.key "D">
+<!ENTITY lightning.keys.event.new "I">
+<!ENTITY lightning.keys.todo.new "D">
+
+<!-- Account Central page -->
+<!ENTITY lightning.acctCentral.newCalendar.label "Tạo một lịch mới">
+
+<!-- today-pane-specific -->
+<!ENTITY todaypane.showMinimonth.label "Hiển thị tháng nhỏ">
+<!ENTITY todaypane.showMinimonth.accesskey "M">
+<!ENTITY todaypane.showMiniday.label "Hiển thị ngày nhỏ">
+<!ENTITY todaypane.showMiniday.accesskey "d">
+<!ENTITY todaypane.showNone.label "Không hiển thị">
+<!ENTITY todaypane.showNone.accesskey "N">
+<!ENTITY todaypane.showTodayPane.label "Hiển thị hôm nay">
+<!ENTITY todaypane.showTodayPane.accesskey "o">
+<!ENTITY todaypane.statusButton.label "Ngày hôm nay">
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 <email address> 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 <email address> 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 <email address> 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 <email address> 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 <email address> 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 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- Account manager window for Instantbird -->
+<!ENTITY accounts.title "Tài khoản – &brandShortName;">
+<!ENTITY accountManager.width "450">
+<!-- Instant messaging account status window for Thunderbird -->
+<!ENTITY accountsWindow.title "Trạng thái nhắn tin tức thời">
+<!ENTITY accountsWindow2.style "width: 41em; height: 27em;">
+
+<!ENTITY accountManager.newAccount.label "Tài khoản mới">
+<!ENTITY accountManager.newAccount.accesskey "N">
+<!ENTITY accountManager.close.label "Đóng">
+<!ENTITY accountManager.close.accesskey "l">
+<!-- This should match account.commandkey in instantbird.dtd -->
+<!ENTITY accountManager.close.commandkey "a">
+<!-- This title must be short, displayed with a big font size -->
+<!ENTITY accountManager.noAccount.title "Chưa có cấu hình tài khoản nào">
+<!ENTITY accountManager.noAccount.description "Nhấp vào nút &accountManager.newAccount.label; để &brandShortName; hướng dẫn bạn qua quá trình cấu hình một.">
+<!ENTITY account.autoSignOn.label "Đăng nhập khi khởi động">
+<!ENTITY account.autoSignOn.accesskey "S">
+<!ENTITY account.connect.label "Kết nối">
+<!ENTITY account.connect.accesskey "o">
+<!ENTITY account.disconnect.label "Ngắt kết nối">
+<!ENTITY account.disconnect.accesskey "i">
+<!ENTITY account.delete.label "Xóa">
+<!ENTITY account.delete.accesskey "D">
+<!ENTITY account.edit.label "Thuộc tính">
+<!ENTITY account.edit.accesskey "P">
+<!ENTITY account.moveup.label "Di chuyển lên">
+<!ENTITY account.movedown.label "Di chuyển xuống">
+<!ENTITY account.cancelReconnection.label "Hủy kết nối lại">
+<!ENTITY account.cancelReconnection.accesskey "A">
+<!ENTITY account.copyDebugLog.label "Sao chép nhật ký gỡ lỗi">
+<!ENTITY account.copyDebugLog.accesskey "C">
+<!ENTITY account.showDebugLog.label "Xem nhật ký gỡ lỗi">
+<!ENTITY account.showDebugLog.accesskey "H">
+<!ENTITY account.connecting "Đang kết nối…">
+<!ENTITY account.disconnecting "Đang ngắt kết nối…">
+<!ENTITY account.disconnected "Chưa được kết nối">
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 &lt;lệnh&gt; /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 &lt;message&gt;: gửi tin nhắn mà không xử lý lệnh.
+rawHelpString=raw &lt;nội dung tin nhắn&gt;: gửi một tin nhắn mà không escape các thẻ HTML.
+helpHelpString=help &lt;tên lệnh&gt;: hiển thị trợ giúp với lệnh &lt;tên lệnh&gt;, 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 &lt;thông báo trạng thái&gt;: đặ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 &lt;hành động thực hiện&gt;: Thực hiện một hành động.
+command.ban=%S &lt;nick!user@host&gt;: Cấm người dùng khớp với mẫu đã cho.
+command.ctcp=%S &lt;nick&gt; &lt;msg&gt;: Gửi một tin nhắn CTCP tới nickname.
+command.chanserv=%S &lt;câu lệnh&gt;: Gửi một câu lệnh tới ChanServ.
+command.deop=%S &lt;nick1&gt;[,&lt;nick2&gt;]*: 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 &lt;nick1&gt;[,&lt;nick2&gt;]*: 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 &lt;nick&gt;[ &lt;nick&gt;]* [&lt;kênh&gt;]: 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 &lt;room1&gt;[ &lt;key1&gt;][,&lt;room2&gt;[ key2&gt;]]*: 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 &lt;nick&gt; [&lt;tin nhắn&gt;]: 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 &lt;câu lệnh&gt;: Gửi một câu lệnh tới MemoServ.
+command.modeUser2=%S &lt;nick&gt; [(+|-)&lt;chế độ&gt;]: Lấy, đặt hoặc hủy đặt một chế độ của người dùng.
+command.modeChannel2=%S [&lt;kênh&gt;] [(+|-)&lt;chế độ mới&gt; [&lt;tham số&gt;][,tham số&gt;]*]: Lấy, đặt, hoặc hủy đặt một chế độ kênh.
+command.msg=%S &lt;nick&gt; &lt;tin nhắn&gt;: 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 &lt;nickname mới&gt;: Thay đổi nickname của bạn.
+command.nickserv=%S &lt;câu lệnh&gt;: Gửi một câu lệnh tới NickServ.
+command.notice=%S &lt;đối tượng&gt; &lt;tin nhắn&gt;: Gửi một thông báo đến một người dùng hoặc kênh.
+command.op=%S &lt;nick1&gt;[,&lt;nick2&gt;]*: 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 &lt;câu lệnh&gt;: 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 [&lt;nick&gt;]: 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 &lt;tin nhắn&gt;: 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 &lt;câu lệnh&gt;: 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 [&lt;chủ đề mới&gt;]: Đặt chủ đề cho kênh này.
+command.umode=%S (+|-)&lt;chế độ mới&gt;: Đặt hoặc hủy một chế độ người dùng.
+command.version=%S &lt;nick&gt;: Truy vấn phiên bản ứng dụng máy khách của người dùng.
+command.voice=%S &lt;nick1&gt;[,&lt;nick2&gt;]*: 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 [&lt;nick&gt;]: 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
+# @<username>.
+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 &lt;username&gt;[ &lt;username&gt;]*: Bắt đầu theo dõi người dùng.
+command.unfollow=%S &lt;username&gt;[ &lt;username&gt;]*: 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 [&lt;message&gt;]: 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 <a>{ about-debugging-this-firefox-runtime-name }</a> để 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? <a>Khắc phục sự cố</a>
+
+# 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? <a>Khắc phục sự</a>
+
+# 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. <a>Tìm hiểu thêm</a>
+
+# 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. <a>Khắc phục sự cố</a>
+
+# 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. <a>Chi tiết khác</a>
+
+# 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. <a>Khắc phục sự cố</a>
+
+# 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. <a>Tìm hiểu thêm</a>
+
+# 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 <code>alt</code> để gắn nhãn các phần tử <div>area</div> có thuộc tính <span>href</span>. <a>Tìm hiểu thêm</a>
+accessibility-text-label-issue-dialog = Hộp thoại phải được dán nhãn. <a>Tìm hiểu thêm</a>
+accessibility-text-label-issue-document-title = Tài liệu phải có <code>title</code>. <a>Tìm hiểu thêm</a>
+accessibility-text-label-issue-embed = Nội dung nhúng phải được dán nhãn. <a>Tìm hiểu thêm</a>
+accessibility-text-label-issue-figure = Số liệu với chú thích tùy chọn nên được dán nhãn. <a>Tìm hiểu thêm</a>
+accessibility-text-label-issue-fieldset = Các phần tử </code>fieldset</code> phải được dán nhãn. <a>Tìm hiểu thêm</a>
+accessibility-text-label-issue-fieldset-legend2 = Sử dụng một phần tử <code>legend</code> để gắn nhãn <span>fieldset</span>. <a>Tìm hiểu thêm</a>
+accessibility-text-label-issue-form = Các yếu tố hình thức phải được dán nhãn. <a>Tìm hiểu thêm</a>
+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. <a>Tìm hiểu thêm</a>
+accessibility-text-label-issue-frame = Các phần tử <code>frame</code> phải được dán nhãn. <a>Tìm hiểu thêm</a>
+accessibility-text-label-issue-glyph = Sử dụng thuộc tính <code>alt</code> để gắn nhãn các phần tử <span>mglyph</span>. <a>Tìm hiểu thêm</a>
+accessibility-text-label-issue-heading = Headings phải được dán nhãn. <a>Tìm hiểu thêm</a>
+accessibility-text-label-issue-heading-content = Headings nên có nội dung văn bản hiển thị. <a>Tìm hiểu thêm</a>
+accessibility-text-label-issue-iframe = Sử dụng thuộc tính <code>title</code> để mô tả nội dung <span>iframe</span>. <a>Tìm hiểu thêm</a>
+accessibility-text-label-issue-image = Nội dung với hình ảnh phải được dán nhãn. <a>Tìm hiểu thêm</a>
+accessibility-text-label-issue-interactive = Các yếu tố tương tác phải được dán nhãn. <a>Tìm hiểu thêm</a>
+accessibility-text-label-issue-optgroup-label2 = Sử dụng một thuộc tính <code>label</code> để gắn nhãn <span>optgroup</span>. <a>Tìm hiểu thêm</a>
+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ụ. <a>Tìm hiểu thêm</a>
+
+## 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. <a>Tìm hiểu thêm</a>
+accessibility-keyboard-issue-tabindex = Tránh sử dụng thuộc tính <code>tabindex</code> lớn hơn 0. <a>Tìm hiểu thêm</a>
+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. <a>Tìm hiểu thêm</a>
+accessibility-keyboard-issue-focusable = Các phần tử tương tác phải có thuộc tính focus. <a>Tìm hiểu thêm</a>
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=&#8734;
+
+# 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ở <a>about:debugging</a> 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 <time> element will
+# display the last update time of the service worker script.
+serviceworker-worker-updated = Đã cập nhật <time>{ DATETIME($date, month: "long", year: "numeric", day: "numeric", hour: "numeric", minute: "numeric", second: "numeric") }</time>
+
+# Text displayed next to the URL for the source of the service worker (e-g. "Source my/path/to/worker-js")
+serviceworker-worker-source = Nguồn
+
+# Text displayed next to the current status of the service worker.
+serviceworker-worker-status = Trạng thái
+
+## Service Worker status strings: all serviceworker-worker-status-* strings are also
+## defined in aboutdebugging.properties and should be synchronized with them.
+
+# Service Worker status. A running service worker is registered, currently executed, can
+# be debugged and stopped.
+serviceworker-worker-status-running = Đang chạy
+
+# Service Worker status. A stopped service worker is registered but not currently active.
+serviceworker-worker-status-stopped = Đã dừng
+
+# Text displayed when no service workers are visible for the current page. Clicking on the
+# link will open https://developer-mozilla-org/docs/Web/API/Service_Worker_API/Using_Service_Workers
+serviceworker-empty-intro = Bạn cần đăng ký một Service Worker để kiểm tra nó ở đây. <a>Tìm hiểu thêm</a>
+
+# Text displayed when there are no Service Workers to display for the current page,
+# introducing hints to debug Service Worker issues.
+serviceworker-empty-suggestions = Nếu trang hiện tại đã có một service worker, đây là một số điều bạn có thể thử
+
+# Suggestion to check for errors in the Console to investigate why a service worker is not
+# registered. Clicking on the link opens the webconsole.
+serviceworker-empty-suggestions-console = Tìm lỗi trong bảng điều khiển. <a>Mở bảng điều khiển</a>
+
+# Suggestion to use the debugger to investigate why a service worker is not registered.
+# Clicking on the link will switch from the Application panel to the debugger.
+serviceworker-empty-suggestions-debugger = Bước qua đăng ký Service Worker của bạn và tìm kiếm ngoại lệ. <a>Mở trình gỡ lỗi</a>
+
+# Suggestion to go to about:debugging in order to see Service Workers for all domains.
+# Clicking on the link will open about:debugging in a new tab.
+serviceworker-empty-suggestions-aboutdebugging = Kiểm tra Service Worker từ các lĩnh vực khác. <a>Mở about:debugging</a>
+
+# Text displayed when no service workers are visible for the current page.
+serviceworker-empty-intro2 = Không tìm thấy service workers
+
+# Link will open https://developer.mozilla.org/docs/Web/API/Service_Worker_API/Using_Service_Workers
+serviceworker-empty-intro-link = Tìm hiểu thêm
+
+# Text displayed when there are no Service Workers to display for the current page,
+# introducing hints to debug Service Worker issues.
+# <a> and <span> are links that will open the webconsole and the debugger, respectively.
+serviceworker-empty-suggestions2 = Nếu trang hiện tại cần có service worker, bạn có thể tìm lỗi trong <a>Bảng điều khiển</a> hoặc xem qua đăng ký service worker của bạn trong <span>Trình gỡ lỗi</span>.
+
+# Suggestion to go to about:debugging in order to see Service Workers for all domains.
+# Link will open about:debugging in a new tab.
+serviceworker-empty-suggestions-aboutdebugging2 = Xem service workers từ các tên miền khác
+
+# Header for the Manifest page when we have an actual manifest
+manifest-view-header = Bản kê khai ứng dụng
+
+# Header for the Manifest page when there's no manifest to inspect
+# The link will open https://developer.mozilla.org/en-US/docs/Web/Manifest
+manifest-empty-intro = Bạn cần thêm một ứng dụng web kê khai để kiểm tra nó ở đây. <a>Tìm hiểu thêm</a>
+
+# Header for the Manifest page when there's no manifest to inspect
+manifest-empty-intro2 = Không phát hiện manifest của ứng dụng web
+
+# The link will open https://developer.mozilla.org/en-US/docs/Web/Manifest
+manifest-empty-intro-link = Tìm hiểu làm thế nào để thêm manifest
+
+# Header for the Errors and Warnings section of Manifest inspection displayed in the application panel.
+manifest-item-warnings = Lỗi và cảnh báo
+
+# Header for the Identity section of Manifest inspection displayed in the application panel.
+manifest-item-identity = Nhận dạng
+
+# Header for the Presentation section of Manifest inspection displayed in the application panel.
+manifest-item-presentation = Trình bày
+
+# Header for the Icon section of Manifest inspection displayed in the application panel.
+manifest-item-icons = Biểu tượng
+
+# Text displayed while we are loading the manifest file
+manifest-loading = Đang tải bản kê khai…
+
+# Text displayed when the manifest has been successfully loaded
+manifest-loaded-ok = Đã tải manifest.
+
+# Text displayed as a caption when there has been an error while trying to
+# load the manifest
+manifest-loaded-error = Có lỗi trong khi tải tập tin kê khai:
+
+# Text displayed as an error when there has been a Firefox DevTools error while
+# trying to load the manifest
+manifest-loaded-devtools-error = Lỗi Firefox DevTools
+
+# Text displayed when the page has no manifest available
+manifest-non-existing = Không tìm thấy bảng kê khai để kiểm tra.
+
+# Text displayed when the page has a manifest embedded in a Data URL and
+# thus we cannot link to it.
+manifest-json-link-data-url = Tập tin kê khai được nhúng trong URL dữ liệu.
+
+# Text displayed at manifest icons to label their purpose, as declared
+# in the manifest.
+manifest-icon-purpose = Mục đích: <code>{ $purpose }</code>
+
+# Text displayed as the alt attribute for <img> tags showing the icons in the
+# manifest.
+manifest-icon-img =
+ .alt = Biểu tượng
+
+# Text displayed as the title attribute for <img> tags showing the icons in the
+# manifest. `$sizes` is a user-dependent string that has been parsed as a
+# space-separated list of `<width>x<height>` sizes or the keyword `any`.
+manifest-icon-img-title = Biểu tượng kích thước: { $sizes }
+
+# Text displayed as the title attribute for <img> tags showing the icons in the
+# manifest, in case there's no icon size specified by the user
+manifest-icon-img-title-no-sizes = Không xác định kích thước biểu tượng
+
+# Sidebar navigation item for Manifest sidebar item section
+sidebar-item-manifest = Kê khai
+ .alt = Biểu tượng kê khai
+ .title = Kê khai
+
+# Sidebar navigation item for Service Workers sidebar item section
+sidebar-item-service-workers = Service Workers
+ .alt = Biểu tượng Service Workers
+ .title = Service Workers
+
+# Text for the ALT and TITLE attributes of the warning icon
+icon-warning =
+ .alt = Biểu tượng cảnh báo
+ .title = Cảnh báo
+
+# Text for the ALT and TITLE attributes of the error icon
+icon-error =
+ .alt = Biểu tượng lỗi
+ .title = Lỗi
+
diff --git a/l10n-vi/devtools/client/boxmodel.properties b/l10n-vi/devtools/client/boxmodel.properties
new file mode 100644
index 0000000000..4da193a650
--- /dev/null
+++ b/l10n-vi/devtools/client/boxmodel.properties
@@ -0,0 +1,48 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE : FILE This file contains the Layout View strings.
+# The Layout View is a panel displayed in the computed view tab of the Inspector sidebar.
+
+# LOCALIZATION NOTE : FILE 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 (boxmodel.title) This is the title of the box model panel and is
+# displayed as a label.
+boxmodel.title=Mô hình hộp
+
+# LOCALIZATION NOTE: (boxmodel.geometryButton.tooltip) This label is displayed as a
+# tooltip that appears when hovering over the button that allows users to edit the
+# position of an element in the page.
+boxmodel.geometryButton.tooltip=Chỉnh sửa vị trí
+
+# LOCALIZATION NOTE: (boxmodel.propertiesLabel) This label is displayed as the header
+# for showing and collapsing the properties underneath the box model in the layout view
+boxmodel.propertiesLabel=Thuộc tính mô hình hộp
+
+# LOCALIZATION NOTE (boxmodel.propertiesHideLabel):
+# This is the spoken label for the twisty.
+# If the properties are currently showing, it will say "Hide".
+boxmodel.propertiesHideLabel=Ẩn
+
+# LOCALIZATION NOTE (boxmodel.propertiesShowLabel):
+# This is the spoken label for the twisty.
+# If the properties are currently hidden, it will say "Show".
+boxmodel.propertiesShowLabel=Hiện
+
+# LOCALIZATION NOTE: (boxmodel.offsetParent) This label is displayed inside the list of
+# properties, below the box model, in the layout view. It is displayed next to the
+# position property, when position is absolute, relative, sticky. This label tells users
+# what the DOM node previewed next to it is: an offset parent for the position element.
+boxmodel.offsetParent=khoảng cách
+
+# LOCALIZATION NOTE: (boxmodel.offsetParent.title) This label is displayed as a
+# tooltip that appears when hovering over the offset label, inside the list of properties,
+# below the box model, in the layout view. This label tells users
+# what the DOM node previewed next to it is: an offset parent for the position element.
+boxmodel.offsetParent.title=Offset cha của phần tử được chọn
+
diff --git a/l10n-vi/devtools/client/changes.properties b/l10n-vi/devtools/client/changes.properties
new file mode 100644
index 0000000000..913f119c58
--- /dev/null
+++ b/l10n-vi/devtools/client/changes.properties
@@ -0,0 +1,64 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 contains the strings for the Changes panel accessible from
+# the Inspector sidebar.
+
+# LOCALIZATION NOTE (changes.noChanges): This text is shown when no changes are available.
+changes.noChanges=Không có thay đổi được tìm thấy.
+
+# LOCALIZATION NOTE (changes.noChangesDescription): This text is shown when no changes are
+# available and provides additional context for the purpose of the Changes panel.
+changes.noChangesDescription=Thay đổi CSS trong trình kiểm tra sẽ xuất hiện ở đây.
+
+# LOCALIZATION NOTE (changes.inlineStyleSheetLabel): This label appears in the Changes
+# panel above changes done to inline stylesheets. The variable will be replaced with the
+# index of the stylesheet within its document like so: Inline #1
+changes.inlineStyleSheetLabel=Trong dòng %S
+
+# LOCALIZATION NOTE (changes.elementStyleLabel): This label appears in the Changes
+# panel above changes done to element styles.
+changes.elementStyleLabel=Phần tử
+
+# LOCALIZATION NOTE (changes.iframeLabel): This label appears next to URLs of stylesheets
+# and element inline styles hosted by iframes. Lowercase intentional.
+changes.iframeLabel=iframe
+
+# LOCALIZATION NOTE (changes.contextmenu.copy): Label for "Copy" option in Changes panel
+# context menu
+changes.contextmenu.copy=Sao chép
+
+# LOCALIZATION NOTE (changes.contextmenu.copy.accessKey): Access key for "Copy"
+# option in the Changes panel.
+changes.contextmenu.copy.accessKey=C
+
+# LOCALIZATION NOTE (changes.contextmenu.copyAllChanges): Label for "Copy All Changes"
+# option in Changes panel context menu which copies all changed CSS declarations from a
+# stylesheet
+changes.contextmenu.copyAllChanges=Sao chép tất cả thay đổi
+
+# LOCALIZATION NOTE (changes.contextmenu.copyAllChangesDescription): Detailed explanation
+# for "Copy All Changes" option in Changes panel. Used as title attribute on "Copy All
+# Changes" button
+changes.contextmenu.copyAllChangesDescription=Sao chép danh sách tất cả các thay đổi CSS vào bộ nhớ tạm.
+
+# LOCALIZATION NOTE (changes.contextmenu.copyDeclaration): Label for "Copy Declaration"
+# option in Changes panel context menu which copies the target CSS declaration.
+changes.contextmenu.copyDeclaration=Sao chép khai báo
+
+# LOCALIZATION NOTE (changes.contextmenu.copyRule): Label for "Copy Rule" option in
+# Changes panel context menu which copies the complete contents of a CSS rule.
+changes.contextmenu.copyRule=Sao chép quy tắc
+
+# LOCALIZATION NOTE (changes.contextmenu.copyRuleDescription): Detailed explanation for
+# "Copy Rule" option in Changes panel. Used as title attribute on "Copy Rule" button.
+changes.contextmenu.copyRuleDescription=Sao chép nội dung của quy tắc CSS này vào bộ nhớ tạm.
+
+# LOCALIZATION NOTE (changes.contextmenu.selectAll): Label for "Select All" option in the
+# Changes panel context menu to select all text content.
+changes.contextmenu.selectAll=Chọn tất cả
+
+# LOCALIZATION NOTE (changes.contextmenu.selectAll.accessKey): Access key for "Select All"
+# option in the Changes panel.
+changes.contextmenu.selectAll.accessKey=A
diff --git a/l10n-vi/devtools/client/compatibility.ftl b/l10n-vi/devtools/client/compatibility.ftl
new file mode 100644
index 0000000000..659e6a5a66
--- /dev/null
+++ b/l10n-vi/devtools/client/compatibility.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/.
+
+
+## Messages used as headers in the main pane
+
+compatibility-selected-element-header = Phần tử đã chọn
+compatibility-all-elements-header = Tất cả vấn đề
+
+## Message used as labels for the type of issue
+
+compatibility-issue-deprecated = (ngừng hỗ trợ)
+compatibility-issue-experimental = (thử nghiệm)
+compatibility-issue-prefixneeded = (cần có tiền tố)
+compatibility-issue-deprecated-experimental = (ngừng hỗ trợ, thử nghiệm)
+
+compatibility-issue-deprecated-prefixneeded = (không còn dùng nữa, cần có tiền tố)
+compatibility-issue-experimental-prefixneeded = (thử nghiệm, cần có tiền tố)
+compatibility-issue-deprecated-experimental-prefixneeded = (không còn dùng nữa, thử nghiệm, cần có tiền tố)
+
+## Messages used as labels and titles for buttons in the footer
+
+compatibility-settings-button-label = Cài đặt
+compatibility-settings-button-title =
+ .title = Cài đặt
+compatibility-feedback-button-label = Phản hồi
+compatibility-feedback-button-title =
+ .title = Phản hồi
+
+## Messages used as headers in settings pane
+
+compatibility-settings-header = Cài đặt
+compatibility-target-browsers-header = Trình duyệt đích
+
+##
+
+# Text used as the label for the number of nodes where the issue occurred
+# Variables:
+# $number (Number) - The number of nodes where the issue occurred
+compatibility-issue-occurrences =
+ { $number ->
+ *[other] { $number } lần xuất hiện
+ }
+
+compatibility-no-issues-found = Không tìm thấy vấn đề tương thích.
+compatibility-close-settings-button =
+ .title = Đóng cài đặt
diff --git a/l10n-vi/devtools/client/components.properties b/l10n-vi/devtools/client/components.properties
new file mode 100644
index 0000000000..eb94467676
--- /dev/null
+++ b/l10n-vi/devtools/client/components.properties
@@ -0,0 +1,24 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used in the shared React components,
+# so files in `devtools/client/shared/components/*`.
+
+# LOCALIZATION NOTE (frame.unknownSource): When we do not know the source filename of
+# a frame, we use this string instead.
+frame.unknownSource=(không xác định)
+
+# LOCALIZATION NOTE (frame.viewsourceindebugger): The label for the tooltip when hovering over
+# a source link that links to the debugger.
+# %S represents the URL to match in the debugger.
+frame.viewsourceindebugger=Xem nguồn trong trình gỡ lỗi → %S
+
+# LOCALIZATION NOTE (frame.viewsourceinstyleeditor): The label for the tooltip when hovering over
+# a source link that links to the Style Editor.
+# %S represents the URL to match in the style editor.
+frame.viewsourceinstyleeditor=Xem nguồn trong trình chỉnh sửa kiểu mẫu →%S
+
+# LOCALIZATION NOTE (notificationBox.closeTooltip): The content of a tooltip that
+# appears when hovering over the close button in a notification box.
+notificationBox.closeTooltip=Đóng thông báo này
diff --git a/l10n-vi/devtools/client/debugger.properties b/l10n-vi/devtools/client/debugger.properties
new file mode 100644
index 0000000000..f2b7555d26
--- /dev/null
+++ b/l10n-vi/devtools/client/debugger.properties
@@ -0,0 +1,1063 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 Debugger
+# which is available from the Web Developer sub-menu -> 'Debugger'.
+# 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 (collapseSources): This is the tooltip for the button
+# that collapses the Sources and Outlines panes in the debugger UI.
+collapseSources=Thu gọn ngăn nguồn và phác thảo
+
+# LOCALIZATION NOTE (collapseBreakpoints): This is the tooltip for the button
+# that collapses the Breakpoints panes in the debugger UI.
+collapseBreakpoints=Thu gọn ngăn điểm dừng
+
+# LOCALIZATION NOTE (copyToClipboard.label): This is the text that appears in the
+# context menu to copy the text that the user selected.
+copyToClipboard.label=Sao chép vào bộ nhớ tạm
+copyToClipboard.accesskey=C
+
+# LOCALIZATION NOTE (copySource.label): This is the text that appears in the
+# context menu to copy all of the text in the open file.
+copySource.label=Sao chép văn bản nguồn
+copySource.accesskey=y
+
+# LOCALIZATION NOTE (copySourceUri2): This is the text that appears in the
+# context menu to copy the source URI of file open.
+copySourceUri2=Sao chép URI nguồn
+copySourceUri2.accesskey=u
+
+# LOCALIZATION NOTE (collapseAll.label): This is the text that appears in the
+# context menu to collapse a directory and all of its subdirectories.
+collapseAll.label=Thu gọn tất cả
+
+# LOCALIZATION NOTE (expandAll.label): This is the text that appears in the
+# context menu to expand a directory and all of its subdirectories.
+expandAll.label=Mở rộng tất cả
+
+# LOCALIZATION NOTE (setDirectoryRoot.label): This is the text that appears in the
+# context menu to set a directory as root directory
+setDirectoryRoot.label=Đặt thư mục gốc
+setDirectoryRoot.accesskey=r
+
+# LOCALIZATION NOTE (removeDirectoryRoot.label): This is the text that appears in the
+# context menu to remove a directory as root directory
+removeDirectoryRoot.label=Xóa thư mục gốc
+
+# LOCALIZATION NOTE (blackBoxAll.label): Text associated with the blackbox context menu item
+blackBoxAll.label=Blackbox
+
+# LOCALIZATION NOTE (blackBoxAllInGroup.label): This is the text that appears in the
+# context submenu to blackbox all files inside of the selected group
+blackBoxAllInGroup.label=Blackbox các tập tin trong nhóm này
+
+# LOCALIZATION NOTE (unblackBoxAllInGroup.label): This is the text that appears in the
+# context submenu to unblackbox all files inside of the selected group
+unblackBoxAllInGroup.label=Unblackbox các tập tin trong nhóm này
+
+# LOCALIZATION NOTE (blackBoxAllOutsideGroup.label): This is the text that appears in the
+# context submenu to blackbox all files outside of the selected group
+blackBoxAllOutsideGroup.label=Blackbox các tập tin ngoài nhóm này
+
+# LOCALIZATION NOTE (unblackBoxAllOutsideGroup.label): This is the text that appears in the
+# context submenu to unblackbox all files outside of the selected group
+unblackBoxAllOutsideGroup.label=Unblackbox các tập tin ngoài nhóm này
+
+# LOCALIZATION NOTE (blackBoxAllInDir.label): This is the text that appears in the
+# context submenu to blackbox all files inside of the selected directory
+blackBoxAllInDir.label=Blackbox các tập tin trong thư mục này
+
+# LOCALIZATION NOTE (unblackBoxAllInDir.label): This is the text that appears in the
+# context submenu to unblackbox all files inside of the selected directory
+unblackBoxAllInDir.label=Unblackbox các tập tin trong thư mục này
+
+# LOCALIZATION NOTE (blackBoxAllOutsideDir.label): This is the text that appears in the
+# context submenu to blackbox all files outside of the selected directory
+blackBoxAllOutsideDir.label=Blackbox các tập tin ngoài thư mục này
+
+# LOCALIZATION NOTE (unblackBoxAllOutsideDir.label: This is the text that appears in the
+# context submenu to unblackbox all files outside of the selected directory
+unblackBoxAllOutsideDir.label=Unblackbox các tập tin ngoài thư mục này
+
+# LOCALIZATION NOTE (ignoreAll.label): Text associated with the ignore context menu item
+ignoreAll.label=Bỏ qua
+
+# LOCALIZATION NOTE (ignoreAllInGroup.label): This is the text that appears in the
+# context submenu to ignore all files inside of the selected group
+ignoreAllInGroup.label=Bỏ qua các tập tin trong nhóm này
+
+# LOCALIZATION NOTE (unignoreAllInGroup.label): This is the text that appears in the
+# context submenu to unignore all files inside of the selected group
+unignoreAllInGroup.label=Không bỏ qua các tập tin trong nhóm này
+
+# LOCALIZATION NOTE (ignoreAllOutsideGroup.label): This is the text that appears in the
+# context submenu to ignore all files outside of the selected group
+ignoreAllOutsideGroup.label=Bỏ qua các tập tin ngoài nhóm này
+
+# LOCALIZATION NOTE (unignoreAllOutsideGroup.label): This is the text that appears in the
+# context submenu to unignore all files outside of the selected group
+unignoreAllOutsideGroup.label=Không bỏ qua các tập tin ngoài nhóm này
+
+# LOCALIZATION NOTE (ignoreAllInDir.label): This is the text that appears in the
+# context submenu to ignore all files inside of the selected directory
+ignoreAllInDir.label=Bỏ qua các tập tin trong thư mục này
+
+# LOCALIZATION NOTE (unignoreAllInDir.label): This is the text that appears in the
+# context submenu to unignore all files inside of the selected directory
+unignoreAllInDir.label=Không bỏ qua các tập tin trong thư mục này
+
+# LOCALIZATION NOTE (ignoreAllOutsideDir.label): This is the text that appears in the
+# context submenu to ignore all files outside of the selected directory
+ignoreAllOutsideDir.label=Bỏ qua các tập tin ngoài thư mục này
+
+# LOCALIZATION NOTE (unignoreAllOutsideDir.label: This is the text that appears in the
+# context submenu to unignore all files outside of the selected directory
+unignoreAllOutsideDir.label=Không bỏ qua các tập tin ngoài thư mục này
+
+# LOCALIZATION NOTE (copyFunction.label): This is the text that appears in the
+# context menu to copy the function the user selected
+copyFunction.label=Sao chép hàm
+copyFunction.accesskey=F
+
+# LOCALIZATION NOTE (copyStackTrace): This is the text that appears in the
+# context menu to copy the stack trace methods, file names and row number.
+copyStackTrace=Sao chép stack trace
+copyStackTrace.accesskey=c
+
+# LOCALIZATION NOTE (restartFrame): This is the text that appears in the
+# context menu to restart a frame.
+restartFrame=Khởi động lại khung hình
+restartFrame.accesskey=r
+
+# LOCALIZATION NOTE (expandSources): This is the tooltip for the button
+# that expands the Sources and Outlines panes in the debugger UI.
+expandSources=Mở rộng ngăn nguồn và phác thảo
+
+# LOCALIZATION NOTE (expandBreakpoints): This is the tooltip for the button
+# that expands the Breakpoints panes in the debugger UI.
+expandBreakpoints=Mở rộng ngăn điểm dừng
+
+# LOCALIZATION NOTE (evaluateInConsole.label): Editor right-click menu item
+# to execute selected text in browser console.
+evaluateInConsole.label=Đánh giá trong bảng điều khiển
+
+# LOCALIZATION NOTE (pauseButtonTooltip): The tooltip that is displayed for the pause
+# button when the debugger is in a running state.
+pauseButtonTooltip=Tạm dùng %S
+
+# LOCALIZATION NOTE (pausePendingButtonTooltip): The tooltip that is displayed for
+# the pause button after it's been clicked but before the next JavaScript to run.
+pausePendingButtonTooltip=Chờ việc thực thi tiếp theo
+
+# LOCALIZATION NOTE (resumeButtonTooltip): The label that is displayed on the pause
+# button when the debugger is in a paused state.
+resumeButtonTooltip=Tiếp tục %S
+
+# LOCALIZATION NOTE (stepOverTooltip): The label that is displayed on the
+# button that steps over a function call.
+stepOverTooltip=Bước qua %S
+
+# LOCALIZATION NOTE (stepInTooltip): The label that is displayed on the
+# button that steps into a function call.
+stepInTooltip=Bước vào %S
+
+# LOCALIZATION NOTE (stepOutTooltip): The label that is displayed on the
+# button that steps out of a function call.
+stepOutTooltip=Bước ra %S
+
+# LOCALIZATION NOTE (skipPausingTooltip.label): The tooltip text for disabling all
+# breakpoints and pausing triggers
+skipPausingTooltip.label=Vô hiệu hóa điểm dừng
+
+# LOCALIZATION NOTE (undoSkipPausingTooltip.label): The tooltip text for enabling all
+# breakpoints and pausing triggers
+undoSkipPausingTooltip.label=Kích hoạt tất cả các điểm dừng
+
+# LOCALIZATION NOTE (pauseOnExceptionsItem2): The pause on exceptions checkbox description
+# when the debugger will pause on all exceptions.
+pauseOnExceptionsItem2=Tạm dừng ở ngoại lệ
+
+# LOCALIZATION NOTE (pauseOnCaughtExceptionsItem): The pause on exceptions checkbox description
+# when the debugger should pause on caught exceptions
+pauseOnCaughtExceptionsItem=Tạm dừng việc bắt các ngoại lệ
+
+# LOCALIZATION NOTE (threadsHeader): The text to describe the threads header
+threadsHeader=Luồng
+
+# LOCALIZATION NOTE (mainThread): The text to describe the thread of the
+# program as opposed to worker threads.
+mainThread=Luồng chính
+
+# LOCALIZATION NOTE (noSourcesText): The text to display in the sources list
+# when there are no sources.
+noSourcesText=Trang này không có nguồn.
+
+# LOCALIZATION NOTE (eventListenersHeader1): The text to display in the events
+# header.
+
+# LOCALIZATION NOTE (noDomMutationBreakpoints): The text to
+# display in the DOM Mutation Breakpoints pane when there are no events.
+# %S will be replaced by an active link using inspectorTool as text
+
+# LOCALIZATION NOTE (inspectorTool): The text to describe the the Inspector tool
+inspectorTool=Trình kiểm tra
+
+# LOCALIZATION NOTE (eventListenersHeader1.placeholder): The placeholder text in
+# the event search input bar
+eventListenersHeader1.placeholder=Lọc theo loại sự kiện
+
+# LOCALIZATION NOTE (domMutationHeader): The text to display in the
+# DOM Mutation Breakpoints header
+
+# LOCALIZATION NOTE (domMutationTypes.attribute): The text to display in the
+# DOM Mutation Breakpoints panel for an attribute change
+
+# LOCALIZATION NOTE (domMutationTypes.removal): The text to display in the
+# DOM Mutation Breakpoints panel for a DOM node removal
+domMutationTypes.removal=Loại bỏ node
+
+# LOCALIZATION NOTE (domMutationTypes.subtree): The text to display in the
+# DOM Mutation Breakpoints panel for a DOM subtree change
+
+# LOCALIZATION NOTE (sources.search.key2): Key shortcut to open the search for
+# searching all the source files the debugger has seen.
+# Do not localize "CmdOrCtrl+P", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+sources.search.key2=CmdOrCtrl+P
+
+# LOCALIZATION NOTE (sources.search.alt.key): A second key shortcut to open the
+# search for searching all the source files the debugger has seen.
+# Do not localize "CmdOrCtrl+O", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+sources.search.alt.key=CmdOrCtrl+O
+
+# LOCALIZATION NOTE (projectTextSearch.key): A key shortcut to open the
+# full project text search for searching all the files the debugger has seen.
+# Do not localize "CmdOrCtrl+Shift+F", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+projectTextSearch.key=CmdOrCtrl+Shift+F
+
+# LOCALIZATION NOTE (allShortcut.key): A key shortcut to open the
+# modal of full shortcuts list.
+# Do not localize "CmdOrCtrl+/", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+allShortcut.key=CmdOrCtrl+/
+
+# LOCALIZATION NOTE (functionSearch.key): A key shortcut to open the
+# modal for searching functions in a file.
+# Do not localize "CmdOrCtrl+Shift+O", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+functionSearch.key=CmdOrCtrl+Shift+O
+
+# LOCALIZATION NOTE (toggleBreakpoint.key): A key shortcut to toggle
+# breakpoints.
+# Do not localize "CmdOrCtrl+B", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+toggleBreakpoint.key=CmdOrCtrl+B
+
+# LOCALIZATION NOTE (toggleCondPanel.breakpoint.key): A key shortcut to toggle
+# the conditional panel for breakpoints.
+# Do not localize "CmdOrCtrl+Shift+B", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+toggleCondPanel.breakpoint.key=CmdOrCtrl+Shift+B
+
+# LOCALIZATION NOTE (toggleCondPanel.logPoint.key): A key shortcut to toggle
+# the conditional panel for log points.
+# Do not localize "CmdOrCtrl+Shift+Y", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+toggleCondPanel.logPoint.key=CmdOrCtrl+Shift+Y
+
+# LOCALIZATION NOTE (stepOut.key): A key shortcut to
+# step out.
+stepOut.key=Shift+F11
+
+# LOCALIZATION NOTE (shortcuts.header.editor): Sections header in
+# the shortcuts modal for keyboard shortcuts related to editing.
+shortcuts.header.editor=Trình soạn thảo
+
+# LOCALIZATION NOTE (shortcuts.header.stepping): Sections header in
+# the shortcuts modal for keyboard shortcuts related to stepping.
+
+# LOCALIZATION NOTE (shortcuts.header.search): Sections header in
+# the shortcuts modal for keyboard shortcuts related to search.
+shortcuts.header.search=Tìm kiếm
+
+# LOCALIZATION NOTE (projectTextSearch.placeholder): A placeholder shown
+# when searching across all of the files in a project.
+projectTextSearch.placeholder=Tìm trong tập tin…
+
+# LOCALIZATION NOTE (projectTextSearch.noResults): The center pane Text Search
+# message when the query did not match any text of all files in a project.
+projectTextSearch.noResults=Không tìm thấy kết quả nào
+
+# LOCALIZATION NOTE (sourceSearch.search.key2): Key shortcut to open the search
+# for searching within a the currently opened files in the editor
+# Do not localize "CmdOrCtrl+F", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+sourceSearch.search.key2=CmdOrCtrl+F
+
+# LOCALIZATION NOTE (sourceSearch.search.placeholder): placeholder text in
+# the source search input bar
+sourceSearch.search.placeholder=Tìm kiếm trong tập tin…
+
+# LOCALIZATION NOTE (sourceSearch.search.placeholder2): placeholder text in
+# the source search input bar
+sourceSearch.search.placeholder2=Tìm trong tập tin…
+
+# LOCALIZATION NOTE (sourceSearch.search.again.key3): Key shortcut to highlight
+# the next occurrence of the last search triggered from a source search
+# Do not localize "Cmd+G", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+sourceSearch.search.again.key3=Cmd+G
+
+# LOCALIZATION NOTE (sourceSearch.search.againPrev.key3): Key shortcut to highlight
+# the previous occurrence of the last search triggered from a source search
+# Do not localize "Cmd+Shift+G", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+sourceSearch.search.againPrev.key3=Cmd+Shift+G
+
+# LOCALIZATION NOTE (sourceSearch.resultsSummary2): Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# Shows a summary of the number of matches for autocomplete
+sourceSearch.resultsSummary2=#1 kết quả
+
+# LOCALIZATION NOTE (breakpointHeadingMenuItem.*): The text for all the elements
+# that are displayed in the breakpoint headings menu item popup.
+breakpointHeadingsMenuItem.enableInSource.label=Kích hoạt các điểm dừng
+breakpointHeadingsMenuItem.enableInSource.accesskey=E
+breakpointHeadingsMenuItem.disableInSource.label=Vô hiệu hóa điểm dừng
+breakpointHeadingsMenuItem.disableInSource.accesskey=D
+breakpointHeadingsMenuItem.removeInSource.label=Xóa điểm dừng
+breakpointHeadingsMenuItem.removeInSource.accesskey=R
+
+# LOCALIZATION NOTE (breakpointMenuItem): The text for all the elements that
+# are displayed in the breakpoints menu item popup.
+breakpointMenuItem.enableSelf2.label=Kích hoạt
+breakpointMenuItem.enableSelf2.accesskey=E
+breakpointMenuItem.disableSelf2.label=Tắt
+breakpointMenuItem.disableSelf2.accesskey=T
+breakpointMenuItem.deleteSelf2.label=Xóa
+breakpointMenuItem.deleteSelf2.accesskey=X
+breakpointMenuItem.disabledbg.label=Không bao giờ tạm dừng ở đây
+breakpointMenuItem.enabledbg.label=Tạm dừng ở đây
+breakpointMenuItem.enableOthers2.label=Kích hoạt các thứ khác
+breakpointMenuItem.enableOthers2.accesskey=o
+breakpointMenuItem.disableOthers2.label=Vô hiệu các thứ khác
+breakpointMenuItem.disableOthers2.accesskey=s
+breakpointMenuItem.deleteOthers2.label=Xóa các thứ khác
+breakpointMenuItem.deleteOthers2.accesskey=h
+breakpointMenuItem.enableAll2.label=Kích hoạt tất cả
+breakpointMenuItem.enableAll2.accesskey=c
+breakpointMenuItem.disableAll2.label=Tắt tất cả
+breakpointMenuItem.disableAll2.accesskey=t
+breakpointMenuItem.deleteAll2.label=Xóa tắt cả
+breakpointMenuItem.deleteAll2.accesskey=a
+breakpointMenuItem.removeCondition2.label=Xóa điều kiện
+breakpointMenuItem.removeCondition2.accesskey=u
+breakpointMenuItem.addCondition2.label=Thêm điều kiện
+breakpointMenuItem.addCondition2.accesskey=h
+breakpointMenuItem.editCondition2.label=Chỉnh sửa điều kiện
+breakpointMenuItem.editCondition2.accesskey=n
+breakpointMenuItem.enableSelf=Kích hoạt điểm dừng
+breakpointMenuItem.disableSelf=Vô hiệu breakpoint
+breakpointMenuItem.deleteSelf=Xóa breakpoint
+breakpointMenuItem.enableOthers=Kích hoạt các thứ khác
+breakpointMenuItem.disableOthers=Vô hiệu các thứ khác
+breakpointMenuItem.deleteOthers=Xóa các thứ khác
+breakpointMenuItem.enableAll=Kích hoạt tất cả các điểm dừng
+breakpointMenuItem.disableAll=Vô hiệu hóa tất cả các breakpoint
+breakpointMenuItem.deleteAll=Gỡ bỏ tất cả các breakpoint
+breakpointMenuItem.disableAllAtLine.label=Vô hiệu hóa điểm dừng trên dòng
+breakpointMenuItem.disableAllAtLine.accesskey=K
+breakpointMenuItem.enableAllAtLine.label=Kích hoạt điểm dừng trên dòng
+breakpointMenuItem.enableAllAtLine.accesskey=L
+breakpointMenuItem.removeAllAtLine.label=Xóa điểm dừng trên dòng
+breakpointMenuItem.removeAllAtLine.accesskey=X
+
+# LOCALIZATION NOTE (breakpoints.header): Breakpoints right sidebar pane header.
+breakpoints.header=Điểm dừng
+
+# LOCALIZATION NOTE (breakpoints.enable): The text that may appear as a tooltip
+# when hovering over the 'disable breakpoints' switch button in right sidebar
+breakpoints.enable=Kích hoạt các điểm dừng
+
+# LOCALIZATION NOTE (breakpoints.disable): The text that may appear as a tooltip
+# when hovering over the 'disable breakpoints' switch button in right sidebar
+breakpoints.disable=Vô hiệu hóa điểm dừng
+
+# LOCALIZATION NOTE (breakpoints.removeBreakpointTooltip): The tooltip that is displayed
+# for remove breakpoint button in right sidebar
+breakpoints.removeBreakpointTooltip=Xóa điểm dừng
+
+# LOCALIZATION NOTE (callStack.header): Call Stack right sidebar pane header.
+
+# LOCALIZATION NOTE (callStack.notPaused): Call Stack right sidebar pane
+# message when not paused.
+callStack.notPaused=Không dừng lại
+
+# LOCALIZATION NOTE (callStack.collapse): Call Stack right sidebar pane
+# message to hide some of the frames that are shown.
+callStack.collapse=Thu gọn hàng
+
+# LOCALIZATION NOTE (callStack.expand): Call Stack right sidebar pane
+# message to show more of the frames.
+callStack.expand=Mở rộng hàng
+
+# LOCALIZATION NOTE (callStack.group.expandTooltip): The text that will appear
+# when hovering a collapsed Group of frames in the callStack panel. `frames` is
+# always plural since a group can only exist if it contain more that 1 frame.
+# %S is replaced by the name of the library of the frames in the group.
+# example: `Show React frames`.
+callStack.group.expandTooltip=Hiển thị %S khung
+
+# LOCALIZATION NOTE (callStack.group.collapseTooltip): The text that will appear
+# when hovering an expanded Group of frames in the callStack panel. `frames` is
+# always plural since a group can only exist if it contain more that 1 frame.
+# %S is replaced by the name of the library of the frames in the group.
+# example: `Collapse React frames`.
+callStack.group.collapseTooltip=Thu gọn %S khung
+
+# LOCALIZATION NOTE (editor.searchResults1): Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# Editor Search bar message to summarize the selected search result. e.g. 5 of 10 results.
+editor.searchResults1=%d của #1 kết quả
+
+# LOCALIZATION NOTE (editor.noResultsFound): Editor Search bar message
+# for when no results found.
+editor.noResultsFound=Không tìm thấy kết quả nào
+
+# LOCALIZATION NOTE (editor.searchResults.nextResult): Editor Search bar
+# tooltip for traversing to the Next Result
+editor.searchResults.nextResult=Kết quả sau
+
+# LOCALIZATION NOTE (editor.searchResults.prevResult): Editor Search bar
+# tooltip for traversing to the Previous Result
+editor.searchResults.prevResult=Kết quả trước
+
+# LOCALIZATION NOTE (editor.continueToHere.label): Editor gutter context
+# menu item for jumping to a new paused location
+editor.continueToHere.label=Tiếp tục từ đây
+editor.continueToHere.accesskey=H
+
+# LOCALIZATION NOTE (editor.addBreakpoint): Editor gutter context menu item
+# for adding a breakpoint on a line.
+editor.addBreakpoint=Thêm điểm dừng
+
+# LOCALIZATION NOTE (editor.disableBreakpoint): Editor gutter context menu item
+# for disabling a breakpoint on a line.
+editor.disableBreakpoint=Vô hiệu hóa điểm dừng
+editor.disableBreakpoint.accesskey=D
+
+# LOCALIZATION NOTE (editor.enableBreakpoint): Editor gutter context menu item
+# for enabling a breakpoint on a line.
+editor.enableBreakpoint=Kích hoạt điểm dừng
+
+# LOCALIZATION NOTE (editor.removeBreakpoint): Editor gutter context menu item
+# for removing a breakpoint on a line.
+editor.removeBreakpoint=Xóa điểm dừng
+
+# LOCALIZATION NOTE (editor.addConditionBreakpoint): Editor gutter context
+# menu item for adding a breakpoint condition on a line.
+editor.addConditionBreakpoint=Thêm điều kiện
+editor.addConditionBreakpoint.accesskey=c
+
+# LOCALIZATION NOTE (editor.editConditionBreakpoint): Editor gutter context menu item
+# for setting a breakpoint condition on a line.
+editor.editConditionBreakpoint=Sửa điều kiện
+
+# LOCALIZATION NOTE (editor.addLogPoint): Editor gutter context
+# menu item for adding a log point on a line.
+editor.addLogPoint=Thêm nhật ký
+editor.addLogPoint.accesskey=l
+
+# LOCALIZATION NOTE (editor.editLogPoint): Editor gutter context menu item
+# for editing a log point already set on a line.
+editor.editLogPoint=Chỉnh sửa nhật ký
+editor.editLogPoint.accesskey=E
+
+# LOCALIZATION NOTE (editor.removeLogPoint): Context menu item for removing
+# a log point on a line.
+editor.removeLogPoint.label=Xóa nhật ký
+editor.removeLogPoint.accesskey=V
+
+# LOCALIZATION NOTE (editor.conditionalPanel.placeholder2): Placeholder text for
+# input element inside ConditionalPanel component
+
+# LOCALIZATION NOTE (editor.conditionalPanel.logPoint.placeholder2): Placeholder text for
+# input element inside ConditionalPanel component when a log point is set
+editor.conditionalPanel.logPoint.placeholder2=Nhật ký thông báo, ví dụ: displayName
+
+# LOCALIZATION NOTE (editor.jumpToMappedLocation1): Context menu item
+# for navigating to a source mapped location
+editor.jumpToMappedLocation1=Chuyển đến vị trí %S
+editor.jumpToMappedLocation1.accesskey=m
+
+# LOCALIZATION NOTE (downloadFile.label): Context menu item
+# for downloading a source's content
+downloadFile.label=Tải tập tin
+downloadFile.accesskey=d
+
+# LOCALIZATION NOTE (inlinePreview.show.label): Context menu item
+# for showing the inline preview blocks
+
+# LOCALIZATION NOTE (inlinePreview.hide.label): Context menu item
+# for hiding the inline preview block
+
+# LOCALIZATION NOTE (inlinePreview.toggle.label): Context menu item
+# that will toggle display of inline preview
+
+# LOCALIZATION NOTE (inlinePreview.toggle.tooltip): Context menu item
+# tooltip that will describe toggling inline preview
+
+# LOCALIZATION NOTE (editorWrapping.show.label): Context menu item
+# for showing the wrap lines block
+
+# LOCALIZATION NOTE (editorWrapping.hide.label): Context menu item
+# for showing the wrap lines block
+
+# LOCALIZATION NOTE (editorWrapping.toggle.label): Context menu item
+# label for toggling the lines wrapping feature
+
+# LOCALIZATION NOTE (editorWrapping.toggle.tooltip): Context menu item
+# tooltip for toggling the lines wrapping feature
+
+# LOCALIZATION NOTE (settings.button.label): Label for Settings button
+settings.button.label=Cài đặt trình gỡ lỗi
+
+# LOCALIZATION NOTE (settings.disableJavaScript.label): Context menu item
+# label for disabling JavaScript
+settings.disableJavaScript.label=Vô hiệu hóa JavaScript
+
+# LOCALIZATION NOTE (settings.disableJavaScript.tooltip): Context menu item
+# tooltip for disabling JavaScript
+settings.disableJavaScript.tooltip=Vô hiệu hóa JavaScript (yêu cầu làm mới)
+
+# LOCALIZATION NOTE (settings.toggleSourceMaps.tooltip): Context menu item
+# tooltip for toggling the source maps feature
+
+# LOCALIZATION NOTE (settings.toggleSourceMaps.label): Context menu item
+# label for toggling the source maps feature
+
+# LOCALIZATION NOTE (preview.noProperties): Label shown in the preview
+# popup when there are no properties to show.
+preview.noProperties=Không có thuộc tính
+
+# LOCALIZATION NOTE (framework.disableGrouping): This is the text that appears in the
+# context menu to disable framework grouping.
+framework.disableGrouping.accesskey=u
+
+# LOCALIZATION NOTE (framework.enableGrouping): This is the text that appears in the
+# context menu to enable framework grouping.
+framework.enableGrouping.accesskey=u
+
+# LOCALIZATION NOTE (generated): Source Map term for a server source location
+generated=đã tạo
+
+# LOCALIZATION NOTE (original): Source Map term for a debugger UI source location
+original=gốc
+
+# LOCALIZATION NOTE (expressions.placeholder): Placeholder text for expression
+# input element
+
+# LOCALIZATION NOTE (expressions.errorMsg): Error text for expression
+# input element
+expressions.errorMsg=Biểu thức không hợp lệ…
+expressions.accesskey=e
+
+# LOCALIZATION NOTE (xhrBreakpoints.header): The pause on any XHR breakpoints headings
+xhrBreakpoints.header=Điểm dừng XHR
+xhrBreakpoints.placeholder=Ngắt khi URL chứa
+xhrBreakpoints.label=Thêm điểm dừng XHR
+
+# LOCALIZATION NOTE (xhrBreakpoints.item.label): message displayed when reaching a breakpoint for XHR requests. %S is replaced by the path provided as condition for the breakpoint.
+xhrBreakpoints.item.label=URL chứa “%S”
+
+# LOCALIZATION NOTE (pauseOnAnyXHR): The pause on any XHR checkbox description
+# when the debugger will pause on any XHR requests.
+pauseOnAnyXHR=Tạm dừng trên bất kỳ URL nào
+
+# LOCALIZATION NOTE (watchpoints.submenu): This is the text for the watchpoints sub-menu.
+
+# LOCALIZATION NOTE (watchpoints.getWatchpoint): This is the text that appears in the
+# watchpoints sub-menu to add a "get" watchpoint on an object property.
+
+# LOCALIZATION NOTE (watchpoints.setWatchpoint): This is the text that appears in the
+# watchpoints submenu to add a "set" watchpoint on an object property.
+
+# LOCALIZATION NOTE (watchpoints.getOrSetWatchpoint): This is the text that appears in the
+# watchpoints submenu to add a "set" watchpoint on an object property.
+
+# LOCALIZATION NOTE (watchpoints.removeWatchpoint): This is the text that appears in the
+# context menu to delete a watchpoint on an object property.
+
+# LOCALIZATION NOTE (watchpoints.removeWatchpointTooltip): This is the text that appears in the
+# tooltip to delete a watchpoint on an object property.
+
+# LOCALIZATION NOTE (sourceTabs.closeTab): Editor source tab context menu item
+# for closing the selected tab below the mouse.
+sourceTabs.closeTab=Đóng thẻ
+sourceTabs.closeTab.accesskey=n
+sourceTabs.closeTab.key=CmdOrCtrl+W
+
+# LOCALIZATION NOTE (sourceTabs.closeOtherTabs): Editor source tab context menu item
+# for closing the other tabs.
+sourceTabs.closeOtherTabs=Đóng các thẻ khác
+sourceTabs.closeOtherTabs.accesskey=k
+
+# LOCALIZATION NOTE (sourceTabs.closeTabsToEnd): Editor source tab context menu item
+# for closing the tabs to the end (the right for LTR languages) of the selected tab.
+sourceTabs.closeTabsToEnd=Đóng các thẻ ở bên phải
+sourceTabs.closeTabsToEnd.accesskey=p
+
+# LOCALIZATION NOTE (sourceTabs.closeAllTabs): Editor source tab context menu item
+# for closing all tabs.
+sourceTabs.closeAllTabs=Đóng tất cả các thẻ
+sourceTabs.closeAllTabs.accesskey=c
+
+# LOCALIZATION NOTE (sourceTabs.revealInTree): Editor source tab context menu item
+# for revealing source in tree.
+sourceTabs.revealInTree.accesskey=r
+
+# LOCALIZATION NOTE (sourceTabs.prettyPrint): Editor source tab context menu item
+# for pretty printing the source.
+sourceTabs.prettyPrint=In đẹp mã nguồn
+sourceTabs.prettyPrint.accesskey=p
+
+# LOCALIZATION NOTE (sourceFooter.blackbox): Tooltip text associated
+# with the blackbox button
+sourceFooter.blackbox=Blackbox nguồn
+
+# LOCALIZATION NOTE (sourceFooter.unblackbox): Tooltip text associated
+# with the blackbox button
+sourceFooter.unblackbox=Unblackbox nguồn
+
+# LOCALIZATION NOTE (blackboxContextItem.blackbox): Text associated
+# with the blackbox context menu item
+blackboxContextItem.blackbox=Blackbox nguồn
+blackboxContextItem.blackbox.accesskey=B
+
+# LOCALIZATION NOTE (blackboxContextItem.unblackbox): Text associated
+# with the unblackbox context menu item
+blackboxContextItem.unblackbox=Unblackbox nguồn
+blackboxContextItem.unblackbox.accesskey=U
+
+# LOCALIZATION NOTE (sourceFooter.ignores): Tooltip text associated
+# with the ignores button
+
+# LOCALIZATION NOTE (sourceFooter.unignore): Tooltip text associated
+# with the ignore button
+
+# LOCALIZATION NOTE (ignoreContextItem.ignore): Text associated
+# with the ignore context menu item
+
+# LOCALIZATION NOTE (ignoreContextItem.unignore): Text associated
+# with the unignore context menu item
+
+# LOCALIZATION NOTE (sourceFooter.mappedSource): Text associated
+# with a mapped source. %S is replaced by the source map origin.
+sourceFooter.mappedSource=(Từ %S)
+
+# LOCALIZATION NOTE (sourceFooter.mappedSourceTooltip): Tooltip text associated
+# with a mapped source. %S is replaced by the source map origin.
+sourceFooter.mappedSourceTooltip=(Nguồn được ánh xạ từ %S)
+
+# LOCALIZATION NOTE (sourceFooter.mappedSuffix): Text associated
+# with a mapped source. Displays next to URLs in tree and tabs.
+sourceFooter.mappedSuffix=(ánh xạ)
+
+# LOCALIZATION NOTE (sourceFooter.currentCursorPosition): Text associated
+# with the current cursor line and column
+sourceFooter.currentCursorPosition=(%1$S, %2$S)
+
+# LOCALIZATION NOTE (sourceFooter.currentCursorPosition.tooltip): Text associated
+# with the current cursor line and column
+sourceFooter.currentCursorPosition.tooltip=(Dòng %1$S, cột %2$S)
+
+# LOCALIZATION NOTE (sourceTabs.closeTabButtonTooltip): The tooltip that is displayed
+# for close tab button in source tabs.
+sourceTabs.closeTabButtonTooltip=Đóng thẻ
+
+# LOCALIZATION NOTE (scopes.header): Scopes right sidebar pane header.
+scopes.header=Phạm vi
+
+# LOCALIZATION NOTE (scopes.notAvailable): Scopes right sidebar pane message
+# for when the debugger is paused, but there isn't pause data.
+scopes.notAvailable=Phạm vi không có sẵn
+
+# LOCALIZATION NOTE (scopes.notPaused): Scopes right sidebar pane message
+# for when the debugger is not paused.
+scopes.notPaused=Không dừng lại
+
+# LOCALIZATION NOTE (scopes.mapping.label): Scopes right sidebar pane
+# tooltip for checkbox and label
+
+# LOCALIZATION NOTE (eventlisteners.log.label): Event listeners tooltip for
+# checkbox and label
+
+# LOCALIZATION NOTE (eventlisteners.log): Checkbox label for logging events
+eventlisteners.log=Nhật ký
+
+# LOCALIZATION NOTE (scopes.helpTooltip.label): Scopes right sidebar pane
+# icon tooltip for link to MDN
+
+# LOCALIZATION NOTE (scopes.map.label): Checkbox label to map scopes
+
+# LOCALIZATION NOTE (scopes.block): Refers to a block of code in
+# the scopes pane when the debugger is paused.
+scopes.block=Khối
+
+# LOCALIZATION NOTE (sources.header): Sources left sidebar header
+sources.header=Nguồn
+
+# LOCALIZATION NOTE (outline.header): Outline left sidebar header
+outline.header=Phác thảo
+
+# LOCALIZATION NOTE (outline.placeholder): Placeholder text for the filter input
+# element
+
+# LOCALIZATION NOTE (outline.sortLabel): Label for the sort button
+outline.sortLabel=Sắp xếp theo tên
+
+# LOCALIZATION NOTE (outline.noFunctions): Outline text when there are no functions to display
+outline.noFunctions=Không có hàm
+
+# LOCALIZATION NOTE (outline.noFileSelected): Outline text when there are no files selected
+outline.noFileSelected=Không có tập tin nào được chọn
+
+# LOCALIZATION NOTE (sources.search): Sources left sidebar prompt
+# e.g. Cmd+P to search. On a mac, we use the command unicode character.
+# On windows, it's ctrl.
+sources.search=Tìm với %S
+
+# LOCALIZATION NOTE (watchExpressions.header): Watch Expressions right sidebar
+# pane header.
+
+# LOCALIZATION NOTE (watchExpressions.refreshButton): Watch Expressions header
+# button for refreshing the expressions.
+watchExpressions.refreshButton=Làm mới
+
+# LOCALIZATION NOTE (welcome.search): The center pane welcome panel's
+# search prompt. e.g. cmd+p to search for files. On windows, it's ctrl, on
+# a mac we use the unicode character.
+welcome.search=%S để tìm kiếm nguồn
+
+# LOCALIZATION NOTE (welcome.search2): The center pane welcome panel's
+# search prompt. e.g. cmd+p to search for files. On windows, it's ctrl, on
+# a mac we use the unicode character.
+welcome.search2=%S Đi đến tập tin
+
+# LOCALIZATION NOTE (welcome.findInFiles): The center pane welcome panel's
+# search prompt. e.g. cmd+f to search for files. On windows, it's ctrl+shift+f, on
+# a mac we use the unicode character.
+welcome.findInFiles=%S để tìm trong tập tin
+
+# LOCALIZATION NOTE (welcome.findInFiles2): The center pane welcome panel's
+# search prompt. e.g. cmd+f to search for files. On windows, it's ctrl+shift+f, on
+# a mac we use the unicode character.
+welcome.findInFiles2=%S Tìm trong tập tin
+
+# LOCALIZATION NOTE (welcome.allShortcuts): The label to open the modal of
+# shortcuts, displayed in the welcome panel.
+welcome.allShortcuts=Hiển thị tất cả các phím tắt
+
+# LOCALIZATION NOTE (sourceSearch.search): The center pane Source Search
+# prompt for searching for files.
+sourceSearch.search=Tìm kiếm nguồn…
+
+# LOCALIZATION NOTE (sourceSearch.search2): The center pane Source Search
+# prompt for searching for files.
+sourceSearch.search2=Đi đến tập tin…
+
+# LOCALIZATION NOTE (pauseOnExceptions): The pause on exceptions button tooltip
+# when the debugger will pause on all exceptions.
+pauseOnExceptions=Tạm dừng trên tất cả các ngoại lệ. Nhấn vào đây để bỏ qua các ngoại lệ
+
+# LOCALIZATION NOTE (loadingText): The text that is displayed in the script
+# editor when the loading process has started but there is no file to display
+# yet.
+loadingText=Nạp…
+
+# LOCALIZATION NOTE (wasmIsNotAvailable): The text that is displayed in the
+# script editor when the WebAssembly source is not available.
+wasmIsNotAvailable=Vui lòng làm mới để gỡ lỗi mô-đun này
+
+# LOCALIZATION NOTE (errorLoadingText3): The text that is displayed in the debugger
+# viewer when there is an error loading a file
+errorLoadingText3=Lỗi khi tải URI này: %S
+
+# LOCALIZATION NOTE(gotoLineModal.placeholder): The placeholder
+# text displayed when the user searches for specific lines in a file
+gotoLineModal.placeholder=Chuyển đến dòng…
+
+# LOCALIZATION NOTE(gotoLineModal.title): The message shown to users
+# to open the go to line modal
+gotoLineModal.title=Đi đến dòng trong một tập tin
+
+# LOCALIZATION NOTE(gotoLineModal.key3): The shortcut for opening the
+# go to line modal
+# Do not localize "Ctrl+G", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+gotoLineModal.key3=Ctrl+G
+
+# LOCALIZATION NOTE(symbolSearch.search.functionsPlaceholder): The placeholder
+# text displayed when the user searches for functions in a file
+symbolSearch.search.functionsPlaceholder=Tìm kiếm hàm…
+symbolSearch.search.functionsPlaceholder.title=Tìm kiếm hàm trong tập tin
+
+# LOCALIZATION NOTE(symbolSearch.search.variablesPlaceholder): The placeholder
+# text displayed when the user searches for variables in a file
+symbolSearch.search.variablesPlaceholder=Tìm kiếm biến…
+symbolSearch.search.variablesPlaceholder.title=Tìm kiếm biến trong tập tin
+
+# LOCALIZATION NOTE(symbolSearch.search.key2): The Key Shortcut for
+# searching for a function or variable
+# Do not localize "CmdOrCtrl+Shift+O", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+symbolSearch.search.key2=CmdOrCtrl+Shift+O
+
+# LOCALIZATION NOTE(symbolSearch.searchModifier.modifiersLabel): A label
+# preceding the group of modifiers
+symbolSearch.searchModifier.modifiersLabel=Người chỉnh sửa:
+
+# LOCALIZATION NOTE(symbolSearch.searchModifier.regex): A search option
+# when searching text in a file
+symbolSearch.searchModifier.regex=Biểu thức chính quy
+
+# LOCALIZATION NOTE(symbolSearch.searchModifier.caseSensitive): A search option
+# when searching text in a file
+symbolSearch.searchModifier.caseSensitive=Phân biệt HOA-thường
+
+# LOCALIZATION NOTE(symbolSearch.searchModifier.wholeWord): A search option
+# when searching text in a file
+symbolSearch.searchModifier.wholeWord=Toàn bộ từ
+
+experimental=Đây là một tính năng thử nghiệm
+
+# LOCALIZATION NOTE (whyPaused.debuggerStatement): The text that is displayed
+# in a info block explaining how the debugger is currently paused due to a `debugger`
+# statement in the code
+
+# LOCALIZATION NOTE (whyPaused.breakpoint): The text that is displayed
+# in a info block explaining how the debugger is currently paused on a breakpoint
+
+# LOCALIZATION NOTE (whyPaused.eventBreakpoint): The text that is displayed
+# in a info block explaining how the debugger is currently paused on an event
+# breakpoint.
+
+# LOCALIZATION NOTE (whyPaused.exception): The text that is displayed
+# in a info block explaining how the debugger is currently paused on an exception
+
+# LOCALIZATION NOTE (whyPaused.mutationBreakpoint): The text that is displayed
+# in a info block explaining how the debugger is currently paused on a
+# DOM mutation breakpoint
+
+# LOCALIZATION NOTE (whyPaused.mutationBreakpointAdded): The text that
+# is displayed to describe an added node which triggers a subtree modification
+whyPaused.mutationBreakpointAdded=Đã thêm:
+
+# LOCALIZATION NOTE (whyPaused.mutationBreakpointRemoved): The text that
+# is displayed to describe a removed node which triggers a subtree modification
+whyPaused.mutationBreakpointRemoved=Đã xóa:
+
+# LOCALIZATION NOTE (whyPaused.interrupted): The text that is displayed
+# in a info block explaining how the debugger is currently paused at
+# a JS execution
+
+# LOCALIZATION NOTE (whyPaused.resumeLimit): The text that is displayed
+# in a info block explaining how the debugger is currently paused while stepping
+# in or out of the stack
+
+# LOCALIZATION NOTE (whyPaused.pauseOnDOMEvents): The text that is displayed
+# in a info block explaining how the debugger is currently paused on a
+# dom event
+
+# LOCALIZATION NOTE (whyPaused.breakpointConditionThrown): The text that is displayed
+# in an info block when evaluating a conditional breakpoint throws an error
+
+# LOCALIZATION NOTE (whyPaused.XHR): The text that is displayed
+# in a info block explaining how the debugger is currently paused on an
+# xml http request
+
+# LOCALIZATION NOTE (whyPaused.promiseRejection): The text that is displayed
+# in a info block explaining how the debugger is currently paused on a
+# promise rejection
+
+# LOCALIZATION NOTE (whyPaused.getWatchpoint): The text that is displayed
+# in a info block explaining how the debugger is currently paused at a
+# watchpoint on an object property
+
+# LOCALIZATION NOTE (whyPaused.setWatchpoint): The text that is displayed
+# in an info block explaining how the debugger is currently paused at a
+# watchpoint on an object property
+
+# LOCALIZATION NOTE (whyPaused.assert): The text that is displayed
+# in a info block explaining how the debugger is currently paused on an
+# assert
+
+# LOCALIZATION NOTE (whyPaused.debugCommand): The text that is displayed
+# in a info block explaining how the debugger is currently paused on a
+# debugger statement
+
+# LOCALIZATION NOTE (whyPaused.other): The text that is displayed
+# in a info block explaining how the debugger is currently paused on an event
+# listener breakpoint set
+
+# LOCALIZATION NOTE (ctrl): The text that is used for documenting
+# keyboard shortcuts that use the control key
+ctrl=Ctrl
+
+# LOCALIZATION NOTE (anonymousFunction): this string is used to display
+# JavaScript functions that have no given name - they are said to be
+# anonymous.
+anonymousFunction=<ẩn danh>
+
+# LOCALIZATION NOTE (stacktrace.asyncStack): this string is used to
+# indicate that a given stack frame has an async parent.
+# %S is the "Async Cause" of the frame.
+
+# LOCALIZATION NOTE (shortcuts.toggleBreakpoint): text describing
+# keyboard shortcut action for toggling breakpoint
+shortcuts.toggleBreakpoint=Bật/tắt điểm dừng
+shortcuts.toggleBreakpoint.accesskey=B
+
+# LOCALIZATION NOTE (shortcuts.toggleCondPanel.breakpoint): text describing
+# keyboard shortcut action for toggling conditional panel for breakpoints
+
+# LOCALIZATION NOTE (shortcuts.toggleCondPanel.logPoint): text describing
+# keyboard shortcut action for toggling conditional panel for log points
+
+# LOCALIZATION NOTE (shortcuts.pauseOrResume): text describing
+# keyboard shortcut action for pause of resume
+shortcuts.pauseOrResume=Tạm dừng/Tiếp tục
+
+# LOCALIZATION NOTE (shortcuts.stepOver): text describing
+# keyboard shortcut action for stepping over
+
+# LOCALIZATION NOTE (shortcuts.stepIn): text describing
+# keyboard shortcut action for stepping in
+
+# LOCALIZATION NOTE (shortcuts.stepOut): text describing
+# keyboard shortcut action for stepping out
+
+# LOCALIZATION NOTE (shortcuts.fileSearch): text describing
+# keyboard shortcut action for source file search
+
+# LOCALIZATION NOTE (shortcuts.fileSearch2): text describing
+# keyboard shortcut action for source file search
+shortcuts.fileSearch2=Đi đến tập tin
+
+# LOCALIZATION NOTE (shortcuts.gotoLine): text describing
+# keyboard shortcut for jumping to a specific line
+shortcuts.gotoLine=Đi tới dòng
+
+# LOCALIZATION NOTE (shortcuts.searchAgain): text describing
+# keyboard shortcut action for searching again
+shortcuts.searchAgain=Tìm kiếm lại
+
+# LOCALIZATION NOTE (shortcuts.searchAgain2): text describing
+# keyboard shortcut action for searching again
+shortcuts.searchAgain2=Tìm tiếp
+
+# LOCALIZATION NOTE (shortcuts.projectSearch): text describing
+# keyboard shortcut action for full project search
+shortcuts.projectSearch=Tìm kiếm toàn bộ dự án
+
+# LOCALIZATION NOTE (shortcuts.projectSearch2): text describing
+# keyboard shortcut action for full project search
+shortcuts.projectSearch2=Tìm trong tập tin
+
+# LOCALIZATION NOTE (shortcuts.functionSearch): text describing
+# keyboard shortcut action for function search
+shortcuts.functionSearch=Tìm kiếm hàm
+
+# LOCALIZATION NOTE (shortcuts.functionSearch2): text describing
+# keyboard shortcut action for function search
+shortcuts.functionSearch2=Tìm hàm
+
+# LOCALIZATION NOTE (shortcuts.buttonName): text describing
+# keyboard shortcut button text
+shortcuts.buttonName=Các phím tắt bàn phím
+
+# LOCALIZATION NOTE (variablesSeparatorLabel): The text that is displayed
+# in the variables list as a separator between the name and value.
+variablesSeparatorLabel=:
+variablesViewOptimizedOut=(tối ưu hóa)
+variablesViewUninitialized=(chưa được khởi tạo)
+variablesViewMissingArgs=(không có sẵn)
+
+# LOCALIZATION NOTE (variablesDomNodeValueTooltip): The text that is displayed
+# in a tooltip on the "open in inspector" button in the the variables list for a
+# DOMNode item.
+variablesDomNodeValueTooltip=Nhấp để chọn node trong trình kiểm tra
+
+# LOCALIZATION NOTE (variablesEditButtonTooltip): The text that is displayed
+# in the variables list on a getter or setter which can be edited.
+variablesEditButtonTooltip=Nhấn để thiết lập giá trị
+
+# LOCALIZATION NOTE (variablesViewErrorStacktrace): This is the text that is
+# shown before the stack trace in an error.
+
+# LOCALIZATION NOTE (variablesViewMoreObjects): the text that is displayed
+# when you have an object preview that does not show all of the elements. At the end of the list
+# you see "N more..." in the web console output.
+# This is a semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 number of remaining items in the object
+# example: 3 more…
+variablesViewMoreObjects=#1 cái nữa...
+
+# LOCALIZATION NOTE (variablesEditableNameTooltip): The text that is displayed
+# in the variables list on an item with an editable name.
+variablesEditableNameTooltip=Kích đúp để chỉnh sửa
+
+# LOCALIZATION NOTE (variablesEditableValueTooltip): The text that is displayed
+# in the variables list on an item with an editable value.
+variablesEditableValueTooltip=Nhấn để thay đổi giá trị
+
+# LOCALIZATION NOTE (variablesCloseButtonTooltip): The text that is displayed
+# in the variables list on an item which can be removed.
+variablesCloseButtonTooltip=Nhấn để xóa bỏ
+
+# LOCALIZATION NOTE (configurable|...|Tooltip): The text that is displayed
+# in the variables list on certain variables or properties as tooltips.
+# Explanations of what these represent can be found at the following links:
+# https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty
+# https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/isExtensible
+# https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/isFrozen
+# https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/isSealed
+# It's probably best to keep these in English.
+configurableTooltip=có thể cấu hình
+enumerableTooltip=có thể đếm
+writableTooltip=có thể ghi
+frozenTooltip=đóng băng
+sealedTooltip=niêm phong
+extensibleTooltip=mở rộng
+overriddenTooltip=ghi đè
+WebIDLTooltip=WebIDL
+
+# LOCALIZATION NOTE (serviceWorkerInfo.parsed): State displayed for a service
+# worker that has been parsed.
+# LOCALIZATION NOTE (serviceWorkerInfo.installing): State displayed for a
+# service worker that is being installed.
+serviceWorkerInfo.installing=đang cài đặt
+# LOCALIZATION NOTE (serviceWorkerInfo.installed): State displayed for a
+# service worker that has finished being installed.
+serviceWorkerInfo.installed=đã cài đặt
+# LOCALIZATION NOTE (serviceWorkerInfo.activating): State displayed for a
+# service worker that is being activated.
+serviceWorkerInfo.activating=đang kích hoạt
+# LOCALIZATION NOTE (serviceWorkerInfo.activated): State displayed for a
+# service worker that has finished being activated.
+serviceWorkerInfo.activated=đã kích hoạt
+# LOCALIZATION NOTE (serviceWorkerInfo.redundant): State displayed for a
+# service worker that is redundant.
+serviceWorkerInfo.redundant=dư thừa
+# LOCALIZATION NOTE (serviceWorkerInfo.unknown): State displayed for a
+# service worker that is in an unknown state.
+serviceWorkerInfo.unknown=không xác định
diff --git a/l10n-vi/devtools/client/device.properties b/l10n-vi/devtools/client/device.properties
new file mode 100644
index 0000000000..ecbe2a58ba
--- /dev/null
+++ b/l10n-vi/devtools/client/device.properties
@@ -0,0 +1,20 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside Device Emulation developer
+# tools. The correct localization of this file might be to keep it in English,
+# or another language commonly spoken among web developers. You want to make
+# that choice consistent across the developer tools. A good criteria is the
+# language in which you'd find the best documentation on web development on the
+# web.
+
+# LOCALIZATION NOTE:
+# These strings are category names in a list of devices that a user can choose
+# to simulate (e.g. "ZTE Open C", "VIA Vixen", "720p HD Television", etc).
+device.phones=Điện thoại
+device.tablets=Máy tính bảng
+device.laptops=Máy tính xách tay
+device.televisions=Ti vi
+device.consoles=Máy chơi game
+device.watches=Đồng hồ
diff --git a/l10n-vi/devtools/client/dom.properties b/l10n-vi/devtools/client/dom.properties
new file mode 100644
index 0000000000..45c5de5449
--- /dev/null
+++ b/l10n-vi/devtools/client/dom.properties
@@ -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/.
+
+# LOCALIZATION NOTE These strings are used inside the DOM panel
+# which is available from the Web Developer sub-menu -> 'DOM'.
+# 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 (dom.filterDOMPanel): A placeholder text used for
+# DOM panel search box.
+dom.filterDOMPanel=Bộ lọc bảng điều khiển DOM
+
+# LOCALIZATION NOTE (dom.refresh): A label for Refresh button in
+# DOM panel toolbar
+dom.refresh=Làm mới \ No newline at end of file
diff --git a/l10n-vi/devtools/client/filterwidget.properties b/l10n-vi/devtools/client/filterwidget.properties
new file mode 100644
index 0000000000..aded6d2a40
--- /dev/null
+++ b/l10n-vi/devtools/client/filterwidget.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 These strings are used in the CSS Filter Editor Widget
+# which can be found in a tooltip that appears in the Rule View when clicking
+# on a filter swatch displayed next to CSS declarations like 'filter: blur(2px)'.
+
+# LOCALIZATION NOTE (emptyFilterList):
+# This string is displayed when filter's list is empty
+# (no filter specified / all removed)
+emptyFilterList=Không chọn bộ lọc nào
+
+# LOCALIZATION NOTE (emptyPresetList):
+# This string is displayed when preset's list is empty
+emptyPresetList=Bạn không có bất kỳ cài đặt trước được lưu. \
+Bạn có thể lưu trữ các bộ lọc đặt trước bằng cách chọn tên và lưu chúng. \
+Các cài đặt trước có thể truy cập nhanh chóng và bạn có thể sử dụng lại chúng một cách dễ dàng.
+
+# LOCALIZATION NOTE (addUsingList):
+# This string is displayed under [emptyFilterList] when filter's
+# list is empty, guiding user to add a filter using the list below it
+addUsingList=Thêm một bộ lọc sử dụng danh sách bên dưới
+
+# LOCALIZATION NOTE (dropShadowPlaceholder):
+# This string is used as a placeholder for drop-shadow's input
+# in the filter list (shown when <input> is empty)
+dropShadowPlaceholder=x y bán-kính màu
+
+# LOCALIZATION NOTE (dragHandleTooltipText):
+# This string is used as a tooltip text (shown on mouse hover) on the
+# drag handles of filters which are used to re-order filters
+dragHandleTooltipText=Kéo lên hoặc xuống để sắp xếp lại bộ lọc
+
+# LOCALIZATION NOTE (labelDragTooltipText):
+# This string is used as a tooltip text (shown on mouse hover) on the
+# filters' labels which can be dragged left/right to increase/decrease
+# the filter's value (like photoshop)
+labelDragTooltipText=Kéo sang trái hoặc phải để giảm hoặc tăng giá trị
+
+# LOCALIZATION NOTE (filterListSelectPlaceholder):
+# This string is used as a preview option in the list of possible filters
+# <select>
+filterListSelectPlaceholder=Chọn một bộ lọc
+
+# LOCALIZATION NOTE (addNewFilterButton):
+# This string is displayed on a button used to add new filters
+addNewFilterButton=Thêm
+
+# LOCALIZATION NOTE (newPresetPlaceholder):
+# This string is used as a placeholder in the list of presets which is used to
+# save a new preset
+newPresetPlaceholder=Tên định sẵn
+
+# LOCALIZATION NOTE (savePresetButton):
+# This string is displayed on a button used to save a new preset
+savePresetButton=Lưu
+
+# LOCALIZATION NOTE(presetsToggleButton):
+# This string is used in a button which toggles the presets list
+presetsToggleButton=Cài đặt trước
diff --git a/l10n-vi/devtools/client/font-inspector.properties b/l10n-vi/devtools/client/font-inspector.properties
new file mode 100644
index 0000000000..84cdbde6ef
--- /dev/null
+++ b/l10n-vi/devtools/client/font-inspector.properties
@@ -0,0 +1,69 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 contains the Font Inspector strings.
+# The Font Inspector is a panel accessible in the Inspector sidebar.
+
+# LOCALIZATION NOTE (fontinspector.system) This label indicates that the font is a local
+# system font.
+fontinspector.system=hệ thống
+
+# LOCALIZATION NOTE (fontinspector.noFontsUsedOnCurrentElement): This label is shown when
+# no fonts were used on the selected element.
+fontinspector.noFontsUsedOnCurrentElement=Không có phông chữ được sử dụng trên các yếu tố hiện tại.
+
+# LOCALIZATION NOTE (fontinspector.copyURL): This is the text that appears in a tooltip
+# displayed when the user hovers over the copy icon next to the font URL.
+# Clicking the copy icon copies the full font URL to the user's clipboard
+fontinspector.copyURL=Sao chép URL
+
+# LOCALIZATION NOTE (fontinspector.customInstanceName): Think of instances as presets
+# (groups of settings that apply in bulk to a thing). Instances have names. When the user
+# creates a new instance, it doesn't have a name. This is the text that appears as the
+# default name for a new instance. It shows up in a dropdown from which users can select
+# between predefined instances and this custom instance.
+fontinspector.customInstanceName=Tùy chọn
+
+# LOCALIZATION NOTE (fontinspector.fontInstanceLabel): This label is shown next to the UI
+# in the font editor which allows a user to select a font instance option from a
+# dropdown. An instance is like a preset. A "font instance" is the term used by the font
+# authors to mean a group of predefined font settings.
+fontinspector.fontInstanceLabel=Thực thể
+
+# LOCALIZATION NOTE (fontinspector.fontSizeLabel): This label is shown next to the UI
+# in the font editor which allows the user to change the font size.
+fontinspector.fontSizeLabel=Kích thước
+
+# LOCALIZATION NOTE (fontinspector.fontWeightLabel): This label is shown next to the UI
+# in the font editor which allows the user to change the font weight.
+fontinspector.fontWeightLabel=Độ dày
+
+# LOCALIZATION NOTE (fontinspector.fontItalicLabel): This label is shown next to the UI
+# in the font editor which allows the user to change the style of the font to italic.
+fontinspector.fontItalicLabel=Nghiêng
+
+# LOCALIZATION NOTE (fontinspector.showMore): Label for a collapsed list of fonts.
+fontinspector.showMore=Xem thêm
+
+# LOCALIZATION NOTE (fontinspector.showLess): Label for an expanded list of fonts.
+fontinspector.showLess=Xem ít hơn
+
+# LOCALIZATION NOTE (fontinspector.letterSpacingLabel): Label for the UI to change the
+# letter spacing in the font editor.
+fontinspector.letterSpacingLabel=Khoảng cách
+
+# LOCALIZATION NOTE (fontinspector.lineHeightLabelCapitalized): Label for the UI to change the line height in the font editor.
+fontinspector.lineHeightLabelCapitalized=Chiều cao giữa các dòng
+
+# LOCALIZATION NOTE (fontinspector.allFontsOnPageHeader): Header for the section listing
+# all the fonts on the current page.
+fontinspector.allFontsOnPageHeader=Tất cả các phông chữ trên trang
+
+# LOCALIZATION NOTE (fontinspector.fontsUsedLabel): Label for the Font Editor section
+# which shows the fonts used on the selected element.
+fontinspector.fontsUsedLabel=Phông chữ đã sử dụng
+
+# LOCALIZATION NOTE (fontinspector.previewTextPlaceholder): Placeholder for the input
+# where the user can type text to get a preview of it using a font.
+fontinspector.previewTextPlaceholder=Xem trước phông chữ
diff --git a/l10n-vi/devtools/client/graphs.properties b/l10n-vi/devtools/client/graphs.properties
new file mode 100644
index 0000000000..184e382a51
--- /dev/null
+++ b/l10n-vi/devtools/client/graphs.properties
@@ -0,0 +1,24 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside the Performance Tools
+# which is available from the Web Developer sub-menu -> 'Performance'.
+# 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. These strings
+# are specifically for marker names in the performance tool.
+
+# LOCALIZATION NOTE (graphs.label.average):
+# This string is displayed on graphs when showing an average.
+graphs.label.average=trung bình
+
+# LOCALIZATION NOTE (graphs.label.minimum):
+# This string is displayed on graphs when showing a minimum.
+graphs.label.minimum=nhỏ nhất
+
+# LOCALIZATION NOTE (graphs.label.maximum):
+# This string is displayed on graphs when showing a maximum.
+graphs.label.maximum=lớn nhất
diff --git a/l10n-vi/devtools/client/har.properties b/l10n-vi/devtools/client/har.properties
new file mode 100644
index 0000000000..46424fe221
--- /dev/null
+++ b/l10n-vi/devtools/client/har.properties
@@ -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/.
+
+# LOCALIZATION NOTE These strings are used inside the Network Monitor
+# which is available from the Web Developer sub-menu -> 'Network Monitor'.
+# 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 (har.responseBodyNotIncluded): A label used within
+# HAR file explaining that HTTP response bodies are not includes
+# in exported data.
+har.responseBodyNotIncluded=Không bao gồm phần body trong HTTP response.
+
+# LOCALIZATION NOTE (har.responseBodyNotIncluded): A label used within
+# HAR file explaining that HTTP request bodies are not includes
+# in exported data.
+har.requestBodyNotIncluded=Không bao gồm phần body trong HTTP request.
+
diff --git a/l10n-vi/devtools/client/inspector.properties b/l10n-vi/devtools/client/inspector.properties
new file mode 100644
index 0000000000..530246be55
--- /dev/null
+++ b/l10n-vi/devtools/client/inspector.properties
@@ -0,0 +1,540 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 Inspector
+# which is available from the Web Developer sub-menu -> 'Inspect'.
+#
+# 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.
+
+inspector.panelLabel.markupView=Chế độ xem đánh dấu
+
+# LOCALIZATION NOTE (markupView.more.showing)
+# When there are too many nodes to load at once, we will offer to
+# show all the nodes.
+markupView.more.showing=Một số node đã bị ẩn.
+
+# LOCALIZATION NOTE (markupView.more.showAll2): Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+markupView.more.showAll2=Hiển thị tất cả #1 node
+
+# LOCALIZATION NOTE (markupView.whitespaceOnly.label)
+# Used in the badge that appears when whitespace-only text nodes are displayed in the
+# inspector.
+markupView.whitespaceOnly.label=khoảng trắng
+
+# LOCALIZATION NOTE (markupView.whitespaceOnly)
+# Used in a tooltip that appears when the user hovers over whitespace-only text nodes in
+# the inspector. %S in the content will be replaced by the whitespace characters used in
+# the text node.
+markupView.whitespaceOnly=Node văn bản chỉ khoảng trắng: %S
+
+# LOCALIZATION NOTE (markupView.display.flex.tooltiptext2)
+# Used in a tooltip that appears when the user hovers over the display type button in
+# the markup view.
+
+# LOCALIZATION NOTE (markupView.display.inlineFlex.tooltiptext2)
+# Used in a tooltip that appears when the user hovers over the display type button in
+# the markup view.
+
+# LOCALIZATION NOTE (markupView.display.grid.tooltiptext2)
+# Used in a tooltip that appears when the user hovers over the display type button in
+# the markup view.
+
+# LOCALIZATION NOTE (markupView.display.inlineGrid.tooltiptext2)
+# Used in a tooltip that appears when the user hovers over the display type button in
+# the markup view.
+
+# LOCALIZATION NOTE (markupView.display.subgrid.tooltiptext)
+# Used in a tooltip that appears when the user hovers over the display type button in
+# the markup view.
+markupView.display.subgrid.tooltiptiptext=Phần tử này đưa ra nội dung của nó theo mô hình lưới nhưng trì hoãn định nghĩa của các hàng và/hoặc cột của nó vào thùng chứa lưới mẹ của nó.
+
+# LOCALIZATION NOTE (markupView.display.flowRoot.tooltiptext)
+# Used in a tooltip that appears when the user hovers over the display type button in
+# the markup view.
+markupView.display.flowRoot.tooltiptext=Phần tử này tạo ra một hộp phần tử khối thiết lập bối cảnh định dạng khối mới.
+
+# LOCALIZATION NOTE (markupView.display.contents.tooltiptext2)
+# Used in a tooltip that appears when the user hovers over the display type button in
+# the markup view.
+
+# LOCALIZATION NOTE (markupView.event.tooltiptext)
+# Used in a tooltip that appears when the user hovers over 'event' badge in
+# the markup view.
+markupView.event.tooltiptext=Xử lý sự kiện
+
+# LOCALIZATION NOTE (markupView.custom.tooltiptext)
+# Used in a tooltip that appears when the user hovers over 'custom' badge in
+# the markup view. Only displayed on custom elements with a shadow root attached.
+markupView.custom.tooltiptext=Hiển thị tùy chỉnh định nghĩa thành phần
+
+# LOCALIZATION NOTE (markupView.newAttribute.label)
+# This is used to speak the New Attribute button when editing a tag
+# and a screen reader user tabs to it. This string is not visible onscreen.
+markupView.newAttribute.label=Thuộc tính mới
+
+# LOCALIZATION NOTE (markupView.revealLink.tooltip)
+# Used as a tooltip for an icon in the markup view when displaying elements inserted in
+# <slot> nodes in a custom component. When clicking on the icon, the corresponding
+# non-slotted container will be selected
+markupView.revealLink.tooltip=Tiết lộ
+
+#LOCALIZATION NOTE: Used in the image preview tooltip when the image could not be loaded
+previewTooltip.image.brokenImage=Không thể tải hình ảnh
+
+# LOCALIZATION NOTE: Used in color picker tooltip when the eyedropper is disabled for
+# non-HTML documents
+eyedropper.disabled.title=Không có sẵn trong các tài liệu không phải HTML
+
+#LOCALIZATION NOTE: Used in the event tooltip to allow the debugger to be opened
+eventsTooltip.openInDebugger=Mở trong trình gỡ lỗi
+
+#LOCALIZATION NOTE: Used in the event tooltip when a script's filename cannot be detected
+eventsTooltip.unknownLocation=Vị trí không rõ
+
+#LOCALIZATION NOTE: Used in the mouseover tooltip when hovering "Unknown location."
+eventsTooltip.unknownLocationExplanation=Vị trí ban đầu của người nghe này không thể được phát hiện. Có thể mã được dịch bởi một tiện ích như Babel.
+
+#LOCALIZATION NOTE: Used in the tooltip for Bubbling
+
+#LOCALIZATION NOTE: Used in the tooltip for Capturing
+eventsTooltip.Capturing=Đang chụp
+
+# LOCALIZATION NOTE (allTabsMenuButton.tooltip): The tooltip that gets
+# displayed when hovering over the tabs overflow button.
+allTabsMenuButton.tooltip=Hiện tất cả các thẻ
+
+# LOCALIZATION NOTE (inspector.showThreePaneMode): This is the tooltip for the button
+# that toggles on the 3 pane inspector mode.
+inspector.showThreePaneMode=Bật trình kiểm tra 3 ngăn
+
+# LOCALIZATION NOTE (inspector.hideThreePaneMode): This is the tooltip for the button
+# that toggles off the 3 pane inspector mode.
+inspector.hideThreePaneMode=Tắt trình kiểm tra 3 ngăn
+
+# LOCALIZATION NOTE (inspector.searchResultsCount2): This is the label that
+# will show up next to the inspector search box. %1$S is the current result
+# index and %2$S is the total number of search results. For example: "3 of 9".
+# This won't be visible until the search box is updated in Bug 835896.
+inspector.searchResultsCount2=%1$S trên %2$S
+
+# LOCALIZATION NOTE (inspector.searchResultsNone): This is the label that
+# will show up next to the inspector search box when no matches were found
+# for the given string.
+# This won't be visible until the search box is updated in Bug 835896.
+inspector.searchResultsNone=Không tìm thấy chuỗi phù hợp
+
+# LOCALIZATION NOTE (inspector.menu.openUrlInNewTab.label): This is the label of
+# a menu item in the inspector contextual-menu that appears when the user right-
+# clicks on the attribute of a node in the inspector that is a URL, and that
+# allows to open that URL in a new tab.
+inspector.menu.openUrlInNewTab.label=Mở liên kết trong thẻ mới
+
+# LOCALIZATION NOTE (inspector.menu.copyUrlToClipboard.label): This is the label
+# of a menu item in the inspector contextual-menu that appears when the user
+# right-clicks on the attribute of a node in the inspector that is a URL, and
+# that allows to copy that URL in the clipboard.
+inspector.menu.copyUrlToClipboard.label=Sao chép địa chỉ liên kết
+
+# LOCALIZATION NOTE (inspector.menu.selectElement.label): This is the label of a
+# menu item in the inspector contextual-menu that appears when the user right-
+# clicks on the attribute of a node in the inspector that is the ID of another
+# element in the DOM (like with <label for="input-id">), and that allows to
+# select that element in the inspector.
+inspector.menu.selectElement.label=Chọn phần tử #%S
+
+# LOCALIZATION NOTE (inspectorEditAttribute.label): This is the label of a
+# sub-menu "Attribute" in the inspector contextual-menu that appears
+# when the user right-clicks on the node in the inspector, and that allows
+# to edit an attribute on this node.
+inspectorEditAttribute.label=Chỉnh sửa thuộc tính "%S"
+inspectorEditAttribute.accesskey=E
+
+# LOCALIZATION NOTE (inspectorRemoveAttribute.label): This is the label of a
+# sub-menu "Attribute" in the inspector contextual-menu that appears
+# when the user right-clicks on the attribute of a node in the inspector,
+# and that allows to remove this attribute.
+inspectorRemoveAttribute.label=Xóa thuộc tính "%S"
+inspectorRemoveAttribute.accesskey=R
+
+# LOCALIZATION NOTE (inspectorCopyAttributeValue.label): This is the label of a
+# sub-menu "Attribute" in the inspector contextual-menu that appears
+# when the user right-clicks on the attribute of a node in the inspector,
+# and that allows to copy the attribute value to clipboard.
+inspectorCopyAttributeValue.label=Sao chép thuộc tính “%S”
+inspectorCopyAttributeValue.accesskey=V
+
+# LOCALIZATION NOTE (inspector.nodePreview.highlightNodeLabel):
+# This string is displayed in a tooltip that is shown when hovering over a the
+# inspector icon displayed next to a DOM node preview (e.g. next to something
+# like "div#foo.bar").
+# DOM node previews can be displayed in places like the animation-inspector, the
+# console or the object inspector.
+# The tooltip invites the user to click on the icon in order to highlight the
+# node in the page.
+inspector.nodePreview.highlightNodeLabel=Nhấn vào đây để tô sáng node này trong trang
+
+# LOCALIZATION NOTE (inspectorHTMLEdit.label): This is the label shown
+# in the inspector contextual-menu for the item that lets users edit the
+# (outer) HTML of the current node
+inspectorHTMLEdit.label=Chỉnh sửa dưới dạng HTML
+inspectorHTMLEdit.accesskey=E
+
+# LOCALIZATION NOTE (inspectorCopyInnerHTML.label): This is the label shown
+# in the inspector contextual-menu for the item that lets users copy the
+# inner HTML of the current node
+inspectorCopyInnerHTML.label=HTML bên trong
+inspectorCopyInnerHTML.accesskey=I
+
+# LOCALIZATION NOTE (inspectorCopyOuterHTML.label): This is the label shown
+# in the inspector contextual-menu for the item that lets users copy the
+# outer HTML of the current node
+inspectorCopyOuterHTML.label=HTML bên ngoài
+inspectorCopyOuterHTML.accesskey=O
+
+# LOCALIZATION NOTE (inspectorCopyCSSSelector.label): This is the label
+# shown in the inspector contextual-menu for the item that lets users copy
+# the CSS Selector of the current node
+inspectorCopyCSSSelector.label=Bộ chọn CSS
+inspectorCopyCSSSelector.accesskey=S
+
+# LOCALIZATION NOTE (inspectorCopyCSSPath.label): This is the label
+# shown in the inspector contextual-menu for the item that lets users copy
+# the full CSS path of the current node
+inspectorCopyCSSPath.label=Đường dẫn CSS
+inspectorCopyCSSPath.accesskey=P
+
+# LOCALIZATION NOTE (inspectorCopyXPath.label): This is the label
+# shown in the inspector contextual-menu for the item that lets users copy
+# the XPath of the current node
+inspectorCopyXPath.label=XPath
+inspectorCopyXPath.accesskey=X
+
+# LOCALIZATION NOTE (inspectorPasteOuterHTML.label): This is the label shown
+# in the inspector contextual-menu for the item that lets users paste outer
+# HTML in the current node
+inspectorPasteOuterHTML.label=HTML bên ngoài
+inspectorPasteOuterHTML.accesskey=O
+
+# LOCALIZATION NOTE (inspectorPasteInnerHTML.label): This is the label shown
+# in the inspector contextual-menu for the item that lets users paste inner
+# HTML in the current node
+inspectorPasteInnerHTML.label=HTML bên trong
+inspectorPasteInnerHTML.accesskey=I
+
+# LOCALIZATION NOTE (inspectorHTMLPasteBefore.label): This is the label shown
+# in the inspector contextual-menu for the item that lets users paste
+# the HTML before the current node
+inspectorHTMLPasteBefore.label=Ở trước
+inspectorHTMLPasteBefore.accesskey=B
+
+# LOCALIZATION NOTE (inspectorHTMLPasteAfter.label): This is the label shown
+# in the inspector contextual-menu for the item that lets users paste
+# the HTML after the current node
+inspectorHTMLPasteAfter.label=Ở sau
+inspectorHTMLPasteAfter.accesskey=A
+
+# LOCALIZATION NOTE (inspectorHTMLPasteFirstChild.label): This is the label
+# shown in the inspector contextual-menu for the item that lets users paste
+# the HTML as the first child the current node
+inspectorHTMLPasteFirstChild.accesskey=F
+
+# LOCALIZATION NOTE (inspectorHTMLPasteLastChild.label): This is the label
+# shown in the inspector contextual-menu for the item that lets users paste
+# the HTML as the last child the current node
+inspectorHTMLPasteLastChild.accesskey=L
+
+# LOCALIZATION NOTE (inspectorScrollNodeIntoView.label): This is the label
+# shown in the inspector contextual-menu for the item that lets users scroll
+# the current node into view
+inspectorScrollNodeIntoView.label=Cuộn đến vị trí của phần tử này
+inspectorScrollNodeIntoView.accesskey=S
+
+# LOCALIZATION NOTE (inspectorHTMLDelete.label): This is the label shown in
+# the inspector contextual-menu for the item that lets users delete the
+# current node
+inspectorHTMLDelete.label=Xóa node
+inspectorHTMLDelete.accesskey=D
+
+# LOCALIZATION NOTE (inspectorAttributesSubmenu.label): This is the label
+# shown in the inspector contextual-menu for the sub-menu of the other
+# attribute items, which allow to:
+# - add new attribute
+# - edit attribute
+# - remove attribute
+inspectorAttributesSubmenu.label=Thuộc tính
+inspectorAttributesSubmenu.accesskey=A
+
+# LOCALIZATION NOTE (inspectorAddAttribute.label): This is the label shown in
+# the inspector contextual-menu for the item that lets users add attribute
+# to current node
+inspectorAddAttribute.label=Thêm thuộc tính
+inspectorAddAttribute.accesskey=A
+
+# LOCALIZATION NOTE (inspectorPseudoClassSubmenu.label): This is the label
+# shown in the inspector contextual-menu for the sub-menu of the pseudo-classes.
+
+# LOCALIZATION NOTE (inspectorBreakpointSubmenu.label): This is the label
+# shown in the inspector contextual-menu for the sub-menu of the DOM breakpoints.
+inspectorBreakpointSubmenu.label=Ngắt trên…
+
+# LOCALIZATION NOTE (inspectorSubtreeModification.label): This is the label shown
+# in the inspector contextual-menu for the item that lets users add a DOM breakpoint
+# for subtree modification.
+
+# LOCALIZATION NOTE (inspectorAttributeModification.label): This is the label shown
+# in the inspector contextual-menu for the item that lets users add a DOM breakpoint
+# for attribute modification.
+
+# LOCALIZATION NOTE (inspectorNodeRemoval.label): This is the label shown
+# in the inspector contextual-menu for the item that lets users add a DOM breakpoint
+# for node removal.
+inspectorNodeRemoval.label=Loại bỏ node
+
+# LOCALIZATION NOTE (inspectorSearchHTML.label3): This is the label that is
+# shown as the placeholder for the markup view search in the inspector.
+inspectorSearchHTML.label3=Tìm kiếm HTML
+
+# LOCALIZATION NOTE (inspectorImageDataUri.label): This is the label
+# shown in the inspector contextual-menu for the item that lets users copy
+# the URL embedding the image data encoded in Base 64 (what we name
+# here Image Data URL). For more information:
+# https://developer.mozilla.org/en-US/docs/Web/HTTP/data_URIs
+inspectorImageDataUri.label=URL dữ liệu hình ảnh
+
+# LOCALIZATION NOTE (inspectorShowDOMProperties.label): This is the label
+# shown in the inspector contextual-menu for the item that lets users see
+# the DOM properties of the current node. When triggered, this item
+# opens the split Console and displays the properties in its side panel.
+inspectorShowDOMProperties.label=Hiện thuộc tính DOM
+
+# LOCALIZATION NOTE (inspectorShowAccessibilityProperties.label): This is the
+# label shown in the inspector contextual-menu for the item that lets users see
+# the accessibility tree and accessibility properties of the current node.
+# When triggered, this item opens accessibility panel and selects an accessible
+# object for the given node.
+inspectorShowAccessibilityProperties.label=Hiển thị thuộc tính trợ năng
+
+# LOCALIZATION NOTE (inspectorUseInConsole.label): This is the label
+# shown in the inspector contextual-menu for the item that outputs a
+# variable for the current node to the console. When triggered,
+# this item opens the split Console.
+inspectorUseInConsole.label=Sử dụng trong bảng điều khiển
+
+# LOCALIZATION NOTE (inspectorExpandNode.label): This is the label
+# shown in the inspector contextual-menu for recursively expanding
+# mark-up elements
+inspectorExpandNode.label=Mở rộng tất cả
+
+# LOCALIZATION NOTE (inspectorCollapseAll.label): This is the label
+# shown in the inspector contextual-menu for recursively collapsing
+# mark-up elements
+inspectorCollapseAll.label=Thu gọn tất cả
+
+# LOCALIZATION NOTE (inspectorScreenshotNode.label): This is the label
+# shown in the inspector contextual-menu for the item that lets users take
+# a screenshot of the currently selected node.
+inspectorScreenshotNode.label=Chụp ảnh màn hình node
+
+# LOCALIZATION NOTE (inspectorDuplicateNode.label): This is the label
+# shown in the inspector contextual-menu for the item that lets users
+# duplicate the currently selected node.
+inspectorDuplicateNode.label=Nhân đôi node
+
+# LOCALIZATION NOTE (inspectorAddNode.label): This is the label shown in
+# the inspector toolbar for the button that lets users add elements to the
+# DOM (as children of the currently selected element).
+inspectorAddNode.label=Tạo node mới
+inspectorAddNode.accesskey=C
+
+# LOCALIZATION NOTE (inspectorCopyHTMLSubmenu.label): This is the label
+# shown in the inspector contextual-menu for the sub-menu of the other
+# copy items, which allow to:
+# - Copy Inner HTML
+# - Copy Outer HTML
+# - Copy Unique selector
+# - Copy Image data URI
+inspectorCopyHTMLSubmenu.label=Sao chép
+
+# LOCALIZATION NOTE (inspectorPasteHTMLSubmenu.label): This is the label
+# shown in the inspector contextual-menu for the sub-menu of the other
+# paste items, which allow to:
+# - Paste Inner HTML
+# - Paste Outer HTML
+# - Before
+# - After
+# - As First Child
+# - As Last Child
+inspectorPasteHTMLSubmenu.label=Dán
+
+# LOCALIZATION NOTE (inspectorCustomElementDefinition.label): This is the label
+# shown in the inspector contextual-menu for custom elements to which a shadow root has
+# been attached. Clicking on the menu item will open the Debugger on the custom element
+# definition location.
+inspectorCustomElementDefinition.label=Hiển thị phần tử tùy chỉnh
+
+# LOCALIZATION NOTE (inspector.searchHTML.key):
+# Key shortcut used to focus the DOM element search box on top-right corner of
+# the markup view
+inspector.searchHTML.key=CmdOrCtrl+F
+
+# LOCALIZATION NOTE (markupView.hide.key):
+# Key shortcut used to hide the selected node in the markup view.
+markupView.hide.key=h
+
+# LOCALIZATION NOTE (markupView.edit.key):
+# Key shortcut used to hide the selected node in the markup view.
+markupView.edit.key=F2
+
+# LOCALIZATION NOTE (markupView.scrollInto.key):
+# Key shortcut used to scroll the webpage in order to ensure the selected node
+# is visible
+markupView.scrollInto.key=s
+
+# LOCALIZATION NOTE (inspector.sidebar.fontInspectorTitle):
+# This is the title shown in a tab in the side panel of the Inspector panel
+# that corresponds to the tool displaying the list of fonts used in the page.
+inspector.sidebar.fontInspectorTitle=Phông chữ
+
+# LOCALIZATION NOTE (inspector.sidebar.changesViewTitle):
+# Title of the Changes sidebar tab shown in the Inspector panel. The Changes panel shows
+# style changes made using DevTools.
+inspector.sidebar.changesViewTitle=Thay đổi
+
+# LOCALIZATION NOTE (inspector.sidebar.ruleViewTitle):
+# This is the title shown in a tab in the side panel of the Inspector panel
+# that corresponds to the tool displaying the list of CSS rules used
+# in the page.
+inspector.sidebar.ruleViewTitle=Quy tắc
+
+# LOCALIZATION NOTE (inspector.sidebar.computedViewTitle):
+# This is the title shown in a tab in the side panel of the Inspector panel
+# that corresponds to the tool displaying the list of computed CSS values
+# used in the page.
+inspector.sidebar.computedViewTitle=Tính toán
+
+# LOCALIZATION NOTE (inspector.sidebar.layoutViewTitle2):
+# This is the title shown in a tab in the side panel of the Inspector panel
+# that corresponds to the tool displaying layout information defined in the page.
+inspector.sidebar.layoutViewTitle2=Bố cục
+
+# LOCALIZATION NOTE (inspector.sidebar.animationInspectorTitle):
+# This is the title shown in a tab in the side panel of the Inspector panel
+# that corresponds to the tool displaying animations defined in the page.
+inspector.sidebar.animationInspectorTitle=Hoạt hình
+
+# LOCALIZATION NOTE (inspector.sidebar.compatibilityViewTitle):
+# This is the title shown in a tab in the side panel of the Inspector panel
+# that corresponds to the tool displaying web compatibility information about the page.
+
+# LOCALIZATION NOTE (inspector.eyedropper.label): A string displayed as the tooltip of
+# a button in the inspector which toggles the Eyedropper tool
+inspector.eyedropper.label=Lấy một màu từ trang
+
+# LOCALIZATION NOTE (inspector.breadcrumbs.label): A string visible only to a screen reader and
+# is used to label (using aria-label attribute) a container for inspector breadcrumbs
+inspector.breadcrumbs.label=Đánh dấu đường dẫn
+
+# LOCALIZATION NOTE (inspector.browserStyles.label): This is the label for the checkbox
+# that specifies whether the styles that are not from the user's stylesheet should be
+# displayed or not.
+inspector.browserStyles.label=Mẫu trình duyệt
+
+# LOCALIZATION NOTE (inspector.filterStyles.placeholder): This is the placeholder that
+# goes in the search box when no search term has been entered.
+inspector.filterStyles.placeholder=Lọc kiểu
+
+# LOCALIZATION NOTE (inspector.addRule.tooltip): This is the tooltip shown when
+# hovering the `Add new rule` button in the rules view toolbar. This should
+# match ruleView.contextmenu.addNewRule in styleinspector.properties
+inspector.addRule.tooltip=Thêm quy tắc mới
+
+# LOCALIZATION NOTE (inspector.togglePseudo.tooltip): This is the tooltip
+# shown when hovering over the `Toggle Pseudo Class Panel` button in the
+# rule view toolbar.
+inspector.togglePseudo.tooltip=Bật/tắt các lớp giả
+
+# LOCALIZATION NOTE (inspector.classPanel.toggleClass.tooltip): This is the tooltip
+# shown when hovering over the `Toggle Class Panel` button in the
+# rule view toolbar.
+inspector.classPanel.toggleClass.tooltip=Bật/tắt lớp
+
+# LOCALIZATION NOTE (inspector.classPanel.newClass.placeholder): This is the placeholder
+# shown inside the text field used to add a new class in the rule-view.
+inspector.classPanel.newClass.placeholder=Thêm lớp mới
+
+# LOCALIZATION NOTE (inspector.classPanel.noClasses): This is the text displayed in the
+# class panel when the current element has no classes applied.
+inspector.classPanel.noClasses=Không có lớp về phần tử này
+
+# LOCALIZATION NOTE (inspector.noProperties): In the case where there are no CSS
+# properties to display e.g. due to search criteria this message is
+# displayed.
+inspector.noProperties=Không tìm thấy đặc tính CSS.
+
+# LOCALIZATION NOTE (inspector.printSimulation.tooltip):
+# This is the tooltip of the print simulation button in the Rule View toolbar
+# that toggles print simulation.
+inspector.printSimulation.tooltip = Chuyển đổi mô phỏng phương tiện in cho trang
+
+# LOCALIZATION NOTE (inspector.colorSchemeSimulation.tooltip):
+# This is the tooltip of the color scheme simulation button in the Rule View
+# toolbar that toggles color scheme simulation.
+
+# LOCALIZATION NOTE (markupView.scrollableBadge.label): This is the text displayed inside a
+# badge, in the inspector, next to nodes that are scrollable in the page.
+markupView.scrollableBadge.label=scroll
+
+# LOCALIZATION NOTE (markupView.scrollableBadge.tooltip): This is the tooltip that is displayed
+# when hovering over badges next to scrollable elements in the inspector.
+markupView.scrollableBadge.tooltip=Phần tử này có nội dung có thể cuộn.
+
+# LOCALIZATION NOTE (markupView.scrollableBadge.interactive.tooltip): This is the tooltip that is displayed
+# when hovering over interactive badges next to scrollable elements in the inspector.
+
+# LOCALIZATION NOTE (markupView.overflowBadge.label): This is the text displayed inside a
+# badge, in the inspector, next to nodes that are causing overflow in other elements.
+markupView.overflowBadge.label=overflow
+
+# LOCALIZATION NOTE (markupView.overflowBadge.tooltip): This is the tooltip that is displayed
+# when hovering over badges next to overflow causing elements in the inspector.
+
+# LOCALIZATION NOTE (rulePreviewTooltip.noAssociatedRule): This is the text displayed inside
+# the RulePreviewTooltip when a rule cannot be found for a CSS property declaration.
+rulePreviewTooltip.noAssociatedRule=Không có quy tắc liên quan
+
+# LOCALIZATION NOTE (colorPickerTooltip.contrastAgainstBgTitle): A title text for the
+# contrast ratio value description that labels the background the color contrast ratio is calculated
+# against, used together with the actual background color. %S in the content will be replaced by a
+# span (containing bg color swatch) and textNode (containing bg color hex string) at run time
+
+# LOCALIZATION NOTE (colorPickerTooltip.spectrumDraggerTitle): A title text for the
+# spectrum dragger panel in the color picker tooltip.
+
+# LOCALIZATION NOTE (colorPickerTooltip.eyedropperTitle): A title text for the
+# eyedropper in the color picker tooltip.
+colorPickerTooltip.eyedropperTitle=Chọn màu trên trang
+
+# LOCALIZATION NOTE (colorPickerTooltip.colorNameTitle): A title text for the
+# closest color name shown in the color picker tooltip, used together with the actual color.
+# %S in the content will be replaced by the color name the current color is closest to.
+colorPickerTooltip.colorNameTitle=Gần nhất với: %S
+
+# LOCALIZATION NOTE (colorPickerTooltip.hueSliderTitle): A title text for the
+# hue slider in the color picker tooltip.
+colorPickerTooltip.hueSliderTitle=Tông màu
+
+# LOCALIZATION NOTE (colorPickerTooltip.alphaSliderTitle): A title text for the
+# alpha slider in the color picker tooltip.
+colorPickerTooltip.alphaSliderTitle=Độ mờ
+
+# LOCALIZATION NOTE (colorPickerTooltip.contrast.large.title): A title text for the color
+# contrast ratio description in the color picker tooltip, used together with the specification
+# that the color contrast criteria used is for large text. %S in the content will be replaced by a
+# large text indicator span at run time.
+colorPickerTooltip.contrast.large.title=Độ tương phản %S:
diff --git a/l10n-vi/devtools/client/jit-optimizations.properties b/l10n-vi/devtools/client/jit-optimizations.properties
new file mode 100644
index 0000000000..86d9afdf05
--- /dev/null
+++ b/l10n-vi/devtools/client/jit-optimizations.properties
@@ -0,0 +1,35 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 within the JIT tools
+# in the Performance Tools which is available from the Web Developer
+# sub-menu -> 'Performance' 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 (jit.title):
+# This string is displayed in the header of the JIT Optimizations view.
+jit.title=Tối ưu hóa JIT
+
+# LOCALIZATION NOTE (jit.optimizationFailure):
+# This string is displayed in a tooltip when no JIT optimizations were detected.
+jit.optimizationFailure=Tối ưu hóa bị lỗi
+
+# LOCALIZATION NOTE (jit.samples):
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# This string is displayed for the unit representing the number of times a
+# frame is sampled.
+# "#1" represents the number of samples
+# example: 30 samples
+jit.samples=#1 mẫu
+
+# LOCALIZATION NOTE (jit.types):
+# This string is displayed for the group of Ion Types in the optimizations view.
+jit.types=Kiểu
+
+# LOCALIZATION NOTE (jit.attempts):
+# This string is displayed for the group of optimization attempts in the optimizations view.
+jit.attempts=Lần thử
diff --git a/l10n-vi/devtools/client/jsonview.properties b/l10n-vi/devtools/client/jsonview.properties
new file mode 100644
index 0000000000..0a3bd3ec6b
--- /dev/null
+++ b/l10n-vi/devtools/client/jsonview.properties
@@ -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/.
+
+# LOCALIZATION NOTE These strings are used in the JSON View tool
+# that is used to inspect application/json document types loaded
+# in the browser.
+
+# LOCALIZATION NOTE 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 (jsonViewer.tab.JSON, jsonViewer.tab.RawData,
+# jsonViewer.tab.Headers): Label for a panel tab.
+jsonViewer.tab.JSON=JSON
+jsonViewer.tab.RawData=Dữ liệu thô
+jsonViewer.tab.Headers=Tiêu đề
+
+# LOCALIZATION NOTE (jsonViewer.responseHeaders, jsonViewer.requestHeaders):
+# Label for header groups within the 'Headers' panel.
+jsonViewer.responseHeaders=Tiêu đề phản hồi
+jsonViewer.requestHeaders=Tiêu đề yêu cầu
+
+# LOCALIZATION NOTE (jsonViewer.Save): Label for save command
+jsonViewer.Save=Lưu
+
+# LOCALIZATION NOTE (jsonViewer.Copy): Label for clipboard copy command
+jsonViewer.Copy=Sao chép
+
+# LOCALIZATION NOTE (jsonViewer.ExpandAll): Label for expanding all nodes
+jsonViewer.ExpandAll=Mở rộng tất cả
+
+jsonViewer.ExpandAllSlow=Mở rộng tất cả (chậm)
+
+# LOCALIZATION NOTE (jsonViewer.CollapseAll): Label for collapsing all nodes
+jsonViewer.CollapseAll=Thu gọn tất cả
+
+# LOCALIZATION NOTE (jsonViewer.PrettyPrint): Label for JSON
+# pretty print action button.
+jsonViewer.PrettyPrint=In đẹp
+
+# LOCALIZATION NOTE (jsonViewer.filterJSON): Label used in search box
+# at the top right cornder of the JSON Viewer.
+jsonViewer.filterJSON=Bộ lọc JSON
+
diff --git a/l10n-vi/devtools/client/layout.properties b/l10n-vi/devtools/client/layout.properties
new file mode 100644
index 0000000000..86bc6236e1
--- /dev/null
+++ b/l10n-vi/devtools/client/layout.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 This file contains the Layout Inspector strings.
+# The Layout Inspector is a panel accessible in the Inspector sidebar.
+
+# LOCALIZATION NOTE (flexbox.header): The accordion header for the Flexbox panel when
+# no flex container or item is selected.
+flexbox.header=Flexbox
+
+# LOCALIZATION NOTE (flexbox.backButtonLabel): The spoken label for the button
+# that returns from the display of a flex item to the flex item list.
+# This label is spoken by screen readers, not displayed on screen.
+flexbox.backButtonLabel=Quay lại với ngăn chứa Flex
+
+# LOCALIZATION (flexbox.flexContainer): The accordion header for the Flexbox panel
+# when a flex container is selected.
+flexbox.flexContainer=Ngăn chứa Flex
+
+# LOCALIZATION NOTE) (flexbox.flexItemOf): The accordion header for the Flexbox panel
+# when a flex item is selected. %s represents the flex container selector.
+flexbox.flexItemOf=Mục flex của %S
+
+# LOCALIZATION NOTE (flexbox.noFlexboxeOnThisPage): In the case where there are no CSS
+# flex containers to display.
+flexbox.noFlexboxeOnThisPage=Chọn một ngăn chứa Flex hoặc mục để tiếp tục.
+
+# LOCALIZATION NOTE (flexbox.flexItems): Header label displayed for the flex item list.
+flexbox.flexItems=Mục flex
+
+# LOCALIZATION NOTE (flexbox.noFlexItems): Label shown in the flex items list section if
+# there are no flex items for the flex container to display.
+flexbox.noFlexItems=Không có mục flex
+
+# LOCALIZATION NOTE (flexbox.itemSizing.baseSizeSectionHeader): Header label displayed
+# at the start of the flex item sizing Base Size section.
+flexbox.itemSizing.baseSizeSectionHeader=Kích thước cơ sở
+
+# LOCALIZATION NOTE (flexbox.itemSizing.flexibilitySectionHeader): Header label displayed
+# at the start of the flex item sizing Flexibility section.
+flexbox.itemSizing.flexibilitySectionHeader=Tính linh hoạt
+
+# LOCALIZATION NOTE (flexbox.itemSizing.minSizeSectionHeader): Header label displayed
+# at the start of the flex item sizing Minimum Size section.
+flexbox.itemSizing.minSizeSectionHeader=Kích thước nhỏ nhất
+
+# LOCALIZATION NOTE (flexbox.itemSizing.maxSizeSectionHeader): Header label displayed at
+# the start of the flex item sizing Maximum Size section.
+flexbox.itemSizing.maxSizeSectionHeader=Kích thước lớn nhất
+
+# LOCALIZATION NOTE (flexbox.itemSizing.finalSizeSectionHeader): Header label displayed at
+# the start of the flex item sizing Final Size section.
+flexbox.itemSizing.finalSizeSectionHeader=Kích thước cuối cùng
+
+# LOCALIZATION NOTE (flexbox.itemSizing.itemContentSize): Label shown in the flex item
+# sizing panel. It tells users that a given item’s base size was calculated from its
+# content size when unconstrained.
+flexbox.itemSizing.itemContentSize=Kích thước nội dung
+
+# LOCALIZATION NOTE (flexbox.itemSizing.clampedToMax): Label shown in the flexbox item
+# sizing panel. It tells users that a given item attempted to grow but ended up being
+# clamped to a smaller max size.
+# (Note that clamp is a common word in flexbox terminology. It refers to constraining an
+# item's size to some defined min/max-width/height set on the element, even though there
+# might have been room for it to grow, or reason for it to shrink more).
+flexbox.itemSizing.clampedToMax=Các mục đã được kẹp với kích thước lớn nhất của nó.
+
+# LOCALIZATION NOTE (flexbox.itemSizing.clampedToMin): Label shown in the flexbox item
+# sizing panel. It tells users that a given item attempted to grow but ended up being
+# clamped to a larger min size.
+# (Note that clamp is a common word in flexbox terminology. It refers to constraining an
+# item's size to some defined min/max-width/height set on the element, even though there
+# might have been room for it to grow, or reason for it to shrink more).
+flexbox.itemSizing.clampedToMin=Các mục đã được kẹp với kích thước nhỏ nhất của nó.
+
+# LOCALIZATION NOTE (flexbox.itemSizing.setToGrow): Label shown in the flex item sizing
+# panel. It tells users that a given item was set to grow.
+flexbox.itemSizing.setToGrow=Mục đã được thiết lập để phát triển.
+
+# LOCALIZATION NOTE (flexbox.itemSizing.setToShrink): Label shown in the flexbox item
+# sizing panel. It tells users that a given item was set to shrink.
+flexbox.itemSizing.setToShrink=Mục đã được thiết lập để thu nhỏ.
+
+# LOCALIZATION NOTE (flexbox.itemSizing.notSetToGrow): Label shown in the
+# flexbox item sizing panel. It tells users that a given item was not set to grow, even
+# though there might have been space on the flex line for it to grow.
+flexbox.itemSizing.notSetToGrow=Mục không được thiết lập để phát triển.
+
+# LOCALIZATION NOTE (flexbox.itemSizing.notSetToShrink): Label shown in the
+# flexbox item sizing panel. It tells users that a given item did not shrink even though
+# there might not have been enough space on the flex line for all items to fit.
+flexbox.itemSizing.notSetToShrink=Mục không được thiết lập để thu nhỏ.
+
+# LOCALIZATION NOTE (flexbox.togglesFlexboxHighlighter2): The tooltip text for the Flexbox
+# toggle button.
+flexbox.togglesFlexboxHighlighter2=Chuyển đến công cụ tô sáng Flexbox
+
+# LOCALIZATION NOTE (layout.cannotShowGridOutline, layout.cannotSHowGridOutline.title):
+# In the case where the grid outline cannot be effectively displayed.
+layout.cannotShowGridOutline=Không thể hiển thị phác thảo cho lưới này
+layout.cannotShowGridOutline.title=Phác thảo lưới đã chọn không thể phù hợp một cách hiệu quả bên trong bảng bố trí để có thể sử dụng được.
+
+# LOCALIZATION NOTE (layout.displayAreaNames): Label of the display area names setting
+# option in the CSS Grid panel.
+layout.displayAreaNames=Hiển thị tên vùng
+
+# LOCALIZATION NOTE (layout.displayLineNumbers): Label of the display line numbers
+# setting option in the CSS Grid panel.
+layout.displayLineNumbers=Hiển thị số thứ tự dòng
+
+# LOCALIZATION NOTE (layout.extendLinesInfinitely): Label of the extend lines
+# infinitely setting option in the CSS Grid panel.
+layout.extendLinesInfinitely=Mở rộng dòng vô hạn
+
+# LOCALIZATION NOTE (layout.header): The accordion header for the CSS Grid panel.
+layout.header=Lưới
+
+# LOCALIZATION NOTE (layout.gridDisplaySettings): The header for the grid display
+# settings container in the CSS Grid panel.
+layout.gridDisplaySettings=Cài đặt hiển thị lưới
+
+# LOCALIZATION NOTE (layout.noGridsOnThisPage): In the case where there are no CSS grid
+# containers to display.
+layout.noGridsOnThisPage=Lưới CSS không được sử dụng trên trang này
+
+# LOCALIZATION NOTE (layout.overlayGrid): Alternate header for the list of grid container
+# elements if only one item can be selected.
+layout.overlayGrid=Lớp phủ lưới
diff --git a/l10n-vi/devtools/client/markers.properties b/l10n-vi/devtools/client/markers.properties
new file mode 100644
index 0000000000..8768cd5b28
--- /dev/null
+++ b/l10n-vi/devtools/client/markers.properties
@@ -0,0 +1,119 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 Performance Tools
+# which is available from the Web Developer sub-menu -> 'Performance'.
+# 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. These strings
+# are specifically for marker names in the performance tool.
+
+# LOCALIZATION NOTE (marker.label.*):
+# These strings are displayed in the Performance Tool waterfall, identifying markers.
+# We want to use the same wording as Google Chrome when appropriate.
+marker.label.styles=Tính toán lại phong cách
+marker.label.stylesApplyChanges=Áp dụng các thay đổi phong cách
+marker.label.reflow=Bố cục
+marker.label.paint=Vẽ
+marker.label.composite=Các lớp hỗn hợp
+marker.label.compositeForwardTransaction=Yêu cầu tổng hợp đã gửi
+marker.label.javascript=Lượt gọi hàm
+marker.label.parseHTML=Phân tích HTML
+marker.label.parseXML=Phân tích XML
+marker.label.domevent=Sự kiện DOM
+marker.label.consoleTime=Bảng điều khiển
+marker.label.garbageCollection2=Bộ thu gom rác
+marker.label.garbageCollection.incremental=Incremental GC
+marker.label.cycleCollection.forgetSkippable=Giảm đồ thị CC
+marker.label.timestamp=Nhãn thời gian
+marker.label.worker=Worker
+marker.label.messagePort=MessagePort
+marker.label.unknown=Không rõ
+
+# LOCALIZATION NOTE (marker.label.javascript.*):
+# These strings are displayed as JavaScript markers that have special
+# reasons that can be translated.
+marker.label.javascript.scriptElement=Thẻ script
+marker.label.javascript.workerRunnable=Worker
+marker.label.javascript.jsURI=URI JavaScript
+marker.label.javascript.eventHandler=Xử lý sự kiện
+
+# LOCALIZATION NOTE (marker.field.*):
+# Strings used in the waterfall sidebar as property names.
+
+# General marker fields
+marker.field.start=Bắt đầu:
+marker.field.end=Kết thúc:
+marker.field.duration=Thời gian:
+
+# General "reason" for a marker (JavaScript, Garbage Collection)
+marker.field.causeName=Lý do:
+# General "type" for a marker (Cycle Collection, Garbage Collection)
+marker.field.type=Kiểu:
+# General "label" for a marker (user defined)
+marker.field.label=Nhãn:
+
+# Field names for stack values
+marker.field.stack=Ngăn xếp:
+marker.field.startStack=Ngăn xếp khi bắt đầu:
+marker.field.endStack=Ngăn xếp ở cuối:
+
+# %S is the "Async Cause" of a marker, and this signifies that the cause
+# was an asynchronous one in a displayed stack.
+marker.field.asyncStack=(ASync: %S)
+
+# For console.time markers
+marker.field.consoleTimerName=Tên hẹn giờ:
+
+# For DOM Event markers
+marker.field.DOMEventType=Loại sự kiện:
+marker.field.DOMEventPhase=Pha:
+
+# Non-incremental cause for a Garbage Collection marker
+
+# For "Recalculate Style" markers
+
+# The type of operation performed by a Worker.
+marker.worker.serializeDataOnMainThread=Nối tiếp dữ liệu trên luồng chính
+
+# The type of operation performed by a MessagePort
+marker.messagePort.serializeData=Nối tiếp dữ liệu
+marker.messagePort.deserializeData=Khử dữ liệu
+
+# Strings used in the waterfall sidebar as values.
+marker.value.unknownFrame=<không rõ vị trí>
+marker.value.DOMEventTargetPhase=Đích
+marker.value.DOMEventCapturingPhase=Chụp
+marker.value.DOMEventBubblingPhase=Bong bóng
+
+# LOCALIZATION NOTE (marker.gcreason.label.*):
+# These strings are used to give a concise but readable description of a GC reason.
+marker.gcreason.label.API=Lượt gọi API
+marker.gcreason.label.DESTROY_RUNTIME=Tắt
+marker.gcreason.label.LAST_DITCH=Hết bộ nhớ
+marker.gcreason.label.TOO_MUCH_MALLOC=Quá nhiều byte được phân bổ
+marker.gcreason.label.ALLOC_TRIGGER=Quá nhiều phân bổ
+marker.gcreason.label.DEBUG_GC=Gỡ lỗi GC
+marker.gcreason.label.COMPARTMENT_REVIVED=Sự ngưng trệ toàn cầu đã hồi phục
+marker.gcreason.label.RESET=Kết thúc chu kỳ tăng
+marker.gcreason.label.SHARED_MEMORY_LIMIT=Phân bổ lớn không thành công
+marker.gcreason.label.INCREMENTAL_TOO_SLOW=Tốc độ phân bổ quá nhanh
+marker.gcreason.label.COMPONENT_UTILS=Cu.forceGC
+marker.gcreason.label.MEM_PRESSURE=Gần hết bộ nhớ
+marker.gcreason.label.CC_WAITING=Bắt buộc bởi Bộ sưu tập Chu kỳ
+marker.gcreason.label.CC_FORCED=Bắt buộc bởi Bộ sưu tập Chu kỳ
+marker.gcreason.label.LOAD_END=Đã tải trang xong
+marker.gcreason.label.PAGE_HIDE=Đã chuyển sang nền
+marker.gcreason.label.NSJSCONTEXT_DESTROY=Phá hủy bối cảnh JS
+marker.gcreason.label.SET_NEW_DOCUMENT=Tài liệu mới
+marker.gcreason.label.SET_DOC_SHELL=Tài liệu mới
+marker.gcreason.label.DOM_UTILS=Lượt gọi API
+marker.gcreason.label.DOM_IPC=IPC
+marker.gcreason.label.SHUTDOWN_CC=Tắt
+marker.gcreason.label.DOM_WINDOW_UTILS=Người dùng không hoạt động
+marker.gcreason.label.USER_INACTIVE=Người dùng không hoạt động
+
+# The name of a nursery collection.
diff --git a/l10n-vi/devtools/client/memory.properties b/l10n-vi/devtools/client/memory.properties
new file mode 100644
index 0000000000..2d10f14f7c
--- /dev/null
+++ b/l10n-vi/devtools/client/memory.properties
@@ -0,0 +1,426 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 Memory Tools
+# which is available from the Web Developer sub-menu -> 'Memory'.
+# 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 (snapshot.io.save): The label for the link that saves a
+# snapshot to disk.
+snapshot.io.save=Lưu
+
+# LOCALIZATION NOTE (snapshot.io.delete): The label for the link that deletes
+# a snapshot
+snapshot.io.delete=Xóa
+
+# LOCALIZATION NOTE (snapshot.io.save.window): The title for the window
+# displayed when saving a snapshot to disk.
+snapshot.io.save.window=Lưu Snapshot
+
+# LOCALIZATION NOTE (snapshot.io.import.window): The title for the window
+# displayed when importing a snapshot form disk.
+snapshot.io.import.window=Nhập Snapshot
+
+# LOCALIZATION NOTE (snapshot.io.filter): The title for the filter used to
+# filter file types (*.fxsnapshot)
+snapshot.io.filter=Firefox Snapshots
+
+# LOCALIZATION NOTE (aggregate.mb): The label annotating the number of bytes (in
+# megabytes) in a snapshot. %S represents the value, rounded to 2 decimal
+# points.
+aggregate.mb=%S MB
+
+# LOCALIZATION NOTE (snapshot-title.loading): The title for a snapshot before
+# it has a creation time to display.
+snapshot-title.loading=Đang xử lý…
+
+# LOCALIZATION NOTE (checkbox.recordAllocationStacks): The label describing the
+# boolean checkbox whether or not to record call stacks.
+checkbox.recordAllocationStacks=Ghi lại
+
+# LOCALIZATION NOTE (checkbox.recordAllocationStacks.tooltip): The tooltip for
+# the label describing the boolean checkbox whether or not to record call
+# stacks.
+checkbox.recordAllocationStacks.tooltip=Chuyển đổi bản ghi của ngăn xếp cuộc gọi khi một đối tượng được phân bổ. Ảnh chụp nhanh sau đó sẽ có thể nhóm và gắn nhãn các đối tượng bằng các ngăn xếp lệnh gọi, nhưng chỉ với các đối tượng được tạo sau khi bật tùy chọn này. Bản ghi ngăn xếp lệnh gọi có ảnh hưởng đến hiệu suất.
+
+# LOCALIZATION NOTE (toolbar.displayBy): The label describing the select menu
+# options of the display options.
+toolbar.displayBy=Nhóm theo:
+
+# LOCALIZATION NOTE (toolbar.displayBy.tooltip): The tooltip for the label
+# describing the select menu options of the display options.
+toolbar.displayBy.tooltip=Thay đổi cách các đối tượng được nhóm
+
+# LOCALIZATION NOTE (toolbar.pop-view): The text in the button to go back to the
+# previous view.
+toolbar.pop-view=←
+
+# LOCALIZATION NOTE (toolbar.pop-view.label): The text for the label for the
+# button to go back to the previous view.
+toolbar.pop-view.label=Quay trở lại tổng hợp
+
+# LOCALIZATION NOTE (toolbar.viewing-individuals): The text letting the user
+# know that they are viewing individual nodes from a census group.
+toolbar.viewing-individuals=⁂ Xem các cá nhân trong nhóm
+
+# LOCALIZATION NOTE (censusDisplays.coarseType.tooltip): The tooltip for the
+# "coarse type" display option.
+censusDisplays.coarseType.tooltip=Nhóm các mục theo kiểu của chúng
+
+# LOCALIZATION NOTE (censusDisplays.allocationStack.tooltip): The tooltip for
+# the "call stack" display option.
+censusDisplays.allocationStack.tooltip=Các mục nhóm theo ngăn xếp JavaScript được ghi lại khi đối tượng được phân bổ
+
+# LOCALIZATION NOTE (censusDisplays.invertedAllocationStack.tooltip): The
+# tooltip for the "inverted call stack" display option.
+censusDisplays.invertedAllocationStack.tooltip=Các mục nhóm theo ngăn xếp lệnh gọi JavaScript đảo ngược được ghi lại khi đối tượng được tạo
+
+# LOCALIZATION NOTE (toolbar.labelBy): The label describing the select menu
+# options of the label options.
+toolbar.labelBy=Dán nhãn bởi:
+
+# LOCALIZATION NOTE (toolbar.labelBy.tooltip): The tooltip for the label describing the
+# select menu options of the label options.
+toolbar.labelBy.tooltip=Thay đổi cách các đối tượng được dán nhãn
+
+# LOCALIZATION NOTE (dominatorTreeDisplays.coarseType.tooltip): The tooltip for
+# the "coarse type" dominator tree display option.
+dominatorTreeDisplays.coarseType.tooltip=Dán nhãn các đối tượng theo các danh mục mà chúng phù hợp
+
+# LOCALIZATION NOTE (dominatorTreeDisplays.allocationStack.tooltip): The
+# tooltip for the "call stack" dominator tree display option.
+dominatorTreeDisplays.allocationStack.tooltip=Dán nhãn các đối tượng theo JavaScript stack được ghi lại khi nó được phân bổ
+
+# LOCALIZATION NOTE (treeMapDisplays.coarseType.tooltip): The tooltip for
+# the "coarse type" tree map display option.
+treeMapDisplays.coarseType.tooltip=Dán nhãn các đối tượng theo các danh mục mà chúng phù hợp
+
+# LOCALIZATION NOTE (toolbar.view): The label for the view selector in the
+# toolbar.
+toolbar.view=Xem:
+
+# LOCALIZATION NOTE (toolbar.view.tooltip): The tooltip for the label for the
+# view selector in the toolbar.
+toolbar.view.tooltip=Thay đổi cách hiển thị snapshot
+
+# LOCALIZATION NOTE (toolbar.view.census): The label for the census view option
+# in the toolbar.
+toolbar.view.census=Tổng hợp
+
+# LOCALIZATION NOTE (toolbar.view.census.tooltip): The tooltip for the label for
+# the census view option in the toolbar.
+toolbar.view.census.tooltip=Xem tóm tắt nội dung snapshot bằng cách tổng hợp các đối tượng thành các nhóm
+
+# LOCALIZATION NOTE (toolbar.view.dominators): The label for the dominators view
+# option in the toolbar.
+toolbar.view.dominators=Thống đốc
+
+# LOCALIZATION NOTE (toolbar.view.dominators.tooltip): The tooltip for the label
+# for the dominators view option in the toolbar.
+toolbar.view.dominators.tooltip=Xem cây thống trị và bề mặt các cấu trúc lớn nhất trong snapshot
+
+# LOCALIZATION NOTE (toolbar.view.treemap): The label for the tree map option
+# in the toolbar.
+toolbar.view.treemap=Bản đồ hình cây
+
+# LOCALIZATION NOTE (toolbar.view.treemap.tooltip): The tooltip for the label for
+# the tree map view option in the toolbar.
+toolbar.view.treemap.tooltip=Trực quan hóa việc sử dụng bộ nhớ: các khối lớn hơn chiếm tỷ lệ sử dụng bộ nhớ lớn hơn
+
+# LOCALIZATION NOTE (take-snapshot): The label describing the button that
+# initiates taking a snapshot, either as the main label, or a tooltip.
+take-snapshot=Tạo snapshot
+
+# LOCALIZATION NOTE (import-snapshot): The label describing the button that
+# initiates importing a snapshot.
+import-snapshot=Nhập…
+
+# LOCALIZATION NOTE (clear-snapshots.tooltip): The tooltip for the button that
+# deletes existing snapshot.
+clear-snapshots.tooltip=Xóa tất cả các snapshot
+
+# LOCALIZATION NOTE (diff-snapshots.tooltip): The tooltip for the button that
+# initiates selecting two snapshots to diff with each other.
+diff-snapshots.tooltip=So sánh các snapshot
+
+# LOCALIZATION NOTE (filter.placeholder): The placeholder text used for the
+# memory tool's filter search box.
+filter.placeholder=Bộ lọc
+
+# LOCALIZATION NOTE (filter.tooltip): The tooltip text used for the memory
+# tool's filter search box.
+filter.tooltip=Lọc nội dung của snapshot
+
+# LOCALIZATION NOTE (tree-item.view-individuals.tooltip): The tooltip for the
+# button to view individuals in this group.
+tree-item.view-individuals.tooltip=Xem các nút riêng lẻ trong nhóm này và các đường dẫn duy trì của chúng
+
+# LOCALIZATION NOTE (tree-item.load-more): The label for the links to fetch the
+# lazily loaded sub trees in the dominator tree view.
+tree-item.load-more=Xem thêm…
+
+# LOCALIZATION NOTE (tree-item.rootlist): The label for the root of the
+# dominator tree.
+tree-item.rootlist=GC Roots
+
+# LOCALIZATION NOTE (tree-item.nostack): The label describing the row in the heap tree
+# that represents a row broken down by call stack when no stack was available.
+tree-item.nostack=(không có stack có sẵn)
+
+# LOCALIZATION NOTE (tree-item.nofilename): The label describing the row in the
+# heap tree that represents a row broken down by filename when no filename was
+# available.
+tree-item.nofilename=(không có tên tập tin nào)
+
+# LOCALIZATION NOTE (tree-item.root): The label describing the row in the heap tree
+# that represents the root of the tree when inverted.
+tree-item.root=(gốc)
+
+# LOCALIZATION NOTE (tree-item.percent2): A percent of bytes or count displayed in the tree view.
+# there are two "%" after %S to escape and display "%"
+tree-item.percent2=%S%%
+
+# LOCALIZATION NOTE (diffing.baseline): The name of the baseline snapshot in a
+# diffing comparison.
+diffing.baseline=Baseline
+
+# LOCALIZATION NOTE (diffing.comparison): The name of the snapshot being
+# compared to the baseline in a diffing comparison.
+diffing.comparison=So sánh
+
+# LOCALIZATION NOTE (diffing.prompt.selectBaseline): The prompt to select the
+# first snapshot when doing a diffing comparison.
+diffing.prompt.selectBaseline=Chọn snapshot của baseline
+
+# LOCALIZATION NOTE (diffing.prompt.selectComparison): The prompt to select the
+# second snapshot when doing a diffing comparison.
+diffing.prompt.selectComparison=Chọn snapshot để so sánh với baseline
+
+# LOCALIZATION NOTE (diffing.state.error): The label describing the diffing
+# state ERROR, used in the snapshot list when an error occurs while diffing two
+# snapshots.
+diffing.state.error=Lỗi
+
+# LOCALIZATION NOTE (diffing.state.error.full): The text describing the diffing
+# state ERROR, used in the main view when an error occurs while diffing two
+# snapshots.
+diffing.state.error.full=Có lỗi trong khi so sánh snapshot.
+
+# LOCALIZATION NOTE (diffing.state.taking-diff): The label describing the diffin
+# state TAKING_DIFF, used in the snapshots list when computing the difference
+# between two snapshots.
+diffing.state.taking-diff=Đang tính toán sự khác biệt…
+
+# LOCALIZATION NOTE (diffing.state.taking-diff.full): The label describing the
+# diffing state TAKING_DIFF, used in the main view when computing the difference
+# between two snapshots.
+diffing.state.taking-diff.full=Đang tính toán sự khác biệt…
+
+# LOCALIZATION NOTE (diffing.state.selecting): The label describing the diffing
+# state SELECTING.
+diffing.state.selecting=Chọn hai snapshot để so sánh
+
+# LOCALIZATION NOTE (diffing.state.selecting.full): The label describing the
+# diffing state SELECTING, used in the main view when selecting snapshots to
+# diff.
+diffing.state.selecting.full=Chọn hai snapshot để so sánh
+
+# LOCALIZATION NOTE (dominatorTree.state.computing): The label describing the
+# dominator tree state COMPUTING.
+dominatorTree.state.computing=Đang tạo báo cáo dominator…
+
+# LOCALIZATION NOTE (dominatorTree.state.computing.full): The label describing the
+# dominator tree state COMPUTING, used in the dominator tree view.
+dominatorTree.state.computing.full=Đang tạo báo cáo dominator…
+
+# LOCALIZATION NOTE (dominatorTree.state.fetching): The label describing the
+# dominator tree state FETCHING.
+dominatorTree.state.fetching=Đang tính kích thước…
+
+# LOCALIZATION NOTE (dominatorTree.state.fetching.full): The label describing the
+# dominator tree state FETCHING, used in the dominator tree view.
+dominatorTree.state.fetching.full=Đang tính toán kích thước dominator còn giữ lại…
+
+# LOCALIZATION NOTE (dominatorTree.state.incrementalFetching): The label
+# describing the dominator tree state INCREMENTAL_FETCHING.
+dominatorTree.state.incrementalFetching=Đang lấy…
+
+# LOCALIZATION NOTE (dominatorTree.state.incrementalFetching.full): The label describing the
+# dominator tree state INCREMENTAL_FETCHING, used in the dominator tree view.
+dominatorTree.state.incrementalFetching.full=Đang lấy thêm…
+
+# LOCALIZATION NOTE (dominatorTree.state.error): The label describing the
+# dominator tree state ERROR.
+dominatorTree.state.error=Lỗi
+
+# LOCALIZATION NOTE (dominatorTree.state.error.full): The label describing the
+# dominator tree state ERROR, used in the dominator tree view.
+dominatorTree.state.error.full=Đã có một lỗi khi xử lý cây dominator
+
+# LOCALIZATION NOTE (snapshot.state.saving.full): The label describing the
+# snapshot state SAVING, used in the main heap view.
+snapshot.state.saving.full=Đang lưu ảnh chụp…
+
+# LOCALIZATION NOTE (snapshot.state.reading.full): The label describing the
+# snapshot state READING, and SAVED, due to these states being combined
+# visually, used in the main heap view.
+snapshot.state.reading.full=Đang đọc snapshot…
+
+# LOCALIZATION NOTE (snapshot.state.saving-census.full): The label describing
+# the snapshot state SAVING, used in the main heap view.
+snapshot.state.saving-census.full=Đang tạo báo cáo tổng hợp…
+
+# LOCALIZATION NOTE (snapshot.state.saving-tree-map.full): The label describing
+# the snapshot state SAVING, used in the main heap view.
+snapshot.state.saving-tree-map.full=Đang lưu bản đồ cây…
+
+# LOCALIZATION NOTE (snapshot.state.error.full): The label describing the
+# snapshot state ERROR, used in the main heap view.
+snapshot.state.error.full=Có lỗi khi xử lý snapshot này.
+
+# LOCALIZATION NOTE (individuals.state.error): The short message displayed when
+# there is an error fetching individuals from a group.
+individuals.state.error=Lỗi
+
+# LOCALIZATION NOTE (individuals.state.error.full): The longer message displayed
+# when there is an error fetching individuals from a group.
+individuals.state.error.full=Đã có một lỗi khi lấy các cá thể trong nhóm
+
+# LOCALIZATION NOTE (individuals.state.fetching): The short message displayed
+# while fetching individuals.
+individuals.state.fetching=Đang nạp…
+
+# LOCALIZATION NOTE (individuals.state.fetching.full): The longer message
+# displayed while fetching individuals.
+individuals.state.fetching.full=Đang nạp các cá nhân trong nhóm…
+
+# LOCALIZATION NOTE (individuals.field.node): The header label for an individual
+# node.
+individuals.field.node=Node
+
+# LOCALIZATION NOTE (individuals.field.node.tooltip): The tooltip for the header
+# label for an individual node.
+individuals.field.node.tooltip=Node cá nhân trong snapshot
+
+# LOCALIZATION NOTE (snapshot.state.saving): The label describing the snapshot
+# state SAVING, used in the snapshot list view
+snapshot.state.saving=Đang lưu snapshot…
+
+# LOCALIZATION NOTE (snapshot.state.importing): The label describing the
+# snapshot state IMPORTING, used in the snapshot list view
+snapshot.state.importing=Đang nhập snapshot…
+
+# LOCALIZATION NOTE (snapshot.state.reading): The label describing the snapshot
+# state READING, and SAVED, due to these states being combined visually, used in
+# the snapshot list view.
+snapshot.state.reading=Đang đọc snapshot…
+
+# LOCALIZATION NOTE (snapshot.state.saving-census): The label describing the
+# snapshot state SAVING, used in snapshot list view.
+snapshot.state.saving-census=Đang lưu báo cáo…
+
+# LOCALIZATION NOTE (snapshot.state.saving-census): The label describing the
+# snapshot state SAVING, used in snapshot list view.
+snapshot.state.saving-tree-map=Đang lưu bản đồ cây…
+
+# LOCALIZATION NOTE (snapshot.state.error): The label describing the snapshot
+# state ERROR, used in the snapshot list view.
+snapshot.state.error=Lỗi
+
+# LOCALIZATION NOTE (heapview.no-difference): Message displayed when there is no
+# difference between two snapshots.
+heapview.no-difference=Không có sự khác biệt giữa baseline và so sánh.
+
+# LOCALIZATION NOTE (heapview.none-match): Message displayed when there are no
+# matches when filtering.
+heapview.none-match=Không tìm thấy chuỗi giống.
+
+# LOCALIZATION NOTE (heapview.none-match): Message displayed when there report
+# is empty.
+heapview.empty=Trống.
+
+# LOCALIZATION NOTE (heapview.noAllocationStacks): The message displayed to
+# users when selecting a display by "call stack" but no call stacks
+# were recorded in the heap snapshot.
+heapview.noAllocationStacks=Không tìm thấy call stacks. Ghi lại call stacks trước khi tạo snapshot.
+
+# LOCALIZATION NOTE (heapview.field.retainedSize): The name of the column in the
+# dominator tree view for retained byte sizes.
+heapview.field.retainedSize=Kích thước giữ lại (Bytes)
+
+# LOCALIZATION NOTE (heapview.field.retainedSize.tooltip): The tooltip for the
+# column header in the dominator tree view for retained byte sizes.
+heapview.field.retainedSize.tooltip=Tổng kích thước của chính đối tượng và kích thước của tất cả các đối tượng khác được giữ bởi nó
+
+# LOCALIZATION NOTE (heapview.field.shallowSize): The name of the column in the
+# dominator tree view for shallow byte sizes.
+heapview.field.shallowSize=Kích thước nông (Bytes)
+
+# LOCALIZATION NOTE (heapview.field.shallowSize.tooltip): The tooltip for the
+# column header in the dominator tree view for shallow byte sizes.
+heapview.field.shallowSize.tooltip=Kích thước của chính đối tượng
+
+# LOCALIZATION NOTE (dominatortree.field.label): The name of the column in the
+# dominator tree for an object's label.
+dominatortree.field.label=Thống đốc
+
+# LOCALIZATION NOTE (dominatortree.field.label.tooltip): The tooltip for the column
+# header in the dominator tree view for an object's label.
+dominatortree.field.label.tooltip=Nhãn cho một đối tượng trong bộ nhớ
+
+# LOCALIZATION NOTE (heapview.field.bytes): The name of the column in the heap
+# view for bytes.
+heapview.field.bytes=Byte
+
+# LOCALIZATION NOTE (heapview.field.bytes.tooltip): The tooltip for the column
+# header in the heap view for bytes.
+heapview.field.bytes.tooltip=Số lượng byte được đưa lên bởi nhóm này, ngoại trừ các nhóm con
+
+# LOCALIZATION NOTE (heapview.field.count): The name of the column in the heap
+# view for count.
+heapview.field.count=Tổng số
+
+# LOCALIZATION NOTE (heapview.field.count.tooltip): The tooltip for the column
+# header in the heap view for count.
+heapview.field.count.tooltip=Số lượng đối tượng có thể tiếp cận trong nhóm này, ngoại trừ các nhóm con
+
+# LOCALIZATION NOTE (heapview.field.totalbytes): The name of the column in the
+# heap view for total bytes.
+heapview.field.totalbytes=Tổng số byte
+
+# LOCALIZATION NOTE (heapview.field.totalbytes.tooltip): The tooltip for the
+# column header in the heap view for total bytes.
+heapview.field.totalbytes.tooltip=Số lượng byte được đưa lên bởi nhóm này, bao gồm các nhóm con
+
+# LOCALIZATION NOTE (heapview.field.totalcount): The name of the column in the
+# heap view for total count.
+heapview.field.totalcount=Tổng cộng
+
+# LOCALIZATION NOTE (heapview.field.totalcount.tooltip): The tooltip for the
+# column header in the heap view for total count.
+heapview.field.totalcount.tooltip=Số lượng đối tượng có thể tiếp cận trong nhóm này, bao gồm các nhóm con
+
+# LOCALIZATION NOTE (heapview.field.name): The name of the column in the heap
+# view for name.
+heapview.field.name=Nhóm
+
+# LOCALIZATION NOTE (heapview.field.name.tooltip): The tooltip for the column
+# header in the heap view for name.
+heapview.field.name.tooltip=Tên của nhóm này
+
+# LOCALIZATION NOTE (shortest-paths.header): The header label for the shortest
+# paths pane.
+shortest-paths.header=Đường dẫn duy trì (từ Garbage Collector Roots)
+
+# LOCALIZATION NOTE (shortest-paths.select-node): The message displayed in the
+# shortest paths pane when a node is not yet selected.
+shortest-paths.select-node=Chọn một mục để xem các đường dẫn duy trì của nó
+
+# LOCALIZATION NOTE (tree-map.node-count): The label for the count value of a
+# node in the tree map
+tree-map.node-count=lần
diff --git a/l10n-vi/devtools/client/menus.properties b/l10n-vi/devtools/client/menus.properties
new file mode 100644
index 0000000000..398971879e
--- /dev/null
+++ b/l10n-vi/devtools/client/menus.properties
@@ -0,0 +1,35 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 (devtoolsRemoteDebugging.label): This is the label for the menu item
+# in Tools > Web Developer. Clicking on this menu item will open about:debugging which
+# acts as a hub for debugging remote devices.
+devtoolsRemoteDebugging.label = Trình gỡ lỗi từ xa
+devtoolsRemoteDebugging.accesskey = R
+
+browserConsoleCmd.label = Cửa sổ dòng lệnh của trình duyệt
+browserConsoleCmd.accesskey = B
+
+responsiveDesignMode.label = Chế độ thiết kế tương thích
+responsiveDesignMode.accesskey = R
+
+eyedropper.label = Lấy mẫu màu
+eyedropper.accesskey = Y
+
+# LOCALIZATION NOTE (browserToolboxMenu.label): This is the label for the
+# application menu item that opens the browser toolbox UI in the Tools menu.
+browserToolboxMenu.label = Hộp công cụ của trình duyệt
+browserToolboxMenu.accesskey = e
+
+# LOCALIZATION NOTE (browserContentToolboxMenu.label): This is the label for the
+# application menu item that opens the browser content toolbox UI in the Tools menu.
+# This toolbox allows to debug the chrome of the content process in multiprocess builds.
+browserContentToolboxMenu.label = Bộ công cụ nội dung trình duyệt
+browserContentToolboxMenu.accesskey = x
+
+devToolboxMenuItem.label = Mở công cụ dành cho nhà phát triển
+devToolboxMenuItem.accesskey = T
+
+getMoreDevtoolsCmd.label = Tải thêm công cụ
+getMoreDevtoolsCmd.accesskey = M
diff --git a/l10n-vi/devtools/client/netmonitor.properties b/l10n-vi/devtools/client/netmonitor.properties
new file mode 100644
index 0000000000..653c3d9873
--- /dev/null
+++ b/l10n-vi/devtools/client/netmonitor.properties
@@ -0,0 +1,1539 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 Network Monitor
+# which is available from the Web Developer sub-menu -> 'Network Monitor'.
+# 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 (netmonitor.security.state.secure)
+# This string is used as an tooltip for request that was performed over secure
+# channel i.e. the connection was encrypted.
+netmonitor.security.state.secure=Kết nối được sử dụng để lấy tài nguyên này an toàn.
+
+# LOCALIZATION NOTE (netmonitor.security.state.insecure)
+# This string is used as an tooltip for request that was performed over insecure
+# channel i.e. the connection was not https
+netmonitor.security.state.insecure=Kết nối được sử dụng để lấy tài nguyên này không an toàn.
+
+# LOCALIZATION NOTE (netmonitor.security.state.broken)
+# This string is used as an tooltip for request that failed due to security
+# issues.
+netmonitor.security.state.broken=Một lỗi bảo mật đã ngăn tài nguyên được tải.
+
+# LOCALIZATION NOTE (netmonitor.security.state.weak)
+# This string is used as an tooltip for request that had minor security issues
+netmonitor.security.state.weak=Tài nguyên này đã được chuyển qua một kết nối sử dụng mã hóa yếu.
+
+# LOCALIZATION NOTE (netmonitor.security.enabled):
+# This string is used to indicate that a specific security feature is used by
+# a connection in the security details tab.
+# For example: "HTTP Strict Transport Security: Enabled"
+netmonitor.security.enabled=Đã bật
+
+# LOCALIZATION NOTE (netmonitor.security.disabled):
+# This string is used to indicate that a specific security feature is not used by
+# a connection in the security details tab.
+# For example: "HTTP Strict Transport Security: Disabled"
+netmonitor.security.disabled=Đã tắt
+
+# LOCALIZATION NOTE (netmonitor.security.hostHeader):
+# This string is used as a header for section containing security information
+# related to the remote host. %S is replaced with the domain name of the remote
+# host. For example: Host example.com
+netmonitor.security.hostHeader=Máy chủ %S:
+
+# LOCALIZATION NOTE (netmonitor.security.notAvailable):
+# This string is used to indicate that a certain piece of information is not
+# available to be displayed. For example a certificate that has no organization
+# defined:
+# Organization: <Not Available>
+netmonitor.security.notAvailable=<Không sẵn sàng>
+
+# LOCALIZATION NOTE (collapseDetailsPane): This is the tooltip for the button
+# that collapses the network details pane in the UI.
+collapseDetailsPane=Ẩn chi tiết yêu cầu
+
+# LOCALIZATION NOTE (collapseActionPane): This is the tooltip for the button
+# that collapses the network action pane in the UI.
+collapseActionPane=Ẩn hành động mạng
+
+# LOCALIZATION NOTE (allTabsMenuButton.tooltip): The tooltip that gets
+# displayed when hovering over the tabs overflow button.
+allTabsMenuButton.tooltip=Hiện tất cả các thẻ
+
+# LOCALIZATION NOTE (headersEmptyText): This is the text displayed in the
+# headers tab of the network details pane when there are no headers available.
+headersEmptyText=Yêu cầu này không có header
+
+# LOCALIZATION NOTE (headersFilterText): This is the text displayed in the
+# headers tab of the network details pane for the filtering input.
+headersFilterText=Lọc header
+
+# LOCALIZATION NOTE (messagesEmptyText): This is the text displayed in the
+# WebSockets tab of the network details pane when there are no frames available.
+messagesEmptyText=Không có tin nhắn cho yêu cầu này
+
+# LOCALIZATION NOTE (cookiesEmptyText): This is the text displayed in the
+# cookies tab of the network details pane when there are no cookies available.
+cookiesEmptyText=Yêu cầu này không có cookie
+
+# LOCALIZATION NOTE (cookiesFilterText): This is the text displayed in the
+# cookies tab of the network details pane for the filtering input.
+cookiesFilterText=Lọc cookie
+
+# LOCALIZATION NOTE (responseEmptyText): This is the text displayed in the
+# response tab of the network details pane when the response is empty or not
+# available for shown.
+responseEmptyText=Không có dữ liệu phản hồi có sẵn cho yêu cầu này
+
+# LOCALIZATION NOTE (paramsEmptyText): This is the text displayed in the
+# request tab of the network details pane when there are no params available.
+paramsEmptyText=Yêu cầu này không có tham số
+
+# LOCALIZATION NOTE (paramsFilterText): This is the text displayed in the
+# request tab of the network details pane for the filtering input.
+paramsFilterText=Lọc tham số yêu cầu
+
+# LOCALIZATION NOTE (paramsQueryString): This is the label displayed
+# in the network details request tab identifying the query string.
+paramsQueryString=Chuỗi truy vấn
+
+# LOCALIZATION NOTE (paramsFormData): This is the label displayed
+# in the network details request tab identifying the form data.
+paramsFormData=Dữ liệu biểu mẫu
+
+# LOCALIZATION NOTE (paramsPostPayload): This is the label displayed
+# in the network details request tab identifying the request payload.
+paramsPostPayload=Payload yêu cầu
+
+# LOCALIZATION NOTE (requestHeaders): This is the label displayed
+# in the network details headers tab identifying the request headers.
+requestHeaders=Header yêu cầu
+
+# LOCALIZATION NOTE (requestHeadersFromUpload): This is the label displayed
+# in the network details headers tab identifying the request headers from
+# the upload stream of a POST request's body.
+requestHeadersFromUpload=Yêu cầu header từ luồng tải lên
+
+# LOCALIZATION NOTE (responseHeaders): This is the label displayed
+# in the network details headers tab identifying the response headers.
+responseHeaders=Phản hồi header
+
+# LOCALIZATION NOTE (requestCookies): This is the label displayed
+# in the network details request tab identifying the request cookies.
+requestCookies=Cookie yêu cầu
+
+# LOCALIZATION NOTE (responseCookies): This is the label displayed
+# in the network details request tab identifying the response cookies.
+responseCookies=Cookie phản hồi
+
+# LOCALIZATION NOTE (responsePayload): This is the label displayed
+# in the network details response tab identifying the response payload.
+responsePayload=Payload phản hồi
+
+# LOCALIZATION NOTE (jsonFilterText): This is the text displayed
+# in the response tab of the network details pane for the JSON filtering input.
+jsonFilterText=Lọc thuộc tính
+
+# LOCALIZATION NOTE (jsonScopeName): This is the text displayed
+# in the response tab of the network details pane for a JSON scope.
+jsonScopeName=JSON
+
+# LOCALIZATION NOTE (jsonpScopeName): This is the text displayed
+# in the response tab of the network details pane for a JSONP scope.
+jsonpScopeName=JSONP → callback %S()
+
+# LOCALIZATION NOTE (responseTruncated): This is the text displayed
+# in the response tab of the network details pane when the response is over
+# the truncation limit and thus was truncated.
+responseTruncated=Phản hồi đã bị cắt ngắn
+
+# LOCALIZATION NOTE (requestTruncated): This is the text displayed
+# in the request tab of the network details pane when the request is over
+# the truncation limit and thus was truncated.
+requestTruncated=Yêu cầu đã bị cắt ngắn
+
+# LOCALIZATION NOTE (responsePreview): This is the text displayed
+# in the response tab of the network details pane for an HTML preview.
+responsePreview=Xem trước
+
+# LOCALIZATION NOTE (networkMenu.raced): This is the label displayed
+# in the network menu specifying the transfer or a request is
+# raced. %S refers to the current transfer size.
+networkMenu.raced=%S (đã truyền)
+
+# LOCALIZATION NOTE (networkMenu.sortedAsc): This is the tooltip displayed
+# in the network table toolbar, for any column that is sorted ascending.
+networkMenu.sortedAsc=Đã sắp xếp tăng dần
+
+# LOCALIZATION NOTE (networkMenu.sortedDesc): This is the tooltip displayed
+# in the network table toolbar, for any column that is sorted descending.
+networkMenu.sortedDesc=Đã sắp xếp giảm dần
+
+# LOCALIZATION NOTE (networkMenu.summary.tooltip.perf): A tooltip explaining
+# what the perf button does
+networkMenu.summary.tooltip.perf=Bắt đầu phân tích hiệu suất
+
+# LOCALIZATION NOTE (networkMenu.summary.tooltip.domContentLoaded): A tooltip explaining
+# what the DOMContentLoaded label displays
+networkMenu.summary.tooltip.domContentLoaded=Thời gian khi xảy ra sự kiện “DOMContentLoad”
+
+# LOCALIZATION NOTE (networkMenu.summary.tooltip.load): A tooltip explaining
+# what the load label displays
+networkMenu.summary.tooltip.load=Thời gian khi xảy ra sự kiện “load”
+
+# LOCALIZATION NOTE (networkMenu.summary.requestsCount2): This label is displayed
+# in the network table footer providing the number of requests
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+networkMenu.summary.requestsCount2=#1 yêu cầu
+
+# LOCALIZATION NOTE (networkMenu.summary.requestsCountEmpty): This label is displayed
+# in the network table footer when there are no requests
+networkMenu.summary.requestsCountEmpty=Không có yêu cầu
+
+# LOCALIZATION NOTE (networkMenu.summary.tooltip.requestsCount): A tooltip explaining
+# what the requestsCount label displays
+networkMenu.summary.tooltip.requestsCount=Số lượng yêu cầu
+
+# LOCALIZATION NOTE (networkMenu.summary.transferred): This label is displayed
+# in the network table footer providing the transferred size.
+networkMenu.summary.transferred=Đã truyền %S / %S
+
+# LOCALIZATION NOTE (networkMenu.summary.tooltip.transferred): A tooltip explaining
+# what the transferred label displays
+networkMenu.summary.tooltip.transferred=Kích cỡ/kích cỡ truyền tải của tất cả các yêu cầu
+
+# LOCALIZATION NOTE (networkMenu.summary.finish): This label is displayed
+# in the network table footer providing the transfer time.
+networkMenu.summary.finish=Đã xong: %S
+
+# LOCALIZATION NOTE (networkMenu.summary.tooltip.finish): A tooltip explaining
+# what the finish label displays
+networkMenu.summary.tooltip.finish=Tổng thời gian cần thiết để tải tất cả các yêu cầu
+
+# LOCALIZATION NOTE (networkMenu.ws.summary.framesCount2): This label is displayed
+# in the messages table footer providing the number of frames
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+networkMenu.ws.summary.framesCount2=#1 tin nhắn
+
+# LOCALIZATION NOTE (networkMenu.ws.summary.framesCountEmpty): This label is displayed
+# in the messages table footer when there are no frames
+networkMenu.ws.summary.framesCountEmpty=Không có tin nhắn
+
+# LOCALIZATION NOTE (networkMenu.ws.summary.tooltip.framesCount): A tooltip explaining
+# what the framesCount label displays
+networkMenu.ws.summary.tooltip.framesCount=Số lượng tin nhắn
+
+# LOCALIZATION NOTE (networkMenu.ws.summary.tooltip.framesTotalSize): A tooltip explaining
+# what the framesTotalSize label displays
+networkMenu.ws.summary.tooltip.framesTotalSize=Tổng kích thước của các tin nhắn được hiển thị
+
+# LOCALIZATION NOTE (networkMenu.ws.summary.label.framesTranferredSize): A label showing
+# summary size info related to the current list of WS messages
+# %1$S is the total size of the transferred data, %2$S is the size of sent data, %3$S is the size of received data.
+networkMenu.ws.summary.label.framesTranferredSize=Tổng số %1$S, %2$S đã gửi, %3$S đã nhận
+
+# LOCALIZATION NOTE (networkMenu.ws.summary.tooltip.framesTotalTime): A tooltip explaining
+# what framesTotalTime displays
+networkMenu.ws.summary.tooltip.framesTotalTime=Tổng thời gian từ tin nhắn đầu tiên đến tin nhắn cuối cùng được hiển thị
+
+# LOCALIZATION NOTE (networkMenu.sizeB): This is the label displayed
+# in the network menu specifying the size of a request (in bytes).
+networkMenu.sizeB=%S B
+
+# LOCALIZATION NOTE (networkMenu.sizeKB): This is the label displayed
+# in the network menu specifying the size of a request (in kilobytes).
+networkMenu.sizeKB=%S KB
+
+# LOCALIZATION NOTE (networkMenu.sizeMB): This is the label displayed
+# in the network menu specifying the size of a request (in megabytes).
+networkMenu.sizeMB=%S MB
+
+# LOCALIZATION NOTE (networkMenu.sizeGB): This is the label displayed
+# in the network menu specifying the size of a request (in gigabytes).
+networkMenu.sizeGB=%S GB
+
+# LOCALIZATION NOTE (networkMenu.sizeUnavailable): This is the label displayed
+# in the network menu specifying the transferred size of a request is
+# unavailable.
+networkMenu.sizeUnavailable=—
+
+# LOCALIZATION NOTE (networkMenu.sizeUnavailable.title): This is the tooltip
+# displayed in the network menu specifying that the transferred size of a
+# request is unavailable.
+networkMenu.sizeUnavailable.title=Kích thước truyền tải không có sẵn
+
+# LOCALIZATION NOTE (networkMenu.sizeCached): This is the label displayed
+# in the network menu and the headers panel specifying the transfer or a request is
+# cached.
+networkMenu.sizeCached=đã lưu trữ
+
+# LOCALIZATION NOTE (networkMenu.sizeServiceWorker): This is the label displayed
+# in the network menu and the headers panel specifying the transferred of a request
+# computed by a service worker.
+networkMenu.sizeServiceWorker=service worker
+
+# LOCALIZATION NOTE (networkMenu.blocked2): This is a generic message for a
+# URL that has been blocked for an unknown reason
+networkMenu.blocked2=Đã chặn
+
+# LOCALIZATION NOTE (networkMenu.blockedby): This is a generic message for a
+# URL that has been blocked by an extension
+# %S is the extension name.
+networkMenu.blockedby=Bị chặn bởi %S
+
+# LOCALIZATION NOTE (networkMenu.blockedTooltip): This is a the text displayed
+# as a tooltip for the blocked icon in the request list
+networkMenu.blockedTooltip=Đã chặn
+
+# LOCALIZATION NOTE (networkMenu.totalMS2): This is the label displayed
+# in the network menu specifying the time for a request to finish (in milliseconds).
+networkMenu.totalMS2=%S ms
+
+# This string is used to concatenate tooltips (netmonitor.waterfall.tooltip.*)
+# in the requests waterfall for total time (in milliseconds). \\u0020 represents
+# a whitespace. You can replace this with a different character, e.g. an hyphen
+# or a period, if a comma doesn't work for your language.
+netmonitor.waterfall.tooltip.separator=,\u0020
+
+# LOCALIZATION NOTE (netmonitor.waterfall.tooltip.total): This is part of the tooltip
+# displayed in the requests waterfall for total time (in milliseconds).
+netmonitor.waterfall.tooltip.total=Tổng cộng %S ms
+
+# LOCALIZATION NOTE (netmonitor.waterfall.tooltip.blocked): This is part of the tooltip
+# displayed in the requests waterfall for blocked time (in milliseconds).
+netmonitor.waterfall.tooltip.blocked=Đã chặn %S ms
+
+# LOCALIZATION NOTE (netmonitor.waterfall.tooltip.dns): This is part of the tooltip
+# displayed in the requests waterfall for dns time (in milliseconds).
+netmonitor.waterfall.tooltip.dns=DNS %S ms
+
+# LOCALIZATION NOTE (netmonitor.waterfall.tooltip.ssl): This is part of the tooltip
+# displayed in the requests waterfall for tls setup time (in milliseconds).
+netmonitor.waterfall.tooltip.ssl=TLS %S ms
+
+# LOCALIZATION NOTE (netmonitor.waterfall.tooltip.connect): This is part of the tooltip
+# displayed in the requests waterfall for connect time (in milliseconds).
+netmonitor.waterfall.tooltip.connect=Kết nối %S ms
+
+# LOCALIZATION NOTE (netmonitor.waterfall.tooltip.send): This is part of the tooltip
+# displayed in the requests waterfall for send time (in milliseconds).
+netmonitor.waterfall.tooltip.send=Gửi %S ms
+
+# LOCALIZATION NOTE (netmonitor.waterfall.tooltip.wait): This is part of the tooltip
+# displayed in the requests waterfall for wait time (in milliseconds).
+netmonitor.waterfall.tooltip.wait=Chờ %S ms
+
+# LOCALIZATION NOTE (netmonitor.waterfall.tooltip.receive): This is part of the tooltip
+# displayed in the requests waterfall for receive time (in milliseiconds).
+netmonitor.waterfall.tooltip.receive=Nhận %S ms
+
+# LOCALIZATION NOTE (netmonitor.timings.requestTiming): This is the title of the existing
+# section in Timings side panel. This section contains request timings.
+netmonitor.timings.requestTiming=Thời gian gửi yêu cầu
+
+# LOCALIZATION NOTE (netmonitor.timings.serverTiming): This is the title of a new section
+# in Timings side panel. This section contains server timings transferred from the server
+# through the "Server-Timing" header.
+netmonitor.timings.serverTiming=Thời gian máy chủ
+
+# LOCALIZATION NOTE (netmonitor.timings.queuedAt): This is relative queued time to the
+# first request. %S is time expressed in milliseconds or minutes.
+netmonitor.timings.queuedAt=Hàng đợi: %S
+
+# LOCALIZATION NOTE (netmonitor.timings.startedAt): Relative to the first request,
+# when the request actually started. %S is time expressed in milliseconds or minutes.
+netmonitor.timings.startedAt=Bắt đầu: %S
+
+# LOCALIZATION NOTE (netmonitor.timings.downloadedAt): Relative to first request,
+# when the request actually finished downloading.
+# %S is time expressed in milliseconds or minutes.
+netmonitor.timings.downloadedAt=Đã tải xuống: %S
+
+# LOCALIZATION NOTE (netmonitor.timings.noTimings): Message that displays in the
+# timings pane when thea request has been blocked
+netmonitor.timings.noTimings=Không có thời gian cho yêu cầu này
+
+# LOCALIZATION NOTE (networkMenu.millisecond): This is the label displayed
+# in the network menu specifying timing interval divisions (in milliseconds).
+networkMenu.millisecond=%S ms
+
+# LOCALIZATION NOTE (networkMenu.second): This is the label displayed
+# in the network menu specifying timing interval divisions (in seconds).
+networkMenu.second=%S s
+
+# LOCALIZATION NOTE (networkMenu.minute): This is the label displayed
+# in the network menu specifying timing interval divisions (in minutes).
+networkMenu.minute=%S phút
+
+# LOCALIZATION NOTE (pieChart.loading): This is the label displayed
+# for pie charts (e.g., in the performance analysis view) when there is
+# no data available yet.
+pieChart.loading=Đang tải
+
+# LOCALIZATION NOTE (pieChart.unavailable): This is the label displayed
+# for pie charts (e.g., in the performance analysis view) when there is
+# no data available, even after loading it.
+pieChart.unavailable=Trống
+
+# LOCALIZATION NOTE (tableChart.loading): This is the label displayed
+# for table charts (e.g., in the performance analysis view) when there is
+# no data available yet.
+tableChart.loading=Vui lòng chờ…
+
+# LOCALIZATION NOTE (tableChart.unavailable): This is the label displayed
+# for table charts (e.g., in the performance analysis view) when there is
+# no data available, even after loading it.
+tableChart.unavailable=Không có dữ liệu
+
+# LOCALIZATION NOTE (charts.sizeKB): This is the label displayed
+# in pie or table charts specifying the size of a request (in kilobytes).
+charts.sizeKB=%S KB
+
+# LOCALIZATION NOTE (charts.transferredSizeKB): This is the label displayed
+# in pie or table charts specifying the size of a transferred request (in kilobytes).
+charts.transferredSizeKB=%S KB
+
+# LOCALIZATION NOTE (charts.totalS): This is the label displayed
+# in pie or table charts specifying the time for a request to finish (in seconds).
+charts.totalS=%S s
+
+# LOCALIZATION NOTE (charts.totalTransferredSize): This is the label displayed
+# in the performance analysis view for total transferred size, in kilobytes.
+charts.totalTransferredSize=Kích thước truyền tải: %S KB
+
+# LOCALIZATION NOTE (charts.cacheEnabled): This is the label displayed
+# in the performance analysis view for "cache enabled" charts.
+charts.cacheEnabled=Bộ nhớ đệm đã lưu trữ
+
+# LOCALIZATION NOTE (charts.cacheDisabled): This is the label displayed
+# in the performance analysis view for "cache disabled" charts.
+charts.cacheDisabled=Bộ nhớ đệm không lưu trữ
+
+# LOCALIZATION NOTE (charts.learnMore): This is the label displayed
+# in the performance analysis view, with a link to external documentation.
+charts.learnMore=Tìm hiểu thêm về phân tích hiệu suất
+
+# LOCALIZATION NOTE (charts.totalSize): This is the label displayed
+# in the performance analysis view for total requests size, in kilobytes.
+charts.totalSize=Kích thước: %S KB
+
+# LOCALIZATION NOTE (charts.totalSeconds): Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# This is the label displayed in the performance analysis view for the
+# total requests time, in seconds.
+charts.totalSeconds=Thời gian: #1 giây
+
+# LOCALIZATION NOTE (charts.totalSecondsNonBlocking): Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# This is the label displayed in the performance analysis view for the
+# total requests time (non-blocking), in seconds.
+charts.totalSecondsNonBlocking=Thời gian không bị chặn: #1 giây
+
+# LOCALIZATION NOTE (charts.totalCached): This is the label displayed
+# in the performance analysis view for total cached responses.
+charts.totalCached=Phản hồi lưu trong bộ nhớ đệm: %S
+
+# LOCALIZATION NOTE (charts.totalCount): This is the label displayed
+# in the performance analysis view for total requests.
+charts.totalCount=Tổng số yêu cầu: %S
+
+# LOCALIZATION NOTE (charts.size): This is the label displayed
+# in the header column in the performance analysis view for size of the request.
+charts.size=Kích cỡ
+
+# LOCALIZATION NOTE (charts.type): This is the label displayed
+# in the header column in the performance analysis view for type of request.
+charts.type=Kiểu
+
+# LOCALIZATION NOTE (charts.transferred): This is the label displayed
+# in the header column in the performance analysis view for transferred
+# size of the request.
+charts.transferred=Đã truyền tải
+
+# LOCALIZATION NOTE (charts.time): This is the label displayed
+# in the header column in the performance analysis view for time of request.
+charts.time=Thời gian
+
+# LOCALIZATION NOTE (charts.nonBlockingTime): This is the label displayed
+# in the header column in the performance analysis view for non blocking
+# time of request.
+charts.nonBlockingTime=Thời gian không bị chặn
+
+# LOCALIZATION NOTE (netRequest.originalFileURL.tooltip): This is the tooltip
+# displayed for the file's original URL value displayed in the file column of
+# a request.
+netRequest.originalFileURL.tooltip=Gốc: %S
+
+# LOCALIZATION NOTE (netRequest.decodedFileURL.tooltip): This is the tooltip
+# displayed for the file's decoded URL value displayed in the file column of
+# a request.
+netRequest.decodedFileURL.tooltip=Đã giải mã: %S
+
+# LOCALIZATION NOTE (certmgr.subjectinfo.label):
+# A label used for a certificate section in security tab.
+# This section displays Name and organization who has been assigned the fingerprints
+certmgr.subjectinfo.label=Cấp cho
+
+# LOCALIZATION NOTE (certmgr.certdetail.cn):
+# A label used for Issued To and Issued By sub-section in security tab
+certmgr.certdetail.cn=Tên thông thường (CN):
+
+# LOCALIZATION NOTE (certmgr.certdetail.o):
+# A label used for Issued To and Issued By sub-section in security tab
+certmgr.certdetail.o=Tổ chức (O):
+
+# LOCALIZATION NOTE (certmgr.certdetail.ou):
+# A label used for Issued To and Issued By sub-section in security tab
+certmgr.certdetail.ou=Đơn vị của tổ chức (OU):
+
+# LOCALIZATION NOTE (certmgr.issuerinfo.label):
+# A label used for a certificate section in security tab
+# This section displays Name and organization who issued the fingerprints
+certmgr.issuerinfo.label=Cấp bởi
+
+# LOCALIZATION NOTE (certmgr.periodofvalidity.label):
+# A label used for a certificate section in security tab
+# This section displays the valid period of this fingerprints
+certmgr.periodofvalidity.label=Thời gian hiệu lực
+
+# LOCALIZATION NOTE (certmgr.begins):
+# A label used for Period of Validity sub-section in security tab
+certmgr.begins=Bắt đầu vào:
+
+# LOCALIZATION NOTE (certmgr.expires):
+# A label used for Period of Validity sub-section in security tab
+certmgr.expires=Kết thúc vào:
+
+# LOCALIZATION NOTE (certmgr.fingerprints.label):
+# A label used for a certificate section in security tab
+# This section displays the valid period of this fingerprints
+certmgr.fingerprints.label=Mã vân tay
+
+# LOCALIZATION NOTE (certmgr.certdetail.sha256fingerprint):
+# A label used for Fingerprints sub-section in security tab
+certmgr.certdetail.sha256fingerprint=Mã vân tay SHA-256:
+
+# LOCALIZATION NOTE (certmgr.certdetail.sha1fingerprint):
+# A label used for Fingerprints sub-section in security tab
+certmgr.certdetail.sha1fingerprint=Mã vân tay SHA1:
+
+# LOCALIZATION NOTE (certmgr.certificateTransparency.label):
+# This string is used as a label in the security tab.
+certmgr.certificateTransparency.label=Minh bạch:
+
+# LOCALIZATION NOTE (certmgr.certificateTransparency.status.ok):
+# This string is used to indicate that there are valid signed certificate
+# timestamps. This is a property for the 'Transparency'
+# field in the security tab.
+certmgr.certificateTransparency.status.ok=Bản ghi SCT hợp lệ
+
+# LOCALIZATION NOTE (certmgr.certificateTransparency.status.notEnoughSCTS):
+# This string is used to indicate that there are not enough valid signed
+# certificate timestamps. This is a property for the 'Transparency'
+# field in the security tab.
+certmgr.certificateTransparency.status.notEnoughSCTS=Không đủ SCTs
+
+# LOCALIZATION NOTE (certmgr.certificateTransparency.status.notDiverseSCTS):
+# This string is used to indicate that there ar not enough diverse signed
+# certificate timestamps. This is a property for the 'Transparency'
+# field in the security tab.
+certmgr.certificateTransparency.status.notDiverseSCTS=SCTs không đa dạng
+
+# LOCALIZATION NOTE (netmonitor.perfNotice1/2/3): These are the labels displayed
+# in the network table when empty to start performance analysis.
+netmonitor.perfNotice1=• Nhấp vào
+netmonitor.perfNotice2=nút để bắt đầu phân tích hiệu suất.
+netmonitor.perfNotice3=Phân tích
+
+# LOCALIZATION NOTE (netmonitor.reload1/2/3): These are the labels displayed
+# in the network table when empty to start logging network requests.
+netmonitor.reloadNotice1=• Thực hiện một yêu cầu hoặc
+netmonitor.reloadNotice2=Tải lại
+netmonitor.reloadNotice3=trang để xem thông tin chi tiết về hoạt động mạng.
+
+# LOCALIZATION NOTE (netmonitor.toolbar.status3): This is the label displayed
+# in the network table toolbar, above the "status" column.
+netmonitor.toolbar.status3=Trạng thái
+
+# LOCALIZATION NOTE (netmonitor.toolbar.method): This is the label displayed
+# in the network table toolbar, above the "method" column.
+netmonitor.toolbar.method=Phương thức
+
+# LOCALIZATION NOTE (netmonitor.toolbar.file): This is the label displayed
+# in the network table toolbar, above the "file" column.
+netmonitor.toolbar.file=Tập tin
+
+# LOCALIZATION NOTE (netmonitor.toolbar.url): This is the label displayed
+# in the network table toolbar, above the "url" column.
+netmonitor.toolbar.url=URL
+
+# LOCALIZATION NOTE (netmonitor.toolbar.protocol): This is the label displayed
+# in the network table toolbar, above the "protocol" column.
+netmonitor.toolbar.protocol=Giao thức
+
+# LOCALIZATION NOTE (netmonitor.toolbar.domain): This is the label displayed
+# in the network table toolbar, above the "domain" column.
+netmonitor.toolbar.domain=Tên miền
+
+# LOCALIZATION NOTE (netmonitor.toolbar.remoteip): This is the label displayed
+# in the network table toolbar, above the "remoteip" column.
+netmonitor.toolbar.remoteip=IP từ xa
+
+# LOCALIZATION NOTE (netmonitor.toolbar.initiator): This is the label displayed
+# in the network table toolbar, above the "initiator" column.
+netmonitor.toolbar.initiator=Bộ khởi tạo
+
+# LOCALIZATION NOTE (netmonitor.toolbar.type): This is the label displayed
+# in the network table toolbar, above the "type" column.
+netmonitor.toolbar.type=Kiểu
+
+# LOCALIZATION NOTE (netmonitor.toolbar.cookies): This is the label displayed
+# in the network table toolbar, above the "cookies" column.
+netmonitor.toolbar.cookies=Cookie
+
+# LOCALIZATION NOTE (netmonitor.toolbar.setCookies): This is the label displayed
+# in the network table toolbar, above the "set cookies" column.
+# Set-Cookie is a HTTP response header. This string is the plural form of it.
+# See https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie
+netmonitor.toolbar.setCookies=Set-Cookies
+
+# LOCALIZATION NOTE (netmonitor.toolbar.scheme): This is the label displayed
+# in the network table toolbar, above the "scheme" column.
+netmonitor.toolbar.scheme=Kế hoạch
+
+# LOCALIZATION NOTE (netmonitor.toolbar.startTime): This is the label displayed
+# in the network table toolbar, above the "start time" column, which is the time
+# from start of 1st request until the start of this request.
+netmonitor.toolbar.startTime=Thời gian bắt đầu
+
+# LOCALIZATION NOTE (netmonitor.toolbar.endTime): This is the label displayed
+# in the network table toolbar, above the "end time" column, which is the time
+# from start of 1st request until the end of this response.
+netmonitor.toolbar.endTime=Thời gian kết thúc
+
+# LOCALIZATION NOTE (netmonitor.toolbar.responseTime): This is the label displayed
+# in the network table toolbar, above the "response time" column, which is the time
+# from start of 1st request until the beginning of download of this response.
+netmonitor.toolbar.responseTime=Thời gian đáp ứng
+
+# LOCALIZATION NOTE (netmonitor.toolbar.duration): This is the label displayed
+# in the network table toolbar, above the "duration" column, which is the time
+# from start of this request until the end of this response.
+netmonitor.toolbar.duration=Thời gian
+
+# LOCALIZATION NOTE (netmonitor.toolbar.latency): This is the label displayed
+# in the network table toolbar, above the "latency" column, which is the time
+# from end of this request until the beginning of download of this response.
+netmonitor.toolbar.latency=Độ trễ
+
+# LOCALIZATION NOTE (netmonitor.toolbar.transferred): This is the label displayed
+# in the network table toolbar, above the "transferred" column and in general
+# section of the headers panel, which is the compressed / encoded size.
+netmonitor.toolbar.transferred=Đã truyền tải
+
+# LOCALIZATION NOTE (netmonitor.toolbar.contentSize): This is the label displayed
+# in the network table toolbar, above the "size" column, which is the
+# uncompressed / decoded size.
+netmonitor.toolbar.contentSize=Kích cỡ
+
+# LOCALIZATION NOTE (netmonitor.toolbar.waterfall): This is the label displayed
+# in the network table toolbar, above the "waterfall" column.
+netmonitor.toolbar.waterfall=Dòng thời gian
+
+# LOCALIZATION NOTE (netmonitor.ws.toolbar.size): This is the label displayed
+# in the messages table header, above the "size" column.
+netmonitor.ws.toolbar.size=Kích thước
+
+# LOCALIZATION NOTE (netmonitor.ws.toolbar.data): This is the label displayed
+# in the messages table header, above the "data" column.
+netmonitor.ws.toolbar.data=Dữ liệu
+
+# LOCALIZATION NOTE (netmonitor.ws.toolbar.opCode): This is the label displayed
+# in the messages table header, above the "opCode" column.
+netmonitor.ws.toolbar.opCode=OpCode
+
+# LOCALIZATION NOTE (netmonitor.ws.toolbar.maskBit): This is the label displayed
+# in the messages table header, above the "maskBit" column.
+netmonitor.ws.toolbar.maskBit=MaskBit
+
+# LOCALIZATION NOTE (netmonitor.ws.toolbar.finBit): This is the label displayed
+# in the messages table header, above the "finBit" column.
+netmonitor.ws.toolbar.finBit=FinBit
+
+# LOCALIZATION NOTE (netmonitor.ws.toolbar.time): This is the label displayed
+# in the messages table header, above the "time" column.
+netmonitor.ws.toolbar.time=Thời gian
+
+# LOCALIZATION NOTE (netmonitor.ws.toolbar.eventName): This is the label displayed
+# in the messages table header, above the "eventName" column.
+netmonitor.ws.toolbar.eventName=Tên sự kiện
+
+# LOCALIZATION NOTE (netmonitor.ws.toolbar.retry): This is the label displayed
+# in the messages table header, above the "retry" column.
+netmonitor.ws.toolbar.retry=Thử lại
+
+# LOCALIZATION NOTE (netmonitor.ws.toolbar.lastEventId): This is the label displayed
+# in the messages table header, above the "lastEventId" column.
+netmonitor.ws.toolbar.lastEventId=ID sự kiện cuối cùng
+
+# LOCALIZATION NOTE (netmonitor.ws.toolbar.clear): This is the label displayed
+# in the messages panel toolbar for the "Clear" button.
+netmonitor.ws.toolbar.clear=Xóa
+
+# LOCALIZATION NOTE (netmonitor.ws.toolbar.filterFreetext.label): This is the label
+# displayed in the messages panel toolbar for the frames filtering textbox.
+netmonitor.ws.toolbar.filterFreetext.label=Lọc tin nhắn
+
+# LOCALIZATION NOTE (netmonitor.ws.toolbar.filterFreetext.key): This is the
+# shortcut key to focus on the messages panel toolbar messages filtering textbox
+netmonitor.ws.toolbar.filterFreetext.key=CmdOrCtrl+E
+
+# LOCALIZATION NOTE (netmonitor.ws.toolbar.resetColumns): This is the label
+# displayed in the messages panel table header context menu.
+netmonitor.ws.toolbar.resetColumns=Đặt lại các cột
+
+# LOCALIZATION NOTE (netmonitor.ws.context.all): This is the label displayed
+# on the context menu that shows "All" WebSocket frames.
+netmonitor.ws.context.all=Tất cả
+
+# LOCALIZATION NOTE (netmonitor.ws.context.all.accesskey): This is the access key
+# for the "All" menu item displayed in the context menu in the websocket toolbar.
+netmonitor.ws.context.all.accesskey=A
+
+# LOCALIZATION NOTE (netmonitor.ws.context.sent): This is the label displayed
+# on the context menu that shows "Sent" WebSocket frames.
+netmonitor.ws.context.sent=Gửi
+
+# LOCALIZATION NOTE (netmonitor.ws.context.sent.accesskey): This is the access key
+# for the "Sent" menu item displayed in the context menu in the websocket toolbar.
+netmonitor.ws.context.sent.accesskey=S
+
+# LOCALIZATION NOTE (netmonitor.ws.context.received): This is the label displayed
+# on the context menu that shows "Received" WebSocket frames.
+netmonitor.ws.context.received=Đã nhận
+
+# LOCALIZATION NOTE (netmonitor.ws.context.received.accesskey): This is the access key
+# for the "Received" menu item displayed in the context menu in the websocket toolbar.
+netmonitor.ws.context.received.accesskey=R
+
+# LOCALIZATION NOTE (netmonitor.ws.context.controlFrames): This is the label displayed
+# on the context menu that shows "Control Frames" WebSocket frames.
+netmonitor.ws.context.controlFrames=Điều khiển
+
+# LOCALIZATION NOTE (netmonitor.ws.context.controlFrames.accesskey): This is the access key
+# for the "Control Frames" menu item displayed in the context menu in the websocket toolbar.
+netmonitor.ws.context.controlFrames.accesskey=o
+
+# LOCALIZATION NOTE (netmonitor.ws.context.copyFrame): This is the label displayed
+# on the context menu that shows "Copy Message".
+netmonitor.ws.context.copyFrame=Sao chép tin nhắn
+
+# LOCALIZATION NOTE (netmonitor.ws.context.copyFrame.accesskey): This is the access key
+# for the "Copy Message" menu item displayed in the context menu of a WebSocket frame.
+netmonitor.ws.context.copyFrame.accesskey=C
+
+# LOCALIZATION NOTE (netmonitor.ws.connection.closed): This is the text displayed in the
+# websocket messages panel when the connection is closed
+netmonitor.ws.connection.closed=Kết nối đã bị đóng
+
+# LOCALIZATION NOTE (netmonitor.ws.type.sent): This is the label used as
+# accessible text for the "sent" type icon in the websocket table's "data" column.
+netmonitor.ws.type.sent=Gửi
+
+# LOCALIZATION NOTE (netmonitor.ws.type.received): This is the label used as
+# accessible text for the "received" type icon in the websocket table's "data" column.
+netmonitor.ws.type.received=Đã nhận
+
+# LOCALIZATION NOTE (netmonitor.ws.rawData.header): This is the label displayed
+# in the messages panel identifying the raw data.
+netmonitor.ws.rawData.header=Dữ liệu thô (%S)
+
+# LOCALIZATION NOTE (netmonitor.search.toolbar.inputPlaceholder): This is the label
+# displayed in the search toolbar for the search input as the placeholder.
+netmonitor.search.toolbar.inputPlaceholder=Tìm trong tài nguyên…
+
+# LOCALIZATION NOTE (netmonitor.search.toolbar.close): This is the label
+# displayed in the search toolbar to close the search panel.
+netmonitor.search.toolbar.close=Đóng bảng tìm kiếm
+
+# LOCALIZATION NOTE (netmonitor.search.toolbar.clear): This is the label
+# displayed in the search toolbar to clear the search panel.
+netmonitor.search.toolbar.clear=Xóa kết quả tìm kiếm
+
+# LOCALIZATION NOTE (netmonitor.search.toolbar.caseSensitive): This is the label
+# displayed in the search toolbar to do a case sensitive search.
+netmonitor.search.toolbar.caseSensitive=Phân biệt HOA-thường
+
+# LOCALIZATION NOTE (netmonitor.search.status.labels.fetching): This is the label
+# displayed in the search results status bar when status is set to fetching.
+netmonitor.search.status.labels.fetching=Đang tìm kiếm…
+
+# LOCALIZATION NOTE (netmonitor.search.status.labels.canceled): This is the label
+# displayed in the search results status bar when status is set to cancelled.
+netmonitor.search.status.labels.canceled=Đã hủy bỏ tìm kiếm.
+
+# LOCALIZATION NOTE (netmonitor.search.status.labels.done): This is the label
+# displayed in the search results status bar when status is set to done.
+# %1$S is the number of matching lines in search results (netmonitor.search.status.labels.matchingLines)
+# %2$S is the number of files in which matching lines were found (netmonitor.search.status.labels.fileCount)
+netmonitor.search.status.labels.done=Đã tìm kiếm xong. %1$S %2$S.
+
+# LOCALIZATION NOTE (netmonitor.search.status.labels.matchingLines): Semi-colon list of plural forms.
+# This is the label displayed in the search results status bar showing matching lines found.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is the number of matching lines found
+netmonitor.search.status.labels.matchingLines=Tìm thấy #1 dòng phù hợp
+
+# LOCALIZATION NOTE (netmonitor.search.status.labels.fileCount): Semi-colon list of plural forms.
+# This is the label displayed in the search results status bar showing file count
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is the number of files in which matching lines were found
+netmonitor.search.status.labels.fileCount=trong #1 tập tin
+
+# LOCALIZATION NOTE (netmonitor.search.status.labels.error): This is the label
+# displayed in the search results status bar when status is set to error.
+netmonitor.search.status.labels.error=Lỗi khi tìm kiếm.
+
+# LOCALIZATION NOTE (netmonitor.toolbar.requestBlocking): This is the tooltip displayed
+# over the toolbar's Request Blocking buttonn
+netmonitor.toolbar.requestBlocking=Request Blocking
+
+# LOCALIZATION NOTE (netmonitor.actionbar.requestBlocking2): This is the label displayed
+# in the action bar's request blocking tab
+netmonitor.actionbar.requestBlocking2=Đang chặn
+
+# LOCALIZATION NOTE (netmonitor.actionbar.enableBlocking): This is the label displayed
+# in request blocking tab to represent if requests blocking should be enabled
+netmonitor.actionbar.enableBlocking=Kích hoạt yêu cầu chặn
+
+# LOCALIZATION NOTE (netmonitor.actionbar.blockSearchPlaceholder): This is the
+# placeholder text for the request addition form
+netmonitor.actionbar.blockSearchPlaceholder=Chặn tài nguyên khi URL chứa
+
+# LOCALIZATION NOTE (netmonitor.actionbar.removeBlockedUrl): This is the
+# tooltip shown over the remove button for blocked URL item
+netmonitor.actionbar.removeBlockedUrl=Xóa mẫu
+
+# LOCALIZATION NOTE (netmonitor.actionbar.requestBlockingUsageNotice): This is the
+# usage notice displayed when network blocking list is empty
+netmonitor.actionbar.requestBlockingUsageNotice=Thêm các mẫu URL ở đây để chặn các yêu cầu phù hợp.
+
+# LOCALIZATION NOTE (netmonitor.actionbar.requestBlockingAddNotice): This is the
+# add notice that explains ways to add blocking pattern that is displayed when
+# network blocking list is empty
+netmonitor.actionbar.requestBlockingAddNotice=Bắt đầu bằng cách thêm một mẫu hoặc kéo một hàng từ bảng mạng.
+
+# LOCALIZATION NOTE (netmonitor.requestBlockingMenu.removeAllBlockedUrls): This is the
+# context menu item for removing all blocked URLs
+netmonitor.requestBlockingMenu.removeAllBlockedUrls=Xóa tắt cả
+
+# LOCALIZATION NOTE (netmonitor.requestBlockingMenu.enableAllBlockedUrls): This is the
+# context menu item for enabling all blocked URLs
+netmonitor.requestBlockingMenu.enableAllBlockedUrls=Bật tất cả
+
+# LOCALIZATION NOTE (netmonitor.requestBlockingMenu.disableAllBlockedUrls): This is the
+# context menu item for disabling all blocked URLs
+netmonitor.requestBlockingMenu.disableAllBlockedUrls=Tắt tất cả
+
+# LOCALIZATION NOTE (netmonitor.actionbar.search): This is the label displayed
+# in the action bar's search tab
+netmonitor.actionbar.search=Tìm kiếm
+
+# LOCALIZATION NOTE (messagesTruncated): This is the text displayed
+# in the messages panel when the number of messages is over the
+# truncation limit.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+netmonitor.ws.truncated-messages.warning=#1 tin nhắn đã bị cắt bớt để bảo tồn bộ nhớ
+
+# LOCALIZATION NOTE (disableMessagesTruncation): This is the text displayed
+# in the messages panel checkbox label for toggling message truncation.
+toggleMessagesTruncation=Giữ tất cả các tin nhắn trong tương lai
+
+# LOCALIZATION NOTE (toggleMessagesTruncation.title): This is the title used
+# to describe the checkbox used to toggle message truncation.
+toggleMessagesTruncation.title=Giữ tất cả các tin nhắn trong tương lai hoặc tiếp tục hiển thị các tin nhắn bị cắt ngắn
+
+# LOCALIZATION NOTE (messageDataTruncated): This is the text displayed
+# to describe to describe data truncation in the messages panel.
+messageDataTruncated=Dữ liệu bị cắt ngắn
+
+# LOCALIZATION NOTE (netmonitor.tab.headers): This is the label displayed
+# in the network details pane identifying the headers tab.
+netmonitor.tab.headers=Header
+
+# LOCALIZATION NOTE (netmonitor.tab.messages): This is the label displayed
+# in the network details pane identifying the messages tab.
+netmonitor.tab.messages=Tin nhắn
+
+# LOCALIZATION NOTE (netmonitor.tab.cookies): This is the label displayed
+# in the network details pane identifying the cookies tab.
+netmonitor.tab.cookies=Cookie
+
+# LOCALIZATION NOTE (netmonitor.tab.cache): This is the label displayed
+# in the network details pane identifying the cache tab.
+netmonitor.tab.cache=Bộ nhớ đệm
+
+# LOCALIZATION NOTE (netmonitor.tab.params): This is the label displayed
+# in the network details pane identifying the params tab.
+netmonitor.tab.params=Tham số
+
+# LOCALIZATION NOTE (netmonitor.tab.request): This is the label displayed
+# in the network details pane identifying the request tab.
+netmonitor.tab.request=Yêu cầu
+
+# LOCALIZATION NOTE (netmonitor.tab.response): This is the label displayed
+# in the network details pane identifying the response tab.
+netmonitor.tab.response=Phản hồi
+
+# LOCALIZATION NOTE (netmonitor.tab.timings): This is the label displayed
+# in the network details pane identifying the timings tab.
+netmonitor.tab.timings=Thời gian
+
+# LOCALIZATION NOTE (netmonitor.tab.stackTrace): This is the label displayed
+# in the network details pane identifying the stack-trace tab.
+netmonitor.tab.stackTrace=Ngăn xếp dấu vết
+
+# LOCALIZATION NOTE (netmonitor.tab.security): This is the label displayed
+# in the network details pane identifying the security tab.
+netmonitor.tab.security=Bảo mật
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filter.all): This is the label displayed
+# in the network toolbar for the "All" filtering button.
+netmonitor.toolbar.filter.all=Tất cả
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filter.html): This is the label displayed
+# in the network toolbar for the "HTML" filtering button.
+netmonitor.toolbar.filter.html=HTML
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filter.css): This is the label displayed
+# in the network toolbar for the "CSS" filtering button.
+netmonitor.toolbar.filter.css=CSS
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filter.js): This is the label displayed
+# in the network toolbar for the "JS" filtering button.
+netmonitor.toolbar.filter.js=JS
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filter.xhr): This is the label displayed
+# in the network toolbar for the "XHR" filtering button.
+netmonitor.toolbar.filter.xhr=XHR
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filter.fonts): This is the label displayed
+# in the network toolbar for the "Fonts" filtering button.
+netmonitor.toolbar.filter.fonts=Phông
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filter.images): This is the label displayed
+# in the network toolbar for the "Images" filtering button.
+netmonitor.toolbar.filter.images=Hình ảnh
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filter.media): This is the label displayed
+# in the network toolbar for the "Media" filtering button.
+netmonitor.toolbar.filter.media=Đa phương tiện
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filter.flash): This is the label displayed
+# in the network toolbar for the "Flash" filtering button.
+netmonitor.toolbar.filter.flash=Flash
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filter.ws): This is the label displayed
+# in the network toolbar for the "WS" filtering button.
+netmonitor.toolbar.filter.ws=WS
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filter.other): This is the label displayed
+# in the network toolbar for the "Other" filtering button.
+netmonitor.toolbar.filter.other=Khác
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filterFreetext.label): This is the label
+# displayed in the network toolbar for the url filtering textbox.
+netmonitor.toolbar.filterFreetext.label=Lọc URL
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filterFreetext.key): This is the
+# shortcut key to focus on the toolbar url filtering textbox
+netmonitor.toolbar.filterFreetext.key=CmdOrCtrl+F
+
+# LOCALIZATION NOTE (netmonitor.toolbar.search.key): This is the
+# shortcut key to toggle the search panel
+netmonitor.toolbar.search.key=CmdOrCtrl+Shift+F
+
+# LOCALIZATION NOTE (netmonitor.toolbar.copy.key): This is the
+# shortcut key to copy a selected request url from the network table
+netmonitor.toolbar.copy.key=CmdOrCtrl+C
+
+# LOCALIZATION NOTE (netmonitor.toolbar.filterFreetext.learnMore): This is
+# the title used for MDN icon in filtering textbox
+netmonitor.toolbar.filterFreetext.learnMore=Tìm hiểu thêm về lọc
+
+# LOCALIZATION NOTE (netmonitor.toolbar.enablePersistentLogs.label): This is the label
+# displayed for the checkbox for enabling persistent logs.
+netmonitor.toolbar.enablePersistentLogs.label=Nhật ký liên tục
+
+# LOCALIZATION NOTE (netmonitor.toolbar.enablePersistentLogs.tooltip): This is the tooltip
+# displayed for the checkbox for enabling persistent logs.
+netmonitor.toolbar.enablePersistentLogs.tooltip=Nếu bạn bật tùy chọn này, danh sách yêu cầu sẽ không bị xóa mỗi lần bạn điều hướng đến một trang mới
+
+# LOCALIZATION NOTE (netmonitor.toolbar.disableCache.label): This is the label
+# displayed for the checkbox for disabling browser cache.
+netmonitor.toolbar.disableCache.label=Vô hiệu hóa bộ nhớ đệm
+
+# LOCALIZATION NOTE (netmonitor.toolbar.disableCache.tooltip): This is the tooltip
+# displayed for the checkbox for disabling browser cache.
+netmonitor.toolbar.disableCache.tooltip=Vô hiệu hóa bộ nhớ đệm HTTP
+
+# LOCALIZATION NOTE (netmonitor.toolbar.clear): This is the label displayed
+# in the network toolbar for the "Clear" button.
+netmonitor.toolbar.clear=Xóa trắng
+
+# LOCALIZATION NOTE (netmonitor.toolbar.toggleRecording): This is the label displayed
+# in the network toolbar for the toggle recording button.
+netmonitor.toolbar.toggleRecording=Tạm dừng/tiếp tục ghi nhật ký mạng
+
+# LOCALIZATION NOTE (netmonitor.toolbar.search): This is the tooltip label displayed
+# in the network toolbar for the search button.
+netmonitor.toolbar.search=Tìm kiếm
+
+# LOCALIZATION NOTE (netmonitor.toolbar.resetColumns): This is the label
+# displayed in the network table header context menu.
+netmonitor.toolbar.resetColumns=Đặt lại các cột
+
+# LOCALIZATION NOTE (netmonitor.toolbar.resetSorting): This is the label
+# displayed in the network table header context menu to reset sorting
+netmonitor.toolbar.resetSorting=Đặt lại sắp xếp
+
+# LOCALIZATION NOTE (netmonitor.toolbar.resizeColumnToFitContent): This is the label
+# displayed in the network table header context menu to resize a column to fit its content
+netmonitor.toolbar.resizeColumnToFitContent=Thay đổi kích thước cột để phù hợp với nội dung
+
+# LOCALIZATION NOTE (netmonitor.toolbar.resizeColumnToFitContent.title): This is the title
+# tooltip displayed when draggable resizer in network table headers is hovered
+netmonitor.toolbar.resizeColumnToFitContent.title=Nhấp đúp để phù hợp với cột theo nội dung
+
+# LOCALIZATION NOTE (netmonitor.toolbar.timings): This is the label
+# displayed in the network table header context menu for the timing submenu
+netmonitor.toolbar.timings=Thời gian
+
+# LOCALIZATION NOTE (netmonitor.toolbar.responseHeaders): This is the
+# label displayed in the network table header context menu for the
+# response headers submenu.
+netmonitor.toolbar.responseHeaders=Phản hồi header
+
+# LOCALIZATION NOTE (netmonitor.headers.toolbar.block): This is the
+# label displayed in the network details headers tab identifying the
+# block url toolbar button.
+netmonitor.headers.toolbar.block=Chặn
+
+# LOCALIZATION NOTE (netmonitor.headers.address): This is the label displayed
+# in the network details headers tab identifying the remote address.
+netmonitor.headers.address=Địa chỉ
+
+# LOCALIZATION NOTE (netmonitor.headers.status): This is the label displayed
+# in the network details headers tab identifying the status code.
+netmonitor.headers.status=Trạng thái
+
+# LOCALIZATION NOTE (netmonitor.headers.size): This is the label displayed
+# in the network details headers tab identifying the size.
+netmonitor.headers.size=Kích thước
+
+# LOCALIZATION NOTE (networkMenu.headers.sizeDetails): This label is displayed
+# in the network details headers tab providing the size details.
+# %1$S is the transferred size, %2$S is the size.
+netmonitor.headers.sizeDetails=%1$S (kích thước %2$S)
+
+# LOCALIZATION NOTE (netmonitor.headers.version): This is the label displayed
+# in the network details headers tab identifying the http version.
+netmonitor.headers.version=Phiên bản
+
+# LOCALIZATION NOTE (netmonitor.summary.learnMore): This is the label displayed
+# in the network details headers tab, with a link to external documentation for
+# status codes.
+netmonitor.summary.learnMore=Tìm hiểu thêm về mã trạng thái
+
+# LOCALIZATION NOTE (netmonitor.headers.referrerPolicy): This is the label displayed
+# in the network details headers tab identifying the referrer policy.
+netmonitor.headers.referrerPolicy=Referrer Policy
+
+# LOCALIZATION NOTE (netmonitor.headers.contentBlocking): This is the label displayed
+# in the network details headers tab identifying the content blocking mode.
+netmonitor.headers.contentBlocking=Đang chặn
+
+# LOCALIZATION NOTE (netmonitor.summary.editAndResend): This is the label displayed
+# on the button in the headers tab that opens a form to edit and resend the currently
+# displayed request
+netmonitor.summary.editAndResend=Chỉnh sửa và gửi lại
+
+# LOCALIZATION NOTE (netmonitor.headers.raw): This is the label displayed
+# on the button in the headers tab that toggle view for raw request/response headers
+# from the currently displayed request
+netmonitor.headers.raw=Raw
+
+# LOCALIZATION NOTE (netmonitor.response.name): This is the label displayed
+# in the network details response tab identifying an image's file name.
+netmonitor.response.name=Tên:
+
+# LOCALIZATION NOTE (netmonitor.response.dimensions): This is the label displayed
+# in the network details response tab identifying an image's dimensions.
+netmonitor.response.dimensions=Kích cỡ:
+
+# LOCALIZATION NOTE (netmonitor.response.mime): This is the label displayed
+# in the network details response tab identifying an image's mime.
+netmonitor.response.mime=Kiểu MIME:
+
+# LOCALIZATION NOTE (netmonitor.timings.blocked): This is the label displayed
+# in the network details timings tab identifying the amount of time spent
+# in a "blocked" state.
+netmonitor.timings.blocked=Đã chặn:
+
+# LOCALIZATION NOTE (netmonitor.timings.dns): This is the label displayed
+# in the network details timings tab identifying the amount of time spent
+# in a "dns" state.
+netmonitor.timings.dns=Độ phân giải DNS:
+
+# LOCALIZATION NOTE (netmonitor.timings.ssl): This is the label displayed
+# in the network details timings tab identifying the amount of time spent
+# in a "tls" handshake state.
+netmonitor.timings.ssl=Thiết lập TLS:
+
+# LOCALIZATION NOTE (netmonitor.timings.connect): This is the label displayed
+# in the network details timings tab identifying the amount of time spent
+# in a "connect" state.
+netmonitor.timings.connect=Đang kết nối:
+
+# LOCALIZATION NOTE (netmonitor.timings.send): This is the label displayed
+# in the network details timings tab identifying the amount of time spent
+# in a "send" state.
+netmonitor.timings.send=Đang gửi:
+
+# LOCALIZATION NOTE (netmonitor.timings.wait): This is the label displayed
+# in the network details timings tab identifying the amount of time spent
+# in a "wait" state.
+netmonitor.timings.wait=Đang chờ:
+
+# LOCALIZATION NOTE (netmonitor.timings.receive): This is the label displayed
+# in the network details timings tab identifying the amount of time spent
+# in a "receive" state.
+netmonitor.timings.receive=Đang nhận:
+
+# LOCALIZATION NOTE (netmonitor.timings.learnMore): This is the label displayed
+# in the network details timings tab, with a link to external documentation
+netmonitor.timings.learnMore=Tìm hiểu thêm về thời gian
+
+# LOCALIZATION NOTE (netmonitor.audits.slowIconTooltip): This is the tooltip text displayed
+# in the network request list file column, on the slow icon button.
+# %1$S is the waiting time %2$S is the slow threshold.
+netmonitor.audits.slowIconTooltip=Thời gian phản hồi máy chủ chậm (%1$S). Thời gian tối đa được đề xuất là %2$S.
+
+# LOCALIZATION NOTE (netmonitor.security.warning.cipher): A tooltip
+# for warning icon that indicates a connection uses insecure cipher suite.
+netmonitor.security.warning.cipher=Các mật mã được sử dụng để mã hóa bị phản đối và không an toàn.
+
+# LOCALIZATION NOTE (netmonitor.security.error): This is the label displayed
+# in the security tab if a security error prevented the connection.
+netmonitor.security.error=Có lỗi đã xảy ra:
+
+# LOCALIZATION NOTE (netmonitor.security.protocolVersion): This is the label displayed
+# in the security tab describing TLS/SSL protocol version.
+netmonitor.security.protocolVersion=Phiên bản giao thức:
+
+# LOCALIZATION NOTE (netmonitor.security.cipherSuite): This is the label displayed
+# in the security tab describing the cipher suite used to secure this connection.
+netmonitor.security.cipherSuite=Thuật toán mật mã:
+
+# LOCALIZATION NOTE (netmonitor.security.keaGroup): This is the label displayed
+# in the security tab describing the key exchange group suite used to secure
+# this connection.
+netmonitor.security.keaGroup=Nhóm trao đổi chính:
+
+# LOCALIZATION NOTE (netmonitor.security.keaGroup.none): This is the label
+# displayed in the security tab describing the case when no group was used.
+netmonitor.security.keaGroup.none=không có
+
+# LOCALIZATION NOTE (netmonitor.security.keaGroup.custom): This is the label
+# displayed in the security tab describing the case when a custom group was used.
+netmonitor.security.keaGroup.custom=tùy biến
+
+# LOCALIZATION NOTE (netmonitor.security.keaGroup.unknown): This is the value
+# displayed in the security tab describing an unknown group.
+netmonitor.security.keaGroup.unknown=nhóm không rõ
+
+# LOCALIZATION NOTE (netmonitor.security.signatureScheme): This is the label
+# displayed in the security tab describing the signature scheme used by for
+# the server certificate in this connection.
+netmonitor.security.signatureScheme=Sơ đồ chữ ký:
+
+# LOCALIZATION NOTE (netmonitor.security.signatureScheme.none): This is the
+# label displayed in the security tab describing the case when no signature
+# was used.
+netmonitor.security.signatureScheme.none=không có
+
+# LOCALIZATION NOTE (netmonitor.security.signatureScheme.unknown): This is the
+# value displayed in the security tab describing an unknown signature scheme.
+netmonitor.security.signatureScheme.unknown=sơ đồ chữ ký không xác định
+
+# LOCALIZATION NOTE (netmonitor.security.hsts): This is the label displayed
+# in the security tab describing the usage of HTTP Strict Transport Security.
+netmonitor.security.hsts=HTTP Strict Transport Security:
+
+# LOCALIZATION NOTE (netmonitor.security.hpkp): This is the label displayed
+# in the security tab describing the usage of Public Key Pinning.
+netmonitor.security.hpkp=Public Key Pinning:
+
+# LOCALIZATION NOTE (netmonitor.security.connection): This is the label displayed
+# in the security tab describing the section containing information related to
+# the secure connection.
+netmonitor.security.connection=Kết nối:
+
+# LOCALIZATION NOTE (netmonitor.security.certificate): This is the label displayed
+# in the security tab describing the server certificate section.
+netmonitor.security.certificate=Chứng chỉ:
+
+# LOCALIZATION NOTE (netmonitor.trackingResource.tooltip): This is the label used
+# in the Network monitor panel as a tooltip for tracking resource icon.
+netmonitor.trackingResource.tooltip=URL này khớp với trình theo dõi đã biết và nó sẽ bị chặn khi bật chặn nội dung.
+
+# LOCALIZATION NOTE (netmonitor.trackingResource.enhancedTrackingProtection): This is
+# the label used in the Network monitor panel for showing enhanced tracking protection.
+netmonitor.trackingResource.enhancedTrackingProtection=Trình chống theo dõi nâng cao
+
+# LOCALIZATION NOTE (netmonitor.enhancedTrackingProtection.learnMore): This is the label
+# displayed in the network details headers tab, with a link to external documentation for
+# enhanced tracking protection.
+netmonitor.enhancedTrackingProtection.learnMore=Tìm hiểu thêm về chống theo dõi nâng cao
+
+# LOCALIZATION NOTE (netmonitor.context.copy): This is the label displayed
+# for the copy sub-menu in the context menu for a request
+netmonitor.context.copy=Sao chép
+
+# LOCALIZATION NOTE (netmonitor.context.copy.accesskey): This is the access key
+# for the copy menu/sub-menu displayed in the context menu for a request
+netmonitor.context.copy.accesskey=C
+
+# LOCALIZATION NOTE (netmonitor.context.copyUrl): This is the label displayed
+# on the context menu that copies the selected request's url
+netmonitor.context.copyUrl=Sao chép URL
+
+# LOCALIZATION NOTE (netmonitor.context.copyUrl.accesskey): This is the access key
+# for the Copy URL menu item displayed in the context menu for a request
+netmonitor.context.copyUrl.accesskey=U
+
+# LOCALIZATION NOTE (netmonitor.context.copyUrlParams): This is the label displayed
+# on the context menu that copies the selected request's url parameters
+netmonitor.context.copyUrlParams=Sao chép tham số URL
+
+# LOCALIZATION NOTE (netmonitor.context.copyUrlParams.accesskey): This is the access key
+# for the Copy URL Parameters menu item displayed in the context menu for a request
+netmonitor.context.copyUrlParams.accesskey=P
+
+# LOCALIZATION NOTE (netmonitor.context.copyRequestData): This is the label displayed
+# on the context menu that copies the selected request's data
+netmonitor.context.copyRequestData=Sao chép dữ liệu %S
+
+# LOCALIZATION NOTE (netmonitor.context.copyRequestData.accesskey): This is the access key
+# for the Copy POST/PATCH/PUT/DELETE Data menu item displayed in the context menu for a request
+netmonitor.context.copyRequestData.accesskey=D
+
+# LOCALIZATION NOTE (netmonitor.context.copyAsCurl): This is the label displayed
+# on the context menu that copies the selected request as a cURL command.
+# The capitalization is part of the official name and should be used throughout all languages.
+# http://en.wikipedia.org/wiki/CURL
+netmonitor.context.copyAsCurl=Sao chép như cURL
+
+# LOCALIZATION NOTE (netmonitor.context.copyAsCurl.accesskey): This is the access key
+# for the Copy as cURL menu item displayed in the context menu for a request
+netmonitor.context.copyAsCurl.accesskey=C
+
+# LOCALIZATION NOTE (netmonitor.context.copyAsCurl.*): This is the template used to add
+# a target platform to the label for "Copy as cURL" command
+# e.g. Copy as cURL (Windows)
+# Localized label for "Copy as cURL": %S
+netmonitor.context.copyAsCurl.win=%S (Windows)
+netmonitor.context.copyAsCurl.win.accesskey=C
+netmonitor.context.copyAsCurl.posix=%S (POSIX)
+netmonitor.context.copyAsCurl.posix.accesskey=P
+
+# LOCALIZATION NOTE (netmonitor.context.copyAsFetch): This is the label displayed
+# on the context menu that copies the selected request as a fetch request.
+netmonitor.context.copyAsFetch=Sao chép dưới dạng Fetch
+
+# LOCALIZATION NOTE (netmonitor.context.copyAsFetch.accesskey): This is the access key
+# for the Copy as fetch menu item displayed in the context menu for a request
+netmonitor.context.copyAsFetch.accesskey=F
+
+# LOCALIZATION NOTE (netmonitor.context.copyRequestHeaders): This is the label displayed
+# on the context menu that copies the selected item's request headers
+netmonitor.context.copyRequestHeaders=Sao chép yêu cầu header
+
+# LOCALIZATION NOTE (netmonitor.context.copyRequestHeaders.accesskey): This is the access key
+# for the Copy Request Headers menu item displayed in the context menu for a request
+netmonitor.context.copyRequestHeaders.accesskey=Q
+
+# LOCALIZATION NOTE (netmonitor.context.copyResponseHeaders): This is the label displayed
+# on the context menu that copies the selected item's response headers
+netmonitor.context.copyResponseHeaders=Sao chép phản hồi header
+
+# LOCALIZATION NOTE (netmonitor.context.copyResponseHeaders.accesskey): This is the access key
+# for the Copy Response Headers menu item displayed in the context menu for a response
+netmonitor.context.copyResponseHeaders.accesskey=S
+
+# LOCALIZATION NOTE (netmonitor.context.copyResponse): This is the label displayed
+# on the context menu that copies the selected response as a string
+netmonitor.context.copyResponse=Sao chép phản hồi
+
+# LOCALIZATION NOTE (netmonitor.context.copyResponse.accesskey): This is the access key
+# for the Copy Response menu item displayed in the context menu for a request
+netmonitor.context.copyResponse.accesskey=R
+
+# LOCALIZATION NOTE (netmonitor.context.copyImageAsDataUri): This is the label displayed
+# on the context menu that copies the selected image as data uri
+netmonitor.context.copyImageAsDataUri=Sao chép hình ảnh dưới dạng dữ liệu URI
+
+# LOCALIZATION NOTE (netmonitor.context.copyImageAsDataUri.accesskey): This is the access key
+# for the Copy Image As Data URI menu item displayed in the context menu for a request
+netmonitor.context.copyImageAsDataUri.accesskey=I
+
+# LOCALIZATION NOTE (netmonitor.context.useAsFetch): This is the label displayed
+# on the context menu that copies the selected request as a fetch command.
+netmonitor.context.useAsFetch=Sử dụng như Fetch trong bảng điều khiển
+
+# LOCALIZATION NOTE (netmonitor.context.useAsFetch.accesskey): This is the access key
+# for the Copy as fetch menu item displayed in the context menu for a request
+netmonitor.context.useAsFetch.accesskey=F
+
+# LOCALIZATION NOTE (netmonitor.context.saveImageAs): This is the label displayed
+# on the context menu that save the Image
+netmonitor.context.saveImageAs=Lưu ảnh dưới dạng
+
+# LOCALIZATION NOTE (netmonitor.context.saveImageAs.accesskey): This is the access key
+# for the Copy Image As Data URI menu item displayed in the context menu for a request
+netmonitor.context.saveImageAs.accesskey=V
+
+# LOCALIZATION NOTE (netmonitor.context.copyAll): This is the label displayed
+# on the context menu that copies all data
+netmonitor.context.copyAll=Sao chép tất cả
+
+# LOCALIZATION NOTE (netmonitor.context.copyAll.accesskey): This is the access key
+# for the Copy All menu item displayed in the context menu for a properties view panel
+netmonitor.context.copyAll.accesskey=A
+
+# LOCALIZATION NOTE (netmonitor.context.copyAllAsHar): This is the label displayed
+# on the context menu that copies all as HAR format
+netmonitor.context.copyAllAsHar=Sao chép tất cả dưới dạng HAR
+
+# LOCALIZATION NOTE (netmonitor.context.copyAllAsHar.accesskey): This is the access key
+# for the Copy All As HAR menu item displayed in the context menu for a network panel
+netmonitor.context.copyAllAsHar.accesskey=O
+
+# LOCALIZATION NOTE (netmonitor.context.saveAllAsHar): This is the label displayed
+# on the context menu that saves all as HAR format
+netmonitor.context.saveAllAsHar=Lưu tất cả dưới dạng HAR
+
+# LOCALIZATION NOTE (netmonitor.context.saveAllAsHar.accesskey): This is the access key
+# for the Save All As HAR menu item displayed in the context menu for a network panel
+netmonitor.context.saveAllAsHar.accesskey=H
+
+# LOCALIZATION NOTE (netmonitor.context.importHar.accesskey): This is the access key
+# for the Import HAR menu item displayed in the context menu for a network panel
+netmonitor.context.importHar.accesskey=I
+
+# LOCALIZATION NOTE (netmonitor.har.importHarDialogTitle): This is a label
+# used for import file open dialog
+netmonitor.har.importHarDialogTitle=Nhập tập tin HAR
+
+# LOCALIZATION NOTE (netmonitor.har.importDialogHARFilter):
+# This string is displayed as a filter for importing HAR file
+netmonitor.har.importDialogHARFilter=Tập tin HAR
+
+# LOCALIZATION NOTE (netmonitor.har.importDialogAllFilter):
+# This string is displayed as a filter for importing HAR file
+netmonitor.har.importDialogAllFilter=Tất cả tập tin
+
+# LOCALIZATION NOTE (netmonitor.context.resend.label): This is the label displayed
+# on the context menu that resends the currently displayed request immediately
+netmonitor.context.resend.label=Gửi lại
+
+# LOCALIZATION NOTE (netmonitor.context.resend.accesskey): This is the access key
+# for the "Resend" menu item displayed in the context menu for a request
+netmonitor.context.resend.accesskey=n
+
+# LOCALIZATION NOTE (netmonitor.context.editAndResend): This is the label displayed
+# on the context menu that opens a form to edit and resend the currently
+# displayed request
+netmonitor.context.editAndResend=Chỉnh sửa và gửi lại
+
+# LOCALIZATION NOTE (netmonitor.context.editAndResend.accesskey): This is the access key
+# for the "Edit and Resend" menu item displayed in the context menu for a request
+netmonitor.context.editAndResend.accesskey=E
+
+# LOCALIZATION NOTE (netmonitor.context.blockURL): This is the label displayed
+# on the context menu that blocks any requests matching the selected request's URL.
+netmonitor.context.blockURL=Chặn URL
+
+# LOCALIZATION NOTE (netmonitor.context.unblockURL): This is the label displayed
+# on the context menu that unblocks any requests matching the selected request's URL.
+netmonitor.context.unblockURL=Bỏ chặn URL
+
+# LOCALIZATION NOTE (netmonitor.context.newTab): This is the label
+# for the Open in New Tab menu item displayed in the context menu of the
+# network container
+netmonitor.context.newTab=Mở trong thẻ mới
+
+# LOCALIZATION NOTE (netmonitor.context.newTab.accesskey): This is the access key
+# for the Open in New Tab menu item displayed in the context menu of the
+# network container
+netmonitor.context.newTab.accesskey=T
+
+# LOCALIZATION NOTE (netmonitor.context.openInDebugger): This is the label
+# for the Open in Debugger menu item displayed in the context menu of the
+# network container
+netmonitor.context.openInDebugger=Mở trong trình gỡ lỗi
+
+# LOCALIZATION NOTE (netmonitor.context.openInDebugger.accesskey): This is the access key
+# for the Open in Debugger menu item displayed in the context menu of the
+# network container
+netmonitor.context.openInDebugger.accesskey=D
+
+# LOCALIZATION NOTE (netmonitor.context.openInStyleEditor): This is the label
+# for the Open in Style Editor menu item displayed in the context menu of the
+# network container
+netmonitor.context.openInStyleEditor=Mở trong Trình chỉnh sửa kiểu
+
+# LOCALIZATION NOTE (netmonitor.context.openInStyleEditor.accesskey): This is
+# the access key for the Open in Style Editor menu item displayed in the
+# context menu of the network container
+netmonitor.context.openInStyleEditor.accesskey=S
+
+# LOCALIZATION NOTE (netmonitor.context.perfTools): This is the label displayed
+# on the context menu that shows the performance analysis tools
+netmonitor.context.perfTools=Bắt đầu phân tích hiệu suất…
+
+# LOCALIZATION NOTE (netmonitor.context.perfTools.accesskey): This is the access key
+# for the performance analysis menu item displayed in the context menu for a request
+netmonitor.context.perfTools.accesskey=A
+
+# LOCALIZATION NOTE (netmonitor.custom.newRequest): This is the label displayed
+# as the title of the new custom request form
+netmonitor.custom.newRequest=Yêu cầu mới
+
+# LOCALIZATION NOTE (netmonitor.custom.newRequestMethodLabel): This is the label displayed
+# above the method text input field of the new custom request form
+netmonitor.custom.newRequestMethodLabel=Phương thức
+
+# LOCALIZATION NOTE (netmonitor.custom.newRequestUrlLabel): This is the label displayed
+# above the url text input field of the new custom request form
+netmonitor.custom.newRequestUrlLabel=URL
+
+# LOCALIZATION NOTE (netmonitor.custom.query): This is the label displayed
+# above the query string entry in the custom request form
+netmonitor.custom.query=Chuỗi truy vấn
+
+# LOCALIZATION NOTE (netmonitor.custom.headers): This is the label displayed
+# above the request headers entry in the custom request form
+netmonitor.custom.headers=Yêu cầu header
+
+# LOCALIZATION NOTE (netmonitor.custom.postData): This is the label displayed
+# above the request body entry in the custom request form
+netmonitor.custom.postData=Yêu cầu phần thân
+
+# LOCALIZATION NOTE (netmonitor.custom.send): This is the label displayed
+# on the button which sends the custom request
+netmonitor.custom.send=Gửi
+
+# LOCALIZATION NOTE (netmonitor.custom.cancel): This is the label displayed
+# on the button which cancels and closes the custom request form
+netmonitor.custom.cancel=Hủy bỏ
+
+# LOCALIZATION NOTE (netmonitor.backButton): This is the label displayed
+# on the button which exists the performance statistics view
+netmonitor.backButton=Quay lại
+
+# LOCALIZATION NOTE (netmonitor.status.tooltip.simple): This is the tooltip of the
+# column status code, when request is not being cached or is not from a service worker
+# %1$S is the status code, %2$S is the status text.
+netmonitor.status.tooltip.simple = %1$S %2$S
+
+# LOCALIZATION NOTE (netmonitor.status.tooltip.cached): This is the tooltip of
+# the column status code, when the request is cached
+# %1$S is the status code, %2$S is the status text.
+netmonitor.status.tooltip.cached = %1$S %2$S (được lưu trữ)
+
+# LOCALIZATION NOTE (netmonitor.status.tooltip.worker): This is the tooltip of
+# the column status code, when the request is from a service worker
+# %1$S is the status code, %2$S is the status text.
+netmonitor.status.tooltip.worker = %1$S %2$S (service worker)
+
+# LOCALIZATION NOTE (netmonitor.status.tooltip.cachedworker): This is the tooltip
+# of the column status code, when the request is cached and is from a service worker
+# %1$S is the status code, %2$S is the status text.
+netmonitor.status.tooltip.cachedworker = %1$S %2$S (đã lưu trữ, service worker)
+
+# LOCALIZATION NOTE (netmonitor.label.dropHarFiles): This is a label
+# rendered within the Network panel when *.har file(s) are dragged
+# over the content.
+netmonitor.label.dropHarFiles = Thả tập tin HAR vào đây
+
+# LOCALIZATION NOTE (netmonitor.label.har): This is a label used
+# as a tooltip for toolbar drop-down button with HAR actions
+netmonitor.label.har=Xuất/nhập HAR
+
+# LOCALIZATION NOTE (netmonitor.cache.cache): This is the label text for the parent
+# node in the TreeView.
+netmonitor.cache.cache=Bộ nhớ đệm
+
+# LOCALIZATION NOTE (netmonitor.cache.empty): This is the text displayed when cache
+# information is not available.
+netmonitor.cache.empty=Không có thông tin bộ nhớ đệm
+
+# LOCALIZATION NOTE (netmonitor.cache.notAvailable): This is the text displayed under
+# a node that has no information available.
+netmonitor.cache.notAvailable=Không có sẵn
+
+# LOCALIZATION NOTE (netmonitor.cache.dataSize): This is the label text for
+# the datasize of the cached object.
+netmonitor.cache.dataSize=Kích thước dữ liệu
+
+# LOCALIZATION NOTE (netmonitor.cache.expires): This is the label text for the
+# expires time of the cached object.
+netmonitor.cache.expires=Hết hạn
+
+# LOCALIZATION NOTE (netmonitor.cache.fetchCount): This is the label text for the
+# fetch count of the cached object.
+netmonitor.cache.fetchCount=Số lần tải
+
+# LOCALIZATION NOTE (netmonitor.cache.lastFetched): This is the label text for the
+# last fetched date/time of the cached object.
+netmonitor.cache.lastFetched=Lần tải cuối
+
+# LOCALIZATION NOTE (netmonitor.cache.lastModified): This is the label text for the
+# last modified date/time of the cached object.
+netmonitor.cache.lastModified=Sửa đổi lần cuối
+
+# LOCALIZATION NOTE (netmonitor.cache.device): This is the label text for the device
+# where a cached object was fetched from (e.g. "disk").
+netmonitor.cache.device=Thiết bị
+
+# LOCALIZATION NOTE (netmonitor.settings.menuTooltip): This is the tooltip that gets displayed
+# when the settings menu button is hovered.
+netmonitor.settings.menuTooltip=Cài đặt mạng
+
+# LOCALIZATION NOTE (netmonitor.settings.importHarTooltip): This is the tooltip that gets displayed
+# when the HAR import menu item is hovered
+netmonitor.settings.importHarTooltip=Nhập tập tin HAR của dữ liệu mạng
+
+# LOCALIZATION NOTE (netmonitor.settings.saveHarTooltip): This is the tooltip that gets displayed
+# when the HAR save menu item is hovered
+netmonitor.settings.saveHarTooltip=Lưu dữ liệu mạng vào tập tin HAR
+
+# LOCALIZATION NOTE (netmonitor.settings.copyHarTooltip): This is the tooltip that gets displayed
+# when the HAR copy menu item is hovered
+netmonitor.settings.copyHarTooltip=Sao chép dữ liệu mạng vào bộ nhớ tạm
+
+# LOCALIZATION NOTE (netmonitor.errorpanel.description): This is the information displayed once the monitor errors out
+netmonitor.errorpanel.description=Bảng điều khiển mạng đã bị lỗi.
+
+# LOCALIZATION NOTE (netmonitor.errorpanel.fileBugButton): This is the text that appears in the button to visit the bug filing link.
+netmonitor.errorpanel.fileBugButton=Báo cáo lỗi
+
+# LOCALIZATION NOTE (netmonitor.errorpanel.reloadPanelInfo): This is the text that appears after Network panel errors to instruct the user to reload the panel.
+netmonitor.errorpanel.reloadPanelInfo=Đóng và mở lại hộp công cụ để xóa lỗi này.
diff --git a/l10n-vi/devtools/client/network-throttling.properties b/l10n-vi/devtools/client/network-throttling.properties
new file mode 100644
index 0000000000..346d1d1393
--- /dev/null
+++ b/l10n-vi/devtools/client/network-throttling.properties
@@ -0,0 +1,18 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside the NetworkThrottlingMenu
+# component used to throttle network bandwidth.
+#
+# 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 (responsive.noThrottling): UI option in a menu to configure
+# network throttling. This option is the default and disables throttling so you
+# just have normal network conditions. There is not very much room in the UI
+# so a short string would be best if possible.
+responsive.noThrottling=Không điều chỉnh
diff --git a/l10n-vi/devtools/client/performance.dtd b/l10n-vi/devtools/client/performance.dtd
new file mode 100644
index 0000000000..2c3db5924f
--- /dev/null
+++ b/l10n-vi/devtools/client/performance.dtd
@@ -0,0 +1,130 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.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 Performance strings -->
+<!-- LOCALIZATION NOTE : FILE Do not translate commandkey -->
+
+<!-- LOCALIZATION NOTE : FILE 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 (performanceUI.bufferStatusTooltip): This string
+ - is displayed as the tooltip for the buffer capacity during a recording. -->
+<!ENTITY performanceUI.bufferStatusTooltip "Trình lược tả lưu các mẫu trong bộ đệm tròn và khi bộ đệm đạt đến giới hạn cho bản ghi, các mẫu mới hơn bắt đầu ghi đè lên các mẫu cũ.">
+
+<!-- LOCALIZATION NOTE (performanceUI.disabledRealTime.disabledE10S): This string
+ - is displayed as a message for why the real time overview graph is disabled
+ - when running on a build that can run multiprocess Firefox, but just is not enabled. -->
+<!ENTITY performanceUI.disabledRealTime.disabledE10S "Cho phép xử lý đa tiến trình Firefox trong tùy chọn để hiển thị dữ liệu ghi trong thời gian thực.">
+
+<!-- LOCALIZATION NOTE (performanceUI.bufferStatusFull): This string
+ - is displayed when the profiler's circular buffer has started to overlap. -->
+<!ENTITY performanceUI.bufferStatusFull "Bộ đệm đã đầy. Các mẫu cũ hơn hiện đang được ghi đè.">
+
+<!-- LOCALIZATION NOTE (performanceUI.unavailableNoticePB): This is the label shown
+ - in the details view while the profiler is unavailable, for example, while
+ - in Private Browsing mode. -->
+<!ENTITY performanceUI.unavailableNoticePB "Ghi lại một hồ sơ hiện không có sẵn. Vui lòng đóng tất cả các cửa sổ duyệt web riêng tư và thử lại.">
+
+<!-- LOCALIZATION NOTE (performanceUI.loadingNotice): This is the label shown
+ - in the details view while loading a profile. -->
+<!ENTITY performanceUI.loadingNotice "Đang tải…">
+
+<!-- LOCALIZATION NOTE (performanceUI.toolbar.*): These strings are displayed
+ - in the toolbar on buttons that select which view is currently shown. -->
+<!ENTITY performanceUI.toolbar.waterfall "Thác nước">
+<!ENTITY performanceUI.toolbar.waterfall.tooltiptext "Hiển thị các hoạt động khác nhau mà trình duyệt đang thực hiện trong quá trình ghi, được trình bày tuần tự như một thác nước.">
+<!ENTITY performanceUI.toolbar.js-calltree "Cây">
+<!ENTITY performanceUI.toolbar.js-calltree.tooltiptext "Làm nổi bật các chức năng JavaScript mà khi đó trình duyệt dành nhiều thời gian nhất trong quá trình ghi.">
+<!ENTITY performanceUI.toolbar.memory-calltree "Phân bố">
+<!ENTITY performanceUI.toolbar.allocations.tooltiptext "Hiển thị nơi bộ nhớ được phân bổ trong quá trình ghi.">
+<!ENTITY performanceUI.toolbar.js-flamegraph "Biểu đồ JS Flame">
+<!ENTITY performanceUI.toolbar.js-flamegraph.tooltiptext "Hiển thị ngăn xếp lệnh gọi JavaScript trong suốt quá trình ghi.">
+<!ENTITY performanceUI.toolbar.memory-flamegraph "Biểu đồ phân bổ Flame">
+
+<!-- LOCALIZATION NOTE (performanceUI.table.*): These strings are displayed
+ - in the call tree headers for a recording. -->
+<!ENTITY performanceUI.table.totalDuration "Tổng thời gian">
+<!ENTITY performanceUI.table.totalDuration.tooltip "Lượng thời gian dành cho chức năng này và chức năng mà nó gọi.">
+<!ENTITY performanceUI.table.selfDuration "Thời gian bản thân">
+<!ENTITY performanceUI.table.selfDuration.tooltip "Lượng thời gian chỉ dành cho chức năng này.">
+<!ENTITY performanceUI.table.totalPercentage "Tổng tỉ lệ">
+<!ENTITY performanceUI.table.totalPercentage.tooltip "Tỷ lệ phần trăm thời gian dành cho chức năng này và chức năng mà nó gọi.">
+<!ENTITY performanceUI.table.selfPercentage "Tỉ lệ bản thân">
+<!ENTITY performanceUI.table.selfPercentage.tooltip "Tỷ lệ phần trăm thời gian chỉ dành cho chức năng này.">
+<!ENTITY performanceUI.table.samples "Mẫu">
+<!ENTITY performanceUI.table.samples.tooltip "Số lần hàm này nằm trên ngăn xếp khi trình lược tả lấy mẫu.">
+<!ENTITY performanceUI.table.function "Hàm">
+<!ENTITY performanceUI.table.function.tooltip "Tên và vị trí nguồn của hàm được lấy mẫu.">
+<!ENTITY performanceUI.table.totalAlloc "Tổng số phân bố mẫu">
+<!ENTITY performanceUI.table.totalAlloc.tooltip "Tổng số lượng mẫu tại vị trí này và các đối tượng được gọi.">
+
+<!-- LOCALIZATION NOTE (performanceUI.options.filter.tooltiptext): This string
+ - is displayed next to the filter button-->
+<!ENTITY performanceUI.options.filter.tooltiptext "Chọn kiểu dữ liệu sẽ hiển thị trong dòng thời gian">
+
+<!-- LOCALIZATION NOTE (performanceUI.options.gear.tooltiptext): This is the
+ - tooltip for the options button. -->
+<!ENTITY performanceUI.options.gear.tooltiptext "Cấu hình tùy chọn hiệu suất.">
+
+<!-- LOCALIZATION NOTE (performanceUI.invertTree): This is the label shown next to
+ - a checkbox that inverts and un-inverts the profiler's call tree. -->
+<!ENTITY performanceUI.invertTree "Đảo ngược cây">
+<!ENTITY performanceUI.invertTree.tooltiptext "Đảo ngược cây các lệnh gọi hiển thị các đường dẫn lệnh gọi được định hình bắt đầu từ các khung nhỏ nhất và mở rộng ra các khung cũ hơn.">
+
+<!-- LOCALIZATION NOTE (performanceUI.invertFlameGraph): This is the label shown next to
+ - a checkbox that inverts and un-inverts the profiler's flame graph. -->
+<!ENTITY performanceUI.invertFlameGraph "Đảo ngược biểu đồ Flame">
+<!ENTITY performanceUI.invertFlameGraph.tooltiptext "Đảo ngược biểu đồ flame hiển thị các đường dẫn lệnh gọi được định hình bắt đầu từ các khung nhỏ nhất và mở rộng ra các khung cũ hơn.">
+
+<!-- LOCALIZATION NOTE (performanceUI.showPlatformData): This is the
+ - label for the checkbox that toggles whether or not Gecko platform data
+ - is displayed in the profiler. -->
+<!ENTITY performanceUI.showPlatformData "Hiện dữ liệu nền tảng Gecko">
+<!ENTITY performanceUI.showPlatformData.tooltiptext "Hiển thị dữ liệu nền tảng cho phép các báo cáo hồ sơ JavaScript bao gồm các biểu tượng nền tảng Gecko.">
+
+<!-- LOCALIZATION NOTE (performanceUI.showJITOptimizations): This string
+ - is displayed next to a checkbox determining whether or not JIT optimization data
+ - should be displayed. -->
+<!ENTITY performanceUI.showJITOptimizations "Hiện tối ưu hóa JIT">
+<!ENTITY performanceUI.showJITOptimizations.tooltiptext "Hiển thị dữ liệu tối ưu hóa JIT được lấy mẫu trong mỗi khung JavaScript.">
+
+<!-- LOCALIZATION NOTE (performanceUI.flattenTreeRecursion): This is the
+ - label for the checkbox that toggles the flattening of tree recursion in inspected
+ - functions in the profiler. -->
+<!ENTITY performanceUI.flattenTreeRecursion "Làm phẳng đệ quy cây">
+<!ENTITY performanceUI.flattenTreeRecursion.tooltiptext "Làm phẳng đệ quy khi kiểm tra chức năng.">
+
+<!-- LOCALIZATION NOTE (performanceUI.enableMemory): This string
+ - is displayed next to a checkbox determining whether or not memory
+ - measurements are enabled. -->
+<!ENTITY performanceUI.enableMemory "Bản ghi bộ nhớ">
+<!ENTITY performanceUI.enableMemory.tooltiptext "Ghi lại mức tiêu thụ bộ nhớ trong khi định hình.">
+
+<!-- LOCALIZATION NOTE (performanceUI.enableAllocations): This string
+ - is displayed next to a checkbox determining whether or not allocation
+ - measurements are enabled. -->
+<!ENTITY performanceUI.enableAllocations "Bản ghi phân bổ">
+<!ENTITY performanceUI.enableAllocations.tooltiptext "Ghi lại phân bổ đối tượng trong khi định hình.">
+
+<!-- LOCALIZATION NOTE (performanceUI.enableFramerate): This string
+ - is displayed next to a checkbox determining whether or not framerate
+ - is recorded. -->
+<!ENTITY performanceUI.enableFramerate "Bản ghi tốc độ khung hình">
+<!ENTITY performanceUI.enableFramerate.tooltiptext "Ghi lại tốc độ khung hình trong khi định hình.">
+
+<!-- LOCALIZATION NOTE (performanceUI.console.recordingNoticeStart/recordingNoticeEnd):
+ - This string is displayed when a recording is selected that started via console.profile.
+ - Wraps the command used to start, like "Currently recording via console.profile("label")" -->
+<!ENTITY performanceUI.console.recordingNoticeStart "Hiện đang ghi các bản ghi qua">
+<!ENTITY performanceUI.console.recordingNoticeEnd "">
+
+<!-- LOCALIZATION NOTE (performanceUI.console.stopCommandStart/stopCommandEnd):
+ - This string is displayed when a recording is selected that started via console.profile.
+ - Indicates how to stop the recording, wrapping the command, like
+ - "Stop recording by entering console.profileEnd("label") into the console." -->
+<!ENTITY performanceUI.console.stopCommandStart "Dừng ghi bằng cách nhập">
+<!ENTITY performanceUI.console.stopCommandEnd "vào bàn điều khiển.">
diff --git a/l10n-vi/devtools/client/performance.properties b/l10n-vi/devtools/client/performance.properties
new file mode 100644
index 0000000000..9a6c3fc17d
--- /dev/null
+++ b/l10n-vi/devtools/client/performance.properties
@@ -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/.
+
+# LOCALIZATION NOTE These strings are used inside the Performance Tools
+# which is available from the Web Developer sub-menu -> 'Performance'.
+# 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 (noRecordingsText): The text to display in the
+# recordings menu when there are no recorded profiles yet.
+noRecordingsText=Không có hồ sơ nào.
+
+# LOCALIZATION NOTE (recordingsList.itemLabel):
+# This string is displayed in the recordings list of the Performance Tools,
+# identifying a set of function calls. %S represents the number of recording,
+# iterating for every new recording, resulting in "Recording #1", "Recording #2", etc.
+recordingsList.itemLabel=Đang ghi #%S
+
+# LOCALIZATION NOTE (recordingsList.recordingLabel):
+# This string is displayed in the recordings list of the Performance Tools,
+# for an item that has not finished recording.
+recordingsList.recordingLabel=Trong tiến trình…
+
+# LOCALIZATION NOTE (recordingsList.loadingLabel):
+# This string is displayed in the recordings list of the Performance Tools,
+# for an item that is finished and is loading.
+recordingsList.loadingLabel=Đang tải…
+
+# LOCALIZATION NOTE (recordingsList.durationLabel):
+# This string is displayed in the recordings list of the Performance Tools,
+# for an item that has finished recording.
+recordingsList.durationLabel=%S ms
+
+# LOCALIZATION NOTE (recordingsList.saveLabel):
+# This string is displayed in the recordings list of the Performance Tools,
+# for saving an item to disk.
+recordingsList.saveLabel=Lưu
+
+# LOCALIZATION NOTE (graphs.fps):
+# This string is displayed in the framerate graph of the Performance Tools,
+# as the unit used to measure frames per second. This label should be kept
+# AS SHORT AS POSSIBLE so it doesn't obstruct important parts of the graph.
+graphs.fps=fps
+
+# LOCALIZATION NOTE (graphs.ms):
+# This string is displayed in the flamegraph of the Performance Tools,
+# as the unit used to measure time (in milliseconds). This label should be kept
+# AS SHORT AS POSSIBLE so it doesn't obstruct important parts of the graph.
+graphs.ms=ms
+
+# LOCALIZATION NOTE (graphs.memory):
+# This string is displayed in the memory graph of the Performance tool,
+# as the unit used to memory consumption. This label should be kept
+# AS SHORT AS POSSIBLE so it doesn't obstruct important parts of the graph.
+graphs.memory=MB
+
+# LOCALIZATION NOTE (category.*):
+# These strings are displayed in the categories graph of the Performance Tools,
+# as the legend for each block in every bar. These labels should be kept
+# AS SHORT AS POSSIBLE so they don't obstruct important parts of the graph.
+category.other=Gecko
+category.layout=Bố cục
+category.js=JIT
+category.gc=GC
+category.network=Mạng
+category.graphics=Đồ họa
+category.dom=DOM
+category.idle=Đang nghỉ
+category.tools=Công cụ
+
+# LOCALIZATION NOTE (table.bytes):
+# This string is displayed in the call tree after bytesize units.
+# %S represents the value in bytes.
+table.bytes=%S B
+
+# LOCALIZATION NOTE (table.ms2):
+# This string is displayed in the call tree after units of time in milliseconds.
+# %S represents the value in milliseconds.
+table.ms2=%S ms
+
+# LOCALIZATION NOTE (table.percentage3):
+# This string is displayed in the call tree after units representing percentages.
+# %S represents the value in percentage with two decimal points, localized.
+# there are two "%" after %S to escape and display "%"
+table.percentage3=%S%%
+
+# LOCALIZATION NOTE (table.root):
+# This string is displayed in the call tree for the root node.
+table.root=(gốc)
+
+# LOCALIZATION NOTE (table.idle):
+# This string is displayed in the call tree for the idle blocks.
+table.idle=(đang nghỉ)
+
+# LOCALIZATION NOTE (table.url.tooltiptext):
+# This string is displayed in the call tree as the tooltip text for the url
+# labels which, when clicked, jump to the debugger.
+table.url.tooltiptext=Xem nguồn trong trình gỡ lỗi
+
+# LOCALIZATION NOTE (table.view-optimizations.tooltiptext2):
+# This string is displayed in the icon displayed next to frames that
+# have optimization data
+table.view-optimizations.tooltiptext2=Khung chứa dữ liệu tối ưu hóa JIT
+
+# LOCALIZATION NOTE (recordingsList.importDialogTitle):
+# This string is displayed as a title for importing a recoring from disk.
+recordingsList.importDialogTitle=Nhập bản ghi…
+
+# LOCALIZATION NOTE (recordingsList.saveDialogTitle):
+# This string is displayed as a title for saving a recording to disk.
+recordingsList.saveDialogTitle=Xuất bản ghi…
+
+# LOCALIZATION NOTE (recordingsList.saveDialogJSONFilter):
+# This string is displayed as a filter for saving a recording to disk.
+recordingsList.saveDialogJSONFilter=Tập tin JSON
+
+# LOCALIZATION NOTE (recordingsList.saveDialogAllFilter):
+# This string is displayed as a filter for saving a recording to disk.
+recordingsList.saveDialogAllFilter=Tất cả tập tin
+
+# LOCALIZATION NOTE (timeline.tick):
+# This string is displayed in the timeline overview, for delimiting ticks
+# by time, in milliseconds.
+timeline.tick=%S ms
+
+# LOCALIZATION NOTE (timeline.records):
+# This string is displayed in the timeline waterfall, as a title for the menu.
+timeline.records=BẢN GHI
+
+# LOCALIZATION NOTE (profiler.bufferFull):
+# This string is displayed when recording, indicating how much of the
+# buffer is currently be used.
+# %S is the percentage of the buffer used -- there are two "%"s after to escape
+# the % that is actually displayed.
+# Example: "Buffer 54% full"
+profiler.bufferFull=Bộ đệm %S%% đầy đủ
+
+# LOCALIZATION NOTE (recordings.start):
+# The label shown on the main recording buttons to start recording.
+recordings.start=Bắt đầu ghi hiệu suất
+
+# LOCALIZATION NOTE (recordings.stop):
+# The label shown on the main recording buttons to stop recording.
+recordings.stop=Dừng ghi hiệu suất
+
+# LOCALIZATION NOTE (recordings.start.tooltip):
+# This string is displayed as a tooltip on a button that starts a new profile.
+recordings.start.tooltip=Tạo bản ghi hiệu suất mới.
+
+# LOCALIZATION NOTE (recordings.import.tooltip):
+# This string is displayed on a button that opens a dialog to import a saved profile data file.
+recordings.import.tooltip=Nhập…
+
+# LOCALIZATION NOTE (recordings.clear.tooltip):
+# This string is displayed on a button that removes all the recordings.
+recordings.clear.tooltip=Xóa trắng
diff --git a/l10n-vi/devtools/client/perftools.ftl b/l10n-vi/devtools/client/perftools.ftl
new file mode 100644
index 0000000000..b75a1f9542
--- /dev/null
+++ b/l10n-vi/devtools/client/perftools.ftl
@@ -0,0 +1,68 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 DevTools’ performance-new panel, about:profiling, and
+### the remote profiling panel. There are additional profiler strings in the appmenu.ftl
+### file that are used for the profiler popup.
+
+perftools-intro-title = Cài đặt Profiler
+perftools-intro-description =
+ Bản ghi khởi chạy profiler.firefox.com trong một thẻ mới. Tất cả dữ liệu được lưu trữ
+ cục bộ, nhưng bạn có thể chọn tải lên để chia sẻ.
+
+## All of the headings for the various sections.
+
+perftools-heading-settings = Tất cả cài đặt
+perftools-heading-buffer = Cài đặt bộ đệm
+perftools-heading-features = Tính năng
+perftools-heading-features-default = Tính năng (Được khuyến nghị bật theo mặc định)
+perftools-heading-features-disabled = Tính năng đã tắt
+perftools-heading-features-experimental = Thử nghiệm
+
+##
+
+perftools-description-intro =
+ Bản ghi sẽ khởi chạy <a>profiler.firefox.com</a> trong một thẻ mới. Tất cả dữ liệu được lưu trữ
+ cục bộ, nhưng bạn có thể chọn tải lên để chia sẻ.
+
+## The controls for the interval at which the profiler samples the code.
+
+perftools-range-interval-label = Khoảng thời gian lấy mẫu:
+perftools-range-interval-milliseconds = { NUMBER($interval, maxFractionalUnits: 2) } ms
+
+##
+
+# The size of the memory buffer used to store things in the profiler.
+perftools-range-entries-label = Kích thước đệm:
+perftools-devtools-interval-label = Khoảng thời gian
+perftools-devtools-settings-label = Cài đặt
+
+## Various statuses that affect the current state of profiling, not typically displayed.
+
+perftools-status-private-browsing-notice =
+ Profiler bị tắt khi Duyệt web riêng tư được bật.
+ Đóng tất cả Cửa sổ riêng tư để kích hoạt lại Profiler
+perftools-status-recording-stopped-by-another-tool = Việc ghi đã bị dừng bởi một công cụ khác.
+perftools-status-restart-required = Trình duyệt phải được khởi động lại để kích hoạt tính năng này.
+
+## These are shown briefly when the user is waiting for the profiler to respond.
+
+perftools-request-to-stop-profiler = Đang dừng ghi
+perftools-request-to-get-profile-and-stop-profiler = Đang ghi hồ sơ
+
+##
+
+perftools-button-start-recording = Bắt đầu ghi
+perftools-button-save-settings = Lưu cài đặt và quay lại
+perftools-button-restart = Khởi động lại
+perftools-button-add-directory = Thêm một thư mục
+perftools-button-remove-directory = Xóa mục đã chọn
+perftools-button-edit-settings = Chỉnh sửa cài đặt…
+
+## These messages are descriptions of the threads that can be enabled for the profiler.
+
+
+##
+
diff --git a/l10n-vi/devtools/client/responsive.properties b/l10n-vi/devtools/client/responsive.properties
new file mode 100644
index 0000000000..3b7b13437e
--- /dev/null
+++ b/l10n-vi/devtools/client/responsive.properties
@@ -0,0 +1,173 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 Responsive Design Mode,
+# available from the Web Developer sub-menu -> 'Responsive Design Mode'.
+#
+# 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 (responsive.editDeviceList2): Context menu item displayed in the
+# device selector.
+responsive.editDeviceList2=Chỉnh sửa danh sách…
+
+# LOCALIZATION NOTE (responsive.exit): Tooltip text of the exit button.
+responsive.exit=Đóng chế độ thiết kế tương thích
+
+# LOCALIZATION NOTE (responsive.rotate): Tooltip text of the rotate button.
+responsive.rotate=Xoay khung nhìn
+
+# LOCALIZATION NOTE (responsive.responsiveMode): Placeholder text for the
+# device selector.
+responsive.responsiveMode=Tương thích
+
+# LOCALIZATION NOTE (responsive.enableTouch): Tooltip text for the touch
+# simulation button when it's disabled.
+responsive.enableTouch=Bật giả lập chạm màn hình
+
+# LOCALIZATION NOTE (responsive.disableTouch): Tooltip text for the touch
+# simulation button when it's enabled.
+responsive.disableTouch=Tắt giả lập chạm màn hình
+
+# LOCALIZATION NOTE (responsive.screenshot): Tooltip of the screenshot button.
+responsive.screenshot=Chụp ảnh màn hình của khung nhìn
+
+# LOCALIZATION NOTE (responsive.screenshotGeneratedFilename): The auto generated
+# filename.
+# The first argument (%1$S) is the date string in yyyy-mm-dd format and the
+# second argument (%2$S) is the time string in HH.MM.SS format.
+responsive.screenshotGeneratedFilename=Ảnh chụp màn hình %1$S tại %2$S
+
+# LOCALIZATION NOTE (responsive.remoteOnly): Message displayed in the tab's
+# notification box if a user tries to open Responsive Design Mode in a
+# non-remote tab.
+responsive.remoteOnly=Chế độ thiết kế tương thích chỉ có sẵn cho các thẻ trình duyệt từ xa, chẳng hạn như chúng được sử dụng cho các nội dung web ở chế độ đa tiến trình của Firefox.
+
+# LOCALIZATION NOTE (responsive.changeDevicePixelRatio): Tooltip for the
+# device pixel ratio dropdown when is enabled.
+responsive.changeDevicePixelRatio=Thay đổi tỷ lệ pixel thiết bị của khung nhìn
+
+# LOCALIZATION NOTE (responsive.devicePixelRatio.auto): Tooltip for the device pixel ratio
+# dropdown when it is disabled because a device is selected.
+# The argument (%1$S) is the selected device (e.g. iPhone 6) that set
+# automatically the device pixel ratio value.
+responsive.devicePixelRatio.auto=Tỷ lệ pixel thiết bị tự động được đặt bởi %1$S
+
+# LOCALIZATION NOTE (responsive.customDeviceName): Default value in a form to
+# add a custom device based on an arbitrary size (no association to an existing
+# device).
+responsive.customDeviceName=Thiết bị tùy chỉnh
+
+# LOCALIZATION NOTE (responsive.customDeviceNameFromBase): Default value in a
+# form to add a custom device based on the properties of another. %1$S is the
+# name of the device we're staring from, such as "Apple iPhone 6".
+responsive.customDeviceNameFromBase=%1$S (Tùy chỉnh)
+
+# LOCALIZATION NOTE (responsive.addDevice2): Button text that reveals a form to
+# be used for adding custom devices.
+responsive.addDevice2=Thêm thiết bị tùy chỉnh…
+
+# LOCALIZATION NOTE (responsive.deviceAdderName): Label of form field for the
+# name of a new device.
+responsive.deviceAdderName=Tên
+
+# LOCALIZATION NOTE (responsive.deviceAdderSize): Label of form field for the
+# size of a new device.
+responsive.deviceAdderSize=Kích thước
+
+# LOCALIZATION NOTE (responsive.deviceAdderPixelRatio2): Label of form field for
+# the device pixel ratio of a new device.
+responsive.deviceAdderPixelRatio2=Tỉ lệ pixel của thiết bị
+
+# LOCALIZATION NOTE (responsive.deviceAdderUserAgent2): Label of form field for
+# the user agent of a new device.
+responsive.deviceAdderUserAgent2=Chuỗi đại diện người dùng
+
+# LOCALIZATION NOTE (responsive.deviceAdderTouch2): Label of form field for the
+# touch input support of a new device.
+responsive.deviceAdderTouch2=Màn hình cảm ứng
+
+# LOCALIZATION NOTE (responsive.deviceAdderSave): Button text that submits a
+# form to add a new device.
+responsive.deviceAdderSave=Lưu
+
+# LOCALIZATION NOTE (responsive.deviceAdderCancel): Button text that cancels a
+# form to add a new device.
+responsive.deviceAdderCancel=Hủy bỏ
+
+# LOCALIZATION NOTE (responsive.deviceDetails): Tooltip that appears when
+# hovering on a device in the device modal. %1$S is the width of the device.
+# %2$S is the height of the device. %3$S is the device pixel ratio value of the
+# device. %4$S is the user agent of the device. %5$S is a boolean value
+# noting whether touch input is supported.
+responsive.deviceDetails=Kích thước: %1$S x %2$S\nDPR: %3$S\nUA: %4$S\nChạm: %5$S
+
+# LOCALIZATION NOTE (responsive.deviceDetails.browserAndOS): Used to display the browser
+# and the OS in a tooltip that appears when hovering on a device in the device modal.
+# %1$S: browser
+# %2$S: OS
+responsive.deviceDetails.browserAndOS=%1$S trên %2$S
+
+# LOCALIZATION NOTE (responsive.deviceDetails.size): Used to display the pixel
+# size in a tooltip that appears when hovering on a device in the device modal.
+# %1$S: width
+# %2$S: height
+responsive.deviceDetails.size=Kích thước: %1$S x %2$S
+
+# LOCALIZATION NOTE (responsive.deviceDetails.DPR): Used to display the DPR in a tooltip
+# that appears when hovering on a device in the device modal.
+# %1$S: device pixel ratio
+responsive.deviceDetails.DPR=DPR: %1$S
+
+# LOCALIZATION NOTE (responsive.deviceDetails.UA): Used to display the UA in a tooltip
+# that appears when hovering on a device in the device modal.
+# %1$S: user agent
+responsive.deviceDetails.UA=UA: %1$S
+
+# LOCALIZATION NOTE (responsive.deviceDetails.touch): Used to display a boolean value
+# which is whether the touch input is supported or not in a tooltip that appears when
+# hovering on a device in the device modal.
+# %1$S: touch
+responsive.deviceDetails.touch=Chạm: %1$S
+
+# LOCALIZATION NOTE (responsive.devicePixelRatioOption): UI option in a menu to configure
+# the device pixel ratio. %1$S is the devicePixelRatio value of the device.
+responsive.devicePixelRatioOption=DPR: %1$S
+
+# LOCALIZATION NOTE (responsive.reloadConditions.touchSimulation): Label on checkbox used
+# to select whether to reload when touch simulation is toggled.
+responsive.reloadConditions.touchSimulation=Tải lại khi mô phỏng cảm ứng được bật/tắt
+
+# LOCALIZATION NOTE (responsive.reloadConditions.userAgent): Label on checkbox used
+# to select whether to reload when user agent is changed.
+responsive.reloadConditions.userAgent=Tải lại khi chuỗi đại diện người dùng thay đổi
+
+# LOCALIZATION NOTE (responsive.reloadNotification.description2): Text in notification bar
+# shown on first open to clarify that some features need a reload to apply.
+responsive.reloadNotification.description2=Thay đổi mô phỏng thiết bị yêu cầu tải lại để áp dụng đầy đủ. Tải lại tự động được tắt theo mặc định để tránh mất bất kỳ thay đổi nào trong DevTools. Bạn có thể kích hoạt tải lại thông qua menu Cài đặt.
+
+# LOCALIZATION NOTE (responsive.leftAlignViewport): Label on checkbox used in the settings
+# menu.
+responsive.leftAlignViewport=Khung nhìn bên trái
+
+# LOCALIZATION NOTE (responsive.customUserAgent): This is the placeholder for the user
+# agent input in the responsive design mode toolbar.
+responsive.customUserAgent=Tùy chỉnh chuỗi đại diện người dùng
+
+responsive.showUserAgentInput=Hiện chuỗi đại diện người dùng
+
+# LOCALIZATION NOTE (responsive.deviceSettings): The header text for the device settings
+# view.
+responsive.deviceSettings=Cài đặt thiết bị
+
+# LOCALIZATION NOTE (responsive.deviceNameAlreadyInUse): This is the text shown when adding a new
+# device with an already existing device name.
+responsive.deviceNameAlreadyInUse=Tên thiết bị đã được sử dụng
+
+# LOCALIZATION NOTE (responsive.deviceFormUpdate): Button text that updates a custom
+# device when the form is submitted.
+responsive.deviceFormUpdate=Cập nhật
diff --git a/l10n-vi/devtools/client/shared.properties b/l10n-vi/devtools/client/shared.properties
new file mode 100644
index 0000000000..09ab2f1961
--- /dev/null
+++ b/l10n-vi/devtools/client/shared.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 (dimensions): This is used to display the dimensions
+# of a node or image, like 100×200.
+dimensions=%S\u00D7%S
+
+# LOCALIZATION NOTE (boxModelSize.accessibleLabel): This is used to read the
+# dimensions of a node by a screen reader. This helps communicate
+# the visual information in a more explicit form. Example:
+# Size: Width 100, height 200.
+boxModelSize.accessibleLabel=Kích thước: %1$S chiều rộng, %2$S chiều cao
+
+# LOCALIZATION NOTE (boxModelInfo.accessibleLabel): This is used to read the
+# dimensions and position of a node by a screen reader. This helps communicate
+# the visual information in a more explicit form. Example:
+# Dimensions: Width 100, height 200, position static.
+boxModelInfo.accessibleLabel=Kích thước: Chiều rộng %1$S, chiều cao %2$S, vị trí %3$S
+
+# LOCALIZATION NOTE (boxModelEditable.accessibleLabel): The string spoken by
+# screen readers for each button in the box model view that opens that property
+# for editing. %1$S is the property displayed in the tooltip when hovering.
+# %2$S is the value that is visually displayed.
+# Example: margin-left: 0.
+boxModelEditable.accessibleLabel=%1$S: %2$S
diff --git a/l10n-vi/devtools/client/sourceeditor.dtd b/l10n-vi/devtools/client/sourceeditor.dtd
new file mode 100644
index 0000000000..e6fd9e9d69
--- /dev/null
+++ b/l10n-vi/devtools/client/sourceeditor.dtd
@@ -0,0 +1,25 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- LOCALIZATION NOTE : FILE This file contains the Source Editor component
+ - strings. The source editor component is used within the Scratchpad and
+ - Style Editor tools. -->
+
+<!-- LOCALIZATION NOTE : FILE This file contains the Source Editor component
+ - strings. The source editor component is used within the Style Editor. -->
+
+<!-- LOCALIZATION NOTE : FILE Do not translate commandkeys -->
+
+<!-- LOCALIZATION NOTE : FILE 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. -->
+
+
+
+
+<!ENTITY gotoLineCmd.label "Nhảy đến dòng…">
+<!ENTITY gotoLineCmd.key "J">
+<!ENTITY gotoLineCmd.accesskey "J">
diff --git a/l10n-vi/devtools/client/sourceeditor.properties b/l10n-vi/devtools/client/sourceeditor.properties
new file mode 100644
index 0000000000..8f41257937
--- /dev/null
+++ b/l10n-vi/devtools/client/sourceeditor.properties
@@ -0,0 +1,117 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside the Source Editor component.
+# This component is used whenever source code is displayed for the purpose of
+# being edited, inside the Firefox developer tools - current examples are the
+# Scratchpad and the Style Editor tools.
+
+# LOCALIZATION NOTE These strings are used inside the Source Editor component.
+# This component is used whenever source code is displayed for the purpose of
+# being edited, inside the Firefox developer tools (like Style Editor).
+
+# LOCALIZATION NOTE 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 (findCmd.promptMessage): This is the message shown when
+# the user wants to search for a string in the code. You can
+# access this feature by pressing Ctrl-F on Windows/Linux or Cmd-F on Mac.
+findCmd.promptMessage=Tìm kiếm:
+
+# LOCALIZATION NOTE (gotoLineCmd.promptTitle): This is the dialog title used
+# when the user wants to jump to a specific line number in the code. You can
+# access this feature by pressing Ctrl-J on Windows/Linux or Cmd-J on Mac.
+gotoLineCmd.promptTitle=Chuyển đến dòng…
+
+# LOCALIZATION NOTE (autocompletion.docsLink): This is the text shown on
+# the link inside of the documentation popup. If you type 'document' in Scratchpad
+# then press Shift+Space you can see the popup.
+autocompletion.docsLink=tài liệu
+
+# LOCALIZATION NOTE (autocompletion.notFound): This is the text shown in
+# the documentation popup if Tern fails to find a type for the object.
+autocompletion.notFound=không tìm thấy
+
+# LOCALIZATION NOTE (jumpToLine.commandkey): This is the key to use in
+# conjunction with accel (Command on Mac or Ctrl on other platforms) to jump to
+# a specific line in the editor.
+jumpToLine.commandkey=J
+
+# LOCALIZATION NOTE (toggleComment.commandkey): This is the key to use in
+# conjunction with accel (Command on Mac or Ctrl on other platforms) to either
+# comment or uncomment selected lines in the editor.
+toggleComment.commandkey=/
+
+# LOCALIZATION NOTE (indentLess.commandkey): This is the key to use in
+# conjunction with accel (Command on Mac or Ctrl on other platforms) to reduce
+# indentation level in CodeMirror. However, its default value also used by
+# the Toolbox to switch between tools so we disable it.
+#
+# DO NOT translate this key without proper synchronization with toolbox.dtd.
+indentLess.commandkey=[
+
+# LOCALIZATION NOTE (indentMore.commandkey): This is the key to use in
+# conjunction with accel (Command on Mac or Ctrl on other platforms) to increase
+# indentation level in CodeMirror. However, its default value also used by
+# the Toolbox to switch between tools
+#
+# DO NOT translate this key without proper synchronization with toolbox.dtd.
+indentMore.commandkey=]
+
+# LOCALIZATION NOTE (moveLineUp.commandkey): This is the combination of keys
+# used to move the current line up.
+# Do not localize "Alt", "Up", or change the format of the string. These are key
+# identifiers, not messages displayed to the user.
+moveLineUp.commandkey=Alt-Up
+
+# LOCALIZATION NOTE (moveLineDown.commandkey): This is the combination of keys
+# used to move the current line up.
+# Do not localize "Alt", "Down", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+moveLineDown.commandkey=Alt-Down
+
+# LOCALIZATION NOTE (autocompletion.commandkey): This is the key, used with
+# Ctrl, for code autocompletion.
+# Do not localize "Space", it's the key identifier, not a message displayed to
+# the user.
+autocompletion.commandkey=Space
+
+# LOCALIZATION NOTE (showInformation2.commandkey): This is the combination of
+# keys used to display more information, like type inference.
+# Do not localize "Shift", "Ctrl", "Space", or change the format of the string.
+# These are key identifiers, not messages displayed to the user.
+showInformation2.commandkey=Shift-Ctrl-Space
+
+# LOCALIZATION NOTE (find.key):
+# Key shortcut used to find the typed search
+# Do not localize "CmdOrCtrl", "F", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+find.key=CmdOrCtrl+F
+
+# LOCALIZATION NOTE (replaceAll.key):
+# Key shortcut used to replace the content of the editor
+# Do not localize "Shift", "CmdOrCtrl", "F", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+replaceAll.key=Shift+CmdOrCtrl+F
+
+# LOCALIZATION NOTE (replaceAllMac.key):
+# Key shortcut used to replace the content of the editor on Mac
+# Do not localize "Alt", "CmdOrCtrl", "F", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+replaceAllMac.key=Alt+CmdOrCtrl+F
+
+# LOCALIZATION NOTE (findNext.key):
+# Key shortcut used to find again the typed search
+# Do not localize "CmdOrCtrl", "G", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+findNext.key=CmdOrCtrl+G
+
+# LOCALIZATION NOTE (findPrev.key):
+# Key shortcut used to find the previous typed search
+# Do not localize "Shift", "CmdOrCtrl", "G", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+findPrev.key=Shift+CmdOrCtrl+G
diff --git a/l10n-vi/devtools/client/startup.properties b/l10n-vi/devtools/client/startup.properties
new file mode 100644
index 0000000000..7c832c0bbd
--- /dev/null
+++ b/l10n-vi/devtools/client/startup.properties
@@ -0,0 +1,253 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (optionsButton.tooltip): This is used as the tooltip
+# for the options panel tab.
+optionsButton.tooltip=Tùy chọn hộp công cụ
+
+# LOCALIZATION NOTE (options.label): This is used as the label of the tab in
+# the devtools window.
+options.label=Tùy chọn
+
+# LOCALIZATION NOTE (options.panelLabel): This is used as the label for the
+# toolbox panel.
+options.panelLabel=Bảng tùy chọn hộp công cụ
+
+# LOCALIZATION NOTE (options.darkTheme.label2)
+# Used as a label for dark theme
+options.darkTheme.label2=Tối
+
+# LOCALIZATION NOTE (options.lightTheme.label2)
+# Used as a label for light theme
+options.lightTheme.label2=Sáng
+
+# LOCALIZATION NOTE (performance.label):
+# This string is displayed in the title of the tab when the profiler is
+# displayed inside the developer tools window and in the Developer Tools Menu.
+performance.label=Hiệu suất
+
+# LOCALIZATION NOTE (performance.panelLabel):
+# This is used as the label for the toolbox panel.
+performance.panelLabel=Bảng công cụ hiệu năng
+
+# LOCALIZATION NOTE (performance.accesskey)
+# Used for the menuitem in the tool menu
+performance.accesskey=P
+
+# LOCALIZATION NOTE (performance.tooltip):
+# This string is displayed in the tooltip of the tab when the profiler is
+# displayed inside the developer tools window.
+# Keyboard shortcut for Performance Tools will be shown inside brackets.
+performance.tooltip=Hiệu suất (%S)
+
+# LOCALIZATION NOTE (MenuWebconsole.label): the string displayed in the Tools
+# menu as a shortcut to open the devtools with the Web Console tab selected.
+MenuWebconsole.label=Bảng điều khiển web
+
+# LOCALIZATION NOTE (ToolboxTabWebconsole.label): the string displayed as the
+# label of the tab in the devtools window.
+ToolboxTabWebconsole.label=Bảng điều khiển
+
+# LOCALIZATION NOTE (ToolboxWebConsole.panelLabel): the string used as the
+# label for the toolbox panel.
+ToolboxWebConsole.panelLabel=Bảng điều khiển
+
+# LOCALIZATION NOTE (ToolboxWebconsole.tooltip2): the string displayed in the
+# tooltip of the tab when the Web Console is displayed inside the developer
+# tools window.
+# Keyboard shortcut for Console will be shown inside the brackets.
+ToolboxWebconsole.tooltip2=Bảng điều khiẻn web (%S)
+
+webConsoleCmd.accesskey=W
+
+# LOCALIZATION NOTE (ToolboxDebugger.label):
+# This string is displayed in the title of the tab when the debugger is
+# displayed inside the developer tools window and in the Developer Tools Menu.
+ToolboxDebugger.label=Trình gỡ lỗi
+
+# LOCALIZATION NOTE (ToolboxDebugger.panelLabel):
+# This is used as the label for the toolbox panel.
+ToolboxDebugger.panelLabel=Bảng gỡ lỗi
+
+# LOCALIZATION NOTE (ToolboxDebugger.tooltip4):
+# This string is displayed in the tooltip of the tab when the debugger is
+# displayed inside the developer tools window.
+ToolboxDebugger.tooltip4=Trình gỡ lỗi JavaScript (%S)
+
+# LOCALIZATION NOTE (debuggerMenu.accesskey)
+# Used for the menuitem in the tool menu
+debuggerMenu.accesskey=D
+
+# LOCALIZATION NOTE (ToolboxStyleEditor.label):
+# This string is displayed in the title of the tab when the style editor is
+# displayed inside the developer tools window and in the Developer Tools Menu.
+ToolboxStyleEditor.label=Trình soạn thảo kiểu mẫu
+
+# LOCALIZATION NOTE (ToolboxStyleEditor.panelLabel):
+# This is used as the label for the toolbox panel.
+ToolboxStyleEditor.panelLabel=Bảng trình soạn thảo kiểu mẫu
+
+# LOCALIZATION NOTE (ToolboxStyleEditor.tooltip3):
+# This string is displayed in the tooltip of the tab when the style editor is
+# displayed inside the developer tools window.
+# A keyboard shortcut for Stylesheet Editor will be shown inside the latter pair of brackets.
+ToolboxStyleEditor.tooltip3=Trình soạn thảo kiểu mẫu (CSS) (%S)
+
+# LOCALIZATION NOTE (open.accesskey): The access key used to open the style
+# editor.
+open.accesskey=l
+
+# LOCALIZATION NOTE (inspector.*)
+# Used for the menuitem in the tool menu
+inspector.label=Trình kiểm tra
+inspector.accesskey=I
+
+# LOCALIZATION NOTE (inspector.panelLabel)
+# Labels applied to the panel and views within the panel in the toolbox
+inspector.panelLabel=Bảng kiểm tra
+
+# LOCALIZATION NOTE (inspector.tooltip2)
+# Keyboard shortcut for DOM and Style Inspector will be shown inside brackets.
+inspector.tooltip2=Trình kiểm tra DOM và kiểu mẫu (%S)
+
+# LOCALIZATION NOTE (inspector.mac.tooltip)
+# This is the exact same string as inspector.tooltip2, except that we show it
+# on mac only, where we support toggling the inspector with either cmd+shift+C,
+# or cmd+opt+C
+inspector.mac.tooltip=Trình kiểm tra DOM và kiểu mẫu (%1$S hoặc %2$S)
+
+# LOCALIZATION NOTE (netmonitor.label):
+# This string is displayed in the title of the tab when the Network Monitor is
+# displayed inside the developer tools window and in the Developer Tools Menu.
+netmonitor.label=Mạng
+
+# LOCALIZATION NOTE (netmonitor.panelLabel):
+# This is used as the label for the toolbox panel.
+netmonitor.panelLabel=Bảng điều khiển mạng
+
+# LOCALIZATION NOTE (netmonitor.accesskey)
+# Used for the menuitem in the tool menu
+netmonitor.accesskey=N
+
+# LOCALIZATION NOTE (netmonitor.tooltip2):
+# This string is displayed in the tooltip of the tab when the Network Monitor is
+# displayed inside the developer tools window.
+# Keyboard shortcut for Network Monitor will be shown inside the brackets.
+netmonitor.tooltip2=Giám sát mạng (%S)
+
+# LOCALIZATION NOTE (storage.accesskey): The access key used to open the storage
+# editor.
+storage.accesskey=a
+
+# LOCALIZATION NOTE (storage.label):
+# This string is displayed as the label of the tab in the developer tools window
+storage.label=Lưu trữ
+
+# LOCALIZATION NOTE (storage.menuLabel):
+# This string is displayed in the Tools menu as a shortcut to open the devtools
+# with the Storage Inspector tab selected.
+storage.menuLabel=Trình kiểm tra lưu trữ
+
+# LOCALIZATION NOTE (storage.panelLabel):
+# This string is used as the aria-label for the iframe of the Storage Inspector
+# tool in developer tools toolbox.
+storage.panelLabel=Bảng điều khiển lưu trữ
+
+# LOCALIZATION NOTE (storage.tooltip3):
+# This string is displayed in the tooltip of the tab when the storage editor is
+# displayed inside the developer tools window.
+# A keyboard shortcut for Storage Inspector will be shown inside the brackets.
+storage.tooltip3=Trình kiểm tra lưu trữ (Cookie, lưu trữ cục bộ, …) (%S)
+
+# LOCALIZATION NOTE (memory.label): This string is displayed in the title of the
+# tab when the memory tool is displayed inside the developer tools window and in
+# the Developer Tools Menu.
+memory.label=Bộ nhớ
+
+# LOCALIZATION NOTE (memory.panelLabel): This is used as the label for the
+# toolbox panel.
+memory.panelLabel=Bảng điều khiển bộ nhớ
+
+# LOCALIZATION NOTE (memory.tooltip): This string is displayed in the tooltip of
+# the tab when the memory tool is displayed inside the developer tools window.
+memory.tooltip=Bộ nhớ
+
+# LOCALIZATION NOTE (dom.label):
+# This string is displayed in the title of the tab when the DOM panel is
+# displayed inside the developer tools window and in the Developer Tools Menu.
+dom.label=DOM
+
+# LOCALIZATION NOTE (dom.panelLabel):
+# This is used as the label for the toolbox panel.
+dom.panelLabel=Bảng điều khiển DOM
+
+# LOCALIZATION NOTE (dom.accesskey)
+# Used for the menuitem in the tool menu
+dom.accesskey=D
+
+# LOCALIZATION NOTE (dom.tooltip):
+# This string is displayed in the tooltip of the tab when the DOM is
+# displayed inside the developer tools window.
+# Keyboard shortcut for DOM panel will be shown inside the brackets.
+dom.tooltip=DOM (%S)
+
+# LOCALIZATION NOTE (accessibility.label):
+# This string is displayed in the title of the tab when the Accessibility panel
+# is displayed inside the developer tools window and in the Developer Tools Menu.
+accessibility.label=Trợ năng
+
+# LOCALIZATION NOTE (accessibility.panelLabel):
+# This is used as the label for the toolbox panel.
+accessibility.panelLabel=Bảng điều khiển trợ năng
+
+# LOCALIZATION NOTE (accessibility.accesskey)
+# Used for the menuitem in the tool menu
+accessibility.accesskey=y
+
+# LOCALIZATION NOTE (accessibility.tooltip3):
+# This string is displayed in the tooltip of the tab when the Accessibility is
+# displayed inside the developer tools window.
+# Keyboard shortcut for Accessibility panel will be shown inside the brackets.
+accessibility.tooltip3=Trợ năng (%S)
+
+# LOCALIZATION NOTE (application.label):
+# This string is displayed in the title of the tab when the Application panel
+# is displayed inside the developer tools window and in the Developer Tools Menu.
+application.label=Ứng dụng
+
+# LOCALIZATION NOTE (application.panelLabel):
+# This is used as the label for the toolbox panel.
+application.panelLabel=Bảng ứng dụng
+
+# LOCALIZATION NOTE (application.tooltip):
+# This string is displayed in the tooltip of the tab when the Application panel is
+# displayed inside the developer tools window.
+application.tooltip=Bảng ứng dụng
+
+# LOCALIZATION NOTE (toolbox.buttons.responsive):
+# This is the tooltip of the button in the toolbox toolbar that toggles
+# the Responsive mode.
+# Keyboard shortcut will be shown inside brackets.
+toolbox.buttons.responsive = Chế độ thiết kế tương thích (%S)
+
+# LOCALIZATION NOTE (toolbox.buttons.paintflashing):
+# This is the tooltip of the paintflashing button in the toolbox toolbar
+# that toggles paintflashing.
+toolbox.buttons.paintflashing = Bật/tắt nhấp nháy đối tượng
+
+# LOCALIZATION NOTE (toolbox.buttons.screenshot):
+# This is the tooltip of the button in the toolbox toolbar that allows you to
+# take a screenshot of the entire page
+toolbox.buttons.screenshot = Chụp ảnh màn hình của toàn bộ trang
+
+# LOCALIZATION NOTE (toolbox.buttons.rulers):
+# This is the tooltip of the button in the toolbox toolbar that toggles the
+# rulers in the page
+toolbox.buttons.rulers = Bật/tắt thước kẻ cho trang
+
+# LOCALIZATION NOTE (toolbox.buttons.measure):
+# This is the tooltip of the button in the toolbox toolbar that toggles the
+# measuring tools
+toolbox.buttons.measure = Đo một phần của trang
+
diff --git a/l10n-vi/devtools/client/storage.dtd b/l10n-vi/devtools/client/storage.dtd
new file mode 100644
index 0000000000..17477859dc
--- /dev/null
+++ b/l10n-vi/devtools/client/storage.dtd
@@ -0,0 +1,17 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- LOCALIZATION NOTE : This file contains the Storage Inspector strings. -->
+
+<!-- LOCALIZATION NOTE : Placeholder for the searchbox that allows you to filter the table items. -->
+<!ENTITY searchBox.placeholder "Lọc các mục">
+
+<!-- LOCALIZATION NOTE : Label of popup menu action to delete all storage items. -->
+<!ENTITY storage.popupMenu.deleteAllLabel "Xoá tất cả">
+
+<!-- LOCALIZATION NOTE : Label of popup menu action to delete all session cookies. -->
+<!ENTITY storage.popupMenu.deleteAllSessionCookiesLabel "Xóa tất cả cookie của phiên">
+
+<!-- LOCALIZATION NOTE : Label of popup menu action to copy a storage item. -->
+<!ENTITY storage.popupMenu.copyLabel "Sao chép">
diff --git a/l10n-vi/devtools/client/storage.ftl b/l10n-vi/devtools/client/storage.ftl
new file mode 100644
index 0000000000..52d1945e3e
--- /dev/null
+++ b/l10n-vi/devtools/client/storage.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/.
+
+
+### These strings are used inside the Storage Inspector.
+
+# Hint shown when the selected storage host does not contain any data
+storage-table-empty-text = Không có dữ liệu cho máy chủ được chọn
+
+# Hint shown when the cookies storage type is selected. Clicking the link will open
+# https://developer.mozilla.org/docs/Tools/Storage_Inspector/Cookies
+storage-table-type-cookies-hint = Xem và chỉnh sửa cookie bằng cách chọn một máy chủ lưu trữ. <a data-l10n-name="learn-more-link">Tìm hiểu thêm</a>
+
+# Hint shown when the local storage type is selected. Clicking the link will open
+# https://developer.mozilla.org/docs/Tools/Storage_Inspector/Local_Storage_Session_Storage
+storage-table-type-localstorage-hint = Xem và chỉnh sửa bộ nhớ cục bộ bằng cách chọn một máy chủ lưu trữ. <a data-l10n-name="learn-more-link">Tìm hiểu thêm</a>
+
+# Hint shown when the session storage type is selected. Clicking the link will open
+# https://developer.mozilla.org/docs/Tools/Storage_Inspector/Local_Storage_Session_Storage
+storage-table-type-sessionstorage-hint = Xem và chỉnh sửa bộ nhớ phiên bằng cách chọn máy chủ lưu trữ. <a data-l10n-name="learn-more-link">Tìm hiểu thêm</a>
+
+# Hint shown when the IndexedDB storage type is selected. Clicking the link will open
+# https://developer.mozilla.org/docs/Tools/Storage_Inspector/IndexedDB
+storage-table-type-indexeddb-hint = Xem và xóa các mục IndexedDBbằng cách chọn cơ sở dữ liệu. <a data-l10n-name="learn-more-link">Tìm hiểu thêm</a>
+
+# Hint shown when the cache storage type is selected. Clicking the link will open
+# https://developer.mozilla.org/docs/Tools/Storage_Inspector/Cache_Storage
+storage-table-type-cache-hint = Xem và xóa các mục lưu trữ bộ nhớ đệm bằng cách chọn một bộ lưu trữ. <a data-l10n-name="learn-more-link">Tìm hiểu thêm</a>
+
+# Hint shown when the extension storage type is selected. Clicking the link will open
+# https://developer.mozilla.org/docs/Tools/Storage_Inspector/Extension_Storage
+storage-table-type-extensionstorage-hint = Xem và chỉnh sửa bộ nhớ tiện ích mở rộng bằng cách chọn máy chủ. <a data-l10n-name="learn-more-link">Tìm hiểu thêm</a>
diff --git a/l10n-vi/devtools/client/storage.properties b/l10n-vi/devtools/client/storage.properties
new file mode 100644
index 0000000000..cc2edb7e63
--- /dev/null
+++ b/l10n-vi/devtools/client/storage.properties
@@ -0,0 +1,104 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 Storage Editor tool.
+# LOCALIZATION NOTE 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 (storage.filter.key):
+# Key shortcut used to focus the filter box on top of the data view
+storage.filter.key=CmdOrCtrl+F
+
+# LOCALIZATION NOTE (tree.labels.*):
+# These strings are the labels for Storage type groups present in the Storage
+# Tree, like cookies, local storage etc.
+tree.labels.cookies=Cookie
+tree.labels.localStorage=Lưu trữ cục bộ
+tree.labels.sessionStorage=Lưu trữ phiên
+tree.labels.indexedDB=Đã lập chỉ mục DB
+tree.labels.Cache=Bộ nhớ đệm
+
+tree.labels.extensionStorage=Lưu trữ tiện ích mở rộng
+
+# LOCALIZATION NOTE (table.headers.*.*):
+# These strings are the header names of the columns in the Storage Table for
+# each type of storage available through the Storage Tree to the side.
+table.headers.cookies.name=Tên
+table.headers.cookies.value=Giá trị
+
+table.headers.cookies.expires2=Expires / Max-Age
+table.headers.cookies.size=Kích thước
+table.headers.cookies.lastAccessed2=Lần truy cập cuối
+table.headers.cookies.creationTime2=Được tạo
+
+table.headers.Cache.status=Trạng thái
+
+table.headers.indexedDB.uniqueKey=Khóa duy nhất
+table.headers.indexedDB.name=Khóa
+table.headers.indexedDB.db=Tên cơ sở dữ liệu
+table.headers.indexedDB.storage=Lưu trữ
+table.headers.indexedDB.objectStore=Tên kho đối tượng
+table.headers.indexedDB.value=Giá trị
+table.headers.indexedDB.origin=Gốc
+table.headers.indexedDB.version=Phiên bản
+table.headers.indexedDB.objectStores=Kho đối tượng
+table.headers.indexedDB.keyPath2=Đường dẫn khóa
+table.headers.indexedDB.autoIncrement=Tự động tăng
+table.headers.indexedDB.indexes=Chỉ số
+
+table.headers.extensionStorage.area=Khu vực lưu trữ
+
+# LOCALIZATION NOTE (label.expires.session):
+# This string is displayed in the expires column when the cookie is Session
+# Cookie
+label.expires.session=Phiên
+
+# LOCALIZATION NOTE (storage.search.placeholder):
+# This is the placeholder text in the sidebar search box
+storage.search.placeholder=Lọc giá trị
+
+# LOCALIZATION NOTE (storage.data.label):
+# This is the heading displayed over the item value in the sidebar
+storage.data.label=Dữ liệu
+
+# LOCALIZATION NOTE (storage.parsedValue.label):
+# This is the heading displayed over the item parsed value in the sidebar
+storage.parsedValue.label=Giá trị phân tích
+
+# LOCALIZATION NOTE (storage.popupMenu.deleteLabel):
+# Label of popup menu action to delete storage item.
+storage.popupMenu.deleteLabel=Xóa “%S”
+
+# LOCALIZATION NOTE (storage.popupMenu.addItemLabel):
+# Label of popup menu action to add an item.
+storage.popupMenu.addItemLabel=Thêm mục
+
+# LOCALIZATION NOTE (storage.popupMenu.refreshItemLabel):
+# Label of popup menu action to refresh an item.
+storage.popupMenu.refreshItemLabel=Làm mới mục
+
+# LOCALIZATION NOTE (storage.popupMenu.deleteAllFromLabel):
+# Label of popup menu action to delete all storage items.
+storage.popupMenu.deleteAllFromLabel=Xóa tất cả khỏi “%S”
+
+# LOCALIZATION NOTE (storage.idb.deleteBlocked):
+# Warning notification when IndexedDB database could not be deleted immediately.
+storage.idb.deleteBlocked=Cơ sở dữ liệu “%S” sẽ bị xóa sau khi tất cả các kết nối được đóng lại.
+
+# LOCALIZATION NOTE (storage.idb.deleteError):
+# Error notification when IndexedDB database could not be deleted.
+storage.idb.deleteError=Không thể xóa cơ sở dữ liệu “%S”.
+
+# LOCALIZATION NOTE (storage.expandPane):
+# This is the tooltip for the button that collapses the right panel in the
+# storage UI when the panel is closed.
+storage.expandPane=Mở rộng ngăn
+
+# LOCALIZATION NOTE (storage.collapsePane):
+# This is the tooltip for the button that collapses the right panel in the
+# storage UI when the panel is open.
+storage.collapsePane=Thu gọn ngăn
diff --git a/l10n-vi/devtools/client/styleeditor.ftl b/l10n-vi/devtools/client/styleeditor.ftl
new file mode 100644
index 0000000000..adbc7e7f2a
--- /dev/null
+++ b/l10n-vi/devtools/client/styleeditor.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/.
+
+styleeditor-new-button =
+ .tooltiptext = Tạo mới và chèn thêm style sheet vào tài liệu
+ .accesskey = N
+styleeditor-import-button =
+ .tooltiptext = Nhập và chèn style sheet vào văn bản
+ .accesskey = I
+styleeditor-visibility-toggle =
+ .tooltiptext = Bật tắt tính năng có thể xem style sheet
+ .accesskey = S
+styleeditor-save-button = Lưu
+ .tooltiptext = Lưu style sheet thành một tập tin
+ .accesskey = S
+styleeditor-options-button =
+ .tooltiptext = Tùy chọn trình chỉnh sửa kiểu mẫu
+styleeditor-media-rules = Quy tắc @media
+styleeditor-editor-textbox =
+ .data-placeholder = Gõ CSS tại đây.
+styleeditor-no-stylesheet = Trang này không có style sheet.
+styleeditor-no-stylesheet-tip = Có thể bạn sẽ thích<a data-l10n-name="append-new-stylesheet">gắn thêm một style sheet mới</a>?
+styleeditor-open-link-new-tab =
+ .label = Mở liên kết trong thẻ mới
+styleeditor-copy-url =
+ .label = Sao chép URL
diff --git a/l10n-vi/devtools/client/styleeditor.properties b/l10n-vi/devtools/client/styleeditor.properties
new file mode 100644
index 0000000000..a13ecfeb34
--- /dev/null
+++ b/l10n-vi/devtools/client/styleeditor.properties
@@ -0,0 +1,67 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside the Style Editor.
+# LOCALIZATION NOTE 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 (inlineStyleSheet): This is the name used for an style sheet
+# that is declared inline in the <style> element. Shown in the stylesheets list.
+# the argument is the index (order) of the containing <style> element in the
+# document.
+inlineStyleSheet=<inline style sheet #%S>
+
+# LOCALIZATION NOTE (newStyleSheet): This is the default name for a new
+# user-created style sheet.
+newStyleSheet=Style sheet mới #%S
+
+# LOCALIZATION NOTE (ruleCount.label): Semicolon-separated list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# This is shown in the style sheets list.
+# #1 rule.
+# example: 111 rules.
+ruleCount.label=#1 quy tắc.
+
+# LOCALIZATION NOTE (error-load): This is shown when loading fails.
+error-load=Không thể tải xuống style sheet.
+
+# LOCALIZATION NOTE (error-save): This is shown when saving fails.
+error-save=Không thể lưu lại style sheet.
+
+# LOCALIZATION NOTE (importStyleSheet.title): This is the file picker title,
+# when you import a style sheet into the Style Editor.
+importStyleSheet.title=Nhập style sheet
+
+# LOCALIZATION NOTE (importStyleSheet.filter): This is the *.css filter title
+importStyleSheet.filter=Tập tin CSS
+
+# LOCALIZATION NOTE (saveStyleSheet.title): This is the file picker title,
+# when you save a style sheet from the Style Editor.
+saveStyleSheet.title=Lưu style sheet
+
+# LOCALIZATION NOTE (saveStyleSheet.filter): This is the *.css filter title
+saveStyleSheet.filter=Tập tin CSS
+
+# LOCALIZATION NOTE (saveStyleSheet.commandkey): This the key to use in
+# conjunction with accel (Command on Mac or Ctrl on other platforms) to Save
+saveStyleSheet.commandkey=S
+
+# LOCALIZATION NOTE (showOriginalSources.label): This is the label on the context
+# menu item to toggle showing original sources in the editor.
+showOriginalSources.label=Hiển thị nguồn gốc
+
+# LOCALIZATION NOTE (showOriginalSources.accesskey): This is the access key for
+# the menu item to toggle showing original sources in the editor.
+showOriginalSources.accesskey=o
+
+# LOCALIZATION NOTE (showMediaSidebar.label): This is the label on the context
+# menu item to toggle showing @media rule shortcuts in a sidebar.
+showMediaSidebar.label=Hiện thanh lề @media
+
+# LOCALIZATION NOTE (showMediaSidebar.accesskey): This is the access key for
+# the menu item to toggle showing the @media sidebar.
+showMediaSidebar.accesskey=m
diff --git a/l10n-vi/devtools/client/toolbox-options.ftl b/l10n-vi/devtools/client/toolbox-options.ftl
new file mode 100644
index 0000000000..2871a14e01
--- /dev/null
+++ b/l10n-vi/devtools/client/toolbox-options.ftl
@@ -0,0 +1,140 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 for Developer Tools options
+
+
+## Default Developer Tools section
+
+# The heading
+options-select-default-tools-label = Công cụ phát triển mặc định
+
+# The label for the explanation of the * marker on a tool which is currently not supported
+# for the target of the toolbox.
+options-tool-not-supported-label = * Không được hỗ trợ cho hộp công cụ đích hiện tại
+
+# The label for the heading of group of checkboxes corresponding to the developer tools
+# added by add-ons. This heading is hidden when there is no developer tool installed by add-ons.
+options-select-additional-tools-label = Công cụ phát triển được cài đặt bởi tiến ích
+
+# The label for the heading of group of checkboxes corresponding to the default developer
+# tool buttons.
+options-select-enabled-toolbox-buttons-label = Các nút trên hộp công cụ có sẵn
+
+# The label for the heading of the radiobox corresponding to the theme
+options-select-dev-tools-theme-label = Chủ đề
+
+## Inspector section
+
+# The heading
+options-context-inspector = Trình kiểm tra
+
+# The label for the checkbox option to show user agent styles
+options-show-user-agent-styles-label = Hiển thị kiểu của trình duyệt
+options-show-user-agent-styles-tooltip =
+ .title = Bật tính năng này sẽ hiển thị các kiểu mặc định được tải bởi trình duyệt.
+
+# The label for the checkbox option to enable collapse attributes
+options-collapse-attrs-label = Cắt bớt các thuộc tính DOM
+options-collapse-attrs-tooltip =
+ .title = Cắt ngắn các thuộc tính dài trong trình kiểm tra
+
+## "Default Color Unit" options for the Inspector
+
+options-default-color-unit-label = Đơn vị màu mặc định
+options-default-color-unit-authored = Theo bản gốc
+options-default-color-unit-hex = Thập lục phân
+options-default-color-unit-hsl = HSL(A)
+options-default-color-unit-rgb = RGB(A)
+options-default-color-unit-name = Tên màu
+
+## Style Editor section
+
+# The heading
+options-styleeditor-label = Trình chỉnh sửa kiểu mẫu
+
+# The label for the checkbox that toggles autocompletion of css in the Style Editor
+options-stylesheet-autocompletion-label = Tự động điền CSS
+options-stylesheet-autocompletion-tooltip =
+ .title = Tự động điền các thuộc tính, giá trị và bộ chọn CSS trong trình chỉnh sửa kiểu mẫu khi bạn nhập
+
+## Screenshot section
+
+# The heading
+options-screenshot-label = Hành vi chụp màn hình
+
+# Label for the checkbox that toggles screenshot to clipboard feature
+options-screenshot-clipboard-label = Sao chép ảnh chụp màn hình vào bộ nhớ tạm
+options-screenshot-clipboard-tooltip =
+ .title = Lưu ảnh chụp màn hình trực tiếp vào bộ nhớ tạm
+
+# Label for the checkbox that toggles the camera shutter audio for screenshot tool
+options-screenshot-audio-label = Bật tiếng chụp ảnh
+options-screenshot-audio-tooltip =
+ .title = Bật âm thanh camera khi chụp ảnh màn hình
+
+## Editor section
+
+# The heading
+options-sourceeditor-label = Tùy chỉnh trình soạn thảo
+
+options-sourceeditor-detectindentation-tooltip =
+ .title = Dự đoán cách thụt lề dựa trên nội dung của mã nguồn
+options-sourceeditor-detectindentation-label = Phát hiện thụt lề
+options-sourceeditor-autoclosebrackets-tooltip =
+ .title = Tự động chèn dấu đóng
+options-sourceeditor-autoclosebrackets-label = Tự đóng dấu ngoặc
+options-sourceeditor-expandtab-tooltip =
+ .title = Sử dụng dấu cách thay cho ký tự tab
+options-sourceeditor-expandtab-label = Căn lề bằng khoảng trắng
+options-sourceeditor-tabsize-label = Kích cỡ phím tab
+options-sourceeditor-keybinding-label = Tổ hợp phím
+options-sourceeditor-keybinding-default-label = Mặc định
+
+## Advanced section
+
+# The heading
+options-context-advanced-settings = Cài đặt nâng cao
+
+# The label for the checkbox that toggles the HTTP cache on or off
+options-disable-http-cache-label = Vô hiệu hóa bộ đệm HTTP (khi hộp công cụ đang mở)
+options-disable-http-cache-tooltip =
+ .title = Bật tùy chọn này sẽ vô hiệu hóa bộ đệm HTTP cho tất cả các thẻ có hộp công cụ mở. Service Worker không bị ảnh hưởng bởi tùy chọn này.
+
+# The label for checkbox that toggles JavaScript on or off
+options-disable-javascript-label = Tắt JavaScript *
+options-disable-javascript-tooltip =
+ .title = Bật tùy chọn này sẽ vô hiệu hóa JavaScript cho thẻ hiện tại. Nếu thẻ hoặc hộp công cụ bị đóng thì cài đặt này sẽ bị quên.
+
+# The label for checkbox that toggles chrome debugging, i.e. the devtools.chrome.enabled preference
+options-enable-chrome-label = Kích hoạt trình duyệt chrome và các hộp công cụ gỡ lỗi tiện ích
+options-enable-chrome-tooltip =
+ .title = Bật tùy chọn này sẽ cho phép bạn sử dụng các công cụ dành cho nhà phát triển khác nhau trong ngữ cảnh trình duyệt (thông qua Công cụ > Nhà phát triển web > Hộp công cụ trình duyệt) và gỡ lỗi các tiện ích từ trình quản lý tiện ích
+
+# The label for checkbox that toggles remote debugging, i.e. the devtools.debugger.remote-enabled preference
+options-enable-remote-label = Cho phép gỡ lỗi từ xa
+options-enable-remote-tooltip2 =
+ .title = Bật tùy chọn này sẽ cho phép gỡ lỗi phiên bản trình duyệt này từ xa
+
+# The label for checkbox that toggles the service workers testing over HTTP on or off.
+options-enable-service-workers-http-label = Cho phép Service Worker qua HTTP (khi hộp công cụ mở)
+options-enable-service-workers-http-tooltip =
+ .title = Bật tùy chọn này sẽ cho phép service workers qua HTTP cho tất cả các thẻ đang mở hộp công cụ.
+
+# The label for the checkbox that toggles source maps in all tools.
+options-source-maps-label = Bật bản đồ nguồn
+options-source-maps-tooltip =
+ .title = Nếu bạn bật tùy chọn này, các nguồn sẽ được ánh xạ trong các công cụ.
+
+# The message shown for settings that trigger page reload
+options-context-triggers-page-refresh = * Chỉ phiên hiện tại, tải lại trang
+
+# The label for the checkbox that toggles the display of the platform data in the
+# Profiler i.e. devtools.profiler.ui.show-platform-data a boolean preference in about:config
+options-show-platform-data-label = Hiện dữ liệu nền tảng Gecko
+options-show-platform-data-tooltip =
+ .title =
+ Nếu bạn bật tùy chọn này, báo cáo trình cấu hình JavaScript sẽ bao gồm
+ kí hiệu nền tảng Gecko
diff --git a/l10n-vi/devtools/client/toolbox.properties b/l10n-vi/devtools/client/toolbox.properties
new file mode 100644
index 0000000000..89e2c03e69
--- /dev/null
+++ b/l10n-vi/devtools/client/toolbox.properties
@@ -0,0 +1,285 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 (toolbox.titleTemplate1): This is the template
+# used to format the title of the toolbox.
+# The URL of the page being targeted: %1$S.
+toolbox.titleTemplate1=Công cụ dành cho nhà phát triển - %1$S
+
+# LOCALIZATION NOTE (toolbox.titleTemplate2): This is the template
+# used to format the title of the toolbox.
+# The page title or other name for the thing being targeted: %1$S
+# The URL of the page being targeted: %2$S.
+toolbox.titleTemplate2=Công cụ dành cho nhà phát triển - %1$S - %2$S
+
+# LOCALIZATION NOTE (toolbox.multiProcessBrowserToolboxTitle): Title used for
+# the Browser Toolbox when the pref `devtools.browsertoolbox.fission` is true.
+# This Browser Toolbox allows to debug the parent process as well as the content
+# processes in the same toolbox.
+toolbox.multiProcessBrowserToolboxTitle=Hộp công cụ trình duyệt đa xử lý
+
+# LOCALIZATION NOTE (toolbox.defaultTitle): This is used as the tool
+# name when no tool is selected.
+toolbox.defaultTitle=Công cụ phát triển
+
+# LOCALIZATION NOTE (toolbox.label): This is used as the label for the
+# toolbox as a whole
+toolbox.label=Công cụ phát triển
+
+# LOCALIZATION NOTE (options.toolNotSupportedMarker): This is the template
+# used to add a * marker to the label for the Options Panel tool checkbox for the
+# tool which is not supported for the current toolbox target.
+# The name of the tool: %1$S.
+options.toolNotSupportedMarker=%1$S *
+
+# LOCALIZATION NOTE (toolbox.pickButton.tooltip)
+# This is the tooltip of the element picker button in the toolbox toolbar.
+# %S is the keyboard shortcut that toggles the element picker.
+toolbox.elementPicker.tooltip=Chọn một yếu tố từ trang (%S)
+
+# LOCALIZATION NOTE (toolbox.pickButton.mac.tooltip)
+# Like toolbox.pickButton.tooltip, but for macOS there are two possible keyboard
+# shortcuts: Cmd+Shift+C or Cmd+Opt+C
+toolbox.elementPicker.mac.tooltip=Chọn một yếu tố từ trang (%1$S hoặc %2$S)
+
+# LOCALIZATION NOTE (toolbox.elementPicker.key)
+# Key shortcut used to toggle the element picker.
+toolbox.elementPicker.key=CmdOrCtrl+Shift+C
+
+# LOCALIZATION NOTE (toolbox.elementPicker.mac.key)
+# Key shortcut used to toggle the element picker for macOS.
+toolbox.elementPicker.mac.key=Cmd+Opt+C
+
+# LOCALIZATION NOTE (toolbox.noContentProcessForTab.message)
+# Used as a message in the alert displayed when trying to open a browser
+# content toolbox and there is no content process running for the current tab
+toolbox.noContentProcessForTab.message=Không có tiến trình nội dung cho thẻ này.
+
+# LOCALIZATION NOTE (toolbox.viewCssSourceInStyleEditor.label)
+# Used as a message in either tooltips or contextual menu items to open the
+# corresponding URL as a css file in the Style-Editor tool.
+# DEV NOTE: Mostly used wherever toolbox.viewSourceInStyleEditorByXX is used.
+toolbox.viewCssSourceInStyleEditor.label=Mở tập tin trong trình soạn thảo kiểu mẫu
+
+# LOCALIZATION NOTE (toolbox.viewJsSourceInDebugger.label)
+# Used as a message in either tooltips or contextual menu items to open the
+# corresponding URL as a js file in the Debugger tool.
+# DEV NOTE: Mostly used wherever toolbox.viewSourceInDebugger is used.
+toolbox.viewJsSourceInDebugger.label=Mở tập tin trong trình gỡ lỗi
+
+toolbox.resumeOrderWarning=Trang đã không tiếp tục sau khi trình gỡ lỗi được đính kèm. Để khắc phục điều này, vui lòng đóng và mở lại hộp công cụ.
+
+# LOCALIZATION NOTE (toolbox.help.key)
+# Key shortcut used to open the options panel
+toolbox.help.key=F1
+
+# LOCALIZATION NOTE (toolbox.nextTool.key)
+# Key shortcut used to select the next tool
+toolbox.nextTool.key=CmdOrCtrl+]
+
+# LOCALIZATION NOTE (toolbox.previousTool.key)
+# Key shortcut used to select the previous tool
+toolbox.previousTool.key=CmdOrCtrl+[
+
+# LOCALIZATION NOTE (toolbox.zoom*.key)
+# Key shortcuts used to zomm in/out or reset the toolbox
+# Should match fullZoom*Cmd.commandkey values from browser.dtd
+toolbox.zoomIn.key=CmdOrCtrl+Plus
+toolbox.zoomIn2.key=CmdOrCtrl+=
+
+toolbox.zoomOut.key=CmdOrCtrl+-
+toolbox.zoomOut2.key=
+
+toolbox.zoomReset.key=CmdOrCtrl+0
+toolbox.zoomReset2.key=
+
+# LOCALIZATION NOTE (toolbox.reload*.key)
+# Key shortcuts used to reload the page
+toolbox.reload.key=CmdOrCtrl+R
+toolbox.reload2.key=F5
+
+# LOCALIZATION NOTE (toolbox.forceReload*.key)
+# Key shortcuts used to force reload of the page by bypassing caches
+toolbox.forceReload.key=CmdOrCtrl+Shift+R
+toolbox.forceReload2.key=CmdOrCtrl+F5
+
+# LOCALIZATION NOTE (toolbox.toggleHost.key)
+# Key shortcut used to move the toolbox in bottom or side of the browser window
+toolbox.toggleHost.key=CmdOrCtrl+Shift+D
+
+# LOCALIZATION NOTE (toolbox.closeToolbox.key) Key shortcut used to close the toolbox
+toolbox.closeToolbox.key=CmdOrCtrl+W
+
+# LOCALIZATION NOTE (toolbox.toggleToolbox.key) Key shortcut used to toggle the toolbox
+toolbox.toggleToolbox.key=CmdOrCtrl+Shift+I
+
+# LOCALIZATION NOTE (toolbox.toggleToolboxOSX.key) Key shortcut used to toggle the toolbox
+toolbox.toggleToolboxOSX.key=CmdOrCtrl+Alt+I
+
+# LOCALIZATION NOTE (toolbox.toggleToolboxF12.key) Key shortcut used to toggle the toolbox
+toolbox.toggleToolboxF12.key=F12
+
+# LOCALIZATION NOTE (toolbox.frames.tooltip): This is the label for
+# the iframes menu list that appears only when the document has some.
+# It allows you to switch the context of the whole toolbox.
+toolbox.frames.tooltip=Chọn một iframe làm tài liệu được nhắm mục tiêu hiện tại
+
+# LOCALIZATION NOTE (toolbox.frames.disabled.tooltip): This is the title
+# displayed as a tooltip of the iframes menu button, when disabled. The button
+# is normally hidden when no frames are available. But if the user is on the
+# DevTools Options panel, the button is always shown for discoverability.
+toolbox.frames.disabled.tooltip=Nút này chỉ khả dụng trên các trang có vài iframe
+
+# LOCALIZATION NOTE (toolbox.showFrames.key)
+# Key shortcut used to show frames menu when 'frames' button is focused
+toolbox.showFrames.key=Alt+Down
+
+# LOCALIZATION NOTE (toolbox.meatballMenu.button.tooltip): This is the tooltip
+# for the "..." button on the developer tools toolbox.
+toolbox.meatballMenu.button.tooltip=Tùy chỉnh công cụ dành cho nhà phát triển và nhận trợ giúp
+
+# LOCALIZATION NOTE (toolbox.meatballMenu.dock.*.label): These labels are shown
+# in the "..." menu in the toolbox and represent the different arrangements for
+# docking (or undocking) the developer tools toolbox.
+toolbox.meatballMenu.dock.bottom.label=Dock bên dưới
+toolbox.meatballMenu.dock.left.label=Dock bên trái
+toolbox.meatballMenu.dock.right.label=Dock bên phải
+toolbox.meatballMenu.dock.separateWindow.label=Cửa sổ riêng
+
+# LOCALIZATION NOTE (toolbox.meatballMenu.{splitconsole,hideconsole}.label):
+# These are the labels in the "..." menu in the toolbox for toggling the split
+# console window.
+# The keyboard shortcut will be shown to the side of the label.
+toolbox.meatballMenu.splitconsole.label=Hiện bảng điều khiển phân chia
+toolbox.meatballMenu.hideconsole.label=Ẩn bảng điều khiển phân chia
+
+# LOCALIZATION NOTE (toolbox.meatballMenu.noautohide.label): This is the label
+# in the "..." menu in the toolbox to force the popups/panels to stay visible on
+# blur.
+# This is only visible in the browser toolbox as it is meant for
+# addon developers and Firefox contributors.
+toolbox.meatballMenu.noautohide.label=Vô hiệu hóa tự động ẩn popup
+
+# LOCALIZATION NOTE (toolbox.meatballMenu.settings.label): This is the label for
+# the item in the "..." menu in the toolbox that brings up the Settings
+# (Options) panel.
+# The keyboard shortcut will be shown to the side of the label.
+toolbox.meatballMenu.settings.label=Cài đặt
+
+# LOCALIZATION NOTE (toolbox.meatballMenu.documentation.label): This is the
+# label for the Documentation menu item.
+toolbox.meatballMenu.documentation.label=Tài liệu…
+
+# LOCALIZATION NOTE (toolbox.meatballMenu.community.label): This is the label
+# for the Community menu item.
+toolbox.meatballMenu.community.label=Cộng đồng…
+
+# LOCALIZATION NOTE (toolbox.closebutton.tooltip): This is the tooltip for
+# the close button the developer tools toolbox.
+toolbox.closebutton.tooltip=Đóng công cụ phát triển
+
+# LOCALIZATION NOTE (toolbox.errorCountButton.tooltip): This is the tooltip for
+# the error count button displayed in the developer tools toolbox.
+toolbox.errorCountButton.tooltip=Hiện bảng điều khiển phân chia
+
+# LOCALIZATION NOTE (toolbox.errorCountButton.description): This is the description that
+# will be used for the error count button in the devTools settings panel.
+toolbox.errorCountButton.description=Hiển thị số lỗi trên trang
+
+# LOCALIZATION NOTE (toolbox.sourceMapFailure): This is shown in the web console
+# when there is a failure to fetch or parse a source map.
+# The text of the error: %1$S
+# The URL that caused DevTools to try to fetch a source map: %2$S
+# The URL of the source map itself: %3$S
+toolbox.sourceMapFailure=Lỗi bản đồ nguồn: %1$S\nURL nguồn: %2$S\nURL bản đồ nguồn: %3$S
+
+# LOCALIZATION NOTE (toolbox.sourceMapSourceFailure): This is shown in
+# the web console when there is a failure to fetch or parse an
+# original source that was mentioned in a source map.
+# The text of the error: %1$S
+# The URL of the source: %2$S
+toolbox.sourceMapSourceFailure=Lỗi khi tìm nạp nguồn ban đầu: %1$S\nURL nguồn: %2$S
+
+# LOCALIZATION NOTE (toolbox.debugTargetInfo.runtimeLabel): This is displayed as a toolbox
+# header in about:devtools-toolbox. about:devtools-toolbox is used for instance when
+# inspecting tabs in about:debugging.
+# e.g. Mozilla Fennec (65.0a1)
+# The name of runtime: %1$S
+# The version of runtime: %2$S
+toolbox.debugTargetInfo.runtimeLabel=%1$S (%2$S)
+
+# LOCALIZATION NOTE (toolbox.debugTargetInfo.runtimeLabel.thisFirefox): this is displayed
+# as a toolbox header in about:devtools-toolbox, when inspecting the current Firefox runtime
+# (for instance, when inspecting one of its tabs in about:debugging)
+# e.g. This Firefox (65.0a1)
+# The version of runtime: %S
+toolbox.debugTargetInfo.runtimeLabel.thisFirefox=Firefox này (%S)
+
+# LOCALIZATION NOTE (toolbox.debugTargetInfo.tabTitleRemote):
+# Used as the tab title for about:devtools-toolbox when connected to a remote target.
+# The connection type (see toolbox.debugTargetInfo.connection.*): %1$S
+# The target type (see toolbox.debugTargetInfo.targetType.*): %2$S
+# The target name (retrieved from DevTools, eg the extension's name): %3$S
+toolbox.debugTargetInfo.tabTitleRemote=Hộp công cụ (%1$S) - %2$S / %3$S
+
+# LOCALIZATION NOTE (toolbox.debugTargetInfo.tabTitleLocal):
+# Used as the tab title for about:devtools-toolbox when connected to This Firefox.
+# The target type (see toolbox.debugTargetInfo.targetType.*): %1$S
+# The target name (retrieved from DevTools, eg the extension's name): %2$S
+toolbox.debugTargetInfo.tabTitleLocal=Hộp công cụ - %1$S / %2$S
+
+# LOCALIZATION NOTE (toolbox.debugTargetInfo.tabTitleError):
+# Used as the tab title for about:devtools-toolbox when it failed to connect to the
+# target.
+toolbox.debugTargetInfo.tabTitleError=Hộp công cụ - xảy ra lỗi
+
+# LOCALIZATION NOTE (toolbox.debugTargetInfo.connection.*): This is displayed in the
+# toolbox header in about:devtools-toolbox, to indicate how the connection to the
+# runtime being inspected was made.
+toolbox.debugTargetInfo.connection.usb=USB
+toolbox.debugTargetInfo.connection.network=Mạng
+
+# LOCALIZATION NOTE (toolbox.debugTargetInfo.reload):
+# Used as the reload button tooltip
+toolbox.debugTargetInfo.reload=Tải lại
+
+# LOCALIZATION NOTE (toolbox.debugTargetInfo.forward):
+# Used as the navigation's "forward" button tooltip
+toolbox.debugTargetInfo.forward=Tiến
+
+# LOCALIZATION NOTE (toolbox.debugTargetInfo.back):
+# Used as the navigation's "back" button tooltip
+toolbox.debugTargetInfo.back=Quay lại
+
+# LOCALIZATION NOTE (toolbox.debugTargetInfo.targetType.*): This is displayed as the
+# alt attribute for an icon in the toolbox header in about:devtools-toolbox,
+# to indicate what is the type of the debug target being inspected.
+toolbox.debugTargetInfo.targetType.extension=Tiện ích mở rộng
+toolbox.debugTargetInfo.targetType.process=Quá trình
+toolbox.debugTargetInfo.targetType.tab=Thẻ
+toolbox.debugTargetInfo.targetType.worker=Worker
+
+# LOCALIZATION NOTE (browserToolbox.statusMessage): This is the label
+# shown next to status details when the Browser Toolbox fails to connect or
+# appears to be taking a while to do so.
+browserToolbox.statusMessage=Trạng thái kết nối hộp công cụ trình duyệt:
+
+# LOCALIZATION NOTE (toolbox.debugTargetErrorPage.title): This is the title
+# for the Error view shown by the toolbox when a connection to a debug target
+# could not be made
+toolbox.debugTargetErrorPage.title = Lỗi
+
+# LOCALIZATION NOTE (toolbox.debugTargetErrorPage.description): This is the
+# text that appears in the Error view and explains to the user that an error
+# has happened while trying to connect to a debug target
+toolbox.debugTargetErrorPage.description = Không thể kết nối với mục tiêu gỡ lỗi. Xem chi tiết lỗi bên dưới:
+
+# LOCALIZATION NOTE (options.deprecationNotice): This is the text that appears in the
+# settings panel for panel that will be removed in future releases.
+# This entire text is treated as a link to an MDN page.
+options.deprecationNotice=Không phát triển nữa. Tìm hiểu thêm…
+
+# LOCALIZATION NOTE (options.enableMultiProcessToolbox): This is the text that appears in the
+# settings panel for the checkbox that enables the Multiprocess Browser Toolbox.
+options.enableMultiProcessToolbox=Kích hoạt Hộp công cụ trình duyệt đa xử lý (yêu cầu khởi động lại Hộp công cụ trình duyệt)
diff --git a/l10n-vi/devtools/client/tooltips.ftl b/l10n-vi/devtools/client/tooltips.ftl
new file mode 100644
index 0000000000..aa01f28fd7
--- /dev/null
+++ b/l10n-vi/devtools/client/tooltips.ftl
@@ -0,0 +1,68 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 for Developer Tools tooltips.
+
+learn-more = <span data-l10n-name="link">Tìm hiểu thêm</span>
+
+## In the Rule View when a CSS property cannot be successfully applied we display
+## an icon. When this icon is hovered this message is displayed to explain why
+## the property is not applied.
+## Variables:
+## $property (string) - A CSS property name e.g. "color".
+## $display (string) - A CSS display value e.g. "inline-block".
+
+inactive-css-not-grid-or-flex-container = <strong>{ $property }</strong> không có tác dụng đối với phần tử này vì nó không phải là ngăn chứa flex hay ngăn chứa lưới.
+inactive-css-not-grid-or-flex-container-or-multicol-container = <strong>{ $property }</strong> không có tác dụng đối với phần tử này vì nó không phải là ngăn chứa flex, ngăn chứa lưới hoặc ngăn chứa nhiều cột.
+inactive-css-not-grid-or-flex-item = <strong>{ $property }</strong> không có tác dụng đối với phần tử này vì nó không phải là một mục lưới hoặc flex.
+inactive-css-not-grid-item = <strong>{ $property }</strong> không có tác dụng đối với thành phần này vì nó không phải là một mục lưới.
+inactive-css-not-grid-container = <strong>{ $property }</strong> không có tác dụng đối với phần tử này vì nó không phải là ngăn chứa lưới.
+inactive-css-not-flex-item = <strong>{ $property }</strong> không có tác dụng đối với phần tử này vì nó không phải là một mục flex.
+inactive-css-not-flex-container = <strong>{ $property }</strong> không có tác dụng đối với phần tử này vì nó không phải là ngăn chứa flex.
+inactive-css-not-inline-or-tablecell = <strong>{ $property }</strong> không có tác dụng đối với phần tử này vì nó không phải là phần tử nội tuyến hoặc ô bảng.
+inactive-css-property-because-of-display = <strong>{ $property }</strong> không ảnh hưởng đến yếu tố này vì nó có hiển thị của <strong>{ $display }</strong>.
+inactive-css-not-display-block-on-floated = Giá trị <strong>display</strong> đã được thay đổi bởi máy thành <strong>block</strong> vì phần tử là <strong>floated</strong>.
+inactive-css-property-is-impossible-to-override-in-visited = Nó không thể ghi đè <strong>{ $property }</strong> do hạn chế <strong>:visited</strong>.
+inactive-css-position-property-on-unpositioned-box = <strong>{ $property }</strong> không có tác dụng đối với phần tử này vì nó không phải là phần tử được định vị.
+inactive-text-overflow-when-no-overflow = <strong>{ $property }</strong> không ảnh hưởng đến phần tử này vì <strong>overflow:hidden</strong> không được đặt.
+inactive-outline-radius-when-outline-style-auto-or-none = <strong>{ $property }</strong> không ảnh hưởng đến phần tử này vì <strong>outline-style</strong> của nó là <strong>auto</strong> hoặc <strong>none</strong>.
+inactive-css-not-for-internal-table-elements = <strong>{ $property }</strong> không ảnh hưởng đến các phần tử nội bộ của bảng.
+inactive-css-not-table = <strong>{ $property }</strong> không ảnh hưởng đến phần tử này vì nó không phải là một bảng.
+
+## In the Rule View when a CSS property cannot be successfully applied we display
+## an icon. When this icon is hovered this message is displayed to explain how
+## the problem can be solved.
+
+inactive-css-not-grid-or-flex-container-fix = Hãy thử thêm <strong>display:grid</strong> hoặc <strong>display:flex</strong>. { learn-more }
+inactive-css-not-grid-or-flex-container-or-multicol-container-fix = Hãy thử thêm <strong>display:grid</strong>, <strong>display:flex</strong> hoặc <strong>columns:2</strong>. { learn-more }
+inactive-css-not-grid-or-flex-item-fix-2 = Hãy thử thêm <strong>display:grid</strong>, <strong>display:flex</strong>, <strong>display:inline-grid</strong>, hoặc <strong>display:inline-flex</strong>. { learn-more }
+inactive-css-not-grid-item-fix-2 = Hãy thử thêm <strong>display:grid</strong> hoặc <strong>display:inline-grid</strong> vào phần tử mẹ. { learn-more }
+inactive-css-not-grid-container-fix = Hãy thử thêm <strong>display:grid</strong> hoặc <strong>display:inline-grid</strong>. { learn-more }
+inactive-css-not-flex-item-fix-2 = Hãy thử thêm <strong>display:flex</strong> hoặc <strong>display:inline-flex</strong> vào phần tử mẹ. { learn-more }
+inactive-css-not-flex-container-fix = Hãy thử thêm <strong>display:flex</strong> hoặc <strong>display:inline-flex</strong>. { learn-more }
+inactive-css-not-inline-or-tablecell-fix = Hãy thử thêm <strong>display:inline</strong> hoặc <strong>display:table-cell</strong>. { learn-more }
+inactive-css-non-replaced-inline-or-table-row-or-row-group-fix = Hãy thử thêm <strong>display:inline-block</strong> hoặc <strong>display:block</strong>. { learn-more }
+inactive-css-non-replaced-inline-or-table-column-or-column-group-fix = Hãy thử thêm <strong>display:inline-block</strong>. { learn-more }
+inactive-css-not-display-block-on-floated-fix = Hãy thử xóa <strong>float</strong> hoặc thêm <strong>display:block</strong>. { learn-more }
+inactive-css-position-property-on-unpositioned-box-fix = Hãy thử đặt thuộc tính <strong>position</strong> của nó thành một thứ khác ngoài <strong>static</strong>. { learn-more }
+inactive-text-overflow-when-no-overflow-fix = Hãy thử thêm <strong>overflow:hidden</strong>. { learn-more }
+inactive-outline-radius-when-outline-style-auto-or-none-fix = Thử thay đổi thuộc tính <strong>outline-style</strong> của nó thành một thứ khác ngoài <strong>auto</strong> hoặc <strong>none</strong>. { learn-more }
+inactive-css-not-table-fix = Hãy thử thêm <strong>display:table</strong> hoặc <strong>display:inline-table</strong>. { learn-more }
+
+## In the Rule View when a CSS property may have compatibility issues with other browsers
+## we display an icon. When this icon is hovered this message is displayed to explain why
+## the property is incompatible and the platforms it is incompatible on.
+## Variables:
+## $property (string) - A CSS declaration name e.g. "-moz-user-select" that can be a platform specific alias.
+## $rootProperty (string) - A raw CSS property name e.g. "user-select" that is not a platform specific alias.
+
+css-compatibility-default-message = <strong>{ $property }</strong> không được hỗ trợ trong các trình duyệt sau:
+css-compatibility-deprecated-experimental-message = <strong>{ $property }</strong> là thuộc tính thử nghiệm hiện không được hỗ trợ bởi các tiêu chuẩn W3C. Nó không được hỗ trợ trong các trình duyệt sau:
+css-compatibility-deprecated-experimental-supported-message = <strong>{ $property }</strong> là thuộc tính thử nghiệm hiện không được hỗ trợ bởi các tiêu chuẩn W3C.
+css-compatibility-deprecated-message = <strong>{ $property }</strong> hiện không được hỗ trợ bởi các tiêu chuẩn W3C. Nó không được hỗ trợ trong các trình duyệt sau:
+css-compatibility-deprecated-supported-message = <strong>{ $property }</strong> hiện không được hỗ trợ bởi các tiêu chuẩn W3C.
+css-compatibility-experimental-message = <strong>{ $property }</strong> là thuộc tính thử nghiệm. Nó không được hỗ trợ trong các trình duyệt sau:
+css-compatibility-experimental-supported-message = <strong>{ $property }</strong> là thuộc tính thử nghiệm.
+css-compatibility-learn-more-message = <span data-l10n-name="link">Tìm hiểu thêm</span> về <strong>{ $rootProperty }</strong>
diff --git a/l10n-vi/devtools/client/webconsole.properties b/l10n-vi/devtools/client/webconsole.properties
new file mode 100644
index 0000000000..df9d069ff1
--- /dev/null
+++ b/l10n-vi/devtools/client/webconsole.properties
@@ -0,0 +1,560 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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
+# 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 (browserConsole.title): shown as the
+# title when opening the browser console popup
+browserConsole.title=Dòng lệnh của trình duyệt
+
+# LOCALIZATION NOTE (multiProcessBrowserConsole.title): Title of the Browser
+# Console window when the pref `devtools.browsertoolbox.fission` is true. This
+# Browser Console will log messages from all processes, not just the the parent
+# process.
+multiProcessBrowserConsole.title=Bảng điều khiển trình duyệt đa tiến trình
+
+# LOCALIZATION NOTE (timestampFormat): %1$02S = hours (24-hour clock),
+# %2$02S = minutes, %3$02S = seconds, %4$03S = milliseconds.
+timestampFormat=%02S:%02S:%02S.%03S
+
+ConsoleAPIDisabled=API ghi nhật ký bảng điều khiển Web (console.log, console.info, console.warn, console.error) đã bị vô hiệu hóa bởi một tập lệnh trên trang này.
+
+# LOCALIZATION NOTE (webConsoleXhrIndicator): the indicator displayed before
+# a URL in the Web Console that was requested using an XMLHttpRequest.
+webConsoleXhrIndicator=XHR
+
+# LOCALIZATION NOTE (webConsoleMoreInfoLabel): the more info tag displayed
+# after security related web console messages.
+webConsoleMoreInfoLabel=Tìm hiểu thêm
+
+# LOCALIZATION NOTE (stacktrace.anonymousFunction): this string is used to
+# display JavaScript functions that have no given name - they are said to be
+# anonymous. Test console.trace() in the webconsole.
+stacktrace.anonymousFunction=<ẩn danh>
+
+# LOCALIZATION NOTE (stacktrace.asyncStack): this string is used to
+# indicate that a given stack frame has an async parent.
+# %S is the "Async Cause" of the frame.
+stacktrace.asyncStack=(Async: %S)
+
+# LOCALIZATION NOTE (timeLog): this string is used to display the result of
+# the console.timeLog() call. Parameters: %1$S is the name of the timer, %2$S
+# is the number of milliseconds.
+timeLog=%1$S: %2$Sms
+
+# LOCALIZATION NOTE (console.timeEnd): this string is used to display the result of
+# the console.timeEnd() call. Parameters: %1$S is the name of the timer, %2$S
+# is the number of milliseconds.
+console.timeEnd=%1$S: %2$Sms - đã hết giờ
+
+# LOCALIZATION NOTE (consoleCleared): this string is displayed when receiving a
+# call to console.clear() to let the user know the previous messages of the
+# console have been removed programmatically.
+consoleCleared=Bảng điều khiển đã bị xóa.
+
+# LOCALIZATION NOTE (noCounterLabel): this string is used to display
+# count-messages with no label provided.
+noCounterLabel=<không nhãn>
+
+# LOCALIZATION NOTE (counterDoesntExist): this string is displayed when
+# console.countReset() is called with a counter that doesn't exist.
+counterDoesntExist=Counter “%S” không tồn tại.
+
+# LOCALIZATION NOTE (noGroupLabel): this string is used to display
+# console.group messages with no label provided.
+noGroupLabel=<không có nhóm nhãn>
+
+maxTimersExceeded=Vượt quá thời gian tối đa cho phép.
+timerAlreadyExists=Timer “%S” đã tồn tại.
+timerDoesntExist=Timer “%S” không tồn tại.
+timerJSError=Không thể xử lý tên timer.
+
+# LOCALIZATION NOTE (connectionTimeout): message displayed when the Remote Web
+# Console fails to connect to the server due to a timeout.
+connectionTimeout=Hết thời gian kết nối. Kiểm tra bảng điều khiển lỗi ở cả hai đầu để biết thông báo lỗi tiềm ẩn. Mở lại bảng điều khiển web để thử lại.
+
+# LOCALIZATION NOTE (propertiesFilterPlaceholder): this is the text that
+# appears in the filter text box for the properties view container.
+propertiesFilterPlaceholder=Thuộc tính bộ lọc
+
+# LOCALIZATION NOTE (messageRepeats.tooltip2): the tooltip text that is displayed
+# when you hover the red bubble that shows how many times a message is repeated
+# in the web console output.
+# This is a semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 number of message repeats
+# example: 3 repeats
+messageRepeats.tooltip2=#1 lập lại
+
+# LOCALIZATION NOTE (openNodeInInspector): the text that is displayed in a
+# tooltip when hovering over the inspector icon next to a DOM Node in the console
+# output
+openNodeInInspector=Nhấn vào đây để chọn node trong trình kiểm tra
+
+# LOCALIZATION NOTE (cdFunctionInvalidArgument): the text that is displayed when
+# cd() is invoked with an invalid argument.
+cdFunctionInvalidArgument=Không thể cd() vào cửa sổ đã cho. Tham số không hợp lệ.
+
+# LOCALIZATION NOTE (selfxss.msg): the text that is displayed when
+# a new user of the developer tools pastes code into the console
+# %1 is the text of selfxss.okstring
+selfxss.msg=Cảnh báo lừa đảo: Cẩn thận khi dán những thứ bạn không hiểu. Điều này có thể cho phép kẻ tấn công đánh cắp danh tính của bạn hoặc kiểm soát máy tính của bạn. Vui lòng nhập ‘%S’ bên dưới (không cần nhấn enter) để cho phép dán.
+
+# LOCALIZATION NOTE (selfxss.okstring): the string to be typed
+# in by a new user of the developer tools when they receive the sefxss.msg prompt.
+# Please avoid using non-keyboard characters here
+selfxss.okstring=allow pasting
+
+# LOCALIZATION NOTE (messageToggleDetails): the text that is displayed when
+# you hover the arrow for expanding/collapsing the message details. For
+# console.error() and other messages we show the stacktrace.
+messageToggleDetails=Hiển thị/ẩn chi tiết tin nhắn.
+
+# LOCALIZATION NOTE (groupToggle): the text that is displayed when
+# you hover the arrow for expanding/collapsing the messages of a group.
+groupToggle=Hiển thị/ẩn nhóm.
+
+# LOCALIZATION NOTE (table.index, table.iterationIndex, table.key, table.value):
+# the column header displayed in the console table widget.
+table.index=(index)
+table.iterationIndex=(iteration index)
+table.key=Khóa
+table.value=Giá trị
+
+# LOCALIZATION NOTE (level.error, level.warn, level.info, level.log, level.debug):
+# tooltip for icons next to console output
+level.error=Lỗi
+level.warn=Cảnh báo
+level.info=Thông tin
+level.log=Nhật ký
+level.debug=Gỡ lỗi
+
+# LOCALIZATION NOTE (logpoint.title)
+# Tooltip shown for logpoints sent from the debugger
+logpoint.title=Điểm ghi từ trình gỡ lỗi
+
+# LOCALIZATION NOTE (blockedReason.title)
+# Tooltip shown for blocked network events sent from the network panel
+blockedrequest.label=Bị chặn bởi DevTools
+
+# LOCALIZATION NOTE (webconsole.find.key)
+# Key shortcut used to focus the search box on upper right of the console
+webconsole.find.key=CmdOrCtrl+F
+
+# LOCALIZATION NOTE (webconsole.close.key)
+# Key shortcut used to close the Browser console (doesn't work in regular web console)
+webconsole.close.key=CmdOrCtrl+W
+
+# LOCALIZATION NOTE (webconsole.clear.key*)
+# Key shortcut used to clear the console output
+webconsole.clear.key=Ctrl+Shift+L
+webconsole.clear.keyOSX=Ctrl+L
+webconsole.clear.alternativeKeyOSX=Cmd+K
+
+# LOCALIZATION NOTE (webconsole.menu.copyURL.label)
+# Label used for a context-menu item displayed for network message logs. Clicking on it
+# copies the URL displayed in the message to the clipboard.
+webconsole.menu.copyURL.label=Sao chép địa chỉ liên kết
+webconsole.menu.copyURL.accesskey=a
+
+# LOCALIZATION NOTE (webconsole.menu.openURL.label)
+# Label used for a context-menu item displayed for network message logs. Clicking on it
+# opens the URL displayed in a new browser tab.
+webconsole.menu.openURL.label=Mở URL trong thẻ mới
+webconsole.menu.openURL.accesskey=T
+
+# LOCALIZATION NOTE (webconsole.menu.openInNetworkPanel.label)
+# Label used for a context-menu item displayed for network message logs. Clicking on it
+# opens the network message in the Network panel
+webconsole.menu.openInNetworkPanel.label=Mở trong bảng điều khiển mạng
+webconsole.menu.openInNetworkPanel.accesskey=N
+
+# LOCALIZATION NOTE (webconsole.menu.resendNetworkRequest.label)
+# Label used for a context-menu item displayed for network message logs. Clicking on it
+# resends the network request
+webconsole.menu.resendNetworkRequest.label=Gửi lại yêu cầu
+webconsole.menu.resendNetworkRequest.accesskey=n
+
+# LOCALIZATION NOTE (webconsole.menu.openNodeInInspector.label)
+# Label used for a context-menu item displayed for DOM Node logs. Clicking on it will
+# reveal that specific DOM Node in the Inspector.
+webconsole.menu.openNodeInInspector.label=Hiển thị trong trình kiểm tra
+webconsole.menu.openNodeInInspector.accesskey=Q
+
+# LOCALIZATION NOTE (webconsole.menu.storeAsGlobalVar.label)
+# Label used for a context-menu item displayed for object/variable logs. Clicking on it
+# creates a new global variable pointing to the logged variable.
+webconsole.menu.storeAsGlobalVar.label=Lưu trữ dưới dạng biến toàn cục
+webconsole.menu.storeAsGlobalVar.accesskey=S
+
+# LOCALIZATION NOTE (webconsole.menu.copyMessage.label)
+# Label used for a context-menu item displayed for any log. Clicking on it will copy the
+# content of the log (or the user selection, if any).
+webconsole.menu.copyMessage.label=Sao chép tin nhắn
+webconsole.menu.copyMessage.accesskey=C
+
+# LOCALIZATION NOTE (webconsole.menu.copyObject.label)
+# Label used for a context-menu item displayed for object/variable log. Clicking on it
+# will copy the object/variable.
+webconsole.menu.copyObject.label=Sao chép đối tượng
+webconsole.menu.copyObject.accesskey=o
+
+# LOCALIZATION NOTE (webconsole.menu.selectAll.label)
+# Label used for a context-menu item that will select all the content of the webconsole
+# output.
+webconsole.menu.selectAll.label=Chọn tất cả
+webconsole.menu.selectAll.accesskey=A
+
+# LOCALIZATION NOTE (webconsole.menu.openInSidebar.label)
+# Label used for a context-menu item displayed for object/variable logs. Clicking on it
+# opens the webconsole sidebar for the logged variable.
+webconsole.menu.openInSidebar.label1=Kiểm tra đối tượng trong thanh lề
+webconsole.menu.openInSidebar.accesskey=V
+
+# LOCALIZATION NOTE (webconsole.menu.exportSubmenu.label)
+# Label used for a context-menu item displayed on the output. Clicking on it
+# opens a submenu where the user can select how to export messages.
+webconsole.menu.exportSubmenu.label=Xuất tin nhắn có thể hiển thị sang
+
+# LOCALIZATION NOTE (webconsole.menu.exportClipboard.label)
+# Label used for a context-menu item displayed on the output. Clicking on it
+# copies the entire output of the console to the clipboard.
+webconsole.menu.exportSubmenu.exportCliboard.label=Bộ nhớ tạm
+
+# LOCALIZATION NOTE (webconsole.menu.exportFile.label)
+# Label used for a context-menu item displayed on the output. Clicking on it
+# opens a file picker to allow the user save a file containing
+# the output of the console.
+webconsole.menu.exportSubmenu.exportFile.label=Tập tin
+
+# LOCALIZATION NOTE (webconsole.clearButton.tooltip)
+# Label used for the tooltip on the clear logs button in the console top toolbar bar.
+# Clicking on it will clear the content of the console.
+webconsole.clearButton.tooltip=Xóa đầu ra của bảng điều khiển Web
+
+# LOCALIZATION NOTE (webconsole.toggleFilterButton.tooltip)
+# Label used for the tooltip on the toggle filter bar button in the console top
+# toolbar bar. Clicking on it will toggle the visibility of an additional bar which
+# contains filter buttons.
+webconsole.toggleFilterButton.tooltip=Bật/Tắt thanh lọc
+
+# LOCALIZATION NOTE (webconsole.filterInput.placeholder)
+# Label used for for the placeholder on the filter input, in the console top toolbar.
+webconsole.filterInput.placeholder=Đầu ra của bộ lọc
+
+# LOCALIZATION NOTE (webconsole.errorsFilterButton.label)
+# Label used as the text of the "Errors" button in the additional filter toolbar.
+# It shows or hides error messages, either inserted in the page using
+# console.error() or as a result of a javascript error..
+webconsole.errorsFilterButton.label=Lỗi
+
+# LOCALIZATION NOTE (webconsole.warningsFilterButton.label)
+# Label used as the text of the "Warnings" button in the additional filter toolbar.
+# It shows or hides warning messages, inserted in the page using console.warn().
+webconsole.warningsFilterButton.label=Cảnh báo
+
+# LOCALIZATION NOTE (webconsole.logsFilterButton.label)
+# Label used as the text of the "Logs" button in the additional filter toolbar.
+# It shows or hides log messages, inserted in the page using console.log().
+webconsole.logsFilterButton.label=Nhật ký
+
+# LOCALIZATION NOTE (webconsole.infoFilterButton.label)
+# Label used as the text of the "Info" button in the additional filter toolbar.
+# It shows or hides info messages, inserted in the page using console.info().
+webconsole.infoFilterButton.label=Thông tin
+
+# LOCALIZATION NOTE (webconsole.debugFilterButton.label)
+# Label used as the text of the "Debug" button in the additional filter toolbar.
+# It shows or hides debug messages, inserted in the page using console.debug().
+webconsole.debugFilterButton.label=Gỡ lỗi
+
+# LOCALIZATION NOTE (webconsole.cssFilterButton.label)
+# Label used as the text of the "CSS" button in the additional filter toolbar.
+# It shows or hides CSS warning messages, inserted in the page by the browser
+# when there are CSS errors in the page.
+webconsole.cssFilterButton.label=CSS
+
+# LOCALIZATION NOTE (webconsole.cssFilterButton.inactive.tooltip)
+# Label used as the tooltip of the "CSS" button in the additional filter toolbar, when the
+# filter is inactive (=unchecked).
+webconsole.cssFilterButton.inactive.tooltip=Biểu định kiểu web sẽ được sửa lại để kiểm tra lỗi. Làm mới trang để xem lỗi từ các biểu định kiểu web được sửa đổi từ Javascript.
+
+# LOCALIZATION NOTE (webconsole.xhrFilterButton.label)
+# Label used as the text of the "XHR" button in the additional filter toolbar.
+# It shows or hides messages displayed when the page makes an XMLHttpRequest or
+# a fetch call.
+webconsole.xhrFilterButton.label=XHR
+
+# LOCALIZATION NOTE (webconsole.requestsFilterButton.label)
+# Label used as the text of the "Requests" button in the additional filter toolbar.
+# It shows or hides messages displayed when the page makes a network call, for example
+# when an image or a scripts is requested.
+webconsole.requestsFilterButton.label=Yêu cầu
+
+# LOCALIZATION NOTE (webconsole.filteredMessagesByText.label)
+# Text on the filter input displayed when some console messages are hidden because the
+# user has filled in the input.
+# This is a semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# example: 345 hidden.
+webconsole.filteredMessagesByText.label=#1 đã ẩn
+
+# LOCALIZATION NOTE (webconsole.filteredMessagesByText.tooltip)
+# Tooltip on the filter input "hidden" text, displayed when some console messages are
+# hidden because the user has filled in the input.
+# This is a semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# example: 345 items hidden by text filter.
+webconsole.filteredMessagesByText.tooltip=#1 đã ẩn bởi bộ lọc văn bản
+
+# LOCALIZATION NOTE (webconsole.console.settings.menu.menuButton.tooltip)
+# Tooltip for the filter bar preferences menu. This menu will display multiple perefences for the
+# filter bar, such as enabling the compact toolbar mode, enable the timestamps, persist logs, etc
+webconsole.console.settings.menu.button.tooltip=Cài đặt bảng điều khiển
+
+# LOCALIZATION NOTE (webconsole.console.settings.menu.item.compactToolbar.label)
+# Label for the `Compact Toolbar` preference option. This will turn the message filters buttons
+# into a Menu Button, making the filter bar more compact.
+webconsole.console.settings.menu.item.compactToolbar.label=Thanh công cụ thu gọn
+
+# LOCALIZATION NOTE (webconsole.console.settings.menu.item.timestamps.label)
+# Label for enabling the timestamps in the Web Console.
+webconsole.console.settings.menu.item.timestamps.label=Hiển thị dấu thời gian
+# LOCALIZATION NOTE (webconsole.console.settings.menu.item.timestamps.tooltip)
+webconsole.console.settings.menu.item.timestamps.tooltip=Nếu bạn bật lệnh tùy chọn này và đầu ra trong bảng điều khiển Web sẽ hiển thị dấu thời gian
+
+# LOCALIZATION NOTE (webconsole.console.settings.menu.item.warningGroups.label)
+# Label for grouping the similar messages in the Web Console
+webconsole.console.settings.menu.item.warningGroups.label=Gộp thông báo tương tự
+# LOCALIZATION NOTE (webconsole.console.settings.menu.item.warningGroups.tooltip)
+webconsole.console.settings.menu.item.warningGroups.tooltip=Khi được bật, các thông báo tương tự được đặt thành các nhóm
+
+# LOCALIZATION NOTE (webconsole.console.settings.menu.item.autocomplete.label)
+# Label for enabling autocomplete for input in the Web Console
+webconsole.console.settings.menu.item.autocomplete.label=Kích hoạt tự động hoàn thành
+# LOCALIZATION NOTE (webconsole.console.settings.menu.item.autocomplete.tooltip)
+webconsole.console.settings.menu.item.autocomplete.tooltip=Nếu bạn bật tùy chọn này, đầu vào sẽ hiển thị các đề xuất khi bạn nhập vào nó
+
+# LOCALIZATION NOTE (webconsole.console.settings.menu.item.enablePersistentLogs.label)
+webconsole.console.settings.menu.item.enablePersistentLogs.label=Nhật ký liên tục
+# LOCALIZATION NOTE (webconsole.console.settings.menu.item.enablePersistentLogs.tooltip)
+webconsole.console.settings.menu.item.enablePersistentLogs.tooltip=Nếu bạn bật tùy chọn này, danh sách thông tin ra sẽ không bị xóa mỗi lần bạn điều hướng đến một trang mới
+
+# LOCALIZATION NOTE (webconsole.console.settings.menu.item.instantEvaluation.label)
+webconsole.console.settings.menu.item.instantEvaluation.label=Đánh giá tức thì
+# LOCALIZATION NOTE (webconsole.console.settings.menu.item.instantEvaluation.tooltip)
+webconsole.console.settings.menu.item.instantEvaluation.tooltip=Nếu bạn bật tùy chọn này, đầu vào sẽ được đánh giá ngay lập tức khi bạn nhập vào nó
+
+# LOCALIZATION NOTE (browserconsole.contentMessagesCheckbox.label)
+# Label used in the browser console filter bar. This label is used for a checkbox that
+# allows the user to show or hide console messages from the content process in the browser
+# console.
+browserconsole.contentMessagesCheckbox.label=Hiển thị nội dung thông báo
+# LOCALIZATION NOTE (browserconsole.contentMessagesCheckbox.tooltip)
+# Tooltip for the "Show content messages" checkbox in the Browser Console filter bar.
+browserconsole.contentMessagesCheckbox.tooltip=Cho phép điều này để hiển thị thông báo từ quá trình nội dung ở đầu ra
+
+# LOCALIZATION NOTE (webconsole.navigated): this string is used in the console when the
+# current inspected page is navigated to a new location.
+# Parameters: %S is the new URL.
+webconsole.navigated=Đã điều hướng đến %S
+
+# LOCALIZATION NOTE (webconsole.closeSplitConsoleButton.tooltip): This is the tooltip for
+# the close button of the split console.
+webconsole.closeSplitConsoleButton.tooltip=Đóng bảng điều khiển phân chia (Esc)
+
+# LOCALIZATION NOTE (webconsole.closeSidebarButton.tooltip): This is the tooltip for
+# the close button of the sidebar.
+webconsole.closeSidebarButton.tooltip=Đóng thanh lề
+
+# LOCALIZATION NOTE (webconsole.reverseSearch.input.placeHolder):
+# This string is displayed in the placeholder of the reverse search input in the console.
+webconsole.reverseSearch.input.placeHolder=Tìm kiếm lịch sử
+
+# LOCALIZATION NOTE (webconsole.reverseSearch.result.closeButton.tooltip):
+# This string is displayed in the tooltip of the close button in the reverse search toolbar.
+# A keyboard shortcut will be shown inside the latter pair of brackets.
+webconsole.reverseSearch.closeButton.tooltip=Đóng (%S)
+
+# LOCALIZATION NOTE (webconsole.reverseSearch.results):
+# This string is displayed in the reverse search UI when there are at least one result
+# to the search.
+# This is a semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 index of current search result displayed.
+# #2 total number of search results.
+webconsole.reverseSearch.results=#1 trong #2 kết quả
+
+# LOCALIZATION NOTE (webconsole.reverseSearch.noResult):
+# This string is displayed in the reverse search UI when there is no results to the search.
+webconsole.reverseSearch.noResult=Không có kết quả
+
+# LOCALIZATION NOTE (webconsole.reverseSearch.result.previousButton.tooltip):
+# This string is displayed in the tooltip of the "previous result" button in the reverse search toolbar.
+# A keyboard shortcut will be shown inside the latter pair of brackets.
+webconsole.reverseSearch.result.previousButton.tooltip=Kết quả trước (%S)
+
+# LOCALIZATION NOTE (webconsole.reverseSearch.result.nextButton.tooltip):
+# This string is displayed in the tooltip of the "next result" button in the reverse search toolbar.
+# A keyboard shortcut will be shown inside the latter pair of brackets.
+webconsole.reverseSearch.result.nextButton.tooltip=Kết quả tiếp theo (%S)
+
+# LOCALIZATION NOTE (webconsole.confirmDialog.getter.label)
+# Label used for the "invoke getter" confirm dialog that appears in the console when
+# a user tries to autocomplete a property with a getter.
+# Example: given the following object `x = {get y() {}}`, when the user types `x.y.`, it
+# would return "Invoke getter y to retrieve the property list?".
+# Parameters: %S is the name of the getter.
+webconsole.confirmDialog.getter.label=Gọi getter %S để lấy danh sách thuộc tính?
+
+# LOCALIZATION NOTE (webconsole.confirmDialog.getter.invokeButtonLabelWithShortcut)
+# Label used for the confirm button in the "invoke getter" dialog that appears in the
+# console when a user tries to autocomplete a property with a getter.
+# A keyboard shortcut will be shown inside the latter pair of brackets.
+webconsole.confirmDialog.getter.invokeButtonLabelWithShortcut=Gọi (%S)
+
+# LOCALIZATION NOTE (webconsole.confirmDialog.getter.closeButton.tooltip)
+# Label used as the tooltip for the close button in the "invoke getter" dialog that
+# appears in the console when a user tries to autocomplete a property with a getter.
+# A keyboard shortcut will be shown inside the latter pair of brackets.
+webconsole.confirmDialog.getter.closeButton.tooltip=Đóng (%S)
+
+# LOCALIZATION NOTE (webconsole.cssWarningElements.label)
+# Label for the list of HTML elements matching the selector associated
+# with the CSS warning. Parameters: %S is the CSS selector.
+webconsole.cssWarningElements.label=Các phần tử phù hợp với bộ chọn: %S
+
+# LOCALIZATION NOTE (webconsole.message.componentDidCatch.label)
+# Label displayed when the webconsole couldn't handle a given packet.
+# Parameters: %S is the URL to file a bug about the error.
+webconsole.message.componentDidCatch.label=[LỖI DEVTOOLS] Chúng tôi xin lỗi, chúng tôi không thể kết xuất thông báo. Điều này không nên xảy ra - vui lòng gửi lỗi tại %S với siêu dữ liệu thông báo trong mô tả.
+
+# LOCALIZATION NOTE (webconsole.message.commands.blockedURL)
+# Label displayed when the :block <url> command is successful
+# Parameters: %S is the URL filter
+webconsole.message.commands.blockedURL=Các yêu cầu gửi đến đường dẫn chứa “%S” hiện đã bị khóa
+
+# LOCALIZATION NOTE (webconsole.message.commands.unblockedURL)
+# Label displayed when the :unblock <url> command is successful
+# Parameters: %S is the URL filter
+webconsole.message.commands.unblockedURL=Đã xóa bộ lọc chặn “%S”
+
+# LOCALIZATION NOTE (webconsole.messages.commands.blockArgMissing)
+# Message displayed when no filter is passed to block/unblock command
+webconsole.messages.commands.blockArgMissing=Không chọn bộ lọc nào
+
+# LOCALIZATION NOTE (webconsole.message.componentDidCatch.copyButton.label)
+# Label displayed on the button next to the message we display when the webconsole
+# couldn't handle a given packet (See webconsole.message.componentDidCatch.label).
+webconsole.message.componentDidCatch.copyButton.label=Sao chép siêu dữ liệu thông báo vào bộ nhớ tạm
+
+
+# LOCALIZATION NOTE (webconsole.editor.toolbar.executeButton.label)
+# Label used for the text of the execute button, in the editor toolbar, which is
+# displayed when the editor mode is enabled (devtools.webconsole.input.editor=true).
+webconsole.editor.toolbar.executeButton.label=Chạy
+
+# LOCALIZATION NOTE (webconsole.editor.toolbar.reverseSearchButton.openReverseSearch.tooltip)
+# Label used for the tooltip on the reverse search button for opening the Reverse Search UI.
+# The Reverse Search is a feature that mimics the bash-like reverse search of
+# command history in WebConsole, searching commands from the last item backwards.
+# Parameters: %S is the keyboard shortcut.
+webconsole.editor.toolbar.reverseSearchButton.openReverseSearch.tooltip=Mở trình tìm kiếm ngược lịch sử (%S)
+
+# LOCALIZATION NOTE (webconsole.editor.toolbar.reverseSearchButton.closeReverseSearch.tooltip)
+# Label used for the tooltip on the reverse search button for closing the Reverse Search UI.
+# The Reverse Search is a feature that mimics the bash-like reverse search of
+# command history in WebConsole, searching commands from the last item backwards.
+# Parameters: %S is the keyboard shortcut.
+webconsole.editor.toolbar.reverseSearchButton.closeReverseSearch.tooltip=Đóng trình tìm kiếm ngược lịch sử (%S)
+
+# LOCALIZATION NOTE (webconsole.editor.toolbar.executeButton.tooltip)
+# Label used for the tooltip on the execute button, in the editor toolbar, which is
+# displayed when the editor mode is enabled (devtools.webconsole.input.editor=true).
+# Parameters: %S is the keyboard shortcut.
+webconsole.editor.toolbar.executeButton.tooltip=Chạy biểu thức (%S). Điều này sẽ không xóa đầu vào.
+
+# LOCALIZATION NOTE (webconsole.editor.toolbar.prettyPrintButton.tooltip)
+# Label used for the tooltip on the prettyPrint button, in the editor toolbar, which is
+# displayed when the editor mode is enabled (devtools.webconsole.input.editor=true).
+
+# LOCALIZATION NOTE (webconsole.editor.toolbar.executeButton.tooltip)
+# Label used for the tooltip on the history previous expression, in the editor toolbar,
+# which is displayed when the editor mode is enabled (devtools.webconsole.input.editor=true).
+webconsole.editor.toolbar.history.prevExpressionButton.tooltip=Biểu hiện trước đó
+
+
+# LOCALIZATION NOTE (webconsole.editor.toolbar.executeButton.tooltip)
+# Label used for the tooltip on the history next expression, in the editor toolbar,
+# which is displayed when the editor mode is enabled (devtools.webconsole.input.editor=true).
+webconsole.editor.toolbar.history.nextExpressionButton.tooltip=Biểu hiện tiếp theo
+
+# LOCALIZATION NOTE (webconsole.editor.toolbar.closeButton.tooltip2)
+# Label used for the tooltip on the close button, in the editor toolbar, which is
+# displayed when the editor mode is enabled (devtools.webconsole.input.editor=true).
+# Parameters: %S is the keyboard shortcut.
+webconsole.editor.toolbar.closeButton.tooltip2=Chuyển về chế độ trực tiếp (%S)
+
+# LOCALIZATION NOTE (webconsole.input.openEditorButton.tooltip2)
+# Label used for the tooltip on the open editor button, in console input, which is
+# displayed when the console is in regular mode.
+# Parameters: %S is the keyboard shortcut.
+webconsole.input.openEditorButton.tooltip2=Chuyển sang chế độ soạn thảo (%S)
+
+# LOCALIZATION NOTE (webconsole.warningGroup.messageCount.tooltip): the tooltip text
+# displayed when you hover a warning group badge (i.e. repeated warning messages for a
+# given category, for example Content Blocked messages) in the web console output.
+# This is a semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 number of message in the group.
+# example: 3 messages
+webconsole.warningGroup.messageCount.tooltip=#1 thông báo
+
+# LOCALIZATION NOTE (webconsole.input.editor.onboarding.label): the text that is displayed
+# when displaying the multiline-input mode for the first time, until the user dismiss the
+# text.
+# Parameters: %1$S is Enter key, %2$S is the shorcut to evaluate the expression (
+# Ctrl+Enter or Cmd+Enter on OSX).
+webconsole.input.editor.onboarding.label=Lặp lại mã của bạn nhanh hơn với chế độ soạn thảo nhiều dòng mới. Sử dụng %1$S để thêm dòng mới và %2$S để chạy.
+
+# LOCALIZATION NOTE (webconsole.input.editor.onboarding.dismiss.label): the text that is
+# displayed in the multiline-input mode onboarding UI to dismiss it.
+webconsole.input.editor.onboarding.dismiss.label=Đã hiểu!
+
+# LOCALIZATION NOTE (webconsole.enterKey): The text that will be used to represent the
+# Enter key in the editor onboarding UI, as well as on the Editor toolbar "Run" button
+# tooltip.
+webconsole.enterKey=Enter
+
+# LOCALIZATION NOTE (webconsole.input.openJavaScriptFile): This is a label
+# used for opening a file in the console input (Ctrl+O or Cmd+O on OSX while
+# being focused on the input).
+webconsole.input.openJavaScriptFile=Mở tập tin JavaScript
+
+# LOCALIZATION NOTE (webconsole.input.openJavaScriptFileFilter):
+# This string is displayed as a filter when opening a file in the console input.
+webconsole.input.openJavaScriptFileFilter=Tập tin JavaScript
+
+# LOCALIZATION NOTE (webconsole.input.selector.top): This is the term used
+# to describe the primary thread of execution in the page
+webconsole.input.selector.top=Trên cùng
+
+# LOCALIZATION NOTE (webconsole.input.selector.tooltip): This is the tooltip
+# shown when users select a thread that they want to evaluate an
+# expression for.
+webconsole.input.selector.tooltip=Chọn bối cảnh đánh giá
+
+# LOCALIZATION NOTE (webconsole.group.cookieSameSiteLaxByDefaultEnabled): do not translate 'sameSite'.
+webconsole.group.cookieSameSiteLaxByDefaultEnabled=Một số cookie đang sử dụng sai thuộc tính “sameSite“, do đó có thể không hoạt động như mong đợi
+# LOCALIZATION NOTE (webconsole.group.cookieSameSiteLaxByDefaultDisabled): do not translate 'sameSite'.
+webconsole.group.cookieSameSiteLaxByDefaultDisabled=Một số cookie đang sử dụng sai thuộc tính được đề xuất “sameSite“
+
+# LOCALIZATION NOTE (webconsole.group.cookieSameSiteLaxByDefaultEnabled2): do not translate 'SameSite'.
+webconsole.group.cookieSameSiteLaxByDefaultEnabled2=Một số cookie đang sử dụng sai thuộc tính “SameSite“, do đó có thể không hoạt động như mong đợi
+# LOCALIZATION NOTE (webconsole.group.cookieSameSiteLaxByDefaultDisabled2): do not translate 'SameSite'.
+webconsole.group.cookieSameSiteLaxByDefaultDisabled2=Một số cookie đang sử dụng sai thuộc tính được đề xuất “SameSite“
diff --git a/l10n-vi/devtools/shared/accessibility.properties b/l10n-vi/devtools/shared/accessibility.properties
new file mode 100644
index 0000000000..d132f5ed95
--- /dev/null
+++ b/l10n-vi/devtools/shared/accessibility.properties
@@ -0,0 +1,139 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 (accessibility.contrast.ratio): A title text for the color contrast
+# ratio description, used by the accessibility highlighter to display the value. %S in the
+# content will be replaced by the contrast ratio numerical value.
+accessibility.contrast.ratio=Độ tương phản: %S
+
+# LOCALIZATION NOTE (accessibility.contrast.ratio.error): A title text for the color
+# contrast ratio, used when the tool is unable to calculate the contrast ratio value.
+accessibility.contrast.ratio.error=Không thể tính toán
+
+# LOCALIZATION NOTE (accessibility.contrast.ratio.label): A title text for the color
+# contrast ratio description, used together with the actual values.
+accessibility.contrast.ratio.label=Độ tương phản:
+
+# LOCALIZATION NOTE (accessibility.contrast.ratio.label.large): A title text for the color
+# contrast ratio description that also specifies that the color contrast criteria used is
+# if for large text.
+accessibility.contrast.ratio.label.large=Độ tương phản (văn bản lớn):
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.area): A title text that
+# describes that currently selected accessible object for an <area> element must have
+# its name provided via the alt attribute.
+accessibility.text.label.issue.area = Sử dụng thuộc tính “alt” để gắn nhãn các phần tử “area” có các thuộc tính “href”.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.dialog): A title text that
+# describes that currently selected accessible object for a dialog should have a name
+# provided.
+accessibility.text.label.issue.dialog = Hộp thoại nên được dán nhãn.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.document.title): A title text that
+# describes that currently selected accessible object for a document must have a name
+# provided via title.
+accessibility.text.label.issue.document.title = Tài liệu phải có tiêu đề.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.embed): A title text that
+# describes that currently selected accessible object for an <embed> must have a name
+# provided.
+accessibility.text.label.issue.embed = Nội dung nhúng phải được dán nhãn.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.figure): A title text that
+# describes that currently selected accessible object for a figure should have a name
+# provided.
+accessibility.text.label.issue.figure = Số liệu với chú thích tùy chọn nên được dán nhãn.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.fieldset): A title text that
+# describes that currently selected accessible object for a <fieldset> must have a name
+# provided.
+accessibility.text.label.issue.fieldset = Các phần tử của “fieldset” phải được dán nhãn.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.fieldset.legend2): A title text that
+# describes that currently selected accessible object for a <fieldset> must have a name
+# provided via <legend> element.
+accessibility.text.label.issue.fieldset.legend2 = Sử dụng phần tử “legend” để gắn nhãn cho “fieldset”.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.form): A title text that
+# describes that currently selected accessible object for a form element must have a name
+# provided.
+accessibility.text.label.issue.form = Các yếu tố hình thức phải được dán nhãn.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.form.visible): A title text that
+# describes that currently selected accessible object for a form element should have a name
+# provided via a visible label/element.
+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.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.frame): A title text that
+# describes that currently selected accessible object for a <frame> must have a name
+# provided.
+accessibility.text.label.issue.frame = Các phần tử “frame” phải được dán nhãn.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.glyph): A title text that
+# describes that currently selected accessible object for a <mglyph> must have a name
+# provided via alt attribute.
+accessibility.text.label.issue.glyph = Sử dụng thuộc tính “alt” để ghi nhãn các yếu tố “mglylyph”.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.heading): A title text that
+# describes that currently selected accessible object for a heading must have a name
+# provided.
+accessibility.text.label.issue.heading = Headings phải được dán nhãn.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.heading.content): A title text that
+# describes that currently selected accessible object for a heading must have visible
+# content.
+accessibility.text.label.issue.heading.content = Headings nên có nội dung văn bản hiển thị.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.iframe): A title text that
+# describes that currently selected accessible object for an <iframe> have a name
+# provided via title attribute.
+accessibility.text.label.issue.iframe = Sử dụng thuộc tính “title” để mô tả nội dung của “iframe”.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.image): A title text that
+# describes that currently selected accessible object for graphical content must have a
+# name provided.
+accessibility.text.label.issue.image = Nội dung với hình ảnh phải được dán nhãn.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.interactive): A title text that
+# describes that currently selected accessible object for interactive element must have a
+# name provided.
+accessibility.text.label.issue.interactive = Các yếu tố tương tác phải được dán nhãn.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.optgroup.label2): A title text that
+# describes that currently selected accessible object for an <optgroup> must have a
+# name provided via label attribute.
+accessibility.text.label.issue.optgroup.label2 = Sử dụng thuộc tính “label” để gắn nhãn “optgroup”.
+
+# LOCALIZATION NOTE (accessibility.text.label.issue.toolbar): A title text that
+# describes that currently selected accessible object for a toolbar must have a
+# name provided when there is more than one toolbar in the document.
+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ụ.
+
+# LOCALIZATION NOTE (accessibility.keyboard.issue.semantics): A title text that
+# describes that currently selected accessible object is focusable and should
+# indicate that it could be interacted with.
+
+# LOCALIZATION NOTE (accessibility.keyboard.issue.tabindex): A title text that
+# describes that currently selected accessible object has a corresponding
+# DOMNode that defines a tabindex attribute greater that 0 which can result in
+# unexpected behaviour when navigating with keyboard.
+accessibility.keyboard.issue.tabindex=Tránh sử dụng thuộc tính “tabindex” lớn hơn 0.
+
+# LOCALIZATION NOTE (accessibility.keyboard.issue.action): A title text that
+# describes that currently selected accessible object is interactive but can not
+# be activated using keyboard or accessibility API.
+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.
+
+# LOCALIZATION NOTE (accessibility.keyboard.issue.focusable): A title text that
+# describes that currently selected accessible object is interactive but is not
+# focusable with a keyboard.
+
+# LOCALIZATION NOTE (accessibility.keyboard.issue.focus.visible): A title text
+# that describes that currently selected accessible object is focusable but
+# might not have appropriate focus styling.
+
+# LOCALIZATION NOTE (accessibility.keyboard.issue.mouse.only): A title text that
+# describes that currently selected accessible object is not focusable and not
+# semantic but can be activated via mouse (e.g. has click handler).
+
diff --git a/l10n-vi/devtools/shared/debugger.properties b/l10n-vi/devtools/shared/debugger.properties
new file mode 100644
index 0000000000..dab9557396
--- /dev/null
+++ b/l10n-vi/devtools/shared/debugger.properties
@@ -0,0 +1,59 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 Debugger
+# which is available from the Web Developer sub-menu -> 'Debugger'.
+# 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 (remoteIncomingPromptTitle): The title displayed on the
+# dialog that prompts the user to allow the incoming connection.
+remoteIncomingPromptTitle=Kết nối đến
+
+# LOCALIZATION NOTE (remoteIncomingPromptHeader): Header displayed on the
+# dialog that prompts the user to allow the incoming connection.
+remoteIncomingPromptHeader=Một yêu cầu đến để cho phép kết nối gỡ lỗi từ xa đã được phát hiện. Một máy khách từ xa có thể kiểm soát hoàn toàn trình duyệt của bạn!
+# LOCALIZATION NOTE (remoteIncomingPromptClientEndpoint): Part of the prompt
+# dialog for the user to choose whether an incoming connection should be
+# allowed.
+# %1$S: The host and port of the client such as "127.0.0.1:6000"
+remoteIncomingPromptClientEndpoint=Điểm cuối máy khách: %1$S
+# LOCALIZATION NOTE (remoteIncomingPromptServerEndpoint): Part of the prompt
+# dialog for the user to choose whether an incoming connection should be
+# allowed.
+# %1$S: The host and port of the server such as "127.0.0.1:6000"
+remoteIncomingPromptServerEndpoint=Điểm cuối máy chủ: %1$S
+# LOCALIZATION NOTE (remoteIncomingPromptFooter): Footer displayed on the
+# dialog that prompts the user to allow the incoming connection.
+remoteIncomingPromptFooter=Cho phép kết nối?
+
+# LOCALIZATION NOTE (remoteIncomingPromptDisable): The label displayed on the
+# third button in the incoming connection dialog that lets the user disable the
+# remote debugger server.
+remoteIncomingPromptDisable=Vô hiệu hóa
+
+# LOCALIZATION NOTE (clientSendOOBTitle): The title displayed on the dialog that
+# instructs the user to transfer an authentication token to the server.
+clientSendOOBTitle=Nhận dạng máy khách
+# LOCALIZATION NOTE (clientSendOOBHeader): Header displayed on the dialog that
+# instructs the user to transfer an authentication token to the server.
+clientSendOOBHeader=Điểm cuối bạn đang kết nối cần thêm thông tin để xác thực kết nối này. Vui lòng cung cấp token bên dưới trong lời nhắc xuất hiện ở bên kia.
+# LOCALIZATION NOTE (clientSendOOBHash): Part of the dialog that instructs the
+# user to transfer an authentication token to the server.
+# %1$S: The client's cert fingerprint
+clientSendOOBHash=Chứng chỉ của tôi: %1$S
+# LOCALIZATION NOTE (clientSendOOBToken): Part of the dialog that instructs the
+# user to transfer an authentication token to the server.
+# %1$S: The authentication token that the user will transfer.
+clientSendOOBToken=Token: %1$S
+
+# LOCALIZATION NOTE (serverReceiveOOBTitle): The title displayed on the dialog
+# that instructs the user to provide an authentication token from the client.
+serverReceiveOOBTitle=Cung cấp token máy khách
+# LOCALIZATION NOTE (serverReceiveOOBBody): Main text displayed on the dialog
+# that instructs the user to provide an authentication token from the client.
+serverReceiveOOBBody=Máy khách sẽ được hiển thị một giá trị token. Nhập giá trị toekn đó vào đây để hoàn tất xác thực với máy khách này.
diff --git a/l10n-vi/devtools/shared/eyedropper.properties b/l10n-vi/devtools/shared/eyedropper.properties
new file mode 100644
index 0000000000..bb45d4aa6c
--- /dev/null
+++ b/l10n-vi/devtools/shared/eyedropper.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 These strings are used in the Eyedropper color tool.
+# LOCALIZATION NOTE 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 (colorValue.copied): This text is displayed when the user selects a
+# color with the eyedropper and it's copied to the clipboard.
+colorValue.copied=đã sao chép
diff --git a/l10n-vi/devtools/shared/highlighters.properties b/l10n-vi/devtools/shared/highlighters.properties
new file mode 100644
index 0000000000..ccb7405e49
--- /dev/null
+++ b/l10n-vi/devtools/shared/highlighters.properties
@@ -0,0 +1,35 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 contains strings used in highlighters.
+# Highlighters are visualizations that DevTools draws on top of content to aid
+# in understanding content sizing, etc.
+
+# LOCALIZATION NOTE (grid.rowColumnPositions): The row and column position of a grid
+# cell shown in the grid cell infobar when hovering over the CSS grid outline.
+grid.rowColumnPositions=Hàng %S / Cột %S
+
+# LOCALIZATION NOTE (gridType.container): the layout type of an element shown in
+# the infobar when hovering over a DOM element and it is a grid container.
+gridType.container=Ngăn chứa lưới
+
+# LOCALIZATION NOTE (gridType.item): the layout type of an element shown in
+# the infobar when hovering over a DOM element and it is a grid item.
+gridType.item=Mục lưới
+
+# LOCALIZATION NOTE (gridType.dual): the layout type of an element shown in
+# the infobar when hovering over a DOM element and it is both a grid container and a grid item.
+gridType.dual=Ngăn chứa/mục lưới
+
+# LOCALIZATION NOTE (flexType.container): the layout type of an element shown in
+# the infobar when hovering over a DOM element and it is a flex container.
+flexType.container=Ngăn chứa Flex
+
+# LOCALIZATION NOTE (flexType.item): the layout type of an element shown in
+# the infobar when hovering over a DOM element and it is a flex item.
+flexType.item=Mục Flex
+
+# LOCALIZATION NOTE (flexType.dual): the layout type of an element shown in
+# the infobar when hovering over a DOM element and it is both a flex container and a flex item.
+flexType.dual=Ngăn chứa/mục Flex
diff --git a/l10n-vi/devtools/shared/screenshot.properties b/l10n-vi/devtools/shared/screenshot.properties
new file mode 100644
index 0000000000..ac0b6e1ac4
--- /dev/null
+++ b/l10n-vi/devtools/shared/screenshot.properties
@@ -0,0 +1,138 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 Web Console commands.
+# The Web Console command line is available from the Web Developer sub-menu
+# -> 'Web Console'.
+#
+# 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 (screenshotDesc) A very short description of the
+# 'screenshot' command. Displayed when the --help flag is passed to
+# the screenshot command.
+screenshotDesc=Lưu một hình ảnh của trang
+
+# LOCALIZATION NOTE (screenshotFilenameDesc) A very short string to describe
+# the 'filename' parameter to the 'screenshot' command. Displayed when the
+# --help flag is passed to the screenshot command.
+screenshotFilenameDesc=Tên tập tin đích
+
+# LOCALIZATION NOTE (screenshotFilenameManual) A fuller description of the
+# 'filename' parameter to the 'screenshot' command.
+screenshotFilenameManual=Tên tập tin (nên ở định dạng ‘.png’) để chúng tôi ghi lại ảnh màn hình.
+
+# LOCALIZATION NOTE (screenshotClipboardDesc) A very short string to describe
+# the 'clipboard' parameter to the 'screenshot' command. Displayed when the
+# --help flag is passed to the screenshot command.
+screenshotClipboardDesc=Sao chép ảnh chụp màn hình vào bộ nhớ tạm? (true/false)
+
+# LOCALIZATION NOTE (screenshotClipboardManual) A fuller description of the
+# 'clipboard' parameter to the 'screenshot' command. Displayed when the
+# --help flag is passed to the screenshot command.
+screenshotClipboardManual=Chọn đúng nếu bạn muốn sao chép ảnh chụp màn hình thay vì lưu lại ra một tập tin.
+
+# LOCALIZATION NOTE (screenshotGroupOptions) A label for the optional options of
+# the screenshot command. Displayed when the --help flag is passed to the
+# screenshot command.
+screenshotGroupOptions=Tùy chọn
+
+# LOCALIZATION NOTE (screenshotDelayDesc) A very short string to describe
+# the 'delay' parameter to the 'screenshot' command. Displayed when the
+# --help flag is passed to the screenshot command.
+screenshotDelayDesc=Trì hoãn (giây)
+
+# LOCALIZATION NOTE (screenshotDelayManual) A fuller description of the
+# 'delay' parameter to the 'screenshot' command. Displayed when the
+# --help flag is passed to the screenshot command.
+screenshotDelayManual=Thời gian chờ (giây) trước khi chụp ảnh màn hình
+
+# LOCALIZATION NOTE (screenshotDPRDesc) A very short string to describe
+# the 'dpr' parameter to the 'screenshot' command. Displayed when the
+# --help flag is passed to the `screenshot command.
+screenshotDPRDesc=Tỷ lệ pixel thiết bị
+
+# LOCALIZATION NOTE (screenshotDPRManual) A fuller description of the
+# 'dpr' parameter to the 'screenshot' command. Displayed when the
+# --help flag is passed to the `screenshot command.
+screenshotDPRManual=Tỷ lệ pixel của thiết bị sẽ sử dụng khi chụp ảnh màn hình
+
+# LOCALIZATION NOTE (screenshotFullPageDesc) A very short string to describe
+# the 'fullpage' parameter to the 'screenshot' command. Displayed when the
+# --help flag is passed to the `screenshot command.
+screenshotFullPageDesc=Chọn toàn bộ trang? (true/false)
+
+# LOCALIZATION NOTE (screenshotFullPageManual) A fuller description of the
+# 'fullpage' parameter to the 'screenshot' command. Displayed when the
+# --help flag is passed to the `screenshot command.
+screenshotFullPageManual=Chọn đúng nếu ảnh chụp màn hình bao gồm các phần của trang web bên ngoài đường biên cuộn hiện tại.
+
+# LOCALIZATION NOTE (screenshotFileDesc) A very short string to describe
+# the 'file' parameter to the 'screenshot' command. Displayed when the
+# --help flag is passed to the `screenshot command.
+screenshotFileDesc=Lưu vào tập tin? (true/false)
+
+# LOCALIZATION NOTE (screenshotFileManual) A fuller description of the
+# 'file' parameter to the 'screenshot' command. Displayed when the
+# --help flag is passed to the `screenshot command.
+screenshotFileManual=Chọn đúng nếu ảnh chụp màn hình sẽ lưu tập tin ngay cả khi các tùy chọn khác được bật (ví dụ: bộ nhớ tạm).
+
+# LOCALIZATION NOTE (screenshotGeneratedFilename) The auto generated filename
+# when no file name is provided. The first argument (%1$S) is the date string
+# in yyyy-mm-dd format and the second argument (%2$S) is the time string
+# in HH.MM.SS format. Please don't add the extension here.
+screenshotGeneratedFilename=Ảnh chụp màn hình %1$S lúc %2$S
+
+# LOCALIZATION NOTE (screenshotErrorSavingToFile) Text displayed to user upon
+# encountering error while saving the screenshot to the file specified.
+# The argument (%1$S) is the filename.
+screenshotErrorSavingToFile=Lỗi khi lưu %1$S
+
+# LOCALIZATION NOTE (screenshotSavedToFile) Text displayed to user when the
+# screenshot is successfully saved to the file specified.
+# The argument (%1$S) is the filename.
+screenshotSavedToFile=Đã lưu vào %1$S
+
+# LOCALIZATION NOTE (screenshotErrorCopying) Text displayed to user upon
+# encountering error while copying the screenshot to clipboard.
+screenshotErrorCopying=Xảy ra lỗi trong khi sao chép ảnh chụp màn hình vào bộ nhớ tạm.
+
+# LOCALIZATION NOTE (screenshotCopied) Text displayed to user when the
+# screenshot is successfully copied to the clipboard.
+screenshotCopied=Đã sao chép ảnh chụp màn hình vào bộ nhớ tạm.
+
+# LOCALIZATION NOTE (inspectNodeDesc) A very short string to describe the
+# 'node' parameter to the 'inspect' command. Displayed when the
+# --help flag is passed to the `screenshot command.
+inspectNodeDesc=Bộ chọn CSS
+
+# LOCALIZATION NOTE (inspectNodeManual) A fuller description of the 'node'
+# parameter to the 'inspect' command. Displayed when the --help flag is
+# passed to the `screenshot command.
+inspectNodeManual=Bộ chọn CSS để sử dụng với document.querySelector xác định một phần tử
+
+# LOCALIZATION NOTE (screenshotTruncationWarning) Text displayed to user when the image
+# that would be created by the screenshot is too big and needs to be truncated to avoid
+# errors.
+# The first parameter is the width of the final image and the second parameter is the
+# height of the image.
+screenshotTruncationWarning=Vì hình ảnh được tạo quá lớn, nó đã bị cắt thành %1$S×%2$S
+
+# LOCALIZATION NOTE (screenshotDPRDecreasedWarning2) Text displayed to user when
+# taking the screenshot initially failed. When the Device Pixel Ratio is larger
+# than 1.0 a second try immediately after displaying this message is attempted.
+screenshotDPRDecreasedWarning=Tỷ lệ pixel của thiết bị đã bị giảm xuống 1 vì hình ảnh được tạo quá lớn
+
+# LOCALIZATION NOTE (screenshotRenderingError) Text displayed to user upon
+# encountering an error while rendering the screenshot. This most often happens when the
+# resulting image is too large to be rendered.
+screenshotRenderingError=Xảy ra lỗi trong khi tạo hình ảnh. Hình ảnh thu được có thể quá lớn.
+
+# LOCALIZATION NOTE (screenshotNoSelectorMatchWarning) Text displayed to user when the
+# provided selector for the screenshot does not match any element on the page.
+# The argument (%1$S) is selector.
+screenshotNoSelectorMatchWarning=‘%S’ không khớp với bất kỳ phần tử nào trên trang.
diff --git a/l10n-vi/devtools/shared/shared.properties b/l10n-vi/devtools/shared/shared.properties
new file mode 100644
index 0000000000..1fb1dc2307
--- /dev/null
+++ b/l10n-vi/devtools/shared/shared.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/.
+
+# LOCALIZATION NOTE (ellipsis): The ellipsis (three dots) character
+ellipsis=… \ No newline at end of file
diff --git a/l10n-vi/devtools/shared/styleinspector.properties b/l10n-vi/devtools/shared/styleinspector.properties
new file mode 100644
index 0000000000..567d6bdc65
--- /dev/null
+++ b/l10n-vi/devtools/shared/styleinspector.properties
@@ -0,0 +1,242 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 Style 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 (rule.status): For each style property the panel shows
+# the rules which hold that specific property. For every rule, the rule status
+# is also displayed: a rule can be the best match, a match, a parent match, or a
+# rule did not match the element the user has highlighted.
+rule.status.BEST=Kết quả đúng nhất
+rule.status.MATCHED=Đã khớp
+rule.status.PARENT_MATCH=Khớp với cha
+
+# LOCALIZATION NOTE (rule.sourceElement, rule.sourceInline): For each
+# style property the panel shows the rules which hold that specific property.
+# For every rule, the rule source is also displayed: a rule can come from a
+# file, from the same page (inline), or from the element itself (element).
+rule.sourceInline=inline
+rule.sourceElement=element
+
+# LOCALIZATION NOTE (rule.inheritedFrom): Shown for CSS rules
+# that were inherited from a parent node. Will be passed a node
+# identifier of the parent node.
+# e.g "Inherited from body#bodyID"
+rule.inheritedFrom=Được kế thừa từ %S
+
+# LOCALIZATION NOTE (rule.keyframe): Shown for CSS Rules keyframe header.
+# Will be passed an identifier of the keyframe animation name.
+rule.keyframe=Khung hình chính %S
+
+# LOCALIZATION NOTE (rule.userAgentStyles): Shown next to the style sheet
+# link for CSS rules that were loaded from a user agent style sheet.
+# These styles will not be editable, and will only be visible if the
+# devtools.inspector.showUserAgentStyles pref is true.
+rule.userAgentStyles=(chuỗi đại diện người dùng)
+
+# LOCALIZATION NOTE (rule.pseudoElement): Shown for CSS rules
+# pseudo element header
+rule.pseudoElement=Pseudo-elements
+
+# LOCALIZATION NOTE (rule.selectedElement): Shown for CSS rules element header if
+# pseudo elements are present in the rule view.
+rule.selectedElement=Phần tử này
+
+# LOCALIZATION NOTE (rule.warning.title): When an invalid property value is
+# entered into the rule view a warning icon is displayed. This text is used for
+# the title attribute of the warning icon.
+rule.warning.title=Giá trị thuộc tính không hợp lệ
+
+# LOCALIZATION NOTE (rule.warningName.title): When an invalid property name is
+# entered into the rule view a warning icon is displayed. This text is used for
+# the title attribute of the warning icon.
+rule.warningName.title=Tên tài sản không hợp lệ
+
+# LOCALIZATION NOTE (rule.filterProperty.title): Text displayed in the tooltip
+# of the search button that is shown next to a property that has been overridden
+# in the rule view.
+rule.filterProperty.title=Quy tắc lọc chứa thuộc tính này
+
+# LOCALIZATION NOTE (rule.empty): Text displayed when the highlighter is
+# first opened and there's no node selected in the rule view.
+rule.empty=Không có thành phần nào được chọn.
+
+# LOCALIZATION NOTE (rule.variableValue): Text displayed in a tooltip
+# when the mouse is over a variable use (like "var(--something)") in
+# the rule view. The first argument is the variable name and the
+# second argument is the value.
+rule.variableValue=%S = %S
+
+# LOCALIZATION NOTE (rule.variableUnset): Text displayed in a tooltip
+# when the mouse is over a variable use (like "var(--something)"),
+# where the variable is not set. the rule view. The argument is the
+# variable name.
+rule.variableUnset=%S chưa được đặt
+
+# LOCALIZATION NOTE (rule.selectorHighlighter.tooltip): Text displayed in a
+# tooltip when the mouse is over a selector highlighter icon in the rule view.
+rule.selectorHighlighter.tooltip=Tô sáng tất cả các yếu tố phù hợp với bộ chọn này
+
+# LOCALIZATION NOTE (rule.colorSwatch.tooltip): Text displayed in a tooltip
+# when the mouse is over a color swatch in the rule view.
+rule.colorSwatch.tooltip=Nhấp để mở bộ chọn màu, Shift+nhấp để thay đổi định dạng màu
+
+# LOCALIZATION NOTE (rule.bezierSwatch.tooltip): Text displayed in a tooltip
+# when the mouse is over a cubic-bezier swatch in the rule view.
+rule.bezierSwatch.tooltip=Nhấn vào đây để mở chức năng chỉnh sửa thời gian
+
+# LOCALIZATION NOTE (rule.filterSwatch.tooltip): Text displayed in a tooltip
+# when the mouse is over a filter swatch in the rule view.
+rule.filterSwatch.tooltip=Nhấn vào đây để mở trình chỉnh sửa bộ lọc
+
+# LOCALIZATION NOTE (rule.angleSwatch.tooltip): Text displayed in a tooltip
+# when the mouse is over a angle swatch in the rule view.
+rule.angleSwatch.tooltip=Shift+bấm để thay đổi định dạng góc
+
+# LOCALIZATION NOTE (rule.flexToggle.tooltip): Text displayed in a tooltip
+# when the mouse is over a Flexbox toggle icon in the rule view.
+rule.flexToggle.tooltip=Nhấp để chuyển đổi công cụ đánh dấu Flexbox
+
+# LOCALIZATION NOTE (rule.gridToggle.tooltip): Text displayed in a tooltip
+# when the mouse is over a CSS Grid toggle icon in the rule view.
+rule.gridToggle.tooltip=Nhấn vào đây để bật/tắt công cụ đánh dấu lưới CSS
+
+# LOCALIZATION NOTE (rule.filterStyles.placeholder): This is the placeholder that
+# goes in the search box when no search term has been entered.
+rule.filterStyles.placeholder=Các kiểu lọc
+
+# LOCALIZATION NOTE (rule.addRule.tooltip): This is the tooltip shown when
+# hovering the `Add new rule` button in the rules view toolbar.
+rule.addRule.tooltip=Thêm quy tắc mới
+
+# LOCALIZATION NOTE (rule.togglePseudo.tooltip): This is the tooltip
+# shown when hovering over the `Toggle Pseudo Class Panel` button in the
+# rule view toolbar.
+rule.togglePseudo.tooltip=Chuyển đổi các lớp giả định
+
+# LOCALIZATION NOTE (rule.classPanel.toggleClass.tooltip): This is the tooltip
+# shown when hovering over the `Toggle Class Panel` button in the
+# rule view toolbar.
+rule.classPanel.toggleClass.tooltip=Chuyển đổi các lớp
+
+# LOCALIZATION NOTE (rule.classPanel.newClass.placeholder): This is the placeholder
+# shown inside the text field used to add a new class in the rule-view.
+rule.classPanel.newClass.placeholder=Thêm lớp mới
+
+# LOCALIZATION NOTE (rule.classPanel.noClasses): This is the text displayed in the
+# class panel when the current element has no classes applied.
+rule.classPanel.noClasses=Không có lớp về phần tử này
+
+# LOCALIZATION NOTE (rule.printSimulation.tooltip):
+# This is the tooltip of the print simulation button in the Rule View toolbar
+# that toggles print simulation.
+rule.printSimulation.tooltip=Chuyển đổi mô phỏng phương tiện in cho trang
+
+# LOCALIZATION NOTE (rule.colorSchemeSimulation.tooltip):
+# This is the tooltip of the color scheme simulation button in the Rule View
+# toolbar that toggles color-scheme simulation.
+rule.colorSchemeSimulation.tooltip=Chuyển đổi mô phỏng sơ đồ màu cho trang
+
+# LOCALIZATION NOTE (rule.twistyCollapse.label): The text a screen reader
+# speaks when the header of a rule is expanded.
+rule.twistyCollapse.label=Thu gọn
+
+# LOCALIZATION NOTE (rule.twistyExpand.label): The text a screen reader
+# speaks when the header of a rule is collapsed.
+rule.twistyExpand.label=Mở rộng
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyColor): Text displayed in the rule
+# and computed view context menu when a color value was clicked.
+styleinspector.contextmenu.copyColor=Sao chép màu
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyColor.accessKey): Access key for
+# the rule and computed view context menu "Copy Color" entry.
+styleinspector.contextmenu.copyColor.accessKey=L
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyUrl): In rule and computed view :
+# text displayed in the context menu for an image URL.
+# Clicking it copies the URL to the clipboard of the user.
+styleinspector.contextmenu.copyUrl=Sao chép URL
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyUrl.accessKey): Access key for
+# the rule and computed view context menu "Copy URL" entry.
+styleinspector.contextmenu.copyUrl.accessKey=U
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyImageDataUrl): In rule and computed view :
+# text displayed in the context menu for an image URL.
+# Clicking it copies the image as Data-URL to the clipboard of the user.
+styleinspector.contextmenu.copyImageDataUrl=Sao chép dữ liệu URL hình ảnh
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyImageDataUrl.accessKey): Access key for
+# the rule and computed view context menu "Copy Image Data-URL" entry.
+styleinspector.contextmenu.copyImageDataUrl.accessKey=I
+
+# LOCALIZATION NOTE (styleinspector.copyImageDataUrlError): Text set in the clipboard
+# if an error occurs when using the copyImageDataUrl context menu action
+# (invalid image link, timeout, etc...)
+styleinspector.copyImageDataUrlError=Không thể sao chép dữ liệu URL hình ảnh
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.toggleOrigSources): Text displayed in the rule view
+# context menu.
+styleinspector.contextmenu.toggleOrigSources=Hiển thị nguồn gốc
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.toggleOrigSources.accessKey): Access key for
+# the rule view context menu "Show original sources" entry.
+styleinspector.contextmenu.toggleOrigSources.accessKey=O
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.addNewRule): Text displayed in the
+# rule view context menu for adding a new rule to the element.
+# This should match inspector.addRule.tooltip in inspector.properties
+styleinspector.contextmenu.addNewRule=Thêm quy tắc mới
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.addNewRule.accessKey): Access key for
+# the rule view context menu "Add rule" entry.
+styleinspector.contextmenu.addNewRule.accessKey=R
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.selectAll): Text displayed in the
+# computed view context menu.
+styleinspector.contextmenu.selectAll=Chọn tất cả
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.selectAll.accessKey): Access key for
+# the computed view context menu "Select all" entry.
+styleinspector.contextmenu.selectAll.accessKey=A
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copy): Text displayed in the
+# computed view context menu.
+styleinspector.contextmenu.copy=Sao chép
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copy.accessKey): Access key for
+# the computed view context menu "Copy" entry.
+styleinspector.contextmenu.copy.accessKey=C
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyLocation): Text displayed in the
+# rule view context menu for copying the source location.
+styleinspector.contextmenu.copyLocation=Sao chép địa chỉ
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyDeclaration): Text
+# displayed in the rule view context menu for copying the CSS declaration.
+styleinspector.contextmenu.copyDeclaration=Sao chép khai báo
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyPropertyName): Text displayed in
+# the rule view context menu for copying the property name.
+styleinspector.contextmenu.copyPropertyName=Sao chép tên tài sản
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyPropertyValue): Text displayed in
+# the rule view context menu for copying the property value.
+styleinspector.contextmenu.copyPropertyValue=Sao chép giá trị tài sản
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copyRule): Text displayed in the
+# rule view context menu for copying the rule.
+styleinspector.contextmenu.copyRule=Sao chép quy tắc
+
+# LOCALIZATION NOTE (styleinspector.contextmenu.copySelector): Text displayed in the
+# rule view context menu for copying the selector.
+styleinspector.contextmenu.copySelector=Sao chép bộ chọn
diff --git a/l10n-vi/devtools/startup/aboutDevTools.ftl b/l10n-vi/devtools/startup/aboutDevTools.ftl
new file mode 100644
index 0000000000..893da6ecab
--- /dev/null
+++ b/l10n-vi/devtools/startup/aboutDevTools.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/.
+
+head-title = GIới thiệu công cụ dành cho nhà phát triển
+enable-title = Kích hoạt công cụ dành cho nhà phát triển Firefox
+enable-inspect-element-title = Bật công cụ dành cho nhà phát triển Firefox để sử dụng kiểm tra phần tử
+enable-inspect-element-message = Kiểm tra và chỉnh sửa HTML và CSS với Trình kiểm tra trong công cụ dành cho nhà phát triển.
+enable-about-debugging-message = Phát triển và gỡ lỗi WebExtensions, web workers, service worker và nhiều hơn nữa với công cụ dành cho nhà phát triển Firefox.
+enable-key-shortcut-message = Bạn đã kích hoạt phím tắt công cụ dành cho nhà phát triển. Nếu đó là một sai lầm, bạn có thể đóng thẻ này.
+enable-menu-message = Hoàn thiện trang web của bạn HTML HTML, CSS và JavaScript bằng các công cụ như trình kiểm tra và trình gỡ lỗi.
+enable-common-message = Công cụ dành cho nhà phát triển Firefox bị tắt theo mặc định để cung cấp cho bạn quyền kiểm soát nhiều hơn đối với trình duyệt của bạn.
+enable-learn-more-link = Xem thêm về công cụ dành cho nhà phát triển
+enable-enable-button = Bật công cụ dành cho phát triển
+enable-close-button = Đóng thẻ này
+
+welcome-title = Chào mừng đến với công cụ dành cho nhà phát triển Firefox!
+newsletter-title = Bản tin nhà phát triển Mozilla
+newsletter-message = Nhận tin tức, thủ thuật và tài nguyên dành cho nhà phát triển được gửi vào hộp thư đến của bạn.
+newsletter-email-placeholder =
+ .placeholder = Email
+newsletter-privacy-label = Tôi đồng ý với việc Mozilla sử dụng thông tin của tôi như được giải thích trong phần <a data-l10n-name="privacy-policy">chính sách bảo mật</a> này.
+newsletter-subscribe-button = Đăng ký
+newsletter-thanks-title = Cảm ơn!
+newsletter-thanks-message = Nếu bạn chưa xác nhận đăng kí các thư mới liên quan đến Mozilla thì bạn phải xác nhận lại. Hãy kiểm tra email của chúng tôi trong hộp thư đến của bạn hoặc tìm trong hộp thư spam.
+
+footer-title = Phiên bản Firefox cho nhà phát triển
+footer-message = Muốn tìm kiếm nhiều thứ hơn về công cụ dành cho nhà phát triển? Hãy xem trình duyệt Firefox được xây dựng dành riêng cho các nhà phát triển và quy trình làm việc hiện đại.
+footer-learn-more-link = Xem thêm
+
+features-learn-more = Xem thêm
+features-inspector-title = Trình kiểm tra
+features-inspector-desc = Kiểm tra và tinh chỉnh mã để xây dựng bố cục hoàn hảo. <a data-l10n-name="learn-more">{ features-learn-more }</a>
+features-console-title = Bảng điều khiển
+features-console-desc = Theo dõi các vấn đề về CSS, JavaScript, bảo mật và mạng. <a data-l10n-name="learn-more">{ features-learn-more }</a>
+features-debugger-title = Trình gỡ lỗi
+features-debugger-desc = Trình gỡ lỗi JavaScript mạnh mẽ với sự hỗ trợ cho framework của bạn. <a data-l10n-name="learn-more">{ features-learn-more }</a>
+features-network-title = Mạng
+features-network-desc = Giám sát các yêu cầu mạng có thể làm chậm hoặc chặn trang web của bạn. <a data-l10n-name="learn-more">{ features-learn-more }</a>
+features-storage-title = Lưu trữ
+features-storage-desc = Thêm, sửa đổi và xóa bộ nhớ cache, cookie, cơ sở dữ liệu và dữ liệu phiên. <<a data-l10n-name="learn-more">{ features-learn-more }</a>
+features-responsive-title = Chế độ thiết kế tương thích
+features-responsive-desc = Kiểm tra các trang web trên các thiết bị mô phỏng trong trình duyệt của bạn. <a data-l10n-name="learn-more">{ features-learn-more }</a>
+features-visual-editing-title = Soạn thảo trực quan
+features-visual-editing-desc = Tinh chỉnh hình ảnh động, căn chỉnh và đệm. <a data-l10n-name="learn-more">{ features-learn-more }</a>
+features-performance-title = Hiệu năng
+features-performance-desc = Bỏ chặn các nút thắt cổ chai, hợp lý hóa các quy trình, tối ưu hóa tài sản. <a data-l10n-name="learn-more">{ features-learn-more }</a>
+features-memory-title = Bộ nhớ
+features-memory-desc = Tìm rò rỉ bộ nhớ và làm cho ứng dụng của bạn nhanh hơn. <a data-l10n-name="learn-more">{ features-learn-more }</a>
+# Variables:
+# $errorDescription (String) - The error that occurred e.g. 404 - Not Found
+newsletter-error-common = Yêu cầu đăng ký không thành công ({ $errorDescription }).
+newsletter-error-unknown = Đã xảy ra lỗi.
+newsletter-error-timeout = Yêu cầu đăng ký đã mất quá nhiều thời gian.
+# Variables:
+# $shortcut (String) - The keyboard shortcut used for the tool
+welcome-message = Bạn đã kích hoạt thành công công cụ dành cho nhà phát triển! Để bắt đầu, hãy khám phá trình đơn nhà phát triển web hoặc mở các công cụ với { $shortcut }.
diff --git a/l10n-vi/devtools/startup/key-shortcuts.properties b/l10n-vi/devtools/startup/key-shortcuts.properties
new file mode 100644
index 0000000000..a5bdf43188
--- /dev/null
+++ b/l10n-vi/devtools/startup/key-shortcuts.properties
@@ -0,0 +1,67 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (toggleToolbox.commandkey):
+# Key pressed to open a toolbox with the default panel selected
+toggleToolbox.commandkey=I
+
+# LOCALIZATION NOTE (toggleToolboxF12.commandkey):
+# Alternative key pressed to open a toolbox with the default panel selected
+toggleToolboxF12.commandkey=VK_F12
+
+# LOCALIZATION NOTE (browserToolbox.commandkey):
+# Key pressed to open the Browser Toolbox, used for debugging Firefox itself
+browserToolbox.commandkey=I
+
+# LOCALIZATION NOTE (browserConsole.commandkey):
+# Key pressed to open the Browser Console, used for debugging Firefox itself
+browserConsole.commandkey=J
+
+# LOCALIZATION NOTE (responsiveDesignMode.commandkey):
+# Key pressed to toggle on the Responsive Design Mode
+responsiveDesignMode.commandkey=M
+
+# LOCALIZATION NOTE (inspector.commandkey):
+# Key pressed to open a toolbox with the inspector panel selected
+inspector.commandkey=C
+
+# LOCALIZATION NOTE (webconsole.commandkey):
+# Key pressed to open a toolbox with the web console panel selected
+webconsole.commandkey=K
+
+# LOCALIZATION NOTE (jsdebugger.commandkey2):
+# Key pressed to open a toolbox with the debugger panel selected
+jsdebugger.commandkey2=Z
+
+# LOCALIZATION NOTE (netmonitor.commandkey):
+# Key pressed to open a toolbox with the network monitor panel selected
+netmonitor.commandkey=E
+
+# LOCALIZATION NOTE (styleeditor.commandkey):
+# Key pressed to open a toolbox with the style editor panel selected
+styleeditor.commandkey=VK_F7
+
+# LOCALIZATION NOTE (performance.commandkey):
+# Key pressed to open a toolbox with the performance panel selected
+performance.commandkey=VK_F5
+
+# LOCALIZATION NOTE (storage.commandkey):
+# Key pressed to open a toolbox with the storage panel selected
+storage.commandkey=VK_F9
+
+# LOCALIZATION NOTE (dom.commandkey):
+# Key pressed to open a toolbox with the DOM panel selected
+dom.commandkey=W
+
+# LOCALIZATION NOTE (accessibilityF12.commandkey):
+# Key pressed to open a toolbox with the accessibility panel selected
+accessibilityF12.commandkey=VK_F12
+
+# LOCALIZATION NOTE (profilerStartStop.commandkey):
+# Key pressed to start or stop the performance profiler
+profilerStartStop.commandkey=VK_1
+
+# LOCALIZATION NOTE (profilerCapture.commandkey):
+# Key pressed to capture a recorded performance profile
+profilerCapture.commandkey=VK_2
diff --git a/l10n-vi/devtools/startup/startup.properties b/l10n-vi/devtools/startup/startup.properties
new file mode 100644
index 0000000000..cf0107e626
--- /dev/null
+++ b/l10n-vi/devtools/startup/startup.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 (enableDevTools.label):
+# Label for the menu item displayed in Tools > Developer Tools when DevTools are disabled.
+enableDevTools.label=Kích hoạt công cụ nhà phát triển…
+enableDevTools.accesskey=E
diff --git a/l10n-vi/dom/chrome/accessibility/AccessFu.properties b/l10n-vi/dom/chrome/accessibility/AccessFu.properties
new file mode 100644
index 0000000000..a1ec8c173a
--- /dev/null
+++ b/l10n-vi/dom/chrome/accessibility/AccessFu.properties
@@ -0,0 +1,305 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this file,
+# You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Screen reader started/stopped
+screenReaderStarted = Trình đọc màn hình đã khởi động
+screenReaderStopped = Trình đọc màn hình đã dừng
+
+# Roles
+menubar = thanh menu
+scrollbar = thanh cuộn
+grip = chỗ bám
+alert = cảnh báo
+menupopup = menu bật lên
+document = tài liệu
+pane = ô nội dung
+dialog = hộp thoại
+separator = dấu ngăn cách
+toolbar = thanh công cụ
+statusbar = thanh trạng thái
+table = bảng
+columnheader = tiêu đề cột
+rowheader = tiêu đề hàng
+column = cột
+row = hàng
+cell = ô trong bảng
+link = liên kết
+list = danh sách
+listitem = mục trong danh sách
+outline = phác thảo
+outlineitem = đề mục phác thảo
+pagetab = thẻ
+propertypage = trang thuộc tính
+graphic = đồ họa
+switch = đổi
+pushbutton = nút bấm
+checkbutton = nút đánh dấu chọn
+radiobutton = nút radio
+combobox = hộp combo
+progressbar = thanh tiến trình
+slider = thanh trượt
+spinbutton = nút quay
+diagram = biểu đồ
+animation = hoạt hình
+equation = phương trình
+buttonmenu = nút mở ra menu
+whitespace = khoảng trắng
+pagetablist = danh sách thẻ
+canvas = khung vẽ
+checkmenuitem = mục đánh dấu
+label = nhãn
+passwordtext = văn bản mật khẩu
+radiomenuitem = mục radio
+textcontainer = khung chứa văn bản
+togglebutton = nút bật/tắt
+treetable = bảng dạng cây
+header = header
+footer = footer
+paragraph = đoạn văn
+entry = ô nhập
+caption = tựa đề
+heading = đề mục
+section = mục/phần
+form = biểu mẫu
+comboboxlist = danh sách hộp chọn
+comboboxoption = mục trong hộp chọn
+imagemap = bản đồ hình ảnh
+listboxoption = tùy chọn
+listbox = hộp danh sách
+flatequation = phương trình phẳng
+gridcell = ô lưới
+note = ghi chú
+figure = hình
+definitionlist = danh sách định nghĩa
+term = thuật ngữ
+definition = giải nghĩa
+
+mathmlcell = ô
+mathmlroot = gốc
+
+# More sophisticated roles which are not actual numeric roles
+textarea = vùng văn bản
+
+
+# Text input types
+textInputType_date = ngày tháng
+textInputType_email = thư điện tử
+textInputType_search = tìm kiếm
+textInputType_tel = điện thoại
+textInputType_url = URL
+
+# More sophisticated object descriptions
+headingLevel = tiêu đề cấp %S
+
+# more sophisticated list announcement
+listStart = Phần tử đầu tiên
+listEnd = Phần tử cuối
+# LOCALIZATION NOTE (listItemsCount): Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+listItemsCount = #1 mục
+
+# LOCALIZATION NOTE: # %1$S is the position of the item n the set.
+# %2$S is the total number of such items in the set.
+# An expanded example would read "2 of 5".
+objItemOfN = %1$S trên %2$S
+
+# Landmark announcements
+banner = biểu ngữ
+complementary = bổ sung
+contentinfo = thông tin nội dung
+main = chính
+navigation = duyệt
+search = tìm kiếm
+
+# LOCALIZATION NOTE (tblColumnInfo): Semi-colon list of plural forms.
+# Number of columns within the table.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+tblColumnInfo = với #1 cột
+# LOCALIZATION NOTE (tblRowInfo): Semi-colon list of plural forms.
+# Number of rows within the table or grid.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+tblRowInfo = và #1 hàng
+
+# table or grid cell information
+columnInfo = Cột %S
+rowInfo = Hàng %S
+spansColumns = trải qua %S cột
+spansRows = trải qua %S hàng
+
+# Invoked actions
+jumpAction = nhảy
+pressAction = nhấn
+checkAction = đã đánh dấu
+uncheckAction = chưa đánh dấu
+onAction = bật
+offAction = tắt
+selectAction = chọn
+unselectAction = chưa chọn
+openAction = đã mở
+closeAction = đã đóng
+switchAction = chuyển
+clickAction = nhấn chuột
+collapseAction = thu gọn
+expandAction = mở rộng
+activateAction = được kích hoạt
+cycleAction = cycled (đi vòng tròn)
+
+# Live regions
+# 'hidden' will be spoken when something disappears in a live region.
+hidden = ẩn
+
+# Tab states
+tabLoading = đang nạp
+tabLoaded = đã nạp
+tabNew = thẻ mới
+tabLoadStopped = đã dừng nạp
+tabReload = đang tải lại
+
+# Object states
+stateChecked = đã đánh dấu
+stateOn = bật
+stateNotChecked = không được đánh dấu
+stateOff = tắt
+statePressed = nhấn
+# No string for a not pressed toggle button
+stateExpanded = mở rộng
+stateCollapsed = thu gọn
+stateUnavailable = không sẵn sàng
+stateReadonly = chỉ đọc
+stateRequired = yêu cầu
+stateTraversed = đã truy cập
+stateHasPopup = có pop up
+stateSelected = được chọn
+
+# App modes
+editingMode = chỉnh sửa
+navigationMode = duyệt
+
+# Quick navigation modes
+quicknav_Simple = Mặc định
+quicknav_Anchor = Anchors
+quicknav_Button = Nút
+quicknav_Combobox = Hộp chọn xổ xuống
+quicknav_Landmark = Mốc
+quicknav_Entry = Mục
+quicknav_FormElement = Phần tử biểu mẫu
+quicknav_Graphic = Hình ảnh
+quicknav_Heading = Tiêu đề
+quicknav_ListItem = Danh sách đề mục
+quicknav_Link = Liên kết
+quicknav_List = Danh sách
+quicknav_PageTab = Thẻ trang
+quicknav_RadioButton = Nút radio
+quicknav_Separator = Dấu ngăn cách
+quicknav_Table = Bảng
+quicknav_Checkbox = Hộp chọn
+
+# MathML menclose notations.
+# See developer.mozilla.org/docs/Web/MathML/Element/menclose#attr-notation
+notation-box = hộp
+notation-roundedbox = hộp tròn
+notation-circle = vòng tròn
+notation-left = trái
+notation-right = phải
+notation-top = trên cùng
+notation-bottom = dưới cùng
+
+# Shortened role names for braille
+menubarAbbr = thanh menu
+scrollbarAbbr = thanh cuộn
+gripAbbr = chỗ bám
+alertAbbr = cảnh báo
+menupopupAbbr = menu xổ ra
+documentAbbr = tài liệu
+paneAbbr = ô nội dung
+dialogAbbr = hộp thoại
+separatorAbbr = dấu ngăn cách
+toolbarAbbr = thanh công cụ
+statusbarAbbr = thanh trạng thái
+tableAbbr = tbl
+columnheaderAbbr = tiêu đề cột
+rowheaderAbbr = tiêu đề dòng
+columnAbbr = cột
+rowAbbr = dòng
+cellAbbr = ô
+linkAbbr = lnk
+listAbbr = danh sách
+listitemAbbr = đề mục danh sách
+outlineAbbr = phác thảo
+outlineitemAbbr = đề mục phác thảo
+pagetabAbbr = thẻ
+propertypageAbbr = trang thuộc tính
+graphicAbbr = đồ họa
+pushbuttonAbbr = nút
+checkbuttonAbbr = nút đánh dấu chọn
+radiobuttonAbbr = nút radio
+comboboxAbbr = hộp chọn
+progressbarAbbr = thanh tiến trình
+sliderAbbr = thanh trượt
+spinbuttonAbbr = nút quay
+diagramAbbr = biểu đồ
+animationAbbr = hoạt hình
+equationAbbr = phương trình
+buttonmenuAbbr = nút xổ ra menu
+whitespaceAbbr = khoảng trắng
+pagetablistAbbr = danh sách thẻ
+canvasAbbr = canvas
+checkmenuitemAbbr = mục đánh dấu
+labelAbbr = nhãn
+passwordtextAbbr = passwdtxt
+radiomenuitemAbbr = mục radio
+textcontainerAbbr = nơi chứa văn bản
+togglebuttonAbbr = nút bật/tắt
+treetableAbbr = bảng dạng cây
+headerAbbr = phần đầu
+footerAbbr = phần chân
+paragraphAbbr = đoạn văn
+entryAbbr = ô nhập
+captionAbbr = tựa đề
+headingAbbr = đề mục
+sectionAbbr = phần
+formAbbr = form
+comboboxlistAbbr = danh sách hộp chọn
+comboboxoptionAbbr = mục trong hộp chọn
+imagemapAbbr = imgmap
+listboxoptionAbbr = tùy chọn
+listboxAbbr = hộp danh sách
+flatequationAbbr = phương trình phẳng
+gridcellAbbr = ô trong bảng
+noteAbbr = ghi chú
+figureAbbr = fig
+definitionlistAbbr = danh sách định nghĩa
+termAbbr = thuật ngữ
+definitionAbbr = định nghĩa
+textareaAbbr = txtarea
+
+# LOCALIZATION NOTE (tblColumnInfoAbbr): Semi-colon list of plural forms.
+# Number of columns within the table.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+tblColumnInfoAbbr = #1c
+# LOCALIZATION NOTE (tblRowInfoAbbr): Semi-colon list of plural forms.
+# Number of rows within the table or grid.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+tblRowInfoAbbr = #1r
+cellInfoAbbr = c%Sr%S
+
+stateCheckedAbbr = (x)
+stateUncheckedAbbr = ()
+statePressedAbbr = (x)
+stateUnpressedAbbr = ( )
+
+mathmlrootAbbr = gốc
+mathmlsquarerootAbbr = căn
+
+close-fenceAbbr = đóng
+numeratorAbbr = số
+open-fenceAbbr = mở
+overscriptAbbr = kết thúc
+root-indexAbbr = chỉ mục
+
+notation-boxAbbr = hộp
+notation-leftAbbr = trái
+notation-rightAbbr = phải
+notation-topAbbr = trên cùng
+notation-bottomAbbr = dưới cùng
diff --git a/l10n-vi/dom/chrome/accessibility/mac/accessible.properties b/l10n-vi/dom/chrome/accessibility/mac/accessible.properties
new file mode 100644
index 0000000000..faa1230859
--- /dev/null
+++ b/l10n-vi/dom/chrome/accessibility/mac/accessible.properties
@@ -0,0 +1,65 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+jump = Nhảy
+press = Ấn
+check = Chọn
+uncheck = Bỏ Chọn
+select = Chọn
+open = Mở
+close = Đóng
+switch = Chuyển
+click = Nhấp
+collapse= Thu gọn
+expand = Mở rộng
+activate= Kích hoạt
+cycle = Xoay
+
+# Universal Access API support
+# (Mac Only)
+# The Role Description for AXWebArea (the web widget). Like in Safari.
+htmlContent = Nội dung HTML
+# The Role Description for the Tab button.
+tab = thẻ
+# The Role Description for definition list dl, dt and dd
+term = thuật ngữ
+definition = định nghĩa
+# The Role Description for an input type="search" text field
+searchTextField = trường tìm kiếm văn bản
+# The Role Description for WAI-ARIA Landmarks
+application = ứng dụng
+search = tìm kiếm
+banner = biểu ngữ
+navigation = duyệt
+complementary = bổ sung
+content = nội dung
+main = chính
+# The (spoken) role description for various WAI-ARIA roles
+alert = cảnh báo
+alertDialog = hộp thoại cảnh báo
+dialog = hộp thoại
+article = bài viết
+document = tài liệu
+# The (spoken) role description for the WAI-ARIA figure role
+# https://w3c.github.io/aria/core-aam/core-aam.html#role-map-figure
+figure = hình
+# The (spoken) role description for the WAI-ARIA heading role
+# https://w3c.github.io/aria/core-aam/core-aam.html#role-map-heading
+heading = tiêu đề
+log = bản ghi
+marquee = vùng đánh dấu
+math = toán học
+note = ghi chú
+region = vùng
+status = trạng thái ứng dụng
+timer = hẹn giờ
+tooltip = chú giải
+separator = dấu ngăn cách
+tabPanel = bảng thẻ
+# The roleDescription for the html:mark element
+highlight = tô sáng
+# The roleDescription for the details element
+details = chi tiết
+# The roleDescription for the summary element
+summary = tóm tắt
diff --git a/l10n-vi/dom/chrome/accessibility/unix/accessible.properties b/l10n-vi/dom/chrome/accessibility/unix/accessible.properties
new file mode 100644
index 0000000000..51294edc4b
--- /dev/null
+++ b/l10n-vi/dom/chrome/accessibility/unix/accessible.properties
@@ -0,0 +1,17 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+jump = Nhảy
+press = Ấn
+check = Chọn
+uncheck = Bỏ Chọn
+select = Chọn
+open = Mở
+close = Đóng
+switch = Chuyển
+click = Nhấp
+collapse= Thu gọn
+expand = Mở rộng
+activate= Kích hoạt
+cycle = Xoay
diff --git a/l10n-vi/dom/chrome/accessibility/win/accessible.properties b/l10n-vi/dom/chrome/accessibility/win/accessible.properties
new file mode 100644
index 0000000000..0a4e13bd9e
--- /dev/null
+++ b/l10n-vi/dom/chrome/accessibility/win/accessible.properties
@@ -0,0 +1,17 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+jump = Nhảy
+press = Nhấp
+check = Chọn
+uncheck = Bỏ chọn
+select = Chọn
+open = Mở
+close = Đóng
+switch = Chuyển
+click = Nhấp
+collapse= Thu gọn
+expand = Mở rộng
+activate= Kích hoạt
+cycle = Xoay
diff --git a/l10n-vi/dom/chrome/appstrings.properties b/l10n-vi/dom/chrome/appstrings.properties
new file mode 100644
index 0000000000..dad166898c
--- /dev/null
+++ b/l10n-vi/dom/chrome/appstrings.properties
@@ -0,0 +1,38 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+malformedURI2=Vui lòng kiểm tra lại URL đã chính xác hay chưa và thử lại lần nữa.
+fileNotFound=Không tìm thấy tập tin %S. Vui lòng kiểm tra vị trí và thử lại.
+fileAccessDenied=Tập tin %S không thể đọc được.
+dnsNotFound2=Không tìm thấy %S. Vui lòng kiểm tra tên và thử lại.
+unknownProtocolFound=Một trong số các giao thức sau (%S) chưa được đăng ký hoặc không được cho phép trong trường hợp này.
+connectionFailure=Đã thử kết nối tới %S và bị từ chối.
+netInterrupt=Kết nối tới %S đã bị ngắt đột ngột. Tuy nhiên, một số dữ liệu có thể đã được truyền tải xong.
+netTimeout=Kết nối tới %S đã đứt do chờ quá lâu.
+redirectLoop=Vượt quá giới hạn chuyển hướng của URL này. Không thể mở trang được yêu cầu. Điều này có thể do cookie bị chặn.
+confirmRepostPrompt=Để hiển thị trang này, ứng dụng phải gửi đi thông tin lặp lại các hành động đã thực hiện trước đó (như xác nhận tìm kiếm hay xác nhận đặt hàng).
+resendButton.label=Gửi lại
+unknownSocketType=Không thể hiển thị tài liệu này trừ khi bạn cài đặt Personal Security Manager (PSM). Vui lòng tải xuống và cài đặt PSM rồi thử lại, hoặc liên hệ với quản trị hệ thống của bạn.
+netReset=Tài liệu không chứa dữ liệu.
+notCached=Tài liệu này không còn hiện hữu.
+netOffline=Không thể hiển thị tài liệu này khi đang ngoại tuyến. Để kết nối trực tuyến, bỏ chọn Làm việc ngoại tuyến trên menu Tập tin.
+isprinting=Không thể chỉnh sửa tài liệu trong khi đang in hoặc ở chế độ xem trước.
+deniedPortAccess=Truy cập tới cổng này đã bị vô hiệu hóa vì lí do bảo mật.
+proxyResolveFailure=Không thể tìm thấy máy chủ proxy mà bạn đã cấu hình. Vui lòng kiểm tra thiết lập proxy và thử lại.
+proxyConnectFailure=Đã thử kết nối tới máy chủ proxy bạn thiết lập nhưng bị từ chối. Vui lòng kiểm tra thiết lập proxy và thử lại.
+contentEncodingError=Không thể hiển thị trang bạn muốn xem vì nó dùng một dạng thức nén bất hợp lệ hoặc không được hỗ trợ.
+unsafeContentType=Không thể hiển thị trang bạn muốn xem vì nó nằm trong một kiểu tập tin không an toàn. Vui lòng liên hệ người quản lí trang web để báo cho họ vấn đề này.
+malwareBlocked=Trang web tại %S bị báo cáo là trang web ác ý và đã bị chặn dựa trên tùy chỉnh bảo mật của bạn.
+harmfulBlocked=Trang web %S được báo cáo là một trang web có khả năng gây hại và đã bị chặn dựa trên cấu hình bảo mật của bạn.
+unwantedBlocked=Trang web tại %S bị báo cáo là có cài đặt phần mềm không mong muốn và đã bị chặn dựa trên tùy chỉnh bảo mật của bạn.
+deceptiveBlocked=Trang web tại %S bị báo cáo là trang web lừa đảo và đã bị chặn dựa trên tùy chỉnh bảo mật của bạn.
+cspBlocked=Trang này có một chính sách bảo mật nội dung không cho phép nó được tải theo cách này.
+xfoBlocked=Trang này có chính sách X-Frame-Options để ngăn không cho nó được tải trong ngữ cảnh này.
+corruptedContentErrorv2=Trang tại %S đã bị vi phạm giao thức truyền thông mà không cho phép sửa.
+remoteXUL=Trang này sử dụng một kỹ thuật không được hỗ trợ và không còn có sẵn mặc định.
+sslv3Used=Không thể đảm bảo an toàn dữ liệu của bạn trên %S vì nó sử dụng SSLv3, một giao thức bảo mật không an toàn.
+weakCryptoUsed=Chủ sở hữu của %S đã cấu hình trang web của họ không đúng. Để bảo vệ thông tin của bạn khỏi không bị trộm cắp, kết nối tới trang web này đã bị ngắt.
+inadequateSecurityError=Trang web đã cố gắng giao tiếp ở mức độ bảo mật thấp.
+blockedByPolicy=Tổ chức của bạn đã chặn quyền truy cập vào trang web này.
+networkProtocolError=Firefox đã phát hiện một vi phạm giao thức mạng mà không thể sửa chữa được.
diff --git a/l10n-vi/dom/chrome/dom/dom.properties b/l10n-vi/dom/chrome/dom/dom.properties
new file mode 100644
index 0000000000..e5871a3978
--- /dev/null
+++ b/l10n-vi/dom/chrome/dom/dom.properties
@@ -0,0 +1,317 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+KillScriptTitle=Cảnh báo: Script không đáp ứng
+KillScriptMessage=Trình duyệt đang bận xử lí một đoạn mã trong trang này, hoặc không xử lí được. Bạn có thể dừng xử lí ngay, hoặc tiếp tục xem nếu việc xử lí có thể hoàn tất được.
+KillScriptWithDebugMessage=Trình duyệt đang bận xử lí một đoạn mã trong trang này, hoặc không xử lí được. Bạn có thể dừng xử lí ngay, mở đoạn mã bằng trình sửa lỗi, hoặc tiếp tục xử lí.
+KillScriptLocation=Đoạn mã: %S
+
+KillAddonScriptTitle=Cảnh báo: Tập lệnh tiện ích không phản hồi
+# LOCALIZATION NOTE (KillAddonScriptMessage): %1$S is the name of an extension.
+# %2$S is the name of the application (e.g., Firefox).
+KillAddonScriptMessage=Một tập lệnh từ tiện ích mở rộng “%1$S” đang chạy trên trang này và khiến %2$S không phản hồi.\n\nNó có thể đang bận hoặc có thể đã ngừng phản hồi vĩnh viễn. Bạn có thể dừng tập lệnh ngay bây giờ hoặc bạn có thể tiếp tục xem nó có hoàn thành hay không.
+KillAddonScriptGlobalMessage=Ngăn tập lệnh mở rộng chạy trên trang này cho đến khi tải lại lần sau
+
+StopScriptButton=Dừng tập lệnh
+DebugScriptButton=Gỡ lỗi tập lệnh
+WaitForScriptButton=Tiếp tục
+DontAskAgain=Đừng &hỏi lại
+WindowCloseBlockedWarning=Đoạn mã sẽ không đóng cửa sổ mà không phải do nó mở.
+OnBeforeUnloadTitle=Bạn có chắc không?
+OnBeforeUnloadMessage=Trang này yêu cầu bạn xác nhận rằng bạn muốn rời đi - dữ liệu mà bạn đã nhập có thể sẽ không được lưu.
+OnBeforeUnloadStayButton=Ở lại trang
+OnBeforeUnloadLeaveButton=Rời khỏi trang
+EmptyGetElementByIdParam=Chuỗi trống đã được đưa sang getElementById().
+SpeculationFailed=Một cây không cân bằng được viết bằng document.write() khiến dữ liệu từ mạng bị phân tách. Đọc thêm thông tin https://developer.mozilla.org/en/Optimizing_Your_Pages_for_Speculative_Parsing
+DocumentWriteIgnored=Một lệnh gọi tới document.write() từ một mã script nạp không đồng bộ bên ngoài đã bị bỏ qua.
+# LOCALIZATION NOTE (EditorFileDropFailed): Do not translate contenteditable, %S is the error message explaining why the drop failed.
+EditorFileDropFailed=Lỗi kéo thả tập tin vào phần tử có thuộc tính contenteditable: %S.
+FormValidationTextTooLong=Vui lòng rút ngắn đoạn này xuống còn %S kí tự hoặc ít hơn (bạn hiện đang dùng %S kí tự).
+FormValidationTextTooShort=Vui lòng sử dụng ít nhất %S ký tự (bạn hiện đang sử dụng %S ký tự).
+FormValidationValueMissing=Vui lòng điền vào trường này.
+FormValidationCheckboxMissing=Vui lòng đánh dấu ô này nếu bạn muốn tiến hành.
+FormValidationRadioMissing=Vui lòng chọn một trong các tùy chọn này.
+FormValidationFileMissing=Vui lòng chọn một tập tin.
+FormValidationSelectMissing=Vui lòng chọn một mục trong danh sách.
+FormValidationInvalidEmail=Vui lòng điền một địa chỉ email.
+FormValidationInvalidURL=Vui lòng điền một URL.
+FormValidationInvalidDate =Vui lòng nhập ngày hợp lệ.
+FormValidationPatternMismatch=Vui lòng khớp định dạng được yêu cầu.
+# LOCALIZATION NOTE (FormValidationPatternMismatchWithTitle): %S is the (possibly truncated) title attribute value.
+FormValidationPatternMismatchWithTitle=Vui lòng khớp định dạng được yêu cầu: %S.
+# LOCALIZATION NOTE (FormValidationNumberRangeOverflow): %S is a number.
+FormValidationNumberRangeOverflow=Vui lòng chọn một giá trị không lớn hơn %S.
+# LOCALIZATION NOTE (FormValidationDateTimeRangeOverflow): %S is a date or a time.
+FormValidationDateTimeRangeOverflow=Vui lòng chọn một ngày không muộn hơn %S.
+# LOCALIZATION NOTE (FormValidationNumberRangeUnderflow): %S is a number.
+FormValidationNumberRangeUnderflow=Vui lòng chọn một giá trị không nhỏ hơn %S.
+# LOCALIZATION NOTE (FormValidationDateTimeRangeUnderflow): %S is a date or a time.
+FormValidationDateTimeRangeUnderflow=Vui lòng chọn một ngày không sớm hơn %S.
+# LOCALIZATION NOTE (FormValidationStepMismatch): both %S can be a number, a date or a time.
+FormValidationStepMismatch=Vui lòng chọn một giá trị hợp lệ. Hai giá trị hợp lệ gần nhất là %S và %S.
+# LOCALIZATION NOTE (FormValidationStepMismatchOneValue): %S can be a number, a date or a time. This is called instead of FormValidationStepMismatch when the second value is the same as the first.
+FormValidationStepMismatchOneValue=Vui lòng chọn một giá trị hợp lệ. Giá trị hợp lệ gần nhất là %S.
+# LOCALIZATION NOTE (FormValidationTimeReversedRangeUnderflowAndOverflow): %1$S,%2$S are time.
+FormValidationTimeReversedRangeUnderflowAndOverflow=Vui lòng chọn giá trị trong khoảng từ %1$S đến %2$S.
+FormValidationBadInputNumber=Vui lòng nhập số.
+FullscreenDeniedDisabled=Yêu cầu toàn màn hình đã bị từ chối vì API toàn màn hình bị tắt theo ưu tiên của người dùng.
+FullscreenDeniedFocusedPlugin=Yêu cầu toàn màn hình đã bị từ chối vì một phần bổ trợ có cửa sổ được chọn.
+FullscreenDeniedHidden=Yêu cầu toàn màn hình đã bị từ chối vì tài liệu không còn hiển thị.
+FullscreenDeniedHTMLDialog=Yêu cầu toàn màn hình đã bị từ chối vì phần tử yêu cầu là phần tử <dialog>.
+FullscreenDeniedContainerNotAllowed=Yêu cầu hiển thị toàn màn hình bị từ chối vì có ít nhất một trang không phải là iframe hoặc không có thuộc tính "allowfullscreen".
+FullscreenDeniedNotInputDriven=Yêu cầu toàn màn hình đã bị từ chối vì Element.requestFullscreen() không được gọi từ bên trong trình xử lý sự kiện do người dùng tạo.
+FullscreenDeniedMouseEventOnlyLeftBtn=Yêu cầu toàn màn hình đã bị từ chối vì hàm Element.requestFullscreen() được gọi từ bên trong một trình xử lý sự kiện chuột mà không được kích hoạt bằng nút chuột trái.
+FullscreenDeniedNotHTMLSVGOrMathML=Yêu cầu chế độ toàn màn hình bị từ chối vì phần tử được yêu cầu không phải là <svg>, <math>, hay một phần tử HTML.
+FullscreenDeniedNotInDocument=Yêu cầu toàn màn hình đã bị từ chối vì không còn yêu cầu yếu tố trong tài liệu của nó.
+FullscreenDeniedMovedDocument=Yêu cầu toàn màn hình đã bị từ chối vì yêu cầu yếu tố đã di chuyển tài liệu.
+FullscreenDeniedLostWindow=Yêu cầu toàn màn hình đã bị từ chối vì chúng tôi không còn một cửa sổ.
+FullscreenDeniedSubDocFullscreen=Yêu cầu toàn màn hình đã bị từ chối vì một tài liệu con của tài liệu yêu cầu toàn màn hình đã ở chế độ toàn màn hình.
+FullscreenDeniedNotDescendant=Yêu cầu toàn màn hình đã bị từ chối vì phần tử yêu cầu không phải là phần tử con của phần tử toàn màn hình hiện tại.
+FullscreenDeniedNotFocusedTab=Yêu cầu toàn màn hình đã bị từ chối vì yếu tố yêu cầu không nằm trong thẻ hiện đang chọn.
+FullscreenDeniedFeaturePolicy=Yêu cầu toàn màn hình đã bị từ chối vì các chỉ thị FeaturePolicy.
+FullscreenExitWindowFocus=Thoát toàn màn hình vì một cửa sổ đã được chọn.
+RemovedFullscreenElement=Đã thoát toàn màn hình vì yếu tố toàn màn hình đã bị xóa khỏi tài liệu.
+FocusedWindowedPluginWhileFullscreen=Thoát toàn màn hình vì cửa sổ của phần bổ trợ đã được chọn.
+PointerLockDeniedDisabled=Yêu cầu khóa con trỏ bị từ chối vì API khóa con trỏ đã bị tắt bởi cấu hình tùy chọn của người dùng.
+PointerLockDeniedInUse=Yêu cầu khóa con trỏ đã bị từ chối vì con trỏ hiện tại đang được điều khiển bởi một document khác.
+PointerLockDeniedNotInDocument=Yêu cầu khóa con trỏ đã bị từ chối vì phần tử yêu cầu không có trong document.
+PointerLockDeniedSandboxed=Yêu cầu khóa con trỏ đã bị từ chối vì API khóa con trỏ bị hạn chế qua sandbox.
+PointerLockDeniedHidden=Yêu cầu khóa con trỏ đã bị từ chối vì document đang không hiển thị.
+PointerLockDeniedNotFocused=Yêu cầu khóa con trỏ đã bị từ chối vì document không được chọn.
+PointerLockDeniedFailedToLock=Yêu cầu khóa con trỏ đã bị từ chối vì trình duyệt không khóa được con trỏ.
+HTMLSyncXHRWarning=Việc phân tích HTML trong XMLHttpRequest không được hỗ trợ ở chế độ đồng bộ.
+# LOCALIZATION NOTE: %S is the name of the header in question
+ForbiddenHeaderWarning=Cố gắng đặt một tiêu đề không được phép đã bị từ chối: %S
+ResponseTypeSyncXHRWarning=Việc dùng thuộc tính responseType của XMLHttpRequest không được hỗ trợ ở chế độ đồng bộ trong phạm vi cửa sổ.
+TimeoutSyncXHRWarning=Việc dùng thuộc tính timeout của XMLHttpRequest không còn được hỗ trợ ở chế độ đồng bộ trong phạm vi cửa sổ.
+# LOCALIZATION NOTE: Do not translate navigator.sendBeacon, unload, pagehide, or XMLHttpRequest.
+JSONCharsetWarning=Sử dụng mã hóa không phải UTF-8 để nhận JSON bằng XMLHttpRequest là vi phạm. Việc giải mã JSON chỉ hỗ trợ UTF-8.
+# LOCALIZATION NOTE: Do not translate decodeAudioData.
+MediaDecodeAudioDataUnknownContentType=Thông tin được chuyển tới decodeAudioData chứa kiểu nội dung không nhận diện được.
+# LOCALIZATION NOTE: Do not translate decodeAudioData.
+MediaDecodeAudioDataUnknownError=Đã xảy ra lỗi không xác định trong khi xử lý decodeAudioData.
+# LOCALIZATION NOTE: Do not translate decodeAudioData.
+MediaDecodeAudioDataInvalidContent=Vùng đệm chuyển tới decodeAudioData có chứa nội dung không hợp lệ nên không thể giải mã được.
+# LOCALIZATION NOTE: Do not translate decodeAudioData.
+MediaDecodeAudioDataNoAudio=Vùng đệm chuyển tới decodeAudioData không chứa dữ liệu âm thanh.
+# LOCALIZATION NOTE: Do not translate HTMLMediaElement and createMediaElementSource.
+# LOCALIZATION NOTE: Do not translate MediaStream and createMediaStreamSource.
+# LOCALIZATION NOTE : Do not translate MediaStreamTrack and createMediaStreamTrackSource.
+# LOCALIZATION NOTE: Do not translate HTMLMediaElement and MediaStream.
+MediaElementAudioCaptureOfMediaStreamError=HTMLMediaEuity đã chụp đang phát MediaStream. Chỉnh âm lượng hoặc trạng thái tắt tiếng hiện không được hỗ trợ.
+# LOCALIZATION NOTE: Do not translate HTMLMediaElement and MediaStream.
+MediaLoadExhaustedCandidates=Không thể tải xuống các nguồn tài nguyên. Phương tiện đã tạm dừng tải.
+MediaLoadSourceMissingSrc=Phần tử <source> không có thuộc tính “src”. Nguồn media không tải được.
+MediaStreamAudioSourceNodeDifferentRate=Kết nối AudioNodes từ AudioContexts với tốc độ mẫu khác nhau hiện không được hỗ trợ.
+# LOCALIZATION NOTE: %1$S is the Http error code the server returned (e.g. 404, 500, etc), %2$S is the URL of the media resource which failed to load.
+MediaLoadHttpError=Không tải được HTTP với trạng thái %1$S. Không tải được media từ %2$S.
+# LOCALIZATION NOTE: %S is the URL of the media resource which failed to load.
+MediaLoadInvalidURI=URI không hợp lệ. Việc tải tập tin media từ nguồn %S thất bại.
+# LOCALIZATION NOTE: %1$S is the media resource's format/codec type (basically equivalent to the file type, e.g. MP4,AVI,WMV,MOV etc), %2$S is the URL of the media resource which failed to load.
+MediaLoadUnsupportedTypeAttribute=Định dạng "%1$S" không được hỗ trợ. Việc tải media từ %2$S thất bại.
+# LOCALIZATION NOTE: %1$S is the MIME type HTTP header being sent by the web server, %2$S is the URL of the media resource which failed to load.
+MediaLoadUnsupportedMimeType=Máy chủ không hỗ trợ HTTP "Content-Type" của "%1$S". Không tải được media từ %2$S.
+# LOCALIZATION NOTE: %S is the URL of the media resource which failed to load because of error in decoding.
+MediaLoadDecodeError=Tài nguyên %S không thể giải mã.
+MediaWidevineNoWMF=Cố gắng chạy Widevine không có Windows Media Foundation. Xem https://support.mozilla.org/kb/fix-video-audio-problems-firefox-windows
+# LOCALIZATION NOTE: %S is a comma-separated list of codecs (e.g. 'video/mp4, video/webm')
+MediaWMFNeeded=Để phát định dạng video %S, bạn cần cài đặt thêm phần mềm Microsoft, xem https://support.mozilla.org/kb/fix-video-audio-problems-firefox-windows
+# LOCALIZATION NOTE: %S is a comma-separated list of codecs (e.g. 'video/mp4, video/webm')
+MediaPlatformDecoderNotFound=Video trên trang này không thể phát. Hệ thống của bạn có thể không có codec video cần thiết cho: %S
+MediaUnsupportedLibavcodec=Video trên trang này có thể được phát. Hệ thống của bạn có phiên bản libavcodec không được hỗ trợ
+# LOCALIZATION NOTE: %1$S is the URL of the media resource, %2$S is technical information (in English)
+MediaDecodeError=Không thể giải mã tài nguyên phương tiện %1$S, lỗi: %2$S
+# LOCALIZATION NOTE: %1$S is the URL of the media resource, %2$S is technical information (in English)
+MediaDecodeWarning=Tài nguyên phương tiện %1$S có thể được giải mã, nhưng có lỗi: %2$S
+# LOCALIZATION NOTE: %S is a comma-separated list of codecs (e.g. 'video/mp4, video/webm')
+MediaCannotPlayNoDecoders=Không thể chạy phương tiện. Không có bộ giải mã cho các định dạng được yêu cầu: %S
+# LOCALIZATION NOTE: %S is a comma-separated list of codecs (e.g. 'video/mp4, video/webm')
+MediaNoDecoders=Không có bộ giải mã cho một số định dạng được yêu cầu: %S
+MediaCannotInitializePulseAudio=Không thể sử dụng PulseAudio
+# LOCALIZATION NOTE: Do not translate "MediaRecorder".
+MediaRecorderMultiTracksNotSupported=MediaRecorder không hỗ trợ ghi nhiều bài cùng loại lúc này.
+# LOCALIZATION NOTE: %S is the URL of the web page which is not served on HTTPS and thus is not encrypted and considered insecure.
+# LOCALIZATION NOTE: %S is the URL of the web page which is calling web APIs without passing data (either an audioCapabilities or a videoCapabilities) that will soon be required. See https://bugzilla.mozilla.org/show_bug.cgi?id=1368583#c21 for explanation of this string.
+# LOCALIZATION NOTE: %S is the URL of the web page which is calling web APIs without passing data (a "codecs" string in the "contentType") that will soon be required. See https://bugzilla.mozilla.org/show_bug.cgi?id=1368583#c21 for explanation of this string.
+# LOCALIZATION NOTE: Do not translate "Mutation Event" and "MutationObserver"
+MutationEventWarning=Mutation Events đã lỗi thời, thay vào đó, hãy dùng MutationObserver.
+BlockAutoplayWebAudioStartError=Một AudioContext đã bị ngăn bắt đầu tự động. Nó phải được tạo hoặc tiếp tục lại sau một cử chỉ của người dùng trên trang.
+# LOCALIZATION NOTE: Do not translate "Components"
+ComponentsWarning=Không nên dùng đối tượng Components. Đối tượng này sắp bị loại bỏ.
+PluginHangUITitle=Cảnh báo: phần bổ trợ không đáp ứng
+PluginHangUIMessage=%S có thể đang bận, hoặc đã bị treo. Bạn có thể tắt phần bổ trợ ngay bây giờ, hoặc tiếp tục đợi nếu muốn nó hoàn tất việc xử lý.
+PluginHangUIWaitButton=Tiếp tục
+PluginHangUIStopButton=Tắt phần bổ trợ
+# LOCALIZATION NOTE: Do not translate "NodeIterator" or "detach()".
+NodeIteratorDetachWarning=Lời gọi hàm detach() trên NodeIterator không còn có tác dụng.
+# LOCALIZATION NOTE: Do not translate "LenientThis" and "this"
+LenientThisWarning=Bỏ qua nhận hoặc tập hợp các thuộc tính có [LenientThis] bởi vì đối tượng “this” có thể không chính xác.
+# LOCALIZATION NOTE: Do not translate "captureEvents()" or "addEventListener()"
+UseOfCaptureEventsWarning=captureEvents() không còn dùng nữa. Để nâng cấp mã của bạn, hãy dùng phương pháp DOM 2 addEventListener(). Xem thêm trợ giúp ở http://developer.mozilla.org/en/docs/DOM:element.addEventListener
+# LOCALIZATION NOTE: Do not translate "releaseEvents()" or "removeEventListener()"
+UseOfReleaseEventsWarning=releaseEvents() không còn dùng nữa. Để nâng cấp mã của bạn, hãy dùng phương pháp DOM 2 removeEventListener(). Xem thêm trợ giúp ở http://developer.mozilla.org/en/docs/DOM:element.removeEventListener
+# LOCALIZATION NOTE: Do not translate "XMLHttpRequest"
+SyncXMLHttpRequestWarning=Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help http://xhr.spec.whatwg.org/
+# LOCALIZATION NOTE: Do not translate "window.controllers/Controllers"
+Window_Cc_ontrollersWarning=window.controllers/Controllers không được dùng nữa. Không sử dụng nó để phát hiện UA.
+ImportXULIntoContentWarning=Nhập các nút XUL vào tài liệu nội dung không được dùng nữa. Chức năng này có thể được gỡ bỏ sau này.
+# LOCALIZATION NOTE: Do not translate "IndexedDB".
+# LOCALIZATION NOTE: Do not translate Will-change, %1$S,%2$S are numbers.
+IgnoringWillChangeOverBudgetWarning=Việc tiêu thụ bộ nhớ will-change là rất lớn. Mức giới hạn được tính bằng diện tích bề mặt của document nhân với %1$S (%2$S px). Sự xuất hiện của will-change vượt quá mức giới hạn này sẽ bị loại bỏ.
+# LOCALIZATION NOTE: Do not translate "Worker".
+# LOCALIZATION NOTE: Do not translate "Application Cache API", "AppCache" and "ServiceWorker".
+# LOCALIZATION NOTE: Do not translate "Worker".
+# LOCALIZATION NOTE: Do not translate "RTCPeerConnection", "getLocalStreams", "getRemoteStreams", "getSenders" or "getReceivers".
+# LOCALIZATION NOTE: Do not translate "ServiceWorker". %S is a URL.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "cors", "Response", "same-origin" or "Request". %1$S is a URL, %2$S is a URL.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "FetchEvent.respondWith()", "FetchEvent", "no-cors", "opaque", "Response", or "RequestMode". %1$S is a URL. %2$S is a RequestMode value.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "Error", "Response", "FetchEvent.respondWith()", or "fetch()". %S is a URL.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "Response", "FetchEvent.respondWith()", or "Response.clone()". %S is a URL.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "opaqueredirect", "Response", "FetchEvent.respondWith()", or "FetchEvent". %s is a URL.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "Response", "FetchEvent.respondWith()", "RedirectMode" or "follow". %S is a URL.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker" or "FetchEvent.preventDefault()". %S is a URL.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "promise", or "FetchEvent.respondWith()". %1$S is a URL. %2$S is an error string.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "promise", "FetchEvent.respondWith()", or "Response". %1$S is a URL. %2$S is an error string.
+# LOCALIZATION NOTE: Do not translate "mozImageSmoothingEnabled", or "imageSmoothingEnabled"
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "Service-Worker-Allowed" or "HTTP". %1$S and %2$S are URLs.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker". %1$S is a URL representing the scope of the ServiceWorker, %2$S is a stringified numeric HTTP status code like "404" and %3$S is a URL.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker". %1$S is a URL representing the scope of the ServiceWorker, %2$S is a MIME Media Type like "text/plain" and %3$S is a URL.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker". %S is a URL representing the scope of the ServiceWorker.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker" and "postMessage". %S is a URL representing the scope of the ServiceWorker.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker". %1$S is a URL representing the scope of the ServiceWorker.
+# LOCALIZATION NOTE (ServiceWorkerNoFetchHandler): Do not translate "Fetch".
+ManifestShouldBeObject=Manifest nên là một đối tượng.
+ManifestScopeURLInvalid=URL phạm vi không hợp lệ.
+ManifestScopeNotSameOrigin=URL phạm vi phải cùng nguồn gốc với tài liệu.
+ManifestStartURLOutsideScope=URL bắt đầu nằm ngoài phạm vi, vì vậy phạm vi không hợp lệ.
+ManifestStartURLInvalid=URL bắt đầu không hợp lệ.
+ManifestStartURLShouldBeSameOrigin=URL bắt đầu phải cùng nguồn gốc với tài liệu.
+# LOCALIZATION NOTE: %1$S is the name of the object whose property is invalid. %2$S is the name of the invalid property. %3$S is the expected type of the property value. E.g. "Expected the manifest's start_url member to be a string."
+# LOCALIZATION NOTE: %1$S is the name of the property whose value is invalid. %2$S is the (invalid) value of the property. E.g. "theme_color: 42 is not a valid CSS color."
+ManifestInvalidCSSColor=%1$S: %2$S không phải là màu CSS hợp lệ.
+# LOCALIZATION NOTE: %1$S is the name of the property whose value is invalid. %2$S is the (invalid) value of the property. E.g. "lang: 42 is not a valid language code."
+ManifestLangIsInvalid=%1$S: %2$S không phải là mã ngôn ngữ hợp lệ.
+# LOCALIZATION NOTE: %1$S is the name of the parent property whose value is invalid (e.g., "icons"). %2$S is the index of the image object that is invalid (from 0). %3$S is the name of actual member that is invalid. %4$S is the invalid value. E.g. "icons item at index 2 is invalid. The src member is an invalid URL http://:Invalid"
+# LOCALIZATION NOTE: %1$S is the name of the parent property that that contains the unusable image object (e.g., "icons"). %2$S is the index of the image object that is unusable (from 0). E.g. "icons item at index 2 lacks a usable purpose. It will be ignored."
+# LOCALIZATION NOTE: %1$S is the name of the parent property that contains the unsupported value (e.g., "icons"). %2$S is the index of the image object that has the unsupported value (from 0). %3$S are the unknown purposes. E.g. "icons item at index 2 includes unsupported purpose(s): a b."
+# LOCALIZATION NOTE: %1$S is the name of the parent property that has a repeated purpose (e.g., "icons"). %2$S is the index of the image object that has the repeated purpose (from 0). %3$S is the repeated purposes. E.g. "icons item at index 2 includes repeated purpose(s): a b."
+# LOCALIZATION NOTE: Do not translate "postMessage" or DOMWindow. %S values are origins, like https://domain.com:port
+# LOCALIZATION NOTE: Do not translate 'YouTube'. %S values are origins, like https://domain.com:port
+# LOCALIZATION NOTE: Do not translate 'YouTube'. %S values are origins, like https://domain.com:port
+# LOCALIZATION NOTE: This error is reported when the "Encryption" header for an
+# incoming push message is missing or invalid. Do not translate "ServiceWorker",
+# "Encryption", and "salt". %1$S is the ServiceWorker scope URL.
+PushMessageBadEncryptionHeader=ServiceWorker cho phạm vi ‘%1$S’ không thể giải mã thông báo đẩy. Tiêu đề ‘Encryption’ phải bao gồm một tham số ‘salt‘ duy nhất cho mỗi thông báo. Xem tại https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02#section-3.1 để biết thêm thông tin.
+# LOCALIZATION NOTE: This error is reported when the "Crypto-Key" header for an
+# incoming push message is missing or invalid. Do not translate "ServiceWorker",
+# "Crypto-Key", and "dh". %1$S is the ServiceWorker scope URL.
+PushMessageBadCryptoKeyHeader=ServiceWorker cho phạm vi ‘%1$S’ không thể giải mã thông báo đẩy. Tiêu đề ‘Crypto-Key‘ phải bao gồm tham số ‘dh‘ chứa khóa công khai của máy chủ ứng dụng. Xem tại https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02#section-4 để biết thêm thông tin.
+# LOCALIZATION NOTE: This error is reported when a push message fails to decrypt because the deprecated
+# "Encryption-Key" header for an incoming push message is missing or invalid.
+# Do not translate "ServiceWorker", "Encryption-Key", "dh", "Crypto-Key", and
+# "Content-Encoding: aesgcm". %1$S is the ServiceWorker scope URL.
+PushMessageBadEncryptionKeyHeader=ServiceWorker cho phạm vi ‘%1$S’ không thể giải mã thông báo đẩy. Tiêu đề ‘Encryption-Key’ phải bao gồm tham số ‘dh‘. Tiêu đề này không được chấp nhận và sẽ sớm bị xóa. Vui lòng sử dụng ‘Crypto-Key‘ với ‘Content-Encoding: aesgcm‘ để thay thế. Xem tại https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02#section-4 để biết thêm thông tin.
+# LOCALIZATION NOTE: This error is reported when a push message fails to decrypt
+# because the "Content-Encoding" header is missing or contains an
+# unsupported encoding. Do not translate "ServiceWorker", "Content-Encoding",
+# "aesgcm", and "aesgcm128". %1$S is the ServiceWorker scope URL.
+# LOCALIZATION NOTE: This error is reported when a push message fails to decrypt
+# because the "dh" parameter is not valid base64url. Do not translate
+# "ServiceWorker", "dh", "Crypto-Key", and "base64url". %1$S is the
+# ServiceWorker scope URL.
+# LOCALIZATION NOTE: This error is reported when a push message fails to decrypt
+# because the "salt" parameter is not valid base64url. Do not translate
+# "ServiceWorker", "salt", "Encryption", and "base64url". %1$S is the
+# ServiceWorker scope URL.
+# LOCALIZATION NOTE: This error is reported when a push message fails to decrypt
+# because the "rs" parameter is not a number, or is less than the pad size.
+# Do not translate "ServiceWorker", "rs", or "Encryption". %1$S is the
+# ServiceWorker scope URL. %2$S is the minimum value (1 for aesgcm128, 2 for
+# aesgcm).
+# LOCALIZATION NOTE: This error is reported when a push message fails to decrypt
+# because an encrypted record is shorter than the pad size, the pad is larger
+# than the record, or any of the padding bytes are non-zero. Do not translate
+# "ServiceWorker". %1$S is the ServiceWorker scope URL. %2$S is the pad size
+# (1 for aesgcm128, 2 for aesgcm).
+# LOCALIZATION NOTE: This error is reported when push message decryption fails
+# and no specific error info is available. Do not translate "ServiceWorker".
+# %1$S is the ServiceWorker scope URL.
+# LOCALIZATION NOTE: %1$S is the type of a DOM event. 'passive' is a literal parameter from the DOM spec.
+# LOCALIZATION NOTE: 'ImageBitmapRenderingContext.transferImageBitmap' and 'ImageBitmapRenderingContext.transferFromImageBitmap' should not be translated
+# LOCALIZATION NOTE: Do not translate ".png"
+GenericImageNamePNG=ảnh.png
+GenericFileName=tập tin
+# LOCALIZATION NOTE: Do not translate "Large-Allocation", as it is a literal header name
+# LOCALIZATION NOTE: Do not translate "Large-Allocation", as it is a literal header name. Do not translate GET.
+# LOCALIZATION NOTE: Do not translate "Large-Allocation", as it is a literal header name. Do not translate `window.opener`.
+# LOCALIZATION NOTE: Do not translate "Large-Allocation", as it is a literal header name
+NotificationsInsecureRequestIsForbidden=Quyền thông báo chỉ có thể được yêu cầu trong một bối cảnh an toàn.
+# LOCALIZATION NOTE: Do not translate "Large-Allocation", as it is a literal header name.
+# LOCALIZATION NOTE: Do not translate "content", "Window", and "window.top"
+# LOCALIZATION NOTE: The first %S is the tag name of the element that starts the loop, the second %S is the element's ID.
+# LOCALIZATION NOTE: The first %S is the tag name of the element in the chain where the chain was broken, the second %S is the element's ID.
+# LOCALIZATION NOTE: Do not translate "<script>".
+# LOCALIZATION NOTE: Do not translate "<script>".
+# LOCALIZATION NOTE: Do not translate "<script>".
+# LOCALIZATION NOTE: Do not translate "<script>".
+ModuleSourceMalformed=URI nguồn module không đúng định dạng: “%S”.
+# LOCALIZATION NOTE: Do not translate "<script>".
+ScriptSourceNotAllowed=URI nguồn <script> không được phép trong tài liệu này: “%S”.
+ModuleSourceNotAllowed=URI nguồn module không được phép trong tài liệu này: “%S”.
+# LOCALIZATION NOTE: %1$S is the invalid property value and %2$S is the property name.
+# LOCALIZATION NOTE: Do not translate "ReadableStream".
+ReadableStreamReadingFailed=Không thể đọc dữ liệu từ ReadableStream: “%S”.
+# LOCALIZATION NOTE: Do not translate "registerProtocolHandler"
+RegisterProtocolHandlerPrivateBrowsingWarning=Không thể sử dụng registerProtocolHandler trong chế độ duyệt web riêng tư.
+MotionEventWarning=Các cảm biến chuyển động không còn được dùng nữa.
+OrientationEventWarning=Các cảm biến định hướng không còn được sử dụng nữa.
+ProximityEventWarning=Các cảm biến tiệm cận không còn được sử dụng nữa.
+AmbientLightEventWarning=Các cảm biến ánh sáng xung quanh không còn được sử dụng nữa.
+# LOCALIZATION NOTE: Do not translate "storage", "indexedDB.open" and "navigator.storage.persist()".
+IDBOpenDBOptions_StorageTypeWarning=Thuộc tính ‘storage’ trong tùy chọn được truyền cho indexedDB.open không còn được dùng nữa và sẽ sớm bị xóa. Để có được dung lượng lưu trữ liên tục, vui lòng thay thế thành navigator.storage.persist().
+UnsupportedEntryTypesIgnored=Bỏ qua entryTypes không được hỗ trợ: %S.
+AllEntryTypesIgnored=Không có entryTypes hợp lệ; hủy bỏ đăng ký.
+# LOCALIZATION NOTE: do not localize key=“%S” modifiers=“%S” id=“%S”
+# LOCALIZATION NOTE: do not trnaslated "document.domain"
+
+#LOCALIZATION NOTE(DeprecatedTestingInterfaceWarning): Do not translate this message. It's just testing only.
+DeprecatedTestingInterfaceWarning=TestingDeprecatedInterface là một giao diện chỉ dành cho thử nghiệm và đây là thông báo không dùng thử.
+#LOCALIZATION NOTE(DeprecatedTestingMethodWarning): Do not translate this message. It's just testing only.
+DeprecatedTestingMethodWarning=TestingDeprecatedInterface.deprecatedMethod() là một phương thức chỉ thử nghiệm và đây là thông báo phản đối thử nghiệm của nó.
+#LOCALIZATION NOTE(DeprecatedTestingAttributeWarning): Do not translate this message. It's just testing only.
+DeprecatedTestingAttributeWarning=TestingDeprecatedInterface.deprecatedAttribute là một thuộc tính chỉ thử nghiệm và đây là thông báo phản đối thử nghiệm của nó.
+# LOCALIZATION NOTE (CreateImageBitmapCanvasRenderingContext2DWarning): Do not translate CanvasRenderingContext2D and createImageBitmap.
+CreateImageBitmapCanvasRenderingContext2DWarning=Việc sử dụng CanvasRenderingContext2D trong createImageBitmap không còn được dùng nữa.
+# LOCALIZATION NOTE (MozRequestFullScreenDeprecatedPrefixWarning): Do not translate mozRequestFullScreen.
+MozRequestFullScreenDeprecatedPrefixWarning=mozRequestFullScreen() không còn được dùng nữa.
+# LOCALIZATION NOTE (MozfullscreenchangeDeprecatedPrefixWarning): Do not translate onmozfullscreenchange.
+MozfullscreenchangeDeprecatedPrefixWarning=onmozfullscreenchange không còn được dùng nữa.
+# LOCALIZATION NOTE (MozfullscreenerrorDeprecatedPrefixWarning): Do not translate onmozfullscreenerror.
+MozfullscreenerrorDeprecatedPrefixWarning=onmozfullscreenerror không còn được dùng nữa.
+# LOCALIZATION NOTE(External_AddSearchProviderWarning): Do not translate AddSearchProvider.
+External_AddSearchProviderWarning=AddSearchProvider không còn được dùng nữa.
+# LOCALIZATION NOTE: Do not translate "MouseEvent.mozPressure" and "PointerEvent.pressure".
+# LOCALIZATION NOTE: Do not translate MathML, align, numalign and denomalign.
+# LOCALIZATION NOTE: Do not translate MathML and bevelled.
+# LOCALIZATION NOTE: Do not translate thin, medium, thick and linethickness.
+# LOCALIZATION NOTE: Do not translate small, normal, big and mathsize.
+# LOCALIZATION NOTE: Do not translate veryverythinmathspace, verythinmathspace,
+# thinmathspace, mediummathspace, thickmathspace, verythickmathspace, veryverythickmathspace and MathML.
+# LOCALIZATION NOTE: Do not translate radical, notation and menclose.
+# LOCALIZATION NOTE: Do not translate MathML or mfenced.
+# LOCALIZATION NOTE: Do not translate MathML, subscriptshift and superscriptshift.
+# LOCALIZATION NOTE: Do not translate MathML, background, color, fontfamily, fontsize, fontstyle and fontweight.
+# LOCALIZATION NOTE: Do not translate MathML and XLink.
+# LOCALIZATION NOTE: Do not translate MathML and STIXGeneral. %S is a documentation URL.
+# LOCALIZATION NOTE: Do not translate MathML and scriptminsize.
+# LOCALIZATION NOTE: Do not translate MathML and scriptsizemultiplier.
+# LOCALIZATION NOTE (UnknownProtocolNavigationPrevented): %1$S is the destination URL.
+# LOCALIZATION NOTE: %S is the URL of the resource in question
+
+# LOCALIZATION NOTE: Do not translate document.requestStorageAccess(), iframe, allow-same-origin and sandbox (though you may translate "sandboxed").
+# LOCALIZATION NOTE: Do not translate document.requestStorageAccess(), iframe, allow-storage-access-by-user-activation and sandbox (though you may translate "sandboxed").
+# LOCALIZATION NOTE: Do not translate document.requestStorageAccess() and iframe.
+# LOCALIZATION NOTE: Do not translate document.requestStorageAccess(). In some locales it may be preferable to not translate "event handler", either.
+# LOCALIZATION NOTE: Do not translate "Location" and "History".
+# LOCALIZATION NOTE: %S is the name of the folder the user selected in the file picker.
diff --git a/l10n-vi/dom/chrome/global-strres.properties b/l10n-vi/dom/chrome/global-strres.properties
new file mode 100644
index 0000000000..2ef36d887e
--- /dev/null
+++ b/l10n-vi/dom/chrome/global-strres.properties
@@ -0,0 +1,5 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+16389=Không xác định được lỗi gì đã xảy ra (%1$S)
diff --git a/l10n-vi/dom/chrome/global.dtd b/l10n-vi/dom/chrome/global.dtd
new file mode 100644
index 0000000000..661fb351f4
--- /dev/null
+++ b/l10n-vi/dom/chrome/global.dtd
@@ -0,0 +1,5 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY locale.dir "ltr">
diff --git a/l10n-vi/dom/chrome/layout/HtmlForm.properties b/l10n-vi/dom/chrome/layout/HtmlForm.properties
new file mode 100644
index 0000000000..b334d7b203
--- /dev/null
+++ b/l10n-vi/dom/chrome/layout/HtmlForm.properties
@@ -0,0 +1,43 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+Reset=Đặt lại
+Submit=Gửi truy vấn
+Browse=Chọn tập tin…
+FileUpload=Tải lên một tập tin
+DirectoryUpload=Chọn thư mục để tải lên
+DirectoryPickerOkButtonLabel=Tải lên
+ForgotPostWarning=Form có chứa enctype=%S, nhưng không chứa method=post. Chương trình sẽ gửi form với method=GET và không dùng enctype.
+ForgotFileEnctypeWarning=Form có chứa tập tin để gửi lên, nhưng thiếu method=POST và enctype=multipart/form-data trên. Tập tin này sẽ không được gửi đi.
+# LOCALIZATION NOTE (DefaultFormSubject): %S will be replaced with brandShortName
+DefaultFormSubject=Gửi Post từ %S
+CannotEncodeAllUnicode=Một biểu mẫu vừa được gửi với bảng mã %S. Bảng mã này không thể mã hóa được tất cả các ký tự unicode, vì vậy thông tin gửi lên có thể bị lỗi. Để tránh vấn đề này, trang web cần được sửa để biểu mẫu được gửi với bảng mã UTF-8, hoặc làm cho toàn bộ trang dùng UTF-8, hoặc định rõ thuộc tính accept-charset=utf-8 vào phần tử của biểu mẫu.
+AllSupportedTypes=Tất cả các kiểu được hỗ trợ
+# LOCALIZATION NOTE (NoFileSelected): this string is shown on a
+# <input type='file'> when there is no file selected yet.
+NoFileSelected=Chưa chọn tập tin.
+# LOCALIZATION NOTE (NoFilesSelected): this string is shown on a
+# <input type='file' multiple> when there is no file selected yet.
+NoFilesSelected=Chưa chọn tập tin.
+# LOCALIZATION NOTE (NoDirSelected): this string is shown on a
+# <input type='file' directory/webkitdirectory> when there is no directory
+# selected yet.
+NoDirSelected=Không thư mục nào được chọn.
+# LOCALIZATION NOTE (XFilesSelected): this string is shown on a
+# <input type='file' multiple> when there are more than one selected file.
+# %S will be a number greater or equal to 2.
+XFilesSelected=%S tập tin được chọn.
+ColorPicker=Chọn màu
+# LOCALIZATION NOTE (AndNMoreFiles): Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# This string is shown at the end of the tooltip text for <input type='file'
+# multiple> when there are more than 21 files selected (when we will only list
+# the first 20, plus an "and X more" line). #1 represents the number of files
+# minus 20 and will always be a number equal to or greater than 2. So the
+# singular case will never be used.
+AndNMoreFiles=và #1 cái nữa
+# LOCALIZATION NOTE (DefaultSummary): this string is shown on a <details> when
+# it has no direct <summary> child. Google Chrome should already have this
+# string translated.
+DefaultSummary=Chi tiết
diff --git a/l10n-vi/dom/chrome/layout/MediaDocument.properties b/l10n-vi/dom/chrome/layout/MediaDocument.properties
new file mode 100644
index 0000000000..796028ab64
--- /dev/null
+++ b/l10n-vi/dom/chrome/layout/MediaDocument.properties
@@ -0,0 +1,21 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#LOCALIZATION NOTE (ImageTitleWithDimensions2AndFile): first %S is filename, second %S is type, third %S is width and fourth %S is height
+#LOCALIZATION NOTE (ImageTitleWithoutDimensions): first %S is filename, second %S is type
+#LOCALIZATION NOTE (ImageTitleWithDimensions2): first %S is type, second %S is width and third %S is height
+#LOCALIZATION NOTE (ImageTitleWithNeitherDimensionsNorFile): first %S is type
+#LOCALIZATION NOTE (MediaTitleWithFile): first %S is filename, second %S is type
+#LOCALIZATION NOTE (MediaTitleWithNoInfo): first %S is type
+ImageTitleWithDimensions2AndFile=%S (Ảnh %S, %S × %S pixel)
+ImageTitleWithoutDimensions=%S (Ảnh %S)
+ImageTitleWithDimensions2=(Ảnh %S, %Sx%S pixels)
+ImageTitleWithNeitherDimensionsNorFile=(Ảnh %S)
+MediaTitleWithFile=%S (Đối tượng %S)
+MediaTitleWithNoInfo=(Đối tượng %S)
+
+InvalidImage=Ảnh “%S” không hiển thị được, vì nó chứa lỗi.
+ScaledImage=Đã chỉnh tỉ lệ (%S%%)
+
+TitleWithStatus=%S - %S
diff --git a/l10n-vi/dom/chrome/layout/css.properties b/l10n-vi/dom/chrome/layout/css.properties
new file mode 100644
index 0000000000..739a8528c1
--- /dev/null
+++ b/l10n-vi/dom/chrome/layout/css.properties
@@ -0,0 +1,46 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+MimeNotCss=Stylesheet %1$S không tải được vì kiểu MIME của nó, "%2$S", không phải là "text/css".
+MimeNotCssWarn=Stylesheet %1$S vẫn tải được ở dạng CSS mặc dù kiểu MIME, "%2$S", không phải là "text/css".
+
+PEDeclDropped=Khai báo bị bỏ.
+PEDeclSkipped=Nhảy sang khai báo kế tiếp.
+PEUnknownProperty=Không rõ thuộc tính '%1$S'.
+PEValueParsingError=Lỗi trong khi phân tích giá trị cho '%1$S'.
+PEUnknownAtRule=Không nhận dạng at-rule hoặc lỗi phân tích at-rule '%1$S'.
+PEMQUnexpectedOperator=Toán tử không mong muốn trong media list.
+PEMQUnexpectedToken=Token không mong muốn ‘%1$S’ trong media list.
+PEAtNSUnexpected=Dấu thừa bên trong @namespace: '%1$S'.
+PEKeyframeBadName=Cần định danh cho tên của quy tắc @keyframes.
+PEBadSelectorRSIgnored=Bộ quy tắc bị bỏ qua do bộ chọn tồi.
+PEBadSelectorKeyframeRuleIgnored=Quy tắc keyframe bị bỏ qua do selector tồi.
+PESelectorGroupNoSelector=Cần bộ chọn.
+PESelectorGroupExtraCombinator=Kết hợp Dangling
+PEClassSelNotIdent=Cần định danh cho lớp selector nhưng lại thấy '%1$S'.
+PETypeSelNotType=Cần tên thành phần hoặc '*' nhưng lại thấy '%1$S'.
+PEUnknownNamespacePrefix=Không rõ tiền tố namespace '%1$S'.
+PEAttributeNameExpected=Cần định danh cho tên thuộc tính nhưng lại thấy '%1$S'.
+PEAttributeNameOrNamespaceExpected=Cần tên thuộc tính hoặc namespace nhưng lại thấy '%1$S'.
+PEAttSelNoBar=Cần '|' nhưng lại thấy '%1$S'.
+PEAttSelUnexpected=Dấu thừa trong thuộc tính selector: '%1$S'.
+PEAttSelBadValue=Cần định danh hoặc chuỗi cho giá trị trong attribute selector nhưng lại thấy '%1$S'.
+PEPseudoSelBadName=Cần định danh cho pseudo-class hoặc pseudo-element nhưng lại thấy '%1$S'.
+PEPseudoSelEndOrUserActionPC=Yêu cầu kết thúc bộ chọn hoặc hành động người dùng pseudo-class sau pseudo-element nhưng lại thấy ‘%1$S’.
+PEPseudoSelUnknown=Không rõ pseudo-class hoặc pseudo-element '%1$S'.
+PENegationBadArg=Thiếu tham số trong negation pseudo-class '%1$S'.
+PEPseudoClassArgNotIdent=Cần định danh cho tham số pseudo-class nhưng lại thấy '%1$S'.
+PEColorNotColor=Cần màu nhưng lại thấy '%1$S'.
+PEParseDeclarationDeclExpected=Cần khai báo nhưng lại thấy '%1$S'.
+PEUnknownFontDesc=Kí hiệu '%1$S' chưa biết trong luật @font-face.
+PEMQExpectedFeatureName=Yêu cầu tên chức năng đa phương tiện nhưng lại thấy '%1$S'.
+PEMQNoMinMaxWithoutValue=Tính năng đa phương tiện với min- hoặc max- phải có một giá trị.
+PEMQExpectedFeatureValue=Tìm thấy giá trị bất hợp lệ đối với tính năng đa phương tiện.
+PEExpectedNoneOrURL=Yêu cầu ‘none’ hoặc URL nhưng lại thấy ‘%1$S’.
+PEExpectedNoneOrURLOrFilterFunction=Yêu cầu ‘none’, URL, hoặc hàm bộ lọc nhưng lại thấy ‘%1$S’.
+
+PEDisallowedImportRule=Quy tắc @import chưa có hiệu lực trong stylesheets được xây dựng.
+
+TooLargeDashedRadius=Border radius is too large for ‘dashed’ style (the limit is 100000px). Rendering as solid.
+TooLargeDottedRadius=Border radius is too large for ‘dotted’ style (the limit is 100000px). Rendering as solid.
diff --git a/l10n-vi/dom/chrome/layout/htmlparser.properties b/l10n-vi/dom/chrome/layout/htmlparser.properties
new file mode 100644
index 0000000000..bed5254b7f
--- /dev/null
+++ b/l10n-vi/dom/chrome/layout/htmlparser.properties
@@ -0,0 +1,134 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Encoding warnings and errors
+EncNoDeclarationFrame=Bảng mã của một tài liệu trong khung chưa được định nghĩa. Tài liệu có thể xuất hiện khác nếu xem ngoài khung.
+EncNoDeclarationPlain=Encoding của tài liệu văn bản thuần túy không được khai báo. Văn bản sẽ hiển thị không đúng trên một vài cấu hình của trình duyệt nếu như tài liệu chứa các ký tự không thuộc mã US-ASCII. Encoding của tập tin cần được khai báo trong giao thức truyền tải hoặc tập tin cần phải sử dụng một thứ tự byte để đánh dấu như một encoding signature.
+EncNoDeclaration=Encoding của tài liệu HTML không được khai báo. Văn bản sẽ hiển thị không đúng trên một vài cấu hình của trình duyệt nếu tài liệu chứa các ký tự không thuộc mã US-ASCII. Encoding cần phải khai báo trong tài liệu hoặc trong giao thức truyền tải.
+EncLateMetaFrame=Không tìm thấy đoạn khai báo bảng mã của tài liệu HTML trong khung khi quét sơ bộ 1024 byte đầu tiên. Khi xem mà không có tài liệu đóng khung nó thì trang web sẽ tự động tải lại. Đoạn khai báo bảng mã nên nằm trong 1024 byte đầu tiên của tài liệu.
+EncLateMeta=Không tìm thấy đoạn khai báo mã hóa của tài liệu HTML khi quét sơ bộ 1024 byte đầu tiên. Khi xem trong một trình duyệt được thiết lập khác, trang web sẽ tự động tải lại. Đoạn khai báo mã hóa nên nằm trong 1024 byte đầu tiên của tài liệu.
+EncLateMetaReload=Trang web đã được tải lại, bởi vì đoạn khai báo mã hóa của tài liệu HTML không được tìm thấy khi quét đầu 1024 byte của tập tin. Đoạn khai báo mã hóa cần phải chuyển vào bên trong 1024 bytes đầu tiên của tập tin.
+EncLateMetaTooLate=Khai báo mã hóa kí tự của văn bản được nhận ra quá muộn để tạo ra tác dụng. Phần khai báo này cần được đưa vào trong 1024 byte đầu tiên của tập tin.
+EncMetaUnsupported=Mã hóa kí tự không được hỗ trợ được khai báo trong thẻ meta của tài liệu HTML. Sự khai báo này không được chấp nhận.
+EncProtocolUnsupported=Mã hóa kí tự không được hỗ trợ được khai báo ở tầng giao thức truyền dữ liêu. Sự khai báo này không được chấp nhận.
+EncBomlessUtf16=Tìm thấy văn bản chỉ toàn ký tự Basic Latin được mã hóa theo kiểu UTF-16 mà không có đoạn miêu tả trật tự byte (Byte Order Mark, BOM) và cũng không có khai báo nào ở mức protocol. Mã hóa nội dung này theo kiểu UTF-16 là không hiệu quả và hơn nữa, character encoding cần được khai báo trong mọi trường hợp.
+EncMetaUtf16=Một thẻ meta được dùng để khai báo kiểu mã hóa kí tự UTF-16. Khai báo UTF-8 được sự dụng để thay thế.
+EncMetaUserDefined=Thẻ meta được sử dụng để khai báo ký tự mã hóa x-user-defined. Nó cũng giống như việc khai báo một windows-1252 thay vì sự tương thích với các phông chữ truyền thống sai định dạng. Trang web này phải chuyển sang định dạng Unicode.
+
+# The bulk of the messages below are derived from
+# https://hg.mozilla.org/projects/htmlparser/file/1f633cef7de7/src/nu/validator/htmlparser/impl/ErrorReportingTokenizer.java
+# which is available under the MIT license.
+
+# Tokenizer errors
+errGarbageAfterLtSlash=Có ký tự rác sau “</”.
+errLtSlashGt=Thấy “</>”. Có thể do: unescaped “<” (escape ở dạng “&lt;”) hoặc viết sai thẻ kết thúc.
+errCharRefLacksSemicolon=Character reference không được kết thúc bởi dấu chấm phẩy.
+errNoDigitsInNCR=Không có chữ số nào trong tham chiếu ký tự.
+errGtInSystemId=thuộc về định danh hệ thống.
+errGtInPublicId=">" thuộc về định danh chung.\u0020
+errNamelessDoctype=Doctype không tên.
+errConsecutiveHyphens=Các dấu gạch ngang liên tiếp không kết thúc một ghi chú. “--” không được phép chứa bên trong một ghi chú, nhưng e.g. “- -” được phép.
+errPrematureEndOfComment=Ghi chú chưa được kết thúc. Sử dụng "-->" để kết thúc đúng một ghi chú.
+errBogusComment=Ghi chú giả.
+errUnquotedAttributeLt="<" là một giá trị chưa được quoted; có thể nguyên nhân là do thiếu ">" ngay trước đó.
+errUnquotedAttributeGrave="`" là một giá trị chưa được quoted; có thể nguyên nhân là do sử dụng sai ký tự dùng để quote.
+errUnquotedAttributeQuote=Dấu nháy (quote) xuất hiện trong thuộc tính unquoted. Nguyên nhân có thể: Hai hay nhiều thuộc tính được truyền cùng nhau hoặc một chuỗi truy vấn URL (URL query string) xuất hiện trong giá trị của một thuộc tính unquote.
+errUnquotedAttributeEquals=“=Ký tự " xuất hiện trong thuộc tính unquoted. Nguyên nhân có thể: Hai hay nhiều thuộc tính được truyền cùng nhau hoặc một chuỗi truy vấn URL (URL query string) xuất hiện trong giá trị của một thuộc tính unquote.
+errSlashNotFollowedByGt=A slash was not immediate followed by “>”.
+errNoSpaceBetweenAttributes=Không có khoảng trắng giữa các thuộc tính.
+errUnquotedAttributeStartLt=“<” at the start of an unquoted attribute value. Probable cause: Missing “>” immediately before
+errUnquotedAttributeStartGrave=Ký tự "`" bắt đầu giá trị một thuộc tính unquoted. Nguyên nhân có thể: Sử dụng sai ký tự dùng để quote.
+errUnquotedAttributeStartEquals=“=" xuất hiện ở vị trí bắt đầu của một giá trị thuộc tính không được trích dẫn. Nguyên nhân có thể: Thiếu mất cặp dấu bằng.
+errAttributeValueMissing=Giá trị thuộc tính bị thiếu.
+errBadCharBeforeAttributeNameLt=Dấu "<" xuất hiện thay vì tên thuộc tính. Nguyên nhân có thể: Thiếu mất dấu ">" ở phía trước.
+errEqualsSignBeforeAttributeName=Dấu "=" xuất hiện thay vì tên thuộc tính. Nguyên nhân có thể: Thuộc tính bị thiếu tên.
+errBadCharAfterLt=Ký tự sai sau “<”. Có thể do: Không thoát “<”. Hãy thử kết thúc với “&lt;”.
+errLtGt=Thấy “<>”. Có thể do: “<” không thoát (hãy thoát thành “&lt;”) hoặc viết sai thẻ bắt đầu.
+errProcessingInstruction=Xuất hiện "<?". Nguyên nhân có thể: Chỉ dẫn xử lý XML (XML processing instruction) được đặt trong HTML. (Trong HTML, chỉ dẫn xử lý XML không được hỗ trợ.)
+errUnescapedAmpersandInterpretedAsCharacterReference=Chuỗi sau “&” được hiểu là một ký tự tham chiếu. (“&” nên được thoát là “&amp;”.)
+errNotSemicolonTerminated=Ký tự đặc biệt được định nghĩa không kết thúc với một dấu chấm phẩy. (Hoặc "&" nên được thoát là “&amp;”.)
+errNoNamedCharacterMatch=“&” không bắt đâu một ký tự tham chiếu. (“&” nên được thoát là “&amp;”.)
+errQuoteBeforeAttributeName=Dấu nháy (quote) thay vì tên thuộc tính. Nguyên nhân có thể: Thiếu mất dấu "=" ở phía trước.
+errLtInAttributeName=Dấu "<" nằm trong tên thuộc tính. Nguyên nhân có thể: Thiếu mất đấu ">" ở phía trước.
+errQuoteInAttributeName=Xuất hiện dấu nháy (quote) trong tên thuộc tính. Nguyên nhân có thể: Ở phía trước số lượng dấu nháy không tạo thành đúng cặp.
+errExpectedPublicId=Doctype kết thúc tại vị trí lẽ ra thuộc về một public identifier (định danh công cộng).
+errBogusDoctype=Doctype không tồn tại.
+maybeErrAttributesOnEndTag=Thẻ kết thúc lại có thuộc tính.
+maybeErrSlashInEndTag=Dấu “/” thừa ở cuối thẻ kết thúc.
+errNcrNonCharacter=Character reference (ký tự tham chiếu) sẽ được biến đổi thành một non-character.
+errNcrSurrogate=Character reference (ký tự tham chiếu) sẽ được biến đổi thành một surrogate (đại diện).
+errNcrControlChar=Character reference (ký tự tham chiếu) sẽ được biến đổi thành một control character (ký tự điều khiển).
+errNcrCr=Một numeric character reference (ký tự tham chiếu số) được biến đổi thành dấu xuống dòng.
+errNcrInC1Range=Một numeric character reference (ký tự tham chiếu số) được biến đổi thành C1 controls range (miền điều khiển C1).
+errEofInPublicId=Cuối tập tin bên trong định danh công cộng.
+errEofInComment=Cuối tập tin bên trong lời chú thích.
+errEofInDoctype=Cuối tập tin bên trong doctype.
+errEofInAttributeValue=Kết thúc tập tin khi đang bên trong một giá trị thuộc tính. Loại bỏ thẻ.
+errEofInAttributeName=Kết thúc tập tin xảy ra bên trong một tên thuộc tính. Loại bỏ thẻ.
+errEofWithoutGt=Kết thúc tập tin trong khi thẻ trước đó không được kết thúc bởi ">". Loại bỏ thẻ.
+errEofInTagName=Thấy dấu hiệu kết thúc tập tin khi tìm kiếm tên thẻ. Bỏ qua thẻ.
+errEofInEndTag=Cuối tập tin bên trong thẻ đóng. Bỏ qua thẻ.
+errEofAfterLt=Cuối tập tin sau ký tự “<”.
+errNcrOutOfRange=Character reference (tham chiếu ký tự) nằm ngoài khoảng Unicode cho phép.
+errNcrUnassigned=Character reference (tham chiếu ký tự) biến đổi thành một permanent unassigned code point.
+errDuplicateAttribute=Trùng lặp thuộc tính.
+errEofInSystemId=Cuối tập tin bên trong định danh hệ thống.
+errExpectedSystemId=Thay vì một system identifier (định dang hệ thống) thì doctype lại kết thúc.
+errMissingSpaceBeforeDoctypeName=Thiếu khoảng trắng trước tên doctype.
+errHyphenHyphenBang=“- - ! ” xuất hiện trong ghi chú.
+errNcrZero=Character reference (tham chiếu ký tự) biến đổi số 0.
+errNoSpaceBetweenDoctypeSystemKeywordAndQuote=Không có khoảng trắng giữa từ khóa doctype "SYSTEM" và dấu nháy.
+errNoSpaceBetweenPublicAndSystemIds=Không có khoảng trắng giữa doctype public và system identifier (định dang hệ thống).
+errNoSpaceBetweenDoctypePublicKeywordAndQuote=Không có khoảng trắng giữa từ khóa doctype "PUBLIC" và dấu nháy.
+
+# Tree builder errors
+errDeepTree=Cây tài liệu quá sâu. Cây được làm phẳng đến độ sâu 513 yếu tố.
+errStrayStartTag2=Thẻ bắt đầu thừa “%1$S”.
+errStrayEndTag=Thẻ kết thúc thừa “%1$S”.
+errUnclosedElements=Tìm thấy thẻ kết thúc “%1$S” nhưng vẫn còn phần tử đang mở.
+errUnclosedElementsImplied=Thẻ kết thúc “%1$S” được hiểu mặc định nhưng vẫn còn phần tử đang mở.
+errUnclosedElementsCell=Ô bảng được ngầm định hiểu là kết thúc nhưng vẫn còn phần tử đang mở.
+errStrayDoctype=doctype thừa.
+errAlmostStandardsDoctype=Doctype gần đặt chuẩn. Lẽ ra nên là “<!DOCTYPE html>”.
+errQuirkyDoctype=Doctype què quặt. Lẽ ra nên là “<!DOCTYPE html>”.
+errNonSpaceInTrailer=Phát hiện ký tự không phải là khoảng trắng tại cuối trang.
+errNonSpaceAfterFrameset=Phát hiện ký tự không phải là khoảng trắng sau “frameset”.
+errNonSpaceInFrameset=Phát hiện ký tự không phải là khoảng trắng trong “frameset”.
+errNonSpaceAfterBody=Phát hiện ký tự không phải là khoảng trắng sau body.
+errNonSpaceInColgroupInFragment=Phát hiện ký tự không phải là khoảng trắng trong "colgroup" khi parse fragment.
+errNonSpaceInNoscriptInHead=Phát hiện ký tự không phải là khoảng trắng trong "noscript" trong "head".
+errFooBetweenHeadAndBody=Phát hiện phần tử “%1$S” giữa “head” và “body”.
+errStartTagWithoutDoctype=Phát hiện bắt đầu một thẻ thay vì doctype. Lẽ ra nên là “<!DOCTYPE html>”.
+errNoSelectInTableScope=Không có "select" trong phạm vi bảng.
+errStartSelectWhereEndSelectExpected=Phát hiện bắt đầu thẻ “select” tại vị trí lẽ ra là kết thúc một thẻ.
+errStartTagWithSelectOpen=“%1$S” bắt đầu thẻ với “select” mở.
+errBadStartTagInHead2=Thẻ mở đầu "%1$S" ở "head" không tốt.
+errBadStartTagInNoscriptInHead=Thẻ bắt đầu “%1$S” không hợp lệ trong “noscript” ở “head”.
+errImage=Đã có thẻ mở đầu "image".
+errFooSeenWhenFooOpen=Phát hiện thẻ bắt đầu “%1$S” nhưng một phần tử cùng loại đã đang được mở.
+errFooSeenWhenFooOpen2=Đã thấy thẻ bắt đầu “%1$S” nhưng một phần tử cùng loại đã được mở.
+errHeadingWhenHeadingOpen=Heading không thể là con của một heading khác.
+errFramesetStart=Tìm thấy thẻ mở đầu “frameset”.
+errNoCellToClose=Không còn ô để đóng.
+errStartTagInTable=Thẻ mở đầu “%1$S” phát hiện trong “table”.
+errFormWhenFormOpen=Tìm thấy một thẻ mở đầu “form”, nhưng đã có một phần tử “form” khác đang được phân tích. Không được phép lồng biểu mẫu. Thẻ được loại bỏ.
+errTableSeenWhileTableOpen=Phát hiện thẻ mở đầu “table” trong khi thẻ “table” đằng trước vẫn đang mở.
+errStartTagInTableBody=Thẻ mở đầu “%1$S” trong thân bảng.
+errEndTagSeenWithoutDoctype=Thẻ kết thúc mà chưa có thẻ doctype ở phía trước. Hãy thêm “<!DOCTYPE html>”.
+errEndTagAfterBody=Tìm thấy thẻ kết thúc phía sau phần "body".
+errEndTagSeenWithSelectOpen=Thẻ kết thúc “%1$S” với "select" đang mở.
+errGarbageInColgroup=Garbage trong mảnh "colgroup"
+errEndTagBr=Thẻ kết thúc “br”.
+errNoElementToCloseButEndTagSeen=Không có phần tử “%1$S” mặc dù tồn tại thẻ kết thúc “%1$S”.
+errHtmlStartTagInForeignContext=Thẻ HTML mở đầu “%1$S” tồn tại ở một namespace khác.
+errTableClosedWhileCaptionOpen=“table” đã đóng nhưng “caption” vẫn đang mở.
+errNoTableRowToClose=Không có dòng để đóng.
+errNonSpaceInTable=Kí tự không phải dấu cách bị đặt sai trong bảng.
+errUnclosedChildrenInRuby=Thành phần con chưa được đóng trong "ruby".
+errStartTagSeenWithoutRuby=Thẻ bắt đầu “%1$S” không được mở bằng phần tử “ruby”.
+errSelfClosing=Thẻ tự đóng (“/>”) được dùng cho phần tử HTML có nội dung. Bỏ dấu “/” và xem nó như một thẻ mở đầu.
+errNoCheckUnclosedElementsOnStack=Tồn tại phần tử chưa được đóng trong ngăn xếp.
+errEndTagDidNotMatchCurrentOpenElement=Thẻ mở đầu “%1$S” không khớp với tên của phần tử đang mở (“%2$S”).
+errEndTagViolatesNestingRules=Thẻ kết thúc "%1$S" vi phạm luật lồng nhau.
+errEndWithUnclosedElements=Phát hiện thẻ kết thúc “%1$S” nhưng vẫn còn phần tử đang mở.
diff --git a/l10n-vi/dom/chrome/layout/layout_errors.properties b/l10n-vi/dom/chrome/layout/layout_errors.properties
new file mode 100644
index 0000000000..e087bac2b7
--- /dev/null
+++ b/l10n-vi/dom/chrome/layout/layout_errors.properties
@@ -0,0 +1,54 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+ImageMapRectBoundsError=Thuộc tính “coords” của tag <area shape="rect"> không ở định dạng “left,top,right,bottom”.
+ImageMapCircleWrongNumberOfCoords=Thuộc tính “coords” của tag <area shape="circle"> không ở định dạng “center-x,center-y,radius”.
+ImageMapCircleNegativeRadius=Thuộc tính “coords” của tag <area shape="circle"> không thể là bán kính âm.
+ImageMapPolyWrongNumberOfCoords=Thuộc tính “coords” của tag <area shape="poly"> không ở định dạng “x1,y1,x2,y2 …”.
+ImageMapPolyOddNumberOfCoords=Thuộc tính “coords” của tag <area shape="poly"> không có tọa độ “y” cuối (dạng đúng là “x1,y1,x2,y2 …”).
+
+TablePartRelPosWarning=Định vị tương đối của các hàng của bảng và các nhóm hàng hiện được hỗ trợ. Trang web này có thể cần được cập nhật vì nó có thể phụ thuộc vào tính năng này không có hiệu lực.
+ScrollLinkedEffectFound2=Trang web này dường như sử dụng hiệu ứng định vị liên kết cuộn. Điều này có thể không hoạt động tốt với panning không đồng bộ; xem https://developer.mozilla.org/docs/Mozilla/Performance/ScrollLinkedEffects để biết thêm chi tiết và tham gia thảo luận về các công cụ và tính năng liên quan!
+
+## LOCALIZATION NOTE(CompositorAnimationWarningContentTooLargeArea):
+## %1$S is an integer value of the area of the frame
+## %2$S is an integer value of the area of a limit based on the viewport size
+CompositorAnimationWarningContentTooLargeArea=Không thể chạy hoạt ảnh trên bộ tổng hợp vì diện tích của khung (%1$S) quá lớn so với khung nhìn (lớn hơn %2$S)
+## LOCALIZATION NOTE(CompositorAnimationWarningContentTooLarge2):
+## (%1$S, %2$S) is a pair of integer values of the frame size
+## (%3$S, %4$S) is a pair of integer values of a limit based on the viewport size
+## (%5$S, %6$S) is a pair of integer values of an absolute limit
+CompositorAnimationWarningContentTooLarge2=Không thể chạy hoạt ảnh trên bộ tổng hợp vì kích thước khung (%1$S, %2$S) quá lớn so với chế độ xem (lớn hơn (%3$S, %4$S)) hoặc lớn hơn mức tối đa giá trị cho phép (%5$S, %6$S)
+## LOCALIZATION NOTE(CompositorAnimationWarningTransformBackfaceVisibilityHidden):
+## 'backface-visibility: hidden' is a CSS property, don't translate it.
+CompositorAnimationWarningTransformBackfaceVisibilityHidden=Hoạt ảnh của thay đổi ‘backface-visibility: hidden’ không thể chạy trên bộ tổng hợp
+## LOCALIZATION NOTE(CompositorAnimationWarningTransformSVG,
+## CompositorAnimationWarningTransformWithGeometricProperties,
+## CompositorAnimationWarningTransformWithSyncGeometricAnimations,
+## CompositorAnimationWarningTransformFrameInactive,
+## CompositorAnimationWarningOpacityFrameInactive):
+## 'transform' and 'opacity' mean CSS property names, don't translate it.
+CompositorAnimationWarningTransformSVG=Hoạt ảnh của ‘transform’ trên các phần tử với biến đổi SVG không thể chạy trên bộ tổng hợp
+CompositorAnimationWarningTransformWithGeometricProperties=Hoạt ảnh của ‘transform’ không thể chạy trên bộ tổng hợp khi các thuộc tính hình học được tạo thành trên cùng một phần tử
+CompositorAnimationWarningTransformWithSyncGeometricAnimations=Hoạt ảnh của ‘transform’ không thể chạy trên bộ tổng hợp vì nó phải được đồng bộ hóa với hoạt ảnh của các thuộc tính hình học bắt đầu cùng một lúc
+CompositorAnimationWarningTransformFrameInactive=Không thể chạy hoạt ảnh trên bộ tổng hợp vì khung không được đánh dấu hoạt động cho hoạt ảnh ‘transform’
+CompositorAnimationWarningTransformIsBlockedByImportantRules=Không thể chạy hoạt ảnh chuyển đổi trên bộ tổng hợp vì các thuộc tính liên quan đến chuyển đổi bị ghi đè bởi quy tắc !important
+CompositorAnimationWarningOpacityFrameInactive=Không thể chạy hoạt ảnh trên bộ tổng hợp vì khung không được đánh dấu hoạt động cho hoạt ảnh ‘opacity’
+CompositorAnimationWarningHasRenderingObserver=Không thể chạy hoạt ảnh trên bộ tổng hợp vì phần tử này có kết xuất trình quan sát (-moz-element hoặc SVG clipping/masking)
+CompositorAnimationWarningHasCurrentColor=Không thể chạy hình động của ‘background-color’ trên bộ tổng hợp với keyframe ‘current-color’.
+
+## LOCALIZATION NOTE: Do not translate zoom, calc(), "transform", "transform-origin: 0 0"
+ZoomPropertyWarning=Trang này sử dụng thuộc tính phi tiêu chuẩn “zoom”. Cân nhắc sử dụng calc() trong các giá trị thuộc tính có liên quan, hoặc sử dụng “transform” cùng với “transform-origin: 0 0”.
+
+## LOCALIZATION NOTE(PrincipalWritingModePropagationWarning):
+## Do not translate <html>, <body>, CSS, "writing-mode", "direction", "text-orientation", :root, and "The Principal Writing Mode" because they are technical terms.
+PrincipalWritingModePropagationWarning=Khi render phần tử <html>, các giá trị được sử dụng của các thuộc tính CSS “writing-mode”, “direction”, và “text-orientation” trong phần tử <html> được lấy từ các giá trị được tính toán của phần tử <body>, không phải các giá trị của phần tử <html>. Xem xét thiết lập các thuộc tính này trên lớp giả CSS :root. Để biết thêm thông tin hãy xem “The Principal Writing Mode” trong https://www.w3.org/TR/css-writing-modes-3/#principal-flow
+
+## LOCALIZATION NOTE(ScrollAnchoringDisabledInContainer):
+## %1$S is an integer value with the total number of adjustments
+## %2$S is a floating point value with the average distance adjusted
+## %3$S is a floating point value with the total adjusted distance
+ScrollAnchoringDisabledInContainer=Scroll anchoring đã bị vô hiệu hóa trong scroll container do có quá nhiều điều chỉnh liên tiếp (%1$S) với tổng khoảng cách quá ít (trung bình %2$S px, tổng %3$S px).
+
+ForcedLayoutStart=Bố cục đã bị buộc trước khi trang được tải đầy đủ. Nếu các bảng định kiểu chưa được tải, điều này có thể gây ra nội dung không được chỉnh sửa.
diff --git a/l10n-vi/dom/chrome/layout/printing.properties b/l10n-vi/dom/chrome/layout/printing.properties
new file mode 100644
index 0000000000..78c538b47f
--- /dev/null
+++ b/l10n-vi/dom/chrome/layout/printing.properties
@@ -0,0 +1,56 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Page number formatting
+## @page_number The current page number
+#LOCALIZATION NOTE (pagenumber): Do not translate %ld in the following line.
+# Place the word %ld where the page number and number of pages should be
+# The first %ld will receive the the page number
+pagenumber=%1$d
+
+# Page number formatting
+## @page_number The current page number
+## @page_total The total number of pages
+#LOCALIZATION NOTE (pageofpages): Do not translate %ld in the following line.
+# Place the word %ld where the page number and number of pages should be
+# The first %ld will receive the the page number
+# the second %ld will receive the total number of pages
+pageofpages=%1$d trong %2$d
+
+PrintToFile=In thành Tập tin
+print_error_dialog_title=Lỗi Máy In
+printpreview_error_dialog_title=Lỗi khi xem trước trang in
+
+# Printing error messages.
+#LOCALIZATION NOTE: Some of these messages come in pairs, one
+# for printing and one for print previewing. You can remove that
+# distinction in your language by removing the entity with the _PP
+# suffix; then the entity without a suffix will be used for both.
+# You can also add that distinction to any of the messages that don't
+# already have it by adding a new entity with a _PP suffix.
+#
+# For instance, if you delete PERR_GFX_PRINTER_DOC_IS_BUSY_PP, then
+# the PERR_GFX_PRINTER_DOC_IS_BUSY message will be used for that error
+# condition when print previewing as well as when printing. If you
+# add PERR_FAILURE_PP, then PERR_FAILURE will only be used when
+# printing, and PERR_FAILURE_PP will be used under the same conditions
+# when print previewing.
+#
+PERR_FAILURE=Đã xảy ra lỗi khi in.
+
+PERR_ABORT=Việc in ấn đã bị hủy bỏ.
+PERR_NOT_AVAILABLE=Một số chức năng in hiện tại chưa có.
+PERR_NOT_IMPLEMENTED=Một vài tính năng in ấn chưa được bổ sung.
+PERR_OUT_OF_MEMORY=Không đủ bộ nhớ để in.
+PERR_UNEXPECTED=Gặp vấn đề đột xuất trong khi in.
+
+PERR_GFX_PRINTER_NO_PRINTER_AVAILABLE=Không có máy in nào.
+PERR_GFX_PRINTER_NO_PRINTER_AVAILABLE_PP=Không có máy in nào, không thể xem trước trang in.
+PERR_GFX_PRINTER_NAME_NOT_FOUND=Không tìm thấy máy in đã chọn.
+PERR_GFX_PRINTER_COULD_NOT_OPEN_FILE=Lỗi mở tập tin đầu ra để in ra tập tin.
+PERR_GFX_PRINTER_STARTDOC=Việc in thất bại ngay khi bắt đầu.
+PERR_GFX_PRINTER_ENDDOC=Việc in thất bại khi hoàn tất.
+PERR_GFX_PRINTER_STARTPAGE=Việc in thất bại khi bắt đầu trang mới.
+PERR_GFX_PRINTER_DOC_IS_BUSY=Không thể in tài liệu vào lúc này, vì vẫn chưa nạp xong.
+PERR_GFX_PRINTER_DOC_IS_BUSY_PP=Không thể xem trước trang của tài liệu này, nó vẫn đang tải.
diff --git a/l10n-vi/dom/chrome/layout/xmlparser.properties b/l10n-vi/dom/chrome/layout/xmlparser.properties
new file mode 100644
index 0000000000..7cd7ab1cc1
--- /dev/null
+++ b/l10n-vi/dom/chrome/layout/xmlparser.properties
@@ -0,0 +1,48 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Map Expat error codes to error strings
+1 = tràn bộ nhớ
+2 = lỗi cú pháp
+3 = không tìm thấy phần tử gốc
+4 = không đúng dạng
+5 = dấu chưa đóng
+6 = kí tự bộ phận
+7 = thẻ không khớp
+8 = trùng thuộc tính
+9 = kí tự thừa sau phần tử document
+10 = thông số tham chiếu đối tượng không hợp lệ
+11 = đối tượng chưa được định nghĩa
+12 = đối tượng tham chiếu đệ qui
+13 = đối tượng dị bộ
+14 = tham chiếu tới số kí tự sai
+15 = tham chiếu tới đối tượng nhị phân
+16 = tham chiếu tới đối tượng bên ngoài trong thuộc tính
+17 = khai báo của xml không ở đầu đối tượng bên ngoài
+18 = không rõ bảng mã
+19 = bảng mã được chỉ định trong khai báo của XML không đúng
+20 = phần CDATA chưa đóng
+21 = lỗi khi xử lí tham chiếu tới đối tượng bên ngoài
+22 = tài liệu không đứng một mình
+23 = tình trạng hỏng của trình phân tích
+24 = đối tượng được khai báo trong tham số đối tượng
+27 = tiền tố không qui định giới hạn cho namespace
+28 = phải khai báo tiền tố
+29 = đánh dấu không hoàn tất trong thực thể tham số
+30 = khai báo XML không đúng mẫu
+31 = khai báo văn bản không đúng mẫu
+32 = kí tự sai trong định danh công cộng
+38 = tiền tố qui định kiểu (xml) phải được khai báo hoặc gắn với namespace khác
+39 = tiền tố qui định kiểu (xmlns) không được phép khai báo hoặc không khai báo.
+40 = tiền tố không được gắn với một trong các tên namespace dành riêng.
+
+# %1$S is replaced by the Expat error string, may be followed by Expected (see below)
+# %2$S is replaced by URL
+# %3$u is replaced by line number
+# %4$u is replaced by column number
+XMLParsingError = Lỗi Phân tích XML: %1$S\nĐịa chỉ: %2$S\nDòng số %3$u, Cột %4$u:
+
+# %S is replaced by a tag name.
+# This gets appended to the error string if the error is mismatched tag.
+Expected = . Cần: </%S>.
diff --git a/l10n-vi/dom/chrome/layout/xul.properties b/l10n-vi/dom/chrome/layout/xul.properties
new file mode 100644
index 0000000000..abbb7980d1
--- /dev/null
+++ b/l10n-vi/dom/chrome/layout/xul.properties
@@ -0,0 +1,5 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+PINotInProlog=<?%1$S?> hướng dẫn xử lí không còn hiệu quả bên ngoài prolog nữa (xem bug 360119).
diff --git a/l10n-vi/dom/chrome/mathml/mathml.properties b/l10n-vi/dom/chrome/mathml/mathml.properties
new file mode 100644
index 0000000000..c1f8eac4d9
--- /dev/null
+++ b/l10n-vi/dom/chrome/mathml/mathml.properties
@@ -0,0 +1,16 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+InvalidChild=Đánh dấu không hợp lệ: <%1$S> không phải là con của <%2$S>.
+ChildCountIncorrect=Đánh dấu không hợp lệ: số lượng thẻ con cho thẻ <%1$S/> không chính xác.
+DuplicateMprescripts=Đánh dấu không hợp lệ: có nhiều hơn một thẻ <mprescripts/> trong <mmultiscripts/>.
+# LOCALIZATION NOTE: The first child of <mmultiscript/> is the base, that is the element to which scripts are attached.
+NoBase=Đánh dấu không hợp lệ: Thiếu một phần tử cơ sở trong <mmultiscripts/>. Không tìm thấy.
+SubSupMismatch=Đánh dấu không hợp lệ: Không đủ cặp subscript/superscript trong thẻ <mmultiscripts/>.
+
+# LOCALIZATION NOTE: When localizing the single quotes ('), follow the conventions in css.properties for your target locale.
+AttributeParsingError=Lỗi phân tích giá trị '%1$S' cho thuộc tính '%2$S' của <%3$S/>. Thuộc tính bị bỏ qua.
+AttributeParsingErrorNoTag=Lỗi phân tích giá trị '%1$S' cho thuộc tính '%2$S' . Thuộc tính bị bỏ qua.
+LengthParsingError=Lỗi phân tích '%1$S' giá trị thuộc tính MathML chẳng hạn như lỗi độ dài. Thuộc tính bị bỏ qua.
+UnitlessValuesAreDeprecated=Các giá trị đơn vị không được dùng trong MathML 3.
diff --git a/l10n-vi/dom/chrome/netError.dtd b/l10n-vi/dom/chrome/netError.dtd
new file mode 100644
index 0000000000..298d5dfa05
--- /dev/null
+++ b/l10n-vi/dom/chrome/netError.dtd
@@ -0,0 +1,96 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY loadError.label "Lỗi tải trang">
+<!ENTITY retry.label "Thử lại">
+
+<!-- Specific error messages -->
+
+<!ENTITY connectionFailure.title "Không thể kết nối">
+<!ENTITY connectionFailure.longDesc "<p>Mặc dù trang web có vẻ hợp lệ, nhưng trình duyệt không thể thiết lập kết nối.</p><ul><li>Có thể trang này đang tạm thời bị gián đoạn? Hãy thử lại sau.</li><li>Bạn cũng không thể duyệt các trang web khác? Hãy kiểm tra kết nối mạng.</li><li>Máy tính hoặc mạng của bạn có đang được bảo vệ bởi tường lửa hoặc proxy không? Thiết lập sai có thể làm ảnh hưởng tới việc duyệt Web.</li></ul>">
+
+<!ENTITY deniedPortAccess.title "Cổng bị cấm vì lí do bảo mật">
+<!ENTITY deniedPortAccess.longDesc "<p>Địa chỉ này có dùng một cổng (vd. <q>mozilla.org:80</q> là cổng 80 trên mozilla.org) vốn được dùng cho mục đích <em>không phải</em> là duyệt Web. Trình duyệt đã hủy yêu cầu để bảo vệ bạn.</p>">
+
+<!ENTITY dnsNotFound.title "Không tìm thấy địa chỉ">
+<!ENTITY dnsNotFound.longDesc "<p>Trình duyệt không thể tìm thấy máy chủ của địa chỉ được cung cấp.</p><ul><li>Liệu bạn có mắc lỗi khi gõ tên miền không? (vd. <q><strong>ww</strong>.mozilla.org</q> thay vì <q><strong>www</strong>.mozilla.org</q>)</li><li>Bạn có chắc tên miền này tồn tại không? Có thể thời hạn đăng kí của nó đã hết.</li><li>Bạn cũng không thể duyệt các trang web khác? Hãy kiểm tra lại kết nối mạng và thiết lập máy chủ DNS.</li><li>Máy tính hoặc mạng của bạn có được bảo vệ bởi tường lửa hoặc proxy? Thiết lập sai có thể làm ảnh hưởng đến việc duyệt Web.</li></ul>">
+
+<!ENTITY fileNotFound.title "Không tìm thấy tập tin">
+<!ENTITY fileNotFound.longDesc "<ul><li>Có khi nào mục này đã bị đổi tên hoặc di chuyển không?</li><li>Có lỗi chính tả, lỗi HOA-thường, hay lỗi gõ chữ nào khác trong phần địa chỉ không?</li><li>Bạn có đủ quyền hạn để yêu cầu mục này không?</li></ul>">
+
+<!ENTITY fileAccessDenied.title "Truy cập tập tin bị từ chối">
+<!ENTITY fileAccessDenied.longDesc "<ul><li>Nó có thể đã bị xóa, đã chuyển đi, hoặc có thể do quyền truy cập tập tin đã ngăn cản việc truy cập.</li></ul>">
+
+<!ENTITY generic.title "Không thể hoàn tất yêu cầu">
+<!ENTITY generic.longDesc "<p>Thông tin thêm về vấn đề hoặc lỗi này hiện không có.</p>">
+
+<!ENTITY malformedURI.title "Địa chỉ không hợp lệ">
+<!ENTITY malformedURI.longDesc "<p>Địa chỉ bạn cung cấp không phải là một trong các định dạng đã biết. Vui lòng kiểm tra thanh địa chỉ và thử lại.</p>">
+
+<!ENTITY netInterrupt.title "Truyền tải dữ liệu bị ngắt giữa chừng">
+<!ENTITY netInterrupt.longDesc "<p>Trình duyệt đã kết nối thành công, nhưng kết nối đã bị ngắt khi đang trao đổi thông tin. Vui lòng thử lại.</p><ul><li>Bạn cũng không thể duyệt trang khác? Hãy kiểm tra kết nối mạng.</li><li>Vẫn gặp vấn đề? Hỏi ý quản trị mạng hoặc nhà cung cấp Internet của bạn để được trợ giúp.</li></ul>">
+
+<!ENTITY notCached.title "Tài liệu bị hết hạn">
+<!ENTITY notCached.longDesc "<p>Tài liệu được yêu cầu không có sẵn trong bộ đệm của trình duyệt.</p><ul><li>Vì lí do bảo mật, trình duyệt không tự động yêu cầu lại các tài liệu nhạy cảm.</li><li>Nhấn nút Thử Lại để yêu cầu lại tài liệu từ trang web.</li></ul>">
+
+<!ENTITY netOffline.title "Chế độ ngoại tuyến">
+<!ENTITY netOffline.longDesc2 "<p>Trình duyệt đang hoạt động trong chế độ ngoại tuyến và không thể kết nối tới mục được yêu cầu.</p><ul><li>Máy tính có được nối tới một mạng đang hoạt động không?</li><li>Nhấn nút &quot;Thử lại&quot; để chuyển sang chế độ trực tuyến và tải lại trang.</li></ul>">
+
+<!ENTITY contentEncodingError.title "Lỗi encoding">
+<!ENTITY contentEncodingError.longDesc "<p>Không thể hiển thị trang bạn đang muốn xem vì nó dùng một kiểu nén không được hỗ trợ hoặc không hợp lệ.</p><ul><li>Vui lòng liên hệ với chủ trang web để báo họ vấn đề này.</li></ul>">
+
+<!ENTITY unsafeContentType.title "Kiểu tập tin không an toàn">
+<!ENTITY unsafeContentType.longDesc "<ul> <li>Vui lòng liên hệ với chủ trang web để báo với họ về vấn đề này.</li> </ul>">
+
+<!ENTITY netReset.title "Kết nối bị ngắt giữa chừng">
+<!ENTITY netReset.longDesc "<p>Liên kết mạng bị ngắt trong khi đang tiến hành kết nối. Vui lòng thử lại.</p>">
+
+<!ENTITY netTimeout.title "Hết thời gian chờ kết nối">
+<!ENTITY netTimeout.longDesc "<p>Trang không phản hồi yêu cầu và trình duyệt đã ngừng chờ đợi.</p><ul><li>Có thể máy chủ đang bị nhiều truy xuất hoặc mất điện tạm thời? Hãy thử lại sau.</li><li>Bạn cũng không thể duyệt trang khác? Hãy kiểm tra kết nối mạng.</li><li>Máy tính hoặc mạng của bạn có được bảo vệ bởi tường lửa hoặc proxy? Thiết lập sai có thể ảnh hưởng việc duyệt Web.</li><li>Vẫn gặp vấn đề? Liên hệ quản trị mạng hoặc nhà cung cấp Internet của bạn để được trợ giúp.</li></ul>">
+
+<!ENTITY unknownProtocolFound.title "Giao thức không rõ">
+<!ENTITY unknownProtocolFound.longDesc "<p>Địa chỉ có sử dụng một giao thức (vd. <q>wxyz://</q>) mà trình duyệt không nhận ra nên không thể kết nối được.</p><ul><li>Có phải bạn đang muốn truy cập thông tin đa phương tiện hoặc các dịch vụ phi văn bản không? Hãy kiểm tra xem trang web này có yêu cầu tải thêm gì không.</li><li>Một số giao thức có thể yêu cầu phần mềm hay phần bổ trợ của hãng thứ ba trước khi trình duyệt có thể nhận dạng chúng.</li></ul>">
+
+<!ENTITY proxyConnectFailure.title "Máy chủ proxy từ chối kết nối">
+<!ENTITY proxyConnectFailure.longDesc "<p>Trình duyệt được cấu hình để dùng máy chủ proxy, nhưng proxy đã từ chối kết nối.</p><ul><li>Cấu hình proxy cho trình duyệt đã đúng chưa? Hãy kiểm tra thiết lập và thử lại.</li><li>Dịch vụ proxy có cho phép kết nối từ hệ thống mạng này?</li><li>Vẫn gặp vấn đề? Hỏi ý quản trị mạng hoặc nhà cung cấp Internet của bạn để được trợ giúp.</li></ul>">
+
+<!ENTITY proxyResolveFailure.title "Không tìm thấy máy chủ proxy">
+<!ENTITY proxyResolveFailure.longDesc "<p>Trình duyệt được cấu hình để dùng máy chủ proxy, nhưng proxy đã từ chối kết nối.</p><ul><li>Cấu hình proxy cho trình duyệt đã đúng chưa? Hãy kiểm tra thiết lập và thử lại.</li><li>Máy tính có kết nối vào một mạng đang hoạt động không?</li><li>Vẫn gặp vấn đề? Hỏi ý quản trị mạng hoặc nhà cung cấp Internet của bạn để được trợ giúp.</li></ul>">
+
+<!ENTITY redirectLoop.title "Có lặp vô hạn khi chuyển hướng">
+<!ENTITY redirectLoop.longDesc "<p>Trình duyệt đã ngừng tải yêu cầu này. Trang này đang chuyển hướng yêu cầu theo một cách mà sẽ không bao giờ hoàn tất.</p><ul><li>Có phải bạn đã vô hiệu hóa hoặc chặn các cookie mà trang này yêu cầu không?</li><li><em>CHÚ Ý</em>: Nếu việc chấp nhận cookie của trang không giải quyết được vấn đề, có vẻ như đây là vấn đề cấu hình máy chủ chứ không phải do máy bạn</li></ul>">
+
+<!ENTITY unknownSocketType.title "Phản hồi không phù hợp">
+<!ENTITY unknownSocketType.longDesc "<p>Trang phản hồi yêu cầu của mạng theo một cách không mong đợi và trình duyệt không thể tiếp tục.</p>">
+
+<!ENTITY nssFailure2.title "Không thể kết nối an toàn">
+<!ENTITY nssFailure2.longDesc2 "<p>Không thể hiển thị trang bạn muốn xem vì không thể kiểm tra tính xác thực của dữ liệu nhận được.</p><ul><li>Vui lòng liên hệ chủ trang web để báo với họ vấn đề này.</li></ul>">
+
+<!ENTITY nssBadCert.title "Không thể kết nối an toàn">
+<!ENTITY nssBadCert.longDesc2 "<ul> <li>Đây có thể là vấn đề ở phần cấu hình của máy chủ, hoặc có thể do ai đó đang cố mạo nhận là máy chủ.</li> <li>Nếu bạn đã từng kết nối tới máy chủ này thành công trong quá khứ, lỗi này có thể chỉ là tạm thời, và bạn có thể thử lại sau.</li> </ul>">
+
+<!ENTITY securityOverride.linkText "Hoặc bạn có thể thêm một ngoại lệ…">
+<!ENTITY securityOverride.warningContent "<p>Bạn không nên thêm một ngoại lệ nếu như bạn đang sử dụng một kết nối internet không đáng tin cậy hoặc bạn chưa quen với việc nhìn thấy cảnh báo ở máy chủ này.</p> <p>Nếu bạn vẫn muốn thêm một ngoại lệ cho trang web này, bạn có thể làm việc đó ở trong phần cài đặt mã hóa nâng cao.</p>">
+
+<!ENTITY cspBlocked.title "Bị chặn bởi Chính sách bảo mật nội dung">
+<!ENTITY cspBlocked.longDesc "<p>Trình duyệt bảo vệ trang này khỏi việc tải theo cách này bởi vì nó có một chính sách bảo mật nội dung không cho phép việc này.</p>">
+
+<!ENTITY xfoBlocked.title "Bị chặn bởi chính sách X-Frame-Options">
+<!ENTITY xfoBlocked.longDesc "<p>Trình duyệt đã ngăn trang này tải trong ngữ cảnh này vì trang có chính sách X-Frame-Options mà nó không cho phép.</p>">
+
+<!ENTITY corruptedContentErrorv2.title "Lỗi nội dung bị hỏng">
+<!ENTITY corruptedContentErrorv2.longDesc "<p>Không thể hiển thị được trang mà bạn muốn xem vì có lỗi trong truyền tải dữ liệu.</p><ul><li>Vui lòng liên hệ chủ trang web để báo họ về vấn đề này.</li></ul>">
+
+<!ENTITY remoteXUL.title "Remote XUL">
+<!ENTITY remoteXUL.longDesc "<p><ul><li>Vui lòng liên hệ với chủ trang web để báo với họ vấn đề này.</li></ul></p>">
+
+<!ENTITY inadequateSecurityError.title "Kết nối của bạn không an toàn">
+<!-- LOCALIZATION NOTE (inadequateSecurityError.longDesc) - Do not translate
+ "NS_ERROR_NET_INADEQUATE_SECURITY". -->
+<!ENTITY inadequateSecurityError.longDesc "<p><span class='hostname'></span> sử dụng công nghệ bảo mật lỗi thời và dễ bị tấn tông. Một kẻ tấn công có thể dễ dàng tiết lộ thông tin mà bạn nghĩ là an toàn. Người quản trị web sẽ cần phải sửa lỗi hệ thống máy chủ đầu tiên trước khi bạn có thể truy cập vào trang web.</p><p>Mã lỗi: NS_ERROR_NET_INADEQUATE_SECURITY</p>">
+
+<!ENTITY blockedByPolicy.title "Trang bị chặn">
+
+<!ENTITY networkProtocolError.title "Lỗi giao thức mạng">
+<!ENTITY networkProtocolError.longDesc "<p>Không thể hiển thị trang bạn đang cố xem vì lỗi trong giao thức mạng đã được phát hiện.</p><ul><li>Vui lòng liên hệ với chủ sở hữu trang web để thông báo cho họ về sự cố này.</li></ul>">
diff --git a/l10n-vi/dom/chrome/nsWebBrowserPersist.properties b/l10n-vi/dom/chrome/nsWebBrowserPersist.properties
new file mode 100644
index 0000000000..3e368c3c27
--- /dev/null
+++ b/l10n-vi/dom/chrome/nsWebBrowserPersist.properties
@@ -0,0 +1,17 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+readError=Không thể lưu %S, vì không thể đọc tập tin nguồn được.\n\nHãy thử lại sau, hoặc liên hệ quản trị máy chủ.
+writeError=Không thể lưu %S, vì một lỗi không rõ lí do đã xảy ra.\n\nHãy thử lưu vào một nơi khác.
+launchError=Không thể mở %S, vì một lỗi không rõ lí do đã xảy ra.\n\nHãy thử lưu vào ổ đĩa trước rồi sau đó mới mở tập tin.
+diskFull=Không đủ dung lượng trống trên ổ đĩa để lưu %S.\n\nXóa bớt những tập tin không cần thiết và thử lại, hoặc lưu vào nơi khác.
+readOnly=Không thể lưu %S, vì ổ đĩa, thư mục, hoặc tập tin đã được bảo vệ chống ghi.\n\nBật tính năng ghi cho đĩa và thử lại, hoặc lưu vào nơi khác.
+accessError=Không thể lưu %S, vì bạn không thể thay đổi nội dung của thư mục đó.\n\nThay đổi thuộc tính của thư mục và thử lại, hoặc lưu vào nơi khác.
+SDAccessErrorCardReadOnly=Không thể tải tập tin vì thẻ SD đang được sử dụng.
+SDAccessErrorCardMissing=Không thể tải tập tin vì không có thẻ SD.
+helperAppNotFound=Không thể mở %S, vì không có ứng dụng trợ giúp nào đi kèm với loại tập tin này. Thay đổi ứng dụng đi kèm trong tùy chọn hệ thống của bạn.
+noMemory=Không đủ bộ nhớ để thực hiện lệnh bạn yêu cầu.\n\nHãy đóng vài ứng dụng khác rồi thử lại.
+title=Đang tải xuống %S
+fileAlreadyExistsError=Không thể lưu %S, vì đã tồn tại một tập tin có cùng tên với thư mục '_files'.\n\nHãy thử lưu vào nơi khác.
+fileNameTooLongError=Không thể lưu %S, vì tên tập tin quá dài.\n\nHãy thử lưu với tên ngắn hơn.
diff --git a/l10n-vi/dom/chrome/plugins.properties b/l10n-vi/dom/chrome/plugins.properties
new file mode 100644
index 0000000000..cedbbcf33e
--- /dev/null
+++ b/l10n-vi/dom/chrome/plugins.properties
@@ -0,0 +1,18 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE:
+# Those strings are inserted into an HTML page, so all HTML characters
+# have to be escaped in a way that they show up correctly in HTML!
+
+# GMP Plugins
+gmp_license_info=Thông tin giấy phép
+gmp_privacy_info=Thông tin bảo mật
+
+openH264_name=Bộ giải mã OpenH264 được cung cấp bởi Cisco Systems, Inc.
+openH264_description2=Phần bổ trợ này được Mozilla cài đặt tự động để tương thích với quy chuẩn WebRTC và để cho phép tạo cuộc gọi WebRTC với các thiết bị yêu cầu sử dụng mã hóa H.264. Xin hãy truy cập http://www.openh264.org/ để xem mã nguồn của bộ giải mã và tìm hiểu thêm.
+
+cdm_description2=Phần bổ trợ này cho phép phát lại phương tiện được mã hóa tuân thủ theo thông số kỹ thuật của phần mở rộng phương tiện được mã hóa. Phương tiện được mã hóa thường được sử dụng bởi các trang web để bảo vệ chống sao chép nội dung phương tiện cao cấp. Truy cập https://www.w3.org/TR/encrypted-media/ để biết thêm thông tin về tiện ích mở rộng phương tiện được mã hóa.
+
+widevine_description=Mô-đun giải mã nội dung Widevine được cung cấp bởi Google.
diff --git a/l10n-vi/dom/chrome/security/caps.properties b/l10n-vi/dom/chrome/security/caps.properties
new file mode 100644
index 0000000000..9edc578dd2
--- /dev/null
+++ b/l10n-vi/dom/chrome/security/caps.properties
@@ -0,0 +1,9 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+CheckLoadURIError = Lỗi Bảo mật: Nội dung ở %S có thể không tải hoặc liên kết đến %S.
+CheckSameOriginError = Lỗi Bảo mật: Nội dung ở %S có thể không tải dữ liệu từ %S.
+ExternalDataError = Lỗi bảo mật: các nội dung tại %S đã cố gắng để tải %S, nhưng có thể không nạp dữ liệu bên ngoài khi được sử dụng như một hình ảnh.
+
+CreateWrapperDenied = Không được phép tạo bao bọc cho đối tượng hoặc lớp %S
+CreateWrapperDeniedForOrigin = Từ chối quyền hạn đối với việc <%2$S> tạo gói bọc cho đối tượng của class %1$S
diff --git a/l10n-vi/dom/chrome/security/csp.properties b/l10n-vi/dom/chrome/security/csp.properties
new file mode 100644
index 0000000000..4803f41be4
--- /dev/null
+++ b/l10n-vi/dom/chrome/security/csp.properties
@@ -0,0 +1,107 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# CSP Warnings:
+# LOCALIZATION NOTE (CSPViolation):
+# %1$S is the reason why the resource has not been loaded.
+CSPViolation = Các cài đặt của trang đã chặn tải tài nguyên: %1$S
+# LOCALIZATION NOTE (CSPViolationWithURI):
+# %1$S is the directive that has been violated.
+# %2$S is the URI of the resource which violated the directive.
+CSPViolationWithURI = Các cài đặt trang khác đã chặn tải tài nguyên ở %2$S (“%1$S”).
+# LOCALIZATION NOTE (CSPROViolation):
+# %1$S is the reason why the resource has not been loaded.
+CSPROViolation = Đã xảy ra vi phạm đối với chính sách CSP chỉ báo cáo (“%1$S”). Hành vi đã được cho phép và một báo cáo CSP đã được gửi.
+# LOCALIZATION NOTE (CSPROViolationWithURI):
+# %1$S is the directive that has been violated.
+# %2$S is the URI of the resource which violated the directive.
+CSPROViolationWithURI = Các cài đặt của trang đã quan sát việc tải tài nguyên ở %2$S (“%1$S”). Một báo cáo CSP đang được gửi.
+# LOCALIZATION NOTE (triedToSendReport):
+# %1$S is the URI we attempted to send a report to.
+triedToSendReport = Gửi báo cáo đến URI không hợp lệ: "%1$S"
+# LOCALIZATION NOTE (couldNotParseReportURI):
+# %1$S is the report URI that could not be parsed
+couldNotParseReportURI = không thể phân tích URI của báo cáo: %1$S
+# LOCALIZATION NOTE (couldNotProcessUnknownDirective):
+# %1$S is the unknown directive
+couldNotProcessUnknownDirective = Không thể xử lý directive không rõ '%1$S'
+# LOCALIZATION NOTE (ignoringUnknownOption):
+# %1$S is the option that could not be understood
+ignoringUnknownOption = Bỏ qua tùy chọn không xác định %1$S
+# LOCALIZATION NOTE (ignoringDuplicateSrc):
+# %1$S defines the duplicate src
+ignoringDuplicateSrc = Bỏ qua nguồn trùng lặp %1$S
+# LOCALIZATION NOTE (ignoringSrcFromMetaCSP):
+# %1$S defines the ignored src
+ignoringSrcFromMetaCSP = Bỏ qua nguồn ‘%1$S’, (Không được hỗ trợ khi được gửi qua phần tử meta).
+# LOCALIZATION NOTE (ignoringSrcWithinScriptStyleSrc):
+# %1$S is the ignored src
+# script-src and style-src are directive names and should not be localized
+ignoringSrcWithinScriptStyleSrc = Bỏ qua “%1$S” trong script-src hoặc style-src: nonce-source hoặc hash-source đã được chỉ định
+# LOCALIZATION NOTE (ignoringSrcForStrictDynamic):
+# %1$S is the ignored src
+# script-src, as well as 'strict-dynamic' should not be localized
+ignoringSrcForStrictDynamic = Bỏ qua “%1$S” trong script-src: ‘strict-dynamic’ đã được chỉ định
+# LOCALIZATION NOTE (ignoringStrictDynamic):
+# %1$S is the ignored src
+ignoringStrictDynamic = Bỏ qua nguồn “%1$S” (Chỉ được hỗ trợ trong script-src).
+# LOCALIZATION NOTE (strictDynamicButNoHashOrNonce):
+# %1$S is the csp directive that contains 'strict-dynamic'
+# 'strict-dynamic' should not be localized
+strictDynamicButNoHashOrNonce = Từ khóa ‘strict-dynamic’ trong “%1$S” không có mã khai báo hợp lệ hoặc hash có thể chặn tất cả các tập lệnh tải
+# LOCALIZATION NOTE (reportURInotHttpsOrHttp2):
+# %1$S is the ETLD of the report URI that is not HTTP or HTTPS
+reportURInotHttpsOrHttp2 = URI báo cáo (%1$S) phải là URI HTTP hoặc HTTPS.
+# LOCALIZATION NOTE (reportURInotInReportOnlyHeader):
+# %1$S is the ETLD of the page with the policy
+reportURInotInReportOnlyHeader = Trang web này (%1$S) có chính sách Chỉ báo cáo mà không có URI báo cáo. CSP sẽ không chặn và không thể báo cáo vi phạm chính sách này.
+# LOCALIZATION NOTE (failedToParseUnrecognizedSource):
+# %1$S is the CSP Source that could not be parsed
+failedToParseUnrecognizedSource = Lỗi phân tách nguồn chưa xác định %1$S
+# LOCALIZATION NOTE (upgradeInsecureRequest):
+# %1$S is the URL of the upgraded request; %2$S is the upgraded scheme.
+upgradeInsecureRequest = Nâng cấp yêu cầu không an toàn ‘%1$S’ để sử dụng ‘%2$S’
+# LOCALIZATION NOTE (ignoreSrcForDirective):
+ignoreSrcForDirective = Bỏ qua srcs cho chỉ thị ‘%1$S’
+# LOCALIZATION NOTE (hostNameMightBeKeyword):
+# %1$S is the hostname in question and %2$S is the keyword
+hostNameMightBeKeyword = Giải thích %1$S dưới dạng tên máy chủ, không phải từ khóa. Nếu bạn dự định đây là một từ khóa, hãy sử dụng ‘%2$S’ (được gói trong các trích dẫn đơn).
+# LOCALIZATION NOTE (notSupportingDirective):
+# directive is not supported (e.g. 'reflected-xss')
+notSupportingDirective = Không hỗ trợ chỉ thị ‘%1$S’. Chỉ thị và giá trị sẽ bị bỏ qua.
+# LOCALIZATION NOTE (blockAllMixedContent):
+# %1$S is the URL of the blocked resource load.
+blockAllMixedContent = Đang chặn yêu cầu không an toàn ‘%1$S’.
+# LOCALIZATION NOTE (ignoringDirectiveWithNoValues):
+# %1$S is the name of a CSP directive that requires additional values
+ignoringDirectiveWithNoValues = Bỏ qua ‘%1$S’ vì nó không chứa bất kỳ tham số nào.
+# LOCALIZATION NOTE (ignoringReportOnlyDirective):
+# %1$S is the directive that is ignored in report-only mode.
+ignoringReportOnlyDirective = Bỏ qua thuộc tính sandbox khi gửi với chính sách ‘%1$S’
+# LOCALIZATION NOTE (IgnoringSrcBecauseOfDirective):
+# %1$S is the name of the src that is ignored.
+# %2$S is the name of the directive that causes the src to be ignored.
+IgnoringSrcBecauseOfDirective=Bỏ qua ‘%1$S’ vì chỉ thị ‘%2$S’.
+
+# LOCALIZATION NOTE (IgnoringSourceWithinDirective):
+# %1$S is the ignored src
+# %2$S is the directive which supports src
+IgnoringSourceWithinDirective = Bỏ qua nguồn “%1$S” (Không được hỗ trợ trong ‘%2$S’).
+
+# CSP Errors:
+# LOCALIZATION NOTE (couldntParseInvalidSource):
+# %1$S is the source that could not be parsed
+couldntParseInvalidSource = Không thể phân tích nguồn %1$S không hợp lệ
+# LOCALIZATION NOTE (couldntParseInvalidHost):
+# %1$S is the host that's invalid
+couldntParseInvalidHost = Không thể phân tích máy chủ %1$S không hợp lệ
+# LOCALIZATION NOTE (couldntParsePort):
+# %1$S is the string source
+couldntParsePort = Không thể phân tích cổng trong %1$S
+# LOCALIZATION NOTE (duplicateDirective):
+# %1$S is the name of the duplicate directive
+duplicateDirective = Xác định %1$S directive trùng. Tất cả trừ bản đầu tiên sẽ được bỏ qua.
+# LOCALIZATION NOTE (couldntParseInvalidSandboxFlag):
+# %1$S is the option that could not be understood
+couldntParseInvalidSandboxFlag = Không thể phân tích cú pháp gắn cờ hộp cát không hợp lệ ‘%1$S’
diff --git a/l10n-vi/dom/chrome/security/security.properties b/l10n-vi/dom/chrome/security/security.properties
new file mode 100644
index 0000000000..dcb1cc0b69
--- /dev/null
+++ b/l10n-vi/dom/chrome/security/security.properties
@@ -0,0 +1,154 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Mixed Content Blocker
+# LOCALIZATION NOTE: "%1$S" is the URI of the blocked mixed content resource
+BlockMixedDisplayContent = Đã chặn việc tải các nội dung bị trộn lẫn thụ động từ "%1$S"
+BlockMixedActiveContent = Đã chặn việc tải các nội dung bị trộn lẫn chủ động từ "%1$S"
+
+# CORS
+# LOCALIZATION NOTE: Do not translate "Access-Control-Allow-Origin", Access-Control-Allow-Credentials, Access-Control-Allow-Methods, Access-Control-Allow-Headers
+CORSDisabled=Yêu cầu Cross-Origin đã bị chặn: Same Origin Policy không cho phép đọc tài nguyên từ xa ở %1$S. (Lý do: CORS bị vô hiệu hóa).
+CORSDidNotSucceed=Yêu cầu Cross-Origin đã bị chặn: Same Origin Policy không cho phép đọc tài nguyên từ xa ở %1$S. (Lý do: Yêu cầu CORS không thành công).
+CORSOriginHeaderNotAdded=Yêu cầu Cross-Origin đã bị chặn: Same Origin Policy không cho phép đọc tài nguyên từ xa ở %1$S. (Lý do: Không thể thêm CORS header ‘Origin’).
+CORSExternalRedirectNotAllowed=Yêu cầu Cross-Origin đã bị chặn: Same Origin Policy không cho phép đọc tài nguyên từ xa ở %1$S. (Lý do: CORS yêu cầu chuyển hướng bên ngoài không được cho phép).
+CORSRequestNotHttp=Yêu cầu Cross-Origin đã bị chặn: Same Origin Policy không cho phép đọc tài nguyên từ xa ở %1$S. (Lý do: CORS yêu cầu không http).
+CORSMissingAllowOrigin=Yêu cầu Cross-Origin đã bị chặn: Same Origin Policy không cho phép đọc tài nguyên từ xa ở %1$S. (Lý do: Thiếu CORS header ‘Access-Control-Allow-Origin’).
+CORSMultipleAllowOriginNotAllowed=Yêu cầu Cross-Origin đã bị chặn: Same Origin Policy không cho phép đọc tài nguyên từ xa ở %1$S. (Lý do: Nhiều CORS header ‘Access-Control-Allow-Origin’ không được cho phép).
+CORSAllowOriginNotMatchingOrigin=Yêu cầu Cross-Origin đã bị chặn: Same Origin Policy không cho phép đọc tài nguyên từ xa ở %1$S. (Lý do: CORS header ‘Access-Control-Allow-Origin’ không khớp với ‘%2$S’).
+CORSNotSupportingCredentials=Yêu cầu Cross-Origin đã bị chặn: Same Origin Policy không cho phép đọc tài nguyên từ xa ở %1$S. (Lý do: Chứng chỉ không được hỗ trợ nếu CORS header ‘Access-Control-Allow-Origin’ là ‘*’).
+CORSMethodNotFound=Yêu cầu Cross-Origin đã bị chặn: Same Origin Policy không cho phép đọc tài nguyên từ xa ở %1$S. (Lý do: Không tìm thấy phương thức trong CORS header ‘Access-Control-Allow-Methods’).
+CORSMissingAllowCredentials=Yêu cầu Cross-Origin đã bị chặn: Same Origin Policy không cho phép đọc tài nguyên từ xa ở %1$S. (Lý do: phải là giá trị ‘true’ trong CORS header ‘Access-Control-Allow-Credentials’).
+CORSPreflightDidNotSucceed2=Yêu cầu Cross-Origin đã bị chặn: Same Origin Policy không cho phép đọc tài nguyên từ xa ở %1$S. (Lý do: CORS preflight response không thành công).
+CORSInvalidAllowMethod=Yêu cầu Cross-Origin đã bị chặn: Same Origin Policy không cho phép đọc tài nguyên từ xa ở %1$S. (Lý do: token ‘%2$S’ không hợp lệ trong CORS header ‘Access-Control-Allow-Methods’).
+CORSInvalidAllowHeader=Yêu cầu Cross-Origin đã bị chặn: Same Origin Policy không cho phép đọc tài nguyên từ xa ở %1$S. (Lý do: token ‘%2$S’ không hợp lệ trong CORS header ‘Access-Control-Allow-Headers’).
+CORSMissingAllowHeaderFromPreflight2=Yêu cầu Cross-Origin đã bị chặn: Same Origin Policy không cho phép đọc tài nguyên từ xa ở %1$S. (Lý do: header ‘%2$S’ không được phép theo header ‘Access-Control-Allow-Headers’ từ CORS preflight response).
+
+# LOCALIZATION NOTE: Do not translate "Strict-Transport-Security", "HSTS", "max-age" or "includeSubDomains"
+STSUnknownError=Strict-Transport-Security: Xảy ra lỗi không xác định khi xử lý header được chỉ định bởi trang web.
+STSUntrustworthyConnection=Strict-Transport-Security: Kết nối đến trang web không đáng tin cậy, vì vậy header được chỉ định đã bị bỏ qua.
+STSCouldNotParseHeader=Strict-Transport-Security: Trang web đã chỉ định một header không thể được phân tích cú pháp thành công.
+STSNoMaxAge=Strict-Transport-Security: Trang web đã chỉ định một header không bao gồm chỉ thị ‘max-age’.
+STSMultipleMaxAges=Strict-Transport-Security: Trang web đã chỉ định một header bao gồm nhiều chỉ thị ‘max-age’.
+STSInvalidMaxAge=Strict-Transport-Security: Trang web đã chỉ định một header bao gồm chỉ thị ‘max-age’ không hợp lệ.
+STSMultipleIncludeSubdomains=Strict-Transport-Security: Trang web đã chỉ định một header bao gồm nhiều chỉ thị ‘includeSubDomains’.
+STSInvalidIncludeSubdomains=Strict-Transport-Security: Trang web đã chỉ định một header bao gồm một chỉ thị ‘includeSubDomains’ không hợp lệ.
+STSCouldNotSaveState=Strict-Transport-Security: Đã xảy ra lỗi khi lưu ý trang web là máy chủ Strict-Transport-Security.
+
+# LOCALIZATION NOTE: Do not translate "SHA-1"
+SHA1Sig=Trang web này sử dụng chứng chỉ SHA-1; nó khuyên bạn nên sử dụng các chứng chỉ với thuật toán chữ ký sử dụng hash mạnh hơn SHA-1.
+InsecurePasswordsPresentOnPage=Các trường mật khẩu hiện trên trang (http://) không an toàn. Đây là một rủi ro bảo mật cho phép đánh cắp thông tin đăng nhập của người dùng.
+InsecureFormActionPasswordsPresent=Các trường mật khẩu có trong một biểu mẫu với biểu mẫu hành động (http://) không an toàn. Đây là một rủi ro bảo mật cho phép đánh cắp thông tin đăng nhập của người dùng.
+InsecurePasswordsPresentOnIframe=Các trường mật khẩu hiện trên iframe (http://) không an toàn. Đây là một rủi ro bảo mật cho phép đánh cắp thông tin đăng nhập của người dùng.
+# LOCALIZATION NOTE: "%1$S" is the URI of the insecure mixed content resource
+LoadingMixedActiveContent2=Đang tải nội dung hoạt động hỗn hợp (không an toàn) “%1$S” trên một trang an toàn
+LoadingMixedDisplayContent2=Đang tải nội dung hiển thị hỗn hợp (không an toàn) “%1$S” trên một trang an toàn
+LoadingMixedDisplayObjectSubrequestDeprecation=Tải nội dung hỗn hợp (không an toàn) “%1$S” trong một bổ trợ trên trang bảo mật không được khuyến khích và sẽ bị chặn trong tương lai.
+# LOCALIZATION NOTE: "%S" is the URI of the insecure mixed content download
+MixedContentBlockedDownload = Đã chặn tải xuống nội dung không an toàn “%S”.
+
+# LOCALIZATION NOTE: Do not translate "allow-scripts", "allow-same-origin", "sandbox" or "iframe"
+BothAllowScriptsAndSameOriginPresent=Một iframe có cả allow-scripts và allow-same-origin cho thuộc tính sandbox của nó có thể loại bỏ hộp cát của nó.
+
+# LOCALIZATION NOTE: Do not translate "allow-top-navigation-by-user-activation", "allow-top-navigation", "sandbox" or "iframe"
+BothAllowTopNavigationAndUserActivationPresent=Một iframe có cả hai allow-top-navigation và allow-top-navigation-by-user-activation cho thuộc tính sandbox của nó sẽ cho phép điều hướng nội dung đến bối cảnh duyệt cấp cao nhất.
+
+# Sub-Resource Integrity
+# LOCALIZATION NOTE: Do not translate "script" or "integrity". "%1$S" is the invalid token found in the attribute.
+MalformedIntegrityHash=Phần tử script có hash không đúng định dạng trong thuộc tính integrity của nó: “%1$S”. Định dạng đúng là “<hash algorithm>-<hash value>”.
+# LOCALIZATION NOTE: Do not translate "integrity"
+InvalidIntegrityLength=Hash chứa trong thuộc tính integrity có độ dài không đúng.
+# LOCALIZATION NOTE: Do not translate "integrity"
+InvalidIntegrityBase64=Không thể giải mã hash chứa trong thuộc tính integrity.
+# LOCALIZATION NOTE: Do not translate "integrity". "%1$S" is the type of hash algorithm in use (e.g. "sha256").
+IntegrityMismatch=Không có giá trị hash nào của “%1$S” trong thuộc tính integrity khớp với nội dung của nguồn phụ.
+# LOCALIZATION NOTE: "%1$S" is the URI of the sub-resource that cannot be protected using SRI.
+IneligibleResource=“%1$S” không đủ điều kiện để kiểm tra tính toàn vẹn vì nó không kích hoạt CORS cũng không cùng nguồn gốc.
+# LOCALIZATION NOTE: Do not translate "integrity". "%1$S" is the invalid hash algorithm found in the attribute.
+UnsupportedHashAlg=Thuật toán hash không được hỗ trợ trong thuộc tính integrity: “%1$S”
+# LOCALIZATION NOTE: Do not translate "integrity"
+NoValidMetadata=Thuộc tính integrity không chứa bất kỳ siêu dữ liệu (metadata) hợp lệ.
+
+# LOCALIZATION NOTE: Do not translate "RC4".
+WeakCipherSuiteWarning=Trang web này sử dụng mật mã RC4 để mã hóa, nó không còn dùng nữa và không an toàn.
+
+DeprecatedTLSVersion2=Trang web này sử dụng phiên bản TLS không dùng nữa. Vui lòng nâng cấp lên TLS 1.2 hoặc 1.3.
+
+#XCTO: nosniff
+# LOCALIZATION NOTE: Do not translate "X-Content-Type-Options: nosniff".
+MimeTypeMismatch2=Tài nguyên từ “%1$S” bị chặn do kiểu MIME (“%2$S”) không khớp (X-Content-Type-Options: nosniff).
+# LOCALIZATION NOTE: Do not translate "X-Content-Type-Options" and also do not translate "nosniff".
+XCTOHeaderValueMissing=Cảnh báo X-Content-Type-Options header: giá trị là “%1$S”; ý của bạn là gửi “nosniff”?
+# LOCALIZATION NOTE: Do not translate "X-Content-Type-Options" and also do not translate "nosniff".
+XTCOWithMIMEValueMissing=Tài nguyên từ “%1$S” không được hiển thị do loại MIME không xác định, không chính xác hoặc bị thiếu (X-Content-Type-Options: nosniff).
+
+BlockScriptWithWrongMimeType2=Script từ “%1$S” đã bị chặn vì kiểu MIME (“%2$S”) không được cho phép.
+WarnScriptWithWrongMimeType=Script từ “%1$S” đã được tải ngay cả khi kiểu MIME của nó (“%2$S”) không phải là kiểu MIME JavaScript hợp lệ.
+# LOCALIZATION NOTE: Do not translate "importScripts()"
+BlockImportScriptsWithWrongMimeType=Đã chặn việc tải script từ “%1$S” bằng importScripts() do kiểu MIME (“%2$S”) không được cho phép.
+BlockWorkerWithWrongMimeType=Đã chặn việc tải trình làm việc từ “%1$S” do kiểu MIME (“%2$S”) không được phép.
+BlockModuleWithWrongMimeType=Đã chặn việc tải mô-đun từ “%1$S” do kiểu MIME (“%2$S”) không được cho phép.
+
+# LOCALIZATION NOTE: Do not translate "data: URI".
+BlockTopLevelDataURINavigation=Điều hướng đến toplevel data: URI không được cho phép (Chặn tải của: “%1$S”)
+BlockSubresourceRedirectToData=Chuyển hướng đến data: URI không an toàn không được cho phép (Chặn tải của: “%1$S”)
+
+BlockSubresourceFTP=Không cho phép tải xuống nguồn phụ FTP trong trang http(s) (Chặn tải của: “%1$S”)
+
+RestrictBrowserEvalUsage=eval() và eval-like không được phép sử dụng trong quy trình cha hoặc trong bối cảnh hệ thống (Đã chặn sử dụng trong “%1$S”)
+
+# LOCALIZATION NOTE (BrowserUpgradeInsecureDisplayRequest):
+# %1$S is the browser name "brandShortName"; %2$S is the URL of the upgraded request; %1$S is the upgraded scheme.
+BrowserUpgradeInsecureDisplayRequest = %1$S đang nâng cấp yêu cầu hiển thị không an toàn ‘%2$S’ để sử dụng ‘%3$S’
+
+# LOCALIZATION NOTE (MixedContentAutoUpgrade):
+# %1$S is the URL of the upgraded request; %2$S is the upgraded scheme.
+MixedContentAutoUpgrade=Nâng cấp yêu cầu hiển thị không an toàn ‘%1$S’ để sử dụng ‘%2$S’
+# LOCALIZATION NOTE (RunningClearSiteDataValue):
+# %S is the URI of the resource whose data was cleaned up
+RunningClearSiteDataValue=Clear-Site-Data header buộc phải dọn sạch dữ liệu của “%S”.
+UnknownClearSiteDataValue=Clear-Site-Data header được tìm thấy. Giá trị không xác định “%S”.
+
+# Reporting API
+ReportingHeaderInvalidJSON=Header báo cáo: giá trị JSON nhận được không hợp lệ.
+ReportingHeaderInvalidNameItem=Header báo cáo: tên cho nhóm không hợp lệ.
+ReportingHeaderDuplicateGroup=Header báo cáo: bỏ qua nhóm trùng lặp có tên là “%S”.
+ReportingHeaderInvalidItem=Header báo cáo: bỏ qua mục không hợp lệ có tên là “%S”.
+ReportingHeaderInvalidEndpoint=Header báo cáo: bỏ qua điểm cuối không hợp lệ cho mục có tên là “%S”.
+# LOCALIZATION NOTE(ReportingHeaderInvalidURLEndpoint): %1$S is the invalid URL, %2$S is the group name
+ReportingHeaderInvalidURLEndpoint=Header báo cáo: bỏ qua điểm cuối URL không hợp lệ “%1$S” cho mục có tên là “%2$S”.
+
+FeaturePolicyUnsupportedFeatureName=Chính sách tính năng: Bỏ qua tên tính năng không được hỗ trợ “%S”.
+# TODO: would be nice to add a link to the Feature-Policy MDN documentation here. See bug 1449501
+FeaturePolicyInvalidEmptyAllowValue= Chính sách tính năng: Bỏ qua danh sách cho phép tính năng trống: “%S”.
+# TODO: would be nice to add a link to the Feature-Policy MDN documentation here. See bug 1449501
+FeaturePolicyInvalidAllowValue=Chính sách tính năng: Bỏ qua giá trị cho phép không được hỗ trợ “%S”.
+
+# LOCALIZATION NOTE: "%1$S" is the limitation length (bytes) of referrer URI, "%2$S" is the origin of the referrer URI.
+ReferrerLengthOverLimitation=Tiêu đề giới thiệu HTTP: Độ dài vượt quá giới hạn“%1$S” byte - sẽ tách đầu giới thiệu làm gốc: “%2$S”
+# LOCALIZATION NOTE: "%1$S" is the limitation length (bytes) of referrer URI, "%2$S" is the origin of the referrer URI.
+ReferrerOriginLengthOverLimitation=Tiêu đề giới thiệu HTTP: Độ dài của nguồn gốc trong giới thiệu vượt quá giới hạn “%1$S” byte - sẽ loại bỏ giới thiệu với nguồn gốc “%2$S”.
+
+# X-Frame-Options
+# LOCALIZATION NOTE(XFrameOptionsInvalid): %1$S is the header value, %2$S is frame URI. Do not translate "X-Frame-Options".
+XFrameOptionsInvalid = Đã tìm thấy tiêu đề X-Frame-Options không hợp lệ khi tải “%2$S”: “%1$S” không phải là một chỉ thị hợp lệ.
+# LOCALIZATION NOTE(XFrameOptionsDeny): %1$S is the header value, %2$S is frame URI and %3$S is the parent document URI. Do not translate "X-Frame-Options".
+XFrameOptionsDeny=Quá trình tải của “%2$S” vào một frame bị từ chối bởi chỉ thị “X-Frame-Options“ đã được đặt thành “%1$S“.
+
+# HTTPS-Only Mode
+# LOCALIZATION NOTE: %1$S is the URL of the upgraded request; %2$S is the upgraded scheme.
+HTTPSOnlyUpgradeRequest = Nâng cấp yêu cầu không an toàn “%1$S” để sử dụng “%2$S”.
+# LOCALIZATION NOTE: %1$S is the URL of request.
+HTTPSOnlyNoUpgradeException = Do sự miễn trừ, yêu cầu không an toàn “%1$S” đã không được nâng cấp.
+# LOCALIZATION NOTE: %1$S is the URL of the failed request; %2$S is an error-code.
+HTTPSOnlyFailedRequest = Yêu cầu không an toàn “%1$S” không thể nâng cấp. (%2$S)
+
+# LOCALIZATION NOTE: %S is the URL of the blocked request;
+IframeSandboxBlockedDownload = Tải xuống của “%S” đã bị chặn do iframe đang kích hoạt đã đặt cờ thành sandbox.
+
+# Sanitizer API
+# LOCALIZATION NOTE: Please do not localize "DocumentFragment". It's the name of an API.
+SanitizerRcvdNoInput = Dữ liệu trống hoặc không có đầu vào. Đang trả lại một DocumentFragment trống.
+# LOCALIZATION NOTE: "Sanitizer" is the name of the API. Please do not localize.
+SanitizerOptionsDiscarded = Các tùy chọn cho hàm tạo Sanitizer chưa được hỗ trợ. Xin lưu ý rằng đây là hành vi thử nghiệm.
diff --git a/l10n-vi/dom/chrome/svg/svg.properties b/l10n-vi/dom/chrome/svg/svg.properties
new file mode 100644
index 0000000000..6cdaff7151
--- /dev/null
+++ b/l10n-vi/dom/chrome/svg/svg.properties
@@ -0,0 +1,5 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+AttributeParseWarning=Giá trị không mong đợi %2$S đang phân tích thuộc tính %1$S.
diff --git a/l10n-vi/dom/chrome/xml/prettyprint.dtd b/l10n-vi/dom/chrome/xml/prettyprint.dtd
new file mode 100644
index 0000000000..7cb1571c50
--- /dev/null
+++ b/l10n-vi/dom/chrome/xml/prettyprint.dtd
@@ -0,0 +1,5 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY xml.nostylesheet "Tập tin XML có vẻ như không có thông tin kiểu nào đi kèm với nó. Cấu trúc tài liệu được hiển thị bên dưới.">
diff --git a/l10n-vi/dom/chrome/xslt/xslt.properties b/l10n-vi/dom/chrome/xslt/xslt.properties
new file mode 100644
index 0000000000..dcf5a1f46f
--- /dev/null
+++ b/l10n-vi/dom/chrome/xslt/xslt.properties
@@ -0,0 +1,39 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+1 = Thất bại khi phân tích một stylesheet XSLT.
+2 = Thất bại khi phân tích một biểu thức XPath.
+3 =
+4 = Thất bại khi chuyển đổi XSLT.
+5 = Sai hàm XSLT/XPath.
+6 = Bảng kiểu XSLT (có thể) chứa đệ qui.
+7 = Giá trị thuộc tính không hợp lệ trong XSLT 1.0.
+8 = Cần một biểu thức XPath để trả lại một NodeSet.
+9 = Chuyển đổi XSLT bị hủy bỏ bởi <xsl:message>.
+10 = Một lỗi mạng đã xảy ra khi tải một bảng kiểu XSLT:
+11 = Một stylesheet XSLT không chứa kiểu mime XML:
+12 = Một stylesheet XSLT nhập trực tiếp hoặc gián tiếp hoặc chứa chính nó:
+13 = Nột hàm XPath được gọi với số đối số sai.
+14 = Một hàm mở rộng XPath được gọi.
+15 = Phân tích XPath thất bại: cần ')':
+16 = Phân tích XPath thất bại: sai trục:
+17 = Phân tích XPath thất bại: cần kiểm tra Tên hoặc Nodetype:
+18 = Phân tích XPath thất bại: cần ']':
+19 = Phân tích XPath thất bại: sai tên biến:
+20 = Phân tích XPath thất bại: bất ngờ kết thúc biểu thức:
+21 = Phân tích XPath thất bại: cần toán tử:
+22 = Phân tích XPath thất bại: chưa đóng kí tự sai:
+23 = Phân tích XPath thất bại: thừa ':':
+24 = Phân tích XPath thất bại: thừa '!', phủ định là not():
+25 = Phân tích XPath thất bại: tìm thấy kí tự không hợp lệ:
+26 = Phân tích XPath thất bại: cần toán tử nhị phân:
+27 = Một stylesheet XSLT đã bị chặn vì lí do bảo mật.
+28 = Định lượng biểu thức bất hợp lệ.
+29 = Dấu ngoặc ôm không cân bằng.
+30 = Đang tạo một phần tử với QName bất hợp lệ.
+31 = Gắn kết biến che đậy gắn kết biến trong cùng khuôn mẫu.
+32 = Không có quyền gọi hàm chính.
+
+LoadingError = Gặp lỗi khi tải stylesheet: %S
+TransformError = Gặp lỗi khi chuyển đổi XSLT: %S
diff --git a/l10n-vi/dom/dom/media.ftl b/l10n-vi/dom/dom/media.ftl
new file mode 100644
index 0000000000..0a3e4ef03e
--- /dev/null
+++ b/l10n-vi/dom/dom/media.ftl
@@ -0,0 +1,5 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+mediastatus-fallback-title = { -brand-short-name } đang phát đa phương tiện
diff --git a/l10n-vi/editor/ui/chrome/composer/editingOverlay.dtd b/l10n-vi/editor/ui/chrome/composer/editingOverlay.dtd
new file mode 100644
index 0000000000..2a0a5cc93e
--- /dev/null
+++ b/l10n-vi/editor/ui/chrome/composer/editingOverlay.dtd
@@ -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/. -->
+
+<!-- File menu items -->
+<!ENTITY openFileCmd.label "Mở tập tin…">
+<!ENTITY openFileCmd.accesskey "O">
+<!ENTITY openFileCmd.key "O">
+<!ENTITY openRemoteCmd.label "Mở địa chỉ web…">
+<!ENTITY openRemoteCmd.accesskey "L">
+<!ENTITY openRemoteCmd.key "L">
+<!ENTITY fileRecentMenu.label "Trang gần đây">
+<!ENTITY fileRecentMenu.accesskey "R">
+<!ENTITY saveCmd.label "Lưu">
+<!ENTITY saveCmd.accesskey "S">
+<!ENTITY saveAsCmd.label "Lưu với…">
+<!ENTITY saveAsCmd.accesskey "A">
+<!ENTITY saveAsChangeEncodingCmd2.label "Lưu và thay đổi bảng mã văn bản">
+<!ENTITY saveAsChangeEncodingCmd2.accesskey "E">
+<!ENTITY publishCmd.label "Xuất bản">
+<!ENTITY publishCmd.accesskey "b">
+<!ENTITY publishCmd.key "S">
+<!ENTITY publishAsCmd.label "Xuất bản dưới dạng…">
+<!ENTITY publishAsCmd.accesskey "h">
+<!ENTITY fileRevert.label "Hoàn nguyên">
+<!ENTITY fileRevert.accesskey "t">
+
+<!-- Edit menu items -->
+<!ENTITY publishSettings.label "Cài đặt xuất bản trang web…">
+<!ENTITY publishSettings.accesskey "b">
+
+<!-- Toolbar buttons/items -->
+<!ENTITY newToolbarCmd.label "Mới">
+<!ENTITY newToolbarCmd.tooltip "Tạo trang Composer mới">
+<!ENTITY openToolbarCmd.label "Mở">
+<!ENTITY openToolbarCmd.tooltip "Mở tập tin trên máy">
+<!ENTITY saveToolbarCmd.tooltip "Lưu tập tin vào máy">
+<!ENTITY publishToolbarCmd.tooltip "Tải tập tin lên máy khác">
+<!ENTITY printToolbarCmd.label "In">
+<!ENTITY printToolbarCmd.tooltip "In trang này">
diff --git a/l10n-vi/editor/ui/chrome/composer/editor.dtd b/l10n-vi/editor/ui/chrome/composer/editor.dtd
new file mode 100644
index 0000000000..2858826aff
--- /dev/null
+++ b/l10n-vi/editor/ui/chrome/composer/editor.dtd
@@ -0,0 +1,67 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- Window title -->
+<!-- LOCALIZATION NOTE (editorWindow.titlemodifier): DONT_TRANSLATE -->
+<!ENTITY editorWindow.titlemodifier "Composer">
+<!ENTITY editorWindow.titlemodifiermenuseparator " - ">
+
+<!-- Menu items: the . means that the menu item isn't implemented yet -->
+
+<!-- Toolbar-only items -->
+<!ENTITY compositionToolbar.tooltip "Thanh công cụ thành phần">
+<!ENTITY previewToolbarCmd.label "Duyệt">
+<!ENTITY previewToolbarCmd.tooltip "Tải trang này trong trình duyệt">
+
+<!-- File menu items -->
+<!ENTITY exportToTextCmd.label "Xuất ra văn bản…">
+<!ENTITY exportToTextCmd.accesskey "x">
+<!ENTITY previewCmd.label "Duyệt trang">
+<!ENTITY previewCmd.accesskey "w">
+<!ENTITY sendPageCmd.label "Gửi trang…">
+<!ENTITY sendPageCmd.accesskey "d">
+
+<!-- View menu items -->
+<!ENTITY compositionToolbarCmd.label "Thanh công cụ thành phần">
+<!ENTITY compositionToolbarCmd.accesskey "C">
+<!ENTITY formattingToolbarCmd.label "Thanh công cụ định dạng">
+<!ENTITY formattingToolbarCmd.accesskey "F">
+<!ENTITY editmodeToolbarCmd.label "Sửa thanh công cụ kiểu cách">
+<!ENTITY editmodeToolbarCmd.accesskey "E">
+
+<!-- Format menu items -->
+<!ENTITY formatMenu.label "Định dạng">
+<!ENTITY formatMenu.accesskey "o">
+<!ENTITY grid.label "Lưới định vị">
+<!ENTITY grid.accesskey "t">
+<!ENTITY pageProperties.label "Tiêu đề trang và thuộc tính…">
+<!ENTITY pageProperties.accesskey "g">
+
+<!-- Tools menu items -->
+<!ENTITY validateCmd.label "Phê chuẩn HTML">
+<!ENTITY validateCmd.accesskey "V">
+
+<!-- Display Mode toolbar and View menu items -->
+<!ENTITY NormalModeTab.label "Bình thường">
+<!ENTITY NormalMode.label "Chế độ chỉnh sửa bình thường">
+<!ENTITY NormalMode.accesskey "N">
+<!ENTITY NormalMode.tooltip "Hiển thị đường viền bảng và neo được đặt tên">
+<!ENTITY AllTagsModeTab.label "Thẻ HTML">
+<!ENTITY AllTagsMode.label "Thẻ HTML">
+<!ENTITY AllTagsMode.accesskey "a">
+<!ENTITY AllTagsMode.tooltip "Hiện biểu tượng cho tất cả thẻ HTML">
+<!-- LOCALIZATION NOTE: (HTMLSourceModeTab.dir, HTMLSourceModeTab.label)
+ Do NOT translate text for 'HTMLSourceModeTab.dir', use latin "ltr" if
+ you want the <html> image to left of the 'HTMLSourceModeTab.label' text,
+ or use latin "rtl" if you want this image to the right of text. You do
+ not need to include HTML in the label 'HTMLSourceModeTab.label' -->
+<!ENTITY HTMLSourceModeTab.dir "ltr">
+<!ENTITY HTMLSourceModeTab.label "Nguồn">
+<!ENTITY HTMLSourceMode.label "Nguồn HTML">
+<!ENTITY HTMLSourceMode.accesskey "H">
+<!ENTITY HTMLSourceMode.tooltip "Chỉnh sửa nguồn HTML">
+<!ENTITY PreviewModeTab.label "Xem trước">
+<!ENTITY PreviewMode.label "Xem trước">
+<!ENTITY PreviewMode.accesskey "P">
+<!ENTITY PreviewMode.tooltip "Hiển thị dưới dạng WYSIWYG (như trình duyệt)">
diff --git a/l10n-vi/editor/ui/chrome/composer/editor.properties b/l10n-vi/editor/ui/chrome/composer/editor.properties
new file mode 100644
index 0000000000..b66a546c69
--- /dev/null
+++ b/l10n-vi/editor/ui/chrome/composer/editor.properties
@@ -0,0 +1,208 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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: embedded "\n" represent HTML breaks (<br>)
+# Don't translate embedded "\n".
+# Don't translate strings like this: %variable%
+# as they will be replaced using JavaScript
+#
+No=Không
+Save=Lưu
+More=Nhiều hơn
+Less=Ít hơn
+MoreProperties=Nhiều thuộc tính hơn
+FewerProperties=Ít thuộc tính hơn
+PropertiesAccessKey=P
+None=Không có
+none=không có
+OpenHTMLFile=Mở tập tin HTML
+OpenTextFile=Mở tập tin văn bản
+SelectImageFile=Chọn tập tin ảnh
+SaveDocument=Lưu trang
+SaveDocumentAs=Lưu trang dưới dạng
+SaveTextAs=Lưu văn bản dưới dạng
+EditMode=Chế độ chỉnh sửa
+Preview=Xem trước
+Publish=Xuất bản
+PublishPage=Xuất bản trang
+DontPublish=Không xuất bản
+SavePassword=Sử dụng trình quản lý mật khẩu để lưu mật khẩu này
+CorrectSpelling=(đúng chính tả)
+NoSuggestedWords=(không có từ gợi ý)
+NoMisspelledWord=Không có lỗi chính tả
+CheckSpellingDone=Kiểm tra chính tả hoàn tất.
+CheckSpelling=Kiểm tra chính tả
+InputError=Lỗi
+Alert=Cảnh báo
+CantEditFramesetMsg=Trình soạn thảo không thể mở các bộ khung HTML, hoặc các trang có khung nội bộ. Để soạn thảo bộ khung, hãy thử mở trang của các khung riêng rẽ. Để soạn thảo trang có khung nội bộ, hãy lưu một bản sao của trang và xóa thẻ <iframe>.
+CantEditMimeTypeMsg=Không thể chỉnh sửa loại trang này.
+CantEditDocumentMsg=Không thể chỉnh sửa trang này vì không rõ lí do.
+BeforeClosing=trước khi đóng
+BeforePreview=trước khi xem trong trình duyệt
+BeforeValidate=trước khi kiểm định tài liệu
+# LOCALIZATION NOTE (SaveFilePrompt, PublishPrompt): Don't translate %title% and %reason% (this is the reason for asking user to close, such as "before closing")
+SaveFilePrompt=Bạn có muốn lưu các thay đổi trong “%title%” %reason%?
+PublishPrompt=Bạn có muốn lưu các thay đổi trong “%title%” %reason%?
+SaveFileFailed=Lưu tập tin thất bại!
+
+# Publishing error strings:
+# LOCALIZATION NOTE Don't translate %dir% or %file% in the Publishing error strings:
+FileNotFound=Không tìm thấy %file%.
+SubdirDoesNotExist=Thư mục con "%dir%" không tồn tại trên trang này hoặc tên tệp "%file%" đã được sử dụng bởi thư mục con khác.
+FilenameIsSubdir=Tên tập tin “%file%” đã được sử dụng bởi một thư mục con khác.
+ServerNotAvailable=Máy chủ không có sẵn. Kiểm tra kết nối của bạn và thử lại sau.
+Offline=Bạn hiện đang ngoại tuyến. Hãy nhấn biểu tượng gần góc dưới bên phải của bất kì cửa sổ nào để trực tuyến.
+DiskFull=Không đủ dung lượng trống trên đĩa để lưu tập tin "%file%."
+NameTooLong=Tên tệp hoặc tên thư mục con quá dài.
+AccessDenied=Bạn không có quyền xuất bản đến vị trí này.
+UnknownPublishError=Xảy ra lỗi xuất bản không rõ lí do.
+PublishFailed=Xuất bản thất bại.
+PublishCompleted=Xuất bản đã hoàn tất.
+AllFilesPublished=Đã xuất bản các tập tin
+# LOCALIZATION NOTE Don't translate %x% or %total%
+FailedFileMsg=%x% của %total% tập tin không thể xuất bản.
+# End-Publishing error strings
+Prompt=Lời nhắc
+# LOCALIZATION NOTE (PromptFTPUsernamePassword): Don't translate %host%
+PromptFTPUsernamePassword=Hãy nhập tên người dùng và mật khẩu cho máy chủ FTP ở %host%
+RevertCaption=Hoàn nguyên về lần lưu cuối cùng
+Revert=Hoàn nguyên
+SendPageReason=trước khi gửi trang này
+Send=Gửi
+## LOCALIZATION NOTE (PublishProgressCaption, PublishToSite, AbandonChanges): Don't translate %title%
+PublishProgressCaption=Đang xuất bản: %title%
+PublishToSite=Đang xuất bản lên trang: %title%
+AbandonChanges=Bạn có muốn từ bỏ những thay đổi chưa lưu của “%title%” và tải lại trang?
+DocumentTitle=Tiêu đề trang
+NeedDocTitle=Vui lòng nhập một tiêu đề cho trang hiện tại.
+DocTitleHelp=Tiêu đề sẽ hiện ra ở thanh tiêu đề của cửa sổ và trang đánh dấu.
+CancelPublishTitle=Hủy bỏ việc xuất bản?
+## LOCALIZATION NOTE: "Continue" in this sentence must match the text for
+## the CancelPublishContinue key below
+CancelPublishMessage=Hủy bỏ trong khi đang xuất bản có thể khiến tập tin của bạn không được truyền đầy đủ. Bạn muốn Tiếp tục hay Hủy bỏ?
+CancelPublishContinue=Tiếp tục
+MissingImageError=Xin hãy nhập hay chọn hình ở dạng GIF, JPEG, hoặc PNG.
+EmptyHREFError=Xin hãy chọn địa chỉ để tạo liên kết mới.
+LinkText=Liên kết văn bản
+LinkImage=Liên kết ảnh
+MixedSelection=[Lựa chọn Hỗn hợp]
+Mixed=(hỗn hợp)
+# LOCALIZATION NOTE (NotInstalled): %S is the name of the font
+NotInstalled=%S (chưa cài đặt)
+EnterLinkText=Nhập văn bản để hiển thị trong liên kết:
+EnterLinkTextAccessKey=T
+EmptyLinkTextError=Xin hãy nhập văn bản cho liên kết này.
+EditTextWarning=Nội dung hiện có sẽ được thay thế.
+#LOCALIZATION NOTE (ValidateNumber):Don't translate: %n% %min% %max%
+ValidateRangeMsg=Số bạn đã nhập (%n%) nằm ở ngoài khoảng cho phép.
+ValidateNumberMsg=Xin hãy nhập số giữa %min% và %max%.
+MissingAnchorNameError=Xin hãy nhập tên cho mỏ neo này.
+#LOCALIZATION NOTE (DuplicateAnchorNameError): Don't translate %name%
+DuplicateAnchorNameError="%name%" đã tồn tại trong trang này. Vui lòng nhập một tên khác.
+BulletStyle=Kiểu Bullet
+SolidCircle=Vòng tròn tô đậm
+OpenCircle=Vòng tròn trống
+SolidSquare=Hình vuông tô đậm
+NumberStyle=Kiểu đánh số
+Automatic=Tự động
+Style_1=1, 2, 3…
+Style_I=I, II, III…
+Style_i=i, ii, iii…
+Style_A=A, B, C…
+Style_a=a, b, c…
+Pixels=điểm ảnh
+Percent=phần trăm
+PercentOfCell=% ô
+PercentOfWindow=% cửa sổ
+PercentOfTable=% bảng
+#LOCALIZATION NOTE (untitledTitle): %S is the window #. No plural handling needed.
+untitledTitle=không-tên-%S
+untitledDefaultFilename=không-tên
+ShowToolbar=Hiển thị thanh công cụ
+HideToolbar=Ẩn thanh công cụ
+ImapError=Không thể tải ảnh
+ImapCheck=\nXin hãy chọn địa chỉ (URL) mới và thử lại.
+SaveToUseRelativeUrl=Chỉ có thể sử dụng các URL tương đối trong các trang được lưu
+NoNamedAnchorsOrHeadings=(Trang này không có mỏ neo hoặc đầu đề)
+TextColor=Màu chữ
+HighlightColor=Màu tô sáng
+PageColor=Màu nền trang
+BlockColor=Màu nền khối
+TableColor=Màu nền bảng
+CellColor=Màu nền ô
+TableOrCellColor=Màu bảng hoặc ô
+LinkColor=Màu liên kết văn bản
+ActiveLinkColor=Màu liên kết kích hoạt
+VisitedLinkColor=Màu liên kết đã truy cập
+NoColorError=Nhấp vào màu hoặc nhập chuỗi màu HTML hợp lệ
+Table=Bảng
+TableCell=Ô bảng
+NestedTable=Bảng lồng nhau
+HLine=Đường ngang
+Link=Liên kết
+Image=Hình
+ImageAndLink=Ảnh và liên kết
+NamedAnchor=Mỏ neo
+List=Danh sách
+ListItem=Danh sách mục
+Form=Biểu mẫu
+InputTag=Trường biểu mẫu
+InputImage=Hình biểu mẫu
+TextArea=Vùng văn bản
+Select=Danh sách chọn
+Button=Nút
+Label=Nhãn
+FieldSet=Bộ trường
+Tag=Nhãn
+MissingSiteNameError=Vui lòng nhập tên để xuất bản trang web này.
+MissingPublishUrlError=Vui lòng nhập vị trí để xuất bản trang này.
+MissingPublishFilename=Vui lòng nhập tên tập tin cho trang hiện tại.
+#LOCALIZATION NOTE (DuplicateSiteNameError): Don't translate %name%
+DuplicateSiteNameError="%name%" đã tồn tại. Vui lòng nhập một tên khác.
+AdvancedProperties=Thuộc tính nâng cao…
+AdvancedEditForCellMsg=Chỉnh sửa nâng cao không khả dụng khi nhiều ô được chọn
+# LOCALIZATION NOTE (ObjectProperties):Don't translate "%obj%" it will be replaced with one of above object nouns
+ObjectProperties=Thuộc tính %obj%…
+# LOCALIZATION NOTE This character must be in the above string and not conflict with other accesskeys in Format menu
+ObjectPropertiesAccessKey=o
+# LOCALIZATION NOTE (JoinSelectedCells): This variable should contain the "tableJoinCells.accesskey"
+# letter as defined in editorOverlay.dtd
+JoinSelectedCells=Hợp nhất các ô được chọn
+# LOCALIZATION NOTE (JoinCellToRight): This variable should contain the "tableJoinCells.accesskey"
+# letter as defined in editorOverlay.dtd
+JoinCellToRight=Hợp nhất với ô bên phải
+JoinCellAccesskey=j
+# LOCALIZATION NOTE (TableSelectKey): Ctrl key on a keyboard
+TableSelectKey=Ctrl+
+# LOCALIZATION NOTE (XulKeyMac): Command key on a Mac keyboard
+XulKeyMac=Cmd+
+# LOCALIZATION NOTE (Del): Del key on a keyboard
+Del=Del
+Delete=Xóa
+DeleteCells=Xóa các ô
+DeleteTableTitle=Xóa các hàng hoặc cột
+DeleteTableMsg=Nếu xóa hàng hay cột thì sẽ xóa những ô (và nội dung trong đó) thuộc hàng hay cột đó. Bạn có chắc muốn làm vậy không?
+Clear=Xóa trắng
+#Mouse actions
+Click=Nhấp
+Drag=Kéo
+Unknown=Không rõ
+#
+# LOCALIZATION NOTE "RemoveTextStylesAccesskey" is used for both
+# menu items: "RemoveTextStyles" and "StopTextStyles"
+RemoveTextStylesAccesskey=x
+RemoveTextStyles=Xóa tất cả các kiểu văn bản
+StopTextStyles=Ngừng kiểu văn bản
+#
+# LOCALIZATION NOTE "RemoveLinksAccesskey" is used for both
+# menu items: "RemoveLinks" and "StopLinks"
+RemoveLinksAccesskey=n
+RemoveLinks=Xóa liên kết
+StopLinks=Ngừng liên kết
+#
+NoFormAction=Bạn nên nhập một hành động cho biểu mẫu này. Biểu mẫu tự đệ trình dùng một kĩ thuật nâng cao, và có thể không hoạt động giống nhau trong các trình duyệt.
+NoAltText=Nếu hình này có liên quan đến nội dung của tài liệu, bạn cần phải cung cấp văn bản thay thế để hiển thị trong những trình duyệt văn-bản-thuần, và cũng để hiển thị khi hình đang được tải hoặc khi việc tải hình bị vô hiệu hóa.
+#
+Malformed=Nguồn không thể được chuyển đổi lại thành tài liệu vì nó không phải là XHTML hợp lệ.
+NoLinksToCheck=Không có phần tử chứa liên kết để kiểm tra
diff --git a/l10n-vi/editor/ui/chrome/composer/editorOverlay.dtd b/l10n-vi/editor/ui/chrome/composer/editorOverlay.dtd
new file mode 100644
index 0000000000..b656a5ccd8
--- /dev/null
+++ b/l10n-vi/editor/ui/chrome/composer/editorOverlay.dtd
@@ -0,0 +1,370 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- Attn: Localization - some of the menus in this dialog directly affect mail also. -->
+
+<!-- File menu items -->
+<!ENTITY saveCmd.key "S">
+
+<!-- Edit menu items -->
+<!ENTITY pasteNoFormatting.label "Dán mà không cần định dạng">
+<!ENTITY pasteNoFormatting.accesskey "n">
+<!ENTITY pasteNoFormatting.key "V">
+<!ENTITY pasteAs.label "Dán dưới dạng">
+<!ENTITY pasteAs.accesskey "a">
+<!ENTITY pasteAsQuotationCmd.label "Dán dưới dạng trích dẫn">
+<!ENTITY pasteAsQuotationCmd.accesskey "Q">
+<!ENTITY pasteAsQuotationCmd.key "o">
+<!ENTITY findBarCmd.label "Tìm…">
+<!ENTITY findReplaceCmd.label "Tìm và thay thế…">
+<!ENTITY enableInlineSpellChecker.label "Kiểm tra chính tả khi bạn nhập">
+<!ENTITY enableInlineSpellChecker.accesskey "S">
+<!ENTITY checkSpellingCmd2.label "Kiểm tra chính tả…">
+<!ENTITY checkSpellingCmd2.accesskey "h">
+<!ENTITY checkSpellingCmd2.key "p">
+
+<!-- Insert menu items -->
+<!ENTITY insertMenu.label "Chèn">
+<!ENTITY insertMenu.accesskey "I">
+<!ENTITY insertLinkCmd2.label "Liên kết…">
+<!ENTITY insertLinkCmd2.accesskey "L">
+<!ENTITY insertLinkCmd2.key "K">
+<!ENTITY insertAnchorCmd.label "Mỏ neo…">
+<!ENTITY insertAnchorCmd.accesskey "A">
+<!ENTITY insertImageCmd.label "Hình…">
+<!ENTITY insertImageCmd.accesskey "I">
+<!ENTITY insertHLineCmd.label "Đường ngang">
+<!ENTITY insertHLineCmd.accesskey "o">
+<!ENTITY insertTableCmd.label "Bảng…">
+<!ENTITY insertTableCmd.accesskey "T">
+<!ENTITY insertHTMLCmd.label "HTML…">
+<!ENTITY insertHTMLCmd.accesskey "H">
+<!ENTITY insertMathCmd.label "Toán học…">
+<!ENTITY insertMathCmd.accesskey "M">
+<!ENTITY insertCharsCmd.label "Kí hiệu và biểu tượng…">
+<!ENTITY insertCharsCmd.accesskey "C">
+<!ENTITY insertBreakAllCmd.label "Ngắt đoạn sau (các) hình">
+<!ENTITY insertBreakAllCmd.accesskey "k">
+
+<!-- Used just in context popup. -->
+<!ENTITY createLinkCmd.label "Tạo liên kết…">
+<!ENTITY createLinkCmd.accesskey "k">
+<!ENTITY editLinkCmd.label "Chỉnh sửa liên kết trong trình soạn thảo mới">
+<!ENTITY editLinkCmd.accesskey "i">
+
+<!-- Font Face SubMenu -->
+<!ENTITY FontFaceSelect.title "Phông chữ">
+<!ENTITY FontFaceSelect.tooltip "Chọn phông chữ">
+<!ENTITY fontfaceMenu.label "Phông chữ">
+<!ENTITY fontfaceMenu.accesskey "F">
+<!ENTITY fontVarWidth.label "Chiều rộng thay đổi">
+<!ENTITY fontVarWidth.accesskey "V">
+<!ENTITY fontFixedWidth.label "Chiều rộng cố định">
+<!ENTITY fontFixedWidth.accesskey "x">
+<!ENTITY fontFixedWidth.key "T">
+<!ENTITY fontHelvetica.label "Helvetica, Arial">
+<!ENTITY fontHelvetica.accesskey "l">
+<!ENTITY fontTimes.label "Times">
+<!ENTITY fontTimes.accesskey "T">
+<!ENTITY fontCourier.label "Courier">
+<!ENTITY fontCourier.accesskey "C">
+
+<!-- Font Size SubMenu -->
+<!ENTITY FontSizeSelect.title "Cỡ chữ">
+<!ENTITY FontSizeSelect.tooltip "Chọn cỡ chữ">
+<!ENTITY decreaseFontSize.label "Nhỏ hơn">
+<!ENTITY decreaseFontSize.accesskey "r">
+<!ENTITY decrementFontSize.key "&lt;">
+<!ENTITY decrementFontSize.key2 ","> <!-- < is above this key on many keyboards -->
+<!ENTITY increaseFontSize.label "Lớn hơn">
+<!ENTITY increaseFontSize.accesskey "g">
+<!ENTITY incrementFontSize.key "&gt;">
+<!ENTITY incrementFontSize.key2 "."> <!-- > is above this key on many keyboards -->
+
+<!ENTITY fontSizeMenu.label "Cỡ chữ">
+<!ENTITY fontSizeMenu.accesskey "z">
+<!ENTITY size-tinyCmd.label "Rất nhỏ">
+<!ENTITY size-tinyCmd.accesskey "T">
+<!ENTITY size-smallCmd.label "Nhỏ">
+<!ENTITY size-smallCmd.accesskey "S">
+<!ENTITY size-mediumCmd.label "Trung bình">
+<!ENTITY size-mediumCmd.accesskey "M">
+<!ENTITY size-largeCmd.label "Lớn">
+<!ENTITY size-largeCmd.accesskey "L">
+<!ENTITY size-extraLargeCmd.label "Rất lớn">
+<!ENTITY size-extraLargeCmd.accesskey "x">
+<!ENTITY size-hugeCmd.label "Siêu lớn">
+<!ENTITY size-hugeCmd.accesskey "H">
+
+<!-- Font Style SubMenu -->
+<!ENTITY fontStyleMenu.label "Kiểu chữ">
+<!ENTITY fontStyleMenu.accesskey "S">
+<!ENTITY styleBoldCmd.label "Đậm">
+<!ENTITY styleBoldCmd.accesskey "B">
+<!ENTITY styleBoldCmd.key "B">
+<!ENTITY styleItalicCmd.label "Nghiêng">
+<!ENTITY styleItalicCmd.accesskey "I">
+<!ENTITY styleItalicCmd.key "I">
+<!ENTITY styleUnderlineCmd.label "Gạch dưới">
+<!ENTITY styleUnderlineCmd.accesskey "U">
+<!ENTITY styleUnderlineCmd.key "U">
+<!ENTITY styleStrikeThruCmd.label "Gạch ngang">
+<!ENTITY styleStrikeThruCmd.accesskey "k">
+<!ENTITY styleSuperscriptCmd.label "Chữ nhỏ bên trên">
+<!ENTITY styleSuperscriptCmd.accesskey "p">
+<!ENTITY styleSubscriptCmd.label "Chữ nhỏ bên dưới">
+<!ENTITY styleSubscriptCmd.accesskey "S">
+<!ENTITY styleNonbreakingCmd.label "Không ngắt dòng">
+<!ENTITY styleNonbreakingCmd.accesskey "N">
+<!ENTITY styleEm.label "Nhấn mạnh">
+<!ENTITY styleEm.accesskey "E">
+<!ENTITY styleStrong.label "Nhấn mạnh hơn">
+<!ENTITY styleStrong.accesskey "t">
+<!ENTITY styleCite.label "Nguồn trích dẫn">
+<!ENTITY styleCite.accesskey "C">
+<!ENTITY styleAbbr.label "Viết tắt">
+<!ENTITY styleAbbr.accesskey "A">
+<!ENTITY styleAcronym.label "Viết tắt chữ cái đầu">
+<!ENTITY styleAcronym.accesskey "r">
+<!ENTITY styleCode.label "Đoạn mã">
+<!ENTITY styleCode.accesskey "o">
+<!ENTITY styleSamp.label "Ví dụ mẫu">
+<!ENTITY styleSamp.accesskey "m">
+<!ENTITY styleVar.label "Biến">
+<!ENTITY styleVar.accesskey "V">
+
+<!ENTITY formatFontColor.label "Màu chữ…">
+<!ENTITY formatFontColor.accesskey "C">
+<!ENTITY tableOrCellColor.label "Màu nền bảng hoặc ô…">
+<!ENTITY tableOrCellColor.accesskey "B">
+
+<!ENTITY formatRemoveStyles.key "Y">
+<!ENTITY formatRemoveLinks.key "K">
+<!ENTITY formatRemoveNamedAnchors.label "Xóa mỏ neo">
+<!ENTITY formatRemoveNamedAnchors.accesskey "R">
+<!ENTITY formatRemoveNamedAnchors2.key "R">
+
+<!ENTITY paragraphMenu.label "Đoạn văn">
+<!ENTITY paragraphMenu.accesskey "P">
+<!ENTITY paragraphParagraphCmd.label "Đoạn văn">
+<!ENTITY paragraphParagraphCmd.accesskey "P">
+<!ENTITY heading1Cmd.label "Đầu đề cấp 1">
+<!ENTITY heading1Cmd.accesskey "1">
+<!ENTITY heading2Cmd.label "Đầu đề cấp 2">
+<!ENTITY heading2Cmd.accesskey "2">
+<!ENTITY heading3Cmd.label "Đầu đề cấp 3">
+<!ENTITY heading3Cmd.accesskey "3">
+<!ENTITY heading4Cmd.label "Đầu đề cấp 4">
+<!ENTITY heading4Cmd.accesskey "4">
+<!ENTITY heading5Cmd.label "Đầu đề cấp 5">
+<!ENTITY heading5Cmd.accesskey "5">
+<!ENTITY heading6Cmd.label "Đầu đề cấp 6">
+<!ENTITY heading6Cmd.accesskey "6">
+<!ENTITY paragraphAddressCmd.label "Địa chỉ">
+<!ENTITY paragraphAddressCmd.accesskey "A">
+<!ENTITY paragraphPreformatCmd.label "Định dạng sẵn">
+<!ENTITY paragraphPreformatCmd.accesskey "f">
+
+<!-- List menu items -->
+<!ENTITY formatlistMenu.label "Danh sách">
+<!ENTITY formatlistMenu.accesskey "L">
+<!ENTITY noneCmd.label "Không có">
+<!ENTITY noneCmd.accesskey "K">
+<!ENTITY listBulletCmd.label "Gạch đầu dòng">
+<!ENTITY listBulletCmd.accesskey "B">
+<!ENTITY listNumberedCmd.label "Được đánh số">
+<!ENTITY listNumberedCmd.accesskey "m">
+<!ENTITY listTermCmd.label "Thuật ngữ">
+<!ENTITY listTermCmd.accesskey "T">
+<!ENTITY listDefinitionCmd.label "Định nghĩa">
+<!ENTITY listDefinitionCmd.accesskey "D">
+<!ENTITY listPropsCmd.label "Danh sách thuộc tính…">
+<!ENTITY listPropsCmd.accesskey "L">
+
+<!ENTITY ParagraphSelect.title "Đoạn văn bản">
+<!ENTITY ParagraphSelect.tooltip "Chọn một định dạng đoạn văn">
+<!-- Shared in Paragraph, and Toolbar menulist -->
+<!ENTITY bodyTextCmd.label "Nội dung">
+<!ENTITY bodyTextCmd.accesskey "T">
+<!-- isn't used in menu now, but may be added in future -->
+<!ENTITY advancedPropertiesCmd.label "Thuộc tính nâng cao">
+<!ENTITY advancedPropertiesCmd.accesskey "v">
+
+<!-- Align menu items -->
+<!ENTITY alignMenu.label "Căn chỉnh">
+<!ENTITY alignMenu.accesskey "A">
+<!ENTITY alignLeft.label "Trái">
+<!ENTITY alignLeft.accesskey "L">
+<!ENTITY alignLeft.tooltip "Căn trái">
+<!ENTITY alignCenter.label "Giữa">
+<!ENTITY alignCenter.accesskey "C">
+<!ENTITY alignCenter.tooltip "Căn giữa">
+<!ENTITY alignRight.label "Phải">
+<!ENTITY alignRight.accesskey "R">
+<!ENTITY alignRight.tooltip "Căn phải">
+<!ENTITY alignJustify.label "Hai bên">
+<!ENTITY alignJustify.accesskey "J">
+<!ENTITY alignJustify.tooltip "Căn hai bên">
+
+<!-- Layer toolbar items -->
+<!ENTITY absolutePosition.label "Định vị">
+<!ENTITY layer.tooltip "Lớp">
+<!ENTITY decreaseZIndex.label "Đưa ra sau">
+<!ENTITY layerSendToBack.tooltip "Đưa ra sau">
+<!ENTITY increaseZIndex.label "Đưa ra trước">
+<!ENTITY layerBringToFront.tooltip "Đưa ra trước">
+
+<!ENTITY increaseIndent.label "Tăng lề">
+<!ENTITY increaseIndent.accesskey "I">
+<!ENTITY increaseIndent.key "]">
+<!ENTITY decreaseIndent.label "Giảm lề">
+<!ENTITY decreaseIndent.accesskey "D">
+<!ENTITY decreaseIndent.key "[">
+
+<!ENTITY colorsAndBackground.label "Nền và màu trang…">
+<!ENTITY colorsAndBackground.accesskey "u">
+
+<!-- Table Menu -->
+<!ENTITY tableMenu.label "Bảng">
+<!ENTITY tableMenu.accesskey "b">
+
+<!-- Select Submenu -->
+<!ENTITY tableSelectMenu.label "Chọn">
+<!ENTITY tableSelectMenu.accesskey "S">
+
+<!ENTITY tableSelectMenu2.label "Chọn bảng">
+<!ENTITY tableSelectMenu2.accesskey "S">
+<!ENTITY tableInsertMenu2.label "Chèn bảng">
+<!ENTITY tableInsertMenu2.accesskey "I">
+<!ENTITY tableDeleteMenu2.label "Xóa bảng">
+<!ENTITY tableDeleteMenu2.accesskey "D">
+
+<!-- Insert SubMenu -->
+<!ENTITY tableInsertMenu.label "Chèn">
+<!ENTITY tableInsertMenu.accesskey "I">
+<!ENTITY tableTable.label "Bảng">
+<!ENTITY tableTable.accesskey "T">
+<!ENTITY tableRow.label "Hàng">
+<!ENTITY tableRows.label "Các hàng">
+<!ENTITY tableRow.accesskey "R">
+<!ENTITY tableRowAbove.label "Hàng trên">
+<!ENTITY tableRowAbove.accesskey "R">
+<!ENTITY tableRowBelow.label "Hàng dưới">
+<!ENTITY tableRowBelow.accesskey "B">
+<!ENTITY tableColumn.label "Cột">
+<!ENTITY tableColumns.label "Các cột">
+<!ENTITY tableColumn.accesskey "o">
+<!ENTITY tableColumnBefore.label "Cột trước">
+<!ENTITY tableColumnBefore.accesskey "o">
+<!ENTITY tableColumnAfter.label "Cột sau">
+<!ENTITY tableColumnAfter.accesskey "A">
+<!ENTITY tableCell.label "Ô">
+<!ENTITY tableCells.label "Các ô">
+<!ENTITY tableCell.accesskey "C">
+<!ENTITY tableCellContents.label "Nội dung ô">
+<!ENTITY tableCellContents.accesskey "n">
+<!ENTITY tableAllCells.label "Tất cả các ô">
+<!ENTITY tableAllCells.accesskey "A">
+<!ENTITY tableCellBefore.label "Ô trước">
+<!ENTITY tableCellBefore.accesskey "C">
+<!ENTITY tableCellAfter.label "Ô sau">
+<!ENTITY tableCellAfter.accesskey "f">
+<!-- Delete SubMenu -->
+<!ENTITY tableDeleteMenu.label "Xóa">
+<!ENTITY tableDeleteMenu.accesskey "D">
+
+<!-- text for "Join Cells" is in editor.properties
+ ("JoinSelectedCells" and "JoinCellToRight")
+ the access key must exist in both of those strings
+ But value must be set here for accesskey to draw properly
+-->
+<!ENTITY tableJoinCells.label "j">
+<!ENTITY tableJoinCells.accesskey "j">
+<!ENTITY tableSplitCell.label "Chia ô">
+<!ENTITY tableSplitCell.accesskey "C">
+<!ENTITY convertToTable.label "Tạo bảng từ phần đã chọn">
+<!ENTITY convertToTable.accesskey "r">
+<!ENTITY tableProperties.label "Thuộc tính bảng…">
+<!ENTITY tableProperties.accesskey "o">
+
+<!-- Toolbar-only items -->
+<!ENTITY menuBar.tooltip "Thanh trình đơn">
+<!ENTITY formatToolbar.tooltip "Thanh định dạng">
+<!ENTITY cutToolbarCmd.tooltip "Cắt">
+<!ENTITY copyToolbarCmd.tooltip "Sao chép">
+<!ENTITY pasteToolbarCmd.tooltip "Dán">
+<!ENTITY printToolbarCmd.label "In">
+<!ENTITY printToolbarCmd.tooltip "In trang này">
+<!ENTITY findToolbarCmd.label "Tìm">
+<!ENTITY findToolbarCmd.tooltip "Tìm văn bản trong trang">
+<!ENTITY spellToolbarCmd.label "Chính tả">
+<!ENTITY spellToolbarCmd.tooltip "Kiểm tra chính tả của phần đã chọn hoặc toàn bộ trang">
+<!ENTITY imageToolbarCmd.label "Hình">
+<!ENTITY imageToolbarCmd.tooltip "Chèn hình mới hoặc chỉnh sửa thuộc tính của hình">
+<!ENTITY hruleToolbarCmd.label "Đ.Ngang">
+<!ENTITY hruleToolbarCmd.tooltip "Chèn đường kẻ ngang hoặc chỉnh sửa thuộc tính của đường kẻ">
+<!ENTITY tableToolbarCmd.label "Bảng">
+<!ENTITY tableToolbarCmd.tooltip "Chèn bảng mới hoặc chỉnh sửa thuộc tính của bảng">
+<!ENTITY linkToolbarCmd.label "Liên kết">
+<!ENTITY linkToolbarCmd.tooltip "Chèn liên kết mới hoặc chỉnh sửa thuộc tính của liên kết đã chọn">
+<!ENTITY anchorToolbarCmd.label "Mỏ neo">
+<!ENTITY anchorToolbarCmd.tooltip "Chèn neo mới hoặc chỉnh sửa thuộc tính của neo được chọn">
+<!ENTITY colorButtons.title "Màu">
+<!ENTITY TextColorButton.tooltip "Chọn màu chữ">
+<!ENTITY BackgroundColorButton.tooltip "Chọn màu nền">
+<!ENTITY throbber.tooltip "Mở trang chủ &vendorShortName;">
+<!ENTITY HighlightColorButton.label "Công cụ tô sáng">
+<!ENTITY HighlightColorButton.tooltip "Chọn màu tô đậm văn bản">
+
+<!-- Editor toolbar -->
+<!ENTITY absoluteFontSize.label "Cỡ chữ">
+<!ENTITY absoluteFontSizeToolbarCmd.tooltip "Đặt cỡ chữ">
+<!ENTITY smaller.label "Nhỏ hơn">
+<!ENTITY decreaseFontSizeToolbarCmd.tooltip "Cỡ chữ nhỏ hơn">
+<!ENTITY larger.label "Lớn hơn">
+<!ENTITY increaseFontSizeToolbarCmd.tooltip "Cỡ chữ lớn hơn">
+<!ENTITY bold.label "Đậm">
+<!ENTITY boldToolbarCmd.tooltip "Đậm">
+<!ENTITY italic.label "Nghiêng">
+<!ENTITY italicToolbarCmd.tooltip "Nghiêng">
+<!ENTITY underline.label "Gạch dưới">
+<!ENTITY underlineToolbarCmd.tooltip "Gạch dưới">
+<!ENTITY bullets.label "Dấu tròn đầu dòng">
+<!ENTITY bulletListToolbarCmd.tooltip "Áp dụng hoặc xóa danh sách bullet">
+<!ENTITY numbers.label "Số">
+<!ENTITY numberListToolbarCmd.tooltip "Áp dụng hoặc xóa danh sách số">
+<!ENTITY outdent.label "Thụt lề">
+<!ENTITY outdentToolbarCmd.tooltip "Giảm lề văn bản (chuyển trái)">
+<!ENTITY indent.label "Tăng lề">
+<!ENTITY indentToolbarCmd.tooltip "Tăng lề văn bản (chuyển phải)">
+<!ENTITY AlignPopupButton.label "Căn chỉnh">
+<!ENTITY AlignPopupButton.tooltip "Chọn cách căn văn bản">
+<!ENTITY InsertPopupButton.label "Chèn">
+<!ENTITY InsertPopupButton.tooltip "Chèn một liên kết, neo, hình ảnh, đường ngang hoặc bảng">
+<!ENTITY alignLeftButton.label "Căn trái">
+<!ENTITY alignLeftButton.tooltip "Căn theo lề trái">
+<!ENTITY alignCenterButton.label "Căn giữa">
+<!ENTITY alignCenterButton.tooltip "Căn vào giữa">
+<!ENTITY alignRightButton.label "Căn phải">
+<!ENTITY alignRightButton.tooltip "Căn theo lề phải">
+<!ENTITY alignJustifyButton.label "Căn hai bên">
+<!ENTITY alignJustifyButton.tooltip "Căn theo hai bên lề">
+
+<!-- Structure Toolbar Context Menu items -->
+<!ENTITY structSelect.label "Chọn">
+<!ENTITY structSelect.accesskey "s">
+<!ENTITY structRemoveTag.label "Xóa thẻ">
+<!ENTITY structRemoveTag.accesskey "r">
+<!ENTITY structChangeTag.label "Thay đổi thẻ">
+<!ENTITY structChangeTag.accesskey "c">
+
+<!-- TOC manipulation -->
+<!ENTITY insertTOC.label "Chèn">
+<!ENTITY insertTOC.accesskey "i">
+<!ENTITY updateTOC.label "Cập nhật">
+<!ENTITY updateTOC.accesskey "u">
+<!ENTITY removeTOC.label "Xóa">
+<!ENTITY removeTOC.accesskey "r">
+<!ENTITY tocMenu.label "Mục lục…">
+<!ENTITY tocMenu.accesskey "b">
diff --git a/l10n-vi/editor/ui/chrome/composer/editorPrefsOverlay.dtd b/l10n-vi/editor/ui/chrome/composer/editorPrefsOverlay.dtd
new file mode 100644
index 0000000000..9efde9c052
--- /dev/null
+++ b/l10n-vi/editor/ui/chrome/composer/editorPrefsOverlay.dtd
@@ -0,0 +1,13 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+
+<!--LOCALIZATION NOTE (editorCheck.label): DONT_TRANSLATE -->
+<!ENTITY editorCheck.label "Composer">
+<!ENTITY editorCheck.accesskey "c">
+
+<!ENTITY compose.label "Trình soạn thảo">
+<!ENTITY editing.label "Cài đặt trang mới">
+<!ENTITY toolbars.label "Thanh công cụ">
+<!ENTITY publish.label "Đang xuất bản">
diff --git a/l10n-vi/editor/ui/chrome/composer/editorSmileyOverlay.dtd b/l10n-vi/editor/ui/chrome/composer/editorSmileyOverlay.dtd
new file mode 100644
index 0000000000..98df73364d
--- /dev/null
+++ b/l10n-vi/editor/ui/chrome/composer/editorSmileyOverlay.dtd
@@ -0,0 +1,58 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- Smiley Menu items -->
+<!ENTITY insertSmiley.label "Mặt cười">
+<!ENTITY insertSmiley.accesskey "M">
+
+<!ENTITY smiley1Cmd.label "Cuời">
+<!ENTITY smiley1Cmd.accesskey "C">
+<!ENTITY smiley1Cmd.tooltip "Chèn mặt cười">
+<!ENTITY smiley2Cmd.label "Cau có">
+<!ENTITY smiley2Cmd.accesskey "a">
+<!ENTITY smiley2Cmd.tooltip "Chèn một khuôn mặt cau có">
+<!ENTITY smiley3Cmd.label "Nháy mắt">
+<!ENTITY smiley3Cmd.accesskey "N">
+<!ENTITY smiley3Cmd.tooltip "Chèn một khuôn mặt nháy mắt">
+<!ENTITY smiley4Cmd.label "Thè lưỡi">
+<!ENTITY smiley4Cmd.accesskey "T">
+<!ENTITY smiley4Cmd.tooltip "Chèn một khuôn mặt thè lưỡi">
+<!ENTITY smiley5Cmd.label "Cười lớn">
+<!ENTITY smiley5Cmd.accesskey "l">
+<!ENTITY smiley5Cmd.tooltip "Chèn một khuôn mặt cười lớn">
+<!ENTITY smiley6Cmd.label "Ngượng ngùng">
+<!ENTITY smiley6Cmd.accesskey "N">
+<!ENTITY smiley6Cmd.tooltip "Chèn một khuôn mặt ngượng ngùng">
+<!ENTITY smiley7Cmd.label "Phân vân">
+<!ENTITY smiley7Cmd.accesskey "P">
+<!ENTITY smiley7Cmd.tooltip "Chèn một khuôn mặt phân vân">
+<!ENTITY smiley8Cmd.label "Ngạc nhiên">
+<!ENTITY smiley8Cmd.accesskey "g">
+<!ENTITY smiley8Cmd.tooltip "Đưa vào mặt ngạc nhiên">
+<!ENTITY smiley9Cmd.label "Chụt chụt">
+<!ENTITY smiley9Cmd.accesskey "C">
+<!ENTITY smiley9Cmd.tooltip "Chèn một khuôn mặt hôn chụt chụt">
+<!ENTITY smiley10Cmd.label "La hét">
+<!ENTITY smiley10Cmd.accesskey "L">
+<!ENTITY smiley10Cmd.tooltip "Chèn một khuôn mặt la hét">
+<!ENTITY smiley11Cmd.label "Ngầu">
+<!ENTITY smiley11Cmd.accesskey "u">
+<!ENTITY smiley11Cmd.tooltip "Chèn một khuôn mặt ngầu">
+<!ENTITY smiley12Cmd.label "Miệng đầy tiền">
+<!ENTITY smiley12Cmd.accesskey "M">
+<!ENTITY smiley12Cmd.tooltip "Chèn một khuôn mặt miệng đầy tiền">
+<!ENTITY smiley13Cmd.label "Bị chặn họng">
+<!ENTITY smiley13Cmd.accesskey "B">
+<!ENTITY smiley13Cmd.tooltip "Chèn một khuôn mặt bị chặn họng">
+<!ENTITY smiley14Cmd.label "Ngây thơ">
+<!ENTITY smiley14Cmd.accesskey "N">
+<!ENTITY smiley14Cmd.tooltip "Chèn một khuôn mặt ngây thơ">
+<!ENTITY smiley15Cmd.label "Khóc">
+<!ENTITY smiley15Cmd.accesskey "K">
+<!ENTITY smiley15Cmd.tooltip "Chèn một khuôn mặt khóc">
+<!ENTITY smiley16Cmd.label "Ngậm tăm">
+<!ENTITY smiley16Cmd.accesskey "N">
+<!ENTITY smiley16Cmd.tooltip "Chèn một khuôn mặt ngậm tăm">
+<!ENTITY SmileButton.label "Chèn biểu tượng">
+<!ENTITY SmileButton.tooltip "Chèn mặt cười">
diff --git a/l10n-vi/editor/ui/chrome/composer/pref-composer.dtd b/l10n-vi/editor/ui/chrome/composer/pref-composer.dtd
new file mode 100644
index 0000000000..5d049bf906
--- /dev/null
+++ b/l10n-vi/editor/ui/chrome/composer/pref-composer.dtd
@@ -0,0 +1,30 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- extracted from content/pref-composer.xul -->
+
+<!--LOCALIZATION NOTE : FILE 'Composer' prefs dialog. Similar to Communcator 4.x Document Properties/Colors and Background -->
+
+<!--LOCALIZATION NOTE (pref.composer.title): DONT_TRANSLATE -->
+<!ENTITY pref.composer.title "Composer">
+<!ENTITY recentFiles.title "Trình đơn Các trang Gần đây">
+<!ENTITY documentsInMenu.label "Số trang tối đa trong danh sách:">
+<!ENTITY documentsInMenu.accesskey "n">
+<!ENTITY savingFiles.title "Khi Lưu hoặc Xuất bản Trang">
+<!ENTITY preserveExisting.label "Giữ nguyên định dạng gốc">
+<!ENTITY preserveExisting.accesskey "G">
+<!ENTITY preserveExisting.tooltip "Giữ nguyên các dấu ngắt dòng và định dạng gốc của trang">
+<!ENTITY saveAssociatedFiles.label "Lưu hình và các tập tin kèm theo khi lưu trang">
+<!ENTITY saveAssociatedFiles.accesskey "L">
+<!ENTITY showPublishDialog.label "Luôn hiện hộp thoại Xuất bản khi xuất bản trang">
+<!ENTITY showPublishDialog.accesskey "a">
+<!ENTITY composerEditing.label "Chỉnh sửa">
+<!ENTITY maintainStructure.label "Duy trì bố cục trang khi chèn hoặc xóa ô">
+<!ENTITY maintainStructure.tooltip "Giữ nguyên hình dạng vuông vắn của bảng bằng cách tự động thêm ô mới sau khi chèn hoặc xóa">
+<!ENTITY maintainStructure.accesskey "D">
+<!ENTITY useCSS.label "Sử dụng style CSS thay cho phần tử và thuộc tính HTML">
+<!ENTITY useCSS.accesskey "u">
+<!ENTITY crInPCreatesNewP.label "Khi quay trở lại một đoạn thì cũng sẽ luôn tạo ra một đoạn mới">
+<!ENTITY crInPCreatesNewP.accesskey "r">
+
diff --git a/l10n-vi/editor/ui/chrome/composer/pref-editing.dtd b/l10n-vi/editor/ui/chrome/composer/pref-editing.dtd
new file mode 100644
index 0000000000..42f62f696d
--- /dev/null
+++ b/l10n-vi/editor/ui/chrome/composer/pref-editing.dtd
@@ -0,0 +1,31 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY pref.editing.title "Cài đặt trang mới">
+
+<!ENTITY authorName.label "Tác giả:">
+<!ENTITY authorName.accesskey "T">
+<!ENTITY pageColorHeader "Cách Trình bày Trang Mặc định">
+
+<!ENTITY defaultColors.label "Màu mặc định của người đọc (Không thiết lập màu trong trang)">
+<!ENTITY defaultColors.accesskey "M">
+<!ENTITY customColors.label "Dùng màu tùy chọn:">
+<!ENTITY customColors.accesskey "c">
+
+<!ENTITY normalText.label "Chữ thường">
+<!ENTITY normalText.accesskey "C">
+<!ENTITY linkText.label "Chữ liên kết">
+<!ENTITY linkText.accesskey "l">
+<!ENTITY activeLinkText.label "Chữ liên kết đang chọn">
+<!ENTITY activeLinkText.accesskey "c">
+<!ENTITY visitedLinkText.label "Chữ liên kết đã thăm">
+<!ENTITY visitedLinkText.accesskey "t">
+<!ENTITY background.label "Nền:">
+<!ENTITY background.accesskey "N">
+<!ENTITY colon.character ":">
+
+<!ENTITY backgroundImage.label "Hình nền:">
+<!ENTITY backgroundImage.accesskey "H">
+<!ENTITY chooseFile.label "Chọn tập tin…">
+<!ENTITY chooseFile.accesskey "C">
diff --git a/l10n-vi/editor/ui/chrome/dialogs/EdAdvancedEdit.dtd b/l10n-vi/editor/ui/chrome/dialogs/EdAdvancedEdit.dtd
new file mode 100644
index 0000000000..b483cfe4d0
--- /dev/null
+++ b/l10n-vi/editor/ui/chrome/dialogs/EdAdvancedEdit.dtd
@@ -0,0 +1,18 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY WindowTitle.label "Trình chỉnh sửa thuộc tính nâng cao">
+<!ENTITY AttName.label "Thuộc tính: ">
+<!ENTITY AttValue.label "Giá trị: ">
+<!ENTITY PropertyName.label "Thuộc tính (Property): ">
+<!ENTITY currentattributesfor.label "Thuộc tính hiện tại của: ">
+<!ENTITY tree.attributeHeader.label "Thuộc tính">
+<!ENTITY tree.propertyHeader.label "Thuộc tính">
+<!ENTITY tree.valueHeader.label "Giá trị">
+<!ENTITY tabHTML.label "Thuộc tính HTML">
+<!ENTITY tabCSS.label "Phong cách bên trong">
+<!ENTITY tabJSE.label "Sự kiện JavaScript">
+
+<!ENTITY editAttribute.label "Nhấn lên một mục ở trên để chỉnh sửa giá trị của nó">
+<!ENTITY removeAttribute.label "Xóa">
diff --git a/l10n-vi/editor/ui/chrome/dialogs/EdColorPicker.dtd b/l10n-vi/editor/ui/chrome/dialogs/EdColorPicker.dtd
new file mode 100644
index 0000000000..bd55840f0d
--- /dev/null
+++ b/l10n-vi/editor/ui/chrome/dialogs/EdColorPicker.dtd
@@ -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/. -->
+
+<!ENTITY windowTitle.label "Màu">
+<!ENTITY lastPickedColor.label "Màu mới chọn">
+<!ENTITY lastPickedColor.accessKey "M">
+<!ENTITY chooseColor1.label "Chọn một màu:">
+<!ENTITY chooseColor2.label "Nhập chuỗi màu HTML">
+<!ENTITY chooseColor2.accessKey "H">
+<!ENTITY setColorExample.label "(vd.: &quot;#0000ff&quot; hoặc &quot;blue&quot;):">
+<!ENTITY default.label "Mặc định">
+<!ENTITY default.accessKey "M">
+<!ENTITY palette.label "Bảng màu:">
+<!ENTITY standardPalette.label "Chuẩn">
+<!ENTITY webPalette.label "Tất cả màu của web">
+<!ENTITY background.label "Nền cho:">
+<!ENTITY background.accessKey "N">
+<!ENTITY table.label "Bảng">
+<!ENTITY table.accessKey "B">
+<!ENTITY cell.label "Các Ô">
+<!ENTITY cell.accessKey "C">
diff --git a/l10n-vi/editor/ui/chrome/dialogs/EdConvertToTable.dtd b/l10n-vi/editor/ui/chrome/dialogs/EdConvertToTable.dtd
new file mode 100644
index 0000000000..c2dcf17c0f
--- /dev/null
+++ b/l10n-vi/editor/ui/chrome/dialogs/EdConvertToTable.dtd
@@ -0,0 +1,15 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+
+<!-- Window title -->
+<!ENTITY windowTitle.label "Chuyển đổi sang bảng">
+<!ENTITY instructions1.label "Trình soạn thảo tạo một hàng mới trên bảng cho mỗi đoạn đã chọn.">
+<!ENTITY instructions2.label "Chọn kí tự dùng để tách các khối vào các cột:">
+<!ENTITY commaRadio.label "Dấu phẩy">
+<!ENTITY spaceRadio.label "Khoảng trống">
+<!ENTITY otherRadio.label "Kí tự khác:">
+<!ENTITY deleteCharCheck.label "Xóa kí tự phân tách">
+<!ENTITY collapseSpaces.label "Bỏ qua khoảng trống thừa">
+<!ENTITY collapseSpaces.tooltip "Chuyển đổi các khoảng trống kề cận thành một dấu ngăn cách">
diff --git a/l10n-vi/editor/ui/chrome/dialogs/EdDialogOverlay.dtd b/l10n-vi/editor/ui/chrome/dialogs/EdDialogOverlay.dtd
new file mode 100644
index 0000000000..9ce109fd6b
--- /dev/null
+++ b/l10n-vi/editor/ui/chrome/dialogs/EdDialogOverlay.dtd
@@ -0,0 +1,18 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY AdvancedEditButton.label "Chỉnh sửa nâng cao…">
+<!ENTITY AdvancedEditButton.accessKey "S">
+<!ENTITY AdvancedEditButton.tooltip "Thêm hoặc chỉnh sửa thuộc tính HTML, thuộc tính style và JavaScript">
+<!ENTITY chooseFileButton.label "Chọn tập tin…">
+<!ENTITY chooseFileButton.accessKey "C">
+<!ENTITY chooseFileLinkButton.label "Chọn tập tin…">
+<!ENTITY chooseFileLinkButton.accessKey "h">
+<!ENTITY makeUrlRelative.label "URL tương đối so với địa chỉ trang">
+<!ENTITY makeUrlRelative.accessKey "U">
+<!ENTITY makeUrlRelative.tooltip "Thay đổi giữa URL tuyệt đối và tương đối. Bạn phải lưu trang trước khi thay đổi.">
+
+<!-- Shared by Link and Image dialogs -->
+<!ENTITY LinkURLEditField2.label "Nhập vị trí trang web, tệp cục bộ hoặc chọn neo được đặt tên hoặc tiêu đề từ menu ngữ cảnh của trường:">
+<!ENTITY LinkURLEditField2.accessKey "w">
diff --git a/l10n-vi/editor/ui/chrome/dialogs/EdNamedAnchorProperties.dtd b/l10n-vi/editor/ui/chrome/dialogs/EdNamedAnchorProperties.dtd
new file mode 100644
index 0000000000..024bd84565
--- /dev/null
+++ b/l10n-vi/editor/ui/chrome/dialogs/EdNamedAnchorProperties.dtd
@@ -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/. -->
+
+<!ENTITY windowTitle.label "Thuộc tính mỏ neo">
+<!ENTITY anchorNameEditField.label "Tên mỏ neo:">
+<!ENTITY anchorNameEditField.accessKey "N">
+<!ENTITY nameInput.tooltip "Nhập một tên cho mỏ neo (đích) này">
diff --git a/l10n-vi/editor/ui/chrome/dialogs/EditConflict.dtd b/l10n-vi/editor/ui/chrome/dialogs/EditConflict.dtd
new file mode 100644
index 0000000000..d235c55447
--- /dev/null
+++ b/l10n-vi/editor/ui/chrome/dialogs/EditConflict.dtd
@@ -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/. -->
+
+<!-- Window title -->
+<!ENTITY windowTitle.label "Chọn thay đổi chỉnh sửa">
+<!ENTITY conflictWarning.label "Trang này đã được sửa đổi bởi một chương trình khác, nhưng bạn cũng có những thay đổi chưa lưu trong Trình soạn thảo.">
+<!ENTITY conflictResolve.label "Chọn phiên bản muốn giữ:">
+<!ENTITY keepCurrentPageButton.label "Giữ các thay đổi hiện tại">
+<!ENTITY useOtherPageButton.label "Thay thế các thay đổi hiện tại bằng các thay đổi khác">
diff --git a/l10n-vi/editor/ui/chrome/dialogs/EditorButtonProperties.dtd b/l10n-vi/editor/ui/chrome/dialogs/EditorButtonProperties.dtd
new file mode 100644
index 0000000000..a1fe34fc31
--- /dev/null
+++ b/l10n-vi/editor/ui/chrome/dialogs/EditorButtonProperties.dtd
@@ -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/. -->
+
+<!ENTITY windowTitle.label "Thuộc tính của Nút">
+
+<!ENTITY Settings.label "Thiết lập">
+
+<!ENTITY ButtonType.label "Loại">
+<!ENTITY ButtonType.accesskey "L">
+<!ENTITY submit.value "Gửi">
+<!ENTITY reset.value "Đặt lại">
+<!ENTITY button.value "Nút">
+
+<!ENTITY ButtonName.label "Tên:">
+<!ENTITY ButtonName.accesskey "T">
+<!ENTITY ButtonValue.label "Giá trị:">
+<!ENTITY ButtonValue.accesskey "G">
+<!ENTITY tabIndex.label "Chỉ mục Thẻ:">
+<!ENTITY tabIndex.accesskey "C">
+<!ENTITY ButtonDisabled.label "Bị vô hiệu">
+<!ENTITY ButtonDisabled.accesskey "B">
+<!ENTITY AccessKey.label "Phím truy cập:">
+<!ENTITY AccessKey.accesskey "P">
+
+<!ENTITY RemoveButton.label "Nút Gỡ bỏ">
+<!ENTITY RemoveButton.accesskey "N">
+
diff --git a/l10n-vi/editor/ui/chrome/dialogs/EditorColorProperties.dtd b/l10n-vi/editor/ui/chrome/dialogs/EditorColorProperties.dtd
new file mode 100644
index 0000000000..03e272e203
--- /dev/null
+++ b/l10n-vi/editor/ui/chrome/dialogs/EditorColorProperties.dtd
@@ -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/. -->
+
+<!-- Window title -->
+<!ENTITY windowTitle.label "Màu và nền trang">
+<!ENTITY pageColors.label "Màu Trang">
+<!ENTITY defaultColorsRadio.label "Màu mặc định của người đọc (Không thiết lập màu trong trang)">
+<!ENTITY defaultColorsRadio.accessKey "M">
+<!ENTITY defaultColorsRadio.tooltip "Dùng thiết lập màu từ trình duyệt của người đọc">
+<!ENTITY customColorsRadio.label "Dùng màu tùy chọn:">
+<!ENTITY customColorsRadio.accessKey "D">
+<!ENTITY customColorsRadio.tooltip "Những thiết lập màu này sẽ hiển thị đè lên các thiết lập trình duyệt của người đọc">
+
+<!ENTITY normalText.label "Chữ thường">
+<!ENTITY normalText.accessKey "B">
+<!ENTITY linkText.label "Chữ liên kết">
+<!ENTITY linkText.accessKey "l">
+<!ENTITY activeLinkText.label "Chữ liên kết đang chọn">
+<!ENTITY activeLinkText.accessKey "C">
+<!ENTITY visitedLinkText.label "Chữ liên kết đã thăm">
+<!ENTITY visitedLinkText.accessKey "t">
+<!ENTITY background.label "Nền:">
+<!ENTITY background.accessKey "N">
+<!ENTITY colon.character ":">
+<!ENTITY backgroundImage.label "Hình nền:">
+<!ENTITY backgroundImage.accessKey "H">
+<!ENTITY backgroundImage.tooltip "Dùng một tập tin ảnh làm nền cho trang của bạn">
+<!ENTITY backgroundImage.shortenedDataURI "URI dữ liệu rút ngắn (bản sao sẽ đặt URI đầy đủ vào bảng tạm)">
diff --git a/l10n-vi/editor/ui/chrome/dialogs/EditorFieldSetProperties.dtd b/l10n-vi/editor/ui/chrome/dialogs/EditorFieldSetProperties.dtd
new file mode 100644
index 0000000000..84a32d156a
--- /dev/null
+++ b/l10n-vi/editor/ui/chrome/dialogs/EditorFieldSetProperties.dtd
@@ -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/. -->
+
+<!ENTITY windowTitle.label "Thuộc tính bộ trường">
+
+<!ENTITY Legend.label "Chú thích">
+<!ENTITY Legend.accesskey "C">
+
+<!ENTITY EditLegendText.label "Chỉnh sửa Chú thích:">
+<!ENTITY EditLegendText.accesskey "s">
+<!ENTITY LegendAlign.label "Canh lề cho Chú thích:">
+<!ENTITY LegendAlign.accesskey "C">
+<!ENTITY AlignDefault.label "Mặc định">
+<!ENTITY AlignLeft.label "Trái">
+<!ENTITY AlignCenter.label "Giữa">
+<!ENTITY AlignRight.label "Phải">
+
+<!ENTITY RemoveFieldSet.label "Xóa Bộ Trường">
+<!ENTITY RemoveFieldSet.accesskey "X">
diff --git a/l10n-vi/editor/ui/chrome/dialogs/EditorFormProperties.dtd b/l10n-vi/editor/ui/chrome/dialogs/EditorFormProperties.dtd
new file mode 100644
index 0000000000..85b52c3c69
--- /dev/null
+++ b/l10n-vi/editor/ui/chrome/dialogs/EditorFormProperties.dtd
@@ -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/. -->
+
+<!ENTITY windowTitle.label "Thuộc tính Biểu mẫu">
+
+<!ENTITY Settings.label "Thiết lập">
+
+<!ENTITY FormName.label "Tên biểu mẫu:">
+<!ENTITY FormName.accesskey "T">
+<!ENTITY FormAction.label "URL thao tác:">
+<!ENTITY FormAction.accesskey "U">
+<!ENTITY FormMethod.label "Phương thức:">
+<!ENTITY FormMethod.accesskey "P">
+<!ENTITY FormEncType.label "Bảng mã:">
+<!ENTITY FormEncType.accesskey "B">
+<!ENTITY FormTarget.label "Khung Đích:">
+<!ENTITY FormTarget.accesskey "K">
+
+<!ENTITY RemoveForm.label "Xóa Biểu Mẫu">
+<!ENTITY RemoveForm.accesskey "X">
+
diff --git a/l10n-vi/editor/ui/chrome/dialogs/EditorHLineProperties.dtd b/l10n-vi/editor/ui/chrome/dialogs/EditorHLineProperties.dtd
new file mode 100644
index 0000000000..a30cf6ea57
--- /dev/null
+++ b/l10n-vi/editor/ui/chrome/dialogs/EditorHLineProperties.dtd
@@ -0,0 +1,27 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+
+<!-- Window title -->
+<!ENTITY windowTitle.label "Thuộc tính đường ngang">
+
+<!ENTITY dimensionsBox.label "Chiều">
+<!ENTITY heightEditField.label "Cao:">
+<!ENTITY heightEditField.accessKey "C">
+<!ENTITY widthEditField.label "Rộng:">
+<!ENTITY widthEditField.accessKey "R">
+<!ENTITY pixelsPopup.value "điểm ảnh">
+<!ENTITY alignmentBox.label "Canh hàng">
+<!ENTITY leftRadio.label "Trái">
+<!ENTITY leftRadio.accessKey "T">
+<!ENTITY centerRadio.label "Giữa">
+<!ENTITY centerRadio.accessKey "G">
+<!ENTITY rightRadio.label "Phải">
+<!ENTITY rightRadio.accessKey "P">
+
+<!ENTITY threeDShading.label "Bóng 3-D">
+<!ENTITY threeDShading.accessKey "B">
+<!ENTITY saveSettings.label "Sử dụng làm mặc định">
+<!ENTITY saveSettings.accessKey "D">
+<!ENTITY saveSettings.tooltip "Lưu các thiết lập này để dùng khi chèn các đường kẻ ngang mới">
diff --git a/l10n-vi/editor/ui/chrome/dialogs/EditorImageProperties.dtd b/l10n-vi/editor/ui/chrome/dialogs/EditorImageProperties.dtd
new file mode 100644
index 0000000000..02772637e0
--- /dev/null
+++ b/l10n-vi/editor/ui/chrome/dialogs/EditorImageProperties.dtd
@@ -0,0 +1,79 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- These strings are for use specifically in the editor's image and form image dialogs. -->
+
+<!-- Window title -->
+<!ENTITY windowTitle.label "Thuộc tính hình ảnh…">
+
+<!ENTITY pixelsPopup.value "pixel">
+
+<!-- These are in the Location tab panel -->
+<!ENTITY locationEditField.label "Đường dẫn hình ảnh:">
+<!ENTITY locationEditField.accessKey "L">
+<!ENTITY locationEditField.tooltip "Gõ vào tên hoặc vị trí của hình ảnh">
+<!ENTITY locationEditField.shortenedDataURI "URI dữ liệu rút ngắn (bản sao sẽ đặt URI đầy đủ vào bảng tạm)">
+<!ENTITY title.label "Ghi chú:">
+<!ENTITY title.accessKey "T">
+<!ENTITY title.tooltip "Thuộc tính html 'title' hiển thị dưới dạng ghi chú">
+<!ENTITY altText.label "Văn bản thay thế:">
+<!ENTITY altText.accessKey "A">
+<!ENTITY altTextEditField.tooltip "Gõ văn bản hiển thị thay cho hình ảnh">
+<!ENTITY noAltText.label "Không dùng văn bản thay thế">
+<!ENTITY noAltText.accessKey "D">
+
+<!ENTITY previewBox.label "Xem trước hình ảnh">
+
+<!-- These controls are in the Dimensions tab panel -->
+<!-- actualSize.label should be same as actualSizeRadio.label + ":" -->
+<!ENTITY actualSize.label "Kích thước thực:">
+<!ENTITY actualSizeRadio.label "Kích thước thực">
+<!ENTITY actualSizeRadio.accessKey "A">
+<!ENTITY actualSizeRadio.tooltip "Chuyển ảnh về kích thước thực">
+<!ENTITY customSizeRadio.label "Kích thước tùy biến">
+<!ENTITY customSizeRadio.accessKey "S">
+<!ENTITY customSizeRadio.tooltip "Thay đổi kích thước như đang hiển thị trên trang">
+<!ENTITY heightEditField.label "Chiều rộng:">
+<!ENTITY heightEditField.accessKey "G">
+<!ENTITY widthEditField.label "Chiều dài:">
+<!ENTITY widthEditField.accessKey "W">
+<!ENTITY constrainCheckbox.label "Giữ nguyên">
+<!ENTITY constrainCheckbox.accessKey "G">
+<!ENTITY constrainCheckbox.tooltip "Giữ nguyên tỉ lệ ảnh">
+
+<!-- These controls are in the Image Map box of the expanded area -->
+<!ENTITY imagemapBox.label "Bản đồ hình ảnh">
+<!ENTITY removeImageMapButton.label "Xóa">
+<!ENTITY removeImageMapButton.accessKey "R">
+
+<!-- These are the options for image alignment -->
+<!ENTITY alignment.label "Căn chỉnh văn bản theo hình ảnh">
+<!ENTITY bottomPopup.value "Theo phần dưới">
+<!ENTITY topPopup.value "Theo phần trên">
+<!ENTITY centerPopup.value "Ở giữa">
+<!ENTITY wrapRightPopup.value "Bao lại ở bên phải">
+<!ENTITY wrapLeftPopup.value "Bao lại ở bên trái">
+
+<!-- These controls are in the Spacing Box -->
+<!ENTITY spacingBox.label "Khoảng cách">
+<!ENTITY leftRightEditField.label "Trái và phải:">
+<!ENTITY leftRightEditField.accessKey "L">
+<!ENTITY topBottomEditField.label "Trên và dưới:">
+<!ENTITY topBottomEditField.accessKey "T">
+<!ENTITY borderEditField.label "Đường viền Liên tục:">
+<!ENTITY borderEditField.accessKey "B">
+
+<!-- These controls are in the Link Box -->
+<!ENTITY showImageLinkBorder.label "Hiện viền xung quanh ảnh liên kết">
+<!ENTITY showImageLinkBorder.accessKey "B">
+<!ENTITY LinkAdvancedEditButton.label "Sửa đổi liên kết nâng cao…">
+<!ENTITY LinkAdvancedEditButton.accessKey "L">
+<!ENTITY LinkAdvancedEditButton.tooltip "Thêm hoặc chỉnh sửa thuộc tính HTML, thuộc tính style và JavaScript">
+
+<!-- These tabs are currently used in the image input dialog -->
+<!ENTITY imageInputTab.label "Biểu mẫu">
+<!ENTITY imageLocationTab.label "Địa chỉ">
+<!ENTITY imageDimensionsTab.label "Kích thước">
+<!ENTITY imageAppearanceTab.label "Diện mạo">
+<!ENTITY imageLinkTab.label "Liên kết">
diff --git a/l10n-vi/editor/ui/chrome/dialogs/EditorInputProperties.dtd b/l10n-vi/editor/ui/chrome/dialogs/EditorInputProperties.dtd
new file mode 100644
index 0000000000..3eed28abd0
--- /dev/null
+++ b/l10n-vi/editor/ui/chrome/dialogs/EditorInputProperties.dtd
@@ -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/. -->
+
+<!ENTITY windowTitle.label "Thuộc tính trường biểu mẫu">
+<!ENTITY windowTitleImage.label "Thuộc tính hình ảnh biểu mẫu">
+
+<!ENTITY InputType.label "Kiểu trường">
+<!ENTITY InputType.accesskey "T">
+<!ENTITY text.value "Văn bản">
+<!ENTITY password.value "Mật khẩu">
+<!ENTITY checkbox.value "Hộp chọn">
+<!ENTITY radio.value "Nút radio">
+<!ENTITY submit.value "Nút gửi">
+<!ENTITY reset.value "Nút đặt lại">
+<!ENTITY file.value "Tập tin">
+<!ENTITY hidden.value "Ẩn">
+<!ENTITY image.value "Hình">
+<!ENTITY button.value "Nút">
+
+<!ENTITY InputSettings.label "Cài đặt trường">
+<!ENTITY InputName.label "Tên Trường:">
+<!ENTITY InputName.accesskey "T">
+<!ENTITY GroupName.label "Tên Nhóm:">
+<!ENTITY GroupName.accesskey "T">
+<!ENTITY InputValue.label "Giá trị Trường:">
+<!ENTITY InputValue.accesskey "G">
+<!ENTITY InitialValue.label "Giá trị Ban đầu:">
+<!ENTITY InitialValue.accesskey "G">
+<!ENTITY InputChecked.label "Được đánh dấu Đầu tiên">
+<!ENTITY InputChecked.accesskey "u">
+<!ENTITY InputSelected.label "Được chọn Đầu tiên">
+<!ENTITY InputSelected.accesskey "n">
+<!ENTITY InputReadOnly.label "Chỉ Đọc">
+<!ENTITY InputReadOnly.accesskey "C">
+<!ENTITY InputDisabled.label "Bị vô hiệu">
+<!ENTITY InputDisabled.accesskey "B">
+<!ENTITY tabIndex.label "Chỉ mục Thẻ:">
+<!ENTITY tabIndex.accesskey "m">
+<!ENTITY TextSize.label "Kích thước Trường:">
+<!ENTITY TextSize.accesskey "h">
+<!ENTITY TextLength.label "Độ dài Tối đa:">
+<!ENTITY TextLength.accesskey "d">
+<!ENTITY AccessKey.label "Phím truy cập:">
+<!ENTITY AccessKey.accesskey "P">
+<!ENTITY Accept.label "Kiểu chấp thuận:">
+<!ENTITY Accept.accesskey "i">
+
+<!ENTITY ImageProperties.label "Thuộc tính Hình ảnh…">
+<!ENTITY ImageProperties.accesskey "u">
diff --git a/l10n-vi/editor/ui/chrome/dialogs/EditorInsertChars.dtd b/l10n-vi/editor/ui/chrome/dialogs/EditorInsertChars.dtd
new file mode 100644
index 0000000000..f1ed0b16bf
--- /dev/null
+++ b/l10n-vi/editor/ui/chrome/dialogs/EditorInsertChars.dtd
@@ -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/. -->
+
+
+<!-- Window title -->
+<!ENTITY windowTitle.label "Chèn ký tự">
+<!ENTITY category.label "Phân mục">
+<!ENTITY letter.label "Chữ cái:">
+<!ENTITY letter.accessKey "L">
+<!ENTITY character.label "Kí tự:">
+<!ENTITY character.accessKey "C">
+<!ENTITY accentUpper.label "Dấu HOA">
+<!ENTITY accentLower.label "Dấu thường">
+<!ENTITY otherUpper.label "Chữ HOA khác">
+<!ENTITY otherLower.label "Chữ thường khác">
+<!ENTITY commonSymbols.label "Biểu tượng phổ biến">
+<!ENTITY insertButton.label "Chèn">
+<!ENTITY closeButton.label "Đóng">
diff --git a/l10n-vi/editor/ui/chrome/dialogs/EditorInsertMath.dtd b/l10n-vi/editor/ui/chrome/dialogs/EditorInsertMath.dtd
new file mode 100644
index 0000000000..c5c08ea2fa
--- /dev/null
+++ b/l10n-vi/editor/ui/chrome/dialogs/EditorInsertMath.dtd
@@ -0,0 +1,21 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- Window title -->
+<!ENTITY windowTitle.label "Chèn toán">
+
+<!ENTITY sourceEditField.label "Nhập mã nguồn LaTeX:">
+
+<!ENTITY options.label "Tùy chọn">
+<!ENTITY optionInline.label "Chế độ nội dòng">
+<!ENTITY optionInline.accesskey "N">
+<!ENTITY optionDisplay.label "Chế độ hiển thị">
+<!ENTITY optionDisplay.accesskey "D">
+<!ENTITY optionLTR.label "Hướng từ trái sang phải">
+<!ENTITY optionLTR.accesskey "L">
+<!ENTITY optionRTL.label "Hướng từ phải sang trái">
+<!ENTITY optionRTL.accesskey "R">
+
+<!ENTITY insertButton.label "Chèn">
+<!ENTITY insertButton.accesskey "I">
diff --git a/l10n-vi/editor/ui/chrome/dialogs/EditorInsertSource.dtd b/l10n-vi/editor/ui/chrome/dialogs/EditorInsertSource.dtd
new file mode 100644
index 0000000000..8c25abc2d9
--- /dev/null
+++ b/l10n-vi/editor/ui/chrome/dialogs/EditorInsertSource.dtd
@@ -0,0 +1,15 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- Window title -->
+<!ENTITY windowTitle.label "Chèn HTML">
+<!ENTITY sourceEditField.label "Chèn văn bản và thẻ HTML:">
+<!ENTITY example.label "Ví dụ: ">
+<!-- LOCALIZATION NOTE (exampleOpenTag.label): DONT_TRANSLATE: they are text for HTML tagnames: "<i>" and "</i>" -->
+<!ENTITY exampleOpenTag.label "&lt;i&gt;">
+<!-- LOCALIZATION NOTE (exampleCloseTag.label): DONT_TRANSLATE: they are text for HTML tagnames: "<i>" and "</i>" -->
+<!ENTITY exampleCloseTag.label "&lt;/i&gt;">
+<!ENTITY exampleText.label "Xin chào thế giới!">
+<!ENTITY insertButton.label "Chèn">
+<!ENTITY insertButton.accesskey "I">
diff --git a/l10n-vi/editor/ui/chrome/dialogs/EditorInsertTOC.dtd b/l10n-vi/editor/ui/chrome/dialogs/EditorInsertTOC.dtd
new file mode 100644
index 0000000000..6915be90da
--- /dev/null
+++ b/l10n-vi/editor/ui/chrome/dialogs/EditorInsertTOC.dtd
@@ -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/. -->
+
+<!ENTITY Window.title "Mục lục">
+<!ENTITY buildToc.label "Tạo mục lục từ:">
+<!ENTITY tag.label "Thẻ:">
+<!ENTITY class.label "Lớp:">
+<!ENTITY header1.label "Cấp 1">
+<!ENTITY header2.label "Cấp 2">
+<!ENTITY header3.label "Cấp 3">
+<!ENTITY header4.label "Cấp 4">
+<!ENTITY header5.label "Cấp 5">
+<!ENTITY header6.label "Cấp 6">
+<!ENTITY makeReadOnly.label "Tạo mục lục chỉ-đọc">
+<!ENTITY orderedList.label "Đánh số tất cả các mục trong mục lục">
diff --git a/l10n-vi/editor/ui/chrome/dialogs/EditorInsertTable.dtd b/l10n-vi/editor/ui/chrome/dialogs/EditorInsertTable.dtd
new file mode 100644
index 0000000000..5bf190007c
--- /dev/null
+++ b/l10n-vi/editor/ui/chrome/dialogs/EditorInsertTable.dtd
@@ -0,0 +1,18 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- Window title -->
+<!ENTITY windowTitle.label "Chèn bảng">
+
+<!ENTITY size.label "Kích thước">
+<!ENTITY numRowsEditField.label "Hàng:">
+<!ENTITY numRowsEditField.accessKey "R">
+<!ENTITY numColumnsEditField.label "Cột:">
+<!ENTITY numColumnsEditField.accessKey "C">
+<!ENTITY widthEditField.label "Rộng:">
+<!ENTITY widthEditField.accessKey "W">
+<!ENTITY borderEditField.label "Viền:">
+<!ENTITY borderEditField.accessKey "B">
+<!ENTITY borderEditField.tooltip "Gõ một số để tạo đường viền bảng, hoặc gõ số không (0) để không tạo viền">
+<!ENTITY pixels.label "điểm ảnh">
diff --git a/l10n-vi/editor/ui/chrome/dialogs/EditorLabelProperties.dtd b/l10n-vi/editor/ui/chrome/dialogs/EditorLabelProperties.dtd
new file mode 100644
index 0000000000..551cafe326
--- /dev/null
+++ b/l10n-vi/editor/ui/chrome/dialogs/EditorLabelProperties.dtd
@@ -0,0 +1,18 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY windowTitle.label "Thuộc tính nhãn">
+
+<!ENTITY Settings.label "Cài đặt">
+<!ENTITY Settings.accesskey "S">
+
+<!ENTITY EditLabelText.label "Chỉnh sửa văn bản:">
+<!ENTITY EditLabelText.accesskey "T">
+<!ENTITY LabelFor.label "Để kiểm soát:">
+<!ENTITY LabelFor.accesskey "F">
+<!ENTITY AccessKey.label "Phím truy cập:">
+<!ENTITY AccessKey.accesskey "K">
+
+<!ENTITY RemoveLabel.label "Xóa nhãn">
+<!ENTITY RemoveLabel.accesskey "R">
diff --git a/l10n-vi/editor/ui/chrome/dialogs/EditorLinkProperties.dtd b/l10n-vi/editor/ui/chrome/dialogs/EditorLinkProperties.dtd
new file mode 100644
index 0000000000..8111779711
--- /dev/null
+++ b/l10n-vi/editor/ui/chrome/dialogs/EditorLinkProperties.dtd
@@ -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/. -->
+
+<!ENTITY windowTitle.label "Thuộc tính liên kết">
+<!ENTITY LinkURLBox.label "Địa chỉ liên kết">
diff --git a/l10n-vi/editor/ui/chrome/dialogs/EditorListProperties.dtd b/l10n-vi/editor/ui/chrome/dialogs/EditorListProperties.dtd
new file mode 100644
index 0000000000..34204478e8
--- /dev/null
+++ b/l10n-vi/editor/ui/chrome/dialogs/EditorListProperties.dtd
@@ -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/. -->
+
+
+<!-- Window title -->
+<!ENTITY windowTitle.label "Thuộc tính danh sách">
+
+<!ENTITY ListType.label "Kiểu danh sách">
+<!ENTITY bulletStyle.label "Kiểu Bullet:">
+<!ENTITY startingNumber.label "Bắt đầu từ:">
+<!ENTITY startingNumber.accessKey "S">
+<!ENTITY none.value "Không có">
+<!ENTITY bulletList.value "Danh sách Bullet (Không đánh số)">
+<!ENTITY numberList.value "Danh sách đánh số">
+<!ENTITY definitionList.value "Danh sách định nghĩa">
+<!ENTITY changeEntireListRadio.label "Thay đổi toàn bộ danh sách">
+<!ENTITY changeEntireListRadio.accessKey "C">
+<!ENTITY changeSelectedRadio.label "Chỉ thay đổi các mục được chọn">
+<!ENTITY changeSelectedRadio.accessKey "I">
diff --git a/l10n-vi/editor/ui/chrome/dialogs/EditorPageProperties.dtd b/l10n-vi/editor/ui/chrome/dialogs/EditorPageProperties.dtd
new file mode 100644
index 0000000000..bf50c9b1fe
--- /dev/null
+++ b/l10n-vi/editor/ui/chrome/dialogs/EditorPageProperties.dtd
@@ -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/. -->
+
+<!-- Window title -->
+<!ENTITY windowTitle.label "Thuộc tính trang">
+<!ENTITY location.label "Địa chỉ:">
+<!ENTITY lastModified.label "Sửa đổi lần cuối:">
+<!ENTITY titleInput.label "Tiêu đề:">
+<!ENTITY titleInput.accessKey "T">
+<!ENTITY authorInput.label "Tác giả:">
+<!ENTITY authorInput.accessKey "A">
+<!ENTITY descriptionInput.label "Mô tả:">
+<!ENTITY descriptionInput.accessKey "D">
+<!ENTITY locationNewPage.label "[Trang mới, chưa lưu]">
+<!ENTITY EditHEADSource1.label "Người dùng nâng cao:">
+<!ENTITY EditHEADSource2.label "Để chỉnh sửa nội dung của phần &lt;đầu&gt;, hãy dùng &quot;mã nguồn HTML&quot; trên menu Hiển thị hoặc thanh công cụ của chế độ chỉnh sửa.">
diff --git a/l10n-vi/editor/ui/chrome/dialogs/EditorPersonalDictionary.dtd b/l10n-vi/editor/ui/chrome/dialogs/EditorPersonalDictionary.dtd
new file mode 100644
index 0000000000..b595e87e16
--- /dev/null
+++ b/l10n-vi/editor/ui/chrome/dialogs/EditorPersonalDictionary.dtd
@@ -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/. -->
+
+<!-- Window title -->
+<!ENTITY windowTitle.label "Từ điển cá nhân">
+
+<!ENTITY wordEditField.label "Từ mới:">
+<!ENTITY wordEditField.accessKey "N">
+<!ENTITY AddButton.label "Thêm">
+<!ENTITY AddButton.accessKey "A">
+<!ENTITY DictionaryList.label "Các từ trong từ điển:">
+<!ENTITY DictionaryList.accessKey "W">
+<!ENTITY ReplaceButton.label "Thay thế">
+<!ENTITY ReplaceButton.accessKey "R">
+<!ENTITY RemoveButton.label "Xóa">
+<!ENTITY RemoveButton.accessKey "e">
+
+<!ENTITY CloseButton.label "Đóng">
+<!ENTITY CloseButton.accessKey "C">
diff --git a/l10n-vi/editor/ui/chrome/dialogs/EditorPublish.dtd b/l10n-vi/editor/ui/chrome/dialogs/EditorPublish.dtd
new file mode 100644
index 0000000000..e78689ccf9
--- /dev/null
+++ b/l10n-vi/editor/ui/chrome/dialogs/EditorPublish.dtd
@@ -0,0 +1,65 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- Window title -->
+<!ENTITY windowTitle.label "Xuất bản trang">
+<!ENTITY windowTitleSettings.label "Cài đặt xuất bản">
+<!ENTITY publishTab.label "Xuất bản">
+<!ENTITY settingsTab.label "Thiết lập">
+<!ENTITY publishButton.label "Xuất bản">
+
+<!-- Publish Tab Panel -->
+<!ENTITY siteList.label "Tên trang web:">
+<!ENTITY siteList.accesskey "e">
+<!ENTITY siteList.tooltip "Chọn trang web mà bạn muốn xuất bản tới">
+<!ENTITY newSiteButton.label "Trang web mới">
+<!ENTITY newSiteButton.accesskey "N">
+<!ENTITY docDirList.label "Thư mục con trên trang web của trang này:">
+<!ENTITY docDirList.accesskey "T">
+<!ENTITY docDirList.tooltip "Chọn hoặc nhập tên của thư mục con từ xa của trang này">
+<!ENTITY publishImgCheckbox.label "Bao gồm hình ảnh và tập tin khác">
+<!ENTITY publishImgCheckbox.accesskey "o">
+<!ENTITY publishImgCheckbox.tooltip "Xuất bản hình ảnh và các tập tin khác được trang này trỏ tới">
+<!ENTITY sameLocationRadio.label "Dùng cùng địa chỉ với trang">
+<!ENTITY sameLocationRadio.accesskey "U">
+<!ENTITY sameLocationRadio.tooltip "Xuất bản tập tin đến cùng địa chỉ với trang">
+<!ENTITY useSubdirRadio.label "Dùng thư mục con của trang web này:">
+<!ENTITY useSubdirRadio.accesskey "d">
+<!ENTITY useSubdirRadio.tooltip "Xuất bản tập tin đến thư mục con từ xa">
+<!ENTITY otherDirList.tooltip "Chọn hoặc nhập tên của thư mục con từ xa để xuất bản tập tin">
+<!ENTITY pageTitle.label "Tiêu đề trang:">
+<!ENTITY pageTitle.accesskey "T">
+<!ENTITY pageTitle.tooltip "Nhập một tiêu đề để xác định trang trong cửa sổ và các trang đánh dấu">
+<!ENTITY pageTitleExample.label "vd.: &quot;Trang web của tôi&quot;">
+<!ENTITY filename.label "Tên tập tin:">
+<!ENTITY filename.accesskey "F">
+<!ENTITY filename.tooltip "Nhập tên cho tập tin này, viết thêm '.html' nếu là trang web">
+<!ENTITY filenameExample.label "vd.: &quot;trangweb.html&quot;">
+<!ENTITY setDefaultButton.label "Đặt làm mặc định">
+<!ENTITY setDefaultButton.accesskey "D">
+<!ENTITY removeButton.label "Xóa trang">
+<!ENTITY removeButton.accesskey "R">
+
+<!-- Settings Tab Panel -->
+<!ENTITY publishSites.label "Đang xuất bản trang web">
+<!ENTITY serverInfo.label "Thông tin máy chủ">
+<!ENTITY loginInfo.label "Thông tin đăng nhập">
+<!ENTITY siteName.label "Tên trang web:">
+<!ENTITY siteName.accesskey "e">
+<!ENTITY siteName.tooltip "Một tên hiệu để nhận dạng trang web xuất bản này (vd: 'SiteCuaToi')">
+<!ENTITY siteUrl.label "Địa chỉ xuất bản (e.g.: 'ftp://ftp.myisp.com/myusername'):">
+<!ENTITY siteUrl.accesskey "a">
+<!ENTITY siteUrl.tooltip "Địa chỉ FTP:// hoặc HTTP:// được cung cấp bởi ISP hoặc nhà dịch vụ lưu trữ web của bạn">
+<!ENTITY browseUrl.label "Địa chỉ HTTP trang chủ của bạn (vd.: 'http://www.tênmiền.com/têntôi'):">
+<!ENTITY browseUrl.accesskey "T">
+<!ENTITY browseUrl.tooltip "Địa chỉ HTTP:// của thư mục chủ của bạn (không kèm tên tập tin)">
+<!ENTITY username.label "Tên đăng nhập:">
+<!ENTITY username.accesskey "U">
+<!ENTITY username.tooltip "Tên đăng nhập mà bạn dùng để đăng nhập vào ISP hoặc nhà dịch vụ lưu trữ web của bạn">
+<!ENTITY password.label "Mật khẩu:">
+<!ENTITY password.accesskey "w">
+<!ENTITY password.tooltip "Mật khẩu đi cùng với tên đăng nhập">
+<!ENTITY savePassword.label "Lưu mật khẩu">
+<!ENTITY savePassword.accesskey "S">
+<!ENTITY savePassword.tooltip "Chọn để lưu an toàn mật khẩu của bạn bằng trình quản lí mật khẩu">
diff --git a/l10n-vi/editor/ui/chrome/dialogs/EditorPublishProgress.dtd b/l10n-vi/editor/ui/chrome/dialogs/EditorPublishProgress.dtd
new file mode 100644
index 0000000000..bb208e24f9
--- /dev/null
+++ b/l10n-vi/editor/ui/chrome/dialogs/EditorPublishProgress.dtd
@@ -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/. -->
+
+<!-- Window title -->
+<!ENTITY siteUrl.label "URL trang web:">
+<!ENTITY docSubdir.label "Thư mục con của trang:">
+<!ENTITY otherSubdir.label "Thư mục con của hình:">
+
+<!ENTITY status.label "Xuất bản…">
+<!ENTITY fileList.label "Trạng thái xuất bản">
+<!ENTITY succeeded.label "Thành công">
+<!ENTITY failed.label "Thất bại">
+
+<!ENTITY keepOpen "Giữ cửa sổ mở sau khi việc xuất bản hoàn tất.">
+<!ENTITY closeButton.label "Đóng">
diff --git a/l10n-vi/editor/ui/chrome/dialogs/EditorReplace.dtd b/l10n-vi/editor/ui/chrome/dialogs/EditorReplace.dtd
new file mode 100644
index 0000000000..b76a0ea09b
--- /dev/null
+++ b/l10n-vi/editor/ui/chrome/dialogs/EditorReplace.dtd
@@ -0,0 +1,27 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- extracted from EdReplace.xul -->
+
+<!ENTITY replaceDialog.title "Tìm và thay thế">
+<!ENTITY findField.label "Tìm văn bản:">
+<!ENTITY findField.accesskey "n">
+<!ENTITY replaceField.label "Thay thế bằng:">
+<!ENTITY replaceField.accesskey "a">
+<!ENTITY caseSensitiveCheckbox.label "Phân biệt HOA-thường">
+<!ENTITY caseSensitiveCheckbox.accesskey "M">
+<!ENTITY wrapCheckbox.label "Bao lại xung quanh">
+<!ENTITY wrapCheckbox.accesskey "W">
+<!ENTITY backwardsCheckbox.label "Tìm kiếm ngược">
+<!ENTITY backwardsCheckbox.accesskey "b">
+<!ENTITY findNextButton.label "Tìm tiếp">
+<!ENTITY findNextButton.accesskey "F">
+<!ENTITY replaceButton.label "Thay thế">
+<!ENTITY replaceButton.accesskey "R">
+<!ENTITY replaceAndFindButton.label "Thay thế và tìm">
+<!ENTITY replaceAndFindButton.accesskey "d">
+<!ENTITY replaceAllButton.label "Thay thế tất cả">
+<!ENTITY replaceAllButton.accesskey "A">
+<!ENTITY closeButton.label "Đóng">
+<!ENTITY closeButton.accesskey "C">
diff --git a/l10n-vi/editor/ui/chrome/dialogs/EditorSaveAsCharset.dtd b/l10n-vi/editor/ui/chrome/dialogs/EditorSaveAsCharset.dtd
new file mode 100644
index 0000000000..f4cb0e3497
--- /dev/null
+++ b/l10n-vi/editor/ui/chrome/dialogs/EditorSaveAsCharset.dtd
@@ -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/. -->
+
+<!-- These strings are generic to all or most of the editor's dialogs. -->
+
+<!-- This button is for the progressive disclosure of additional editing functionality -->
+
+<!-- These strings are for use specifically in the editor's link dialog. -->
+<!ENTITY windowTitle2.label "Lưu và thay đổi bảng mã văn bản">
+<!ENTITY documentTitleTitle.label "Tiêu đề trang">
+<!ENTITY documentCharsetTitle2.label "Bảng mã văn bản">
+<!ENTITY documentCharsetDesc2.label "Chọn đoạn mã văn bản bạn muốn lưu tài liệu trong:">
+<!ENTITY documentExportToText.label "Xuất thành văn bản">
diff --git a/l10n-vi/editor/ui/chrome/dialogs/EditorSelectProperties.dtd b/l10n-vi/editor/ui/chrome/dialogs/EditorSelectProperties.dtd
new file mode 100644
index 0000000000..38aaea47d3
--- /dev/null
+++ b/l10n-vi/editor/ui/chrome/dialogs/EditorSelectProperties.dtd
@@ -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/. -->
+
+<!ENTITY windowTitle.label "Thuộc tính danh sách chọn">
+
+<!ENTITY Select.label "Danh sách chọn">
+<!ENTITY SelectName.label "Tên danh sách:">
+<!ENTITY SelectName.accesskey "N">
+<!ENTITY SelectSize.label "Chiều cao:">
+<!ENTITY SelectSize.accesskey "H">
+<!ENTITY SelectMultiple.label "Nhiều lựa chọn">
+<!ENTITY SelectMultiple.accesskey "M">
+<!ENTITY SelectDisabled.label "Đã tắt">
+<!ENTITY SelectDisabled.accesskey "D">
+<!ENTITY SelectTabIndex.label "Chỉ mục thẻ:">
+<!ENTITY SelectTabIndex.accesskey "I">
+
+<!ENTITY OptGroup.label "Tùy chọn nhóm">
+<!ENTITY OptGroupLabel.label "Nhãn:">
+<!ENTITY OptGroupLabel.accesskey "L">
+<!ENTITY OptGroupDisabled.label "Đã tắt">
+<!ENTITY OptGroupDisabled.accesskey "D">
+
+<!ENTITY Option.label "Tùy chọn">
+<!ENTITY OptionText.label "Văn bản:">
+<!ENTITY OptionText.accesskey "T">
+<!ENTITY OptionValue.label "Giá trị:">
+<!ENTITY OptionValue.accesskey "V">
+<!ENTITY OptionSelected.label "Được chọn đầu tiên">
+<!ENTITY OptionSelected.accesskey "S">
+<!ENTITY OptionDisabled.label "Đã tắt">
+<!ENTITY OptionDisabled.accesskey "D">
+
+<!ENTITY TextHeader.label "Văn bản">
+<!ENTITY ValueHeader.label "Giá trị">
+<!ENTITY SelectedHeader.label "Đã chọn">
+
+<!ENTITY AddOption.label "Thêm tùy chọn">
+<!ENTITY AddOption.accesskey "O">
+<!ENTITY AddOptGroup.label "Thêm nhóm">
+<!ENTITY AddOptGroup.accesskey "G">
+<!ENTITY RemoveElement.label "Xóa">
+<!ENTITY RemoveElement.accesskey "R">
+<!ENTITY MoveElementUp.label "Di chuyển lên">
+<!ENTITY MoveElementUp.accesskey "U">
+<!ENTITY MoveElementDown.label "Di chuyển xuống">
+<!ENTITY MoveElementDown.accesskey "D">
diff --git a/l10n-vi/editor/ui/chrome/dialogs/EditorSnapToGrid.dtd b/l10n-vi/editor/ui/chrome/dialogs/EditorSnapToGrid.dtd
new file mode 100644
index 0000000000..314de3f2f8
--- /dev/null
+++ b/l10n-vi/editor/ui/chrome/dialogs/EditorSnapToGrid.dtd
@@ -0,0 +1,13 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+
+<!-- Window title -->
+
+<!ENTITY enableSnapToGrid.accessKey "e">
+
+<!ENTITY sizeEditField.label "Kích thước:">
+<!ENTITY sizeEditField.accessKey "S">
+
+<!ENTITY pixelsLabel.value "điểm ảnh">
diff --git a/l10n-vi/editor/ui/chrome/dialogs/EditorSpellCheck.dtd b/l10n-vi/editor/ui/chrome/dialogs/EditorSpellCheck.dtd
new file mode 100644
index 0000000000..3c017384cc
--- /dev/null
+++ b/l10n-vi/editor/ui/chrome/dialogs/EditorSpellCheck.dtd
@@ -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/. -->
+
+<!-- Window title -->
+<!ENTITY windowTitle.label "Kiểm tra chính tả">
+
+<!ENTITY misspelledWord.label "Từ sai chính tả:">
+<!ENTITY wordEditField.label "Thay thế bằng:">
+<!ENTITY wordEditField.accessKey "w">
+<!ENTITY checkwordButton.label "Kiểm tra từ">
+<!ENTITY checkwordButton.accessKey "k">
+<!ENTITY suggestions.label "Đề xuất:">
+<!ENTITY suggestions.accessKey "u">
+<!ENTITY ignoreButton.label "Bỏ qua">
+<!ENTITY ignoreButton.accessKey "I">
+<!ENTITY ignoreAllButton.label "Bỏ qua tất cả">
+<!ENTITY ignoreAllButton.accessKey "n">
+<!ENTITY replaceButton.label "Thay thế">
+<!ENTITY replaceButton.accessKey "R">
+<!ENTITY replaceAllButton.label "Thay thế tất cả">
+<!ENTITY replaceAllButton.accessKey "A">
+<!ENTITY stopButton.label "Dừng">
+<!ENTITY stopButton.accessKey "o">
+<!ENTITY userDictionary.label "Từ điển cá nhân:">
+<!ENTITY moreDictionaries.label "Tải thêm từ điển…">
+<!ENTITY addToUserDictionaryButton.label "Thêm từ">
+<!ENTITY addToUserDictionaryButton.accessKey "d">
+<!ENTITY editUserDictionaryButton.label "Chỉnh sửa…">
+<!ENTITY editUserDictionaryButton.accessKey "C">
+<!ENTITY recheckButton2.label "Kiểm tra lại văn bản">
+<!ENTITY recheckButton2.accessKey "T">
+<!ENTITY closeButton.label "Đóng">
+<!ENTITY closeButton.accessKey "C">
+<!ENTITY sendButton.label "Gửi">
+<!ENTITY sendButton.accessKey "S">
+<!ENTITY languagePopup.label "Ngôn ngữ:">
+<!ENTITY languagePopup.accessKey "L">
diff --git a/l10n-vi/editor/ui/chrome/dialogs/EditorTableProperties.dtd b/l10n-vi/editor/ui/chrome/dialogs/EditorTableProperties.dtd
new file mode 100644
index 0000000000..1616736fc7
--- /dev/null
+++ b/l10n-vi/editor/ui/chrome/dialogs/EditorTableProperties.dtd
@@ -0,0 +1,75 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY tableWindow.title "Thuộc tính bảng">
+<!ENTITY applyButton.label "Áp dụng">
+<!ENTITY applyButton.accesskey "A">
+<!ENTITY closeButton.label "Đóng">
+<!ENTITY tableTab.label "Bảng">
+<!ENTITY cellTab.label "Ô">
+<!ENTITY tableRows.label "Hàng:">
+<!ENTITY tableRows.accessKey "R">
+<!ENTITY tableColumns.label "Cột:">
+<!ENTITY tableColumns.accessKey "C">
+<!ENTITY tableHeight.label "Cao:">
+<!ENTITY tableHeight.accessKey "G">
+<!ENTITY tableWidth.label "Rộng:">
+<!ENTITY tableWidth.accessKey "W">
+<!ENTITY tableBorderSpacing.label "Viền và khoảng cách">
+<!ENTITY tableBorderWidth.label "Viền:">
+<!ENTITY tableBorderWidth.accessKey "V">
+<!ENTITY tableSpacing.label "Khoảng cách:">
+<!ENTITY tableSpacing.accessKey "S">
+<!ENTITY tablePadding.label "Khoảng đệm:">
+<!ENTITY tablePadding.accessKey "P">
+<!ENTITY tablePxBetwCells.label "điểm ảnh giữa các ô">
+<!ENTITY tablePxBetwBrdrCellContent.label "điểm ảnh giữa viền ô và nội dung">
+<!ENTITY tableAlignment.label "Căn chỉnh bảng:">
+<!ENTITY tableAlignment.accessKey "T">
+<!ENTITY tableCaption.label "Tiêu đề:">
+<!ENTITY tableCaption.accessKey "N">
+<!ENTITY tableCaptionAbove.label "Trên bảng">
+<!ENTITY tableCaptionBelow.label "Dưới bảng">
+<!ENTITY tableCaptionLeft.label "Bên trái bảng">
+<!ENTITY tableCaptionRight.label "Bên phải bảng">
+<!ENTITY tableCaptionNone.label "Không có">
+<!ENTITY tableInheritColor.label "(Để cho màu trang hiện xuyên suốt)">
+
+<!ENTITY cellSelection.label "Phần được chọn">
+<!ENTITY cellSelectCell.label "Ô">
+<!ENTITY cellSelectRow.label "Hàng">
+<!ENTITY cellSelectColumn.label "Cột">
+<!ENTITY cellSelectNext.label "Sau">
+<!ENTITY cellSelectNext.accessKey "N">
+<!ENTITY cellSelectPrevious.label "Trước">
+<!ENTITY cellSelectPrevious.accessKey "P">
+<!ENTITY applyBeforeChange.label "Thay đổi hiện tại sẽ được áp dụng sau khi thay đổi phần được chọn.">
+<!ENTITY cellContentAlignment.label "Căn chỉnh nội dung">
+<!ENTITY cellHorizontal.label "Ngang:">
+<!ENTITY cellHorizontal.accessKey "Z">
+<!ENTITY cellVertical.label "Dọc:">
+<!ENTITY cellVertical.accessKey "V">
+<!ENTITY cellStyle.label "Kiểu ô:">
+<!ENTITY cellStyle.accessKey "C">
+<!ENTITY cellNormal.label "Bình thường">
+<!ENTITY cellHeader.label "Header">
+<!ENTITY cellTextWrap.label "Ngắt dòng văn bản:">
+<!ENTITY cellTextWrap.accessKey "T">
+<!ENTITY cellWrap.label "Ngắt dòng">
+<!ENTITY cellNoWrap.label "Không ngắt dòng">
+<!ENTITY cellAlignTop.label "Trên cùng">
+<!ENTITY cellAlignMiddle.label "Giữa">
+<!ENTITY cellAlignBottom.label "Dưới cùng">
+<!ENTITY cellAlignJustify.label "Hai Bên">
+<!ENTITY cellInheritColor.label "(Để màu bảng hiện xuyên suốt)">
+<!ENTITY cellUseCheckboxHelp.label "Sử dụng hộp kiểm để xác định thuộc tính nào sẽ được áp dụng cho tất cả các ô được chọn">
+
+<!-- Used in both Table and Cell panels -->
+<!ENTITY size.label "Kích thước">
+<!ENTITY pixels.label "điểm ảnh">
+<!ENTITY backgroundColor.label "Màu nền:">
+<!ENTITY backgroundColor.accessKey "B">
+<!ENTITY AlignLeft.label "Trái">
+<!ENTITY AlignCenter.label "Giữa">
+<!ENTITY AlignRight.label "Phải">
diff --git a/l10n-vi/editor/ui/chrome/dialogs/EditorTextAreaProperties.dtd b/l10n-vi/editor/ui/chrome/dialogs/EditorTextAreaProperties.dtd
new file mode 100644
index 0000000000..5efbe58bc7
--- /dev/null
+++ b/l10n-vi/editor/ui/chrome/dialogs/EditorTextAreaProperties.dtd
@@ -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/. -->
+
+<!ENTITY windowTitle.label "Thuộc tính Vùng Văn Bản">
+
+<!ENTITY Settings.label "Thiết lập">
+
+<!ENTITY TextAreaName.label "Tên trường:">
+<!ENTITY TextAreaName.accessKey "T">
+<!ENTITY TextAreaRows.label "Hàng:">
+<!ENTITY TextAreaRows.accessKey "H">
+<!ENTITY TextAreaCols.label "Cột:">
+<!ENTITY TextAreaCols.accessKey "C">
+<!ENTITY TextAreaReadOnly.label "Chỉ đọc">
+<!ENTITY TextAreaReadOnly.accessKey "h">
+<!ENTITY TextAreaDisabled.label "Đã tắt">
+<!ENTITY TextAreaDisabled.accessKey "B">
+<!ENTITY TextAreaTabIndex.label "Chỉ mục thẻ:">
+<!ENTITY TextAreaTabIndex.accessKey "m">
+<!ENTITY TextAreaAccessKey.label "Phím truy cập:">
+<!ENTITY TextAreaAccessKey.accessKey "P">
+<!ENTITY InitialText.label "Văn bản ban đầu:">
+<!ENTITY InitialText.accessKey "V">
+
+<!ENTITY TextAreaWrap.label "Chế độ ngắt dòng:">
+<!ENTITY TextAreaWrap.accessKey "B">
+<!ENTITY WrapDefault.value "Mặc định">
+<!ENTITY WrapOff.value "Tắt">
+<!ENTITY WrapHard.value "Cứng">
+<!ENTITY WrapSoft.value "Mềm">
+<!ENTITY WrapPhysical.value "Vật lí">
+<!ENTITY WrapVirtual.value "Ảo">
diff --git a/l10n-vi/editor/ui/chrome/region/region.properties b/l10n-vi/editor/ui/chrome/region/region.properties
new file mode 100644
index 0000000000..39292d1b7b
--- /dev/null
+++ b/l10n-vi/editor/ui/chrome/region/region.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/.
+
+#
+# editor.js
+# editor.properties
+editor.throbber.url=http://www.seamonkey-project.org/
+
diff --git a/l10n-vi/extensions/spellcheck/hunspell/vi-x-KieuCu.[Chuan].aff b/l10n-vi/extensions/spellcheck/hunspell/vi-x-KieuCu.[Chuan].aff
new file mode 100644
index 0000000000..17bef9a1f9
--- /dev/null
+++ b/l10n-vi/extensions/spellcheck/hunspell/vi-x-KieuCu.[Chuan].aff
@@ -0,0 +1,70 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 UTF-8
+TRY naohiugtcedmylrbvskpxqfjwzNAOHIUGTCEDMYLRBVSKPXQFJWZ-
+
+MAP 40
+MAP ảã
+MAP ẩẫ
+MAP ẳẵ
+MAP ẻẽ
+MAP ểễ
+MAP ỉĩ
+MAP ỏõ
+MAP ổỗ
+MAP ởỡ
+MAP ủũ
+MAP ửữ
+MAP ỷỹ
+MAP (iêu)(iu)(ưu)
+MAP (iếu)(íu)(ứu)
+MAP (iều)(ìu)(ừu)
+MAP (iểu)(ỉu)(ửu)
+MAP (iễu)(ĩu)(ữu)
+MAP (iệu)(ịu)(ựu)
+MAP (ịc)(ịch)
+MAP (íc)(ích)
+MAP aàảãáạ
+MAP ăằẳẵắặ
+MAP âầẩẫấậ
+MAP eèẻẽéẹ
+MAP êềểễếệ
+MAP iìỉĩíị
+MAP oòỏõóọ
+MAP ôồổỗốộ
+MAP ơờởỡớợ
+MAP uùủũúụ
+MAP ưừửữứự
+MAP yỳỷỹýỵ
+MAP aàảãáạăằẳẵắặâầẩẫấậ
+MAP eèẻẽéẹêềểễếệ
+MAP oòỏõóọôồổỗốộơờởỡớợ
+MAP uùủũúụưừửữứự
+MAP óòỏaàáả
+MAP óóỏeèéẻ
+MAP úùủụyýỳỷỵ
+MAP uưoờớỡởợ
+
+REP 20
+REP dz d
+REP ch tr
+REP d đ
+REP đ d
+REP d gi
+REP f ph
+REP g gh
+REP gh g
+REP gi d
+REP j g
+REP ng ngh
+REP ngh ng
+REP ou uo
+REP ou ươ
+REP uo ươ
+REP s x
+REP tr ch
+REP x s
+REP w qu
+REP z d
diff --git a/l10n-vi/extensions/spellcheck/hunspell/vi-x-KieuCu.[Chuan].dic b/l10n-vi/extensions/spellcheck/hunspell/vi-x-KieuCu.[Chuan].dic
new file mode 100644
index 0000000000..1daab905cc
--- /dev/null
+++ b/l10n-vi/extensions/spellcheck/hunspell/vi-x-KieuCu.[Chuan].dic
@@ -0,0 +1,6632 @@
+6631
+ABC
+ASCII
+GIF
+HCM
+HK
+HTML
+HĐND
+JPEG
+LHQ
+Nguyễn
+Nẵng
+PDF
+PNG
+Phan
+RAM
+TCVN
+TV
+Telex
+Tp
+UBND
+URL
+Unicode
+VIQR
+VISCII
+VN
+VNI
+a
+ai
+am
+an
+ang
+anh
+ao
+au
+ba
+bai
+ban
+bang
+banh
+bao
+basoi
+bay
+be
+bem
+ben
+beng
+beo
+bi
+bia
+bin
+binh
+biên
+biêng
+biếc
+biếm
+biến
+biếng
+biết
+biếu
+biền
+biển
+biểu
+biện
+biệt
+bo
+bom
+bon
+bong
+boong
+boóng
+bu
+bua
+bung
+buôn
+buông
+buýt
+buốt
+buồi
+buồm
+buồn
+buồng
+buổi
+buộc
+buột
+bà
+bài
+bàm
+bàn
+bàng
+bành
+bào
+bàu
+bày
+bá
+bác
+bách
+bái
+bám
+bán
+báng
+bánh
+báo
+bát
+báu
+bân
+bâng
+bâu
+bây
+bã
+bãi
+bão
+bè
+bèm
+bèn
+bèo
+bé
+béc
+bén
+béng
+béo
+bép
+bét
+bê
+bên
+bênh
+bêu
+bì
+bìa
+bìm
+bình
+bìu
+bí
+bích
+bím
+bính
+bít
+bíu
+bò
+bòi
+bòm
+bòn
+bòng
+bó
+bóc
+bói
+bón
+bóng
+bóp
+bót
+bô
+bôi
+bôm
+bôn
+bông
+bõ
+bõm
+bõng
+bù
+bùa
+bùi
+bùm
+bùn
+bùng
+bú
+búa
+búi
+bún
+búng
+búp
+bút
+băm
+băn
+băng
+bĩ
+bĩnh
+bĩu
+bũm
+bơ
+bơi
+bơm
+bơn
+bư
+bưa
+bưng
+bưu
+bươi
+bươm
+bươn
+bương
+bươu
+bước
+bướm
+bướng
+bướp
+bướu
+bưởi
+bượt
+bạ
+bạc
+bạch
+bại
+bạn
+bạnh
+bạo
+bạp
+bạt
+bạu
+bả
+bải
+bản
+bảng
+bảnh
+bảo
+bảu
+bảy
+bấc
+bấm
+bấn
+bấp
+bất
+bấu
+bấy
+bầm
+bần
+bầng
+bầu
+bầy
+bẩm
+bẩn
+bẩy
+bẫm
+bẫy
+bậc
+bậm
+bận
+bập
+bật
+bậu
+bậy
+bắc
+bắn
+bắng
+bắp
+bắt
+bằm
+bằn
+bằng
+bẳn
+bẵng
+bặm
+bặn
+bặng
+bặp
+bặt
+bẹ
+bẹn
+bẹo
+bẹp
+bẹt
+bẻ
+bẻm
+bẻo
+bẽ
+bẽn
+bẽo
+bế
+bến
+bếp
+bết
+bề
+bền
+bềnh
+bều
+bể
+bễ
+bệ
+bệch
+bện
+bệnh
+bệt
+bệu
+bỉ
+bỉm
+bỉnh
+bỉu
+bị
+bịa
+bịch
+bịn
+bịnh
+bịp
+bịt
+bịu
+bọ
+bọc
+bọn
+bọng
+bọp
+bọt
+bỏ
+bỏi
+bỏm
+bỏng
+bố
+bốc
+bối
+bốn
+bống
+bốp
+bốt
+bồ
+bồi
+bồm
+bồn
+bồng
+bổ
+bổi
+bổn
+bổng
+bỗ
+bỗng
+bộ
+bộc
+bội
+bộn
+bộng
+bộp
+bột
+bớ
+bới
+bớp
+bớt
+bờ
+bời
+bờm
+bờn
+bở
+bởi
+bỡ
+bỡn
+bợ
+bợm
+bợn
+bợp
+bợt
+bụ
+bụa
+bục
+bụi
+bụm
+bụng
+bụp
+bụt
+bủ
+bủa
+bủm
+bủn
+bủng
+bứ
+bức
+bứng
+bứt
+bừa
+bừng
+bửa
+bửng
+bửu
+bữa
+bự
+bựa
+bực
+bựt
+ca
+cai
+cam
+can
+canh
+cao
+cau
+cay
+cha
+chai
+chan
+chang
+chanh
+chao
+chau
+chay
+che
+chem
+chen
+cheng
+cheo
+chi
+chia
+chim
+chinh
+chiu
+chiêm
+chiên
+chiêng
+chiêu
+chiếc
+chiếm
+chiến
+chiếng
+chiếp
+chiết
+chiếu
+chiền
+chiềng
+chiều
+chiểu
+chiện
+cho
+choang
+choi
+chong
+choài
+choàng
+choái
+choán
+choáng
+choãi
+choèn
+choòng
+choăn
+choạc
+choạng
+choạp
+choảng
+choắt
+choẹt
+chu
+chua
+chui
+chum
+chun
+chung
+chuyên
+chuyến
+chuyền
+chuyển
+chuyện
+chuôi
+chuôm
+chuông
+chuẩn
+chuếch
+chuệch
+chuốc
+chuối
+chuốt
+chuồi
+chuồn
+chuồng
+chuỗi
+chuộc
+chuội
+chuộng
+chuột
+chà
+chài
+chàm
+chàng
+chành
+chào
+chày
+chá
+chác
+chái
+chán
+cháng
+chánh
+cháo
+chát
+cháu
+cháy
+châm
+chân
+châu
+chây
+chã
+chãi
+chão
+chè
+chèn
+chèo
+ché
+chém
+chén
+chéo
+chép
+chét
+chê
+chêm
+chênh
+chì
+chìa
+chìm
+chình
+chìu
+chí
+chích
+chím
+chín
+chính
+chíp
+chít
+chíu
+chò
+chòi
+chòm
+chòng
+chó
+chóa
+chóc
+chóe
+chói
+chóng
+chóp
+chót
+chôm
+chôn
+chông
+chõ
+chõm
+chõng
+chù
+chùa
+chùi
+chùm
+chùn
+chùng
+chùy
+chú
+chúa
+chúc
+chúi
+chúm
+chúng
+chút
+chăm
+chăn
+chăng
+chĩa
+chĩn
+chĩnh
+chũi
+chũm
+chũn
+chơ
+chơi
+chơm
+chơn
+chư
+chưa
+chưn
+chưng
+chương
+chước
+chướng
+chườm
+chường
+chưởi
+chưởng
+chưỡng
+chược
+chượp
+chạ
+chạc
+chạch
+chạm
+chạn
+chạng
+chạnh
+chạo
+chạp
+chạt
+chạy
+chả
+chải
+chảnh
+chảo
+chảu
+chảy
+chấm
+chấn
+chấp
+chất
+chấu
+chấy
+chầm
+chần
+chầu
+chầy
+chẩm
+chẩn
+chẫu
+chậc
+chậm
+chận
+chập
+chật
+chậu
+chắc
+chắm
+chắn
+chắp
+chắt
+chằm
+chằn
+chằng
+chẳng
+chẵn
+chặc
+chặm
+chặn
+chặng
+chặp
+chặt
+chẹn
+chẹo
+chẹp
+chẹt
+chẻ
+chẻm
+chẻn
+chẻo
+chẽ
+chẽn
+chế
+chếch
+chếnh
+chết
+chề
+chềm
+chềnh
+chểnh
+chễm
+chễnh
+chệ
+chệch
+chện
+chệnh
+chỉ
+chỉn
+chỉnh
+chị
+chịa
+chịt
+chịu
+chọ
+chọc
+chọe
+chọi
+chọn
+chọt
+chỏ
+chỏm
+chỏn
+chỏng
+chốc
+chối
+chốn
+chống
+chốp
+chốt
+chồ
+chồi
+chồm
+chồn
+chồng
+chổi
+chổng
+chỗ
+chỗm
+chộ
+chội
+chộn
+chộp
+chột
+chớ
+chới
+chớm
+chớp
+chớt
+chờ
+chờm
+chờn
+chở
+chởm
+chợ
+chợn
+chợp
+chợt
+chục
+chụm
+chụp
+chụt
+chủ
+chủn
+chủng
+chứ
+chứa
+chức
+chứng
+chừ
+chừa
+chừng
+chửa
+chửi
+chửng
+chữ
+chữa
+chững
+chực
+co
+coi
+com
+con
+cong
+coong
+coóc
+cu
+cua
+cui
+cum
+cun
+cung
+cuốc
+cuối
+cuốn
+cuống
+cuồn
+cuồng
+cuỗm
+cuộc
+cuội
+cuộn
+cuộng
+cà
+cài
+càn
+càng
+cành
+cào
+càu
+cày
+cá
+các
+cách
+cái
+cám
+cán
+cáng
+cánh
+cáo
+cáp
+cát
+cáu
+cáy
+câm
+cân
+câng
+câu
+cây
+cãi
+cò
+còi
+còm
+còn
+còng
+có
+cóc
+cói
+cóng
+cóp
+cót
+cô
+côi
+côm
+côn
+công
+cõi
+cõng
+cù
+cùi
+cùm
+cùn
+cùng
+cú
+cúa
+cúc
+cúi
+cúm
+cúng
+cúp
+cút
+căm
+căn
+căng
+cũ
+cũi
+cũn
+cũng
+cơ
+cơi
+cơm
+cơn
+cư
+cưa
+cưng
+cưu
+cương
+cước
+cưới
+cướp
+cười
+cườm
+cường
+cưỡi
+cưỡng
+cạ
+cạc
+cạch
+cạm
+cạn
+cạnh
+cạo
+cạp
+cạu
+cạy
+cả
+cải
+cảm
+cản
+cảng
+cảnh
+cảo
+cảu
+cảy
+cấc
+cấm
+cấn
+cấp
+cất
+cấu
+cấy
+cầm
+cần
+cầu
+cầy
+cẩm
+cẩn
+cẩu
+cẩy
+cẫm
+cẫn
+cẫng
+cận
+cập
+cật
+cậu
+cậy
+cắc
+cắm
+cắn
+cắp
+cắt
+cằm
+cằn
+cẳn
+cẳng
+cẵng
+cặc
+cặm
+cặn
+cặp
+cặt
+cọ
+cọc
+cọm
+cọn
+cọng
+cọp
+cọt
+cỏ
+cỏi
+cỏm
+cỏn
+cỏng
+cố
+cốc
+cối
+cốm
+cốn
+cống
+cốp
+cốt
+cồ
+cồm
+cồn
+cồng
+cổ
+cổi
+cổn
+cổng
+cỗ
+cỗi
+cộ
+cộc
+cội
+cộm
+cộn
+cộng
+cộp
+cột
+cớ
+cớm
+cớn
+cớt
+cờ
+cời
+cờn
+cởi
+cỡ
+cỡi
+cỡm
+cỡn
+cợn
+cợt
+cụ
+cục
+cụi
+cụm
+cụng
+cụp
+cụt
+củ
+của
+củi
+củn
+củng
+cứ
+cứa
+cức
+cứng
+cứt
+cứu
+cừ
+cừu
+cử
+cửa
+cửi
+cửng
+cửu
+cữ
+cữu
+cự
+cựa
+cực
+cựu
+da
+dai
+dam
+dan
+dang
+danh
+dao
+day
+de
+deo
+di
+dim
+dinh
+diêm
+diên
+diêu
+diếc
+diếp
+diết
+diếu
+diềm
+diều
+diễm
+diễn
+diễu
+diệc
+diện
+diệp
+diệt
+diệu
+do
+doa
+doan
+doanh
+doi
+dom
+don
+dong
+doành
+doãi
+doãn
+doãng
+du
+dua
+dun
+dung
+duy
+duyên
+duyệt
+duềnh
+duốc
+duỗi
+dà
+dài
+dàn
+dàng
+dành
+dào
+dàu
+dày
+dá
+dác
+dái
+dám
+dán
+dáng
+dát
+dáy
+dâm
+dân
+dâng
+dâu
+dây
+dã
+dãi
+dãy
+dè
+dèn
+dé
+dép
+dê
+dênh
+dì
+dìa
+dìm
+dìu
+dí
+dích
+dím
+dính
+díp
+díu
+dò
+dòi
+dòm
+dòng
+dó
+dóa
+dóc
+dóm
+dón
+dót
+dô
+dôi
+dông
+dõi
+dõng
+dù
+dùa
+dùi
+dùn
+dùng
+dúa
+dúi
+dúm
+dún
+dúng
+dút
+dăm
+dăn
+dăng
+dĩ
+dĩa
+dĩnh
+dũ
+dũi
+dũng
+dơ
+dơi
+dư
+dưa
+dưng
+dương
+dưới
+dướng
+dường
+dưỡng
+dược
+dượng
+dượt
+dạ
+dạc
+dại
+dạm
+dạn
+dạng
+dạo
+dạt
+dạy
+dả
+dải
+dảy
+dấm
+dấn
+dấp
+dấu
+dấy
+dầm
+dần
+dầu
+dẩn
+dẫm
+dẫn
+dẫu
+dẫy
+dậm
+dận
+dập
+dật
+dậu
+dậy
+dắng
+dắt
+dằm
+dằn
+dằng
+dẳng
+dặc
+dặm
+dặn
+dặng
+dặt
+dẹp
+dẹt
+dẻ
+dẻo
+dẽ
+dế
+dề
+dềnh
+dể
+dễ
+dện
+dệt
+dị
+dịch
+dịp
+dịt
+dịu
+dọa
+dọc
+dọi
+dọn
+dọng
+dọp
+dỏ
+dỏm
+dỏng
+dốc
+dối
+dốt
+dồi
+dồn
+dỗ
+dỗi
+dội
+dộng
+dột
+dớ
+dớp
+dờ
+dời
+dở
+dởm
+dỡ
+dợ
+dụ
+dục
+dụm
+dụng
+dứ
+dứa
+dức
+dứt
+dừ
+dừa
+dừng
+dử
+dửng
+dữ
+dự
+dựa
+dực
+dựng
+e
+em
+email
+en
+eng
+eo
+ga
+gai
+gam
+gan
+gang
+ganh
+gao
+gau
+gay
+gen
+ghe
+ghen
+ghi
+ghim
+ghiếc
+ghiền
+ghè
+ghèn
+ghé
+ghém
+ghép
+ghét
+ghê
+ghì
+ghìm
+ghẹ
+ghẹn
+ghẹo
+ghẻ
+ghẽ
+ghế
+ghếch
+ghề
+ghềnh
+ghểnh
+ghệt
+gi
+gia
+giai
+giam
+gian
+giang
+gianh
+giao
+gieo
+gio
+gioi
+gion
+giong
+gip
+giu
+giua
+giun
+giuộc
+già
+giàn
+giàng
+giành
+giào
+giàu
+giày
+giá
+giác
+giám
+gián
+giáng
+giáo
+giáp
+giát
+giâm
+giâu
+giây
+giã
+giãi
+giãn
+giãy
+gièm
+gié
+giéo
+giê
+giêng
+giò
+giòi
+giòn
+gió
+gióc
+giói
+gión
+gióng
+giô
+giôn
+giông
+giùi
+giùm
+giú
+giúi
+giúp
+giăm
+giăng
+giũ
+giũa
+giơ
+giương
+giướng
+giường
+giượng
+giạ
+giại
+giạng
+giạt
+giả
+giải
+giảm
+giản
+giảng
+giảnh
+giảo
+giảu
+giấc
+giấm
+giấp
+giấu
+giấy
+giầm
+giần
+giầu
+giầy
+giẫm
+giẫy
+giậm
+giận
+giập
+giật
+giậu
+giắn
+giắt
+giằm
+giằn
+giằng
+giặc
+giặm
+giặn
+giặt
+giẹo
+giẹp
+giẻ
+giếc
+giếm
+giếng
+giết
+giề
+giền
+giềng
+giễu
+giọ
+giọc
+giọi
+giọng
+giọt
+giỏ
+giỏi
+giỏn
+giỏng
+giối
+giống
+giốt
+giồ
+giồi
+giồng
+giổi
+giỗ
+giộ
+giội
+giộp
+giới
+giờ
+giời
+giờn
+giở
+giỡn
+giụa
+giục
+giụi
+giủi
+giừ
+giữ
+giữa
+giựt
+go
+gom
+gon
+goòng
+gram
+gu
+guốc
+guồi
+guồng
+guộc
+gà
+gài
+gàn
+gàng
+gành
+gào
+gàu
+gá
+gác
+gái
+gán
+gánh
+gáo
+gáp
+gáu
+gáy
+gâm
+gân
+gâu
+gây
+gã
+gãi
+gãy
+gì
+gìm
+gìn
+gí
+gích
+gíp
+gò
+gòn
+góa
+góc
+gói
+góp
+gót
+gô
+gôm
+gôn
+gông
+gõ
+gù
+gùi
+gùn
+gùng
+gút
+găm
+găn
+găng
+gũi
+gơ
+gươm
+gương
+gườm
+gường
+gưỡng
+gượm
+gượng
+gạ
+gạc
+gạch
+gạn
+gạnh
+gạo
+gạt
+gả
+gảy
+gấc
+gấm
+gấp
+gấu
+gấy
+gầm
+gần
+gầu
+gầy
+gẩm
+gẫm
+gẫu
+gậm
+gập
+gật
+gậy
+gắm
+gắn
+gắng
+gắp
+gắt
+gằm
+gằn
+gặc
+gặm
+gặn
+gặng
+gặp
+gặt
+gỉ
+gọi
+gọn
+gọng
+gọt
+gỏi
+gỏng
+gốc
+gối
+gốm
+gồ
+gồi
+gồm
+gồng
+gổ
+gỗ
+gộ
+gộc
+gội
+gộp
+gột
+gớm
+gờ
+gờm
+gờn
+gở
+gởi
+gỡ
+gợi
+gợn
+gợt
+gụ
+gục
+gụi
+gụt
+gừ
+gừng
+gửi
+ha
+hai
+ham
+han
+hang
+hanh
+hao
+hau
+hay
+he
+hem
+hen
+heo
+hi
+hia
+him
+hiu
+hiên
+hiêng
+hiếm
+hiến
+hiếng
+hiếp
+hiếu
+hiềm
+hiền
+hiểm
+hiển
+hiểu
+hiện
+hiệp
+hiệu
+ho
+hoa
+hoan
+hoang
+hoay
+hoe
+hoen
+hoi
+hom
+hon
+hong
+hoài
+hoàn
+hoàng
+hoành
+hoác
+hoán
+hoáy
+hoãn
+hoét
+hoăm
+hoăng
+hoạch
+hoại
+hoạn
+hoạnh
+hoạt
+hoải
+hoảng
+hoảnh
+hoắc
+hoắm
+hoắt
+hoẳn
+hoẵng
+hoặc
+hoẹt
+hoẻn
+hu
+hua
+hum
+hun
+hung
+huy
+huynh
+huyên
+huyết
+huyền
+huyễn
+huyện
+huyệt
+huân
+huê
+huênh
+huých
+huýt
+huơ
+huấn
+huếch
+huề
+huệ
+huống
+huỳnh
+huỵch
+hy
+hà
+hài
+hàm
+hàn
+hàng
+hành
+hào
+hàu
+há
+hác
+hách
+hái
+hám
+hán
+háng
+hánh
+háo
+hát
+háu
+háy
+hâm
+hân
+hâu
+hây
+hãi
+hãm
+hãn
+hãng
+hãnh
+hão
+hãy
+hè
+hèm
+hèn
+hèo
+hé
+héc
+héo
+hét
+hê
+hên
+hênh
+hì
+hình
+hí
+hích
+híp
+hít
+hò
+hòa
+hòe
+hòi
+hòm
+hòn
+hòng
+hóa
+hóc
+hói
+hóm
+hóng
+hóp
+hót
+hô
+hôi
+hôm
+hôn
+hông
+hõm
+hù
+hùa
+hùm
+hùn
+hùng
+hú
+húc
+húi
+húng
+húp
+hút
+húy
+hăm
+hăng
+hĩm
+hĩnh
+hũ
+hũm
+hơ
+hơi
+hơn
+hư
+hưng
+hưu
+hương
+hươu
+hước
+hướm
+hướng
+hường
+hưởng
+hượm
+hạ
+hạc
+hạch
+hại
+hạm
+hạn
+hạng
+hạnh
+hạo
+hạp
+hạt
+hả
+hải
+hảm
+hảng
+hảo
+hấn
+hấng
+hấp
+hất
+hấu
+hấy
+hầm
+hầu
+hầy
+hẩm
+hẩng
+hẩu
+hẩy
+hẫng
+hẫu
+hậm
+hận
+hập
+hậu
+hắc
+hắn
+hắng
+hắt
+hằm
+hằn
+hằng
+hẳn
+hẵng
+hặc
+hẹ
+hẹm
+hẹn
+hẹp
+hẻm
+hẻo
+hếch
+hến
+hết
+hếu
+hề
+hềnh
+hể
+hển
+hểnh
+hệ
+hệch
+hệt
+hỉ
+hỉnh
+hịch
+họ
+họa
+học
+họe
+họng
+họp
+hỏa
+hỏi
+hỏm
+hỏn
+hỏng
+hố
+hốc
+hối
+hống
+hốt
+hồ
+hồi
+hồn
+hồng
+hổ
+hổi
+hổm
+hổn
+hổng
+hỗ
+hỗn
+hỗng
+hộ
+hộc
+hội
+hộn
+hộp
+hột
+hớ
+hớm
+hớn
+hớp
+hớt
+hờ
+hời
+hờn
+hở
+hởi
+hỡi
+hợi
+hợm
+hợp
+hợt
+hục
+hụi
+hụm
+hụp
+hụt
+hủ
+hủi
+hủn
+hủy
+hứa
+hức
+hứng
+hừ
+hừm
+hừng
+hử
+hửng
+hữ
+hững
+hữu
+hự
+hực
+hựu
+i
+im
+in
+inh
+internet
+intranet
+iu
+ka
+ke
+kem
+ken
+keng
+keo
+kha
+khai
+kham
+khan
+khang
+khanh
+khao
+khau
+khay
+khe
+khem
+khen
+kheo
+khi
+khin
+khinh
+khiu
+khiêm
+khiên
+khiêng
+khiêu
+khiếm
+khiến
+khiếp
+khiết
+khiếu
+khiền
+khiển
+khiễng
+kho
+khoa
+khoai
+khoan
+khoang
+khoanh
+khoe
+khoeo
+khom
+khoào
+khoác
+khoái
+khoán
+khoáng
+khoát
+khoáy
+khoèo
+khoét
+khoăm
+khoăn
+khoải
+khoản
+khoảng
+khoảnh
+khoắm
+khoắn
+khoắng
+khoắt
+khoằm
+khu
+khua
+khui
+khum
+khung
+khuy
+khuya
+khuynh
+khuyên
+khuyến
+khuyết
+khuyển
+khuân
+khuâng
+khuây
+khuê
+khuôn
+khuông
+khuơ
+khuất
+khuấy
+khuẩn
+khuếch
+khuỳnh
+khuỵu
+khuỷu
+khà
+khàn
+khàng
+khá
+khác
+khách
+khái
+khám
+khán
+kháng
+khánh
+kháo
+kháp
+khát
+kháu
+kháy
+khâm
+khân
+khâu
+khè
+khèn
+khèo
+khé
+khén
+khéo
+khép
+khét
+khê
+khênh
+khêu
+khì
+khìn
+khí
+khía
+khích
+khít
+khíu
+khò
+khòm
+khòng
+khó
+khóa
+khóc
+khóe
+khói
+khóm
+khô
+khôi
+khôn
+không
+khù
+khùng
+khú
+khúc
+khúm
+khăm
+khăn
+khăng
+khĩnh
+khơ
+khơi
+khư
+khươi
+khươm
+khươn
+khương
+khước
+khướt
+khướu
+khạc
+khạng
+khạo
+khả
+khải
+khảm
+khản
+khảng
+khảnh
+khảo
+khảy
+khấc
+khấm
+khấn
+khấp
+khất
+khấu
+khẩn
+khẩu
+khẩy
+khập
+khật
+khắc
+khắm
+khắng
+khắp
+khắt
+khằng
+khẳm
+khẳn
+khẳng
+khặc
+khẹc
+khẻ
+khẻo
+khẽ
+khế
+khề
+khều
+khểnh
+khệ
+khệnh
+khỉ
+khỉnh
+khịa
+khịt
+khọm
+khỏa
+khỏe
+khỏi
+khỏng
+khố
+khốc
+khối
+khốn
+khống
+khổ
+khổn
+khổng
+khớ
+khớp
+khờ
+khởi
+khụ
+khục
+khụt
+khủ
+khủng
+khứ
+khứa
+khứng
+khứu
+khừ
+khừng
+khử
+khựng
+ki
+kia
+kim
+kinh
+kiêm
+kiên
+kiêng
+kiêu
+kiếm
+kiến
+kiếp
+kiết
+kiếu
+kiềm
+kiền
+kiềng
+kiều
+kiểm
+kiểng
+kiểu
+kiễng
+kiệm
+kiện
+kiệt
+kiệu
+kè
+kèm
+kèn
+kèo
+ké
+kéc
+kém
+kén
+kéo
+kép
+két
+kê
+kênh
+kêu
+kì
+kìa
+kìm
+kình
+kí
+kích
+kín
+kính
+kíp
+kít
+ký
+kĩ
+kẹ
+kẹn
+kẹo
+kẹp
+kẹt
+kẻ
+kẻng
+kẻo
+kẽ
+kẽm
+kẽo
+kế
+kếch
+kếp
+kết
+kề
+kềm
+kền
+kềnh
+kều
+kể
+kệ
+kệch
+kệnh
+kỉ
+kỉnh
+kị
+kịch
+kịp
+kịt
+kỳ
+kỵ
+kỷ
+kỹ
+la
+lai
+lam
+lan
+lang
+lanh
+lao
+lau
+lay
+le
+lem
+len
+leng
+leo
+li
+lia
+lim
+lin
+linh
+liu
+liêm
+liên
+liêng
+liêu
+liếc
+liếm
+liến
+liếng
+liếp
+liềm
+liền
+liều
+liểng
+liễm
+liễn
+liễu
+liệm
+liệng
+liệp
+liệt
+liệu
+lo
+loa
+loan
+loang
+loanh
+loay
+loe
+loen
+loi
+lom
+lon
+long
+loong
+loài
+loàn
+loàng
+loáng
+loát
+loãng
+loét
+loăng
+loạc
+loại
+loạn
+loạng
+loạt
+loảng
+loắt
+loằng
+loẹt
+lu
+lua
+lui
+lum
+lung
+luya
+luyến
+luyện
+luân
+luôm
+luôn
+luông
+luýnh
+luấn
+luẩn
+luận
+luật
+luốc
+luống
+luốt
+luồn
+luồng
+luỗng
+luộc
+luộm
+ly
+là
+lài
+làm
+làn
+làng
+lành
+lào
+làu
+lá
+lác
+lách
+lái
+lán
+láng
+lánh
+láo
+láp
+lát
+láu
+láy
+lâm
+lân
+lâng
+lâu
+lây
+lã
+lãi
+lãm
+lãn
+lãng
+lãnh
+lão
+lè
+lèm
+lèn
+lèo
+lé
+léc
+lém
+lén
+léng
+léo
+lép
+lét
+lê
+lên
+lênh
+lêu
+lì
+lìa
+lìm
+lình
+lìu
+lí
+lính
+líp
+lít
+líu
+lò
+lòa
+lòe
+lòi
+lòm
+lòn
+lòng
+ló
+lóc
+lóe
+lói
+lóm
+lóng
+lóp
+lót
+lô
+lôi
+lôm
+lông
+lõ
+lõi
+lõm
+lõng
+lù
+lùa
+lùi
+lùm
+lùn
+lùng
+lú
+lúa
+lúc
+lúi
+lúm
+lún
+lúng
+lúp
+lút
+lý
+lăm
+lăn
+lăng
+lĩnh
+lũ
+lũi
+lũm
+lũn
+lũng
+lũy
+lơ
+lơi
+lơn
+lư
+lưng
+lưu
+lươm
+lươn
+lương
+lưới
+lướng
+lướt
+lười
+lườm
+lườn
+lường
+lưỡi
+lưỡng
+lược
+lượm
+lượn
+lượng
+lượt
+lạ
+lạc
+lạch
+lại
+lạm
+lạn
+lạng
+lạnh
+lạo
+lạp
+lạt
+lạu
+lạy
+lả
+lải
+lảm
+lảng
+lảnh
+lảo
+lảu
+lảy
+lấc
+lấm
+lấn
+lấp
+lất
+lấy
+lầm
+lần
+lầu
+lầy
+lẩm
+lẩn
+lẩu
+lẩy
+lẫm
+lẫn
+lẫy
+lận
+lập
+lật
+lậu
+lắc
+lắm
+lắng
+lắp
+lắt
+lằm
+lằn
+lằng
+lẳm
+lẳn
+lẳng
+lẵng
+lặc
+lặm
+lặn
+lặng
+lặp
+lặt
+lẹ
+lẹm
+lẹn
+lẹo
+lẹp
+lẹt
+lẻ
+lẻm
+lẻn
+lẻng
+lẻo
+lẽ
+lẽn
+lẽo
+lếch
+lết
+lếu
+lề
+lềnh
+lều
+lể
+lểu
+lễ
+lễu
+lệ
+lệch
+lệnh
+lỉm
+lỉnh
+lị
+lịa
+lịch
+lịm
+lịnh
+lịu
+lọ
+lọc
+lọi
+lọm
+lọn
+lọng
+lọt
+lỏi
+lỏm
+lỏn
+lỏng
+lố
+lốc
+lối
+lốm
+lốn
+lốp
+lốt
+lồ
+lồi
+lồm
+lồn
+lồng
+lổ
+lổm
+lổn
+lổng
+lỗ
+lỗi
+lộ
+lộc
+lội
+lộm
+lộn
+lộng
+lộp
+lột
+lớ
+lới
+lớn
+lớp
+lớt
+lờ
+lời
+lờm
+lờn
+lở
+lởi
+lởm
+lởn
+lỡ
+lỡm
+lợ
+lợi
+lợm
+lợn
+lợp
+lợt
+lụ
+lụa
+lục
+lụi
+lụn
+lụng
+lụp
+lụt
+lụy
+lủ
+lủi
+lủm
+lủn
+lủng
+lứa
+lức
+lứt
+lừ
+lừa
+lừng
+lử
+lửa
+lửng
+lữ
+lữa
+lững
+lự
+lựa
+lực
+lựng
+lựu
+lỵ
+ma
+mai
+man
+mang
+manh
+mao
+mau
+may
+me
+mem
+men
+meo
+mi
+mia
+mim
+min
+minh
+miên
+miêu
+miến
+miếng
+miết
+miếu
+miền
+miều
+miễn
+miễu
+miện
+miệng
+miệt
+mo
+moay
+moi
+mom
+mon
+mong
+moóc
+mu
+mua
+mui
+mum
+mun
+mung
+muôi
+muôn
+muông
+muối
+muốn
+muống
+muốt
+muồi
+muỗi
+muỗm
+muỗng
+muội
+muộn
+mà
+mài
+màn
+màng
+mành
+mào
+màu
+mày
+má
+mác
+mách
+mái
+mán
+máng
+mánh
+máo
+mát
+máu
+máy
+mâm
+mân
+mâng
+mâu
+mây
+mã
+mãi
+mãn
+mãng
+mãnh
+mão
+mè
+mèm
+mèn
+mèng
+mèo
+mé
+mém
+mén
+méo
+mép
+mét
+mê
+mên
+mênh
+mì
+mìn
+mình
+mí
+mía
+mích
+mím
+míp
+mít
+míu
+mò
+mòi
+mòm
+mòn
+mòng
+mó
+móc
+mói
+móm
+món
+móng
+móp
+mót
+mô
+môi
+môm
+môn
+mông
+mõ
+mõm
+mù
+mùa
+mùi
+mùn
+mùng
+mú
+múa
+múc
+múi
+múm
+mún
+múp
+mút
+măm
+măn
+măng
+mĩ
+mĩm
+mũ
+mũi
+mũm
+mơ
+mơi
+mơn
+mưa
+mưu
+mươi
+mương
+mướn
+mướp
+mướt
+mười
+mường
+mượn
+mượt
+mạ
+mạc
+mạch
+mại
+mạn
+mạng
+mạnh
+mạo
+mạp
+mạt
+mạy
+mả
+mải
+mảng
+mảnh
+mảy
+mấn
+mấp
+mất
+mấu
+mấy
+mầm
+mần
+mầng
+mầu
+mẩm
+mẩn
+mẩy
+mẫm
+mẫn
+mẫu
+mận
+mập
+mật
+mậu
+mắc
+mắm
+mắn
+mắng
+mắt
+mằn
+mẳn
+mặc
+mặn
+mặt
+mẹ
+mẹo
+mẹp
+mẹt
+mẻ
+mẻo
+mẽ
+mế
+mếch
+mến
+mếu
+mề
+mềm
+mền
+mễ
+mệ
+mệnh
+mệt
+mỉ
+mỉa
+mỉm
+mị
+mịch
+mịn
+mịnh
+mịt
+mọc
+mọi
+mọn
+mọng
+mọt
+mỏ
+mỏi
+mỏm
+mỏng
+mố
+mốc
+mối
+mống
+mốt
+mồ
+mồi
+mồm
+mồn
+mồng
+mổ
+mổng
+mỗ
+mỗi
+mộ
+mộc
+mộng
+một
+mớ
+mới
+mớm
+mớp
+mờ
+mời
+mờm
+mở
+mởn
+mỡ
+mụ
+mục
+mụi
+mụn
+mụp
+mủ
+mủi
+mủm
+mủn
+mủng
+mứa
+mức
+mứt
+mứu
+mừng
+mửa
+mựa
+mực
+mỹ
+na
+nai
+nam
+nan
+nang
+nanh
+nao
+nau
+nay
+ne
+nem
+nen
+neo
+nga
+ngai
+ngam
+ngan
+ngang
+ngao
+ngau
+ngay
+nghe
+nghi
+nghinh
+nghiu
+nghiêm
+nghiên
+nghiêng
+nghiêu
+nghiến
+nghiền
+nghiễm
+nghiệm
+nghiện
+nghiệp
+nghiệt
+nghè
+nghèn
+nghèo
+nghé
+nghén
+nghét
+nghê
+nghênh
+nghêu
+nghì
+nghìn
+nghí
+nghít
+nghĩ
+nghĩa
+nghẹn
+nghẹo
+nghẹt
+nghẻo
+nghẽn
+nghẽo
+nghếch
+nghề
+nghều
+nghển
+nghểnh
+nghễ
+nghễnh
+nghễu
+nghệ
+nghệch
+nghện
+nghỉ
+nghỉm
+nghỉn
+nghỉnh
+nghỉu
+nghị
+nghịch
+nghịt
+nghịu
+ngoa
+ngoan
+ngoang
+ngoao
+ngoay
+ngoe
+ngoi
+ngon
+ngong
+ngoài
+ngoàm
+ngoác
+ngoách
+ngoái
+ngoáo
+ngoáy
+ngoãn
+ngoèo
+ngoéo
+ngoét
+ngoại
+ngoạm
+ngoạn
+ngoải
+ngoảng
+ngoảnh
+ngoảy
+ngoắc
+ngoắt
+ngoằn
+ngoằng
+ngoẵng
+ngoặc
+ngoặt
+ngoẻn
+ngu
+nguy
+nguyên
+nguyền
+nguyện
+nguyệt
+nguýt
+nguẩy
+nguồi
+nguồn
+nguội
+nguỷu
+ngà
+ngài
+ngàm
+ngàn
+ngàng
+ngành
+ngào
+ngàu
+ngày
+ngác
+ngách
+ngái
+ngám
+ngán
+ngáng
+ngáo
+ngáp
+ngát
+ngáu
+ngáy
+ngâm
+ngân
+ngâu
+ngây
+ngã
+ngãi
+ngãng
+ngão
+ngò
+ngòi
+ngòm
+ngòn
+ngòng
+ngó
+ngóc
+ngóe
+ngói
+ngóm
+ngón
+ngóng
+ngóp
+ngót
+ngô
+ngôi
+ngôn
+ngông
+ngõ
+ngõa
+ngõi
+ngõng
+ngùi
+ngùng
+ngú
+ngúc
+ngúng
+ngút
+ngăm
+ngăn
+ngũ
+ngơ
+ngơi
+ngơm
+ngơn
+ngư
+ngưa
+ngưng
+ngưu
+ngươi
+ngước
+người
+ngường
+ngưởng
+ngưỡng
+ngược
+ngượng
+ngạc
+ngạch
+ngại
+ngạn
+ngạnh
+ngạo
+ngạt
+ngả
+ngải
+ngảnh
+ngấc
+ngấm
+ngấn
+ngấp
+ngất
+ngấu
+ngấy
+ngầm
+ngần
+ngầu
+ngầy
+ngẩm
+ngẩn
+ngẩng
+ngẫm
+ngẫn
+ngẫu
+ngậm
+ngận
+ngập
+ngật
+ngậu
+ngậy
+ngắc
+ngắm
+ngắn
+ngắt
+ngằn
+ngẳng
+ngẵng
+ngặt
+ngọ
+ngọc
+ngọn
+ngọng
+ngọt
+ngỏ
+ngỏm
+ngỏn
+ngỏng
+ngố
+ngốc
+ngốn
+ngốt
+ngồi
+ngồm
+ngồn
+ngồng
+ngổ
+ngổm
+ngổn
+ngỗ
+ngỗng
+ngộ
+ngộc
+ngộn
+ngột
+ngớ
+ngớn
+ngớp
+ngớt
+ngờ
+ngời
+ngờm
+ngỡ
+ngợ
+ngợi
+ngợm
+ngợp
+ngụ
+ngụa
+ngục
+ngụm
+ngụp
+ngụy
+ngủ
+ngủi
+ngủn
+ngứ
+ngứa
+ngứt
+ngừ
+ngừa
+ngừng
+ngửa
+ngửi
+ngửng
+ngữ
+ngự
+ngựa
+ngực
+nha
+nhai
+nham
+nhan
+nhang
+nhanh
+nhao
+nhau
+nhay
+nhe
+nhem
+nhen
+nheo
+nhi
+nhinh
+nhiu
+nhiên
+nhiêu
+nhiếc
+nhiếp
+nhiều
+nhiễm
+nhiễn
+nhiễu
+nhiệm
+nhiệt
+nho
+nhoai
+nhoang
+nhoay
+nhoe
+nhoen
+nhoi
+nhom
+nhong
+nhoài
+nhoàm
+nhoáng
+nhoáy
+nhoèn
+nhoét
+nhoạng
+nhoẹt
+nhoẻn
+nhu
+nhui
+nhung
+nhuyễn
+nhuôm
+nhuần
+nhuận
+nhuế
+nhuệ
+nhuốc
+nhuốm
+nhuộm
+nhà
+nhài
+nhàm
+nhàn
+nhàng
+nhành
+nhào
+nhàu
+nhày
+nhá
+nhác
+nhách
+nhái
+nhám
+nháng
+nhánh
+nháo
+nháp
+nhát
+nháy
+nhâm
+nhân
+nhâng
+nhâu
+nhây
+nhã
+nhãi
+nhãn
+nhãng
+nhão
+nhè
+nhèm
+nhèo
+nhé
+nhén
+nhéo
+nhép
+nhét
+nhênh
+nhì
+nhìn
+nhí
+nhía
+nhích
+nhím
+nhín
+nhíp
+nhít
+nhíu
+nhò
+nhòa
+nhòe
+nhòm
+nhó
+nhóa
+nhóc
+nhóe
+nhói
+nhóm
+nhón
+nhóng
+nhóp
+nhót
+nhô
+nhôi
+nhôm
+nhôn
+nhông
+nhõ
+nhõm
+nhõn
+nhù
+nhùi
+nhùn
+nhùng
+nhú
+nhúa
+nhúc
+nhúm
+nhún
+nhúng
+nhút
+nhăm
+nhăn
+nhăng
+nhĩ
+nhũ
+nhũn
+nhũng
+nhơ
+nhơi
+nhơm
+nhơn
+như
+nhưng
+nhương
+nhướng
+nhường
+nhưỡng
+nhược
+nhượng
+nhạc
+nhạn
+nhạnh
+nhạo
+nhạp
+nhạt
+nhạy
+nhả
+nhải
+nhảm
+nhản
+nhảnh
+nhảu
+nhảy
+nhấc
+nhấm
+nhấn
+nhấp
+nhất
+nhầm
+nhần
+nhầy
+nhẩm
+nhẫn
+nhẫy
+nhậm
+nhận
+nhập
+nhật
+nhậu
+nhậy
+nhắc
+nhắm
+nhắn
+nhắng
+nhắp
+nhắt
+nhằm
+nhằn
+nhằng
+nhẳn
+nhẳng
+nhẵn
+nhẵng
+nhặm
+nhặn
+nhặng
+nhặt
+nhẹ
+nhẹm
+nhẹn
+nhẹo
+nhẹp
+nhẹt
+nhẻ
+nhẻm
+nhẽ
+nhẽo
+nhện
+nhệu
+nhỉ
+nhỉnh
+nhị
+nhịn
+nhịp
+nhịt
+nhịu
+nhọ
+nhọc
+nhọn
+nhọt
+nhỏ
+nhỏm
+nhỏng
+nhố
+nhốc
+nhối
+nhốn
+nhốt
+nhồi
+nhồm
+nhồn
+nhồng
+nhổ
+nhổm
+nhổn
+nhộn
+nhộng
+nhột
+nhớ
+nhớm
+nhớn
+nhớp
+nhớt
+nhờ
+nhời
+nhờn
+nhở
+nhởn
+nhỡ
+nhợ
+nhợt
+nhụ
+nhụa
+nhục
+nhụi
+nhụng
+nhụt
+nhụy
+nhủ
+nhủi
+nhủn
+nhứ
+nhức
+nhứt
+nhừ
+nhử
+nhửng
+những
+nhự
+nhựa
+nhựt
+ni
+nia
+nin
+ninh
+niu
+niêm
+niên
+niêu
+niết
+niềm
+niền
+niềng
+niễng
+niệm
+niệt
+niệu
+no
+noa
+noi
+nom
+non
+nong
+noãn
+nua
+nung
+nuôi
+nuông
+nuốc
+nuối
+nuốm
+nuốt
+nuộc
+nuột
+nà
+nài
+nàn
+nàng
+nành
+nào
+này
+ná
+nác
+nách
+nái
+nám
+nán
+náng
+nánh
+náo
+nát
+náu
+náy
+nân
+nâng
+nâu
+nây
+nã
+não
+nãy
+nè
+nèo
+né
+ném
+nén
+néo
+nép
+nét
+nê
+nêm
+nên
+nêu
+nì
+nình
+ních
+nín
+nính
+níp
+nít
+níu
+nò
+nòi
+nó
+nóc
+nói
+nón
+nóng
+nót
+nô
+nôi
+nôm
+nôn
+nông
+nõ
+nõn
+nùi
+nùn
+nùng
+núc
+núi
+núm
+núng
+núp
+nút
+năm
+năn
+năng
+nĩa
+nũng
+nơ
+nơi
+nơm
+nư
+nưa
+nưng
+nương
+nước
+nướng
+nườm
+nường
+nược
+nượp
+nạ
+nạc
+nại
+nạm
+nạn
+nạng
+nạnh
+nạo
+nạp
+nạt
+nạy
+nả
+nải
+nản
+nảy
+nấc
+nấm
+nấng
+nấp
+nấu
+nấy
+nầm
+nần
+nầy
+nẩy
+nẫng
+nẫu
+nậm
+nậng
+nập
+nậu
+nậy
+nắc
+nắm
+nắn
+nắng
+nắp
+nằm
+nằn
+nằng
+nặc
+nặn
+nặng
+nẹp
+nẹt
+nẻ
+nẻo
+nếm
+nến
+nếp
+nết
+nếu
+nề
+nền
+nể
+nệ
+nệm
+nện
+nỉ
+nịch
+nịnh
+nịt
+nịu
+nọ
+nọc
+nọn
+nọng
+nọt
+nỏ
+nỏi
+nố
+nốc
+nối
+nống
+nốt
+nồ
+nồi
+nồm
+nồng
+nổ
+nổi
+nỗ
+nỗi
+nỗng
+nộ
+nội
+nộm
+nộn
+nộp
+nột
+nớ
+nới
+nớp
+nớt
+nờ
+nờm
+nở
+nỡ
+nỡm
+nợ
+nợp
+nụ
+nục
+nủa
+nứa
+nức
+nứt
+nừng
+nửa
+nữ
+nữa
+nự
+nực
+nựng
+o
+oa
+oai
+oan
+oang
+oanh
+oe
+oi
+om
+ong
+oàm
+oàng
+oành
+oác
+oách
+oái
+oán
+oát
+oăm
+oăng
+oạch
+oại
+oạp
+oải
+oản
+oắt
+oằn
+oẳn
+oẳng
+oặt
+pa
+palăng
+pan
+pao
+pe
+pha
+phai
+phang
+phanh
+phao
+phau
+phay
+phe
+phen
+pheo
+phi
+phim
+phin
+phinh
+phiu
+phiên
+phiêu
+phiếm
+phiến
+phiết
+phiếu
+phiền
+phiện
+phiệt
+pho
+phoi
+phom
+phong
+phu
+phui
+phun
+phung
+phuy
+phà
+phàm
+phàn
+phàng
+phành
+phào
+phá
+phác
+phách
+phái
+phán
+pháo
+pháp
+phát
+phân
+phây
+phè
+phèn
+phèng
+phèo
+phéng
+phép
+phét
+phê
+phên
+phì
+phìa
+phình
+phí
+phía
+phích
+phím
+phính
+phò
+phòi
+phòng
+phó
+phóc
+phóng
+phót
+phô
+phôi
+phôm
+phông
+phù
+phùn
+phùng
+phú
+phúc
+phún
+phúng
+phút
+phăm
+phăn
+phăng
+phĩnh
+phũ
+phơ
+phơi
+phơn
+phưng
+phương
+phước
+phướn
+phướng
+phường
+phưỡn
+phượng
+phượu
+phạch
+phạm
+phạn
+phạng
+phạt
+phả
+phải
+phản
+phảng
+phảy
+phấn
+phấp
+phất
+phầm
+phần
+phẩm
+phẩn
+phẩy
+phẫn
+phẫu
+phận
+phập
+phật
+phắc
+phắn
+phắp
+phắt
+phẳng
+phẹt
+phế
+phếch
+phết
+phề
+phềnh
+phều
+phễn
+phễu
+phệ
+phệnh
+phệt
+phỉ
+phỉnh
+phị
+phịa
+phịch
+phịt
+phịu
+phọng
+phọt
+phỏng
+phố
+phốc
+phối
+phốp
+phồ
+phồm
+phồn
+phồng
+phổ
+phổi
+phổng
+phỗng
+phộng
+phới
+phớt
+phờ
+phở
+phỡn
+phụ
+phục
+phụng
+phụt
+phủ
+phủi
+phứa
+phức
+phứt
+phừng
+phựa
+phựt
+pi
+pin
+ping
+pom
+pu
+pác
+páp
+pê
+pô
+pông
+pơ
+qua
+quai
+quan
+quang
+quanh
+quao
+quau
+quay
+que
+quen
+queo
+quoàng
+quoạng
+quoắt
+quy
+quyên
+quyến
+quyết
+quyền
+quyển
+quyện
+quyệt
+quà
+quài
+quàn
+quàng
+quành
+quào
+quàu
+quày
+quá
+quác
+quách
+quái
+quán
+quáng
+quánh
+quáo
+quát
+quáu
+quân
+quây
+quãng
+què
+quèn
+quèo
+qué
+quén
+quéo
+quét
+quê
+quên
+quít
+quý
+quýnh
+quýt
+quăm
+quăn
+quăng
+quơ
+quạ
+quạc
+quạch
+quại
+quạng
+quạnh
+quạt
+quạu
+quạy
+quả
+quải
+quản
+quảng
+quảy
+quấc
+quấn
+quất
+quấy
+quần
+quầng
+quầy
+quẩn
+quẩng
+quẩy
+quẫn
+quẫy
+quận
+quật
+quậy
+quắc
+quắm
+quắn
+quắp
+quắt
+quằn
+quẳm
+quẳng
+quặc
+quặm
+quặn
+quặng
+quặp
+quặt
+quẹo
+quẹt
+quẻ
+quẽ
+quế
+quết
+quếu
+quềnh
+quều
+quệ
+quệch
+quện
+quệnh
+quệt
+quịt
+quốc
+quớ
+quờ
+quở
+quỳ
+quỳnh
+quỵ
+quỵt
+quỷ
+quỷnh
+quỹ
+ra
+rai
+ram
+ran
+rang
+ranh
+rao
+rau
+ray
+re
+ren
+reng
+reo
+ri
+ria
+rim
+rin
+rinh
+riu
+riêng
+riêu
+riết
+riếu
+riềm
+riềng
+riệt
+ro
+roa
+roi
+rom
+rong
+ru
+rua
+rum
+run
+rung
+ruốc
+ruối
+ruồi
+ruồng
+ruổi
+ruỗng
+ruộm
+ruộng
+ruột
+rà
+rài
+ràn
+ràng
+rành
+rào
+rày
+rá
+rác
+rách
+rái
+rám
+rán
+ráng
+ráo
+ráp
+rát
+ráy
+râm
+rân
+râu
+rây
+rã
+rãi
+rãnh
+rão
+rãy
+rè
+rèm
+rèn
+rèo
+ré
+rén
+réo
+rét
+rê
+rên
+rêu
+rì
+rìa
+rình
+rìu
+rí
+rích
+rít
+ríu
+rò
+ròi
+ròm
+ròng
+ró
+róc
+rói
+róm
+rón
+róng
+rót
+rô
+rôm
+rông
+rõ
+rõi
+rù
+rùa
+rùm
+rùn
+rùng
+rú
+rúc
+rúi
+rúm
+rún
+rúng
+rúp
+rút
+răm
+răn
+răng
+rĩ
+rũ
+rũa
+rơ
+rơi
+rơm
+rơn
+rư
+rưa
+rưng
+rươi
+rươm
+rương
+rước
+rưới
+rướm
+rướn
+rười
+rườm
+rườn
+rường
+rưởi
+rưỡi
+rượi
+rượn
+rượt
+rượu
+rạ
+rạc
+rạch
+rạn
+rạng
+rạo
+rạp
+rạt
+rạy
+rả
+rải
+rảnh
+rảo
+rảy
+rấm
+rấn
+rấp
+rất
+rầm
+rần
+rầu
+rầy
+rẩm
+rẩy
+rẫm
+rẫy
+rậm
+rận
+rập
+rật
+rắc
+rắm
+rắn
+rắp
+rắt
+rằm
+rằn
+rằng
+rặng
+rặt
+rẹo
+rẹt
+rẻ
+rẻng
+rẻo
+rẽ
+rế
+rếch
+rến
+rếp
+rết
+rề
+rền
+rều
+rể
+rểnh
+rễ
+rệ
+rệch
+rện
+rệp
+rệt
+rệu
+rỉ
+rỉa
+rỉnh
+rịa
+rịch
+rịn
+rịt
+rọ
+rọc
+rọi
+rọm
+rọt
+rỏ
+rỏm
+rỏn
+rốc
+rối
+rốn
+rống
+rốp
+rốt
+rồ
+rồi
+rồm
+rồng
+rổ
+rổi
+rổng
+rỗ
+rỗi
+rỗng
+rộ
+rộc
+rộm
+rộn
+rộng
+rộp
+rớ
+rớm
+rớt
+rờ
+rời
+rờm
+rờn
+rở
+rởm
+rởn
+rỡ
+rỡn
+rợ
+rợi
+rợm
+rợn
+rợp
+rợt
+rục
+rụi
+rụng
+rụt
+rủ
+rủa
+rủi
+rủn
+rủng
+rứa
+rức
+rứt
+rừng
+rửa
+rửng
+rữa
+rựa
+rực
+sa
+sai
+sam
+san
+sang
+sanh
+sao
+sau
+say
+se
+sen
+seo
+si
+sim
+sin
+sinh
+siu
+siêng
+siêu
+siết
+siểm
+siểng
+siễn
+so
+soa
+soi
+son
+song
+soong
+soài
+soái
+soán
+soát
+soóc
+soạn
+soạng
+soạt
+su
+sui
+sum
+sun
+sung
+suy
+suyển
+suyễn
+suê
+suôn
+suông
+suýt
+suất
+suối
+suốt
+suồng
+suỵt
+sà
+sài
+sàm
+sàn
+sàng
+sành
+sào
+sá
+sác
+sách
+sái
+sám
+sán
+sáng
+sánh
+sáo
+sáp
+sát
+sáu
+sâm
+sân
+sâu
+sây
+sã
+sãi
+sè
+sèo
+séc
+sém
+sét
+sê
+sên
+sênh
+sêu
+sì
+sình
+sính
+sít
+sò
+sòa
+sòi
+sòm
+sòng
+sóc
+sói
+sóm
+són
+sóng
+sót
+sô
+sôi
+sông
+sõi
+sõng
+sù
+sùi
+sùm
+sùng
+sú
+súc
+sún
+súng
+súp
+sút
+súy
+săm
+săn
+săng
+sĩ
+sũng
+sơ
+sơm
+sơn
+sư
+sưa
+sưng
+sưu
+sương
+sướng
+sướt
+sườn
+sường
+sưởi
+sượng
+sượt
+sạ
+sạch
+sạm
+sạn
+sạo
+sạp
+sạt
+sả
+sải
+sản
+sảng
+sảnh
+sảo
+sảy
+sấm
+sấn
+sấp
+sất
+sấu
+sấy
+sầm
+sần
+sầu
+sầy
+sẩm
+sẩn
+sẩy
+sẫm
+sậm
+sập
+sật
+sậu
+sậy
+sắc
+sắm
+sắn
+sắng
+sắp
+sắt
+sằng
+sẵn
+sặc
+sặm
+sặt
+sẹ
+sẹm
+sẹo
+sẻ
+sẻn
+sẽ
+sến
+sếp
+sếu
+sề
+sền
+sể
+sểnh
+sễ
+sệ
+sệt
+sỉ
+sỉa
+sỉnh
+sị
+sịa
+sịch
+sịt
+sọ
+sọc
+sọm
+sọt
+sỏ
+sỏi
+số
+sốc
+sống
+sốp
+sốt
+sồ
+sồi
+sồn
+sồng
+sổ
+sổi
+sổng
+sỗ
+sộ
+sộp
+sột
+sớ
+sới
+sớm
+sớn
+sớt
+sờ
+sờm
+sờn
+sở
+sởi
+sởn
+sỡ
+sợ
+sợi
+sụ
+sụa
+sục
+sụm
+sụn
+sụp
+sụt
+sủa
+sủi
+sủng
+sứ
+sứa
+sức
+sứt
+sừn
+sừng
+sử
+sửa
+sửng
+sửu
+sữa
+sững
+sự
+sực
+sựng
+sựt
+ta
+tai
+tam
+tan
+tang
+tanh
+tao
+tay
+te
+tem
+ten
+teng
+teo
+tha
+thai
+tham
+than
+thang
+thanh
+thao
+thau
+thay
+the
+then
+theo
+thi
+thia
+thin
+thinh
+thiu
+thiêm
+thiên
+thiêng
+thiêu
+thiếc
+thiến
+thiếp
+thiết
+thiếu
+thiềm
+thiền
+thiềng
+thiều
+thiểm
+thiển
+thiểu
+thiện
+thiệp
+thiệt
+thiệu
+tho
+thoa
+thoai
+thoang
+thoi
+thom
+thon
+thong
+thoàn
+thoái
+thoán
+thoáng
+thoát
+thoăn
+thoại
+thoạt
+thoải
+thoảng
+thoắng
+thoắt
+thu
+thua
+thui
+thum
+thun
+thung
+thuyên
+thuyết
+thuyền
+thuê
+thuôn
+thuần
+thuẫn
+thuận
+thuật
+thuế
+thuể
+thuốc
+thuốn
+thuồn
+thuồng
+thuổng
+thuỗn
+thuộc
+thuộm
+thuở
+thà
+thài
+thàm
+thành
+thào
+thày
+thá
+thác
+thách
+thái
+thám
+thán
+tháng
+thánh
+tháo
+tháp
+tháu
+tháy
+thâm
+thân
+thâu
+thây
+thãi
+thè
+thèm
+thèn
+thèo
+thé
+thép
+thét
+thê
+thêm
+thênh
+thêu
+thì
+thìa
+thìn
+thình
+thìu
+thí
+thía
+thích
+thím
+thín
+thính
+thíp
+thít
+thò
+thòa
+thòi
+thòm
+thòng
+thó
+thóa
+thóc
+thói
+thóp
+thót
+thô
+thôi
+thôn
+thông
+thõng
+thù
+thùa
+thùi
+thùm
+thùng
+thùy
+thú
+thúc
+thúi
+thúng
+thút
+thúy
+thăm
+thăn
+thăng
+thũng
+thơ
+thơi
+thơm
+thơn
+thư
+thưa
+thưng
+thương
+thước
+thướt
+thườn
+thường
+thưởng
+thưỡi
+thưỡn
+thược
+thượng
+thượt
+thạc
+thạch
+thạnh
+thạo
+thạp
+thả
+thải
+thảm
+thản
+thảng
+thảnh
+thảo
+thảy
+thấm
+thấp
+thất
+thấu
+thấy
+thầm
+thần
+thầu
+thầy
+thẩm
+thẩn
+thẩu
+thẫm
+thẫn
+thậm
+thận
+thập
+thật
+thắc
+thắm
+thắn
+thắng
+thắp
+thắt
+thằn
+thằng
+thẳm
+thẳng
+thặng
+thẹn
+thẹo
+thẹp
+thẻ
+thẻo
+thẽ
+thế
+thếch
+thếp
+thết
+thề
+thềm
+thều
+thể
+thểu
+thệ
+thện
+thỉ
+thỉnh
+thỉu
+thị
+thịch
+thịnh
+thịt
+thịu
+thọ
+thọc
+thọt
+thỏ
+thỏa
+thỏi
+thỏm
+thố
+thốc
+thối
+thốn
+thống
+thốt
+thồ
+thồi
+thồm
+thồn
+thổ
+thổi
+thổn
+thộc
+thộn
+thộp
+thớ
+thớt
+thờ
+thời
+thờn
+thở
+thợ
+thợt
+thụ
+thục
+thụi
+thụng
+thụp
+thụt
+thụy
+thủ
+thủa
+thủi
+thủm
+thủng
+thủy
+thứ
+thức
+thừ
+thừa
+thừng
+thử
+thửa
+thững
+thự
+thực
+ti
+tia
+tim
+tin
+tinh
+tiu
+tivi
+tiêm
+tiên
+tiêng
+tiêu
+tiếc
+tiếm
+tiến
+tiếng
+tiếp
+tiết
+tiếu
+tiềm
+tiền
+tiều
+tiểu
+tiễn
+tiễu
+tiệc
+tiệm
+tiện
+tiệp
+tiệt
+to
+toa
+toan
+toang
+toanh
+toe
+toen
+toi
+tom
+ton
+tong
+toong
+tout
+toài
+toàn
+toàng
+toác
+toái
+toán
+toáng
+toát
+toáy
+toèn
+toét
+toòng
+toạc
+toại
+toản
+toẹt
+tra
+trai
+tram
+tran
+trang
+tranh
+trao
+trau
+tre
+treo
+tri
+trinh
+triêng
+triêu
+triến
+triết
+triền
+triềng
+triều
+triển
+triện
+triệng
+triệt
+triệu
+tro
+troi
+tron
+trong
+tru
+trui
+trun
+trung
+truy
+truyền
+truyện
+truân
+truông
+truất
+truật
+truồng
+truột
+trà
+trài
+tràm
+tràn
+tràng
+trành
+trào
+tràu
+trày
+trá
+trác
+trách
+trái
+trám
+trán
+tráng
+tránh
+tráo
+tráp
+trát
+trâm
+trân
+trâng
+trâu
+trây
+trã
+trãi
+trè
+trèm
+trèn
+trèo
+trém
+tréo
+trét
+trê
+trên
+trêu
+trì
+trình
+trìu
+trí
+trích
+trít
+trò
+tròi
+tròm
+tròn
+tròng
+tróc
+trói
+tróm
+tróng
+trót
+trô
+trôi
+trôm
+trôn
+trông
+trõm
+trõn
+trù
+trùi
+trùm
+trùn
+trùng
+trú
+trúc
+trúm
+trúng
+trút
+trăm
+trăn
+trăng
+trĩ
+trĩnh
+trĩu
+trũi
+trũng
+trơ
+trơi
+trơn
+trưa
+trưng
+trương
+trước
+trướng
+trườn
+trường
+trưởng
+trưỡng
+trượng
+trượt
+trạc
+trạch
+trại
+trạm
+trạng
+trạo
+trạy
+trả
+trải
+trảm
+trảng
+trảo
+trảu
+trảy
+trấn
+trấp
+trấu
+trầm
+trần
+trầu
+trầy
+trẩn
+trẩu
+trẩy
+trẫm
+trậm
+trận
+trập
+trật
+trắc
+trắm
+trắng
+trắt
+trằm
+trằn
+trặc
+trặn
+trẹ
+trẹo
+trẹt
+trẻ
+trẻo
+trẽ
+trẽn
+trếch
+trết
+trề
+trễ
+trệ
+trệch
+trệt
+trệu
+trỉa
+trị
+trịa
+trịch
+trịnh
+trịt
+trọ
+trọc
+trọi
+trọn
+trọng
+trọt
+trỏ
+trỏi
+trỏng
+trố
+trốc
+trối
+trốn
+trống
+trồ
+trồi
+trồng
+trổ
+trổi
+trổng
+trỗ
+trộ
+trộc
+trội
+trộm
+trộn
+trớ
+trớn
+trớp
+trớt
+trờ
+trời
+trờn
+trở
+trợ
+trợn
+trợt
+trụ
+trụa
+trục
+trụi
+trụm
+trụn
+trụng
+trụp
+trụt
+trụy
+trủ
+trứ
+trứng
+trừ
+trừa
+trừng
+trửng
+trữ
+trự
+trực
+tu
+tua
+tui
+tum
+tun
+tung
+tuy
+tuyn
+tuyên
+tuyến
+tuyết
+tuyền
+tuyển
+tuyệt
+tuân
+tuôn
+tuông
+tuấn
+tuất
+tuần
+tuế
+tuếch
+tuệ
+tuệch
+tuốt
+tuồn
+tuồng
+tuổi
+tuộc
+tuột
+ty
+tà
+tài
+tàn
+tàng
+tành
+tào
+tàu
+tày
+tá
+tác
+tách
+tái
+tám
+tán
+táng
+tánh
+táo
+táp
+tát
+táu
+táy
+tâm
+tân
+tâng
+tâu
+tây
+tã
+tãi
+tè
+tèm
+tèn
+tèo
+té
+téc
+tém
+tép
+tét
+tê
+têm
+tên
+tênh
+têt
+têu
+tì
+tìm
+tình
+tí
+tía
+tích
+tím
+tín
+tính
+típ
+tít
+tíu
+tò
+tòa
+tòe
+tòi
+tòm
+tòn
+tòng
+tó
+tóc
+tóe
+tói
+tóm
+tóp
+tót
+tô
+tôi
+tôm
+tôn
+tông
+tõe
+tõm
+tù
+tùm
+tùng
+tùy
+tú
+túc
+túi
+túm
+túng
+túp
+tút
+túy
+tăm
+tăn
+tăng
+tĩ
+tĩnh
+tĩu
+tũm
+tơ
+tơi
+tư
+tưa
+tưng
+tươi
+tươm
+tương
+tước
+tưới
+tướn
+tướng
+tướp
+tướt
+tườm
+tường
+tườu
+tưởi
+tưởng
+tược
+tượng
+tượp
+tượt
+tạ
+tạc
+tạch
+tại
+tạm
+tạng
+tạnh
+tạo
+tạp
+tạt
+tả
+tải
+tản
+tảng
+tảo
+tấc
+tấm
+tấn
+tấp
+tất
+tấu
+tấy
+tầm
+tần
+tầng
+tầy
+tẩm
+tẩn
+tẩu
+tẩy
+tận
+tập
+tật
+tậu
+tắc
+tắm
+tắn
+tắp
+tắt
+tằm
+tằn
+tằng
+tẳn
+tặc
+tặn
+tặng
+tẹo
+tẹp
+tẹt
+tẻ
+tẻm
+tẻo
+tẽ
+tẽn
+tế
+tếch
+tết
+tếu
+tề
+tềnh
+tể
+tểnh
+tễ
+tễnh
+tệ
+tệp
+tỉ
+tỉa
+tỉm
+tỉnh
+tị
+tịch
+tịnh
+tịt
+tịu
+tọa
+tọc
+tọng
+tọp
+tọt
+tỏ
+tỏa
+tỏe
+tỏi
+tỏm
+tỏng
+tố
+tốc
+tối
+tốn
+tống
+tốp
+tốt
+tồ
+tồi
+tồn
+tồng
+tổ
+tổn
+tổng
+tộ
+tộc
+tội
+tột
+tớ
+tới
+tớn
+tớp
+tớt
+tờ
+tời
+tởm
+tợ
+tợn
+tợp
+tụ
+tục
+tụi
+tụm
+tụng
+tụt
+tụy
+tủ
+tủa
+tủi
+tủm
+tủn
+tủy
+tứ
+tứa
+tức
+từ
+từng
+tử
+tửa
+tửng
+tửu
+tự
+tựa
+tựu
+tỵ
+tỷ
+u
+um
+un
+ung
+uy
+uyên
+uyển
+uôm
+uất
+uẩn
+uẩy
+uế
+uể
+uốn
+uống
+uổng
+uột
+uở
+uỳnh
+uỵch
+v
+va
+vai
+van
+vang
+vanh
+vao
+vay
+ve
+ven
+veo
+vi
+vinh
+viêm
+viên
+viếng
+viết
+viền
+viển
+viễn
+việc
+viện
+việt
+vo
+voan
+voi
+von
+vong
+vu
+vua
+vui
+vun
+vung
+vuông
+vuốt
+vuột
+và
+vài
+vàm
+vàn
+vàng
+vành
+vào
+vày
+vá
+vác
+vách
+vái
+ván
+váng
+vánh
+váo
+váp
+vát
+váy
+vâm
+vân
+vâng
+vây
+vã
+vãi
+vãn
+vãng
+vãnh
+vè
+vèo
+vé
+véc
+vén
+véo
+vét
+vê
+vên
+vênh
+vêu
+vì
+ví
+vía
+vích
+vít
+víu
+vò
+vòi
+vòm
+vòn
+vòng
+vó
+vóc
+vói
+vón
+vóng
+vót
+vô
+vôi
+vôn
+vông
+võ
+võng
+vù
+vùa
+vùi
+vùn
+vùng
+vú
+vúc
+vút
+văn
+văng
+vĩ
+vĩnh
+vũ
+vũm
+vũng
+vơ
+vơi
+vưng
+vưu
+vươn
+vương
+vướng
+vườn
+vưởng
+vược
+vượn
+vượng
+vượt
+vạ
+vạc
+vạch
+vại
+vạm
+vạn
+vạng
+vạnh
+vạp
+vạt
+vạy
+vả
+vải
+vảng
+vảy
+vấn
+vấp
+vất
+vấu
+vấy
+vần
+vầng
+vầu
+vầy
+vẩn
+vẩu
+vẩy
+vẫn
+vẫy
+vậm
+vận
+vập
+vật
+vậy
+vắc
+vắn
+vắng
+vắt
+vằm
+vằn
+vằng
+vẳng
+vặc
+vặn
+vặt
+vẹm
+vẹn
+vẹo
+vẹt
+vẻ
+vẻn
+vẻo
+vẽ
+vế
+vếch
+vết
+vếu
+về
+vền
+vều
+vểnh
+vệ
+vện
+vệt
+vỉ
+vỉa
+vị
+vịm
+vịn
+vịnh
+vịt
+vọ
+vọc
+vọi
+vọng
+vọp
+vọt
+vỏ
+vỏn
+vỏng
+vố
+vốc
+vối
+vốn
+vống
+vồ
+vồi
+vồn
+vồng
+vổ
+vổng
+vỗ
+vội
+vớ
+với
+vớt
+vờ
+vời
+vờn
+vở
+vởn
+vỡ
+vợ
+vợi
+vợt
+vụ
+vục
+vụn
+vụng
+vụt
+vức
+vứt
+vừa
+vừng
+vửng
+vữa
+vững
+vựa
+vực
+vựng
+web
+xa
+xam
+xan
+xang
+xanh
+xao
+xay
+xe
+xem
+xen
+xeo
+xi
+xia
+xim
+xin
+xinh
+xit
+xiêm
+xiên
+xiêu
+xiếc
+xiết
+xiềng
+xiểm
+xiển
+xiểng
+xo
+xoa
+xoan
+xoang
+xoay
+xoe
+xoen
+xoi
+xom
+xon
+xong
+xoong
+xoài
+xoàm
+xoàn
+xoàng
+xoành
+xoác
+xoát
+xoáy
+xoèn
+xoét
+xoăn
+xoạc
+xoạch
+xoạng
+xoải
+xoảng
+xoắn
+xoẹt
+xu
+xua
+xui
+xum
+xung
+xuy
+xuya
+xuynh
+xuyên
+xuyến
+xuyết
+xuân
+xuây
+xuê
+xuôi
+xuýt
+xuất
+xuẩn
+xuề
+xuềnh
+xuể
+xuệch
+xuống
+xuồng
+xuổng
+xuỵt
+xà
+xài
+xàm
+xàng
+xành
+xào
+xàu
+xá
+xác
+xách
+xái
+xám
+xán
+xáo
+xáp
+xát
+xáy
+xâm
+xâu
+xây
+xã
+xè
+xèn
+xèng
+xèo
+xé
+xéc
+xén
+xéo
+xép
+xét
+xê
+xên
+xênh
+xêu
+xì
+xình
+xìu
+xí
+xía
+xích
+xính
+xít
+xíu
+xòa
+xòe
+xòm
+xòng
+xó
+xóa
+xóc
+xói
+xóm
+xón
+xóp
+xót
+xô
+xôi
+xôm
+xôn
+xông
+xõa
+xõm
+xõng
+xù
+xùi
+xùm
+xùng
+xùy
+xú
+xúc
+xúi
+xúm
+xúng
+xúp
+xút
+xúy
+xăm
+xăn
+xăng
+xĩnh
+xũ
+xơ
+xơi
+xơm
+xơn
+xưa
+xưng
+xương
+xước
+xướng
+xười
+xưởng
+xược
+xạ
+xạc
+xạch
+xạo
+xạp
+xạu
+xả
+xảm
+xảnh
+xảo
+xảu
+xảy
+xấc
+xấp
+xấu
+xầm
+xẩm
+xẩn
+xẩu
+xẩy
+xập
+xắc
+xắm
+xắn
+xắp
+xằng
+xẵng
+xẹc
+xẹo
+xẹp
+xẹt
+xẻ
+xẻn
+xẻng
+xẻo
+xẽo
+xế
+xếch
+xếp
+xềm
+xềnh
+xều
+xể
+xệ
+xệch
+xệp
+xệu
+xỉ
+xỉa
+xỉn
+xỉnh
+xỉu
+xị
+xịch
+xịt
+xịu
+xọ
+xọc
+xọe
+xọp
+xỏ
+xỏa
+xỏng
+xố
+xốc
+xối
+xốn
+xống
+xốp
+xốt
+xồ
+xồm
+xồn
+xồng
+xổ
+xổi
+xổm
+xổng
+xộc
+xộn
+xộp
+xớ
+xới
+xớp
+xớt
+xờ
+xờm
+xở
+xởi
+xởn
+xỡ
+xợp
+xợt
+xụ
+xục
+xụi
+xụp
+xủng
+xứ
+xức
+xứng
+xừ
+xử
+xửa
+xửng
+xực
+y
+yên
+yêng
+yêu
+yếm
+yến
+yết
+yếu
+yểm
+yểng
+yểu
+ào
+ác
+ách
+ái
+ám
+án
+áng
+ánh
+áo
+áp
+át
+áy
+âm
+ân
+âu
+èo
+éc
+ém
+én
+éo
+ép
+ét
+êm
+êu
+ìn
+ình
+ích
+ín
+ít
+òa
+òi
+òm
+òng
+óc
+óe
+ói
+óng
+óp
+ót
+ôi
+ôm
+ôn
+ông
+ùa
+ùm
+ùn
+ùng
+úa
+úi
+úm
+úng
+úp
+út
+úy
+ăm
+ăn
+ăng
+đa
+đai
+đam
+đan
+đang
+đanh
+đao
+đau
+đay
+đe
+đem
+đen
+đeo
+đi
+đin
+đinh
+điên
+điêu
+điếc
+điếm
+điếng
+điếu
+điền
+điều
+điểm
+điển
+điểu
+điệm
+điện
+điệp
+điệu
+đo
+đoan
+đoi
+đom
+đon
+đong
+đoài
+đoàn
+đoàng
+đoành
+đoái
+đoán
+đoãng
+đoạn
+đoạt
+đoản
+đoảng
+đu
+đua
+đui
+đum
+đun
+đung
+đuôi
+đuốc
+đuối
+đuổi
+đuỗn
+đuột
+đà
+đài
+đàm
+đàn
+đàng
+đành
+đào
+đày
+đá
+đác
+đách
+đái
+đám
+đán
+đáng
+đánh
+đáo
+đáp
+đát
+đáy
+đâm
+đâu
+đây
+đã
+đãi
+đãng
+đãy
+đè
+đèm
+đèn
+đèo
+đéc
+đéo
+đét
+đê
+đêm
+đên
+đênh
+đêu
+đì
+đìa
+đình
+đìu
+đía
+đích
+đính
+đít
+đò
+đòi
+đòm
+đòn
+đòng
+đó
+đóa
+đóc
+đói
+đóm
+đón
+đóng
+đót
+đô
+đôi
+đôm
+đôn
+đông
+đõ
+đù
+đùa
+đùi
+đùm
+đùn
+đùng
+đú
+đúc
+đúm
+đún
+đúng
+đúp
+đút
+đăm
+đăng
+đĩ
+đĩa
+đĩnh
+đũa
+đũng
+đơ
+đơm
+đơn
+đưa
+đưng
+đương
+đước
+đười
+đườn
+đường
+đưỡn
+được
+đượm
+đạc
+đạch
+đại
+đạm
+đạn
+đạo
+đạp
+đạt
+đả
+đảm
+đản
+đảng
+đảo
+đảy
+đấm
+đấng
+đất
+đấu
+đấy
+đầm
+đần
+đầu
+đầy
+đẩu
+đẩy
+đẫm
+đẫn
+đẫy
+đậm
+đận
+đập
+đật
+đậu
+đậy
+đắc
+đắm
+đắn
+đắng
+đắp
+đắt
+đằm
+đằn
+đằng
+đẳng
+đẵm
+đẵn
+đẵng
+đặc
+đặn
+đặng
+đặt
+đẹn
+đẹp
+đẹt
+đẻ
+đẽ
+đẽo
+đế
+đếch
+đếm
+đến
+đề
+đềm
+đền
+đềnh
+đều
+để
+đểnh
+đểu
+đễ
+đễnh
+đệ
+đệm
+đệp
+đỉa
+đỉnh
+địa
+địch
+định
+địt
+địu
+đọ
+đọa
+đọc
+đọi
+đọn
+đọng
+đọp
+đọt
+đỏ
+đỏi
+đỏm
+đố
+đốc
+đối
+đốm
+đốn
+đống
+đốp
+đốt
+đồ
+đồi
+đồm
+đồn
+đồng
+đổ
+đổi
+đổng
+đỗ
+đỗi
+độ
+độc
+đội
+độn
+động
+độp
+đột
+đớ
+đới
+đớn
+đớp
+đớt
+đờ
+đời
+đờm
+đờn
+đởm
+đởn
+đỡ
+đợ
+đợi
+đợp
+đợt
+đụ
+đục
+đụn
+đụng
+đụp
+đụt
+đủ
+đủi
+đủng
+đứ
+đứa
+đức
+đứng
+đứt
+đừ
+đừa
+đừng
+đử
+đực
+đựng
+ĩnh
+ơi
+ơn
+ưa
+ưng
+ưu
+ươi
+ươm
+ươn
+ương
+ước
+ướm
+ướp
+ướt
+ườn
+ưỡn
+ạ
+ạch
+ạnh
+ạo
+ạt
+ả
+ải
+ảm
+ảng
+ảnh
+ảo
+ấm
+ấn
+ấp
+ất
+ấu
+ấy
+ầm
+ầy
+ẩm
+ẩn
+ẩu
+ẩy
+ậc
+ậm
+ập
+ắc
+ắng
+ắp
+ắt
+ằng
+ẳng
+ẵm
+ặc
+ặp
+ẹ
+ẹo
+ẹp
+ẹt
+ẻn
+ẻo
+ẽo
+ế
+ếch
+ếm
+ề
+ềnh
+ễnh
+ệ
+ệch
+ện
+ệnh
+ỉ
+ỉa
+ỉm
+ỉn
+ỉu
+ị
+ịch
+ịt
+ọ
+ọc
+ọe
+ọi
+ọp
+ọt
+ỏe
+ỏi
+ỏm
+ỏn
+ỏng
+ố
+ốc
+ối
+ốm
+ống
+ốp
+ốt
+ồ
+ồm
+ồn
+ồng
+ổ
+ổi
+ổn
+ổng
+ộ
+ộc
+ộn
+ộp
+ớ
+ới
+ớm
+ớn
+ớt
+ờ
+ờn
+ở
+ỡm
+ợ
+ợt
+ụ
+ụa
+ục
+ụp
+ụt
+ủ
+ủa
+ủi
+ủn
+ủng
+ủy
+ứ
+ứa
+ức
+ứng
+ừ
+ừng
+ửng
+ựa
+ực
+ỷ
diff --git a/l10n-vi/extensions/spellcheck/hunspell/vi-x-KieuMoi.[KhongChuan].aff b/l10n-vi/extensions/spellcheck/hunspell/vi-x-KieuMoi.[KhongChuan].aff
new file mode 100644
index 0000000000..17bef9a1f9
--- /dev/null
+++ b/l10n-vi/extensions/spellcheck/hunspell/vi-x-KieuMoi.[KhongChuan].aff
@@ -0,0 +1,70 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 UTF-8
+TRY naohiugtcedmylrbvskpxqfjwzNAOHIUGTCEDMYLRBVSKPXQFJWZ-
+
+MAP 40
+MAP ảã
+MAP ẩẫ
+MAP ẳẵ
+MAP ẻẽ
+MAP ểễ
+MAP ỉĩ
+MAP ỏõ
+MAP ổỗ
+MAP ởỡ
+MAP ủũ
+MAP ửữ
+MAP ỷỹ
+MAP (iêu)(iu)(ưu)
+MAP (iếu)(íu)(ứu)
+MAP (iều)(ìu)(ừu)
+MAP (iểu)(ỉu)(ửu)
+MAP (iễu)(ĩu)(ữu)
+MAP (iệu)(ịu)(ựu)
+MAP (ịc)(ịch)
+MAP (íc)(ích)
+MAP aàảãáạ
+MAP ăằẳẵắặ
+MAP âầẩẫấậ
+MAP eèẻẽéẹ
+MAP êềểễếệ
+MAP iìỉĩíị
+MAP oòỏõóọ
+MAP ôồổỗốộ
+MAP ơờởỡớợ
+MAP uùủũúụ
+MAP ưừửữứự
+MAP yỳỷỹýỵ
+MAP aàảãáạăằẳẵắặâầẩẫấậ
+MAP eèẻẽéẹêềểễếệ
+MAP oòỏõóọôồổỗốộơờởỡớợ
+MAP uùủũúụưừửữứự
+MAP óòỏaàáả
+MAP óóỏeèéẻ
+MAP úùủụyýỳỷỵ
+MAP uưoờớỡởợ
+
+REP 20
+REP dz d
+REP ch tr
+REP d đ
+REP đ d
+REP d gi
+REP f ph
+REP g gh
+REP gh g
+REP gi d
+REP j g
+REP ng ngh
+REP ngh ng
+REP ou uo
+REP ou ươ
+REP uo ươ
+REP s x
+REP tr ch
+REP x s
+REP w qu
+REP z d
diff --git a/l10n-vi/extensions/spellcheck/hunspell/vi-x-KieuMoi.[KhongChuan].dic b/l10n-vi/extensions/spellcheck/hunspell/vi-x-KieuMoi.[KhongChuan].dic
new file mode 100644
index 0000000000..d9395e9b75
--- /dev/null
+++ b/l10n-vi/extensions/spellcheck/hunspell/vi-x-KieuMoi.[KhongChuan].dic
@@ -0,0 +1,6632 @@
+6631
+ABC
+ASCII
+GIF
+HCM
+HK
+HTML
+HĐND
+JPEG
+LHQ
+Nguyễn
+Nẵng
+PDF
+PNG
+Phan
+RAM
+TCVN
+TV
+Telex
+Tp
+UBND
+URL
+Unicode
+VIQR
+VISCII
+VN
+VNI
+a
+ai
+am
+an
+ang
+anh
+ao
+au
+ba
+bai
+ban
+bang
+banh
+bao
+basoi
+bay
+be
+bem
+ben
+beng
+beo
+bi
+bia
+bin
+binh
+biên
+biêng
+biếc
+biếm
+biến
+biếng
+biết
+biếu
+biền
+biển
+biểu
+biện
+biệt
+bo
+bom
+bon
+bong
+boong
+boóng
+bu
+bua
+bung
+buôn
+buông
+buýt
+buốt
+buồi
+buồm
+buồn
+buồng
+buổi
+buộc
+buột
+bà
+bài
+bàm
+bàn
+bàng
+bành
+bào
+bàu
+bày
+bá
+bác
+bách
+bái
+bám
+bán
+báng
+bánh
+báo
+bát
+báu
+bân
+bâng
+bâu
+bây
+bã
+bãi
+bão
+bè
+bèm
+bèn
+bèo
+bé
+béc
+bén
+béng
+béo
+bép
+bét
+bê
+bên
+bênh
+bêu
+bì
+bìa
+bìm
+bình
+bìu
+bí
+bích
+bím
+bính
+bít
+bíu
+bò
+bòi
+bòm
+bòn
+bòng
+bó
+bóc
+bói
+bón
+bóng
+bóp
+bót
+bô
+bôi
+bôm
+bôn
+bông
+bõ
+bõm
+bõng
+bù
+bùa
+bùi
+bùm
+bùn
+bùng
+bú
+búa
+búi
+bún
+búng
+búp
+bút
+băm
+băn
+băng
+bĩ
+bĩnh
+bĩu
+bũm
+bơ
+bơi
+bơm
+bơn
+bư
+bưa
+bưng
+bưu
+bươi
+bươm
+bươn
+bương
+bươu
+bước
+bướm
+bướng
+bướp
+bướu
+bưởi
+bượt
+bạ
+bạc
+bạch
+bại
+bạn
+bạnh
+bạo
+bạp
+bạt
+bạu
+bả
+bải
+bản
+bảng
+bảnh
+bảo
+bảu
+bảy
+bấc
+bấm
+bấn
+bấp
+bất
+bấu
+bấy
+bầm
+bần
+bầng
+bầu
+bầy
+bẩm
+bẩn
+bẩy
+bẫm
+bẫy
+bậc
+bậm
+bận
+bập
+bật
+bậu
+bậy
+bắc
+bắn
+bắng
+bắp
+bắt
+bằm
+bằn
+bằng
+bẳn
+bẵng
+bặm
+bặn
+bặng
+bặp
+bặt
+bẹ
+bẹn
+bẹo
+bẹp
+bẹt
+bẻ
+bẻm
+bẻo
+bẽ
+bẽn
+bẽo
+bế
+bến
+bếp
+bết
+bề
+bền
+bềnh
+bều
+bể
+bễ
+bệ
+bệch
+bện
+bệnh
+bệt
+bệu
+bỉ
+bỉm
+bỉnh
+bỉu
+bị
+bịa
+bịch
+bịn
+bịnh
+bịp
+bịt
+bịu
+bọ
+bọc
+bọn
+bọng
+bọp
+bọt
+bỏ
+bỏi
+bỏm
+bỏng
+bố
+bốc
+bối
+bốn
+bống
+bốp
+bốt
+bồ
+bồi
+bồm
+bồn
+bồng
+bổ
+bổi
+bổn
+bổng
+bỗ
+bỗng
+bộ
+bộc
+bội
+bộn
+bộng
+bộp
+bột
+bớ
+bới
+bớp
+bớt
+bờ
+bời
+bờm
+bờn
+bở
+bởi
+bỡ
+bỡn
+bợ
+bợm
+bợn
+bợp
+bợt
+bụ
+bụa
+bục
+bụi
+bụm
+bụng
+bụp
+bụt
+bủ
+bủa
+bủm
+bủn
+bủng
+bứ
+bức
+bứng
+bứt
+bừa
+bừng
+bửa
+bửng
+bửu
+bữa
+bự
+bựa
+bực
+bựt
+ca
+cai
+cam
+can
+canh
+cao
+cau
+cay
+cha
+chai
+chan
+chang
+chanh
+chao
+chau
+chay
+che
+chem
+chen
+cheng
+cheo
+chi
+chia
+chim
+chinh
+chiu
+chiêm
+chiên
+chiêng
+chiêu
+chiếc
+chiếm
+chiến
+chiếng
+chiếp
+chiết
+chiếu
+chiền
+chiềng
+chiều
+chiểu
+chiện
+cho
+choang
+choi
+chong
+choài
+choàng
+choá
+choái
+choán
+choáng
+choãi
+choèn
+choé
+choòng
+choăn
+choạc
+choạng
+choạp
+choảng
+choắt
+choẹ
+choẹt
+chu
+chua
+chui
+chum
+chun
+chung
+chuyên
+chuyến
+chuyền
+chuyển
+chuyện
+chuôi
+chuôm
+chuông
+chuẩn
+chuếch
+chuệch
+chuốc
+chuối
+chuốt
+chuồi
+chuồn
+chuồng
+chuỗi
+chuộc
+chuội
+chuộng
+chuột
+chuỳ
+chà
+chài
+chàm
+chàng
+chành
+chào
+chày
+chá
+chác
+chái
+chán
+cháng
+chánh
+cháo
+chát
+cháu
+cháy
+châm
+chân
+châu
+chây
+chã
+chãi
+chão
+chè
+chèn
+chèo
+ché
+chém
+chén
+chéo
+chép
+chét
+chê
+chêm
+chênh
+chì
+chìa
+chìm
+chình
+chìu
+chí
+chích
+chím
+chín
+chính
+chíp
+chít
+chíu
+chò
+chòi
+chòm
+chòng
+chó
+chóc
+chói
+chóng
+chóp
+chót
+chôm
+chôn
+chông
+chõ
+chõm
+chõng
+chù
+chùa
+chùi
+chùm
+chùn
+chùng
+chú
+chúa
+chúc
+chúi
+chúm
+chúng
+chút
+chăm
+chăn
+chăng
+chĩa
+chĩn
+chĩnh
+chũi
+chũm
+chũn
+chơ
+chơi
+chơm
+chơn
+chư
+chưa
+chưn
+chưng
+chương
+chước
+chướng
+chườm
+chường
+chưởi
+chưởng
+chưỡng
+chược
+chượp
+chạ
+chạc
+chạch
+chạm
+chạn
+chạng
+chạnh
+chạo
+chạp
+chạt
+chạy
+chả
+chải
+chảnh
+chảo
+chảu
+chảy
+chấm
+chấn
+chấp
+chất
+chấu
+chấy
+chầm
+chần
+chầu
+chầy
+chẩm
+chẩn
+chẫu
+chậc
+chậm
+chận
+chập
+chật
+chậu
+chắc
+chắm
+chắn
+chắp
+chắt
+chằm
+chằn
+chằng
+chẳng
+chẵn
+chặc
+chặm
+chặn
+chặng
+chặp
+chặt
+chẹn
+chẹo
+chẹp
+chẹt
+chẻ
+chẻm
+chẻn
+chẻo
+chẽ
+chẽn
+chế
+chếch
+chếnh
+chết
+chề
+chềm
+chềnh
+chểnh
+chễm
+chễnh
+chệ
+chệch
+chện
+chệnh
+chỉ
+chỉn
+chỉnh
+chị
+chịa
+chịt
+chịu
+chọ
+chọc
+chọi
+chọn
+chọt
+chỏ
+chỏm
+chỏn
+chỏng
+chốc
+chối
+chốn
+chống
+chốp
+chốt
+chồ
+chồi
+chồm
+chồn
+chồng
+chổi
+chổng
+chỗ
+chỗm
+chộ
+chội
+chộn
+chộp
+chột
+chớ
+chới
+chớm
+chớp
+chớt
+chờ
+chờm
+chờn
+chở
+chởm
+chợ
+chợn
+chợp
+chợt
+chục
+chụm
+chụp
+chụt
+chủ
+chủn
+chủng
+chứ
+chứa
+chức
+chứng
+chừ
+chừa
+chừng
+chửa
+chửi
+chửng
+chữ
+chữa
+chững
+chực
+co
+coi
+com
+con
+cong
+coong
+coóc
+cu
+cua
+cui
+cum
+cun
+cung
+cuốc
+cuối
+cuốn
+cuống
+cuồn
+cuồng
+cuỗm
+cuộc
+cuội
+cuộn
+cuộng
+cà
+cài
+càn
+càng
+cành
+cào
+càu
+cày
+cá
+các
+cách
+cái
+cám
+cán
+cáng
+cánh
+cáo
+cáp
+cát
+cáu
+cáy
+câm
+cân
+câng
+câu
+cây
+cãi
+cò
+còi
+còm
+còn
+còng
+có
+cóc
+cói
+cóng
+cóp
+cót
+cô
+côi
+côm
+côn
+công
+cõi
+cõng
+cù
+cùi
+cùm
+cùn
+cùng
+cú
+cúa
+cúc
+cúi
+cúm
+cúng
+cúp
+cút
+căm
+căn
+căng
+cũ
+cũi
+cũn
+cũng
+cơ
+cơi
+cơm
+cơn
+cư
+cưa
+cưng
+cưu
+cương
+cước
+cưới
+cướp
+cười
+cườm
+cường
+cưỡi
+cưỡng
+cạ
+cạc
+cạch
+cạm
+cạn
+cạnh
+cạo
+cạp
+cạu
+cạy
+cả
+cải
+cảm
+cản
+cảng
+cảnh
+cảo
+cảu
+cảy
+cấc
+cấm
+cấn
+cấp
+cất
+cấu
+cấy
+cầm
+cần
+cầu
+cầy
+cẩm
+cẩn
+cẩu
+cẩy
+cẫm
+cẫn
+cẫng
+cận
+cập
+cật
+cậu
+cậy
+cắc
+cắm
+cắn
+cắp
+cắt
+cằm
+cằn
+cẳn
+cẳng
+cẵng
+cặc
+cặm
+cặn
+cặp
+cặt
+cọ
+cọc
+cọm
+cọn
+cọng
+cọp
+cọt
+cỏ
+cỏi
+cỏm
+cỏn
+cỏng
+cố
+cốc
+cối
+cốm
+cốn
+cống
+cốp
+cốt
+cồ
+cồm
+cồn
+cồng
+cổ
+cổi
+cổn
+cổng
+cỗ
+cỗi
+cộ
+cộc
+cội
+cộm
+cộn
+cộng
+cộp
+cột
+cớ
+cớm
+cớn
+cớt
+cờ
+cời
+cờn
+cởi
+cỡ
+cỡi
+cỡm
+cỡn
+cợn
+cợt
+cụ
+cục
+cụi
+cụm
+cụng
+cụp
+cụt
+củ
+của
+củi
+củn
+củng
+cứ
+cứa
+cức
+cứng
+cứt
+cứu
+cừ
+cừu
+cử
+cửa
+cửi
+cửng
+cửu
+cữ
+cữu
+cự
+cựa
+cực
+cựu
+da
+dai
+dam
+dan
+dang
+danh
+dao
+day
+de
+deo
+di
+dim
+dinh
+diêm
+diên
+diêu
+diếc
+diếp
+diết
+diếu
+diềm
+diều
+diễm
+diễn
+diễu
+diệc
+diện
+diệp
+diệt
+diệu
+do
+doa
+doan
+doanh
+doi
+dom
+don
+dong
+doành
+doá
+doãi
+doãn
+doãng
+doạ
+du
+dua
+dun
+dung
+duy
+duyên
+duyệt
+duềnh
+duốc
+duỗi
+dà
+dài
+dàn
+dàng
+dành
+dào
+dàu
+dày
+dá
+dác
+dái
+dám
+dán
+dáng
+dát
+dáy
+dâm
+dân
+dâng
+dâu
+dây
+dã
+dãi
+dãy
+dè
+dèn
+dé
+dép
+dê
+dênh
+dì
+dìa
+dìm
+dìu
+dí
+dích
+dím
+dính
+díp
+díu
+dò
+dòi
+dòm
+dòng
+dó
+dóc
+dóm
+dón
+dót
+dô
+dôi
+dông
+dõi
+dõng
+dù
+dùa
+dùi
+dùn
+dùng
+dúa
+dúi
+dúm
+dún
+dúng
+dút
+dăm
+dăn
+dăng
+dĩ
+dĩa
+dĩnh
+dũ
+dũi
+dũng
+dơ
+dơi
+dư
+dưa
+dưng
+dương
+dưới
+dướng
+dường
+dưỡng
+dược
+dượng
+dượt
+dạ
+dạc
+dại
+dạm
+dạn
+dạng
+dạo
+dạt
+dạy
+dả
+dải
+dảy
+dấm
+dấn
+dấp
+dấu
+dấy
+dầm
+dần
+dầu
+dẩn
+dẫm
+dẫn
+dẫu
+dẫy
+dậm
+dận
+dập
+dật
+dậu
+dậy
+dắng
+dắt
+dằm
+dằn
+dằng
+dẳng
+dặc
+dặm
+dặn
+dặng
+dặt
+dẹp
+dẹt
+dẻ
+dẻo
+dẽ
+dế
+dề
+dềnh
+dể
+dễ
+dện
+dệt
+dị
+dịch
+dịp
+dịt
+dịu
+dọc
+dọi
+dọn
+dọng
+dọp
+dỏ
+dỏm
+dỏng
+dốc
+dối
+dốt
+dồi
+dồn
+dỗ
+dỗi
+dội
+dộng
+dột
+dớ
+dớp
+dờ
+dời
+dở
+dởm
+dỡ
+dợ
+dụ
+dục
+dụm
+dụng
+dứ
+dứa
+dức
+dứt
+dừ
+dừa
+dừng
+dử
+dửng
+dữ
+dự
+dựa
+dực
+dựng
+e
+em
+email
+en
+eng
+eo
+ga
+gai
+gam
+gan
+gang
+ganh
+gao
+gau
+gay
+gen
+ghe
+ghen
+ghi
+ghim
+ghiếc
+ghiền
+ghè
+ghèn
+ghé
+ghém
+ghép
+ghét
+ghê
+ghì
+ghìm
+ghẹ
+ghẹn
+ghẹo
+ghẻ
+ghẽ
+ghế
+ghếch
+ghề
+ghềnh
+ghểnh
+ghệt
+gi
+gia
+giai
+giam
+gian
+giang
+gianh
+giao
+gieo
+gio
+gioi
+gion
+giong
+gip
+giu
+giua
+giun
+giuộc
+già
+giàn
+giàng
+giành
+giào
+giàu
+giày
+giá
+giác
+giám
+gián
+giáng
+giáo
+giáp
+giát
+giâm
+giâu
+giây
+giã
+giãi
+giãn
+giãy
+gièm
+gié
+giéo
+giê
+giêng
+giò
+giòi
+giòn
+gió
+gióc
+giói
+gión
+gióng
+giô
+giôn
+giông
+giùi
+giùm
+giú
+giúi
+giúp
+giăm
+giăng
+giũ
+giũa
+giơ
+giương
+giướng
+giường
+giượng
+giạ
+giại
+giạng
+giạt
+giả
+giải
+giảm
+giản
+giảng
+giảnh
+giảo
+giảu
+giấc
+giấm
+giấp
+giấu
+giấy
+giầm
+giần
+giầu
+giầy
+giẫm
+giẫy
+giậm
+giận
+giập
+giật
+giậu
+giắn
+giắt
+giằm
+giằn
+giằng
+giặc
+giặm
+giặn
+giặt
+giẹo
+giẹp
+giẻ
+giếc
+giếm
+giếng
+giết
+giề
+giền
+giềng
+giễu
+giọ
+giọc
+giọi
+giọng
+giọt
+giỏ
+giỏi
+giỏn
+giỏng
+giối
+giống
+giốt
+giồ
+giồi
+giồng
+giổi
+giỗ
+giộ
+giội
+giộp
+giới
+giờ
+giời
+giờn
+giở
+giỡn
+giụa
+giục
+giụi
+giủi
+giừ
+giữ
+giữa
+giựt
+go
+gom
+gon
+goá
+goòng
+gram
+gu
+guốc
+guồi
+guồng
+guộc
+gà
+gài
+gàn
+gàng
+gành
+gào
+gàu
+gá
+gác
+gái
+gán
+gánh
+gáo
+gáp
+gáu
+gáy
+gâm
+gân
+gâu
+gây
+gã
+gãi
+gãy
+gì
+gìm
+gìn
+gí
+gích
+gíp
+gò
+gòn
+góc
+gói
+góp
+gót
+gô
+gôm
+gôn
+gông
+gõ
+gù
+gùi
+gùn
+gùng
+gút
+găm
+găn
+găng
+gũi
+gơ
+gươm
+gương
+gườm
+gường
+gưỡng
+gượm
+gượng
+gạ
+gạc
+gạch
+gạn
+gạnh
+gạo
+gạt
+gả
+gảy
+gấc
+gấm
+gấp
+gấu
+gấy
+gầm
+gần
+gầu
+gầy
+gẩm
+gẫm
+gẫu
+gậm
+gập
+gật
+gậy
+gắm
+gắn
+gắng
+gắp
+gắt
+gằm
+gằn
+gặc
+gặm
+gặn
+gặng
+gặp
+gặt
+gỉ
+gọi
+gọn
+gọng
+gọt
+gỏi
+gỏng
+gốc
+gối
+gốm
+gồ
+gồi
+gồm
+gồng
+gổ
+gỗ
+gộ
+gộc
+gội
+gộp
+gột
+gớm
+gờ
+gờm
+gờn
+gở
+gởi
+gỡ
+gợi
+gợn
+gợt
+gụ
+gục
+gụi
+gụt
+gừ
+gừng
+gửi
+ha
+hai
+ham
+han
+hang
+hanh
+hao
+hau
+hay
+he
+hem
+hen
+heo
+hi
+hia
+him
+hiu
+hiên
+hiêng
+hiếm
+hiến
+hiếng
+hiếp
+hiếu
+hiềm
+hiền
+hiểm
+hiển
+hiểu
+hiện
+hiệp
+hiệu
+ho
+hoa
+hoan
+hoang
+hoay
+hoe
+hoen
+hoi
+hom
+hon
+hong
+hoà
+hoài
+hoàn
+hoàng
+hoành
+hoá
+hoác
+hoán
+hoáy
+hoãn
+hoè
+hoét
+hoăm
+hoăng
+hoạ
+hoạch
+hoại
+hoạn
+hoạnh
+hoạt
+hoả
+hoải
+hoảng
+hoảnh
+hoắc
+hoắm
+hoắt
+hoẳn
+hoẵng
+hoặc
+hoẹ
+hoẹt
+hoẻn
+hu
+hua
+hum
+hun
+hung
+huy
+huynh
+huyên
+huyết
+huyền
+huyễn
+huyện
+huyệt
+huân
+huê
+huênh
+huý
+huých
+huýt
+huơ
+huấn
+huếch
+huề
+huệ
+huống
+huỳnh
+huỵch
+huỷ
+hy
+hà
+hài
+hàm
+hàn
+hàng
+hành
+hào
+hàu
+há
+hác
+hách
+hái
+hám
+hán
+háng
+hánh
+háo
+hát
+háu
+háy
+hâm
+hân
+hâu
+hây
+hãi
+hãm
+hãn
+hãng
+hãnh
+hão
+hãy
+hè
+hèm
+hèn
+hèo
+hé
+héc
+héo
+hét
+hê
+hên
+hênh
+hì
+hình
+hí
+hích
+híp
+hít
+hò
+hòi
+hòm
+hòn
+hòng
+hóc
+hói
+hóm
+hóng
+hóp
+hót
+hô
+hôi
+hôm
+hôn
+hông
+hõm
+hù
+hùa
+hùm
+hùn
+hùng
+hú
+húc
+húi
+húng
+húp
+hút
+hăm
+hăng
+hĩm
+hĩnh
+hũ
+hũm
+hơ
+hơi
+hơn
+hư
+hưng
+hưu
+hương
+hươu
+hước
+hướm
+hướng
+hường
+hưởng
+hượm
+hạ
+hạc
+hạch
+hại
+hạm
+hạn
+hạng
+hạnh
+hạo
+hạp
+hạt
+hả
+hải
+hảm
+hảng
+hảo
+hấn
+hấng
+hấp
+hất
+hấu
+hấy
+hầm
+hầu
+hầy
+hẩm
+hẩng
+hẩu
+hẩy
+hẫng
+hẫu
+hậm
+hận
+hập
+hậu
+hắc
+hắn
+hắng
+hắt
+hằm
+hằn
+hằng
+hẳn
+hẵng
+hặc
+hẹ
+hẹm
+hẹn
+hẹp
+hẻm
+hẻo
+hếch
+hến
+hết
+hếu
+hề
+hềnh
+hể
+hển
+hểnh
+hệ
+hệch
+hệt
+hỉ
+hỉnh
+hịch
+họ
+học
+họng
+họp
+hỏi
+hỏm
+hỏn
+hỏng
+hố
+hốc
+hối
+hống
+hốt
+hồ
+hồi
+hồn
+hồng
+hổ
+hổi
+hổm
+hổn
+hổng
+hỗ
+hỗn
+hỗng
+hộ
+hộc
+hội
+hộn
+hộp
+hột
+hớ
+hớm
+hớn
+hớp
+hớt
+hờ
+hời
+hờn
+hở
+hởi
+hỡi
+hợi
+hợm
+hợp
+hợt
+hục
+hụi
+hụm
+hụp
+hụt
+hủ
+hủi
+hủn
+hứa
+hức
+hứng
+hừ
+hừm
+hừng
+hử
+hửng
+hữ
+hững
+hữu
+hự
+hực
+hựu
+i
+im
+in
+inh
+internet
+intranet
+iu
+ka
+ke
+kem
+ken
+keng
+keo
+kha
+khai
+kham
+khan
+khang
+khanh
+khao
+khau
+khay
+khe
+khem
+khen
+kheo
+khi
+khin
+khinh
+khiu
+khiêm
+khiên
+khiêng
+khiêu
+khiếm
+khiến
+khiếp
+khiết
+khiếu
+khiền
+khiển
+khiễng
+kho
+khoa
+khoai
+khoan
+khoang
+khoanh
+khoe
+khoeo
+khom
+khoào
+khoá
+khoác
+khoái
+khoán
+khoáng
+khoát
+khoáy
+khoèo
+khoé
+khoét
+khoăm
+khoăn
+khoả
+khoải
+khoản
+khoảng
+khoảnh
+khoắm
+khoắn
+khoắng
+khoắt
+khoằm
+khoẻ
+khu
+khua
+khui
+khum
+khung
+khuy
+khuya
+khuynh
+khuyên
+khuyến
+khuyết
+khuyển
+khuân
+khuâng
+khuây
+khuê
+khuôn
+khuông
+khuơ
+khuất
+khuấy
+khuẩn
+khuếch
+khuỳnh
+khuỵu
+khuỷu
+khà
+khàn
+khàng
+khá
+khác
+khách
+khái
+khám
+khán
+kháng
+khánh
+kháo
+kháp
+khát
+kháu
+kháy
+khâm
+khân
+khâu
+khè
+khèn
+khèo
+khé
+khén
+khéo
+khép
+khét
+khê
+khênh
+khêu
+khì
+khìn
+khí
+khía
+khích
+khít
+khíu
+khò
+khòm
+khòng
+khó
+khóc
+khói
+khóm
+khô
+khôi
+khôn
+không
+khù
+khùng
+khú
+khúc
+khúm
+khăm
+khăn
+khăng
+khĩnh
+khơ
+khơi
+khư
+khươi
+khươm
+khươn
+khương
+khước
+khướt
+khướu
+khạc
+khạng
+khạo
+khả
+khải
+khảm
+khản
+khảng
+khảnh
+khảo
+khảy
+khấc
+khấm
+khấn
+khấp
+khất
+khấu
+khẩn
+khẩu
+khẩy
+khập
+khật
+khắc
+khắm
+khắng
+khắp
+khắt
+khằng
+khẳm
+khẳn
+khẳng
+khặc
+khẹc
+khẻ
+khẻo
+khẽ
+khế
+khề
+khều
+khểnh
+khệ
+khệnh
+khỉ
+khỉnh
+khịa
+khịt
+khọm
+khỏi
+khỏng
+khố
+khốc
+khối
+khốn
+khống
+khổ
+khổn
+khổng
+khớ
+khớp
+khờ
+khởi
+khụ
+khục
+khụt
+khủ
+khủng
+khứ
+khứa
+khứng
+khứu
+khừ
+khừng
+khử
+khựng
+ki
+kia
+kim
+kinh
+kiêm
+kiên
+kiêng
+kiêu
+kiếm
+kiến
+kiếp
+kiết
+kiếu
+kiềm
+kiền
+kiềng
+kiều
+kiểm
+kiểng
+kiểu
+kiễng
+kiệm
+kiện
+kiệt
+kiệu
+kè
+kèm
+kèn
+kèo
+ké
+kéc
+kém
+kén
+kéo
+kép
+két
+kê
+kênh
+kêu
+kì
+kìa
+kìm
+kình
+kí
+kích
+kín
+kính
+kíp
+kít
+ký
+kĩ
+kẹ
+kẹn
+kẹo
+kẹp
+kẹt
+kẻ
+kẻng
+kẻo
+kẽ
+kẽm
+kẽo
+kế
+kếch
+kếp
+kết
+kề
+kềm
+kền
+kềnh
+kều
+kể
+kệ
+kệch
+kệnh
+kỉ
+kỉnh
+kị
+kịch
+kịp
+kịt
+kỳ
+kỵ
+kỷ
+kỹ
+la
+lai
+lam
+lan
+lang
+lanh
+lao
+lau
+lay
+le
+lem
+len
+leng
+leo
+li
+lia
+lim
+lin
+linh
+liu
+liêm
+liên
+liêng
+liêu
+liếc
+liếm
+liến
+liếng
+liếp
+liềm
+liền
+liều
+liểng
+liễm
+liễn
+liễu
+liệm
+liệng
+liệp
+liệt
+liệu
+lo
+loa
+loan
+loang
+loanh
+loay
+loe
+loen
+loi
+lom
+lon
+long
+loong
+loà
+loài
+loàn
+loàng
+loáng
+loát
+loãng
+loè
+loé
+loét
+loăng
+loạc
+loại
+loạn
+loạng
+loạt
+loảng
+loắt
+loằng
+loẹt
+lu
+lua
+lui
+lum
+lung
+luya
+luyến
+luyện
+luân
+luôm
+luôn
+luông
+luýnh
+luấn
+luẩn
+luận
+luật
+luốc
+luống
+luốt
+luồn
+luồng
+luỗng
+luộc
+luộm
+luỵ
+luỹ
+ly
+là
+lài
+làm
+làn
+làng
+lành
+lào
+làu
+lá
+lác
+lách
+lái
+lán
+láng
+lánh
+láo
+láp
+lát
+láu
+láy
+lâm
+lân
+lâng
+lâu
+lây
+lã
+lãi
+lãm
+lãn
+lãng
+lãnh
+lão
+lè
+lèm
+lèn
+lèo
+lé
+léc
+lém
+lén
+léng
+léo
+lép
+lét
+lê
+lên
+lênh
+lêu
+lì
+lìa
+lìm
+lình
+lìu
+lí
+lính
+líp
+lít
+líu
+lò
+lòi
+lòm
+lòn
+lòng
+ló
+lóc
+lói
+lóm
+lóng
+lóp
+lót
+lô
+lôi
+lôm
+lông
+lõ
+lõi
+lõm
+lõng
+lù
+lùa
+lùi
+lùm
+lùn
+lùng
+lú
+lúa
+lúc
+lúi
+lúm
+lún
+lúng
+lúp
+lút
+lý
+lăm
+lăn
+lăng
+lĩnh
+lũ
+lũi
+lũm
+lũn
+lũng
+lơ
+lơi
+lơn
+lư
+lưng
+lưu
+lươm
+lươn
+lương
+lưới
+lướng
+lướt
+lười
+lườm
+lườn
+lường
+lưỡi
+lưỡng
+lược
+lượm
+lượn
+lượng
+lượt
+lạ
+lạc
+lạch
+lại
+lạm
+lạn
+lạng
+lạnh
+lạo
+lạp
+lạt
+lạu
+lạy
+lả
+lải
+lảm
+lảng
+lảnh
+lảo
+lảu
+lảy
+lấc
+lấm
+lấn
+lấp
+lất
+lấy
+lầm
+lần
+lầu
+lầy
+lẩm
+lẩn
+lẩu
+lẩy
+lẫm
+lẫn
+lẫy
+lận
+lập
+lật
+lậu
+lắc
+lắm
+lắng
+lắp
+lắt
+lằm
+lằn
+lằng
+lẳm
+lẳn
+lẳng
+lẵng
+lặc
+lặm
+lặn
+lặng
+lặp
+lặt
+lẹ
+lẹm
+lẹn
+lẹo
+lẹp
+lẹt
+lẻ
+lẻm
+lẻn
+lẻng
+lẻo
+lẽ
+lẽn
+lẽo
+lếch
+lết
+lếu
+lề
+lềnh
+lều
+lể
+lểu
+lễ
+lễu
+lệ
+lệch
+lệnh
+lỉm
+lỉnh
+lị
+lịa
+lịch
+lịm
+lịnh
+lịu
+lọ
+lọc
+lọi
+lọm
+lọn
+lọng
+lọt
+lỏi
+lỏm
+lỏn
+lỏng
+lố
+lốc
+lối
+lốm
+lốn
+lốp
+lốt
+lồ
+lồi
+lồm
+lồn
+lồng
+lổ
+lổm
+lổn
+lổng
+lỗ
+lỗi
+lộ
+lộc
+lội
+lộm
+lộn
+lộng
+lộp
+lột
+lớ
+lới
+lớn
+lớp
+lớt
+lờ
+lời
+lờm
+lờn
+lở
+lởi
+lởm
+lởn
+lỡ
+lỡm
+lợ
+lợi
+lợm
+lợn
+lợp
+lợt
+lụ
+lụa
+lục
+lụi
+lụn
+lụng
+lụp
+lụt
+lủ
+lủi
+lủm
+lủn
+lủng
+lứa
+lức
+lứt
+lừ
+lừa
+lừng
+lử
+lửa
+lửng
+lữ
+lữa
+lững
+lự
+lựa
+lực
+lựng
+lựu
+lỵ
+ma
+mai
+man
+mang
+manh
+mao
+mau
+may
+me
+mem
+men
+meo
+mi
+mia
+mim
+min
+minh
+miên
+miêu
+miến
+miếng
+miết
+miếu
+miền
+miều
+miễn
+miễu
+miện
+miệng
+miệt
+mo
+moay
+moi
+mom
+mon
+mong
+moóc
+mu
+mua
+mui
+mum
+mun
+mung
+muôi
+muôn
+muông
+muối
+muốn
+muống
+muốt
+muồi
+muỗi
+muỗm
+muỗng
+muội
+muộn
+mà
+mài
+màn
+màng
+mành
+mào
+màu
+mày
+má
+mác
+mách
+mái
+mán
+máng
+mánh
+máo
+mát
+máu
+máy
+mâm
+mân
+mâng
+mâu
+mây
+mã
+mãi
+mãn
+mãng
+mãnh
+mão
+mè
+mèm
+mèn
+mèng
+mèo
+mé
+mém
+mén
+méo
+mép
+mét
+mê
+mên
+mênh
+mì
+mìn
+mình
+mí
+mía
+mích
+mím
+míp
+mít
+míu
+mò
+mòi
+mòm
+mòn
+mòng
+mó
+móc
+mói
+móm
+món
+móng
+móp
+mót
+mô
+môi
+môm
+môn
+mông
+mõ
+mõm
+mù
+mùa
+mùi
+mùn
+mùng
+mú
+múa
+múc
+múi
+múm
+mún
+múp
+mút
+măm
+măn
+măng
+mĩ
+mĩm
+mũ
+mũi
+mũm
+mơ
+mơi
+mơn
+mưa
+mưu
+mươi
+mương
+mướn
+mướp
+mướt
+mười
+mường
+mượn
+mượt
+mạ
+mạc
+mạch
+mại
+mạn
+mạng
+mạnh
+mạo
+mạp
+mạt
+mạy
+mả
+mải
+mảng
+mảnh
+mảy
+mấn
+mấp
+mất
+mấu
+mấy
+mầm
+mần
+mầng
+mầu
+mẩm
+mẩn
+mẩy
+mẫm
+mẫn
+mẫu
+mận
+mập
+mật
+mậu
+mắc
+mắm
+mắn
+mắng
+mắt
+mằn
+mẳn
+mặc
+mặn
+mặt
+mẹ
+mẹo
+mẹp
+mẹt
+mẻ
+mẻo
+mẽ
+mế
+mếch
+mến
+mếu
+mề
+mềm
+mền
+mễ
+mệ
+mệnh
+mệt
+mỉ
+mỉa
+mỉm
+mị
+mịch
+mịn
+mịnh
+mịt
+mọc
+mọi
+mọn
+mọng
+mọt
+mỏ
+mỏi
+mỏm
+mỏng
+mố
+mốc
+mối
+mống
+mốt
+mồ
+mồi
+mồm
+mồn
+mồng
+mổ
+mổng
+mỗ
+mỗi
+mộ
+mộc
+mộng
+một
+mớ
+mới
+mớm
+mớp
+mờ
+mời
+mờm
+mở
+mởn
+mỡ
+mụ
+mục
+mụi
+mụn
+mụp
+mủ
+mủi
+mủm
+mủn
+mủng
+mứa
+mức
+mứt
+mứu
+mừng
+mửa
+mựa
+mực
+mỹ
+na
+nai
+nam
+nan
+nang
+nanh
+nao
+nau
+nay
+ne
+nem
+nen
+neo
+nga
+ngai
+ngam
+ngan
+ngang
+ngao
+ngau
+ngay
+nghe
+nghi
+nghinh
+nghiu
+nghiêm
+nghiên
+nghiêng
+nghiêu
+nghiến
+nghiền
+nghiễm
+nghiệm
+nghiện
+nghiệp
+nghiệt
+nghè
+nghèn
+nghèo
+nghé
+nghén
+nghét
+nghê
+nghênh
+nghêu
+nghì
+nghìn
+nghí
+nghít
+nghĩ
+nghĩa
+nghẹn
+nghẹo
+nghẹt
+nghẻo
+nghẽn
+nghẽo
+nghếch
+nghề
+nghều
+nghển
+nghểnh
+nghễ
+nghễnh
+nghễu
+nghệ
+nghệch
+nghện
+nghỉ
+nghỉm
+nghỉn
+nghỉnh
+nghỉu
+nghị
+nghịch
+nghịt
+nghịu
+ngoa
+ngoan
+ngoang
+ngoao
+ngoay
+ngoe
+ngoi
+ngon
+ngong
+ngoài
+ngoàm
+ngoác
+ngoách
+ngoái
+ngoáo
+ngoáy
+ngoã
+ngoãn
+ngoèo
+ngoé
+ngoéo
+ngoét
+ngoại
+ngoạm
+ngoạn
+ngoải
+ngoảng
+ngoảnh
+ngoảy
+ngoắc
+ngoắt
+ngoằn
+ngoằng
+ngoẵng
+ngoặc
+ngoặt
+ngoẻn
+ngu
+nguy
+nguyên
+nguyền
+nguyện
+nguyệt
+nguýt
+nguẩy
+nguồi
+nguồn
+nguội
+nguỵ
+nguỷu
+ngà
+ngài
+ngàm
+ngàn
+ngàng
+ngành
+ngào
+ngàu
+ngày
+ngác
+ngách
+ngái
+ngám
+ngán
+ngáng
+ngáo
+ngáp
+ngát
+ngáu
+ngáy
+ngâm
+ngân
+ngâu
+ngây
+ngã
+ngãi
+ngãng
+ngão
+ngò
+ngòi
+ngòm
+ngòn
+ngòng
+ngó
+ngóc
+ngói
+ngóm
+ngón
+ngóng
+ngóp
+ngót
+ngô
+ngôi
+ngôn
+ngông
+ngõ
+ngõi
+ngõng
+ngùi
+ngùng
+ngú
+ngúc
+ngúng
+ngút
+ngăm
+ngăn
+ngũ
+ngơ
+ngơi
+ngơm
+ngơn
+ngư
+ngưa
+ngưng
+ngưu
+ngươi
+ngước
+người
+ngường
+ngưởng
+ngưỡng
+ngược
+ngượng
+ngạc
+ngạch
+ngại
+ngạn
+ngạnh
+ngạo
+ngạt
+ngả
+ngải
+ngảnh
+ngấc
+ngấm
+ngấn
+ngấp
+ngất
+ngấu
+ngấy
+ngầm
+ngần
+ngầu
+ngầy
+ngẩm
+ngẩn
+ngẩng
+ngẫm
+ngẫn
+ngẫu
+ngậm
+ngận
+ngập
+ngật
+ngậu
+ngậy
+ngắc
+ngắm
+ngắn
+ngắt
+ngằn
+ngẳng
+ngẵng
+ngặt
+ngọ
+ngọc
+ngọn
+ngọng
+ngọt
+ngỏ
+ngỏm
+ngỏn
+ngỏng
+ngố
+ngốc
+ngốn
+ngốt
+ngồi
+ngồm
+ngồn
+ngồng
+ngổ
+ngổm
+ngổn
+ngỗ
+ngỗng
+ngộ
+ngộc
+ngộn
+ngột
+ngớ
+ngớn
+ngớp
+ngớt
+ngờ
+ngời
+ngờm
+ngỡ
+ngợ
+ngợi
+ngợm
+ngợp
+ngụ
+ngụa
+ngục
+ngụm
+ngụp
+ngủ
+ngủi
+ngủn
+ngứ
+ngứa
+ngứt
+ngừ
+ngừa
+ngừng
+ngửa
+ngửi
+ngửng
+ngữ
+ngự
+ngựa
+ngực
+nha
+nhai
+nham
+nhan
+nhang
+nhanh
+nhao
+nhau
+nhay
+nhe
+nhem
+nhen
+nheo
+nhi
+nhinh
+nhiu
+nhiên
+nhiêu
+nhiếc
+nhiếp
+nhiều
+nhiễm
+nhiễn
+nhiễu
+nhiệm
+nhiệt
+nho
+nhoai
+nhoang
+nhoay
+nhoe
+nhoen
+nhoi
+nhom
+nhong
+nhoà
+nhoài
+nhoàm
+nhoá
+nhoáng
+nhoáy
+nhoè
+nhoèn
+nhoé
+nhoét
+nhoạng
+nhoẹt
+nhoẻn
+nhu
+nhui
+nhung
+nhuyễn
+nhuôm
+nhuần
+nhuận
+nhuế
+nhuệ
+nhuốc
+nhuốm
+nhuộm
+nhuỵ
+nhà
+nhài
+nhàm
+nhàn
+nhàng
+nhành
+nhào
+nhàu
+nhày
+nhá
+nhác
+nhách
+nhái
+nhám
+nháng
+nhánh
+nháo
+nháp
+nhát
+nháy
+nhâm
+nhân
+nhâng
+nhâu
+nhây
+nhã
+nhãi
+nhãn
+nhãng
+nhão
+nhè
+nhèm
+nhèo
+nhé
+nhén
+nhéo
+nhép
+nhét
+nhênh
+nhì
+nhìn
+nhí
+nhía
+nhích
+nhím
+nhín
+nhíp
+nhít
+nhíu
+nhò
+nhòm
+nhó
+nhóc
+nhói
+nhóm
+nhón
+nhóng
+nhóp
+nhót
+nhô
+nhôi
+nhôm
+nhôn
+nhông
+nhõ
+nhõm
+nhõn
+nhù
+nhùi
+nhùn
+nhùng
+nhú
+nhúa
+nhúc
+nhúm
+nhún
+nhúng
+nhút
+nhăm
+nhăn
+nhăng
+nhĩ
+nhũ
+nhũn
+nhũng
+nhơ
+nhơi
+nhơm
+nhơn
+như
+nhưng
+nhương
+nhướng
+nhường
+nhưỡng
+nhược
+nhượng
+nhạc
+nhạn
+nhạnh
+nhạo
+nhạp
+nhạt
+nhạy
+nhả
+nhải
+nhảm
+nhản
+nhảnh
+nhảu
+nhảy
+nhấc
+nhấm
+nhấn
+nhấp
+nhất
+nhầm
+nhần
+nhầy
+nhẩm
+nhẫn
+nhẫy
+nhậm
+nhận
+nhập
+nhật
+nhậu
+nhậy
+nhắc
+nhắm
+nhắn
+nhắng
+nhắp
+nhắt
+nhằm
+nhằn
+nhằng
+nhẳn
+nhẳng
+nhẵn
+nhẵng
+nhặm
+nhặn
+nhặng
+nhặt
+nhẹ
+nhẹm
+nhẹn
+nhẹo
+nhẹp
+nhẹt
+nhẻ
+nhẻm
+nhẽ
+nhẽo
+nhện
+nhệu
+nhỉ
+nhỉnh
+nhị
+nhịn
+nhịp
+nhịt
+nhịu
+nhọ
+nhọc
+nhọn
+nhọt
+nhỏ
+nhỏm
+nhỏng
+nhố
+nhốc
+nhối
+nhốn
+nhốt
+nhồi
+nhồm
+nhồn
+nhồng
+nhổ
+nhổm
+nhổn
+nhộn
+nhộng
+nhột
+nhớ
+nhớm
+nhớn
+nhớp
+nhớt
+nhờ
+nhời
+nhờn
+nhở
+nhởn
+nhỡ
+nhợ
+nhợt
+nhụ
+nhụa
+nhục
+nhụi
+nhụng
+nhụt
+nhủ
+nhủi
+nhủn
+nhứ
+nhức
+nhứt
+nhừ
+nhử
+nhửng
+những
+nhự
+nhựa
+nhựt
+ni
+nia
+nin
+ninh
+niu
+niêm
+niên
+niêu
+niết
+niềm
+niền
+niềng
+niễng
+niệm
+niệt
+niệu
+no
+noa
+noi
+nom
+non
+nong
+noãn
+nua
+nung
+nuôi
+nuông
+nuốc
+nuối
+nuốm
+nuốt
+nuộc
+nuột
+nà
+nài
+nàn
+nàng
+nành
+nào
+này
+ná
+nác
+nách
+nái
+nám
+nán
+náng
+nánh
+náo
+nát
+náu
+náy
+nân
+nâng
+nâu
+nây
+nã
+não
+nãy
+nè
+nèo
+né
+ném
+nén
+néo
+nép
+nét
+nê
+nêm
+nên
+nêu
+nì
+nình
+ních
+nín
+nính
+níp
+nít
+níu
+nò
+nòi
+nó
+nóc
+nói
+nón
+nóng
+nót
+nô
+nôi
+nôm
+nôn
+nông
+nõ
+nõn
+nùi
+nùn
+nùng
+núc
+núi
+núm
+núng
+núp
+nút
+năm
+năn
+năng
+nĩa
+nũng
+nơ
+nơi
+nơm
+nư
+nưa
+nưng
+nương
+nước
+nướng
+nườm
+nường
+nược
+nượp
+nạ
+nạc
+nại
+nạm
+nạn
+nạng
+nạnh
+nạo
+nạp
+nạt
+nạy
+nả
+nải
+nản
+nảy
+nấc
+nấm
+nấng
+nấp
+nấu
+nấy
+nầm
+nần
+nầy
+nẩy
+nẫng
+nẫu
+nậm
+nậng
+nập
+nậu
+nậy
+nắc
+nắm
+nắn
+nắng
+nắp
+nằm
+nằn
+nằng
+nặc
+nặn
+nặng
+nẹp
+nẹt
+nẻ
+nẻo
+nếm
+nến
+nếp
+nết
+nếu
+nề
+nền
+nể
+nệ
+nệm
+nện
+nỉ
+nịch
+nịnh
+nịt
+nịu
+nọ
+nọc
+nọn
+nọng
+nọt
+nỏ
+nỏi
+nố
+nốc
+nối
+nống
+nốt
+nồ
+nồi
+nồm
+nồng
+nổ
+nổi
+nỗ
+nỗi
+nỗng
+nộ
+nội
+nộm
+nộn
+nộp
+nột
+nớ
+nới
+nớp
+nớt
+nờ
+nờm
+nở
+nỡ
+nỡm
+nợ
+nợp
+nụ
+nục
+nủa
+nứa
+nức
+nứt
+nừng
+nửa
+nữ
+nữa
+nự
+nực
+nựng
+o
+oa
+oai
+oan
+oang
+oanh
+oe
+oi
+om
+ong
+oà
+oàm
+oàng
+oành
+oác
+oách
+oái
+oán
+oát
+oé
+oăm
+oăng
+oạch
+oại
+oạp
+oải
+oản
+oắt
+oằn
+oẳn
+oẳng
+oặt
+oẹ
+oẻ
+pa
+palăng
+pan
+pao
+pe
+pha
+phai
+phang
+phanh
+phao
+phau
+phay
+phe
+phen
+pheo
+phi
+phim
+phin
+phinh
+phiu
+phiên
+phiêu
+phiếm
+phiến
+phiết
+phiếu
+phiền
+phiện
+phiệt
+pho
+phoi
+phom
+phong
+phu
+phui
+phun
+phung
+phuy
+phà
+phàm
+phàn
+phàng
+phành
+phào
+phá
+phác
+phách
+phái
+phán
+pháo
+pháp
+phát
+phân
+phây
+phè
+phèn
+phèng
+phèo
+phéng
+phép
+phét
+phê
+phên
+phì
+phìa
+phình
+phí
+phía
+phích
+phím
+phính
+phò
+phòi
+phòng
+phó
+phóc
+phóng
+phót
+phô
+phôi
+phôm
+phông
+phù
+phùn
+phùng
+phú
+phúc
+phún
+phúng
+phút
+phăm
+phăn
+phăng
+phĩnh
+phũ
+phơ
+phơi
+phơn
+phưng
+phương
+phước
+phướn
+phướng
+phường
+phưỡn
+phượng
+phượu
+phạch
+phạm
+phạn
+phạng
+phạt
+phả
+phải
+phản
+phảng
+phảy
+phấn
+phấp
+phất
+phầm
+phần
+phẩm
+phẩn
+phẩy
+phẫn
+phẫu
+phận
+phập
+phật
+phắc
+phắn
+phắp
+phắt
+phẳng
+phẹt
+phế
+phếch
+phết
+phề
+phềnh
+phều
+phễn
+phễu
+phệ
+phệnh
+phệt
+phỉ
+phỉnh
+phị
+phịa
+phịch
+phịt
+phịu
+phọng
+phọt
+phỏng
+phố
+phốc
+phối
+phốp
+phồ
+phồm
+phồn
+phồng
+phổ
+phổi
+phổng
+phỗng
+phộng
+phới
+phớt
+phờ
+phở
+phỡn
+phụ
+phục
+phụng
+phụt
+phủ
+phủi
+phứa
+phức
+phứt
+phừng
+phựa
+phựt
+pi
+pin
+ping
+pom
+pu
+pác
+páp
+pê
+pô
+pông
+pơ
+qua
+quai
+quan
+quang
+quanh
+quao
+quau
+quay
+que
+quen
+queo
+quoàng
+quoạng
+quoắt
+quy
+quyên
+quyến
+quyết
+quyền
+quyển
+quyện
+quyệt
+quà
+quài
+quàn
+quàng
+quành
+quào
+quàu
+quày
+quá
+quác
+quách
+quái
+quán
+quáng
+quánh
+quáo
+quát
+quáu
+quân
+quây
+quãng
+què
+quèn
+quèo
+qué
+quén
+quéo
+quét
+quê
+quên
+quít
+quý
+quýnh
+quýt
+quăm
+quăn
+quăng
+quơ
+quạ
+quạc
+quạch
+quại
+quạng
+quạnh
+quạt
+quạu
+quạy
+quả
+quải
+quản
+quảng
+quảy
+quấc
+quấn
+quất
+quấy
+quần
+quầng
+quầy
+quẩn
+quẩng
+quẩy
+quẫn
+quẫy
+quận
+quật
+quậy
+quắc
+quắm
+quắn
+quắp
+quắt
+quằn
+quẳm
+quẳng
+quặc
+quặm
+quặn
+quặng
+quặp
+quặt
+quẹo
+quẹt
+quẻ
+quẽ
+quế
+quết
+quếu
+quềnh
+quều
+quệ
+quệch
+quện
+quệnh
+quệt
+quịt
+quốc
+quớ
+quờ
+quở
+quỳ
+quỳnh
+quỵ
+quỵt
+quỷ
+quỷnh
+quỹ
+ra
+rai
+ram
+ran
+rang
+ranh
+rao
+rau
+ray
+re
+ren
+reng
+reo
+ri
+ria
+rim
+rin
+rinh
+riu
+riêng
+riêu
+riết
+riếu
+riềm
+riềng
+riệt
+ro
+roa
+roi
+rom
+rong
+ru
+rua
+rum
+run
+rung
+ruốc
+ruối
+ruồi
+ruồng
+ruổi
+ruỗng
+ruộm
+ruộng
+ruột
+rà
+rài
+ràn
+ràng
+rành
+rào
+rày
+rá
+rác
+rách
+rái
+rám
+rán
+ráng
+ráo
+ráp
+rát
+ráy
+râm
+rân
+râu
+rây
+rã
+rãi
+rãnh
+rão
+rãy
+rè
+rèm
+rèn
+rèo
+ré
+rén
+réo
+rét
+rê
+rên
+rêu
+rì
+rìa
+rình
+rìu
+rí
+rích
+rít
+ríu
+rò
+ròi
+ròm
+ròng
+ró
+róc
+rói
+róm
+rón
+róng
+rót
+rô
+rôm
+rông
+rõ
+rõi
+rù
+rùa
+rùm
+rùn
+rùng
+rú
+rúc
+rúi
+rúm
+rún
+rúng
+rúp
+rút
+răm
+răn
+răng
+rĩ
+rũ
+rũa
+rơ
+rơi
+rơm
+rơn
+rư
+rưa
+rưng
+rươi
+rươm
+rương
+rước
+rưới
+rướm
+rướn
+rười
+rườm
+rườn
+rường
+rưởi
+rưỡi
+rượi
+rượn
+rượt
+rượu
+rạ
+rạc
+rạch
+rạn
+rạng
+rạo
+rạp
+rạt
+rạy
+rả
+rải
+rảnh
+rảo
+rảy
+rấm
+rấn
+rấp
+rất
+rầm
+rần
+rầu
+rầy
+rẩm
+rẩy
+rẫm
+rẫy
+rậm
+rận
+rập
+rật
+rắc
+rắm
+rắn
+rắp
+rắt
+rằm
+rằn
+rằng
+rặng
+rặt
+rẹo
+rẹt
+rẻ
+rẻng
+rẻo
+rẽ
+rế
+rếch
+rến
+rếp
+rết
+rề
+rền
+rều
+rể
+rểnh
+rễ
+rệ
+rệch
+rện
+rệp
+rệt
+rệu
+rỉ
+rỉa
+rỉnh
+rịa
+rịch
+rịn
+rịt
+rọ
+rọc
+rọi
+rọm
+rọt
+rỏ
+rỏm
+rỏn
+rốc
+rối
+rốn
+rống
+rốp
+rốt
+rồ
+rồi
+rồm
+rồng
+rổ
+rổi
+rổng
+rỗ
+rỗi
+rỗng
+rộ
+rộc
+rộm
+rộn
+rộng
+rộp
+rớ
+rớm
+rớt
+rờ
+rời
+rờm
+rờn
+rở
+rởm
+rởn
+rỡ
+rỡn
+rợ
+rợi
+rợm
+rợn
+rợp
+rợt
+rục
+rụi
+rụng
+rụt
+rủ
+rủa
+rủi
+rủn
+rủng
+rứa
+rức
+rứt
+rừng
+rửa
+rửng
+rữa
+rựa
+rực
+sa
+sai
+sam
+san
+sang
+sanh
+sao
+sau
+say
+se
+sen
+seo
+si
+sim
+sin
+sinh
+siu
+siêng
+siêu
+siết
+siểm
+siểng
+siễn
+so
+soa
+soi
+son
+song
+soong
+soà
+soài
+soái
+soán
+soát
+soóc
+soạn
+soạng
+soạt
+su
+sui
+sum
+sun
+sung
+suy
+suyển
+suyễn
+suê
+suôn
+suông
+suý
+suýt
+suất
+suối
+suốt
+suồng
+suỵt
+sà
+sài
+sàm
+sàn
+sàng
+sành
+sào
+sá
+sác
+sách
+sái
+sám
+sán
+sáng
+sánh
+sáo
+sáp
+sát
+sáu
+sâm
+sân
+sâu
+sây
+sã
+sãi
+sè
+sèo
+séc
+sém
+sét
+sê
+sên
+sênh
+sêu
+sì
+sình
+sính
+sít
+sò
+sòi
+sòm
+sòng
+sóc
+sói
+sóm
+són
+sóng
+sót
+sô
+sôi
+sông
+sõi
+sõng
+sù
+sùi
+sùm
+sùng
+sú
+súc
+sún
+súng
+súp
+sút
+săm
+săn
+săng
+sĩ
+sũng
+sơ
+sơm
+sơn
+sư
+sưa
+sưng
+sưu
+sương
+sướng
+sướt
+sườn
+sường
+sưởi
+sượng
+sượt
+sạ
+sạch
+sạm
+sạn
+sạo
+sạp
+sạt
+sả
+sải
+sản
+sảng
+sảnh
+sảo
+sảy
+sấm
+sấn
+sấp
+sất
+sấu
+sấy
+sầm
+sần
+sầu
+sầy
+sẩm
+sẩn
+sẩy
+sẫm
+sậm
+sập
+sật
+sậu
+sậy
+sắc
+sắm
+sắn
+sắng
+sắp
+sắt
+sằng
+sẵn
+sặc
+sặm
+sặt
+sẹ
+sẹm
+sẹo
+sẻ
+sẻn
+sẽ
+sến
+sếp
+sếu
+sề
+sền
+sể
+sểnh
+sễ
+sệ
+sệt
+sỉ
+sỉa
+sỉnh
+sị
+sịa
+sịch
+sịt
+sọ
+sọc
+sọm
+sọt
+sỏ
+sỏi
+số
+sốc
+sống
+sốp
+sốt
+sồ
+sồi
+sồn
+sồng
+sổ
+sổi
+sổng
+sỗ
+sộ
+sộp
+sột
+sớ
+sới
+sớm
+sớn
+sớt
+sờ
+sờm
+sờn
+sở
+sởi
+sởn
+sỡ
+sợ
+sợi
+sụ
+sụa
+sục
+sụm
+sụn
+sụp
+sụt
+sủa
+sủi
+sủng
+sứ
+sứa
+sức
+sứt
+sừn
+sừng
+sử
+sửa
+sửng
+sửu
+sữa
+sững
+sự
+sực
+sựng
+sựt
+ta
+tai
+tam
+tan
+tang
+tanh
+tao
+tay
+te
+tem
+ten
+teng
+teo
+tha
+thai
+tham
+than
+thang
+thanh
+thao
+thau
+thay
+the
+then
+theo
+thi
+thia
+thin
+thinh
+thiu
+thiêm
+thiên
+thiêng
+thiêu
+thiếc
+thiến
+thiếp
+thiết
+thiếu
+thiềm
+thiền
+thiềng
+thiều
+thiểm
+thiển
+thiểu
+thiện
+thiệp
+thiệt
+thiệu
+tho
+thoa
+thoai
+thoang
+thoi
+thom
+thon
+thong
+thoà
+thoàn
+thoá
+thoái
+thoán
+thoáng
+thoát
+thoăn
+thoại
+thoạt
+thoả
+thoải
+thoảng
+thoắng
+thoắt
+thu
+thua
+thui
+thum
+thun
+thung
+thuyên
+thuyết
+thuyền
+thuê
+thuôn
+thuý
+thuần
+thuẫn
+thuận
+thuật
+thuế
+thuể
+thuốc
+thuốn
+thuồn
+thuồng
+thuổng
+thuỗn
+thuộc
+thuộm
+thuở
+thuỳ
+thuỵ
+thuỷ
+thà
+thài
+thàm
+thành
+thào
+thày
+thá
+thác
+thách
+thái
+thám
+thán
+tháng
+thánh
+tháo
+tháp
+tháu
+tháy
+thâm
+thân
+thâu
+thây
+thãi
+thè
+thèm
+thèn
+thèo
+thé
+thép
+thét
+thê
+thêm
+thênh
+thêu
+thì
+thìa
+thìn
+thình
+thìu
+thí
+thía
+thích
+thím
+thín
+thính
+thíp
+thít
+thò
+thòi
+thòm
+thòng
+thó
+thóc
+thói
+thóp
+thót
+thô
+thôi
+thôn
+thông
+thõng
+thù
+thùa
+thùi
+thùm
+thùng
+thú
+thúc
+thúi
+thúng
+thút
+thăm
+thăn
+thăng
+thũng
+thơ
+thơi
+thơm
+thơn
+thư
+thưa
+thưng
+thương
+thước
+thướt
+thườn
+thường
+thưởng
+thưỡi
+thưỡn
+thược
+thượng
+thượt
+thạc
+thạch
+thạnh
+thạo
+thạp
+thả
+thải
+thảm
+thản
+thảng
+thảnh
+thảo
+thảy
+thấm
+thấp
+thất
+thấu
+thấy
+thầm
+thần
+thầu
+thầy
+thẩm
+thẩn
+thẩu
+thẫm
+thẫn
+thậm
+thận
+thập
+thật
+thắc
+thắm
+thắn
+thắng
+thắp
+thắt
+thằn
+thằng
+thẳm
+thẳng
+thặng
+thẹn
+thẹo
+thẹp
+thẻ
+thẻo
+thẽ
+thế
+thếch
+thếp
+thết
+thề
+thềm
+thều
+thể
+thểu
+thệ
+thện
+thỉ
+thỉnh
+thỉu
+thị
+thịch
+thịnh
+thịt
+thịu
+thọ
+thọc
+thọt
+thỏ
+thỏi
+thỏm
+thố
+thốc
+thối
+thốn
+thống
+thốt
+thồ
+thồi
+thồm
+thồn
+thổ
+thổi
+thổn
+thộc
+thộn
+thộp
+thớ
+thớt
+thờ
+thời
+thờn
+thở
+thợ
+thợt
+thụ
+thục
+thụi
+thụng
+thụp
+thụt
+thủ
+thủa
+thủi
+thủm
+thủng
+thứ
+thức
+thừ
+thừa
+thừng
+thử
+thửa
+thững
+thự
+thực
+ti
+tia
+tim
+tin
+tinh
+tiu
+tivi
+tiêm
+tiên
+tiêng
+tiêu
+tiếc
+tiếm
+tiến
+tiếng
+tiếp
+tiết
+tiếu
+tiềm
+tiền
+tiều
+tiểu
+tiễn
+tiễu
+tiệc
+tiệm
+tiện
+tiệp
+tiệt
+to
+toa
+toan
+toang
+toanh
+toe
+toen
+toi
+tom
+ton
+tong
+toong
+tout
+toà
+toài
+toàn
+toàng
+toác
+toái
+toán
+toáng
+toát
+toáy
+toè
+toèn
+toé
+toét
+toòng
+toạ
+toạc
+toại
+toả
+toản
+toẹt
+toẻ
+toẽ
+tra
+trai
+tram
+tran
+trang
+tranh
+trao
+trau
+tre
+treo
+tri
+trinh
+triêng
+triêu
+triến
+triết
+triền
+triềng
+triều
+triển
+triện
+triệng
+triệt
+triệu
+tro
+troi
+tron
+trong
+tru
+trui
+trun
+trung
+truy
+truyền
+truyện
+truân
+truông
+truất
+truật
+truồng
+truột
+truỵ
+trà
+trài
+tràm
+tràn
+tràng
+trành
+trào
+tràu
+trày
+trá
+trác
+trách
+trái
+trám
+trán
+tráng
+tránh
+tráo
+tráp
+trát
+trâm
+trân
+trâng
+trâu
+trây
+trã
+trãi
+trè
+trèm
+trèn
+trèo
+trém
+tréo
+trét
+trê
+trên
+trêu
+trì
+trình
+trìu
+trí
+trích
+trít
+trò
+tròi
+tròm
+tròn
+tròng
+tróc
+trói
+tróm
+tróng
+trót
+trô
+trôi
+trôm
+trôn
+trông
+trõm
+trõn
+trù
+trùi
+trùm
+trùn
+trùng
+trú
+trúc
+trúm
+trúng
+trút
+trăm
+trăn
+trăng
+trĩ
+trĩnh
+trĩu
+trũi
+trũng
+trơ
+trơi
+trơn
+trưa
+trưng
+trương
+trước
+trướng
+trườn
+trường
+trưởng
+trưỡng
+trượng
+trượt
+trạc
+trạch
+trại
+trạm
+trạng
+trạo
+trạy
+trả
+trải
+trảm
+trảng
+trảo
+trảu
+trảy
+trấn
+trấp
+trấu
+trầm
+trần
+trầu
+trầy
+trẩn
+trẩu
+trẩy
+trẫm
+trậm
+trận
+trập
+trật
+trắc
+trắm
+trắng
+trắt
+trằm
+trằn
+trặc
+trặn
+trẹ
+trẹo
+trẹt
+trẻ
+trẻo
+trẽ
+trẽn
+trếch
+trết
+trề
+trễ
+trệ
+trệch
+trệt
+trệu
+trỉa
+trị
+trịa
+trịch
+trịnh
+trịt
+trọ
+trọc
+trọi
+trọn
+trọng
+trọt
+trỏ
+trỏi
+trỏng
+trố
+trốc
+trối
+trốn
+trống
+trồ
+trồi
+trồng
+trổ
+trổi
+trổng
+trỗ
+trộ
+trộc
+trội
+trộm
+trộn
+trớ
+trớn
+trớp
+trớt
+trờ
+trời
+trờn
+trở
+trợ
+trợn
+trợt
+trụ
+trụa
+trục
+trụi
+trụm
+trụn
+trụng
+trụp
+trụt
+trủ
+trứ
+trứng
+trừ
+trừa
+trừng
+trửng
+trữ
+trự
+trực
+tu
+tua
+tui
+tum
+tun
+tung
+tuy
+tuyn
+tuyên
+tuyến
+tuyết
+tuyền
+tuyển
+tuyệt
+tuân
+tuôn
+tuông
+tuý
+tuấn
+tuất
+tuần
+tuế
+tuếch
+tuệ
+tuệch
+tuốt
+tuồn
+tuồng
+tuổi
+tuộc
+tuột
+tuỳ
+tuỵ
+tuỷ
+ty
+tà
+tài
+tàn
+tàng
+tành
+tào
+tàu
+tày
+tá
+tác
+tách
+tái
+tám
+tán
+táng
+tánh
+táo
+táp
+tát
+táu
+táy
+tâm
+tân
+tâng
+tâu
+tây
+tã
+tãi
+tè
+tèm
+tèn
+tèo
+té
+téc
+tém
+tép
+tét
+tê
+têm
+tên
+tênh
+têt
+têu
+tì
+tìm
+tình
+tí
+tía
+tích
+tím
+tín
+tính
+típ
+tít
+tíu
+tò
+tòi
+tòm
+tòn
+tòng
+tó
+tóc
+tói
+tóm
+tóp
+tót
+tô
+tôi
+tôm
+tôn
+tông
+tõm
+tù
+tùm
+tùng
+tú
+túc
+túi
+túm
+túng
+túp
+tút
+tăm
+tăn
+tăng
+tĩ
+tĩnh
+tĩu
+tũm
+tơ
+tơi
+tư
+tưa
+tưng
+tươi
+tươm
+tương
+tước
+tưới
+tướn
+tướng
+tướp
+tướt
+tườm
+tường
+tườu
+tưởi
+tưởng
+tược
+tượng
+tượp
+tượt
+tạ
+tạc
+tạch
+tại
+tạm
+tạng
+tạnh
+tạo
+tạp
+tạt
+tả
+tải
+tản
+tảng
+tảo
+tấc
+tấm
+tấn
+tấp
+tất
+tấu
+tấy
+tầm
+tần
+tầng
+tầy
+tẩm
+tẩn
+tẩu
+tẩy
+tận
+tập
+tật
+tậu
+tắc
+tắm
+tắn
+tắp
+tắt
+tằm
+tằn
+tằng
+tẳn
+tặc
+tặn
+tặng
+tẹo
+tẹp
+tẹt
+tẻ
+tẻm
+tẻo
+tẽ
+tẽn
+tế
+tếch
+tết
+tếu
+tề
+tềnh
+tể
+tểnh
+tễ
+tễnh
+tệ
+tệp
+tỉ
+tỉa
+tỉm
+tỉnh
+tị
+tịch
+tịnh
+tịt
+tịu
+tọc
+tọng
+tọp
+tọt
+tỏ
+tỏi
+tỏm
+tỏng
+tố
+tốc
+tối
+tốn
+tống
+tốp
+tốt
+tồ
+tồi
+tồn
+tồng
+tổ
+tổn
+tổng
+tộ
+tộc
+tội
+tột
+tớ
+tới
+tớn
+tớp
+tớt
+tờ
+tời
+tởm
+tợ
+tợn
+tợp
+tụ
+tục
+tụi
+tụm
+tụng
+tụt
+tủ
+tủa
+tủi
+tủm
+tủn
+tứ
+tứa
+tức
+từ
+từng
+tử
+tửa
+tửng
+tửu
+tự
+tựa
+tựu
+tỵ
+tỷ
+u
+um
+un
+ung
+uy
+uyên
+uyển
+uôm
+uý
+uất
+uẩn
+uẩy
+uế
+uể
+uốn
+uống
+uổng
+uột
+uở
+uỳnh
+uỵch
+uỷ
+v
+va
+vai
+van
+vang
+vanh
+vao
+vay
+ve
+ven
+veo
+vi
+vinh
+viêm
+viên
+viếng
+viết
+viền
+viển
+viễn
+việc
+viện
+việt
+vo
+voan
+voi
+von
+vong
+vu
+vua
+vui
+vun
+vung
+vuông
+vuốt
+vuột
+và
+vài
+vàm
+vàn
+vàng
+vành
+vào
+vày
+vá
+vác
+vách
+vái
+ván
+váng
+vánh
+váo
+váp
+vát
+váy
+vâm
+vân
+vâng
+vây
+vã
+vãi
+vãn
+vãng
+vãnh
+vè
+vèo
+vé
+véc
+vén
+véo
+vét
+vê
+vên
+vênh
+vêu
+vì
+ví
+vía
+vích
+vít
+víu
+vò
+vòi
+vòm
+vòn
+vòng
+vó
+vóc
+vói
+vón
+vóng
+vót
+vô
+vôi
+vôn
+vông
+võ
+võng
+vù
+vùa
+vùi
+vùn
+vùng
+vú
+vúc
+vút
+văn
+văng
+vĩ
+vĩnh
+vũ
+vũm
+vũng
+vơ
+vơi
+vưng
+vưu
+vươn
+vương
+vướng
+vườn
+vưởng
+vược
+vượn
+vượng
+vượt
+vạ
+vạc
+vạch
+vại
+vạm
+vạn
+vạng
+vạnh
+vạp
+vạt
+vạy
+vả
+vải
+vảng
+vảy
+vấn
+vấp
+vất
+vấu
+vấy
+vần
+vầng
+vầu
+vầy
+vẩn
+vẩu
+vẩy
+vẫn
+vẫy
+vậm
+vận
+vập
+vật
+vậy
+vắc
+vắn
+vắng
+vắt
+vằm
+vằn
+vằng
+vẳng
+vặc
+vặn
+vặt
+vẹm
+vẹn
+vẹo
+vẹt
+vẻ
+vẻn
+vẻo
+vẽ
+vế
+vếch
+vết
+vếu
+về
+vền
+vều
+vểnh
+vệ
+vện
+vệt
+vỉ
+vỉa
+vị
+vịm
+vịn
+vịnh
+vịt
+vọ
+vọc
+vọi
+vọng
+vọp
+vọt
+vỏ
+vỏn
+vỏng
+vố
+vốc
+vối
+vốn
+vống
+vồ
+vồi
+vồn
+vồng
+vổ
+vổng
+vỗ
+vội
+vớ
+với
+vớt
+vờ
+vời
+vờn
+vở
+vởn
+vỡ
+vợ
+vợi
+vợt
+vụ
+vục
+vụn
+vụng
+vụt
+vức
+vứt
+vừa
+vừng
+vửng
+vữa
+vững
+vựa
+vực
+vựng
+web
+xa
+xam
+xan
+xang
+xanh
+xao
+xay
+xe
+xem
+xen
+xeo
+xi
+xia
+xim
+xin
+xinh
+xit
+xiêm
+xiên
+xiêu
+xiếc
+xiết
+xiềng
+xiểm
+xiển
+xiểng
+xo
+xoa
+xoan
+xoang
+xoay
+xoe
+xoen
+xoi
+xom
+xon
+xong
+xoong
+xoà
+xoài
+xoàm
+xoàn
+xoàng
+xoành
+xoá
+xoác
+xoát
+xoáy
+xoã
+xoè
+xoèn
+xoét
+xoăn
+xoạc
+xoạch
+xoạng
+xoả
+xoải
+xoảng
+xoắn
+xoẹ
+xoẹt
+xu
+xua
+xui
+xum
+xung
+xuy
+xuya
+xuynh
+xuyên
+xuyến
+xuyết
+xuân
+xuây
+xuê
+xuôi
+xuý
+xuýt
+xuất
+xuẩn
+xuề
+xuềnh
+xuể
+xuệch
+xuống
+xuồng
+xuổng
+xuỳ
+xuỵt
+xà
+xài
+xàm
+xàng
+xành
+xào
+xàu
+xá
+xác
+xách
+xái
+xám
+xán
+xáo
+xáp
+xát
+xáy
+xâm
+xâu
+xây
+xã
+xè
+xèn
+xèng
+xèo
+xé
+xéc
+xén
+xéo
+xép
+xét
+xê
+xên
+xênh
+xêu
+xì
+xình
+xìu
+xí
+xía
+xích
+xính
+xít
+xíu
+xòm
+xòng
+xó
+xóc
+xói
+xóm
+xón
+xóp
+xót
+xô
+xôi
+xôm
+xôn
+xông
+xõm
+xõng
+xù
+xùi
+xùm
+xùng
+xú
+xúc
+xúi
+xúm
+xúng
+xúp
+xút
+xăm
+xăn
+xăng
+xĩnh
+xũ
+xơ
+xơi
+xơm
+xơn
+xưa
+xưng
+xương
+xước
+xướng
+xười
+xưởng
+xược
+xạ
+xạc
+xạch
+xạo
+xạp
+xạu
+xả
+xảm
+xảnh
+xảo
+xảu
+xảy
+xấc
+xấp
+xấu
+xầm
+xẩm
+xẩn
+xẩu
+xẩy
+xập
+xắc
+xắm
+xắn
+xắp
+xằng
+xẵng
+xẹc
+xẹo
+xẹp
+xẹt
+xẻ
+xẻn
+xẻng
+xẻo
+xẽo
+xế
+xếch
+xếp
+xềm
+xềnh
+xều
+xể
+xệ
+xệch
+xệp
+xệu
+xỉ
+xỉa
+xỉn
+xỉnh
+xỉu
+xị
+xịch
+xịt
+xịu
+xọ
+xọc
+xọp
+xỏ
+xỏng
+xố
+xốc
+xối
+xốn
+xống
+xốp
+xốt
+xồ
+xồm
+xồn
+xồng
+xổ
+xổi
+xổm
+xổng
+xộc
+xộn
+xộp
+xớ
+xới
+xớp
+xớt
+xờ
+xờm
+xở
+xởi
+xởn
+xỡ
+xợp
+xợt
+xụ
+xục
+xụi
+xụp
+xủng
+xứ
+xức
+xứng
+xừ
+xử
+xửa
+xửng
+xực
+y
+yên
+yêng
+yêu
+yếm
+yến
+yết
+yếu
+yểm
+yểng
+yểu
+ào
+ác
+ách
+ái
+ám
+án
+áng
+ánh
+áo
+áp
+át
+áy
+âm
+ân
+âu
+èo
+éc
+ém
+én
+éo
+ép
+ét
+êm
+êu
+ìn
+ình
+ích
+ín
+ít
+òi
+òm
+òng
+óc
+ói
+óng
+óp
+ót
+ôi
+ôm
+ôn
+ông
+ùa
+ùm
+ùn
+ùng
+úa
+úi
+úm
+úng
+úp
+út
+ăm
+ăn
+ăng
+đa
+đai
+đam
+đan
+đang
+đanh
+đao
+đau
+đay
+đe
+đem
+đen
+đeo
+đi
+đin
+đinh
+điên
+điêu
+điếc
+điếm
+điếng
+điếu
+điền
+điều
+điểm
+điển
+điểu
+điệm
+điện
+điệp
+điệu
+đo
+đoan
+đoi
+đom
+đon
+đong
+đoài
+đoàn
+đoàng
+đoành
+đoá
+đoái
+đoán
+đoãng
+đoạ
+đoạn
+đoạt
+đoản
+đoảng
+đu
+đua
+đui
+đum
+đun
+đung
+đuôi
+đuốc
+đuối
+đuổi
+đuỗn
+đuột
+đà
+đài
+đàm
+đàn
+đàng
+đành
+đào
+đày
+đá
+đác
+đách
+đái
+đám
+đán
+đáng
+đánh
+đáo
+đáp
+đát
+đáy
+đâm
+đâu
+đây
+đã
+đãi
+đãng
+đãy
+đè
+đèm
+đèn
+đèo
+đéc
+đéo
+đét
+đê
+đêm
+đên
+đênh
+đêu
+đì
+đìa
+đình
+đìu
+đía
+đích
+đính
+đít
+đò
+đòi
+đòm
+đòn
+đòng
+đó
+đóc
+đói
+đóm
+đón
+đóng
+đót
+đô
+đôi
+đôm
+đôn
+đông
+đõ
+đù
+đùa
+đùi
+đùm
+đùn
+đùng
+đú
+đúc
+đúm
+đún
+đúng
+đúp
+đút
+đăm
+đăng
+đĩ
+đĩa
+đĩnh
+đũa
+đũng
+đơ
+đơm
+đơn
+đưa
+đưng
+đương
+đước
+đười
+đườn
+đường
+đưỡn
+được
+đượm
+đạc
+đạch
+đại
+đạm
+đạn
+đạo
+đạp
+đạt
+đả
+đảm
+đản
+đảng
+đảo
+đảy
+đấm
+đấng
+đất
+đấu
+đấy
+đầm
+đần
+đầu
+đầy
+đẩu
+đẩy
+đẫm
+đẫn
+đẫy
+đậm
+đận
+đập
+đật
+đậu
+đậy
+đắc
+đắm
+đắn
+đắng
+đắp
+đắt
+đằm
+đằn
+đằng
+đẳng
+đẵm
+đẵn
+đẵng
+đặc
+đặn
+đặng
+đặt
+đẹn
+đẹp
+đẹt
+đẻ
+đẽ
+đẽo
+đế
+đếch
+đếm
+đến
+đề
+đềm
+đền
+đềnh
+đều
+để
+đểnh
+đểu
+đễ
+đễnh
+đệ
+đệm
+đệp
+đỉa
+đỉnh
+địa
+địch
+định
+địt
+địu
+đọ
+đọc
+đọi
+đọn
+đọng
+đọp
+đọt
+đỏ
+đỏi
+đỏm
+đố
+đốc
+đối
+đốm
+đốn
+đống
+đốp
+đốt
+đồ
+đồi
+đồm
+đồn
+đồng
+đổ
+đổi
+đổng
+đỗ
+đỗi
+độ
+độc
+đội
+độn
+động
+độp
+đột
+đớ
+đới
+đớn
+đớp
+đớt
+đờ
+đời
+đờm
+đờn
+đởm
+đởn
+đỡ
+đợ
+đợi
+đợp
+đợt
+đụ
+đục
+đụn
+đụng
+đụp
+đụt
+đủ
+đủi
+đủng
+đứ
+đứa
+đức
+đứng
+đứt
+đừ
+đừa
+đừng
+đử
+đực
+đựng
+ĩnh
+ơi
+ơn
+ưa
+ưng
+ưu
+ươi
+ươm
+ươn
+ương
+ước
+ướm
+ướp
+ướt
+ườn
+ưỡn
+ạ
+ạch
+ạnh
+ạo
+ạt
+ả
+ải
+ảm
+ảng
+ảnh
+ảo
+ấm
+ấn
+ấp
+ất
+ấu
+ấy
+ầm
+ầy
+ẩm
+ẩn
+ẩu
+ẩy
+ậc
+ậm
+ập
+ắc
+ắng
+ắp
+ắt
+ằng
+ẳng
+ẵm
+ặc
+ặp
+ẹ
+ẹo
+ẹp
+ẹt
+ẻn
+ẻo
+ẽo
+ế
+ếch
+ếm
+ề
+ềnh
+ễnh
+ệ
+ệch
+ện
+ệnh
+ỉ
+ỉa
+ỉm
+ỉn
+ỉu
+ị
+ịch
+ịt
+ọ
+ọc
+ọi
+ọp
+ọt
+ỏi
+ỏm
+ỏn
+ỏng
+ố
+ốc
+ối
+ốm
+ống
+ốp
+ốt
+ồ
+ồm
+ồn
+ồng
+ổ
+ổi
+ổn
+ổng
+ộ
+ộc
+ộn
+ộp
+ớ
+ới
+ớm
+ớn
+ớt
+ờ
+ờn
+ở
+ỡm
+ợ
+ợt
+ụ
+ụa
+ục
+ụp
+ụt
+ủ
+ủa
+ủi
+ủn
+ủng
+ứ
+ứa
+ức
+ứng
+ừ
+ừng
+ửng
+ựa
+ực
+ỷ
diff --git a/l10n-vi/mail/README.txt b/l10n-vi/mail/README.txt
new file mode 100644
index 0000000000..4d8e68cc1b
--- /dev/null
+++ b/l10n-vi/mail/README.txt
@@ -0,0 +1,3 @@
+For information about installing, running and configuring Thunderbird
+including a list of known issues and troubleshooting information,
+refer to: http://getthunderbird.com/releases/
diff --git a/l10n-vi/mail/all-l10n.js b/l10n-vi/mail/all-l10n.js
new file mode 100644
index 0000000000..6e0520e894
--- /dev/null
+++ b/l10n-vi/mail/all-l10n.js
@@ -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/.
+
+#filter substitution
+
+pref("general.useragent.locale", "@AB_CD@");
+pref("spellchecker.dictionary", "@AB_CD@");
diff --git a/l10n-vi/mail/branding/thunderbird/brand.dtd b/l10n-vi/mail/branding/thunderbird/brand.dtd
new file mode 100644
index 0000000000..ba577f740b
--- /dev/null
+++ b/l10n-vi/mail/branding/thunderbird/brand.dtd
@@ -0,0 +1,13 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<!ENTITY brandShortName "Thunderbird">
+<!ENTITY brandShorterName "Thunderbird">
+<!ENTITY brandFullName "Mozilla Thunderbird">
+<!-- LOCALIZATION NOTE (brandProductName):
+ This brand name can be used in messages where the product name needs to
+ remain unchanged across different versions (Daily, Beta, etc.). -->
+<!ENTITY brandProductName "Thunderbird">
+<!ENTITY vendorShortName "Mozilla">
+<!ENTITY trademarkInfo.part1 "Mozilla Thunderbird và các biểu tượng Thunderbird
+ là nhãn hiệu của Tổ chức Mozilla.">
diff --git a/l10n-vi/mail/branding/thunderbird/brand.ftl b/l10n-vi/mail/branding/thunderbird/brand.ftl
new file mode 100644
index 0000000000..52f2d38d59
--- /dev/null
+++ b/l10n-vi/mail/branding/thunderbird/brand.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/.
+
+
+## Thunderbird Brand
+##
+## Thunderbird must be treated as a brand, and kept in English.
+## It cannot be:
+## - Transliterated.
+## - Translated.
+##
+## Reference: https://www.mozilla.org/styleguide/communications/translation/
+
+-brand-shorter-name = Thunderbird
+-brand-short-name = Thunderbird
+-brand-full-name = Mozilla Thunderbird
+# This brand name can be used in messages where the product name needs to
+# remain unchanged across different versions (Daily, Beta, etc.).
+-brand-product-name = Thunderbird
+-vendor-short-name = Mozilla
diff --git a/l10n-vi/mail/branding/thunderbird/brand.properties b/l10n-vi/mail/branding/thunderbird/brand.properties
new file mode 100644
index 0000000000..9dd5011219
--- /dev/null
+++ b/l10n-vi/mail/branding/thunderbird/brand.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/.
+brandShortName=Thunderbird
+brandShorterName=Thunderbird
+brandFullName=Mozilla Thunderbird
+vendorShortName=Mozilla
diff --git a/l10n-vi/mail/chrome/communicator/utilityOverlay.dtd b/l10n-vi/mail/chrome/communicator/utilityOverlay.dtd
new file mode 100644
index 0000000000..54799fbc05
--- /dev/null
+++ b/l10n-vi/mail/chrome/communicator/utilityOverlay.dtd
@@ -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/. -->
+
+<!-- LOCALIZATION NOTE : FILE This file contains the global menu items -->
+
+<!ENTITY fileMenu.label "Tập tin">
+<!ENTITY fileMenu.accesskey "F">
+<!ENTITY newMenu.label "Mới">
+<!ENTITY newMenu.accesskey "N">
+
+<!ENTITY editMenu.label "Chỉnh sửa">
+<!ENTITY editMenu.accesskey "E">
+<!ENTITY undoCmd.label "Hoàn tác">
+<!ENTITY undoCmd.accesskey "U">
+<!ENTITY redoCmd.label "Làm lại">
+<!ENTITY redoCmd.accesskey "R">
+<!ENTITY deleteCmd.label "Xóa">
+<!ENTITY deleteCmd.accesskey "D">
+<!ENTITY preferencesCmd2.label "Tùy chọn">
+<!ENTITY preferencesCmd2.accesskey "O">
+<!ENTITY preferencesCmdUnix.label "Tùy chỉnh">
+<!ENTITY preferencesCmdUnix.accesskey "n">
+
+<!ENTITY customizeCmd.label "Tùy biến">
+<!ENTITY customizeCmd.accesskey "t">
+
+<!ENTITY viewMenu.label "Hiển thị">
+<!ENTITY viewMenu.accesskey "V">
+<!ENTITY viewToolbarsMenu.label "Thanh công cụ">
+<!ENTITY viewToolbarsMenu.accesskey "T">
+<!ENTITY showTaskbarCmd.label "Thanh trạng thái">
+<!ENTITY showTaskbarCmd.accesskey "u">
+
+<!ENTITY closeCmd.label "Đóng">
+<!ENTITY closeCmd.key "W">
+<!ENTITY closeCmd.accesskey "C">
+
+<!ENTITY quitApplicationCmd.label "Thoát">
+<!ENTITY quitApplicationCmd.key "Q">
+<!ENTITY quitApplicationCmd.accesskey "x">
+
+<!ENTITY quitApplicationCmdUnix.label "Thoát">
+<!ENTITY quitApplicationCmdUnix.accesskey "Q">
+
+<!ENTITY quitApplicationCmdMac.label "Thoát &brandShortName;">
+<!ENTITY quitApplicationCmdMac.accesskey "Q">
diff --git a/l10n-vi/mail/chrome/messenger-mapi/mapi.properties b/l10n-vi/mail/chrome/messenger-mapi/mapi.properties
new file mode 100644
index 0000000000..277f22dffa
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger-mapi/mapi.properties
@@ -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/.
+
+# Mail Integration Dialog
+dialogTitle=%S
+dialogText=Bạn có muốn dùng %S làm chương trình gửi thư mặc định không?
+newsDialogText=Bạn có muốn dùng %S làm chương trình đọc tin mặc định không?
+feedDialogText=Bạn có muốn dùng %S làm chương trình tổng hợp feed mặc định không?
+checkboxText=Không hiện hộp thoại này nữa
+setDefaultMail=%S hiện không phải là chương trình gửi thư mặc định. Bạn có muốn thiết lập nó làm chương trình gửi thư mặc định không?
+setDefaultNews=%S hiện không phải là chương trình đọc tin mặc định. Bạn có muốn thiết lập nó làm chương trình đọc tin mặc định không?
+setDefaultFeed=%S hiện không phải là chương trình tổng hợp feed mặc định. Bạn có muốn thiết lập nó làm chương trình tổng hợp feed mặc định không?
+alreadyDefaultMail=%S đã được thiết lập làm chương trình mail application.
+alreadyDefaultNews=%S đã được thiết lập làm chương trình đọc tin mặc định.
+alreadyDefaultFeed=%S đã được thiết lập làm chương trình tổng hợp feed mặc định.
+
+# MAPI Messages
+loginText=Vui lòng nhập mật khẩu cho %S:
+loginTextwithName=Vui lòng nhập tên đăng nhập và mật khẩu
+loginTitle=%S
+PasswordTitle=%S
+
+# MAPI Error Messages
+errorMessage=%S không thể được thiết lập làm chương trình gửi thư mặc định vì không thể cập nhật một khóa registry. Hãy kiểm tra với quản trị hệ thống về việc bạn có quyền ghi lên registry hệ thống hay không, rồi thử lại.
+errorMessageNews=%S không thể được thiết lập làm chương trình đọc tin mặc định vì không thể cập nhật một khóa registry. Hãy kiểm tra với quản trị hệ thống về việc bạn có quyền ghi lên registry hệ thống hay không, rồi thử lại.
+errorMessageTitle=%S
+
+# MAPI Security Messages
+mapiBlindSendWarning=Một chương trình khác đang cố gửi thư bằng hồ sơ người dùng của bạn. Bạn có chắc là bạn muốn gửi thư không?
+mapiBlindSendDontShowAgain=Cảnh báo tôi mỗi khi có chương trình khác gửi thư từ tài khoản của tôi
+
+#Default Mail Display String
+# localization note, %S is the vendor name
+defaultMailDisplayTitle=%S
+
+
diff --git a/l10n-vi/mail/chrome/messenger-newsblog/am-newsblog.dtd b/l10n-vi/mail/chrome/messenger-newsblog/am-newsblog.dtd
new file mode 100644
index 0000000000..144bc36c42
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger-newsblog/am-newsblog.dtd
@@ -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/. -->
+
+<!ENTITY biffAll.label "Cho phép cập nhật cho tất cả nguồn cấp dữ liệu">
+<!ENTITY biffAll.accesskey "E">
+
+<!ENTITY newFeedSettings.label "Cài đặt mặc định cho nguồn cấp dữ liệu mới">
+
+<!ENTITY manageSubscriptions.label "Quản lý mục đăng kí…">
+<!ENTITY manageSubscriptions.accesskey "M">
+
+<!ENTITY feedWindowTitle.label "Trình thiết lập nguồn cấp dữ liệu">
+<!ENTITY feeds.accountName "Blog &amp; nguồn cấp tin tức">
diff --git a/l10n-vi/mail/chrome/messenger-newsblog/feed-subscriptions.dtd b/l10n-vi/mail/chrome/messenger-newsblog/feed-subscriptions.dtd
new file mode 100644
index 0000000000..cf691eff69
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger-newsblog/feed-subscriptions.dtd
@@ -0,0 +1,55 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- Subscription Dialog -->
+<!ENTITY feedSubscriptions.label "Nguồn cấp đã đăng kí">
+<!ENTITY learnMore.label "Tìm hiểu thêm về nguồn cấp dữ liệu">
+
+<!ENTITY feedTitle.label "Tiêu đề:">
+<!ENTITY feedTitle.accesskey "T">
+
+<!ENTITY feedLocation.label "URL nguồn cấp:">
+<!ENTITY feedLocation.accesskey "F">
+<!ENTITY feedLocation2.placeholder "Nhập một url nguồn cấp hợp lệ">
+<!ENTITY locationValidate.label "Xác thực">
+<!ENTITY validateText.label "Kiểm tra xác nhận và lấy một url hợp lệ.">
+
+<!ENTITY feedFolder.label "Lưu trữ bài viết trong:">
+<!ENTITY feedFolder.accesskey "S">
+
+<!-- Account Settings and Subscription Dialog -->
+<!ENTITY biffStart.label "Kiểm tra bài viết mới mỗi ">
+<!ENTITY biffStart.accesskey "k">
+<!ENTITY biffMinutes.label "phút">
+<!ENTITY biffMinutes.accesskey "n">
+<!ENTITY biffDays.label "ngày">
+<!ENTITY biffDays.accesskey "d">
+<!ENTITY recommendedUnits.label "Nhà xuất bản được đề xuất:">
+
+<!ENTITY quickMode.label "Hiển thị tóm tắt bài viết thay vì tải trang web">
+<!ENTITY quickMode.accesskey "h">
+
+<!ENTITY autotagEnable.label "Tự động tạo thẻ từ tên &lt;danh mục&gt; nguồn cấp dữ liệu">
+<!ENTITY autotagEnable.accesskey "o">
+<!ENTITY autotagUsePrefix.label "Các thẻ tiền tố với:">
+<!ENTITY autotagUsePrefix.accesskey "P">
+<!ENTITY autoTagPrefix.placeholder "Nhập tiền tố thẻ">
+
+<!-- Subscription Dialog -->
+<!ENTITY button.addFeed.label "Thêm">
+<!ENTITY button.addFeed.accesskey "T">
+<!ENTITY button.verifyFeed.label "Xác nhận">
+<!ENTITY button.verifyFeed.accesskey "V">
+<!ENTITY button.updateFeed.label "Cập nhật">
+<!ENTITY button.updateFeed.accesskey "U">
+<!ENTITY button.removeFeed.label "Xóa">
+<!ENTITY button.removeFeed.accesskey "a">
+<!ENTITY button.importOPML.label "Nhập">
+<!ENTITY button.importOPML.accesskey "N">
+<!ENTITY button.exportOPML.label "Xuất">
+<!ENTITY button.exportOPML.accesskey "X">
+<!ENTITY button.exportOPML.tooltip "Xuất nguồn cấp dữ liệu với cấu trúc thư mục; nhấn vào ctrl hoặc ctrl enter để xuất nguồn cấp dưới dạng danh sách">
+
+<!ENTITY cmd.close.commandKey "w">
+<!ENTITY button.close.label "Đóng">
diff --git a/l10n-vi/mail/chrome/messenger-newsblog/newsblog.properties b/l10n-vi/mail/chrome/messenger-newsblog/newsblog.properties
new file mode 100644
index 0000000000..9ad604cadb
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger-newsblog/newsblog.properties
@@ -0,0 +1,93 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+subscribe-validating-feed=Đang xác minh nguồn cấp…
+subscribe-cancelSubscription=Bạn có chắc là bạn muốn hủy bỏ việc đăng kí nhận tin từ nguồn cấp hiện tại không?
+subscribe-cancelSubscriptionTitle=Đăng kí nhận tin từ một nguồn cấp…
+subscribe-feedAlreadySubscribed=Bạn đã đăng kí nhận tin từ nguồn cấp này rồi.
+subscribe-errorOpeningFile=Không thể mở tập tin.
+subscribe-feedAdded=Đã thêm nguồn cấp.
+subscribe-feedUpdated=Đã cập nhật nguồn cấp.
+subscribe-feedMoved=Đã duy chuyển nguồn cấp.
+subscribe-feedCopied=Đã sao chép nguồn cấp.
+subscribe-feedRemoved=Đã hủy đăng kí nguồn cấp.
+subscribe-feedNotValid=URL nguồn cấp dữ liệu không phải là nguồn cấp hợp lệ.
+subscribe-feedVerified=URL nguồn cấp dữ liệu đã được xác minh.
+subscribe-networkError=Không thể tìm thấy URL nguồn cấp. Vui lòng kiểm tra tên và thử lại.
+subscribe-noAuthError=URL nguồn cấp không được cấp phép.
+subscribe-loading=Đang tải, vui lòng đợi…
+
+subscribe-OPMLImportTitle=Chọn tập tin OPML để nhập
+## LOCALIZATION NOTE(subscribe-OPMLExportTitleList):
+## %S is the name of the feed account folder name.
+subscribe-OPMLExportTitleList=Xuất %S dưới dạng tập tin OPML - Danh sách nguồn cấp
+## LOCALIZATION NOTE(subscribe-OPMLExportTitleStruct):
+## %S is the name of the feed account folder name.
+subscribe-OPMLExportTitleStruct=Xuất %S dưới dạng tập tin OPML - Nguồn cấp với cấu trúc thư mục
+## LOCALIZATION NOTE(subscribe-OPMLExportFileDialogTitle):
+## %1$S is the brandShortName, %2$S is the name of the feed account folder name.
+subscribe-OPMLExportFileDialogTitle=Xuất OPML %1$S - %2$S
+## LOCALIZATION NOTE(subscribe-OPMLExportDefaultFileName):
+## %1$S is the brandShortName (Thunderbird for example), %2$S is the account name.
+## The default extension (.opml) is added here as it is not automatically appended in the file picker on MacOS.
+subscribe-OPMLExportDefaultFileName=My%1$SFeeds-%2$S.opml
+## LOCALIZATION NOTE(subscribe-OPMLImportInvalidFile): %S is the name of the OPML file the user tried to import.
+subscribe-OPMLImportInvalidFile=Tập tin %S dường như không phải là tập tin OPML hợp lệ.
+## LOCALIZATION NOTE(subscribe-OPMLImportFeedCount): Semi-colon list of plural forms.
+## See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+## #1 is the count of new imported entries.
+subscribe-OPMLImportFeedCount=Đã nhập #1 nguồn cấp mới.
+## LOCALIZATION NOTE(subscribe-OPMLImportUniqueFeeds): Semi-colon list of plural forms.
+## #1 is the count of new imported entries
+subscribe-OPMLImportUniqueFeeds=Đã nhập #1 nguồn cấp mới mà bạn chưa từng đăng kí
+## LOCALIZATION NOTE(subscribe-OPMLImportFoundFeeds):
+## #1 is total number of elements found in the file
+subscribe-OPMLImportFoundFeeds=(trong #1 mục được tìm thấy)
+## LOCALIZATION NOTE(subscribe-OPMLImportStatus):
+## This is the concatenation of the two strings defined above to compose 1 sentence.
+## %1$S = subscribe-OPMLImportUniqueFeeds
+## %2$S = subscribe-OPMLImportFoundFeeds
+subscribe-OPMLImportStatus=%1$S %2$S.
+
+subscribe-OPMLExportOPMLFilesFilterText=Tập tin OPML
+## LOCALIZATION NOTE(subscribe-OPMLExportDone): %S is the export file name.
+subscribe-OPMLExportDone=Nguồn cấp dữ liệu trong tài khoản này đã được xuất sang %S.
+
+subscribe-confirmFeedDeletionTitle=Xóa nguồn cấp
+## LOCALIZATION NOTE(subscribe-confirmFeedDeletion): %S is the name of the feed the user wants to unsubscribe from.
+subscribe-confirmFeedDeletion=Bạn có chắc là bạn muốn dừng theo dõi tin từ nguồn cấp này không: \n %S?
+
+## LOCALIZATION NOTE(subscribe-gettingFeedItems):
+## - The first %S is the number of articles processed so far;
+## - The second %S is the total number of items
+subscribe-gettingFeedItems=Đang tải xuống các bài viết về nguồn cấp (%S trên%S)…
+
+newsblog-noNewArticlesForFeed=Không có bài viết mới về nguồn cấp này.
+## LOCALIZATION NOTE(newsblog-networkError): %S is the feed URL
+newsblog-networkError=Không thể tìm thấy %S. Vui lòng kiểm tra tên và thử lại.
+## LOCALIZATION NOTE(newsblog-feedNotValid): %S is the feed URL
+newsblog-feedNotValid=%S không phải là nguồn cấp hợp lệ.
+## LOCALIZATION NOTE(newsblog-badCertError): %S is the feed URL host
+newsblog-badCertError=%S sử dụng một chứng chỉ bảo mật không hợp lệ.
+## LOCALIZATION NOTE(newsblog-noAuthError): %S is the feed URL
+newsblog-noAuthError=%S không được cấp phép.
+newsblog-getNewMsgsCheck=Đang kiểm tra các nguồn cấp để nhận tin mới…
+
+## LOCALIZATION NOTE(feeds-accountname): This string should be the same as feeds.accountName in am-newsblog.dtd
+feeds-accountname=Blog & nguồn cáp tin tức
+
+## LOCALIZATION NOTE(externalAttachmentMsg): Content in the MIME part for external link attachments.
+externalAttachmentMsg=Tập tin đính kèm MIME này được lưu trữ riêng biệt với thư.
+
+## Import wizard.
+ImportFeedsCreateNewListItem=* Tài khoản mới *
+ImportFeedsNewAccount=Tạo và nhập vào tài khoản nguồn cấp mới
+ImportFeedsExistingAccount=Nhập vào tài khoản nguồn cấp hiện có
+## LOCALIZATION NOTE(ImportFeedsDone):
+## - The first %S is the import file name;
+## - The second %S is the value of either ImportFeedsNew or ImportFeedsExisting;
+## - The third %S is the feed account name.
+ImportFeedsNew=mới
+ImportFeedsExisting=hiện có
+ImportFeedsDone=Đã kết thúc đăng ký nguồn cấp dữ liệu từ tập tin %1$S vào tài khoản %2$S '%3$S'.
diff --git a/l10n-vi/mail/chrome/messenger-region/region.properties b/l10n-vi/mail/chrome/messenger-region/region.properties
new file mode 100644
index 0000000000..cdc6506b70
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger-region/region.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/.
+
+# Search engine order (order displayed in the search bar dropdown)s
+browser.search.order.1=Google
+browser.search.order.2=Yahoo
+browser.search.order.3=Bing
+
+# To make mapit buttons to disappear in the addressbook, specify empty string. For example:
+# mail.addr_book.mapit_url.format=
+# The format for "mail.addr_book.mapit_url.format" is:
+# @A1 == address, part 1
+# @A2 == address, part 2
+# @CI == city
+# @ST == state
+# @ZI == zip code
+# @CO == country
+mail.addr_book.mapit_url.format=http://maps.google.com/maps?q=@A1%20@A2%20@CI%20@ST%20@ZI%20@CO
+
+mailnews.messageid_browser.url=http://groups.google.com/search?as_umsgid=%mid
+
+# Recognize non-standard versions of "Re:" in subjects from localized versions of MS Outlook et al.
+# Specify a comma-separated list without spaces. For example: AW,SV
+mailnews.localizedRe=
+
diff --git a/l10n-vi/mail/chrome/messenger-smime/certFetchingStatus.dtd b/l10n-vi/mail/chrome/messenger-smime/certFetchingStatus.dtd
new file mode 100644
index 0000000000..1220a49492
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger-smime/certFetchingStatus.dtd
@@ -0,0 +1,9 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!--LOCALIZATION NOTE shown while obtaining certificates from a directory -->
+
+<!ENTITY title.label "Đang tải xuống chứng chỉ">
+<!ENTITY info.message "Đang tìm chứng chỉ của người nhận trong thư mục. Có thể sẽ mất vài phút.">
+<!ENTITY stop.label "Dừng tìm kiếm">
diff --git a/l10n-vi/mail/chrome/messenger-smime/msgCompSMIMEOverlay.dtd b/l10n-vi/mail/chrome/messenger-smime/msgCompSMIMEOverlay.dtd
new file mode 100644
index 0000000000..fc1f0208bd
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger-smime/msgCompSMIMEOverlay.dtd
@@ -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 msgCompSMIMEOverlay.dtd UI for s/mime hooks in message composition -->
+
+<!ENTITY menu_securityDoNotEncrypt.label "Không mã hóa">
+<!ENTITY menu_securityDoNotEncrypt.accesskey "o">
+
+<!-- not yet used
+<!ENTITY menu_securityEncryptOptional.label "Allow Encryption">
+<!ENTITY menu_securityEncryptOptional.accesskey "w">
+-->
+
+<!ENTITY menu_securityEncryptRequire2.label "Yêu cầu mã hóa">
+<!ENTITY menu_securityEncryptRequire.accesskey "M">
+
+<!ENTITY menu_securitySign.label "Chữ kí điện tử cho thư này">
+<!ENTITY menu_securitySign.accesskey "C">
+
+<!ENTITY menu_securityAttachMyKey.label "Đính kèm khóa công khai của tôi">
+<!ENTITY menu_securityAttachMyKey.accesskey "A">
+
+<!ENTITY menu_securityTech.label "Công nghệ mã hóa">
+<!ENTITY menu_securityTech.accesskey "T">
+
+<!ENTITY menu_techPGP.label "OpenPGP">
+<!ENTITY menu_techPGP.accesskey "O">
+<!ENTITY menu_techSMIME.label "S/MIME">
+<!ENTITY menu_techSMIME.accesskey "S">
+
+<!ENTITY menu_securityStatus.label "Xem thông tin bảo mật">
+<!ENTITY menu_securityStatus.accesskey "H">
+
+<!ENTITY securityButton.label "Bảo mật">
+<!ENTITY securityButton.tooltip "Xem hoặc thay đổi thiết lập bảo mật">
+
+<!ENTITY menu_viewSecurityStatus.label "Thông tin bảo mật thư">
+<!ENTITY menu_viewSecurityStatus.accesskey "o">
diff --git a/l10n-vi/mail/chrome/messenger-smime/msgCompSecurityInfo.dtd b/l10n-vi/mail/chrome/messenger-smime/msgCompSecurityInfo.dtd
new file mode 100644
index 0000000000..f047cfdbe2
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger-smime/msgCompSecurityInfo.dtd
@@ -0,0 +1,18 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!--LOCALIZATION NOTE msgCompSecurityInfo.dtd UI for viewing security status when composing a message -->
+
+<!ENTITY title.label "Bảo mật thư">
+<!ENTITY subject.plaintextWarning "Vui lòng lưu ý: Dòng tiêu đề thư sẽ không bao giờ được mã hóa.">
+<!ENTITY status.heading "Nội dung thư của bạn sẽ được gửi như sau:">
+<!ENTITY status.signed "Chữ kí điện tử:">
+<!ENTITY status.encrypted "Mã hóa:">
+<!ENTITY status.certificates "Chứng chỉ:">
+<!ENTITY view.label "Hiển thị">
+<!ENTITY view.accesskey "H">
+<!ENTITY tree.recipient "Người nhận">
+<!ENTITY tree.status "Trạng thái">
+<!ENTITY tree.issuedDate "Phát hành">
+<!ENTITY tree.expiresDate "Hết hạn">
diff --git a/l10n-vi/mail/chrome/messenger-smime/msgCompSecurityInfo.properties b/l10n-vi/mail/chrome/messenger-smime/msgCompSecurityInfo.properties
new file mode 100644
index 0000000000..e6d0386d01
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger-smime/msgCompSecurityInfo.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/.
+
+StatusNotFound=Không thấy
+StatusValid=Hiệu lực
+StatusExpired=Bị hết hạn
+StatusUntrusted=Không đáng tin
+StatusRevoked=Bị thu hồi
+StatusInvalid=Không hiệu lực
+StatusYes=Có
+StatusNo=Không
+StatusNotPossible=Có thể
+
diff --git a/l10n-vi/mail/chrome/messenger-smime/msgReadSMIMEOverlay.dtd b/l10n-vi/mail/chrome/messenger-smime/msgReadSMIMEOverlay.dtd
new file mode 100644
index 0000000000..505669f9ff
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger-smime/msgReadSMIMEOverlay.dtd
@@ -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 msgReadSMIMEOverlay.dtd UI for s/mime hooks in message reading -->
+
+<!ENTITY menu_securityStatus.label "Thông tin bảo mật thư">
+<!ENTITY menu_securityStatus.accesskey "o">
diff --git a/l10n-vi/mail/chrome/messenger-smime/msgReadSMIMEOverlay.properties b/l10n-vi/mail/chrome/messenger-smime/msgReadSMIMEOverlay.properties
new file mode 100644
index 0000000000..d170ee95a8
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger-smime/msgReadSMIMEOverlay.properties
@@ -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/.
+
+ImapOnDemand=Thư hiển thị đã được kí điện tử, nhưng các tập tin đính kèm của nó vẫn chưa được tải hết. Do đó, chữ kí không thể xác minh được. Nhấn OK để tải xuống toàn bộ thư và xác minh chữ kí.
+#
+#NOTE To translator, anything between %..% and <..> should not be translated.
+# the former will be replaced by java script, and the latter is HTML formatting.
+#
+CantDecryptTitle=%brand% không thể giải mã thư này
+CantDecryptBody=Người gửi đã mã hóa thư bằng một trong các chữ kí điện tử của bạn, tuy nhiên %brand% không thể tìm thấy chứng chỉ này và khóa cá nhân tương ứng. <br> Giải pháp đề nghị: <br><ul><li>Nếu bạn có thẻ smartcard, vui lòng đưa nó vào ngay bây giờ. <li>Nếu đang dùng máy mới, hoặc nếu đang dùng một hồ sơ %brand% mới, bạn sẽ cần phải khôi phục chứng chỉ và khóa cá nhân từ một bản sao lưu. Bản sao lưu chứng chỉ thường có đuôi là ".p12".</ul>
diff --git a/l10n-vi/mail/chrome/messenger-smime/msgReadSecurityInfo.dtd b/l10n-vi/mail/chrome/messenger-smime/msgReadSecurityInfo.dtd
new file mode 100644
index 0000000000..ad05a50807
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger-smime/msgReadSecurityInfo.dtd
@@ -0,0 +1,17 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!--LOCALIZATION NOTE msgReadSecurityInfo.dtd UI for viewing security status when reading a received message -->
+
+<!ENTITY status.label "Bảo mật thư">
+<!ENTITY signatureCert.label "Xem chứng chỉ chữ ký">
+<!ENTITY encryptionCert.label "Xem chứng chỉ mã hóa">
+
+<!ENTITY signer.name "Kí bởi:">
+<!ENTITY recipient.name "Mã hóa cho:">
+<!ENTITY email.address "Địa chỉ email:">
+<!ENTITY issuer.name "Chứng chỉ được cấp bởi:">
+
+<!-- LOCALIZATION NOTE(SMIME.label): This a name for a technical standard. You should not translate it, but if applicable, you may write it using localized characters. -->
+<!ENTITY SMIME.label "S/MIME">
diff --git a/l10n-vi/mail/chrome/messenger-smime/msgSecurityInfo.properties b/l10n-vi/mail/chrome/messenger-smime/msgSecurityInfo.properties
new file mode 100644
index 0000000000..8677123777
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger-smime/msgSecurityInfo.properties
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+## Signature Information strings
+SINoneLabel=Thư không có chữ ký điện tử
+SINone=Thư này không có chữ kí điện tử của người gửi. Việc thiếu chữ kí điện tử có nghĩa là lá thư có thể đã được gửi bởi một người giả dạng địa chỉ email này. Cũng có thể lá thư đã bị sửa đổi trong khi truyền tải qua hệ thống mạng. Tuy nhiên, có vẻ như hai sự việc đó đã không xảy ra.
+SIValidLabel=Thư Đã Được Kí
+SIValid=Thư này có một chữ kí điện tử hợp lệ. Thư đã không bị sửa đổi kể từ lúc nó được gửi đi.
+SIInvalidLabel=Chữ Kí Điện Tử Không Hợp Lệ
+SIInvalidHeader=Thư này có chữ kí điện tử, nhưng chữ kí không hợp lệ.
+SIContentAltered=Chữ kí không khớp với hợp nội dung thư. Có vẻ như lá thư đã bị sửa đổi kể từ lúc người gửi kí nó. Bạn không nên tin vào tính hợp lệ của lá thư này cho đến khi bạn đã kiểm tra nội dung của nó với người gửi.
+SIExpired=Chứng thư được dùng để kí lá thư có vẻ đã bị hết hạn. Hãy chắc chắn rằng đồng hồ trên máy bạn được chỉnh đúng.
+SIRevoked=Chứng thư được dùng để kí lá thư đã bị thu hồi. Bạn không nên tin vào tính hợp lệ của lá thư cho đến khi bạn đã kiểm tra nội dung của nó với người gửi.
+SINotYetValid=Chứng thư được dùng để kí lá thư có vẻ chưa có hiệu lực. Hãy chắc chắn rằng đồng hồ trên máy bạn được chỉnh đúng.
+SIUnknownCA=Chứng thư được dùng để kí lá thư được cấp bởi một nhà phát hành chứng thư chưa được biết.
+SIUntrustedCA=Chứng thư được dùng để kí lá thư được cấp bởi một nhà phát hành chứng thư mà bạn không tin tưởng trong việc cấp kiểu chứng thư này.
+SIExpiredCA=Chứng thư được dùng để kí lá thư được cấp bởi một nhà phát hành chứng thư đang sở hữu một chứng thư hết hạn. Hãy chắc chắn rằng đồng hồ trên máy bạn được chỉnh đúng.
+SIRevokedCA=Chứng thư được dùng để kí lá thư được cấp bởi một nhà phát hành chứng thư đang sở hữu một chứng thư đã bị thu hồi. Bạn không nên tin vào tính hợp lệ của lá thư cho đến khi bạn đã kiểm tra nội dung của nó với người gửi.
+SINotYetValidCA=Chứng thư được dùng để kí lá thư được cấp bởi một nhà phát hành chứng thư đang sở hữu một chứng thư chưa có hiệu lực. Hãy chắc chắn rằng đồng hồ trên máy bạn được chỉnh đúng.
+SIInvalidCipher=Thư được kí bằng một chế độ mã hóa mạnh mà phiên bản phần mềm này không hỗ trợ.
+SIClueless=Có vấn đề với chữ kí điện tử này. Bạn không nên tin vào tính hợp lệ của lá thư cho đến khi bạn đã kiểm tra nội dung của nó với người gửi.
+SIPartiallyValidLabel=Thư đã được kí
+SIPartiallyValidHeader=Mặc dù chữ kí điện tử hợp lệ, nhưng vẫn chưa biết người gửi và người kí có phải là cùng một người hay không.
+SIHeaderMismatch=Địa chỉ thư được liệt kê trong chứng thư của người kí khác với địa chỉ email được dùng để gửi lá thư này. Vui lòng nhìn vào chi tiết của chứng thư chữ kí để biết ai đã kí lá thư.
+SICertWithoutAddress=Chứng thư được dùng để kí lá thư không có địa chỉ email. Vui lòng nhìn vào chi tiết của chứng thư chữ kí để biết ai đã kí lá thư.
+
+## Encryption Information strings
+EINoneLabel2=Thư không được mã hóa
+EINone=Thư này không được mã hóa trước khi gửi. Thông tin gửi qua Internet mà không mã hóa có thể bị thấy bởi người khác trong quá trình truyền tải.
+EIValidLabel=Thư Được Mã Hóa
+EIValid=Thư này đã được mã hóa trước khi được gửi đến bạn. Mã hóa khiến cho người khác rất khó xem được thông tin trong quá trình thư đi qua các hệ thống mạng.
+EIInvalidLabel=Thư Không Thể Giải Mã Được
+EIInvalidHeader=Thư này đã được mã hóa trước khi được gửi đến bạn, nhưng nó không thể giải mã được.
+EIContentAltered=Nội dung thư có vẻ đã bị sửa đổi trong quá trình truyền tải.
+EIClueless=Có những vấn đề chưa biết đối với lá thư mã hóa này.
diff --git a/l10n-vi/mail/chrome/messenger/AccountManager.dtd b/l10n-vi/mail/chrome/messenger/AccountManager.dtd
new file mode 100644
index 0000000000..0f36ac721f
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/AccountManager.dtd
@@ -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/. -->
+
+<!-- extracted from AccountManager.xhtml -->
+
+<!ENTITY accountManagerTitle.label "Cài đặt tài khoản">
+<!ENTITY accountManagerCloseButton.label "Đóng">
+
+<!ENTITY accountActionsButton.label "Hành động tài khoản">
+<!ENTITY accountActionsButton.accesskey "A">
+<!ENTITY addMailAccountButton.label "Thêm tài khoản thư…">
+<!ENTITY addMailAccountButton.accesskey "A">
+<!ENTITY addIMAccountButton.label "Thêm tài khoản trò chuyện…">
+<!ENTITY addIMAccountButton.accesskey "C">
+<!ENTITY addFeedAccountButton.label "Thêm tài khoản nguồn cấp dữ liệu…">
+<!ENTITY addFeedAccountButton.accesskey "F">
+<!ENTITY addOtherAccountButton.label "Thêm tài khoản khác…">
+<!ENTITY addOtherAccountButton.accesskey "O">
+<!ENTITY setDefaultButton.label "Đặt làm mặc định">
+<!ENTITY setDefaultButton.accesskey "D">
+<!ENTITY removeButton.label "Xóa tài khoản">
+<!ENTITY removeButton.accesskey "R">
+
+<!ENTITY addonsButton.label "Tiện ích mở rộng &amp; chủ đề">
+
+<!-- AccountManager.xhtml -->
+<!-- LOCALIZATION NOTE : this is part of an inline-style attribute on the account
+ setting dialog, which specifies the width and height in em units of the dialog.
+ Localizers ONLY can increase these widths if they are having difficulty getting
+ panel content to fit.
+ 1ch = The width of the "0" (ZERO, U+0030) glyph for the current font.
+ 1em = The height of the font.
+ XUL/FE DEVELOPERS: DO NOT MODIFY THIS VALUE. It represents the correct size of
+ this window for en-US. -->
+<!ENTITY accountManager.size "width: 105ch; height: 55em;">
+<!ENTITY accountTree.width "width: 32ch;">
diff --git a/l10n-vi/mail/chrome/messenger/AccountWizard.dtd b/l10n-vi/mail/chrome/messenger/AccountWizard.dtd
new file mode 100644
index 0000000000..5506373e8c
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/AccountWizard.dtd
@@ -0,0 +1,127 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- Entities for AccountWizard -->
+
+<!ENTITY windowTitle.label "Trình thuật sĩ tài khoản">
+<!ENTITY accountWizard.size "width: 40em; height: 38em;">
+
+<!-- Entities for Account Type page -->
+
+<!ENTITY accountSetupInfo2.label "Để nhận các thông báo, đầu tiên bạn sẽ cần phải thiết lập một tài khoản.">
+<!ENTITY accountTypeTitle.label "Thiết lập tài khoản mới">
+<!ENTITY accountTypeDesc2.label "Trình thuật sĩ này sẽ thu thập thông tin cần thiết để tạo một tài khoản. Nếu bạn không biết những thông tin được yêu cầu, vui lòng liên hệ quản trị viên hệ thống hoặc nhà cung cấp dịch vụ Internet.">
+<!ENTITY accountTypeDirections.label "Chọn kiểu tài khoản mà bạn muốn thiết lập:">
+<!ENTITY accountTypeMail.label "Tài khoản email">
+<!ENTITY accountTypeMail.accesskey "m">
+<!ENTITY accountTypeNews.label "Tài khoản nhóm tin">
+<!ENTITY accountTypeNews.accesskey "w">
+<!-- LOCALIZATION NOTE(accountTypeMovemail.label): do not translate 'Movemail' -->
+<!ENTITY accountTypeMovemail.label "Unix Mailspool (Movemail)">
+<!ENTITY accountTypeMovemail.accesskey "U">
+
+<!-- Entities for Identity page -->
+
+<!ENTITY identityTitle.label "Nhận dạng">
+<!ENTITY identityDesc.label "Mỗi tài khoản có một danh tính, đó là thông tin nhận dạng bạn với người khác khi họ nhận được thư của bạn.">
+
+<!-- LOCALIZATION NOTE (fullnameDesc.label) : do not translate two of "&quot;" in below line -->
+<!ENTITY fullnameDesc.label "Nhập tên mà bạn muốn hiển thị trong trường &quot;Từ&quot; trên các thư gửi đi">
+<!-- LOCALIZATION NOTE (fullnameExample.label) : use following directions for below line
+ 1, do not translate two of "&quot;"
+ 2, Use localized full name instead of "John Smith"
+-->
+<!ENTITY fullnameExample.label "(ví dụ, &quot;John Smith&quot;).">
+<!ENTITY fullnameLabel.label "Tên của bạn:">
+<!ENTITY fullnameLabel.accesskey "Y">
+
+<!ENTITY emailLabel.label "Địa chỉ email:">
+<!ENTITY emailLabel.accesskey "E">
+
+<!-- Entities for Incoming Server page -->
+
+<!ENTITY incomingTitle.label "Thông tin máy chủ nhận thư">
+<!ENTITY incomingServerTypeDesc.label "Chọn loại máy chủ nhận thư bạn đang sử dụng.">
+<!-- LOCALIZATION NOTE (imapType.label) : Do not translate "IMAP" in below line -->
+<!ENTITY imapType.label "IMAP">
+<!ENTITY imapType.accesskey "I">
+<!-- LOCALIZATION NOTE (popType.label) : Do not translate "POP" in below line -->
+<!ENTITY popType.label "POP">
+<!ENTITY popType.accesskey "P">
+<!ENTITY leaveMsgsOnSrvr.label "Để lại thư trên máy chủ">
+<!ENTITY leaveMsgsOnSrvr.accesskey "L">
+<!ENTITY portNum.label "Cổng:">
+<!ENTITY portNum.accesskey "o">
+<!ENTITY defaultPortLabel.label "Mặc định:">
+<!ENTITY defaultPortValue.label "">
+<!-- LOCALIZATION NOTE (incomingServerNameDesc.label) : Do not translate "&quot;pop.example.net&quot;" in below line -->
+<!ENTITY incomingServer.description "Nhập tên của máy chủ nhận thư của bạn (ví dụ: &quot;mail.example.net&quot;).">
+<!ENTITY incomingServer.label "Máy chủ nhận thư:">
+<!ENTITY incomingServer.accesskey "S">
+<!-- LOCALIZATION NOTE (incomingUsername.description) : do not translate "&quot;jsmith&quot;" in below line -->
+<!ENTITY incomingUsername.description "Nhập tên người dùng đến được cung cấp cho bạn bởi nhà cung cấp email của bạn (ví dụ: &quot;jsmith&quot;).">
+<!ENTITY incomingUsername.label "Tên đăng nhập:">
+<!ENTITY incomingUsername.accesskey "U">
+<!-- LOCALIZATION NOTE (newsServerNameDesc.label) : Do not translate "NNTP" or the "&quot;" entities in below line -->
+<!ENTITY newsServerNameDesc.label "Nhập tên của máy chủ tin tức của bạn (NNTP) (ví dụ: &quot;news.example.net&quot;).">
+<!ENTITY newsServerLabel.label "Máy chủ nhóm tin:">
+<!ENTITY newsServerLabel.accesskey "S">
+
+<!-- Entities for Outgoing Server page -->
+
+<!ENTITY outgoingTitle.label "Thông tin máy chủ gửi thư">
+<!-- LOCALIZATION NOTE (outgoingServer.description) : Do not translate "SMTP" and "&quot;smtp.example.net&quot;" in below line -->
+<!ENTITY outgoingServer.description "Nhập tên của máy chủ gửi thư của bạn (SMTP) (ví dụ: &quot;smtp.example.net&quot;).">
+<!ENTITY outgoingServer.label "Máy chủ gửi thư:">
+<!ENTITY outgoingServer.accesskey "S">
+<!ENTITY outgoingUsername.description "Nhập tên người dùng gửi thư được cung cấp cho bạn bởi nhà cung cấp email của bạn (tên này thường giống với tên người dùng nhận thư của bạn).">
+<!ENTITY outgoingUsername.label "Tên người dùng gửi thư:">
+<!ENTITY outgoingUsername.accesskey "U">
+
+<!-- LOCALIZATION NOTE (modifyOutgoing.suffix) : This string will be appended after each of
+ haveSmtp1.suffix3, haveSmtp2.suffix3, haveSmtp3.suffix3 .
+-->
+<!ENTITY modifyOutgoing.suffix "Bạn có thể thay đổi máy chủ gửi thư trong cài đặt tài khoản.">
+<!-- LOCALIZATION NOTE (haveSmtp1.prefix and haveSmtp1.suffix3) : Do not translate "SMTP" and "&quot;" in
+ these variables. Also, translate haveSmtp1.prefix and haveSmtp1.suffix3 as a single sentence, inserting
+ text after the "&quot;" entity in haveSmtp1.suffix3, if required grammatically.
+-->
+<!ENTITY haveSmtp1.prefix "Máy chủ gửi thư (SMTP) hiện tại của bạn, &quot;">
+<!ENTITY haveSmtp1.suffix3 "&quot;, sẽ được sử dụng.">
+<!-- LOCALIZATION NOTE (haveSmtp2.prefix and haveSmtp2.suffix3) : Do not translate "SMTP" and "&quot;" in
+ these variables. Also, translate haveSmtp2.prefix and haveSmtp2.suffix3 as a single sentence, inserting
+ text after the "&quot;" entity in haveSmtp2.suffix3, if required grammatically.
+-->
+<!ENTITY haveSmtp2.prefix "Tên người dùng gửi thư (SMTP) hiện tại của bạn, &quot;">
+<!ENTITY haveSmtp2.suffix3 "&quot;, sẽ được sử dụng.">
+<!-- LOCALIZATION NOTE (haveSmtp3.prefix and haveSmtp3.suffix3) : Do not translate "SMTP" and "&quot;" in
+ these variables. Also, translate haveSmtp3.prefix and haveSmtp3.suffix3 as a single sentence, inserting
+ text after the "&quot;" entity in haveSmtp3.suffix3, if required grammatically.
+-->
+<!ENTITY haveSmtp3.prefix "Máy chủ gửi thư (SMTP) của bạn, &quot;">
+<!ENTITY haveSmtp3.suffix3 "&quot;, giống hệt với máy chủ nhận thư của bạn, tên người dùng đến của bạn sẽ được sử dụng để truy cập nó.">
+
+<!-- Entities for Account name page -->
+
+<!ENTITY accnameTitle.label "Tên tài khoản">
+<!-- LOCALIZATION NOTE (accnameDesc.label) : do not translate any "&quot;" in below line -->
+<!ENTITY accnameDesc.label "Nhập tên mà bạn muốn dùng để nói tới tài khoản này (ví dụ, &quot;Tài khoản công việc&quot;, &quot;Tài khoản ở nhà&quot; hoặc &quot;Tài khoản tin tức&quot;).">
+<!ENTITY accnameLabel.label "Tên tài khoản:">
+<!ENTITY accnameLabel.accesskey "A">
+
+<!-- Entities for Done (Congratulations) page -->
+
+<!ENTITY completionTitle.label "Chúc mừng!">
+<!ENTITY completionText.label "Vui lòng xác minh rằng thông tin dưới đây là chính xác.">
+<!ENTITY serverTypePrefix.label "Kiểu máy chủ nhận thư:">
+<!ENTITY serverNamePrefix.label "Tên máy chủ nhận thư:">
+<!ENTITY smtpServerNamePrefix.label "Tên máy chủ gửi thư (SMTP):">
+<!ENTITY newsServerNamePrefix.label "Tên máy chủ tin tức (NNTP):">
+<!ENTITY downloadOnLogin.label "Tải thư ngay">
+<!ENTITY downloadOnLogin.accesskey "D">
+<!ENTITY deferStorageDesc.label "Bỏ chọn ô kiểm này để lưu trữ thư của tài khoản này trong thư mục riêng của nó. Điều này sẽ làm cho tài khoản hiện hữu dưới dạng tài khoản cấp bậc cao nhất. Nếu không, nó sẽ là một phần của tài khoản hộp thư bao quát, gồm các thư mục cục bộ.">
+<!ENTITY deferStorage.label "Sử dụng hộp thư bao quát (lưu trữ thư trong thư mục cục bộ)">
+<!ENTITY deferStorage.accesskey "G">
+<!ENTITY clickFinish.label "Nhấn Hoàn Thành để lưu các thiết lập này và thoát trình thuật sĩ tài khoản.">
+<!ENTITY clickFinish.labelMac "Nhấn Xong để lưu các thiết lập này và thoát trình thuật sĩ tài khoản.">
diff --git a/l10n-vi/mail/chrome/messenger/CustomHeaders.dtd b/l10n-vi/mail/chrome/messenger/CustomHeaders.dtd
new file mode 100644
index 0000000000..1893b868ef
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/CustomHeaders.dtd
@@ -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/. -->
+
+<!ENTITY window.title "Tùy biến tiêu đề">
+<!ENTITY addButton.label "Thêm">
+<!ENTITY addButton.accesskey "A">
+<!ENTITY removeButton.label "Xóa">
+<!ENTITY removeButton.accesskey "R">
+<!ENTITY newMsgHeader.label "Tiêu đề thư mới:">
+<!ENTITY newMsgHeader.accesskey "N">
diff --git a/l10n-vi/mail/chrome/messenger/FilterEditor.dtd b/l10n-vi/mail/chrome/messenger/FilterEditor.dtd
new file mode 100644
index 0000000000..443dc52a89
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/FilterEditor.dtd
@@ -0,0 +1,67 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY window.title "Quy tắc bộ lọc">
+<!ENTITY filterEditorDialog.dimensions "width: 100ch;">
+<!ENTITY filterName.label "Tên bộ lọc:">
+<!ENTITY filterName.accesskey "i">
+
+<!ENTITY junk.label "Thư rác">
+<!ENTITY notJunk.label "Không phải thư rác">
+
+<!ENTITY lowestPriorityCmd.label "Thấp nhất">
+<!ENTITY lowPriorityCmd.label "Thấp">
+<!ENTITY normalPriorityCmd.label "Bình thường">
+<!ENTITY highPriorityCmd.label "Cao">
+<!ENTITY highestPriorityCmd.label "Cao nhất">
+
+<!ENTITY contextDesc.label "Áp dụng bộ lọc khi:">
+<!ENTITY contextIncomingMail.label "Nhận thư mới:">
+<!ENTITY contextIncomingMail.accesskey "G">
+<!ENTITY contextManual.label "Chạy thủ công">
+<!ENTITY contextManual.accesskey "R">
+<!ENTITY contextBeforeCls.label "Lọc trước khi phân loại thư rác">
+<!ENTITY contextAfterCls.label "Lọc sau khi phân loại thư rác">
+<!ENTITY contextOutgoing.label "Sau khi gửi">
+<!ENTITY contextOutgoing.accesskey "S">
+<!ENTITY contextArchive.label "Lưu trữ">
+<!ENTITY contextArchive.accesskey "A">
+<!ENTITY contextPeriodic.accesskey "e">
+
+<!ENTITY filterActionDesc.label "Thực hiện các hành động này:">
+<!ENTITY filterActionDesc.accesskey "P">
+
+<!ENTITY filterActionOrderWarning.label "Lưu ý: Các hành động lọc sẽ được chạy theo thứ tự khác.">
+<!ENTITY filterActionOrder.label "Xem thứ tự thực hiện">
+
+<!-- New Style Filter Rule Actions -->
+<!ENTITY moveMessage.label "Di chuyển thư tới">
+<!ENTITY copyMessage.label "Sao chép thư đến">
+<!ENTITY forwardTo.label "Chuyển tiếp thư tới">
+<!ENTITY replyWithTemplate.label "Trả lời bằng mẫu">
+<!ENTITY markMessageRead.label "Đánh dấu là đã đọc">
+<!ENTITY markMessageUnread.label "Đánh dấu là chưa đọc">
+<!ENTITY markMessageStarred.label "Thêm sao">
+<!ENTITY setPriority.label "Đặt mức độ ưu tiên thành">
+<!ENTITY addTag.label "Dán nhãn cho thư">
+<!ENTITY setJunkScore.label "Đặt trạng thái thư rác thành">
+<!ENTITY deleteMessage.label "Xóa thư">
+<!ENTITY deleteFromPOP.label "Xóa trên máy chủ POP">
+<!ENTITY fetchFromPOP.label "Lấy từ máy chủ POP">
+<!ENTITY ignoreThread.label "Bỏ qua chủ đề">
+<!ENTITY ignoreSubthread.label "Bỏ qua chủ đề con">
+<!ENTITY watchThread.label "Theo dõi chủ đề">
+<!ENTITY stopExecution.label "Dừng thực thi bộ lọc">
+
+<!ENTITY addAction.tooltip "Thêm một hành động mới">
+<!ENTITY removeAction.tooltip "Xóa hành động này">
+
+<!-- LOCALIZATION NOTE
+ The values below are used to control the widths of the filter action widgets.
+ Change the values only when the localized strings in the popup menus
+ are truncated in the widgets.
+ -->
+<!-- Flex Attribute: https://developer.mozilla.org/docs/XUL/Attribute/flex -->
+<!ENTITY filterActionTypeFlexValue "1">
+<!ENTITY filterActionTargetFlexValue "4">
diff --git a/l10n-vi/mail/chrome/messenger/FilterListDialog.dtd b/l10n-vi/mail/chrome/messenger/FilterListDialog.dtd
new file mode 100644
index 0000000000..548df554ac
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/FilterListDialog.dtd
@@ -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/. -->
+
+<!ENTITY window.title "Bộ lọc thư">
+<!ENTITY nameColumn.label "Tên bộ lọc">
+<!ENTITY activeColumn.label "Đã bật">
+<!ENTITY newButton.label "Mới…">
+<!ENTITY newButton.accesskey "N">
+<!ENTITY newButton.popupCopy.label "Sao chép…">
+<!ENTITY newButton.popupCopy.accesskey "C">
+<!ENTITY editButton.label "Chỉnh sửa…">
+<!ENTITY editButton.accesskey "E">
+<!ENTITY deleteButton.label "Xóa">
+<!ENTITY deleteButton.accesskey "t">
+<!ENTITY reorderTopButton "Chuyển lên trên cùng">
+<!ENTITY reorderTopButton.accessKey "o">
+<!ENTITY reorderTopButton.toolTip "Sắp xếp lại bộ lọc để nó thực thi trước tất cả các bộ lọc khác">
+<!ENTITY reorderUpButton.label "Di chuyển lên">
+<!ENTITY reorderUpButton.accesskey "U">
+<!ENTITY reorderDownButton.label "Di chuyển xuống">
+<!ENTITY reorderDownButton.accesskey "D">
+<!ENTITY reorderBottomButton "Chuyển xuống dưới cùng">
+<!ENTITY reorderBottomButton.accessKey "B">
+<!ENTITY reorderBottomButton.toolTip "Sắp xếp lại bộ lọc để nó thực thi sau tất cả các bộ lọc khác">
+<!ENTITY filterHeader.label "Các bộ lọc đã kích hoạt sẽ được chạy tự động theo thứ tự bên dưới.">
+<!ENTITY filtersForPrefix.label "Bộ lọc cho:">
+<!ENTITY filtersForPrefix.accesskey "F">
+<!ENTITY viewLogButton.label "Nhật kí bộ lọc">
+<!ENTITY viewLogButton.accesskey "L">
+<!ENTITY runFilters.label "Chạy ngay">
+<!ENTITY runFilters.accesskey "R">
+<!ENTITY stopFilters.label "Dừng">
+<!ENTITY stopFilters.accesskey "S">
+<!ENTITY folderPickerPrefix.label "Chạy các bộ lọc đã chọn cho:">
+<!ENTITY folderPickerPrefix.accesskey "c">
+<!ENTITY helpButton.label "Trợ giúp">
+<!ENTITY helpButton.accesskey "H">
+<!ENTITY closeCmd.key "W">
+<!ENTITY searchBox.emptyText "Tìm kiếm bộ lọc theo tên…">
diff --git a/l10n-vi/mail/chrome/messenger/SearchDialog.dtd b/l10n-vi/mail/chrome/messenger/SearchDialog.dtd
new file mode 100644
index 0000000000..7cc612a906
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/SearchDialog.dtd
@@ -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/. -->
+
+<!-- for SearchDialog.xul -->
+<!ENTITY searchHeading.label "Tìm kiếm thư trong:">
+<!ENTITY searchHeading.accesskey "h">
+<!ENTITY searchSubfolders.label "Tìm kiếm thư mục con">
+<!ENTITY searchSubfolders.accesskey "e">
+<!ENTITY searchOnServer.label "Chạy tìm kiếm trên máy chủ">
+<!ENTITY searchOnServer.accesskey "u">
+<!ENTITY resetButton.label "Xóa trắng">
+<!ENTITY resetButton.accesskey "C">
+<!ENTITY openButton.label "Mở">
+<!ENTITY openButton.accesskey "n">
+<!ENTITY deleteButton.label "Xóa">
+<!ENTITY deleteButton.accesskey "D">
+<!ENTITY searchDialogTitle.label "Tìm kiếm thư">
+<!ENTITY results.label "Kết quả">
+<!ENTITY moveButton.label "Di chuyển đến">
+<!ENTITY moveButton.accesskey "T">
+<!ENTITY closeCmd.key "W">
+<!ENTITY openInFolder.label "Mở trong thư mục">
+<!ENTITY openInFolder.accesskey "r">
+<!ENTITY saveAsVFButton.label "Lưu thành thư mục tìm kiếm">
+<!ENTITY saveAsVFButton.accesskey "v">
+
+<!-- for ABSearchDialog.xul -->
+<!ENTITY abSearchHeading.label "Tìm kiếm trong:">
+<!ENTITY abSearchHeading.accesskey "h">
+<!ENTITY propertiesButton.label "Thuộc tính">
+<!ENTITY propertiesButton.accesskey "P">
+<!ENTITY composeButton.label "Viết thư">
+<!ENTITY composeButton.accesskey "W">
+<!ENTITY deleteCardButton.label "Xóa">
+<!ENTITY deleteCardButton.accesskey "D">
+<!ENTITY abSearchDialogTitle.label "Tìm kiếm sổ địa chỉ nâng cao">
+
diff --git a/l10n-vi/mail/chrome/messenger/aboutDialog.dtd b/l10n-vi/mail/chrome/messenger/aboutDialog.dtd
new file mode 100644
index 0000000000..f7865b7ce2
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/aboutDialog.dtd
@@ -0,0 +1,112 @@
+<!ENTITY aboutDialog.title "Thông tin về &brandFullName;">
+
+<!-- LOCALIZATION NOTE (update.*):
+# These strings are also used in the update pane of preferences.
+# See about:preferences#advanced.
+-->
+<!-- LOCALIZATION NOTE (update.checkForUpdatesButton.*, update.updateButton.*):
+# Only one button is present at a time.
+# The button when displayed is located directly under the Thunderbird version in
+# the about dialog.
+-->
+<!ENTITY update.checkForUpdatesButton.label "Kiểm tra cập nhật">
+<!ENTITY update.checkForUpdatesButton.accesskey "C">
+<!ENTITY update.updateButton.label3 "Khởi động lại để cập nhật &brandShorterName;">
+<!ENTITY update.updateButton.accesskey "R">
+
+
+<!-- LOCALIZATION NOTE (warningDesc.version): This is a warning about the experimental nature of Nightly builds. It is only shown in this version. -->
+<!ENTITY warningDesc.version "&brandShortName; được thiết kế để thử nghiệm và có thể không ổn định.">
+<!-- LOCALIZATION NOTE (warningDesc.telemetryDesc): This is a notification that Nightly builds automatically send Telemetry data back to Mozilla. It is only shown in this version. "It" refers to brandShortName. -->
+<!ENTITY warningDesc.telemetryDesc "Thông tin về việc sử dụng, về hiệu suất, phần cứng và các tùy chỉnh sẽ được tự động gửi tới &vendorShortName; để giúp &brandShortName; hoàn thiện hơn.">
+
+<!-- LOCALIZATION NOTE (community.exp.*) This paragraph is shown in "experimental" builds, i.e. Nightly builds, instead of the other "community.*" strings below. -->
+<!ENTITY community.exp.start "">
+<!-- LOCALIZATION NOTE (community.exp.mozillaLink): This is a link title that links to https://www.mozilla.org/. -->
+<!ENTITY community.exp.mozillaLink "&vendorShortName;">
+<!ENTITY community.exp.middle " là một ">
+<!-- LOCALIZATION NOTE (community.exp.creditslink): This is a link title that links to about:credits. -->
+<!ENTITY community.exp.creditsLink "cộng đồng toàn cầu">
+<!ENTITY community.exp.end " cùng chung sức bảo vệ Web mở, công khai, và cho phép ai cũng truy cập được.">
+
+<!ENTITY community.start2 "&brandShortName; được thiết kế bởi ">
+<!-- LOCALIZATION NOTE (community.mozillaLink): This is a link title that links to https://www.mozilla.org/. -->
+<!ENTITY community.mozillaLink "&vendorShortName;">
+<!ENTITY community.middle2 ", một ">
+<!-- LOCALIZATION NOTE (community.creditsLink): This is a link title that links to about:credits. -->
+<!ENTITY community.creditsLink "cộng đồng toàn cầu">
+<!ENTITY community.end3 " cùng chung sức bảo vệ Web mở, công khai, và cho phép ai cũng truy cập được.">
+
+<!ENTITY helpus.start "Bạn muốn giúp đỡ? ">
+<!-- LOCALIZATION NOTE (helpus.donateLink): This is a link title that links to the thunderbird donation page -->
+<!ENTITY helpus.donateLink "Quyên góp tài chính">
+<!ENTITY helpus.middle " hoặc ">
+<!-- LOCALIZATION NOTE (helpus.getInvolvedLink): This is a link title that links to https://www.thunderbird.net/get-involved/. -->
+<!ENTITY helpus.getInvolvedLink "tham gia đóng góp!">
+<!ENTITY helpus.end "">
+
+<!ENTITY releaseNotes.link "Ghi chú phát hành">
+
+<!-- LOCALIZATION NOTE (bottomLinks.license): This is a link title that links to about:license. -->
+<!ENTITY bottomLinks.license "Thông tin giấy phép">
+
+<!-- LOCALIZATION NOTE (bottomLinks.rights): This is a link title that links to about:rights. -->
+<!ENTITY bottomLinks.rights "Quyền hạn người dùng cuối">
+
+<!-- LOCALIZATION NOTE (bottomLinks.privacy): This is a link title that links to https://www.mozilla.org/legal/privacy/. -->
+<!ENTITY bottomLinks.privacy "Chính sách riêng tư">
+
+<!-- LOCALIZATION NOTE (update.checkingForUpdates): try to make the localized text short (see bug 596813 for screenshots). -->
+<!ENTITY update.checkingForUpdates "Đang kiểm tra cập nhật…">
+<!-- LOCALIZATION NOTE (update.noUpdatesFound): try to make the localized text short (see bug 596813 for screenshots). -->
+<!ENTITY update.noUpdatesFound "&brandShortName; đã được cập nhật">
+<!-- LOCALIZATION NOTE (update.adminDisabled): try to make the localized text short (see bug 596813 for screenshots). -->
+<!ENTITY update.adminDisabled "Cập nhật bị vô hiệu hóa bởi quản trị hệ thống của bạn">
+<!-- LOCALIZATION NOTE (update.otherInstanceHandlingUpdates): try to make the localized text short -->
+<!ENTITY update.otherInstanceHandlingUpdates "&brandShortName; đang được cập nhật bởi tiến trình khác">
+
+<!-- LOCALIZATION NOTE (update.failed.start,update.failed.linkText,update.failed.end):
+ update.failed.start, update.failed.linkText, and update.failed.end all go into
+ one line with linkText being wrapped in an anchor that links to a site to download
+ the latest version of Firefox (e.g. https://www.firefox.com). As this is all in
+ one line, try to make the localized text short (see bug 596813 for screenshots). -->
+<!ENTITY update.failed.start "Cập nhật thất bại. ">
+<!ENTITY update.failed.linkText "Tải xuống phiên bản mới nhất">
+<!ENTITY update.failed.end "">
+
+<!-- LOCALIZATION NOTE (update.manual.start,update.manual.end): update.manual.start and update.manual.end
+ all go into one line and have an anchor in between with text that is the same as the link to a site
+ to download the latest version of Firefox (e.g. https://www.firefox.com). As this is all in one line,
+ try to make the localized text short (see bug 596813 for screenshots). -->
+<!ENTITY update.manual.start "Tải xuống ">
+<!ENTITY update.manual.linkText "phiên bản mới nhất">
+<!ENTITY update.manual.end "">
+
+<!-- LOCALIZATION NOTE (update.unsupported.start,update.unsupported.linkText,update.unsupported.end):
+ update.unsupported.start, update.unsupported.linkText, and
+ update.unsupported.end all go into one line with linkText being wrapped in
+ an anchor that links to a site to provide additional information regarding
+ why the system is no longer supported. As this is all in one line, try to
+ make the localized text short (see bug 843497 for screenshots). -->
+<!ENTITY update.unsupported.start "Bạn không thể cập nhật thêm trên hệ thống này nữa. ">
+<!ENTITY update.unsupported.linkText "Tìm hiểu thêm">
+<!ENTITY update.unsupported.end "">
+
+<!-- LOCALIZATION NOTE (update.downloading.start,update.downloading.end): update.downloading.start and
+ update.downloading.end all go into one line, with the amount downloaded inserted in between. As this
+ is all in one line, try to make the localized text short (see bug 596813 for screenshots). The — is
+ the "em dash" (long dash).
+ example: Downloading update — 111 KB of 13 MB -->
+<!ENTITY update.downloading.start "Đang tải bản cập nhật — ">
+<!ENTITY update.downloading.end "">
+
+<!ENTITY update.applying "Đang cài đặt cập nhật…">
+<!ENTITY update.restarting "Đang khởi động lại…">
+
+<!-- LOCALIZATION NOTE (channel.description.start,channel.description.end): channel.description.start and
+ channel.description.end create one sentence, with the current channel label inserted in between.
+ example: You are currently on the _Stable_ update channel. -->
+<!ENTITY channel.description.start "Bạn hiện đang trên kênh cập nhật ">
+<!ENTITY channel.description.end ". ">
+
+<!ENTITY cmdCloseMac.commandKey "w">
diff --git a/l10n-vi/mail/chrome/messenger/aboutDownloads.dtd b/l10n-vi/mail/chrome/messenger/aboutDownloads.dtd
new file mode 100644
index 0000000000..d030e55266
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/aboutDownloads.dtd
@@ -0,0 +1,24 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY aboutDownloads.title "Tập tin đã lưu">
+<!ENTITY aboutDownloads.empty "Không có tập tin đã lưu">
+<!-- LOCALIZATION NOTE (cmd.show.label, cmd.show.accesskey, cmd.showMac.label,
+ cmd.showMac.accesskey):
+ The show and showMac commands are never shown together, thus they can share
+ the same access key (though the two access keys can also be different).
+ -->
+<!ENTITY cmd.show.label "Mở thư mục chứa">
+<!ENTITY cmd.show.accesskey "F">
+<!ENTITY cmd.showMac.label "Hiển thị trong Finder">
+<!ENTITY cmd.showMac.accesskey "F">
+<!ENTITY cmd.open.label "Mở">
+<!ENTITY cmd.open.accesskey "O">
+<!ENTITY cmd.removeFromHistory.label "Xóa khỏi lịch sử">
+<!ENTITY cmd.removeFromHistory.accesskey "e">
+<!ENTITY cmd.clearList.label "Xóa danh sách">
+<!ENTITY cmd.clearList.accesskey "C">
+<!ENTITY cmd.clearList.tooltip "Xóa tất cả các mục khỏi danh sách các tập tin đã lưu, ngoại trừ các bản tải xuống đang diễn ra.">
+<!ENTITY cmd.searchDownloads.label "Tìm kiếm…">
+<!ENTITY cmd.searchDownloads.key "F">
diff --git a/l10n-vi/mail/chrome/messenger/aboutRights.properties b/l10n-vi/mail/chrome/messenger/aboutRights.properties
new file mode 100644
index 0000000000..048d4b799c
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/aboutRights.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/.
+
+buttonLabel=Biết thêm về quyền của bạn…
+buttonAccessKey=B
+
diff --git a/l10n-vi/mail/chrome/messenger/aboutSupportMail.properties b/l10n-vi/mail/chrome/messenger/aboutSupportMail.properties
new file mode 100644
index 0000000000..29c786adce
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/aboutSupportMail.properties
@@ -0,0 +1,16 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (warningLabel): Label for warning text that shows up when private data is included
+warningLabel=CẢNH BÁO:
+# LOCALIZATION NOTE (warningText): Warning text that shows up when private data is included
+warningText=Bao gồm thông tin nhạy cảm không nên được chuyển tiếp hoặc công bố mà chưa được sự cho phép.
+
+# LOCALIZATION NOTE (fsType.local): Indicator that the displayed directory is on a local drive
+fsType.local = (Ổ đĩa nội bộ)
+# LOCALIZATION NOTE (fsType.network): Indicator that the displayed directory is on the network
+fsType.network = (Ổ đĩa mạng)
+# LOCALIZATION NOTE (fsType.unknown): Indicator that we couldn't figure out whether the directory is local or on a network
+fsType.unknown = (Địa điểm không rõ)
+
diff --git a/l10n-vi/mail/chrome/messenger/accountCreation.dtd b/l10n-vi/mail/chrome/messenger/accountCreation.dtd
new file mode 100644
index 0000000000..011a74d455
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/accountCreation.dtd
@@ -0,0 +1,112 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY emailWizard.title "Thiết lập địa chỉ email hiện tại của bạn">
+<!ENTITY emailWizard.caption "Sử dụng địa chỉ email hiện tại của bạn">
+<!ENTITY name.label "Tên của bạn:">
+<!ENTITY name.accesskey "T">
+<!ENTITY fullname.placeholder "Tên đầy đủ của bạn">
+<!ENTITY name.text "Tên của bạn, cho người khác thấy">
+<!ENTITY name.error "Vui lòng nhập tên của bạn">
+<!ENTITY email.label "Địa chỉ email:">
+<!ENTITY email.accesskey "l">
+<!ENTITY email3.placeholder "Địa chỉ email của bạn">
+<!ENTITY email.text "Địa chỉ thư điện tử hiện tại của bạn">
+<!ENTITY email.error "Địa chỉ email không hợp lệ">
+<!ENTITY password.label "Mật khẩu:">
+<!ENTITY password.accesskey "M">
+<!ENTITY password.placeholder "Mật khẩu">
+<!ENTITY password.text "Phụ, chỉ sẽ được dùng để kiểm tra tên đăng nhập">
+<!ENTITY password.toggle "Hiện/ẩn mật khẩu">
+<!ENTITY rememberPassword.label "Ghi nhớ mật khẩu">
+<!ENTITY rememberPassword.accesskey "G">
+<!ENTITY usernameEx.label "Tên đăng nhập của bạn:">
+<!ENTITY usernameEx.accesskey "T">
+<!-- LOCALIZATION NOTE(usernameEx.placeholder): YOURDOMAIN refers to the Windows domain in ActiveDirectory. yourusername refers to the user's account name in Windows. -->
+<!ENTITY usernameEx.placeholder "TENMIENCUABAN\tennguoidungcuaban">
+<!-- LOCALIZATION NOTE(usernameEx.text): Domain refers to the Windows domain in ActiveDirectory. We mean the user's login in Windows at the local corporate network. -->
+<!ENTITY usernameEx.text "Đăng nhập tên miền">
+
+<!ENTITY protocol.label "Giao thức:">
+<!ENTITY imapLong.label "IMAP (các thư mục từ xa)">
+<!ENTITY pop3Long.label "POP3 (giữ thư trên máy tính của bạn)">
+
+<!ENTITY manualConfigTable.summary "Cài đặt máy chủ">
+<!ENTITY incoming.label "Đến:">
+<!ENTITY incomingColumn.label "Hộp thư đến">
+<!ENTITY outgoing.label "Đi:">
+<!ENTITY outgoingColumn.label "Hộp thư đi">
+<!ENTITY username.label "Tên đăng nhập:">
+<!ENTITY serverRow.label "Máy chủ:">
+<!ENTITY portRow.label "Cổng:">
+<!ENTITY sslRow.label "SSL:">
+<!ENTITY auth.label "Xác minh">
+<!ENTITY imap.label "IMAP">
+<!ENTITY pop3.label "POP3">
+<!-- LOCALIZATION NOTE(exchange.label): Do not translate Exchange, it is a product name. -->
+<!ENTITY exchange.label "Exchange">
+<!ENTITY smtp.label "SMTP">
+<!ENTITY autodetect.label "Tự động nhận diện">
+<!-- LOCALIZATION NOTE(noEncryption.label): Neither SSL/TLS nor STARTTLS.
+ Transmission of emails in cleartext over the Internet. -->
+<!ENTITY noEncryption.label "Không">
+<!ENTITY starttls.label "STARTTLS">
+<!ENTITY sslTls.label "SSL/TLS">
+
+<!-- LOCALIZATION NOTE(exchange-hostname.label): Do not translate Exchange, it is a product name. -->
+<!ENTITY exchange-hostname.label "Máy chủ Exchange:">
+
+<!ENTITY advancedSetup.label "Cấu hình nâng cao">
+<!ENTITY advancedSetup.accesskey "n">
+<!ENTITY cancel.label "Hủy bỏ">
+<!ENTITY cancel.accesskey "a">
+<!ENTITY continue.label "Tiếp tục">
+<!ENTITY continue.accesskey "p">
+<!ENTITY stop.label "Dừng">
+<!ENTITY stop.accesskey "D">
+<!-- LOCALIZATION NOTE (half-manual-test.label): This is the text that is
+ displayed on the button in manual config mode which will re-guess
+ the account configuration, taking into account the settings that
+ the user has manually changed. -->
+<!ENTITY half-manual-test.label "Kiểm tra lại">
+<!ENTITY half-manual-test.accesskey "K">
+<!ENTITY manual-config.label "Cấu hình thủ công…">
+<!ENTITY manual-config.accesskey "M">
+<!ENTITY open-provisioner.label "Tạo địa chỉ email mới…">
+<!ENTITY open-provisioner.accesskey "g">
+
+
+<!ENTITY get-help.label "Nhận trợ giúp">
+<!ENTITY get-help.accesskey "H">
+
+
+<!ENTITY warning.label "Cảnh báo!">
+<!ENTITY incomingSettings.label "Thiết lập nhận thư:">
+<!ENTITY outgoingSettings.label "Thiết lập gửi thư:">
+<!ENTITY technicaldetails.label "Chi tiết Kĩ thuật">
+<!-- LOCALIZATION NOTE (confirmWarning.label): If there is a security
+ warning on the outgoing server, then the user will need to check a
+ checkbox beside this text before continuing. -->
+<!ENTITY confirmWarning.label "Tôi hiểu các nguy cơ.">
+<!ENTITY confirmWarning.accesskey "u">
+<!-- LOCALIZATION NOTE (doneAccount.label): If there is a security warning
+ on the incoming or outgoing servers, then the page that pops up will
+ have this text in a button to continue by creating the account. -->
+<!ENTITY doneAccount.label "Xong">
+<!ENTITY doneAccount.accesskey "X">
+<!-- LOCALIZATION NOTE (changeSettings.label): If there is a security warning on
+ the incoming or outgoing servers, then the page that pops up will have
+ this text in a button to take you back to the previous page to change
+ the settings and try again. -->
+<!ENTITY changeSettings.label "Thay đổi Thiết lập">
+<!ENTITY changeSettings.accesskey "y">
+
+<!ENTITY contactYourProvider.description "&brandShortName; có thể cho phép bạn tải thư bằng cấu hình đã cung cấp. Tuy nhiên, bạn nên liên hệ quản trị viên hoặc nhà cung cấp thư điện tử về vấn đề kết nối không phù hợp này. Xem FAQ của Thunderbird để biết thêm thông tin.">
+
+<!ENTITY insecureServer.tooltip.title "Cảnh báo! Đây là một máy chủ không bảo mật.">
+<!ENTITY insecureServer.tooltip.details "Nhấn lên vòng tròn để biết thêm chi tiết.">
+
+<!ENTITY insecureUnencrypted.description "Email và thông tin xác thực của bạn được gửi mà không mã hóa, do đó mật khẩu (và thư) của bạn có thể sẽ bị người khác đọc được. &brandShortName; vẫn để bạn tải thư, nhưng bạn nên liên hệ nhà cung cấp thư điện tử của mình vè việc cấu hình máy chủ với kết nối an toàn.">
+<!ENTITY insecureSelfSigned.description "Máy chủ sử dụng một chứng thư mà chúng tôi không tin tưởng, do đó chúng tôi không thể chắc là liệu có ai đó đang can thiệp vào đường truyền giữa &brandShortName; và máy chủ của bạn hay không. &brandShortName; vẫn để cho bạn tải thư, nhưng bạn nên đề nghị nhà cung cấp thư điện tử của mình cấu hình máy chủ bằng một chứng thư tin cậy.">
+<!ENTITY secureServer.description "Chúc mừng! Máy chủ này có an toàn.">
diff --git a/l10n-vi/mail/chrome/messenger/accountCreation.properties b/l10n-vi/mail/chrome/messenger/accountCreation.properties
new file mode 100644
index 0000000000..953b32c284
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/accountCreation.properties
@@ -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/.
+# accountCreation.properties
+
+# LOCALIZATION NOTE(cleartext_warning): %1$S will be the hostname of the server the user was trying to connect to.
+cleartext_warning=%1$S không sử dụng mã hóa.
+# LOCALIZATION NOTE(selfsigned_warning): %1$S will be the hostname of the server the user was trying to connect to.
+selfsigned_warning=%1$S không sử dụng chứng chỉ tin cậy.
+selfsigned_details=Thông thường, một máy chủ thư an toàn sẽ xuất trình chứng chỉ tin cậy để chứng minh rằng đó thực sự là máy chủ mà nó tuyên bố. Kết nối đến máy chủ thư sẽ được mã hóa nhưng không thể xác thực là máy chủ chính xác.
+cleartext_details=Máy chủ thư không an toàn không sử dụng kết nối được mã hóa để bảo vệ mật khẩu và thông tin cá nhân của bạn. Bằng cách kết nối với máy chủ này, bạn có thể bị tiết lộ mật khẩu và thông tin cá nhân của mình.
+
+# LOCALIZATION NOTE(default_server_tag): Used to indicate the default smtp server in the server dropdown list.
+default_server_tag= (mặc định)
+# LOCALIZATION NOTE(port_auto): It must be short (4-5 characters max.).
+# Content of server port field (usually a number), used when the user didn't
+# enter anything yet and we'll automatically detect it later.
+port_auto=Tự động
+
+# config titles
+looking_up_settings=Đang tìm cấu hình…
+# LOCALIZATION NOTE(looking_up_settings_disk): Referring to Thunderbird installation folder on user's harddisk. %1$S will be the brandShortName.
+looking_up_settings_disk=Đang tìm cấu hình: Nơi cài đặt %1$S
+looking_up_settings_isp=Đang tìm cấu hình: Nhà cung cấp email
+# LOCALIZATION NOTE(looking_up_settings_db): Do not translate or replace Mozilla. It stands for the public project mozilla.org, not Mozilla Corporation. The database is a generic, public domain facility usable by any client.
+looking_up_settings_db=Đang tìm cấu hình: Cơ sở dữ liệu ISP của Mozilla
+looking_up_settings_mx=Đang tìm cấu hình: Tên miền hộp thư đến
+# LOCALIZATION NOTE(looking_up_settings_exchange): Exchange is a product name
+looking_up_settings_exchange=Đang tìm cấu hình: Máy chủ Exchange
+# LOCALIZATION NOTE(looking_up_settings_guess): We are checking common server names like pop., pop3., smtp., mail., without knowing whether they exist or really serve this email account. If a server responds, we try to talk to it via POP/IMAP/SMTP protocols and query its capabilities. If that succeeds, we assume we found a configuration. Of course, it may still be wrong, but it often works.
+looking_up_settings_guess=Đang tìm cấu hình: Thử tên các máy chủ phổ biến
+looking_up_settings_halfmanual=Đang tìm cấu hình: Thăm dò máy chủ
+# LOCALIZATION NOTE(found_settings_disk): Referring to Thunderbird installation folder on user's harddisk. %1$S will be the brandShortName.
+found_settings_disk=Cấu hình được tìm thấy tại nơi cài đặt %1$S
+found_settings_isp=Cấu hình được tìm thấy tại nhà cung cấp email
+# LOCALIZATION NOTE(found_settings_db): Do not translate or replace Mozilla. It stands for the public project mozilla.org, not Mozilla Corporation. The database is a generic, public domain facility usable by any client.
+found_settings_db=Cấu hình được tìm thấy trong cơ sở dữ liệu ISP của Mozilla
+# LOCALIZATION NOTE(found_settings_exchange): Microsoft Exchange is a product name.
+found_settings_exchange=Cấu hình được tìm thấy với máy chủ Microsoft Exchange
+no-open-protocols=Máy chủ email này dường như không hỗ trợ các giao thức mở.
+addon-intro=Một tiện ích mở rộng của bên thứ ba có thể cho phép bạn truy cập tài khoản email của mình trên máy chủ này:
+# LOCALIZATION NOTE(found_settings_guess): We tried common mail server names and we found a mail server and talked to it and it responded properly, so we think we found a suitable configuration, but we are only about 80% certain that it is the correct setting for this email address. There's a chance that email address may not actually be served by this server and it won't work, or that there is a better server.
+found_settings_guess=Cấu hình được tìm thấy bằng cách thử các tên máy chủ thông thường
+found_settings_halfmanual=Các cài đặt sau được tìm thấy bằng cách thăm dò máy chủ đã cho
+# LOCALIZATION NOTE(failed_to_find_settings): %1$S will be the brandShortName.
+failed_to_find_settings=%1$S không tìm thấy cài đặt cho tài khoản email của bạn.
+manually_edit_config=Chỉnh sửa cấu hình
+# LOCALIZATION NOTE(guessed_settings_offline) User is offline, so we just took a wild guess and the user will have to enter the right settings.
+guessed_settings_offline=Bạn đang ở chế độ ngoại tuyến. Chúng tôi đã đoán một số cài đặt nhưng bạn sẽ cần phải nhập các cài đặt chính xác.
+
+# config subtitles
+check_preconfig=đang tìm kiếm cấu hình có sẵn…
+found_preconfig=đã tìm thấy cấu hình có sẵn
+checking_config=đang tìm kiếm cấu hình…
+found_config=Đã tìm thấy cấu hình tài khoản
+checking_mozilla_config=đang tìm kiếm cấu hình cộng đồng Mozilla…
+found_isp_config=đã tìm thấy cấu hình
+probing_config=đang thăm dò cấu hình…
+guessing_from_email=đang đoán cấu hình…
+config_details_found=Đã tìm thấy chi tiết cấu hình của bạn!
+config_unverifiable=Không thể xác thực cấu hình — tên đăng nhập hay mật khẩu không đúng?
+exchange_config_unverifiable=Cấu hình không thể được xác minh. Nếu tên người dùng và mật khẩu của bạn là chính xác, có khả năng quản trị viên máy chủ đã vô hiệu hóa cấu hình đã chọn cho tài khoản của bạn. Hãy thử chọn một giao thức khác.
+incoming_found_specify_outgoing=Đã tìm thấy chi tiết cấu hình máy chủ thư đến của bạn, vui lòng xác định tên máy chủ gửi thư.
+outgoing_found_specify_incoming=Đã tìm thấy chi tiết cấu hình máy chủ thư đi của bạn, vui lòng xác định tên máy chủ nhận thư.
+please_enter_missing_hostnames=Không thể đoán thiết lập — vui lòng nhập tên máy chủ.
+incoming_failed_trying_outgoing=Không thể tự động cấu hình máy chủ thư đến, vẫn đang thử máy chủ thư đi.
+outgoing_failed_trying_incoming=Không thể tự động cấu hình máy chủ thư đi, vẫn đang thử máy chủ thư đến.
+checking_password=Đang kiểm tra mật khẩu…
+password_ok=Mật khẩu được!
+user_pass_invalid=Sai tên đăng nhập hoặc mật khẩu
+check_server_details=Đang kiểm tra chi tiết máy chủ
+check_in_server_details=Đang kiểm tra chi tiết máy chủ nhận thư
+check_out_server_details=Đang kiểm tra chi tiết máy chủ gửi thư
+
+error_creating_account=Lỗi khi tạo tài khoản
+incoming_server_exists=Máy chủ nhận thư đã tồn tại.
+
+please_enter_name=Vui lòng nhập tên của bạn.
+double_check_email=Kiểm tra lại địa chỉ email này!
+
+# add-on install
+addonInstallStarted=Đang tải xuống và cài đặt tiện ích mở rộng…
+addonInstallSuccess=Cài đặt thành công tiện ích mở rộng.
+# LOCALIZATION NOTE(addonInstallLabel): %1$S will be the add-on name
+addonInstallShortLabel=Cài đặt
+
+#config result display
+# LOCALIZATION NOTE(resultUnknown): Displayed instead of resultIncoming,
+# resultOutgoing or resultUsername when we don't have a proper value.
+resultUnknown=Không rõ
+resultOutgoingExisting=Sử dụng máy chủ gửi thư SMTP hiện tại
+resultIMAP=IMAP
+resultPOP3=POP3
+resultSMTP=SMTP
+resultExchange=Exchange
+# LOCALIZATION NOTE(resultNoEncryption): Neither SSL/TLS nor STARTTLS. Transmission of emails in cleartext over the Internet.
+resultNoEncryption=Không mã hóa
+resultSSL=SSL
+resultSTARTTLS=STARTTLS
+resultSSLCertWeak=\u0020(Cảnh báo: Không thể xác minh máy chủ)
+resultSSLCertOK=
+resultUsernameBoth=%1$S
+resultUsernameDifferent=Nhận thư: %1$S, Gửi thư: %2$S
+
+confirmAdvancedConfigTitle=Xác nhận cấu hình nâng cao
+confirmAdvancedConfigText=Hộp thoại này sẽ bị đóng và một tài khoản với các cài đặt hiện tại sẽ được tạo, ngay cả khi cấu hình không chính xác. Bạn có muốn tiếp tục?
+
+# LOCALIZATION NOTE(credentials_incomplete): The reference to "janedoe" (Jane Doe) is the name of an example person. You will want to translate it to whatever example persons would be named in your language. In the example, AD is the name of the Windows domain, and this should usually not be translated.
+credentials_incomplete=Không thể xác thực. Tên đăng nhập không chính xác hoặc tên người dùng riêng biệt được yêu cầu để đăng nhập. Tên người dùng này thường là tên miền Windows của bạn đăng nhập có hoặc không có tên miền (ví dụ: janedoe hoặc AD\\janedoe).
+credentials_wrong=Quá trình xác thực thất bại. Vui lòng kiểm tra tên người dùng và mật khẩu.
+# LOCALIZATION NOTE(otherDomain.label): %1$S will be the brandShortName. %2$S refers to the domain name, e.g. rackspace.com
+otherDomain.label=%1$S đã tìm thấy thông tin thiết lập tài khoản của bạn trên %2$S. Bạn có muốn tiến hành và gửi thông tin của bạn?
+otherDomain_ok.label=Đăng nhập
+otherDomain_cancel.label=Hủy bỏ
diff --git a/l10n-vi/mail/chrome/messenger/accountCreationModel.properties b/l10n-vi/mail/chrome/messenger/accountCreationModel.properties
new file mode 100644
index 0000000000..d9441d3f4e
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/accountCreationModel.properties
@@ -0,0 +1,20 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# This file has the strings, mostly error strings, for the logic / JS backend / model
+# files: fetchConfig.js, readFromXML.js, guessConfig.js, verifyConfig.js, createInBackend.js
+
+
+# readFromXML.js
+no_emailProvider.error=Tệp cấu hình XML không chứa cấu hình tài khoản email.
+outgoing_not_smtp.error=Máy chủ gửi thư phải là loại SMTP
+
+# verifyConfig.js
+cannot_login.error=Không thể đăng nhập vào máy chủ. Có lẽ là do cấu hình, tên đăng nhập, hoặc mật khẩu sai.
+
+# guessConfig.js
+cannot_find_server.error=Không thể tìm thấy máy chủ
+
+# exchangeAutoDiscover.js
+no_autodiscover.error=Exchange AutoDiscover XML không hợp lệ.
diff --git a/l10n-vi/mail/chrome/messenger/accountCreationUtil.properties b/l10n-vi/mail/chrome/messenger/accountCreationUtil.properties
new file mode 100644
index 0000000000..6ab4b844a1
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/accountCreationUtil.properties
@@ -0,0 +1,34 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# This file has the strings, mostly error strings, for the logic / JS backend / model
+# files: sanitizeDatatypes.js, fetchhttp.js, util.js
+
+
+# sanitizeDatatypes.js
+hostname_syntax.error=Tên máy chủ trống hoặc chứa các ký tự bị cấm. Chỉ các chữ cái, số, - và . được cho phép.
+alphanumdash.error=Chuỗi chứa các kí tự không được hỗ trợ. Chỉ chữ cái, số, - và _ là được dùng.
+allowed_value.error=Giá trị đã cung cấp không có trong danh sách được phép dùng
+url_scheme.error=Giao thức URL không được phép
+url_parsing.error=Không nhận ra URL
+string_empty.error=Bạn phải cung cấp giá trị cho chuỗi này
+boolean.error=Không phải giá trị luận lý
+no_number.error=Không phải số
+number_too_large.error=Số lớn quá
+number_too_small.error=Số nhỏ quá
+
+
+# fetchhttp.js
+cannot_contact_server.error=Không thể liên hệ máy chủ
+bad_response_content.error=Phản hồi có nội dung hỏng
+
+# verifyConfig.js
+# LOCALIZATION NOTE(auth_failed_generic.error): The login failed (server refused to allow the user in), but the server did not give any meaningful error message. This is a common case when the user entered a wrong password or is otherwise not allowed.
+auth_failed_generic.error=Đăng nhập thất bại. Tên đăng nhập/địa chỉ email và mật khẩu có đúng không?
+# LOCALIZATION NOTE(auth_failed_with_reason.error): The login failed (server refused to allow the user in), and the server gave an error message which we can present to the user. This is a common case when the user entered a wrong password or is otherwise not allowed. %1$S will be the IMAP/POP3/SMTP server hostname. %2$S will be the error message from the server (usually in the local language where the server is or in English).
+auth_failed_with_reason.error=Đăng nhập thất bại. Máy chủ %1$S cho biết: %2$S
+# LOCALIZATION NOTE(verification_failed.error): We had some other error, not during authentication with the server, but at earlier points, e.g. locally or we entirely failed to contact the given server, and we unfortunately have no detailed error message.
+verification_failed.error=Xác thực đăng nhập bị thất bại vì một lí do chưa biết.
+# LOCALIZATION NOTE(verification_failed_with_exception.error): We had some other error, not during authentication with the server, but at earlier points, e.g. locally or we entirely failed to contact the given server, and we have an error message. %1$S will be an error message, possibly in English
+verification_failed_with_exception.error=Xác thực đăng nhập bị thất bại với thông báo: %1$S
diff --git a/l10n-vi/mail/chrome/messenger/activity.dtd b/l10n-vi/mail/chrome/messenger/activity.dtd
new file mode 100644
index 0000000000..820d3deac8
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/activity.dtd
@@ -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/. -->
+
+<!-- LOCALIZATION NOTE (window.width2, window.height): These values should be
+close to the golden ratio (1.618:1) while making sure it's wide enough for long
+file names and tall enough to hint that there are more activities in the list -->
+<!ENTITY window.width2 "485">
+<!ENTITY window.height "300">
+
+<!ENTITY activity.title "Trình quản lí hoạt động">
+
+<!ENTITY cmd.pause.label "Tạm dừng">
+<!ENTITY cmd.pause.accesskey "P">
+<!ENTITY cmd.resume.label "Tiếp tục">
+<!ENTITY cmd.resume.accesskey "R">
+<!ENTITY cmd.cancel.label "Hủy bỏ">
+<!ENTITY cmd.cancel.accesskey "C">
+<!ENTITY cmd.undo.label "Hoàn tác">
+<!ENTITY cmd.undo.accesskey "U">
+<!ENTITY cmd.recover.label "Khôi phục">
+<!ENTITY cmd.recover.accesskey "v">
+<!ENTITY cmd.retry.label "Thử lại">
+<!ENTITY cmd.retry.accesskey "R">
+<!ENTITY cmd.removeFromList.label "Xóa khỏi danh sách">
+<!ENTITY cmd.removeFromList.accesskey "e">
+
+<!ENTITY cmd.close.commandkey "w">
+<!ENTITY cmd.close2.commandkey "j">
+<!ENTITY cmd.close2Unix.commandkey "y">
+<!ENTITY cmd.clearList.label "Xóa danh sách">
+<!ENTITY cmd.clearList.tooltip "Xóa các mục đã hoàn thành, hủy bỏ và không thành công khỏi danh sách">
+<!ENTITY cmd.clearList.accesskey "c">
+<!ENTITY cmd.find.commandkey "f">
+<!ENTITY cmd.search.commandkey "k">
+
+<!ENTITY searchBox.label "Tìm kiếm…">
diff --git a/l10n-vi/mail/chrome/messenger/activity.properties b/l10n-vi/mail/chrome/messenger/activity.properties
new file mode 100644
index 0000000000..d7d1685b6f
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/activity.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/.
+
+# Status Text
+paused2=Tạm dừng
+processing=Đang tiến hành
+notStarted=Chưa bắt đầu
+failed=Thất bại
+waitingForInput=Đang đợi đầu vào
+waitingForRetry=Đang chờ thử lại
+completed=Hoàn tất
+canceled=Đã hủy
+
+# LOCALIZATION NOTE (sendingMessages): this is used as a title for grouping processes in the activity manager when sending email.
+sendingMessages=Đang gửi Thư
+sendingMessage=Đang gửi Thư
+# LOCALIZATION NOTE (sendingMessageWithSubject): %S will be replaced by the subject of the message being sent.
+sendingMessageWithSubject=Đang Gửi Thư: %S
+copyMessage=Đang chép thư tới thư mục 'Đã Gửi'
+sentMessage=Thư đã Gửi
+# LOCALIZATION NOTE (sentMessageWithSubject): %S will be replaced by the subject of the message being sent.
+sentMessageWithSubject=Thư Đã Gửi: %S
+failedToSendMessage=Thất bại khi gửi thư
+failedToCopyMessage=Không thể sao chép thư
+# LOCALIZATION NOTE (failedToSendMessageWithSubject): %S will be replaced by the subject of the message being sent.
+failedToSendMessageWithSubject=Không thể gửi thư: %S
+# LOCALIZATION NOTE (failedToCopyMessageWithSubject): %S will be replaced by the subject of the message being sent.
+failedToCopyMessageWithSubject=Không thể sao chép thư: %S
+
+# LOCALIZATION NOTE (autosyncProcessProgress2): Do not translate the words "%1$S", "%2$S", "%3$S" and "%4$S" below.
+# Place the word %1$S in your translation where the number of the message being downloaded should appear.
+# Place the word %2$S in your translation where the total number of messages to be downloaded should appear.
+# Place the word %3$S in your translation where the name of the folder being processed should appear.
+# Place the word %4$S in your translation where the name of account being processed should appear.
+# EXAMPLE: Ted's account: Downloading message 334 of 1008 in Inbox…
+autosyncProcessProgress2=%4$S: Đang tải xuống thư %1$S của %2$S trong %3$S…
+# LOCALIZATION NOTE (autosyncProcessDisplayText): %S will be replaced by the folder name
+autosyncProcessDisplayText=Đang cập nhật thư mục %S
+# LOCALIZATION NOTE (autosyncEventDisplayText): %S will be replaced by the account name
+autosyncEventDisplayText=%S đã được cập nhật
+# LOCALIZATION NOTE (autosyncEventStatusText): %S will be replaced by total number of downloaded messages
+autosyncEventStatusText=Tổng số thư đã tải: %S
+autosyncEventStatusTextNoMsgs=Không có thư nào được tải
+# LOCALIZATION NOTE (autosyncContextDisplayText): %S will be replaced by the account name
+autosyncContextDisplayText=Đang đồng bộ: %S
+
+# LOCALIZATION NOTE (pop3EventStartDisplayText2): Do not translate the words "%1$S" and "%2$S" below.
+# Place the word %1$S in your translation where the name of the account being checked for new messages should appear.
+# Place the word %2$S in your translation where the name of the folder being checked for new messages should appear.
+# EXAMPLE: George's account: Checking Inbox for new messages…
+pop3EventStartDisplayText2=%1$S: Đang kiểm tra thư mới từ %2$S…
+# LOCALIZATION NOTE (pop3EventDisplayText): %S will be replaced by the account name
+pop3EventDisplayText=%S đã được cập nhật
+# LOCALIZATION NOTE (pop3EventStatusText): #1 will be replaced by total number of downloaded messages
+pop3EventStatusText=#1 thư được tải;#1 thư được tải
+pop3EventStatusTextNoMsgs=Không có thư nào để tải
+
+# Message actions that show up in activity manager
+# LOCALIZATION NOTE (deletedMessages2): #1 number of messages, #2 folder name
+deletedMessages2=Đã xóa #1 thư khỏi #2;Đã xóa #1 thư khỏi #2
+# LOCALIZATION NOTE (movedMessages): #1 number of messages, #2 and #3: folder names
+movedMessages=Đã di chuyển #1 thư từ #2 sang #3;Đã di chuyển #1 thư từ #2 sang #3
+# LOCALIZATION NOTE (copiedMessages): #1 number of messages, #2 and #3: folder names
+copiedMessages=Đã chép #1 thư từ #2 sang #3;Đã chép #1 thư từ #2 sang #3
+# LOCALIZATION NOTE (fromServerToServer): #1 source server, #2 destination server
+fromServerToServer=từ #1 sang #2
+# LOCALIZATION NOTE (deletedFolder): #1 folder name
+deletedFolder=Đã xóa thư mục #1
+emptiedTrash=Đã dọn sạch Thùng rác
+# LOCALIZATION NOTE (movedFolder): #1 and #2 are folder names
+movedFolder=Đã di chuyển thư mục #1 vào thư mục #2
+# LOCALIZATION NOTE (movedFolderToTrash): #1 is the folder name
+movedFolderToTrash=Đã di chuyển thư mục #1 vào Thùng rác
+# LOCALIZATION NOTE (copiedFolder): #1 and #2 are folder names
+copiedFolder=Đã chép thư mục #1 vào thư mục #2
+# LOCALIZATION NOTE (renamedFolder): #1 and #2 are folder names
+renamedFolder=Đã đổi tên thư mục #1 thành #2
+indexing=Đang lập chỉ mục thư
+# LOCALIZATION NOTE (indexingFolder): #1 is a folder name
+indexingFolder=Đang lập chỉ mục thư trong #1
+indexingStatusVague=Đang xác định thư nào sẽ được vào chỉ mục
+# LOCALIZATION NOTE (indexingFolderStatusVague): #1 is a folder name
+indexingFolderStatusVague=Đang xác định thư nào trong #1 sẽ được vào chỉ mục
+# LOCALIZATION NOTE (indexingStatusExact):
+# #1 is the number of the message currently being indexed
+# #2 is the total number of messages being indexed
+# #3 is the percentage of indexing that is complete
+indexingStatusExact=Đang lập chỉ mục cho #1 trên tổng #2 thư;Đang lập chỉ mục cho #1 trên tổng #2 thư (hoàn tất #3%)
+# LOCALIZATION NOTE (indexingFolderStatusExact):
+# #1 is the number of the message currently being indexed
+# #2 is the total number of messages being indexed
+# #3 is the percentage of indexing that is complete
+# #4 is a folder name
+indexingFolderStatusExact=Đang lập chỉ mục cho #1 trên tổng #2 thư trong #4;Đang lập chỉ mục cho #1 trên tổng #2 thư trong #4 (hoàn tất #3%)
+# LOCALIZATION NOTE (indexedFolder): #1 number of messages; #2 folder name
+indexedFolder=Đã lập chỉ mục cho #1 thư trong #2;Đã lập chỉ mục cho #1 thư trong #2
+# LOCALIZATION NOTE (indexedFolderStatus): #1 number of seconds spent indexing
+indexedFolderStatus=#1 giây trước;#1 giây trước
diff --git a/l10n-vi/mail/chrome/messenger/addbuddy.dtd b/l10n-vi/mail/chrome/messenger/addbuddy.dtd
new file mode 100644
index 0000000000..a680083d52
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/addbuddy.dtd
@@ -0,0 +1,7 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY addBuddyWindow.title "Thêm liên hệ">
+<!ENTITY name.label "Tên đăng nhập">
+<!ENTITY account.label "Tài khoản">
diff --git a/l10n-vi/mail/chrome/messenger/addons.properties b/l10n-vi/mail/chrome/messenger/addons.properties
new file mode 100644
index 0000000000..6f91ad7cc9
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/addons.properties
@@ -0,0 +1,251 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, you can obtain one at http://mozilla.org/MPL/2.0/.
+
+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=Từ chối
+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
+
+# 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 http://www.mozilla.org/access/keyboard/accesskey for details
+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=Bật
+xpinstallDisabledButton.accesskey=n
+
+# LOCALIZATION NOTE (addonInstallBlockedByPolicy)
+# This message is shown when the installation of an add-on is blocked by
+# enterprise policy. %1$S is replaced by the name of the add-on.
+# %2$S is replaced by the ID of add-on. %3$S is a custom message that
+# the administration can add to the message.
+addonInstallBlockedByPolicy=%1$S (%2$S) bị chặn bởi quản trị viên hệ thống của bạn.%3$S
+
+# LOCALIZATION NOTE (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 (addonPostInstall.multiple.message1)
+# %1$S is replaced with the localized name of the application.
+addonPostInstall.multiple.message=Các tiện ích mở rộng này đã được thêm vào %1$S:
+addonPostInstall.okay.label=OK
+addonPostInstall.okay.accesskey=O
+
+# 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 xác thực 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 số đó chưa được xác thực. 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 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 mong đợi.
+addonInstallError-3=Không thể cài đặt tiện ích được tải từ trang này vì có vẻ nó đã bị hỏng.
+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 xác thực.
+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 mong đợi.
+addonLocalInstallError-3=Không thể cài đặt tiện ích này vì có vẻ như nó đã bị hỏng.
+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 xác thực.
+
+# 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.
+
+# 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?
+
+# %S is brandShortName
+webextPerms.experimentWarning=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.
+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
+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=Bậ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.accountsFolders=Tạo, đổi tên hoặc xóa các thư mục tài khoản thư của bạn
+webextPerms.description.accountsRead=Xem tài khoản thư của bạn và thư mục của họ
+webextPerms.description.addressBooks=Đọc và chỉnh sửa các sổ địa chỉ và danh bạ của bạn
+webextPerms.description.bookmarks=Đọc và chỉnh sửa trang đánh dấu
+webextPerms.description.browserSettings=Đọc và chỉnh sửa tùy chọn trình duyệt
+webextPerms.description.browsingData=Xóa lịch sử duyệt web gần đây, cookie, và dữ liệu liên quan
+webextPerms.description.clipboardRead=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.compose=Đọc và sửa đổi tin nhắn email của bạn khi bạn soạn và gửi chúng
+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.dns=Truy cập địa chỉ IP và thông tin tên máy chủ
+webextPerms.description.downloads=Tải về 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 về máy tính của bạn
+# LOCALIZATION NOTE (webextPerms.description.experiment)
+# %S will be replaced with the name of the application
+webextPerms.description.experiment=Có quyền truy cập đầy đủ, không hạn chế vào %S và 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ủ đề
+webextPerms.description.messagesModify=Đọc và sửa đổi thông báo email của bạn khi chúng được hiển thị cho bạn
+webextPerms.description.messagesMove=Di chuyển, sao chép hoặc xóa email của bạn
+webextPerms.description.messagesRead=Đọc email của bạn và đánh dấu hoặc gắn nhãn chúng
+# 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ụ xác thực mật mã
+webextPerms.description.privacy=Đọc và chỉnh sửa các cài đặt riêng tư
+webextPerms.description.proxy=Kiểm soát tùy chọn 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=Hiện ẩn các thẻ trình duyệt
+webextPerms.description.topSites=Truy cập lịch sử duyệt Web
+webextPerms.description.unlimitedStorage=Lưu trữ số lượng không giới hạn dữ liệu phía máy khách
+webextPerms.description.webNavigation=Truy cập hoạt động của trình duyệt trong khi điều hướng
+
+webextPerms.hostDescription.allUrls=Truy cập dữ liệu của bạn trên mọi trang web
+
+# LOCALIZATION NOTE (webextPerms.hostDescription.wildcard)
+# %S will be replaced by the DNS domain for which a webextension
+# is requesting access (e.g., mozilla.org)
+webextPerms.hostDescription.wildcard=Truy cập dữ liệu của bạn trên các trang có tên miền %S
+
+# LOCALIZATION NOTE (webextPerms.hostDescription.tooManyWildcards):
+# Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 will be replaced by an integer indicating the number of additional
+# domains for which this webextension is requesting permission.
+webextPerms.hostDescription.tooManyWildcards=Truy cập dữ liệu của bạn trong #1 tên miền khác
+
+# LOCALIZATION NOTE (webextPerms.hostDescription.oneSite)
+# %S will be replaced by the DNS host name for which a webextension
+# is requesting access (e.g., www.mozilla.org)
+webextPerms.hostDescription.oneSite=Truy cập dữ liệu của bạn từ %S
+
+# LOCALIZATION NOTE (webextPerms.hostDescription.tooManySites)
+# Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 will be replaced by an integer indicating the number of additional
+# hosts for which this webextension is requesting permission.
+webextPerms.hostDescription.tooManySites=Truy cập dữ liệu của bạn trên #1 trang khác
+
+# 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=Gỡ bỏ
diff --git a/l10n-vi/mail/chrome/messenger/addressbook/abAddressBookNameDialog.dtd b/l10n-vi/mail/chrome/messenger/addressbook/abAddressBookNameDialog.dtd
new file mode 100644
index 0000000000..99b4901a7c
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/addressbook/abAddressBookNameDialog.dtd
@@ -0,0 +1,7 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- Labels -->
+<!ENTITY name.label "Tên sổ địa chỉ:">
+<!ENTITY name.accesskey "a">
diff --git a/l10n-vi/mail/chrome/messenger/addressbook/abCard.dtd b/l10n-vi/mail/chrome/messenger/addressbook/abCard.dtd
new file mode 100644
index 0000000000..c0c3e08633
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/addressbook/abCard.dtd
@@ -0,0 +1,156 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY Contact.tab "Liên hệ">
+<!ENTITY Contact.accesskey "C">
+<!ENTITY Name.box "Tên">
+
+<!-- LOCALIZATION NOTE:
+ NameField1, NameField2, PhoneticField1, PhoneticField2
+ those fields are either LN or FN depends on the target country.
+ "FirstName" and "LastName" can be swapped for id to change the order
+ but they should not be translated (same applied to phonetic id).
+ Make sure the translation of label corresponds to the order of id.
+-->
+
+<!-- LOCALIZATION NOTE (NameField1.id) : DONT_TRANSLATE -->
+<!ENTITY NameField1.id "FirstName">
+<!-- LOCALIZATION NOTE (NameField2.id) : DONT_TRANSLATE -->
+<!ENTITY NameField2.id "LastName">
+<!-- LOCALIZATION NOTE (PhoneticField1.id) : DONT_TRANSLATE -->
+<!ENTITY PhoneticField1.id "PhoneticFirstName">
+<!-- LOCALIZATION NOTE (PhoneticField2.id) : DONT_TRANSLATE -->
+<!ENTITY PhoneticField2.id "PhoneticLastName">
+
+<!ENTITY NameField1.label "Tên:">
+<!ENTITY NameField1.accesskey "F">
+<!ENTITY NameField2.label "Họ:">
+<!ENTITY NameField2.accesskey "L">
+<!ENTITY PhoneticField1.label "Ngữ âm:">
+<!ENTITY PhoneticField2.label "Ngữ âm:">
+<!ENTITY DisplayName.label "Tên hiển thị:">
+<!ENTITY DisplayName.accesskey "D">
+<!ENTITY preferDisplayName.label "Luôn ưu tiên tên hiển thị hơn tiêu đề thư">
+<!ENTITY preferDisplayName.accesskey "y">
+<!ENTITY NickName.label "Tên hiệu:">
+<!ENTITY NickName.accesskey "h">
+
+<!ENTITY PrimaryEmail.label "Thư điện tử:">
+<!ENTITY PrimaryEmail.accesskey "T">
+<!ENTITY SecondEmail.label "Thư điện tử Khác:">
+<!ENTITY SecondEmail.accesskey "K">
+<!ENTITY PreferMailFormat.label "Ưu tiên nhận tin nhắn được định dạng là:">
+<!ENTITY PreferMailFormat.accesskey "v">
+<!ENTITY PlainText.label "Văn bản thuần túy">
+<!ENTITY HTML.label "HTML">
+<!ENTITY Unknown.label "Không rõ">
+<!ENTITY chatName.label "Tên trò chuyện:">
+
+<!ENTITY WorkPhone.label "Công việc">
+<!ENTITY WorkPhone.accesskey "k">
+<!ENTITY HomePhone.label "Nhà:">
+<!ENTITY HomePhone.accesskey "m">
+<!ENTITY FaxNumber.label "Fax:">
+<!ENTITY FaxNumber.accesskey "F">
+<!ENTITY PagerNumber.label "Máy nhắn tin:">
+<!ENTITY PagerNumber.accesskey "g">
+<!ENTITY CellularNumber.label "Di động:">
+<!ENTITY CellularNumber.accesskey "D">
+
+<!ENTITY Home.tab "Riêng tư">
+<!ENTITY Home.accesskey "R">
+<!ENTITY HomeAddress.label "Địa chỉ:">
+<!ENTITY HomeAddress.accesskey "c">
+<!ENTITY HomeAddress2.label "">
+<!ENTITY HomeAddress2.accesskey "">
+<!ENTITY HomeCity.label "Thành phố:">
+<!ENTITY HomeCity.accesskey "y">
+<!ENTITY HomeState.label "Tỉnh:">
+<!ENTITY HomeState.accesskey "S">
+<!ENTITY HomeZipCode.label "Mã bưu điện/ZIP:">
+<!ENTITY HomeZipCode.accesskey "Z">
+<!ENTITY HomeCountry.label "Quốc gia:">
+<!ENTITY HomeCountry.accesskey "Q">
+<!ENTITY HomeWebPage.label "Trang web:">
+<!ENTITY HomeWebPage.accesskey "W">
+<!ENTITY Birthday.label "Sinh nhật:">
+<!ENTITY Birthday.accesskey "S">
+<!ENTITY Month.placeholder "Tháng">
+<!ENTITY Day.placeholder "Ngày">
+<!ENTITY Year.placeholder "Năm">
+<!ENTITY Age.label "Tuổi:">
+<!ENTITY Age.placeholder "Tuổi">
+
+<!ENTITY Work.tab "Công việc">
+<!ENTITY Work.accesskey "v">
+<!ENTITY JobTitle.label "Tiêu đề:">
+<!ENTITY JobTitle.accesskey "i">
+<!ENTITY Department.label "Bộ phận:">
+<!ENTITY Department.accesskey "m">
+<!ENTITY Company.label "Tổ chức:">
+<!ENTITY Company.accesskey "T">
+<!ENTITY WorkAddress.label "Địa chỉ:">
+<!ENTITY WorkAddress.accesskey "c">
+<!ENTITY WorkAddress2.label "">
+<!ENTITY WorkAddress2.accesskey "">
+<!ENTITY WorkCity.label "Thành phố:">
+<!ENTITY WorkCity.accesskey "y">
+<!ENTITY WorkState.label "Tỉnh:">
+<!ENTITY WorkState.accesskey "S">
+<!ENTITY WorkZipCode.label "Mã bưu điện/ZIP:">
+<!ENTITY WorkZipCode.accesskey "Z">
+<!ENTITY WorkCountry.label "Quốc gia:">
+<!ENTITY WorkCountry.accesskey "Q">
+<!ENTITY WorkWebPage.label "Trang web:">
+<!ENTITY WorkWebPage.accesskey "W">
+
+<!ENTITY Other.tab "Khác">
+<!ENTITY Other.accesskey "K">
+<!ENTITY Custom1.label "Tùy chỉnh 1:">
+<!ENTITY Custom1.accesskey "1">
+<!ENTITY Custom2.label "Tùy chỉnh 2:">
+<!ENTITY Custom2.accesskey "2">
+<!ENTITY Custom3.label "Tùy chỉnh 3:">
+<!ENTITY Custom3.accesskey "3">
+<!ENTITY Custom4.label "Tùy chỉnh 4:">
+<!ENTITY Custom4.accesskey "4">
+<!ENTITY Notes.label "Ghi chú:">
+<!ENTITY Notes.accesskey "N">
+
+<!ENTITY Chat.tab "Trò chuyện">
+<!ENTITY Chat.accesskey "c">
+<!ENTITY Gtalk.label "Google Talk:">
+<!ENTITY Gtalk.accesskey "G">
+<!ENTITY AIM.label "AIM:">
+<!ENTITY AIM2.accesskey "M">
+<!ENTITY Yahoo.label "Yahoo!:">
+<!ENTITY Yahoo.accesskey "Y">
+<!ENTITY Skype.label "Skype:">
+<!ENTITY Skype.accesskey "S">
+<!ENTITY QQ.label "QQ:">
+<!ENTITY QQ.accesskey "Q">
+<!ENTITY MSN.label "MSN:">
+<!ENTITY MSN2.accesskey "M">
+<!ENTITY ICQ.label "ICQ:">
+<!ENTITY ICQ.accesskey "I">
+<!ENTITY XMPP.label "ID Jabber:">
+<!ENTITY XMPP.accesskey "J">
+<!ENTITY IRC.label "Tên IRC:">
+<!ENTITY IRC.accesskey "R">
+
+<!ENTITY Photo.tab "Hình ảnh">
+<!ENTITY Photo.accesskey "o">
+<!ENTITY GenericPhoto.label "Ảnh chung">
+<!ENTITY GenericPhoto.accesskey "G">
+<!ENTITY DefaultPhoto.label "Mặc định">
+<!ENTITY PhotoFile.label "Trên máy tính này">
+<!ENTITY PhotoFile.accesskey "n">
+<!ENTITY BrowsePhoto.label "Duyệt">
+<!ENTITY BrowsePhoto.accesskey "r">
+<!ENTITY PhotoURL.label "Trên mạng">
+<!ENTITY PhotoURL.accesskey "b">
+<!ENTITY PhotoURL.placeholder "Dán hoặc nhập địa chỉ web của ảnh">
+<!ENTITY UpdatePhoto.label "Cập nhật">
+<!ENTITY UpdatePhoto.accesskey "u">
+<!ENTITY PhotoDropTarget.label "Kéo ảnh mới vào đây">
diff --git a/l10n-vi/mail/chrome/messenger/addressbook/abContactsPanel.dtd b/l10n-vi/mail/chrome/messenger/addressbook/abContactsPanel.dtd
new file mode 100644
index 0000000000..88bc818a37
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/addressbook/abContactsPanel.dtd
@@ -0,0 +1,49 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY propertiesMenu.label "Thuộc tính">
+<!ENTITY propertiesMenu.accesskey "i">
+<!ENTITY propertiesCmd.key "i">
+<!ENTITY abPropertiesMenu.label "Thuộc tính sổ địa chỉ">
+<!ENTITY abPropertiesMenu.accesskey "i">
+<!ENTITY contactPropertiesMenu.label "Thuộc tính liên hệ">
+<!ENTITY contactPropertiesMenu.accesskey "i">
+<!ENTITY mailingListPropertiesMenu.label "Thuộc tính danh sách gửi thư">
+<!ENTITY mailingListPropertiesMenu.accesskey "i">
+
+<!ENTITY abContextMenuButton.tooltip "Hiển thị menu ngữ cảnh sổ địa chỉ">
+<!ENTITY addressbookPicker.label "Sổ địa chỉ:">
+<!ENTITY addressbookPicker.accesskey "S">
+<!ENTITY searchContacts.label "Tìm liên lạc:">
+<!ENTITY searchContacts.accesskey "n">
+<!ENTITY SearchNameOrEmail.label "Tên hoặc email">
+
+<!ENTITY addtoToFieldMenu.label "Thêm vào trường Tới">
+<!ENTITY addtoToFieldMenu.accesskey "A">
+<!ENTITY addtoCcFieldMenu.label "Thêm vào trường Cc">
+<!ENTITY addtoCcFieldMenu.accesskey "C">
+<!ENTITY addtoBccFieldMenu.label "Thêm vào trường Bcc">
+<!ENTITY addtoBccFieldMenu.accesskey "B">
+<!ENTITY deleteAddrBookCard.label "Xóa">
+<!ENTITY deleteAddrBookCard.accesskey "D">
+<!ENTITY propertiesContext.label "Thuộc tính">
+<!ENTITY propertiesContext.accesskey "i">
+<!ENTITY abPropertiesContext.label "Thuộc tính">
+<!ENTITY abPropertiesContext.accesskey "i">
+<!ENTITY editContactContext.label "Chỉnh sửa liên hệ">
+<!ENTITY editContactContext.accesskey "E">
+<!ENTITY editMailingListContext.label "Chỉnh sửa danh sách">
+<!ENTITY editMailingListContext.accesskey "E">
+
+<!ENTITY newContactAbContext.label "Liên hệ mới">
+<!ENTITY newContactAbContext.accesskey "C">
+<!ENTITY newListAbContext.label "Danh sách mới">
+<!ENTITY newListAbContext.accesskey "L">
+
+<!ENTITY toButton.label "Thêm vào Tới:">
+<!ENTITY toButton.accesskey "T">
+<!ENTITY ccButton.label "Thêm vào Cc:">
+<!ENTITY ccButton.accesskey "C">
+<!ENTITY bccButton.label "Thêm vào Bcc:">
+<!ENTITY bccButton.accesskey "B">
diff --git a/l10n-vi/mail/chrome/messenger/addressbook/abMailListDialog.dtd b/l10n-vi/mail/chrome/messenger/addressbook/abMailListDialog.dtd
new file mode 100644
index 0000000000..18c5333282
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/addressbook/abMailListDialog.dtd
@@ -0,0 +1,21 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- Title -->
+<!ENTITY mailListWindowAdd.title "Danh sách gửi thư mới">
+
+<!-- Labels and Access Keys -->
+<!ENTITY addToAddressBook.label "Thêm vào: ">
+<!ENTITY addToAddressBook.accesskey "v">
+<!ENTITY ListName.label "Tên danh sách: ">
+<!ENTITY ListName.accesskey "S">
+<!ENTITY ListNickName.label "Biệt hiệu danh sách: ">
+<!ENTITY ListNickName.accesskey "n">
+<!ENTITY ListDescription.label "Mô tả: ">
+<!ENTITY ListDescription.accesskey "M">
+<!-- See bug 58485, when we implement drag and drop, add 'or drag addresses' back in -->
+<!ENTITY AddressTitle.label "Nhập địa chỉ email để thêm chúng vào danh sách thư:">
+<!ENTITY AddressTitle.accesskey "m">
+<!ENTITY UpButton.label "Di chuyển lên">
+<!ENTITY DownButton.label "Di chuyển xuống">
diff --git a/l10n-vi/mail/chrome/messenger/addressbook/abMainWindow.dtd b/l10n-vi/mail/chrome/messenger/addressbook/abMainWindow.dtd
new file mode 100644
index 0000000000..d285a4d29d
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/addressbook/abMainWindow.dtd
@@ -0,0 +1,221 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY addressbookWindow.title "Sổ địa chỉ">
+<!ENTITY blankResultsPaneMessage.label "Sổ địa chỉ này chỉ hiển thị liên hệ sau khi tìm kiếm">
+<!ENTITY localResultsOnlyMessage.label "Liên hệ từ sổ địa chỉ từ xa không được hiển thị cho đến khi bạn tìm kiếm">
+
+<!-- File Menu -->
+<!ENTITY fileMenu.label "Tập tin">
+<!ENTITY fileMenu.accesskey "T">
+<!ENTITY newMenu.label "Mới">
+<!ENTITY newMenu.accesskey "M">
+<!ENTITY newContact.label "Liên hệ trong sổ địa chỉ…">
+<!ENTITY newContact.accesskey "c">
+<!ENTITY newContact.key "N">
+<!ENTITY newListCmd.label "Danh sách thư…">
+<!ENTITY newListCmd.accesskey "D">
+<!ENTITY newAddressBookCmd.label "Sổ địa chỉ…">
+<!ENTITY newAddressBookCmd.accesskey "S">
+<!ENTITY newCardDAVBookCmd.label "Sổ địa chỉ CardDAV…">
+<!ENTITY newCardDAVBookCmd.accesskey "V">
+<!ENTITY newLDAPDirectoryCmd.label "Thư mục LDAP…">
+<!ENTITY newLDAPDirectoryCmd.accesskey "L">
+<!ENTITY newMessageCmd.label "Thư">
+<!ENTITY newMessageCmd.key "M">
+<!ENTITY newMessageCmd.accesskey "T">
+<!-- LOCALIZATION NOTE (osxAddressBook) : These entities are only used on Mac -->
+<!ENTITY osxAddressBook.label "Sử dụng sổ địa chỉ Mac OS X">
+<!ENTITY osxAddressBook.accesskey "O">
+<!ENTITY closeCmd.label "Đóng">
+<!ENTITY closeCmd.key "W">
+<!ENTITY closeCmd.accesskey "g">
+<!ENTITY printSetupCmd.label "Thiết lập trang…">
+<!ENTITY printSetupCmd.accesskey "p">
+<!ENTITY printPreviewContactCmd.label "Xem trước bản in danh bạ">
+<!ENTITY printPreviewContactCmd.accesskey "X">
+<!ENTITY printPreviewAddressBook.label "Xem trước bản in sổ địa chỉ">
+<!ENTITY printPreviewAddressBook.accesskey "a">
+<!ENTITY printContactCmd.label "In danh bạ…">
+<!ENTITY printContactCmd.accesskey "I">
+<!ENTITY printContactCmd.key "P">
+<!ENTITY printAddressBook.label "In sổ địa chỉ…">
+<!ENTITY printAddressBook.accesskey "S">
+
+<!-- Edit Menu -->
+<!ENTITY editMenu.label "Chỉnh sửa">
+<!ENTITY editMenu.accesskey "E">
+<!ENTITY deleteCmd.label "Xóa">
+<!ENTITY deleteAbCmd.label "Xóa sổ địa chỉ">
+<!ENTITY deleteContactCmd.label "Xóa Danh Bạ">
+<!ENTITY deleteContactsCmd.label "Xóa Danh Bạ">
+<!ENTITY deleteListCmd.label "Xóa danh sách">
+<!ENTITY deleteListsCmd.label "Xóa các danh sách">
+<!ENTITY deleteItemsCmd.label "Xóa Các Mục">
+<!ENTITY searchAddressesCmd.key "f">
+<!ENTITY propertiesMenu.label "Thuộc tính">
+<!ENTITY propertiesMenu.accesskey "i">
+<!ENTITY propertiesCmd.key "i">
+<!ENTITY abPropertiesMenu.label "Thuộc tính sổ địa chỉ">
+<!ENTITY abPropertiesMenu.accesskey "i">
+<!ENTITY contactPropertiesMenu.label "Thuộc tính liên hệ">
+<!ENTITY contactPropertiesMenu.accesskey "i">
+<!ENTITY mailingListPropertiesMenu.label "Thuộc tính danh sách gửi thư">
+<!ENTITY mailingListPropertiesMenu.accesskey "i">
+
+<!-- View Menu -->
+<!ENTITY viewMenu.label "Hiển thị">
+<!ENTITY viewMenu.accesskey "H">
+<!ENTITY viewToolbarsMenu.label "Thanh công cụ">
+<!ENTITY viewToolbarsMenu.accesskey "C">
+<!ENTITY menubarCmd.label "Thanh menu">
+<!ENTITY menubarCmd.accesskey "M">
+<!ENTITY showAbToolbarCmd.label "Thanh công cụ sổ địa chỉ">
+<!ENTITY showAbToolbarCmd.accesskey "S">
+<!ENTITY showTaskbarCmd.label "Thanh trạng thái">
+<!ENTITY showTaskbarCmd.accesskey "a">
+<!ENTITY customizeToolbar.label "Tùy biến…">
+<!ENTITY customizeToolbar.accesskey "b">
+<!ENTITY layoutMenu.label "Bố cục">
+<!ENTITY layoutMenu.accesskey "L">
+<!ENTITY showDirectoryPane.label "Ngăn thư mục">
+<!ENTITY showDirectoryPane.accesskey "D">
+<!ENTITY showContactPane2.label "Ngăn liên lạc">
+<!ENTITY showContactPane2.accesskey "C">
+<!ENTITY menu_ShowNameAs.label "Hiện tên dưới dạng">
+<!ENTITY menu_ShowNameAs.accesskey "T">
+<!-- LOCALIZATION NOTE (firstLastCmd2.label): We're not including a comma here
+because displayed names don't have the comma in between. -->
+<!ENTITY firstLastCmd2.label "Tên Họ">
+<!ENTITY firstLastCmd2.accesskey "F">
+<!ENTITY lastFirstCmd.label "Họ, Tên">
+<!ENTITY lastFirstCmd.accesskey "H">
+<!ENTITY displayNameCmd.label "Tên hiển thị">
+<!ENTITY displayNameCmd.accesskey "i">
+<!ENTITY sortMenu.label "Sắp xếp theo">
+<!ENTITY sortMenu.accesskey "S">
+
+<!-- Tools Menu -->
+<!ENTITY tasksMenu.label "Công cụ">
+<!ENTITY tasksMenu.accesskey "C">
+<!ENTITY messengerCmd.label "Thư &amp; nhóm tin">
+<!ENTITY messengerCmd.accesskey "T">
+<!ENTITY messengerCmd.commandkey "1">
+<!ENTITY searchAddressesCmd.label "Tìm kiếm địa chỉ…">
+<!ENTITY searchAddressesCmd.accesskey "m">
+<!ENTITY importCmd.label "Nhập…">
+<!ENTITY importCmd.accesskey "N">
+<!ENTITY exportCmd.label "Xuất…">
+<!ENTITY exportCmd.accesskey "X">
+<!ENTITY preferencesCmd2.label "Tùy chọn">
+<!ENTITY preferencesCmd2.accesskey "O">
+<!ENTITY preferencesCmdUnix.label "Tùy chỉnh">
+<!ENTITY preferencesCmdUnix.accesskey "y">
+
+<!-- Address Book Toolbar and Context Menus -->
+<!ENTITY newContactButton.label "Liên hệ mới">
+<!ENTITY newContactButton.accesskey "b">
+<!ENTITY newlistButton.label "Danh sách mới">
+<!ENTITY newlistButton.accesskey "D">
+<!ENTITY showAsDefault.label "Thư mục khởi động mặc định">
+<!ENTITY showAsDefault.accesskey "S">
+<!ENTITY editPropertiesButton.label "Chỉnh sửa">
+<!ENTITY propertiesContext.label "Thuộc tính">
+<!ENTITY propertiesContext.accesskey "i">
+<!ENTITY abPropertiesContext.label "Thuộc tính">
+<!ENTITY abPropertiesContext.accesskey "i">
+<!ENTITY syncContext.label "Đồng bộ hoá">
+<!ENTITY syncContext.accesskey "y">
+<!ENTITY editContactContext.label "Chỉnh sửa liên hệ">
+<!ENTITY editContactContext.accesskey "E">
+<!ENTITY editMailingListContext.label "Chỉnh sửa danh sách">
+<!ENTITY editMailingListContext.accesskey "E">
+<!ENTITY newmsgButton.label "Viết thư">
+<!ENTITY newmsgButton.accesskey "V">
+<!ENTITY newIM.label "Tin nhắn nhanh">
+<!ENTITY newIM.accesskey "i">
+<!ENTITY printButton.label "In…">
+<!ENTITY printButton.accesskey "r">
+<!ENTITY deleteButton2.label "Xóa">
+<!ENTITY deleteButton2.accesskey "X">
+
+<!-- Address Book Toolbar Tooltips -->
+<!ENTITY columnChooser.tooltip "Chọn các cột để hiển thị">
+<!ENTITY newContactButton.tooltip "Tạo một tên liên hệ mới trên sổ địa chỉ">
+<!ENTITY newlistButton.tooltip "Tạo một danh sách mới">
+<!ENTITY editPropertiesButton.tooltip "Chỉnh sửa mục đã chọn">
+<!ENTITY editAbPropertiesButton.tooltip "Chỉnh sửa các thuộc tính của sổ địa chỉ đã chọn">
+<!ENTITY editContactPropertiesButton.tooltip "Chỉnh sửa liên hệ đã chọn">
+<!ENTITY editMailingListPropertiesButton.tooltip "Chỉnh sửa danh sách gửi thư đã chọn">
+<!ENTITY newmsgButton.tooltip "Gửi một lá thư">
+<!ENTITY newIM.tooltip "Gửi tin nhắn nhanh hoặc chat">
+<!ENTITY deleteButton2.tooltip "Xóa mục đã chọn">
+
+<!-- Search Bar -->
+<!ENTITY SearchNameOrEmail.label "Tên hoặc Email">
+<!ENTITY SearchNameOrEmail.accesskey "n">
+<!ENTITY advancedButton.tooltip "Tìm kiếm địa chỉ nâng cao">
+<!ENTITY quickSearchCmd.key "k">
+<!ENTITY searchItem.title "Tìm Nhanh">
+
+<!-- Results Pane -->
+<!ENTITY Addrbook.label "Sổ địa chỉ">
+<!ENTITY Addrbook.accesskey "B">
+<!ENTITY GeneratedName.label "Tên">
+<!ENTITY GeneratedName.accesskey "T">
+<!ENTITY PrimaryEmail.label "Email">
+<!ENTITY PrimaryEmail.accesskey "E">
+<!ENTITY ChatName.label "Tên trò chuyện">
+<!ENTITY ChatName.accesskey "C">
+<!ENTITY Company.label "Tổ chức">
+<!ENTITY Company.accesskey "h">
+<!ENTITY NickName.label "Tên hiệu">
+<!ENTITY NickName.accesskey "u">
+<!ENTITY SecondEmail.label "Email phụ">
+<!ENTITY SecondEmail.accesskey "P">
+<!ENTITY Department.label "Bộ phận">
+<!ENTITY Department.accesskey "B">
+<!ENTITY JobTitle.label "Chức vụ">
+<!ENTITY JobTitle.accesskey "C">
+<!ENTITY CellularNumber.label "Di động">
+<!ENTITY CellularNumber.accesskey "D">
+<!ENTITY PagerNumber.label "Máy nhắn tin">
+<!ENTITY PagerNumber.accesskey "M">
+<!ENTITY FaxNumber.label "Fax">
+<!ENTITY FaxNumber.accesskey "F">
+<!ENTITY HomePhone.label "Điện thoại nhà">
+<!ENTITY HomePhone.accesskey "H">
+<!ENTITY WorkPhone.label "Điện thoại công ty">
+<!ENTITY WorkPhone.accesskey "W">
+<!ENTITY sortAscending.label "Tăng dần">
+<!ENTITY sortAscending.accesskey "A">
+<!ENTITY sortDescending.label "Giảm dần">
+<!ENTITY sortDescending.accesskey "D">
+<!ENTITY _PhoneticName.label "Tên ngữ âm">
+<!ENTITY _PhoneticName.accesskey "o">
+
+<!-- Card Summary Pane -->
+<!-- Box Headings -->
+<!ENTITY contact.heading "Danh bạ">
+<!ENTITY home.heading "Nhà">
+<!ENTITY other.heading "Khác">
+<!ENTITY chat.heading "Trò chuyện">
+<!ENTITY phone.heading "Điện thoại">
+<!ENTITY work.heading "Công ty">
+<!-- Special Box Headings, for mailing lists -->
+<!ENTITY description.heading "Mô tả">
+<!ENTITY addresses.heading "Địa chỉ">
+<!-- For Map It! -->
+<!ENTITY mapItButton.label "Lấy Bản Đồ">
+<!ENTITY mapIt.tooltip "Hiển thị bản đồ của địa chỉ này trên Web">
+
+<!-- Status Bar -->
+<!ENTITY statusText.label "">
+
+<!-- Mac OS X Window Menu -->
+<!ENTITY windowMenu.label "Cửa sổ">
+<!ENTITY minimizeWindow.label "Thu nhỏ">
+<!ENTITY minimizeWindow.key "m">
+<!ENTITY bringAllToFront.label "Đưa Tất Cả ra Tiền Cảnh">
+<!ENTITY zoomWindow.label "Thu phóng">
diff --git a/l10n-vi/mail/chrome/messenger/addressbook/abNewCardDialog.dtd b/l10n-vi/mail/chrome/messenger/addressbook/abNewCardDialog.dtd
new file mode 100644
index 0000000000..faf031507b
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/addressbook/abNewCardDialog.dtd
@@ -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/. -->
+
+<!-- Labels -->
+<!ENTITY chooseAddressBook.label "Thêm vào: ">
+<!ENTITY chooseAddressBook.accesskey "v">
+
diff --git a/l10n-vi/mail/chrome/messenger/addressbook/abResultsPane.dtd b/l10n-vi/mail/chrome/messenger/addressbook/abResultsPane.dtd
new file mode 100644
index 0000000000..3917e213a8
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/addressbook/abResultsPane.dtd
@@ -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/. -->
+
+<!ENTITY Addrbook.label "Sổ địa chỉ">
+<!ENTITY Addrbook.accesskey "B">
+<!ENTITY GeneratedName.label "Tên">
+<!ENTITY GeneratedName.accesskey "N">
+<!ENTITY PrimaryEmail.label "Email">
+<!ENTITY PrimaryEmail.accesskey "E">
+<!ENTITY Company.label "Tổ chức">
+<!ENTITY Company.accesskey "z">
+<!ENTITY _PhoneticName.label "Tên ngữ âm">
+<!ENTITY _PhoneticName.accesskey "o">
+<!ENTITY NickName.label "Biệt danh">
+<!ENTITY NickName.accesskey "i">
+<!ENTITY SecondEmail.label "Email phụ">
+<!ENTITY SecondEmail.accesskey "l">
+<!ENTITY Department.label "Bộ phận">
+<!ENTITY Department.accesskey "r">
+<!ENTITY JobTitle.label "Chức vụ">
+<!ENTITY JobTitle.accesskey "T">
+<!ENTITY CellularNumber.label "Di động">
+<!ENTITY CellularNumber.accesskey "M">
+<!ENTITY PagerNumber.label "Máy nhắn tin">
+<!ENTITY PagerNumber.accesskey "P">
+<!ENTITY FaxNumber.label "Fax">
+<!ENTITY FaxNumber.accesskey "F">
+<!ENTITY HomePhone.label "Điện thoại nhà">
+<!ENTITY HomePhone.accesskey "H">
+<!ENTITY WorkPhone.label "Điện thoại công ty">
+<!ENTITY WorkPhone.accesskey "W">
+<!ENTITY ChatName.label "Tên trò chuyện:">
+<!ENTITY ChatName.accesskey "C">
+<!ENTITY sortAscending.label "Tăng dần">
+<!ENTITY sortAscending.accesskey "A">
+<!ENTITY sortDescending.label "Giảm dần">
+<!ENTITY sortDescending.accesskey "D">
diff --git a/l10n-vi/mail/chrome/messenger/addressbook/addressBook.properties b/l10n-vi/mail/chrome/messenger/addressbook/addressBook.properties
new file mode 100644
index 0000000000..6e6002da23
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/addressbook/addressBook.properties
@@ -0,0 +1,262 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 are used by the Mailing list dialog.
+# LOCALIZATION NOTE (mailingListTitleEdit): %S will be replaced by the Mailing List's display name.
+mailingListTitleEdit=Chỉnh sửa %S
+emptyListName=Bạn phải nhập tên danh sách.
+badListNameCharacters=Tên danh sách không thể chứa bất kỳ ký tự nào sau đây: < > ; , "
+badListNameSpaces=Tên danh sách không thể chứa nhiều khoảng trắng liền kề.
+lastFirstFormat=%S %S
+firstLastFormat=%S %S
+
+allAddressBooks=Tất cả các sổ địa chỉ
+
+newContactTitle=Danh bạ Mới
+# %S will be the contact's display name
+newContactTitleWithDisplayName=Danh bạ Mới cho %S
+editContactTitle=Chỉnh sửa liên hệ
+# %S will be the contact's display name
+editContactTitleWithDisplayName=Chỉnh sửa liên hệ cho %S
+# don't translate vCard
+editVCardTitle=Chỉnh sửa vCard
+# %S will be the card's display name, don't translate vCard
+editVCardTitleWithDisplayName=Chỉnh sửa vCard cho %S
+
+## LOCALIZATION NOTE (cardRequiredDataMissingMessage): do not localize \n
+cardRequiredDataMissingMessage=Bạn phải nhập ít nhất một trong các mục sau:\nĐịa chỉ email, tên, họ, tên hiển thị, tổ chức.
+cardRequiredDataMissingTitle=Thiếu Thông tin Bắt buộc
+incorrectEmailAddressFormatMessage=Địa chỉ email chính phải có dạng tên@máychủ.
+incorrectEmailAddressFormatTitle=Định dạng Địa chỉ Email Không đúng
+
+viewListTitle=Danh sách thư :%S
+mailListNameExistsTitle=Danh sách thư đã tồn tại
+mailListNameExistsMessage=Một danh sách gửi thư với tên đó đã tồn tại. Vui lòng chọn một tên khác.
+
+confirmDeleteThisContactTitle=Xóa liên hệ
+# LOCALIZATION NOTE (confirmDeleteThisContact):
+# #1 The name of the selected contact
+# Don't localize "\n• #1" unless your local layout comes out wrong.
+# Example: Are you sure you want to delete this contact?
+# • John Doe
+confirmDeleteThisContact=Bạn có chắc chắn muốn xóa liên hệ này?\n• #1
+
+confirmDelete2orMoreContactsTitle=Xóa nhiều liên hệ
+# LOCALIZATION NOTE (confirmDelete2orMoreContacts):
+# Semicolon list of plural forms.
+# See: https://developer.mozilla.org/docs/Localization_and_Plurals
+# #1 The number of selected contacts, always more than 1.
+# Example: Are you sure you want to delete these 3 contacts?
+confirmDelete2orMoreContacts=Bạn có chắc chắn muốn xóa #1 liên hệ này không?
+
+confirmRemoveThisContactTitle=Xóa liên hệ
+# LOCALIZATION NOTE (confirmRemoveThisContact):
+# #1 The name of the selected contact
+# #2 The name of the containing mailing list
+# This title is about a contact in a mailing list, so it will not be deleted,
+# but only removed from the list.
+# Don't localize "\n• #1" unless your local layout comes out wrong.
+# Example: Are you sure you want to remove this contact from the mailing list 'Customers List'?
+# • John Doe
+confirmRemoveThisContact=Bạn có chắc chắn muốn xóa liên hệ này khỏi danh sách gửi thư '#2' không?\n• #1
+
+confirmRemove2orMoreContactsTitle=Xóa nhiều liên hệ
+# LOCALIZATION NOTE (confirmRemove2orMoreContacts):
+# Semicolon list of singular and plural forms.
+# See: https://developer.mozilla.org/docs/Localization_and_Plurals
+# #1 The number of selected contacts, always more than 1.
+# #2 The name of the containing mailing list
+# Example: Are you sure you want to remove these 3 contacts from the mailing list 'Customers List'?
+confirmRemove2orMoreContacts=Bạn có chắc chắn muốn xóa #1 liên hệ này khỏi danh sách gửi thư '#2' không?
+
+confirmDeleteThisMailingListTitle=Xóa danh sách gửi thư
+# LOCALIZATION NOTE (confirmDeleteThisMailingList):
+# #1 The name of the selected mailing list
+# Don't localize "\n• #1" unless your local layout comes out wrong.
+# Example: Are you sure you want to delete this mailing list?
+# • Customers List
+confirmDeleteThisMailingList=Bạn có chắc chắn muốn xóa danh sách gửi thư này không?\n• #1
+
+confirmDelete2orMoreMailingListsTitle=Xóa nhiều danh sách gửi thư
+# LOCALIZATION NOTE (confirmDelete2orMoreMailingLists):
+# Semicolon list of plural forms.
+# See: https://developer.mozilla.org/docs/Localization_and_Plurals
+# #1 The number of selected mailing lists, always more than 1
+# Example: Are you sure you want to delete these 3 mailing lists?
+confirmDelete2orMoreMailingLists=Bạn có chắc chắn muốn xóa #1 danh sách gửi thư này không?
+
+confirmDelete2orMoreContactsAndListsTitle=Xóa danh sách liên hệ và danh sách gửi thư
+# LOCALIZATION NOTE (confirmDelete2orMoreContactsAndLists):
+# Semicolon list of and plural forms.
+# See: https://developer.mozilla.org/docs/Localization_and_Plurals
+# #1 The number of selected contacts and mailing lists, always more than 1
+# Example: Are you sure you want to delete these 3 contacts and mailing lists?
+confirmDelete2orMoreContactsAndLists=Bạn có chắc chắn muốn xóa #1 liên lạc và danh sách gửi thư này không?
+
+confirmDeleteThisAddressbookTitle=Xóa sổ địa chỉ
+# LOCALIZATION NOTE (confirmDeleteThisAddressbookTitle):
+# #1 The name of the selected address book
+# Don't localize "\n• #1" unless your local layout comes out wrong.
+# Example: Are you sure you want to delete this address book and all of its contacts?
+# • Friends and Family Address Book
+confirmDeleteThisAddressbook=Bạn có chắc chắn muốn xóa sổ địa chỉ này và tất cả các địa chỉ liên hệ của nó không?\n• #1
+
+confirmDeleteThisLDAPDirTitle=Xóa thư mục LDAP cục bộ
+# LOCALIZATION NOTE (confirmDeleteThisLDAPDir):
+# #1 The name of the selected LDAP directory
+# Don't localize "\n• #1" unless your local layout comes out wrong.
+# Example: Are you sure you want to delete the local copy of this LDAP directory and all of its offline contacts?
+# • Mozilla LDAP Directory
+confirmDeleteThisLDAPDir=Bạn có chắc chắn muốn xóa bản sao cục bộ của thư mục LDAP này và tất cả các liên hệ ngoại tuyến của nó không?\n• #1
+
+confirmDeleteThisCollectionAddressbookTitle=Xóa sổ địa chỉ bộ sưu tập
+# LOCALIZATION NOTE (confirmDeleteThisCollectionAddressbook):
+# #1 The name of the selected collection address book
+# #2 The name of the application (Thunderbird)
+# Don't localize "\n• #1" unless your local layout comes out wrong.
+# Example: If this address book is deleted, Thunderbird will no longer collect addresses.
+# Are you sure you want to delete this address book and all of its contacts?
+# • My Collecting Addressbook
+confirmDeleteThisCollectionAddressbook=Nếu sổ địa chỉ này bị xóa, #2 sẽ không còn thu thập địa chỉ.\nBạn có chắc chắn muốn xóa sổ địa chỉ này và tất cả các địa chỉ liên hệ của nó không?\n• #1
+
+propertyPrimaryEmail=Email
+propertyListName=Tên danh sách
+propertySecondaryEmail=Email phụ
+propertyNickname=Tên hiệu
+propertyDisplayName=Tên hiển thị
+propertyWork=Công ty
+propertyHome=Nhà
+propertyFax=Fax
+propertyCellular=Di động
+propertyPager=Máy nhắn tin
+propertyBirthday=Ngày sinh
+propertyCustom1=Tùy chỉnh 1
+propertyCustom2=Tùy chỉnh 2
+propertyCustom3=Tùy chỉnh 3
+propertyCustom4=Tùy chỉnh 4
+
+propertyGtalk=Google Talk
+propertyAIM=AIM
+propertyYahoo=Yahoo!
+propertySkype=Skype
+propertyQQ=QQ
+propertyMSN=MSN
+propertyICQ=ICQ
+propertyXMPP=ID Jabber
+propertyIRC=Tên IRC
+
+## LOCALIZATION NOTE (cityAndStateAndZip):
+## %1$S is city, %2$S is state, %3$S is zip
+cityAndStateAndZip=%1$S, %2$S %3$S
+## LOCALIZATION NOTE (cityAndStateNoZip):
+## %1$S is city, %2$S is state
+cityAndStateNoZip=%1$S, %2$S
+## LOCALIZATION NOTE (cityOrStateAndZip):
+## %1$S is city or state, %2$S is zip
+cityOrStateAndZip=%1$S %2$S
+
+stateZipSeparator=
+
+prefixTo=Tới
+prefixCc=Cc
+prefixBcc=Bcc
+addressBook=Sổ địa chỉ
+
+# Contact photo management
+browsePhoto=Ảnh của Đối tác
+stateImageSave=Đang lưu hình ảnh…
+errorInvalidUri=Lỗi: Hình ảnh nguồn không hợp lệ.
+errorNotAvailable=Lỗi: Không thể truy cập tập tin.
+errorInvalidImage=Lỗi: Chỉ hỗ trợ các loại hình ảnh JPG, PNG và GIF.
+errorSaveOperation=Lỗi: Không thể lưu hình ảnh.
+
+# mailnews.js
+ldap_2.servers.pab.description=Sổ địa chỉ cá nhân
+ldap_2.servers.history.description=Sổ địa chỉ đã thu thập
+## LOCALIZATION NOTE (ldap_2.servers.osx.description is only used on Mac OS X)
+ldap_2.servers.osx.description=Sổ địa chỉ Mac OS X
+
+# status bar stuff
+## LOCALIZATION NOTE (totalContactStatus):
+## %1$S is address book name, %2$S is contact count
+totalContactStatus=Tổng danh bạ trong %1$S: %2$S
+noMatchFound=Không tìm thấy
+## LOCALIZATION NOTE (matchesFound1):
+## Semicolon-separated list of singular and plural forms.
+## See: https://developer.mozilla.org/docs/Mozilla/Localization/Localization_and_Plurals
+## #1 is the number of matching contacts found
+matchesFound1=#1 kết quả phù hợp
+
+## LOCALIZATION NOTE (contactsCopied): Semi-colon list of plural forms
+## %1$S is the number of contacts that were copied. This should be used multiple
+## times wherever you need it. Do not replace by %S.
+contactsCopied=%1$S tên liên hệ đã được chép;%1$S tên liên hệ đã được chép
+
+## LOCALIZATION NOTE (contactsMoved): Semi-colon list of plural forms
+## %1$S is the number of contacts that were moved. This should be used multiple
+## times wherever you need it. Do not replace by %S.
+contactsMoved=%1$S tên liên hệ đã được di chuyển;%1$S tên liên hệ đã được di chuyển
+
+# LDAP directory stuff
+invalidName=Vui lòng nhập một Tên hợp lệ.
+invalidHostname=Vui lòng nhập một Tên Máy Chủ hợp lệ.
+invalidPortNumber=Vui lòng nhập một Số Cổng hợp lệ.
+invalidResults=Vui lòng nhập một số hợp lệ vào trường kết quả.
+abReplicationOfflineWarning=Bạn phải trực tuyến để thực hiện sao chép LDAP.
+abReplicationSaveSettings=Thiết lập phải được lưu trước khi tải một thư mục.
+
+# For importing / exporting
+## LOCALIZATION NOTE (ExportAddressBookNameTitle): %S is the name of exported addressbook
+ExportAddressBookNameTitle=Xuất sổ địa chỉ - %S
+LDIFFiles=LDIF
+CSVFiles=Phân cách bằng Dấu phẩy
+CSVFilesSysCharset=Phân tách bằng dấu phẩy (Bộ ký tự hệ thống)
+CSVFilesUTF8=Phân tách bằng dấu phẩy (UTF-8)
+TABFiles=Phân cách bằng Tab
+TABFilesSysCharset=Tách bằng Tab (Bộ ký tự hệ thống)
+TABFilesUTF8=Tách bằng Tab (UTF-8)
+VCFFiles=vCard
+SupportedABFiles=Tập tin sổ địa chỉ được hỗ trợ
+failedToExportTitle=Việc xuất Thất bại
+failedToExportMessageNoDeviceSpace=Thất bại khi xuất sổ địa chỉ, không đủ dung lượng trên thiết bị.
+failedToExportMessageFileAccessDenied=Thất bại khi xuất sổ địa chỉ, truy cập tập tin bị từ chối.
+
+# For getting authDN for replication using dlg box
+AuthDlgTitle=Sao chép sổ địa chỉ LDAP
+AuthDlgDesc=Để truy cập máy chủ thư mục, hãy nhập tên và mật khẩu của bạn.
+
+# LOCALIZATION NOTE(joinMeInThisChat)
+# use + for spaces
+joinMeInThisChat=Tham+gia+Chat+với+tôi.
+
+# For printing
+headingHome=Nhà
+headingWork=Công ty
+headingOther=Khác
+headingChat=Trò chuyện
+headingPhone=Điện thoại
+headingDescription=Mô tả
+headingAddresses=Địa chỉ
+
+## For address books
+addressBookTitleNew=Sổ địa chỉ mới
+# LOCALIZATION NOTE (addressBookTitleEdit):
+# %S is the current name of the address book.
+# Example: My Custom AB Properties
+addressBookTitleEdit=Thuộc tính %S
+duplicateNameTitle=Tên sổ địa chỉ trùng lặp
+# LOCALIZATION NOTE (duplicateNameText):
+# Don't localize "\n• %S" unless your local layout comes out wrong.
+# %S is the name of the existing address book.
+# Example: An address book with this name already exists:
+# • My Custom AB
+duplicateNameText=Một sổ địa chỉ có tên này đã tồn tại:\n• %S
+
+# For corrupt .mab files
+corruptMabFileTitle=Tập tin sổ địa chỉ bị hỏng
+corruptMabFileAlert=Không thể đọc một trong các tập tin sổ địa chỉ (tập tin %1$S). Một tập tin %2$S sẽ được tạo và một bản sao của tập tin cũ, gọi là %3$S, sẽ được tạo trong cùng thư mục.
+
+# For locked .mab files
+lockedMabFileTitle=Không thể mở tập tin sổ địa chỉ
+lockedMabFileAlert=Không thể mở tập tin sổ địa chỉ %S. Nó có tính chỉ-đọc, hoặc đã bị khóa bởi chương trình khác. Vui lòng thử lại sau.
diff --git a/l10n-vi/mail/chrome/messenger/addressbook/ldapAutoCompErrs.properties b/l10n-vi/mail/chrome/messenger/addressbook/ldapAutoCompErrs.properties
new file mode 100644
index 0000000000..0e6db5943b
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/addressbook/ldapAutoCompErrs.properties
@@ -0,0 +1,104 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 are error strings for problems that happen while in the
+# various states declared in nsILDAPAutoCompFormatter.idl. Note that
+# the number that indexes each error state is the same as the number
+# corresponding to that state in nsILDAPAutoCompFormatter.idl.
+
+## @name ERR_STATE_UNBOUND
+## @loc none
+0=Sự cố khi khởi tạo LDAP
+
+## @name ERR_STATE_INITIALIZING
+## @loc none
+1=Kết nối máy chủ LDAP bị thất bại
+
+## @name ERR_STATE_BINDING
+## @loc none
+2=Kết nối máy chủ LDAP bị thất bại
+
+## @name ERR_STATE_BOUND
+## @loc none
+3=Vấn đề khi liên lạc máy chủ LDAP
+
+## @name ERR_STATE_SEARCHING
+## @loc none
+4=Vấn đề khi tìm kiếm máy chủ LDAP
+
+
+# The format of the alert dialog itself
+#
+## @name ALERT_FORMAT
+## @loc None of %1$S, %2$S and %3$S should be localized.
+## %1$S is the error code itself, %2$S is an LDAP SDK error message from
+## chrome://mozldap/locale/ldap.properties, and %3$S is a hint relating
+## to that specific error, found in this file.
+errorAlertFormat=Mã lỗi %1$S: %2$S\n\n %3$S
+
+## The following errors are for error codes other than LDAP-specific ones.
+## Someday mozilla will actually have a system for mapping nsresults to
+## error strings that's actually widely used, unlike nsIErrorService. But
+## until it does, these strings live here...
+
+## @name HOST_NOT_FOUND
+## @loc none
+5000=Không tìm thấy máy chủ
+
+## @name GENERIC_ERROR
+## @loc none
+9999=Lỗi chưa biết
+
+
+# Hints to for the user, associated with specific error codes (ie error code
+# + 10000)
+
+
+## @name TIMELIMIT_EXCEEDED_HINT
+## @loc none
+10003=Vui lòng thử lại sau, hoặc liên hệ Quản trị viên Hệ thống của bạn.
+
+## @name STRONGAUTH_REQUIRED_HINT
+## @loc none
+10008=Xác minh mức độ mạnh hiện chưa được hỗ trợ.
+
+## @name INVALID_SYNTAX_HINT
+## @loc none
+10021=Xác minh rằng bộ lọc tìm kiếm là chính xác, sau đó thử lại hoặc liên hệ với quản trị viên hệ thống của bạn. Để xác minh rằng bộ lọc tìm kiếm là chính xác, từ menu Chỉnh sửa, chọn Tùy chọn, sau đó chọn Thư & Nhóm tin, sau đó chọn Địa chỉ. Nhấp vào Chỉnh sửa thư mục và chọn máy chủ LDAP đang được sử dụng. Bấm Chỉnh sửa, rồi bấm Nâng cao để hiển thị Bộ lọc tìm kiếm.
+
+## @name NO_SUCH_OBJECT_HINT
+## @loc none
+10032=Xác minh xem Base DN đã đúng chưa, rồi hãy thử lại, hoặc liên hệ với Quản trị viên Hệ thống của bạn. Để xác minh Base DN, từ trình đơn Chỉnh sửa, chọn Tùy chỉnh, rồi chọn Thư & Nhóm tin, rồi chọn Xác định Địa chỉ. Nhấn Chỉnh sửa Thư mục, và chọn máy chủ LDAP đang dùng. Nhấn Chỉnh sửa để hiển thị Base DN.
+
+## @name BUSY_HINT
+## @loc none
+10051=Vui lòng thử lại sau.
+
+## @name SERVER_DOWN_HINT
+## @loc none
+10081=Xác minh xem Tên Máy Chủ và Số Cổng đã đúng chưa, rồi hãy thử lại, hoặc liên hệ với Quản trị viên Hệ thống của bạn. Để xác minh Tên Máy Chủ và Số Cổng, từ trình đơn Chỉnh sửa, chọn Tùy chỉnh, rồi chọn Thư & Nhóm tin, rồi chọn Xác định Địa chỉ. Nhấn Chỉnh sửa Thư mục, và chọn máy chủ LDAP đang dùng. Nhấn Chỉnh sửa để hiển thị Tên Máy Chủ. Nhấn Nâng cao để hiển thị Số Cổng.
+
+## @name TIMEOUT_HINT
+## @loc none
+10085=Vui lòng thử lại sau.
+
+## @name FILTER_ERROR_HINT
+## @loc none
+10087=Xác minh rằng bộ lọc tìm kiếm là chính xác, sau đó thử lại hoặc liên hệ với quản trị viên hệ thống của bạn. Để xác minh rằng bộ lọc tìm kiếm là chính xác, từ menu Chỉnh sửa, chọn Tùy chọn, sau đó chọn Thư & Nhóm tin, sau đó chọn Địa chỉ. Nhấp vào Chỉnh sửa thư mục và chọn máy chủ LDAP đang được sử dụng. Bấm Chỉnh sửa, rồi bấm Nâng cao để hiển thị Bộ lọc tìm kiếm.
+
+## @name NO_MEMORY_HINT
+## @loc none
+10090=Vui lòng đóng cửa sổ và/hoặc chương trình khác rồi thử lại.
+
+## @name CONNECT_ERROR_HINT
+## @loc none
+10091=Xác minh xem Tên Máy Chủ và Số Cổng đã đúng chưa, rồi hãy thử lại, hoặc liên hệ với Quản trị viên Hệ thống của bạn. Để xác minh Tên Máy Chủ và Số Cổng, từ trình đơn Chỉnh sửa, chọn Tùy chỉnh, rồi chọn Thư & Nhóm tin, rồi chọn Xác định Địa chỉ. Nhấn Chỉnh sửa Thư mục, và chọn máy chủ LDAP đang dùng. Nhấn Chỉnh sửa để hiển thị Tên Máy Chủ. Nhấn Nâng cao để hiển thị Số Cổng.
+
+## @name HOST_NOT_FOUND_HINT
+## @loc none
+15000=Xác minh xem Tên Máy Chủ đã đúng chưa, rồi hãy thử lại, hoặc liên hệ với Quản trị viên Hệ thống của bạn. Để xác minh Tên Máy Chủ, từ trình đơn Chỉnh sửa, chọn Tùy chỉnh, rồi chọn Thư & Nhóm tin, rồi chọn Xác định Địa chỉ. Nhấn Chỉnh sửa Thư mục, và chọn máy chủ LDAP đang dùng. Nhấn Chỉnh sửa để hiển thị Tên Máy Chủ.
+
+## @name GENERIC_HINT
+## @loc none
+19999=Vui lòng liên hệ Quản trị viên Hệ thống của bạn.
diff --git a/l10n-vi/mail/chrome/messenger/addressbook/pref-directory-add.dtd b/l10n-vi/mail/chrome/messenger/addressbook/pref-directory-add.dtd
new file mode 100644
index 0000000000..095b4a58aa
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/addressbook/pref-directory-add.dtd
@@ -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/. -->
+
+<!ENTITY directoryName.label "Tên: ">
+<!ENTITY directoryName.accesskey "T">
+<!ENTITY directoryHostname.label "Tên máy chủ: ">
+<!ENTITY directoryHostname.accesskey "c">
+<!ENTITY directoryBaseDN.label "Tên phân biệt gốc: ">
+<!ENTITY directoryBaseDN.accesskey "g">
+<!ENTITY findButton.label "Tìm">
+<!ENTITY findButton.accesskey "m">
+<!ENTITY directorySecure.label "Dùng kết nối an toàn (SSL)">
+<!ENTITY directorySecure.accesskey "D">
+<!ENTITY directoryLogin.label "Tên phân biệt liên kết: ">
+<!ENTITY directoryLogin.accesskey "l">
+<!ENTITY General.tab "Tổng quát">
+<!ENTITY Offline.tab "Ngoại tuyến">
+<!ENTITY Advanced.tab "Nâng cao">
+<!ENTITY portNumber.label "Số cổng: ">
+<!ENTITY portNumber.accesskey "S">
+<!ENTITY searchFilter.label "Bộ lọc tìm kiếm: ">
+<!ENTITY searchFilter.accesskey "l">
+<!ENTITY scope.label "Phạm vi: ">
+<!ENTITY scope.accesskey "v">
+<!ENTITY scopeOneLevel.label "Một cấp độ">
+<!ENTITY scopeOneLevel.accesskey "p">
+<!ENTITY scopeSubtree.label "Cây con">
+<!ENTITY scopeSubtree.accesskey "o">
+<!ENTITY return.label "Đừng trả về nhiều hơn">
+<!ENTITY return.accesskey "r">
+<!ENTITY results.label "kết quả">
+<!ENTITY offlineText.label "Bạn có thể tải xuống một bản sao của thư mục này để sử dụng khi đang ở chế độ ngoại tuyến.">
+<!ENTITY saslMechanism.label "Phương thức đăng nhập: ">
+<!ENTITY saslMechanism.accesskey "P">
+<!ENTITY saslOff.label "Đơn giản">
+<!ENTITY saslOff.accesskey "g">
+<!ENTITY saslGSSAPI.label "Kerberos (GSSAPI)">
+<!ENTITY saslGSSAPI.accesskey "K">
+
+<!-- Localization note: this is here because the width of the dialog
+ is determined by the width of the base DN box; and that is likely
+ to vary somewhat with the language.
+-->
+<!ENTITY newDirectoryWidth "36em">
+
diff --git a/l10n-vi/mail/chrome/messenger/addressbook/pref-directory.dtd b/l10n-vi/mail/chrome/messenger/addressbook/pref-directory.dtd
new file mode 100644
index 0000000000..e12fd13f98
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/addressbook/pref-directory.dtd
@@ -0,0 +1,17 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- LOCALIZATION NOTE (window.title) : do not translate "LDAP" in below line -->
+<!ENTITY pref.ldap.window.title "Máy chủ thư mục LDAP">
+<!-- LOCALIZATION NOTE (directories.label) : do not translate "LDAP" in below line -->
+<!ENTITY directories.label "Máy chủ Thư mục LDAP:">
+<!-- LOCALIZATION NOTE (directoriesText.label) : do not translate "LDAP" in below line -->
+<!ENTITY directoriesText.label "Chọn một Máy chủ Thư mục LDAP:">
+<!ENTITY directoriesText.accesskey "M">
+<!ENTITY addDirectory.label "Thêm">
+<!ENTITY addDirectory.accesskey "T">
+<!ENTITY editDirectory.label "Chỉnh sửa">
+<!ENTITY editDirectory.accesskey "e">
+<!ENTITY deleteDirectory.label "Xóa">
+<!ENTITY deleteDirectory.accesskey "X">
diff --git a/l10n-vi/mail/chrome/messenger/addressbook/replicationProgress.properties b/l10n-vi/mail/chrome/messenger/addressbook/replicationProgress.properties
new file mode 100644
index 0000000000..2b9ab49dd4
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/addressbook/replicationProgress.properties
@@ -0,0 +1,20 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+replicationStarted=Việc sao chép đã bắt đầu…
+changesStarted=Bắt đầu tìm các thay đổi để sao chép…
+replicationSucceeded=Việc sao chép đã thành công
+replicationFailed=Việc sao chép đã thất bại
+replicationCancelled=Việc sao chép bị hủy bỏ
+# LOCALIZATION NOTE
+# do not localize %S. %S is the current entry number (an integer)
+currentCount=Đang sao chép thư mục: %S
+
+downloadButton=Tải xuống ngay
+downloadButton.accesskey=D
+cancelDownloadButton=Hủy tải xuống
+cancelDownloadButton.accesskey=C
+
+directoryTitleNew=Thư mục LDAP mới
+## LOCALIZATION NOTE (directoryTitleEdit): %S will be replaced by the LDAP directory's display name
+directoryTitleEdit=Thuộc tính %S
diff --git a/l10n-vi/mail/chrome/messenger/am-addressing.dtd b/l10n-vi/mail/chrome/messenger/am-addressing.dtd
new file mode 100644
index 0000000000..93d4412cfc
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/am-addressing.dtd
@@ -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/. -->
+
+<!-- extracted from am-addressing.xul -->
+
+<!-- extracted from am-addressing.xhtml -->
+
+<!ENTITY addressing.label "Soạn thảo &amp; xác định địa chỉ">
+<!ENTITY addressingGroupTitle.label "Địa chỉ">
+<!ENTITY addressingText.label "Khi tìm địa chỉ:">
+<!-- LOCALIZATION NOTE (override.label) : do not translate "LDAP" in below line -->
+<!ENTITY useGlobal.label "Dùng tùy chỉnh máy chủ LDAP bao trùm của tôi cho tài khoản này">
+<!ENTITY useGlobal.accesskey "D">
+<!ENTITY editDirectories.label "Chỉnh sửa thư mục…">
+<!ENTITY editDirectories.accesskey "E">
+<!-- LOCALIZATION NOTE (directories.label) : do not translate "LDAP" in below line -->
+<!ENTITY directories.label "Dùng một máy chủ LDAP khác:">
+<!ENTITY directories.accesskey "m">
+<!ENTITY directoriesNone.label "Không có">
+
+<!-- am-addressing.xul -->
+
+<!-- am-addressing.xhtml -->
+
+<!ENTITY compositionGroupTitle.label "Soạn thảo">
+<!-- LOCALIZATION NOTE (useHtml.label) : do not translate "html" in below line -->
+<!ENTITY useHtml.label "Soạn thư định dạng HTML">
+<!ENTITY useHtml.accesskey "S">
+<!ENTITY autoQuote.label "Tự động trích dẫn thư gốc khi trả lời">
+<!ENTITY autoQuote.accesskey "n">
+<!-- LOCALIZATION NOTE (quoting.label): This will concatenate with the 4 strings that follow. -->
+<!ENTITY quoting.label "Khi trích dẫn,">
+<!ENTITY quoting.accesskey "q">
+<!ENTITY aboveQuote.label "bắt đầu viết trả lời trên đoạn trích dẫn">
+<!ENTITY belowQuote.label "bắt đầu viết trả lời dưới đoạn trích dẫn">
+<!ENTITY selectAndQuote.label "chọn trích dẫn">
+<!ENTITY place.label "và đặt chữ kí của tôi">
+<!ENTITY place.accesskey "k">
+<!ENTITY belowText.label "dưới đoạn trích dẫn (khuyên dùng)">
+<!ENTITY aboveText.label "dưới trả lời của tôi (trên đoạn trích dẫn)">
+<!ENTITY includeSigOnReply.label "Bao gồm chữ kí trong thư trả lời">
+<!ENTITY includeSigOnReply.accesskey "B">
+<!ENTITY includeSigOnForward.label "Bao gồm chữ kí trong thư chuyển tiếp">
+<!ENTITY includeSigOnForward.accesskey "y">
+
+<!ENTITY globalComposingPrefs.label "Tùy chọn soạn thảo tổng quát…">
+<!ENTITY globalComposingPrefs.accesskey "G">
+
+<!ENTITY globalAddressingPrefs.label "Tùy chọn xác định địa chỉ tổng quát…">
+<!ENTITY globalAddressingPrefs.accesskey "P">
diff --git a/l10n-vi/mail/chrome/messenger/am-advanced.dtd b/l10n-vi/mail/chrome/messenger/am-advanced.dtd
new file mode 100644
index 0000000000..176c732a60
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/am-advanced.dtd
@@ -0,0 +1,30 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- extracted from am-advanced.xul -->
+
+<!-- extracted from am-advanced.xhtml -->
+
+<!-- LOCALIZATION NOTE (smtpServer.label): do not translate "SMTP" in below line -->
+<!ENTITY smtpServer.label "Cài đặt máy chủ gửi đi (SMTP)">
+
+<!-- LOCALIZATION NOTE (smtpDescription.label): do not translate "SMTP" in below line -->
+<!ENTITY smtpDescription.label "Khi quản lý danh tính của bạn, bạn có thể sử dụng máy chủ từ danh sách này bằng cách chọn nó làm máy chủ thư đi (SMTP) hoặc bạn có thể sử dụng máy chủ mặc định từ danh sách này bằng cách chọn &quot;Sử dụng máy chủ mặc định&quot;.">
+
+<!ENTITY smtpListAdd.label "Thêm…">
+<!ENTITY smtpListAdd.accesskey "d">
+<!ENTITY smtpListEdit.label "Chỉnh sửa…">
+<!ENTITY smtpListEdit.accesskey "E">
+<!ENTITY smtpListDelete.label "Xóa">
+<!ENTITY smtpListDelete.accesskey "m">
+<!ENTITY smtpListSetDefault.label "Đặt thành mặc định">
+<!ENTITY smtpListSetDefault.accesskey "t">
+
+<!ENTITY serverDetails.label "Chi tiết về máy chủ được chọn:">
+<!ENTITY serverDescription.label "Mô tả: ">
+<!ENTITY serverName.label "Tên máy chủ: ">
+<!ENTITY serverPort.label "Cổng: ">
+<!ENTITY userName.label "Tên đăng nhập: ">
+<!ENTITY connectionSecurity.label "Bảo mật kết nối: ">
+<!ENTITY authMethod.label "Phương thức xác thực: ">
diff --git a/l10n-vi/mail/chrome/messenger/am-archiveoptions.dtd b/l10n-vi/mail/chrome/messenger/am-archiveoptions.dtd
new file mode 100644
index 0000000000..71517586f0
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/am-archiveoptions.dtd
@@ -0,0 +1,25 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- extracted from am-archiveoptions.xul -->
+
+<!-- extracted from am-archiveoptions.xhtml -->
+
+<!ENTITY dialogTitle.label "Tùy chọn lưu trữ">
+<!ENTITY archiveGranularityPrefix.label "Khi lưu trữ thư, xếp nó vào trong:">
+<!ENTITY archiveFlat.label "Chỉ một thư mục">
+<!ENTITY archiveFlat.accesskey "C">
+<!ENTITY archiveYearly.label "Các thư mục lưu trữ theo năm">
+<!ENTITY archiveYearly.accesskey "u">
+<!ENTITY archiveMonthly.label "Các thư mục lưu trữ theo tháng">
+<!ENTITY archiveMonthly.accesskey "e">
+<!ENTITY keepFolderStructure.label "Giữ cấu trúc thư mục lưu trữ hiệu tại">
+<!ENTITY keepFolderStructure.accesskey "G">
+<!ENTITY archiveExample.label "Ví dụ">
+<!-- LOCALIZATION NOTE (archiveFolderName.label): this should match the default
+ name for the "Archives" folder -->
+<!ENTITY archiveFolderName.label "Lưu trữ">
+<!-- LOCALIZATION NOTE (inboxFolderName.label): this should match the default
+ name for the "Inbox" folder -->
+<!ENTITY inboxFolderName.label "Hộp thư">
diff --git a/l10n-vi/mail/chrome/messenger/am-copies.dtd b/l10n-vi/mail/chrome/messenger/am-copies.dtd
new file mode 100644
index 0000000000..f4e71c5126
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/am-copies.dtd
@@ -0,0 +1,52 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- extracted from am-copies.xul -->
+
+<!-- extracted from am-copies.xhtml -->
+
+<!ENTITY copyAndFolderTitle.label "Bản sao &amp; thư mục">
+<!ENTITY sendingPrefix.label "Khi gửi thư, tự động: ">
+<!ENTITY fccMailFolder.label "Đặt một bản sao trong:">
+<!ENTITY fccMailFolder.accesskey "s">
+<!ENTITY fccReplyFollowsParent.label "Đặt các thư trả lời trong thư mục chứa thư đang được bạn trả lời">
+<!ENTITY fccReplyFollowsParent.accesskey "r">
+<!-- LOCALIZATION NOTE (ccAddress.label): do not translate "Cc" in below line -->
+<!ENTITY ccAddress.label "Cc những địa chỉ email này:">
+<!ENTITY ccAddress.accesskey "C">
+<!ENTITY ccAddressList.placeholder "Ngăn cách các địa chỉ bằng dấu phẩy">
+<!-- LOCALIZATION NOTE (bccAddress.label): do not translate "Bcc" in below line -->
+<!ENTITY bccAddress.label "Bcc những địa chỉ email này:">
+<!ENTITY bccAddress.accesskey "B">
+<!ENTITY bccAddressList.placeholder "Ngăn cách các địa chỉ bằng dấu phẩy">
+<!ENTITY saveMessageDlg.label "Hiện hộp thoại xác nhận khi thư được lưu">
+<!ENTITY saveMessageDlg.accesskey "o">
+<!-- LOCALIZATION NOTE (sentFolderOn.label): OK to translate this, bug #57440 -->
+<!ENTITY sentFolderOn.label "Thư mục &quot;Thư đã gửi&quot; trên:">
+<!ENTITY sentFolderOn.accesskey "g">
+<!ENTITY sentInOtherFolder.label "Khác:">
+<!ENTITY sentInOtherFolder.accesskey "K">
+<!-- LOCALIZATION NOTE (archivesFolderOn.label): OK to translate this, bug #57440 -->
+<!ENTITY archivesTitle.label "Thư Lưu Trữ">
+<!ENTITY keepArchives.label "Giữ thư lưu trữ trong:">
+<!ENTITY keepArchives.accesskey "G">
+<!ENTITY archiveHierarchyButton.label "Tùy chọn lưu trữ…">
+<!ENTITY archiveHierarchyButton.accesskey "y">
+<!ENTITY archivesFolderOn.label "Thư mục &quot;Lưu trữ&quot; trên:">
+<!ENTITY archivesFolderOn.accesskey "L">
+<!ENTITY archiveInOtherFolder.label "Khác:">
+<!ENTITY archiveInOtherFolder.accesskey "h">
+<!ENTITY specialFolders.label "Nháp và Mẫu">
+<!ENTITY keepDrafts2.label "Giữ tin nhắn nháp trong:">
+<!-- LOCALIZATION NOTE (draftsFolderOn.label): OK to translate this, bug #57440 -->
+<!ENTITY draftsFolderOn.label "Thư mục &quot;Thư nháp&quot; trên:">
+<!ENTITY draftsFolderOn.accesskey "n">
+<!ENTITY draftInOtherFolder.label "Khác:">
+<!ENTITY draftInOtherFolder.accesskey "h">
+<!ENTITY keepTemplates.label "Giữ thư mẫu trong:">
+<!-- LOCALIZATION NOTE (templatesFolderOn.label): OK to translate this, bug #57440 -->
+<!ENTITY templatesFolderOn.label "Thư mục &quot;Thư mẫu&quot; trên:">
+<!ENTITY templatesFolderOn.accesskey "m">
+<!ENTITY templateInOtherFolder.label "Khác:">
+<!ENTITY templateInOtherFolder.accesskey "c">
diff --git a/l10n-vi/mail/chrome/messenger/am-e2e.properties b/l10n-vi/mail/chrome/messenger/am-e2e.properties
new file mode 100644
index 0000000000..de48a58fbd
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/am-e2e.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/.
+
+prefPanel-e2e=Mã hóa đầu cuối
diff --git a/l10n-vi/mail/chrome/messenger/am-identities-list.dtd b/l10n-vi/mail/chrome/messenger/am-identities-list.dtd
new file mode 100644
index 0000000000..89a36fc136
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/am-identities-list.dtd
@@ -0,0 +1,15 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY identitiesListManageDesc.label "Quản lý danh tính cho tài khoản này. Danh tính đầu tiên được sử dụng theo mặc định.">
+<!ENTITY identitiesListAdd.label "Thêm…">
+<!ENTITY identitiesListAdd.accesskey "T">
+<!ENTITY identitiesListEdit.label "Chỉnh sửa…">
+<!ENTITY identitiesListEdit.accesskey "E">
+<!ENTITY identitiesListDefault.label "Đặt thành mặc định">
+<!ENTITY identitiesListDefault.accesskey "S">
+<!ENTITY identitiesListDelete.label "Xóa">
+<!ENTITY identitiesListDelete.accesskey "X">
+<!ENTITY identitiesListClose.label "Đóng">
+<!ENTITY identitiesListClose.accesskey "C">
diff --git a/l10n-vi/mail/chrome/messenger/am-identity-edit.dtd b/l10n-vi/mail/chrome/messenger/am-identity-edit.dtd
new file mode 100644
index 0000000000..c0e1d52ef1
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/am-identity-edit.dtd
@@ -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/. -->
+
+<!ENTITY identityListDesc.label "Cấu hình các thiết lập cho định danh này:">
+
+<!ENTITY settingsTab.label "Cài đặt">
+<!ENTITY copiesFoldersTab.label "Bản sao &amp; thư mục">
+<!ENTITY addressingTab.label "Soạn thảo &amp; xác định địa chỉ">
+
+<!ENTITY publicData.label "Dữ liệu công khai">
+<!ENTITY privateData.label "Dữ liệu riêng tư">
+<!ENTITY identityAlias.label "Nhãn nhận dạng:">
+<!ENTITY identityAlias.accesskey "b">
diff --git a/l10n-vi/mail/chrome/messenger/am-im.dtd b/l10n-vi/mail/chrome/messenger/am-im.dtd
new file mode 100644
index 0000000000..cbdbba7e16
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/am-im.dtd
@@ -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/. -->
+
+<!ENTITY accountWindow.title "Thuộc tính tài khoản">
+<!ENTITY accountWindow.width "300">
+<!ENTITY account.general "Tổng quát">
+<!ENTITY account.advanced "Tùy chọn nâng cao">
+<!ENTITY account.name "Tên đăng nhập:">
+<!ENTITY account.password "Mật khẩu:">
+<!ENTITY account.alias "Bí danh:">
+<!ENTITY account.newMailNotification "Thông báo trên thư mới">
+<!ENTITY account.autojoin "Tự động tham gia các kênh:">
+<!ENTITY account.proxySettings.caption "Cài đặt proxy:">
+<!ENTITY account.proxySettings.change.label "Thay đổi…">
+<!ENTITY account.proxySettings.change.accessKey "C">
diff --git a/l10n-vi/mail/chrome/messenger/am-junk.dtd b/l10n-vi/mail/chrome/messenger/am-junk.dtd
new file mode 100644
index 0000000000..86e645a775
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/am-junk.dtd
@@ -0,0 +1,31 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY junkSettings.label "Cài đặt thư rác">
+<!ENTITY trainingDescription.label "Nếu được bật, trước tiên bạn phải đào tạo &brandShortName; để xác định thư rác bằng cách sử dụng nút thanh công cụ Thư rác để đánh dấu thư là rác hay không. Bạn cần xác định cả thư rác và không rác. Sau đó &brandShortName; sẽ có thể đánh dấu thư rác tự động.">
+<!ENTITY level.label "Kích hoạt nút điều khiển thư rác tích hợp cho tài khoản này">
+<!ENTITY level.accesskey "E">
+
+<!ENTITY move.label "Chuyển thư rác mới vào:">
+<!ENTITY move.accesskey "M">
+<!ENTITY junkFolderOn.label "Thư mục &quot;thư rác&quot; trên:">
+<!ENTITY junkFolderOn.accesskey "J">
+<!ENTITY otherFolder.label "Khác:">
+<!ENTITY otherFolder.accesskey "O">
+<!ENTITY purge1.label "Tự động xóa thư rác sau">
+<!ENTITY purge1.accesskey "u">
+<!ENTITY purge2.label "ngày">
+
+<!ENTITY whitelistHeader.label "Không tự động đánh dấu thư là rác nếu người gửi ở trong: ">
+<!ENTITY whitelistHeader.accesskey "D">
+
+<!ENTITY ispHeadersWarning.label "Nếu được bật, &brandShortName; sẽ tự động coi các thư được đánh dấu bởi bộ phân loại bên ngoài này là rác.">
+<!ENTITY ispHeaders.label "Tin tưởng bộ lọc đầu đề thư rác của: ">
+<!ENTITY ispHeaders.accesskey "T">
+
+<!ENTITY junkClassification.label "Phần được chọn">
+<!ENTITY junkActions.label "Đích đến và thời gian lưu trữ">
+
+<!ENTITY globalJunkPrefs.label "Tuỳ chỉnh thư rác bao quát…">
+<!ENTITY globalJunkPrefs.accesskey "G">
diff --git a/l10n-vi/mail/chrome/messenger/am-main.dtd b/l10n-vi/mail/chrome/messenger/am-main.dtd
new file mode 100644
index 0000000000..e0467687d6
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/am-main.dtd
@@ -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/. -->
+
+<!-- extracted from am-main.xhtml -->
+
+<!ENTITY accountTitle.label "Cài đặt tài khoản">
+<!ENTITY accountName.label "Tên tài khoản:">
+<!ENTITY accountName.accesskey "n">
+<!ENTITY identityTitle.label "Định danh Mặc định">
+<!ENTITY identityDesc.label "Mỗi tài khoản có một định danh, đó là thông tin để người khác nhận ra khi họ đọc thư của bạn.">
+<!ENTITY name.label "Tên của Bạn:">
+<!ENTITY name.accesskey "B">
+<!ENTITY email.label "Địa chỉ Email:">
+<!ENTITY email.accesskey "E">
+<!ENTITY catchAll.label "Trả lời từ danh tính này khi tiêu đề phân phối khớp với:">
+<!ENTITY catchAll.accesskey "d">
+<!ENTITY replyTo.label "Địa chỉ Trả-lời-tới:">
+<!ENTITY replyTo.accesskey "a">
+<!ENTITY replyTo.placeholder "Người nhận sẽ trả lời địa chỉ khác này">
+<!ENTITY organization.label "Tổ chức:">
+<!ENTITY organization.accesskey "h">
+<!ENTITY signatureText.label "Chữ kí:">
+<!ENTITY signatureText.accesskey "k">
+<!ENTITY signatureHtml.label "Dùng HTML (vd.: &lt;b&gt;đậm&lt;/b&gt;)">
+<!ENTITY signatureHtml.accesskey "L">
+<!ENTITY signatureFile.label "Kèm theo chữ kí từ một tập tin (văn bản, HTML, hoặc ảnh):">
+<!ENTITY signatureFile.accesskey "m">
+<!ENTITY edit.label "Chỉnh sửa…">
+<!ENTITY choose.label "Chọn…">
+<!ENTITY choose.accesskey "C">
+<!ENTITY editVCard.label "Chỉnh sửa vCard…">
+<!ENTITY editVCard.accesskey "d">
+<!-- LOCALIZATION NOTE (attachVCard.label) : do not translate "vCard" in below line -->
+<!ENTITY attachVCard.label "Đính kèm vCard của tôi vào thư">
+<!ENTITY attachVCard.accesskey "v">
+
+<!ENTITY manageIdentities.label "Quản lí Định danh…">
+<!ENTITY manageIdentities.accesskey "Q">
+
+<!-- LOCALIZATION NOTE (smtpName.label) : do not translate "SMTP" in below line -->
+<!ENTITY smtpName.label "Máy chủ Gửi thư (SMTP):">
+<!ENTITY smtpName.accesskey "M">
+<!ENTITY smtpDefaultServer.label "Sử dụng Máy chủ Mặc định">
+
+<!ENTITY smtpServerEdit.label "Chỉnh sửa máy chủ SMTP…">
+<!ENTITY smtpServerEdit.accesskey "P">
diff --git a/l10n-vi/mail/chrome/messenger/am-mdn.dtd b/l10n-vi/mail/chrome/messenger/am-mdn.dtd
new file mode 100644
index 0000000000..ae1fd388d4
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/am-mdn.dtd
@@ -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/. -->
+
+<!ENTITY pane.title "Chứng nhận Hồi báo">
+<!ENTITY useGlobalPrefs.label "Dùng tùy chỉnh chứng nhận hồi báo bao quát của tôi">
+<!ENTITY useGlobalPrefs.accesskey "D">
+<!ENTITY globalReceipts.label "Tùy chỉnh tổng quát…">
+<!ENTITY globalReceipts.accesskey "G">
+<!ENTITY useCustomPrefs.label "Tùy biến chứng nhận hồi báo cho tài khoản này">
+<!ENTITY useCustomPrefs.accesskey "y">
+<!ENTITY requestReceipt.label "Khi gửi thư, luôn luôn yêu cầu chứng chận hồi báo">
+<!ENTITY requestReceipt.accesskey "K">
+<!ENTITY receiptArrive.label "Khi một chứng nhận đến:">
+<!ENTITY leaveIt.label "Để nó trong Hộp thư của tôi">
+<!ENTITY leaveIt.accesskey "H">
+<!-- LOCALIZATION NOTE moveToSent.label Translate: 'Sent' according to Netscape glossary -->
+<!ENTITY moveToSent.label "Chuyển nó vào thư mục &quot;Đã gửi&quot;">
+<!ENTITY moveToSent.accesskey "C">
+<!ENTITY requestMDN.label "Khi tôi nhận được một yêu cầu chứng nhận hồi báo:">
+<!ENTITY returnSome.label "Cho phép chứng nhận hồi báo đối với một số loại thư">
+<!ENTITY returnSome.accesskey "b">
+<!ENTITY never.label "Không bao giờ gửi chứng nhận hồi báo">
+<!ENTITY never.accesskey "a">
+<!ENTITY notInToCc.label "Nếu tôi không nằm trong trường Tới hoặc Cc của thư:">
+<!ENTITY notInToCc.accesskey "N">
+<!ENTITY outsideDomain.label "Nếu người gửi nằm ngoài tên miền của tôi:">
+<!ENTITY outsideDomain.accesskey "u">
+<!ENTITY otherCases.label "Trong mọi trường hợp khác:">
+<!ENTITY otherCases.accesskey "o">
+<!ENTITY askMe.label "Hỏi tôi">
+<!ENTITY alwaysSend.label "Luôn gửi">
+<!ENTITY neverSend.label "Không bao giờ gửi">
diff --git a/l10n-vi/mail/chrome/messenger/am-mdn.properties b/l10n-vi/mail/chrome/messenger/am-mdn.properties
new file mode 100644
index 0000000000..b3125af05b
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/am-mdn.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/.
+
+## Strings used in prefs.
+prefPanel-mdn=Chứng nhận Hồi báo
+
diff --git a/l10n-vi/mail/chrome/messenger/am-offline.dtd b/l10n-vi/mail/chrome/messenger/am-offline.dtd
new file mode 100644
index 0000000000..d5d7592999
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/am-offline.dtd
@@ -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/. -->
+
+<!ENTITY doNotDownloadPop3Movemail.label "Để tiết kiệm dung lượng đĩa, không tải:">
+<!ENTITY doNotDownloadNntp.label "Để tiết kiệm dung lượng đĩa, không tải xuống để dùng ngoại tuyến:">
+<!ENTITY doNotDownloadImap.label "Để tiết kiệm dung lượng đĩa, việc tải thư từ máy chủ và giữ bản sao ngoại tuyến có thể được giới hạn theo thời gian hoặc dung lượng.">
+<!ENTITY allFoldersOffline2.label "Giữ tin nhắn trong tất cả các thư mục cho tài khoản này trên máy tính này">
+<!ENTITY allFoldersOffline2.accesskey "o">
+<!ENTITY allFoldersOfflineNote.label "Lưu ý: Thay đổi này ảnh hưởng đến tất cả các thư mục trong tài khoản này. Để đặt các thư mục riêng lẻ, hãy sử dụng nút Nâng cao….">
+<!ENTITY offlineNotDownload.label "Thư lớn hơn">
+<!ENTITY offlineNotDownload.accesskey "M">
+<!ENTITY autosyncNotDownload.label "Không tải thư lớn hơn">
+<!ENTITY autosyncNotDownload.accesskey "m">
+<!ENTITY kb.label "KB">
+<!ENTITY daysOld.label "ngày">
+<!ENTITY message.label "thư mới nhất">
+<!ENTITY nntpNotDownloadRead.label "Thư đã đọc">
+<!ENTITY nntpNotDownloadRead.accesskey "d">
+<!ENTITY nntpDownloadMsg.label "Thư cũ hơn">
+<!ENTITY nntpDownloadMsg.accesskey "e">
+<!ENTITY retentionCleanup.label "Để khôi phục dung lượng đĩa, thư cũ sẽ bị xóa.">
+<!ENTITY retentionCleanupImap.label "Để khôi phục dung lượng đĩa, thư cũ có thể bị xóa vĩnh viễn, cả bản sao trong máy lẫn bản gốc trên máy chủ.">
+<!ENTITY retentionCleanupPop.label "Để khôi phục dung lượng đĩa, thư cũ có thể bị xóa vĩnh viễn, bao gồm cả bản gốc trên máy chủ.">
+<!ENTITY retentionKeepMsg.label "Xóa thư cũ hơn">
+<!ENTITY retentionKeepMsg.accesskey "t">
+<!ENTITY retentionKeepAll.label "Không xóa bất kì thư nào">
+<!ENTITY retentionKeepAll.accesskey "n">
+<!ENTITY retentionKeepRecent.label "Xóa tất cả trừ gần đây">
+<!ENTITY retentionKeepRecent.accesskey "b">
+<!ENTITY retentionApplyToFlagged.label "Luôn luôn giữ lại thư gắn sao">
+<!ENTITY retentionApplyToFlagged.accesskey "k">
+<!ENTITY nntpRemoveMsgBody.label "Xóa nội dung khỏi thư lớn hơn">
+<!ENTITY nntpRemoveMsgBody.accesskey "o">
+<!ENTITY offlineSelectNntp.label "Chọn nhóm tin để dùng ngoại tuyến…">
+<!ENTITY offlineSelectNntp.accesskey "S">
+<!ENTITY offlineImapAdvancedOffline.label "Nâng cao…">
+<!ENTITY offlineImapAdvancedOffline.accesskey "v">
+<!ENTITY syncGroupTitle.label "Đồng bộ hóa thư">
+<!ENTITY diskspaceGroupTitle.label "Dung lượng đĩa">
+
+<!-- LOCALIZATION NOTE: (ageAutosyncBefore.label, ageAutosyncMiddle.label, ageAutosyncAfter.label):
+ The entities ageAutosyncBefore.label, ageAutosyncMiddle.label, and ageAutosyncAfter.label appear
+ on a single line within the scope of useAutosync.ByAge as follows:
+
+ &ageAutosyncBefore.label [textbox for autosync value] &ageAutosyncMiddle.label; [dropdown for autosync interval] &ageAutosyncAfter.label;
+-->
+<!ENTITY allAutosync.label "Đồng bộ hóa tất cả thư trong máy, không quan tâm đến thời gian">
+<!ENTITY allAutosync.accesskey "c">
+<!ENTITY ageAutosyncBefore.label "Đồng bộ những thư mới nhất">
+<!ENTITY ageAutosync.accesskey "z">
+<!ENTITY ageAutosyncMiddle.label "">
+<!ENTITY dayAgeInterval.label "Ngày">
+<!ENTITY weekAgeInterval.label "Tuần">
+<!ENTITY monthAgeInterval.label "Tháng">
+<!ENTITY yearAgeInterval.label "Năm">
+<!ENTITY ageAutosyncAfter.label "">
diff --git a/l10n-vi/mail/chrome/messenger/am-server-advanced.dtd b/l10n-vi/mail/chrome/messenger/am-server-advanced.dtd
new file mode 100644
index 0000000000..d3997f3303
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/am-server-advanced.dtd
@@ -0,0 +1,31 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY serverAdvanced.label "Cài đặt tài khoản nâng cao">
+<!-- LOCALIZATION NOTE (serverDirectory.label): Do not translate "IMAP" -->
+<!ENTITY serverDirectory.label "Thư mục máy chủ IMAP:">
+<!ENTITY serverDirectory.accesskey "m">
+<!ENTITY usingSubscription.label "Chỉ hiện các thư mục đang theo dõi">
+<!ENTITY usingSubscription.accesskey "C">
+<!ENTITY dualUseFolders.label "Máy chủ hỗ trợ các thư mục có chứa thư mục con và thư">
+<!ENTITY dualUseFolders.accesskey "r">
+<!ENTITY maximumConnectionsNumber.label "Số lượng kết nối tối đa từ máy chủ tới bộ đệm">
+<!ENTITY maximumConnectionsNumber.accesskey "S">
+<!-- LOCALIZATION NOTE (namespaceDesc.label): Do not translate "IMAP" -->
+<!ENTITY namespaceDesc.label "Những tùy chỉnh này chỉ định không gian tên trên máy chủ IMAP của bạn">
+<!ENTITY personalNamespace.label "Không gian tên Cá nhân:">
+<!ENTITY personalNamespace.accesskey "K">
+<!ENTITY publicNamespace.label "Công khai (đã chia sẻ):">
+<!ENTITY publicNamespace.accesskey "s">
+<!ENTITY otherUsersNamespace.label "Người dùng Khác:">
+<!ENTITY otherUsersNamespace.accesskey "N">
+<!ENTITY overrideNamespaces.label "Cho phép máy chủ ghi đè những không gian tên này">
+<!ENTITY overrideNamespaces.accesskey "o">
+<!ENTITY pop3DeferringDesc.label "Khi tải xuống thư từ máy chủ của tài khoản này, hãy sử dụng thư mục sau để lưu trữ thư mới:">
+<!ENTITY accountInbox.label "Hộp thư đến cho tài khoản này">
+<!ENTITY accountInbox.accesskey "s">
+<!ENTITY deferToServer.label "Hộp thư cho tài khoản khác">
+<!ENTITY deferToServer.accesskey "p">
+<!ENTITY deferGetNewMail.label "Bao gồm máy chủ này khi nhận thư mới">
+<!ENTITY deferGetNewMail.accesskey "I">
diff --git a/l10n-vi/mail/chrome/messenger/am-server-top.dtd b/l10n-vi/mail/chrome/messenger/am-server-top.dtd
new file mode 100644
index 0000000000..f81fe8cbc4
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/am-server-top.dtd
@@ -0,0 +1,89 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY messageStorage.label "Lưu trữ thư">
+<!ENTITY securitySettings.label "Cài đặt bảo mật">
+<!ENTITY serverSettings.label "Cài đặt máy chủ">
+<!ENTITY serverType.label "Kiểu máy chủ:">
+<!ENTITY serverName.label "Tên máy chủ:">
+<!ENTITY serverName.accesskey "S">
+<!ENTITY userName.label "Tên đăng nhập:">
+<!ENTITY userName.accesskey "N">
+<!ENTITY port.label "Cổng:">
+<!ENTITY port.accesskey "P">
+<!ENTITY serverPortDefault.label "Mặc định:">
+<!-- LOCALIZATION NOTE (biffStart.label) : translate below 2 line with grammar dependency
+ For example, in Japanese cases:
+ biffStart.label "every"
+ biffEnd.label "minutes for new messages Check"
+-->
+<!ENTITY biffStart.label "Kiểm tra thư mới mỗi ">
+<!ENTITY biffStart.accesskey "y">
+<!ENTITY biffEnd.label "phút">
+<!ENTITY useIdleNotifications.label "Cho phép thông báo máy chủ ngay lập tức khi có thư mới đến">
+<!ENTITY useIdleNotifications.accesskey "w">
+<!ENTITY connectionSecurity.label "Bảo mật kết nối:">
+<!ENTITY connectionSecurity.accesskey "u">
+<!ENTITY connectionSecurityType-0.label "Không có">
+<!ENTITY connectionSecurityType-1.label "STARTTLS, nếu có">
+<!ENTITY connectionSecurityType-2.label "STARTTLS">
+<!ENTITY connectionSecurityType-3.label "SSL/TLS">
+<!ENTITY authMethod.label "Phương thức xác thực:">
+<!ENTITY authMethod.accesskey "i">
+<!ENTITY leaveOnServer.label "Để lại thư trên máy chủ">
+<!ENTITY leaveOnServer.accesskey "g">
+<!ENTITY headersOnly.label "Chỉ lấy tiêu đề">
+<!ENTITY headersOnly.accesskey "e">
+<!ENTITY deleteByAgeFromServer.label "Trong nhiều nhất">
+<!ENTITY deleteByAgeFromServer.accesskey "o">
+<!ENTITY daysEnd.label "ngày">
+<!ENTITY deleteOnServer2.label "Cho đến khi tôi xóa chúng">
+<!ENTITY deleteOnServer2.accesskey "d">
+<!ENTITY downloadOnBiff.label "Tự động tải thư mới">
+<!ENTITY downloadOnBiff.accesskey "m">
+<!ENTITY deleteMessagePrefix.label "Khi tôi xóa một thư:">
+<!ENTITY modelMoveToTrash.label "Di chuyển nó vào thư mục này:">
+<!ENTITY modelMoveToTrash.accesskey "o">
+<!ENTITY modelMarkDeleted.label "Chỉ đánh dấu nó là đã bị xóa">
+<!ENTITY modelMarkDeleted.accesskey "k">
+<!ENTITY modelDeleteImmediately.label "Xóa nó ngay lập tức">
+<!ENTITY modelDeleteImmediately.accesskey "d">
+<!-- LOCALIZATION NOTE (expungeOnExit.label) : do not translate two of "&quot;" in below line -->
+<!ENTITY expungeOnExit.label "Dọn dẹp (&quot;Xóa&quot;) hộp thư khi thoát">
+<!ENTITY expungeOnExit.accesskey "E">
+<!ENTITY emptyTrashOnExit.label "Dọn sạch thùng rác khi thoát">
+<!ENTITY emptyTrashOnExit.accesskey "x">
+<!ENTITY loginAtStartup.label "Kiểm tra thư mới khi khởi động">
+<!ENTITY loginAtStartup.accesskey "C">
+<!-- LOCALIZATION NOTE (maxMessagesStart.label) : translate below 2 lines with grammar dependency
+ maxMessengerStart.label will be followed by maxMessagesEnd.label with the number
+ of messages between them
+-->
+<!ENTITY maxMessagesStart.label "Hỏi tôi trước khi tải nhiều hơn">
+<!ENTITY maxMessagesStart.accesskey "m">
+<!-- LOCALIZATION NOTE (maxMessagesEnd.label) : see note for maxMessagesStart.label -->
+<!ENTITY maxMessagesEnd.label "thư">
+<!ENTITY alwaysAuthenticate.label "Luôn yêu cầu xác thực khi kết nối đến máy chủ này">
+<!ENTITY alwaysAuthenticate.accesskey "w">
+<!ENTITY newsrcFilePath1.label "Tập tin News.rc:">
+<!ENTITY newsrcPicker1.label "Chọn tập tin News.rc">
+<!ENTITY abbreviate.label "Hiện tên nhóm tin trong bảng thư mục thư dưới dạng:">
+<!ENTITY abbreviateOn.label "Tên đầy đủ (ví dụ, 'netscape.public.mozilla.mail-news')">
+<!ENTITY abbreviateOff.label "Tên viết tắt chữ đầu (ví dụ, 'n.p.m.mail-news')">
+<!ENTITY advancedButton.label "Nâng cao…">
+<!ENTITY advancedButton.accesskey "v">
+<!ENTITY serverDefaultCharset2.label "Bảng mã văn bản mặc định:">
+<!ENTITY localPath1.label "Thư mục nội bộ:">
+<!ENTITY localFolderPicker.label "Chọn thư mục cục bộ">
+<!ENTITY browseFolder.label "Duyệt…">
+<!ENTITY browseFolder.accesskey "B">
+<!ENTITY browseNewsrc.label "Duyệt…">
+<!ENTITY browseNewsrc.accesskey "e">
+
+<!ENTITY accountTitle.label "Cài đặt tài khoản">
+<!ENTITY accountSettingsDesc.label "Sau đây là một tài khoản đặc biệt. Không có danh tính liên quan đến nó.">
+<!ENTITY storeType.label "Loại lưu trữ thư:">
+<!ENTITY storeType.accesskey "T">
+<!ENTITY mboxStore2.label "Tập tin trên mỗi thư mục (mbox)">
+<!ENTITY maildirStore.label "Tập tin trên mỗi thư (maildir)">
diff --git a/l10n-vi/mail/chrome/messenger/am-serverwithnoidentities.dtd b/l10n-vi/mail/chrome/messenger/am-serverwithnoidentities.dtd
new file mode 100644
index 0000000000..9f68ee07db
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/am-serverwithnoidentities.dtd
@@ -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/. -->
+
+<!ENTITY accountName.label "Tên tài khoản:">
+<!ENTITY accountName.accesskey "n">
diff --git a/l10n-vi/mail/chrome/messenger/am-smime.dtd b/l10n-vi/mail/chrome/messenger/am-smime.dtd
new file mode 100644
index 0000000000..01698abce8
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/am-smime.dtd
@@ -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/. -->
+
+<!ENTITY digitalSign.certificate.button "Chọn…">
+<!ENTITY digitalSign.certificate.accesskey "C">
+<!ENTITY digitalSign.certificate_clear.button "Xóa trắng">
+<!ENTITY digitalSign.certificate_clear.accesskey "g">
+<!ENTITY encryption.certificate.button "Chọn…">
+<!ENTITY encryption.certificate.accesskey "n">
+<!ENTITY encryption.certificate_clear.button "Xóa trắng">
+<!ENTITY encryption.certificate_clear.accesskey "a">
+<!ENTITY signingGroupTitle.label "Chữ kí Điện tử">
+<!ENTITY signMessage.accesskey "h">
+
+<!-- Strings for the cert picker dialog -->
+<!ENTITY certPicker.title "Chọn chứng chỉ">
+<!ENTITY certPicker.info "Chứng chỉ:">
+<!ENTITY certPicker.detailsLabel "Chi tiết của chứng chỉ được chọn:">
+
diff --git a/l10n-vi/mail/chrome/messenger/am-smime.properties b/l10n-vi/mail/chrome/messenger/am-smime.properties
new file mode 100644
index 0000000000..ab88799c80
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/am-smime.properties
@@ -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/.
+
+## S/MIME error strings.
+## Note to localization: %S is a placeholder
+NoSenderSigningCert=Bạn yêu cầu thư này phải được kí điện tử, nhưng hoặc là chương trình gặp thất bại trong việc tìm chứng thư kí nhận được chỉ định trong Thiết lập Tài khoản Thư & Nhóm tin của bạn, hoặc là chứng thư đã hết hạn.
+NoSenderEncryptionCert=Bạn yêu cầu mã hóa thư này, nhưng hoặc là chương trình gặp thất bại trong việc tìm chứng thư mã hóa được chỉ định trong Thiết lập Tài khoản Thư & Nhóm tin của bạn, hoặc là chứng thư đã hết hạn.
+MissingRecipientEncryptionCert=Bạn yêu cầu mã hóa thư này, nhưng chương trình gặp thất bại trong việc tìm chứng thư mã hóa cho %S.
+ErrorEncryptMail=Không thể mã hóa thư. Vui lòng kiểm tra xem bạn có chứng chỉ email hợp lệ cho mỗi người nhận không. Vui lòng kiểm tra xem các chứng chỉ được chỉ định trong cài đặt tài khoản của Thư &amp; nhóm tin cho tài khoản thư này có hợp lệ và đáng tin cậy cho thư không.
+ErrorCanNotSignMail=Không thể ký thư. Vui lòng kiểm tra xem các chứng chỉ được chỉ định trong cài đặt tài khoản của Thư &amp; nhóm tin cho tài khoản thư này có hợp lệ và đáng tin cậy cho thư không.
+
+## Strings used for in the prefs.
+NoSigningCert=Trình quản lí Chứng thư không thể tìm thấy một chứng thư hợp lệ để kí thư của bạn được.
+NoSigningCertForThisAddress=Trình quản lý chứng chỉ không thể xác định chứng chỉ hợp lệ có thể được sử dụng để ký điện tử các thư của bạn với địa chỉ <%S>.
+NoEncryptionCert=Trình quản lí Chứng thư không thể tìm thấy một chứng thư hợp lệ để người khác có thể gửi thư mã hóa cho bạn được.
+NoEncryptionCertForThisAddress=Trình quản lý chứng chỉ không thể tìm thấy chứng chỉ hợp lệ mà người khác có thể sử dụng để gửi cho bạn thư email được mã hóa đến địa chỉ <%S>.
+
+encryption_needCertWantSame=Bạn cũng cần chỉ định một chứng thư cho người khác dùng khi họ gửi bạn thư mã hóa. Bạn có muốn dùng cùng một chứng thư để mã hóa & giải mã thư được gửi tới bạn không?
+encryption_wantSame=Bạn có muốn dùng cùng một chứng thư để mã hóa & giải mã thư được gửi tới bạn không?
+encryption_needCertWantToSelect=Bạn cũng cần chỉ định một chứng thư cho người khác dùng khi họ gửi bạn thư mã hóa. Bạn có muốn cấu hình chứng thư mã hóa ngay bây giờ không?
+signing_needCertWantSame=Bạn cũng cần chỉ định một chứng thư để kí thư. Bạn có muốn dùng cùng một chứng thư để kí thư không?
+signing_wantSame=Bạn có muốn dùng cùng một chứng thư để kí thư không?
+signing_needCertWantToSelect=Bạn cũng cần chỉ định một chứng thư để kí thư. Bạn có muốn cấu hình chứng thư cho việc kí thư ngay bây giờ không?
+
+## Strings used by nsMsgComposeSecure
+mime_smimeEncryptedContentDesc=Thư Mã hóa S/MIME
+mime_smimeSignatureContentDesc=Chữ kí mã hóa S/MIME
+
+## Strings used by the cert picker.
+CertInfoIssuedFor=Cấp cho:
+CertInfoIssuedBy=Cấp bởi:
+CertInfoValid=Hiệu lực
+CertInfoFrom=từ
+CertInfoTo=đến
+CertInfoPurposes=Mục đích
+CertInfoEmail=E-mail
+CertInfoStoredIn=Được lưu trữ trong:
+NicknameExpired=(hết hạn)
+NicknameNotYetValid=(chưa hợp lệ)
diff --git a/l10n-vi/mail/chrome/messenger/app-extension-fields.properties b/l10n-vi/mail/chrome/messenger/app-extension-fields.properties
new file mode 100644
index 0000000000..f62b06700d
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/app-extension-fields.properties
@@ -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/.
+
+# LOCALIZATION NOTE (extension.thunderbird-compact-light@mozilla.org.name): This is displayed in about:addons -> Appearance
+extension.thunderbird-compact-light@mozilla.org.name=Sáng
+extension.thunderbird-compact-light@mozilla.org.description=Một chủ đề với tông màu sáng.
+
+# LOCALIZATION NOTE (extension.thunderbird-compact-dark@mozilla.org.name): This is displayed in about:addons -> Appearance
+extension.thunderbird-compact-dark@mozilla.org.name=Tối
+extension.thunderbird-compact-dark@mozilla.org.description=Một chủ đề với tông màu tối.
diff --git a/l10n-vi/mail/chrome/messenger/appUpdate.properties b/l10n-vi/mail/chrome/messenger/appUpdate.properties
new file mode 100644
index 0000000000..68bbab09a8
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/appUpdate.properties
@@ -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/.
+
+# LOCALIZATION NOTE (updateAvailableTitle): %S will be replaced with brandShortName
+updateAvailableTitle=Đã có bản cập nhật %S mới.
+# LOCALIZATION NOTE (updateAvailableMessage): %S will be replaced with brandShortName
+updateAvailableMessage=Cập nhật %S bản mới nhất để cải thiện tốc độ và bảo mật.
+updateAvailablePrimaryButtonLabel=Tải xuống bản cập nhật
+updateAvailablePrimaryButtonAccessKey=D
+updateAvailableSecondaryButtonLabel=Không phải bây giờ
+updateAvailableSecondaryButtonAccessKey=N
+
+# LOCALIZATION NOTE (updateManualTitle): %S will be replaced with brandShortName
+updateManualTitle=%S không thể cập nhật lên phiên bản mới nhất.
+# LOCALIZATION NOTE (updateManualMessage): %S will be replaced with brandShortName
+updateManualMessage=Tải xuống một bản sao mới của %S và chúng tôi sẽ giúp bạn cài đặt nó.
+# LOCALIZATION NOTE (updateManualPrimaryButtonLabel): %S will be replaced with brandShortName
+updateManualPrimaryButtonLabel=Tải xuống %S
+updateManualPrimaryButtonAccessKey=D
+updateManualSecondaryButtonLabel=Không phải bây giờ
+updateManualSecondaryButtonAccessKey=N
+
+# LOCALIZATION NOTE (updateUnsupportedTitle): %S will be replaced with brandShortName
+updateUnsupportedTitle=%S không thể cập nhật lên phiên bản mới nhất.
+# LOCALIZATION NOTE (updateUnsupportedMessage): %S will be replaced with brandShortName
+updateUnsupportedMessage=Phiên bản mới nhất của %S không được hỗ trợ trên hệ thống của bạn.
+updateUnsupportedPrimaryButtonLabel=Tìm hiểu thêm
+updateUnsupportedPrimaryButtonAccessKey=L
+updateUnsupportedSecondaryButtonLabel=Đóng
+updateUnsupportedSecondaryButtonAccessKey=C
+
+# LOCALIZATION NOTE (updateRestartTitle): %S will be replaced with brandShortName
+updateRestartTitle=Khởi động lại để cập nhật %S.
+# LOCALIZATION NOTE (updateRestartMessage): %S will be replaced with brandShortName
+updateRestartMessage=Sau khi khởi động lại nhanh chóng, %S sẽ khôi phục lại tất cả các thẻ đang mở và cửa sổ của bạn.
+updateRestartPrimaryButtonLabel=Khởi động lại
+updateRestartPrimaryButtonAccessKey=R
+updateRestartSecondaryButtonLabel=Không phải bây giờ
+updateRestartSecondaryButtonAccessKey=N
diff --git a/l10n-vi/mail/chrome/messenger/appleMailImportMsgs.properties b/l10n-vi/mail/chrome/messenger/appleMailImportMsgs.properties
new file mode 100644
index 0000000000..9df148c5b4
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/appleMailImportMsgs.properties
@@ -0,0 +1,20 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Short name of import module
+ApplemailImportName=Apple Mail
+
+# Description of import module
+ApplemailImportDescription=Nhập thư cục bộ từ Mac OS X Mail
+
+# Success Message
+# LOCALIZATION NOTE(ApplemailImportMailboxSuccess): Do not translate the word "%S" below.
+ApplemailImportMailboxSuccess=Thư cục bộ đã được nhập thành công từ %S
+
+# Error Message
+ApplemailImportMailboxBadparam=Xảy ra lỗi nội bộ. Thất bại khi nhập. Hãy thử nhập lại.
+
+# Error message
+# LOCALIZATION NOTE(ApplemailImportMailboxConverterror): Do not translate the word "%S" below.
+ApplemailImportMailboxConverterror=Đã xảy ra lỗi khi nhập thư từ %S. Thư đã không được nhập.
diff --git a/l10n-vi/mail/chrome/messenger/baseMenuOverlay.dtd b/l10n-vi/mail/chrome/messenger/baseMenuOverlay.dtd
new file mode 100644
index 0000000000..bd574af881
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/baseMenuOverlay.dtd
@@ -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/. -->
+
+<!-- Help Menu -->
+<!ENTITY helpMenu.label "Trợ giúp">
+<!ENTITY helpMenu.accesskey "H">
+<!-- LOCALIZATION NOTE some localizations of Windows use "?"
+ for the help button in the menubar but Gnome does not. -->
+<!ENTITY helpMenuWin.label "Trợ giúp">
+<!ENTITY helpMenuWin.accesskey "H">
+<!ENTITY aboutProduct2.label "Thông tin về &brandShorterName;">
+<!ENTITY aboutProduct2.accesskey "A">
+<!ENTITY helpTroubleshootingInfo.label "Thông tin gỡ rối vấn đề">
+<!ENTITY helpTroubleshootingInfo.accesskey "T">
+<!ENTITY helpSafeMode.label "Khởi động lại và vô hiệu hóa các tiện ích…">
+<!ENTITY helpSafeMode.accesskey "R">
+
+<!ENTITY helpSafeMode.stop.label "Khởi động lại và kích hoạt các tiện ích">
+<!ENTITY helpSafeMode.stop.accesskey "R">
+<!ENTITY productHelp.label "Trợ giúp &brandShortName;">
+<!ENTITY productHelp.accesskey "H">
+<!ENTITY productHelp.commandkey "VK_F1">
+<!ENTITY productHelpMac.commandkey "?">
+<!ENTITY productHelpMac.modifiers "accel">
+
+<!ENTITY helpKeyboardShortcuts.label "Các phím tắt bàn phím">
+<!ENTITY helpKeyboardShortcuts.accesskey "K">
+
+<!ENTITY helpFeedbackPage.label "Gửi phản hồi…">
+<!ENTITY helpFeedbackPage.accesskey "S">
+
+<!ENTITY helpShowTour2.label "Các tính năng cơ bản của &brandShorterName;">
+<!ENTITY helpShowTour2.accesskey "o">
+
+<!ENTITY helpGetInvolvedPage.label "Tham gia đóng góp">
+<!ENTITY helpGetInvolvedPage.accesskey "I">
+
+<!ENTITY helpDonationsPage.label "Quyên góp tài chính">
+<!ENTITY helpDonationsPage.accesskey "M">
diff --git a/l10n-vi/mail/chrome/messenger/beckyImportMsgs.properties b/l10n-vi/mail/chrome/messenger/beckyImportMsgs.properties
new file mode 100644
index 0000000000..2c16bf4a31
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/beckyImportMsgs.properties
@@ -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/.
+#
+# The following are used by the becky import code to display status/error
+# and informational messages
+
+# Short name of import module
+BeckyImportName=Becky! Internet Mail
+
+# Description of import module
+BeckyImportDescription=Nhập thư cục bộ từ Becky! Internet Mail
+
+# Success Message
+# LOCALIZATION NOTE : Do not translate the word "%S" below.
+# The variable %S will contain the name of the Mailbox
+BeckyImportMailboxSuccess=Thư cục bộ đã được nhập thành công từ %S.
+
+BeckyImportAddressSuccess=Đã nhập sổ địa chỉ
diff --git a/l10n-vi/mail/chrome/messenger/charsetTitles.properties b/l10n-vi/mail/chrome/messenger/charsetTitles.properties
new file mode 100644
index 0000000000..8af3d8f207
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/charsetTitles.properties
@@ -0,0 +1,69 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+## Rule of this file:
+## 1. key should always be in lower case ascii so we can do case insensitive
+## comparison in the code faster.
+
+## Format of this file:
+## charset_name.title = a_title - specifies the human readable title for
+## this charset
+
+iso-8859-1.title = Phương Tây (ISO-8859-1)
+iso-8859-2.title = Trung Âu (ISO-8859-2)
+iso-8859-3.title = Nam Âu (ISO-8859-3)
+iso-8859-4.title = Baltic (ISO-8859-4)
+iso-8859-10.title = Bắc Âu (ISO-8859-10)
+iso-8859-13.title = Baltic (ISO-8859-13)
+iso-8859-14.title = Celtic (ISO-8859-14)
+iso-8859-15.title = Phương Tây (ISO-8859-15)
+iso-8859-16.title = Rumani (ISO-8859-16)
+windows-1250.title = Trung Âu (Windows-1250)
+windows-1252.title = Phương Tây (Windows-1252)
+windows-1254.title = Thổ Nhĩ Kỳ (Windows-1254)
+windows-1257.title = Baltic (Windows-1257)
+macintosh.title = Phương Tây (MacRoman)
+x-mac-ce.title = Trung Âu (MacCE)
+x-mac-turkish.title = Thổ Nhĩ Kỳ (MacTurkish)
+x-mac-croatian.title = Croatia (MacCroatian)
+x-mac-romanian.title = Rumani (MacRomanian)
+x-mac-icelandic.title = Iceland (MacIcelandic)
+iso-2022-jp.title = Nhật Bản (ISO-2022-JP)
+shift_jis.title = Nhật Bản (Shift_JIS)
+euc-jp.title = Nhật Bản (EUC-JP)
+big5.title = Tiếng Trung phồn thể (Big5)
+big5-hkscs.title = Tiếng Trung phồn thể (Big5-HKSCS)
+gb2312.title = Tiếng Trung giản thể (GB2312)
+gbk.title = Tiếng Trung giản thể (GBK)
+euc-kr.title = Hàn Quốc (EUC-KR)
+utf-7.title = Unicode (UTF-7)
+utf-8.title = Unicode (UTF-8)
+utf-16.title = Unicode (UTF-16)
+utf-16le.title = Unicode (UTF-16LE)
+utf-16be.title = Unicode (UTF-16BE)
+iso-8859-5.title = Cyrillic (ISO-8859-5)
+windows-1251.title = Cyrillic (Windows-1251)
+x-mac-cyrillic.title = Cyrillic (MacCyrillic)
+x-mac-ukrainian.title = Cyrillic/Ucraina (MacUkrainian)
+koi8-r.title = Cyrillic (KOI8-R)
+koi8-u.title = Cyrillic/Ucraina (KOI8-U)
+iso-8859-7.title = Hy Lạp (ISO-8859-7)
+windows-1253.title = Hy Lạp (Windows-1253)
+x-mac-greek.title = Hy Lạp (MacGreek)
+windows-1258.title = Tiếng Việt (Windows-1258)
+windows-874.title = Tiếng Thái (Windows-874)
+iso-8859-6.title = Tiếng Ả Rập (ISO-8859-6)
+x-user-defined.title = Người dùng xác định
+gb18030.title = Tiếng Trung giản thể (GB18030)
+x-mac-arabic.title = Tiếng Ả Rập (MacArabic)
+
+chardet.off.title = (Tắt)
+chardet.ja_parallel_state_machine.title = Tiếng Nhật
+chardet.ko_parallel_state_machine.title = Tiếng Hàn
+chardet.zhtw_parallel_state_machine.title = Tiếng Trung phồn thể
+chardet.zhcn_parallel_state_machine.title = Tiếng Trung giản thể
+chardet.zh_parallel_state_machine.title = Tiếng Trung
+chardet.cjk_parallel_state_machine.title = Đông Á
+chardet.ruprob.title = Tiếng Nga
+chardet.ukprob.title = Tiếng Ukraina
diff --git a/l10n-vi/mail/chrome/messenger/chat.dtd b/l10n-vi/mail/chrome/messenger/chat.dtd
new file mode 100644
index 0000000000..2458b5b9cc
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/chat.dtd
@@ -0,0 +1,44 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY onlineContactsHeader.label "Liên hệ trực tuyến">
+<!ENTITY offlineContactsHeader.label "Liên hệ ngoại tuyến">
+<!ENTITY conversationsHeader.label "Cuộc trò chuyện">
+<!ENTITY searchResultConversation.label "Kết quả tìm kiếm">
+<!ENTITY chat.noConv.title "Cuộc trò chuyện sẽ được hiển thị ở đây.">
+<!ENTITY chat.noConv.description "Sử dụng danh sách liên hệ trong bảng điều khiển bên trái để bắt đầu một cuộc trò chuyện.">
+<!ENTITY chat.noPreviousConv.description "&brandShortName; hiện không có bất kỳ cuộc trò chuyện nào trước đó được lưu trữ cho liên hệ này.">
+<!ENTITY chat.noAccount.title "Bạn chưa thiết lập tài khoản trò chuyện.">
+<!ENTITY chat.noAccount.description "Hãy để &brandShortName; hướng dẫn bạn trong quá trình thiết lập tài khoản trò chuyện của bạn.">
+<!ENTITY chat.accountWizard.button "Bắt đầu">
+<!ENTITY chat.noConnectedAccount.title "Tài khoản trò chuyện của bạn không được kết nối.">
+<!ENTITY chat.noConnectedAccount.description "Bạn có thể kết nối chúng từ hộp thoại 'Trạng thái trò chuyện':">
+<!ENTITY chat.showAccountManager.button "Hiển thị trạng thái trò chuyện">
+
+<!ENTITY chat.participants "Người tham gia:">
+<!ENTITY chat.previousConversations "Cuộc trò chuyện trước:">
+<!ENTITY chat.ongoingConversation "Cuộc trò chuyện đang diễn ra">
+
+<!ENTITY openConversationCmd.label "Bắt đầu một cuộc trò chuyện">
+<!ENTITY openConversationCmd.accesskey "c">
+<!ENTITY closeConversationCmd.label "Đóng cuộc trò chuyện">
+<!ENTITY closeConversationCmd.accesskey "C">
+<!ENTITY aliasCmd.label "Đổi tên">
+<!ENTITY aliasCmd.accesskey "R">
+<!ENTITY deleteCmd.label "Xóa liên hệ">
+<!ENTITY deleteCmd.accesskey "v">
+
+<!ENTITY openConversationButton.tooltip "Bắt đầu một cuộc trò chuyện">
+<!ENTITY closeConversationButton.tooltip "Đóng cuộc trò chuyện">
+
+<!ENTITY addBuddyButton.label "Thêm liên hệ">
+<!ENTITY joinChatButton.label "Tham gia trò chuyện">
+<!ENTITY chatAccountsButton.label "Hiển thị tài khoản">
+
+<!ENTITY status.available "Có mặt">
+<!ENTITY status.unavailable "Không sẵn sàng">
+<!ENTITY status.offline "Ngoại tuyến">
+
+<!ENTITY openLinkCmd.label "Mở liên kết…">
+<!ENTITY openLinkCmd.accesskey "O">
diff --git a/l10n-vi/mail/chrome/messenger/chat.properties b/l10n-vi/mail/chrome/messenger/chat.properties
new file mode 100644
index 0000000000..83e9dae896
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/chat.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/.
+
+chatTabTitle=Trò chuyện
+goBackToCurrentConversation.button=Quay lại cuộc trò chuyện hiện tại
+# LOCALIZATION NOTE (startAConversationWith.button):
+# %S is replaced with the display name of a contact.
+startAConversationWith.button=Bắt đầu một cuộc trò chuyện với %S
+
+# LOCALIZATION NOTE (defaultGroup):
+# this is used in the addBuddies dialog if the list of existing groups is empty
+defaultGroup=Liên hệ
+
+# LOCALIZATION NOTE (buddy.authRequest.label):
+# This string appears in a notification bar at the
+# top of the Contacts window when someone added the user to his/her
+# contact list, to request the permission from the user to share
+# status information with this potential new contact.
+# %S is replaced with the user name of the potential new contact.
+buddy.authRequest.label=%S muốn trò chuyện với bạn
+buddy.authRequest.allow.label=Cho phép
+buddy.authRequest.allow.accesskey=C
+buddy.authRequest.deny.label=Từ chối
+buddy.authRequest.deny.accesskey=T
+
+# LOCALIZATION NOTE (buddy.deletePrompt.title):
+# %S here will be replaced by the alias (or username) of a buddy about
+# to be removed from the buddy list.
+buddy.deletePrompt.title=Xóa %S?
+
+# LOCALIZATION NOTE (buddy.deletePrompt.message):
+# %1$S will be replaced by the name of a buddy (either the alias
+# followed by the username between parenthesis if an alias is set, or
+# only the username otherwise).
+# %2$S will be the name of the protocol on which this buddy is removed
+# (for example: AIM, MSN, Google Talk).
+#
+# Please find a wording that will keep the username as close as
+# possible to the beginning of the string, because this is the
+# important information that an user should see when looking quickly
+# at this prompt.
+buddy.deletePrompt.message=%1$S sẽ bị xóa vĩnh viễn khỏi danh sách bạn bè %2$S của bạn nếu bạn tiếp tục.
+
+# LOCALIZATION NOTE (buddy.deletePrompt.displayName):
+# This is used to format the display name inserted in buddy.deletePrompt.message
+# %1$S is the alias, %2$S is the username.
+buddy.deletePrompt.displayName=%1$S (%2$S)
+
+# LOCALIZATION NOTE (buddy.deletePrompt.button):
+# the & symbol indicates the position of the character that should be
+# used as the accesskey for this button.
+buddy.deletePrompt.button=&Xóa
+
+displayNameEmptyText=Tên hiển thị
+userIconFilePickerTitle=Chọn biểu tượng mới…
+
+# LOCALIZATION NOTE (chat.isTyping, chat.hasStoppedTyping):
+# The contact display name is displayed with a big font on a first
+# line and these two strings are displayed on a second line with a
+# smaller font. Please try to find a wording that make this look
+# almost like a sentence.
+chat.isTyping=đang nhập…
+chat.hasStoppedTyping=đã dừng nhập.
+# LOCALIZATION NOTE (chat.contactIsTyping, chat.contactHasStoppedTyping):
+# These strings are displayed in a tooltip when hovering the status type icon.
+# %S is replaced with the display name of the contact.
+chat.contactIsTyping=%S đang nhập.
+chat.contactHasStoppedTyping=%S đã dừng nhập.
+
+# LOCALIZATION NOTE (unknownCommand):
+# This is shown when an unknown command (/foo) is attempted. %S is the command.
+unknownCommand=Lệnh %S không được hỗ trợ. Nhập /help để xem danh sách các lệnh.
+
+#LOCALIZATION NOTE
+# These are special entries in the log tree for the corresponding days.
+log.today=Hôm nay
+log.yesterday=Hôm qua
+
+#LOCALIZATION NOTE
+# These are special groups in the log tree for the last 3-7 days and
+# the last 8-14 days.
+log.currentWeek=Tuần này
+log.previousWeek=Tuần trước
+
+# LOCALIZATION NOTE (messagePreview):
+# This is the default message preview to be shown
+# when the user has chosen not to show any info in the notification about the
+# incoming message being notified.
+messagePreview=Tin nhắn trò chuyện mới
+
+#LOCALIZATION NOTE (bundledMessagePreview): Semi-colon list of plural forms.
+# Used when multiple incoming messages from the same sender are bundled
+# into a single notification.
+# #1 is the number of incoming messages the user is being notified about. When #1
+# is greater than one, the plural form after the semicolon is used.
+# Do not translate %1$S, it is the message preview to be shown in the
+# notification, i.e. the first incoming message.
+bundledMessagePreview=%1$S… (và thêm #1 tin nhắn)
diff --git a/l10n-vi/mail/chrome/messenger/configEditorOverlay.dtd b/l10n-vi/mail/chrome/messenger/configEditorOverlay.dtd
new file mode 100644
index 0000000000..b625ef49a9
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/configEditorOverlay.dtd
@@ -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/. -->
+
+<!ENTITY closeCmd.key "W">
+
diff --git a/l10n-vi/mail/chrome/messenger/converterDialog.dtd b/l10n-vi/mail/chrome/messenger/converterDialog.dtd
new file mode 100644
index 0000000000..5169792310
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/converterDialog.dtd
@@ -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/. -->
+
+<!ENTITY converterDialog.continueButton "Tiếp tục">
+<!ENTITY converterDialog.cancelButton "Hủy bỏ">
+<!ENTITY converterDialog.finishButton "Hoàn thành">
+<!ENTITY converterDialog.complete "Việc chuyển đổi đã hoàn tất. Bây giờ &brandShortName; sẽ khởi động lại.">
+<!ENTITY converterDialog.error "Chuyển đổi thất bại.">
+
diff --git a/l10n-vi/mail/chrome/messenger/converterDialog.properties b/l10n-vi/mail/chrome/messenger/converterDialog.properties
new file mode 100644
index 0000000000..c59c2604e8
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/converterDialog.properties
@@ -0,0 +1,41 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (converterDialog.warning):
+# %1$S will be replaced by the name of the account which is going to be converted.
+# %2$S will be replaced by the format into which the account will be converted.
+# %3$S will be replaced by $BrandShortName.
+converterDialog.warning=Các thư trong tài khoản %1$S giờ sẽ được chuyển đổi sang định dạng %2$S. %3$S sẽ khởi động lại sau khi chuyển đổi hoàn tất.
+
+# LOCALIZATION NOTE (converterDialog.message):
+# %1$S will be replaced by the name of the account which is being converted.
+# %2$S will be replaced by the format into which the account will be converted.
+converterDialog.message=Chuyển đổi tài khoản %1$S thành %2$S…
+
+# LOCALIZATION NOTE (converterDialog.warningForDeferredAccount):
+# %1$S will be replaced by the name of the deferred account for which migration is initiated by the user.
+# %2$S will be replaced by the name of the account to which the deferred account is deferred ie the name of the deferred-to account.
+# %3$S will be replaced by the name of the deferred-to account.
+# %4$S will be replaced by a comma separated list of names of accounts which are deferred to the deferred-to account.
+# %5$S will be replaced by a comma separated list of names of accounts which are going to get converted.
+# %6$S will be replaced by the format into which the accounts will be converted.
+# %7$S will be replaced by $BrandShortName.
+converterDialog.warningForDeferredAccount=%1$S được hoãn lại thành %2$S. Tài khoản được hoãn đến %3$S: %4$S. Các thư trong tài khoản %5$S giờ sẽ được chuyển đổi sang định dạng %6$S. %7$S sẽ khởi động lại sau khi chuyển đổi hoàn tất.
+
+# LOCALIZATION NOTE (converterDialog.warningForDeferredToAccount):
+# %1$S will be replaced by the name of the deferred-to account for which migration is initiated by the user and to which other accounts are deferred.
+# %2$S will be replaced by a comma separated list of names of accounts which are deferred to the deferred-to account.
+# %3$S will be replaced by a comma separated list of names of accounts which are going to get converted.
+# %4$S will be replaced by the format into which the accounts will be converted.
+# %5$S will be replaced by $BrandShortName.
+converterDialog.warningForDeferredToAccount=Tài khoản trì hoãn cho %1$S: %2$S. Các thư trong tài khoản %3$S giờ sẽ được chuyển đổi sang định dạng %4$S. %5$S sẽ khởi động lại sau khi chuyển đổi hoàn tất.
+
+# LOCALIZATION NOTE (converterDialog.messageForDeferredAccount):
+# %1$S will be replaced by a comma separated list of names of accounts which are being converted.
+# %2$S will be replaced by the format into which the accounts will be converted.
+converterDialog.messageForDeferredAccount=Đang chuyển đổi tài khoản %1$S thành %2$S…
+
+# LOCALIZATION NOTE (converterDialog.percentDone):
+# %1$S will be replaced by the percentage of conversion that is complete.
+converterDialog.percentDone=Đã hoàn thành %1$S%%
diff --git a/l10n-vi/mail/chrome/messenger/custom.properties b/l10n-vi/mail/chrome/messenger/custom.properties
new file mode 100644
index 0000000000..6d13ca194b
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/custom.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/.
+
+colonInHeaderName=Tiêu đề bạn đã nhập chứa một ký tự không hợp lệ, chẳng hạn như ':', ký tự không in được, ký tự không ascii hoặc ký tự ascii 8 bit. Vui lòng xóa ký tự không hợp lệ và thử lại.
diff --git a/l10n-vi/mail/chrome/messenger/customizeToolbar.dtd b/l10n-vi/mail/chrome/messenger/customizeToolbar.dtd
new file mode 100644
index 0000000000..6fec54eaf1
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/customizeToolbar.dtd
@@ -0,0 +1,18 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY dialog.title "Tùy biến thanh công cụ">
+<!ENTITY dialog.dimensions "width: 92ch; height: 36em;">
+<!ENTITY instructions.description "Bạn có thể thêm hoặc bớt các biểu tượng bằng cách kéo hoặc thả trên các thanh công cụ.">
+<!ENTITY show.label "Hiện:">
+<!ENTITY iconsAndText.label "Biểu tượng và văn bản">
+<!ENTITY icons.label "Biểu tượng">
+<!ENTITY text.label "Văn bản">
+<!ENTITY iconsBesideText.label "Biểu tượng bên cạnh văn bản">
+<!ENTITY useSmallIcons.label "Dùng các biểu tượng nhỏ">
+<!ENTITY restoreDefaultSet.label "Khôi phục về mặc định">
+<!ENTITY showTitlebar2.label "Thanh tiêu đề">
+<!ENTITY extraDragSpace2.label "Kéo khoảng trắng">
+<!ENTITY saveChanges.label "Xong">
+<!ENTITY undoChanges.label "Hoàn tác các thay đổi">
diff --git a/l10n-vi/mail/chrome/messenger/customizeToolbar.properties b/l10n-vi/mail/chrome/messenger/customizeToolbar.properties
new file mode 100644
index 0000000000..d90c4f85ee
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/customizeToolbar.properties
@@ -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/.
+
+enterToolbarTitle=Thanh công cụ mới
+enterToolbarName=Nhập tên của thanh công cụ này:
+enterToolbarDup=Đã có thanh công cụ với tên “%S”. Hãy nhập tên khác.
+enterToolbarBlank=Bạn phải nhập tên để tạo thanh công cụ mới.
+separatorTitle=Dấu phân cách
+springTitle=Khoảng cách linh động
+spacerTitle=Khoảng trống
diff --git a/l10n-vi/mail/chrome/messenger/devtools/dbgserver.dtd b/l10n-vi/mail/chrome/messenger/devtools/dbgserver.dtd
new file mode 100644
index 0000000000..0c257d40ac
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/devtools/dbgserver.dtd
@@ -0,0 +1,4 @@
+<!ENTITY options.title "Tùy chọn công cụ dành cho nhà phát triển">
+<!ENTITY options.status.label "Trạng thái:">
+<!ENTITY options.port.label "Cổng:">
+<!ENTITY options.forcelocal.label "Cho phép kết nối từ các máy tính khác">
diff --git a/l10n-vi/mail/chrome/messenger/devtools/dbgserver.properties b/l10n-vi/mail/chrome/messenger/devtools/dbgserver.properties
new file mode 100644
index 0000000000..5edfd7becf
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/devtools/dbgserver.properties
@@ -0,0 +1,11 @@
+options.stop.label=Dừng máy chủ công cụ phát triển
+options.start.label=Khởi động máy chủ công cụ phát triển
+
+options.connected.label=#1 máy khách đã kết nối
+options.connected.tooltip=Máy chủ công cụ phát triển đang chạy và có các máy khách được kết nối.
+options.listening.label=Đang nghe
+options.listening.tooltip=Máy chủ công cụ phát triển đang chạy và chờ kết nối.
+options.idle.label=Không chạy
+options.idle.tooltip=Máy chủ công cụ phát triển không chạy. Bạn có thể bắt đầu nó từ hộp thoại này.
+options.unsupported.label=Không được hỗ trợ
+options.unsupported.tooltip=Đã xảy ra lỗi khi tải máy chủ công cụ dành cho nhà phát triển tích hợp. Hãy chắc chắn rằng nó được đóng gói và kiểm tra bảng điều khiển lỗi của bạn cho các thông báo.
diff --git a/l10n-vi/mail/chrome/messenger/downloadheaders.dtd b/l10n-vi/mail/chrome/messenger/downloadheaders.dtd
new file mode 100644
index 0000000000..22b0a7caf2
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/downloadheaders.dtd
@@ -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/. -->
+
+<!ENTITY all.label "Tải xuống tất cả tiêu đề">
+<!ENTITY all.accesskey "D">
+<!--LOCALIZATION NOTE (download.label):
+ consider the download.label and headers.label as a single sentence
+ with the number of headers to be downloaded inserted between them:
+ EXAMPLE: "Download" <some number> "headers"
+ Either label could be set to null ("") if required grammatically.
+-->
+
+<!ENTITY download.label "Tải xuống">
+<!ENTITY download.accesskey "o">
+<!--LOCALIZATION NOTE (headers.label): see note for download.label -->
+<!ENTITY headers.label "tiêu đề">
+<!ENTITY headers.accesskey "h">
+<!ENTITY mark.label "Đánh dấu các tiêu đề còn lại là đã đọc">
+<!ENTITY mark.accesskey "M">
diff --git a/l10n-vi/mail/chrome/messenger/editContactOverlay.dtd b/l10n-vi/mail/chrome/messenger/editContactOverlay.dtd
new file mode 100644
index 0000000000..3ff2a2e5d4
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/editContactOverlay.dtd
@@ -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/. -->
+
+<!ENTITY editContactPanelDeleteContact.label "Xóa">
+<!ENTITY editContactPanelDeleteContact.accesskey "l">
+
+<!ENTITY editContactName.label "Tên:">
+<!ENTITY editContactName.accesskey "N">
+
+<!ENTITY editContactEmail.label "Email:">
+<!ENTITY editContactEmail.accesskey "E">
+
+<!ENTITY editContactAddressBook.label "Sổ địa chỉ:">
+<!ENTITY editContactAddressBook.accesskey "A">
+
+<!ENTITY editContactPanelDone.label "Xong">
+<!ENTITY editContactPanelDone.accesskey "D">
+
+<!ENTITY contactMoveDisabledWarning.description "Bạn không thể thay đổi sổ địa chỉ vì tên liên hệ này nằm trong một danh sách thư.">
diff --git a/l10n-vi/mail/chrome/messenger/editContactOverlay.properties b/l10n-vi/mail/chrome/messenger/editContactOverlay.properties
new file mode 100644
index 0000000000..cd2ac91232
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/editContactOverlay.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/.
+
+editTitle=Chỉnh sửa liên hệ
+viewTitle=Hiển thị Danh bạ
+
+editDetailsLabel=Chỉnh sửa chi tiết
+editDetailsAccessKey=t
+viewDetailsLabel=Hiển thị Chi tiết
+viewDetailsAccessKey=n
+
+deleteContactTitle=Xóa Danh Bạ
+deleteContactMessage=Bạn có chắc là mình muốn xóa đối tác này không?
diff --git a/l10n-vi/mail/chrome/messenger/fieldMapImport.dtd b/l10n-vi/mail/chrome/messenger/fieldMapImport.dtd
new file mode 100644
index 0000000000..781c8106af
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/fieldMapImport.dtd
@@ -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/. -->
+
+<!ENTITY fieldMapImport.title "Nhập sổ địa chỉ">
+<!ENTITY fieldMapImport.size "width: 40em; height: 30em;">
+<!ENTITY fieldMapImport.recordNumber "Dữ liệu đã nhập cho Bản ghi: ">
+<!ENTITY fieldMapImport.next.label "Tiếp">
+<!ENTITY fieldMapImport.next.accesskey "i">
+<!ENTITY fieldMapImport.previous.label "Trước">
+<!ENTITY fieldMapImport.previous.accesskey "r">
+<!ENTITY fieldMapImport.text "Sử dụng chuyển lên và chuyển xuống để các trường trong sổ địa chỉ ở bên trái phù hợp với dữ liệu chính xác cho việc nhập ở bên phải. Bỏ chọn các mục mà bạn không muốn nhập.">
+<!ENTITY fieldMapImport.up.label "Di chuyển lên">
+<!ENTITY fieldMapImport.up.accesskey "L">
+<!ENTITY fieldMapImport.down.label "Di chuyển xuống">
+<!ENTITY fieldMapImport.down.accesskey "X">
+<!ENTITY fieldMapImport.fieldListTitle "Các trường của sổ địa chỉ">
+<!ENTITY fieldMapImport.dataTitle "Dữ liệu bản ghi cần nhập">
+<!ENTITY fieldMapImport.skipFirstRecord.label "Bản ghi đầu tiên chứa các tên trường">
+<!ENTITY fieldMapImport.skipFirstRecord.accessKey "B">
diff --git a/l10n-vi/mail/chrome/messenger/filter.properties b/l10n-vi/mail/chrome/messenger/filter.properties
new file mode 100644
index 0000000000..82f3f9b8fb
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/filter.properties
@@ -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/.
+
+mustSelectFolder=Bạn phải chọn một thư mục đích.
+enterValidEmailAddress=Nhập một địa chỉ e-mail hợp lệ để chuyển tiếp tới.
+pickTemplateToReplyWith=Chọn một thư mẫu để trả lời.
+mustEnterName=Bạn phải đặt tên cho bộ lọc này.
+cannotHaveDuplicateFilterTitle=Trùng lặp tên bộ lọc
+cannotHaveDuplicateFilterMessage=Tên bộ lọc đã tồn tại. Vui lòng nhập tên bộ lọc khác.
+mustHaveFilterTypeTitle=Không có sự kiện bộ lọc nào được chọn
+mustHaveFilterTypeMessage=Bạn phải chọn ít nhất một sự kiện khi bộ lọc này được áp dụng. Nếu bạn tạm thời không muốn bộ lọc chạy ở bất kỳ sự kiện nào, hãy bỏ chọn trạng thái được bật từ hộp thoại bộ lọc thư.
+deleteFilterConfirmation=Bạn có chắc là bạn muốn xóa bộ lọc đã chọn không?
+untitledFilterName=Bộ lọc không tiêu đề
+matchAllFilterName=Khớp tất cả thư
+filterListBackUpMsg=Bộ lọc của bạn không hoạt động vì tập tin msgFilterRules.dat, nơi chứa bộ lọc của bạn, không thể đọc được. Một tập tin msgFilterRules.dat mới sẽ được tạo và một bản sao lưu của tập tin cũ, có tên rulesbackup.dat, sẽ được tạo trong cùng thư mục.
+customHeaderOverflow=Bạn đã vượt quá giới hạn 50 đầu đề tùy biến. Vui lòng xóa bớt đầu đề và thử lại.
+filterCustomHeaderOverflow=Bộ lọc của bạn đã vượt quá giới hạn 50 đầu đề tùy biến. Vui lòng chỉnh sửa tập tin msgFilterRules.dat, nơi chứa bộ lọc của bạn, để dùng ít đầu đề hơn.
+invalidCustomHeader=Một trong số các bộ lọc của bạn dùng một đầu đề tùy biến có chứa một kí tự bất hợp lệ, có thể là ':', một kí tự không-in-được, một kí tự không-phải-ascii, hoặc một kí tự ascii 8 bit. Vui lòng chỉnh sửa tập tin msgFilterRules.dat, nơi chứa bộ lọc của bạn, để xóa kí tự bất hợp lệ ra khỏi các đầu đề tùy biến.
+continueFilterExecution=Thất bại khi áp dụng bộ lọc %S. Bạn có muốn tiếp tục áp dụng bộ lọc?
+promptTitle=Bộ lọc đang chạy
+promptMsg=Bạn hiện đang trong quá trình lọc thư.\nBạn có muốn tiếp tục áp dụng các bộ lọc?
+stopButtonLabel=Dừng
+continueButtonLabel=Tiếp tục
+# LOCALIZATION NOTE(cannotEnableIncompatFilter)
+# %S=the name of the application
+cannotEnableIncompatFilter=Bộ lọc này có thể được tạo bởi phiên bản mới hơn hoặc không tương thích với %S. Bạn không thể kích hoạt bộ lọc này vì chúng tôi không biết cách áp dụng nó.
+dontWarnAboutDeleteCheckbox=Đừng hỏi lại tôi
+# LOCALIZATION NOTE(copyToNewFilterName)
+# %S=the name of the filter that is being copied
+copyToNewFilterName=Bản sao của %S
+# LOCALIZATION NOTE(contextPeriodic.label): Semi-colon list of plural forms.
+# #1=the number of minutes
+contextPeriodic.label=Định kỳ, sau #1 phút
+
+# LOCALIZATION NOTE(filterFailureWarningPrefix)
+# %1$S=filter error action
+# %2$S=error code as hexadecimal string.
+filterFailureWarningPrefix=Hành động lọc không thành công: "%1$S" với mã lỗi=%2$S trong khi thử:
+filterFailureSendingReplyError=Lỗi khi gửi trả lời
+filterFailureSendingReplyAborted=Đã hủy gửi trả lời
+filterFailureMoveFailed=Di chuyển thất bại
+filterFailureCopyFailed=Sao chép thất bại
+
+filterFailureAction=Không thể áp dụng hành động lọc
+
+searchTermsInvalidTitle=Thuật ngữ tìm kiếm không hợp lệ
+# LOCALIZATION NOTE(searchTermsInvalidRule)
+# %1$S=search attribute name from the invalid rule
+# %2$S=search operator from the bad rule
+searchTermsInvalidRule=Bộ lọc này không thể được lưu vì thuật ngữ tìm kiếm "%1$S %2$S" không hợp lệ trong ngữ cảnh hiện tại.
+# LOCALIZATION NOTE(filterActionOrderExplanation)
+# Keep the \n\n that mean 2 linebreaks.
+filterActionOrderExplanation=Khi một thông báo khớp với bộ lọc này, các hành động sẽ được chạy theo thứ tự này:\n\n
+filterActionOrderTitle=Lệnh hành động thực sự
+## LOCALIZATION NOTE(filterActionItem):
+# %1$S=sequence number of the action, %2$S=action text, %3$S=action argument
+filterActionItem=%1$S. %2$S %3$S\n
+
+## LOCALIZATION NOTE(filterCountVisibleOfTotal):
+# %1$S=number of matching filters, %2$S=total number of filters
+filterCountVisibleOfTotal=%1$S của %2$S
+## LOCALIZATION NOTE(filterCountItems):
+## Semicolon-separated list of singular and plural forms.
+## See: https://developer.mozilla.org/en/docs/Localization_and_Plurals
+## #1 is the count of items in the list.
+filterCountItems=#1 mục
+# for junk mail logging / mail filter logging
+# LOCALIZATION NOTE(junkLogDetectStr)
+# %1$S=author, %2$S=subject, %3$S=date
+junkLogDetectStr=Phát hiện thư rác từ %1$S - %2$S lúc %3$S
+# LOCALIZATION NOTE(logMoveStr)
+# %1$S=message id, %2$S=folder URI
+logMoveStr=đã di chuyển thư id = %1$S tới %2$S
+# LOCALIZATION NOTE(logCopyStr)
+# %1$S=message id, %2$S=folder URI
+logCopyStr=đã sao chép thư id = %1$S đến %2$S
+# LOCALIZATION NOTE(filterLogLine):
+# %1$S=timestamp, %2$S=log message
+filterLogLine=[%1$S] %2$S
+# LOCALIZATION NOTE(filterMessage):
+# %1$S=filter name, %1$S=log message
+filterMessage=Thông báo từ bộ lọc "%1$S": %2$S
+# LOCALIZATION NOTE(filterLogDetectStr)
+# %1$S=filter name %2$S=author, %3$S=subject, %4$S=date
+filterLogDetectStr=Đã áp dụng bộ lọc "%1$S" vào thư từ %2$S - %3$S vào lúc %4$S
+filterMissingCustomAction=Thiếu hành động tùy chỉnh
+filterAction2=mức ưu tiên đã thay đổi
+filterAction3=đã xóa
+filterAction4=đã đánh dấu là đã đọc
+filterAction5=chủ đề đã xóa
+filterAction6=chủ đề đã xem
+filterAction7=đã gắn dấu sao
+filterAction8=đã dán nhãn
+filterAction9=đã trả lời
+filterAction10=đã chuyển tiếp
+filterAction11=thực thi bị dừng
+filterAction12=đã xóa khỏi máy chủ POP3
+filterAction13=để trên máy chủ POP3
+filterAction14=điểm số thư rác
+filterAction15=nội dung được lấy từ máy chủ POP3
+filterAction16=đã sao chép vào thư mục
+filterAction17=đã dán nhãn
+filterAction18=chủ đề con đã bỏ qua
+filterAction19=đánh dấu là chưa đọc
+# LOCALIZATION NOTE(filterAutoNameStr)
+# %1$S=Header or item to match, e.g. "From", "Tag", "Age in days", etc.
+# %2$S=Operator, e.g. "Contains", "is", "is greater than", etc.
+# %3$S=Value, e.g. "Steve Jobs", "Important", "42", etc.
+filterAutoNameStr=%1$S %2$S: %3$S
diff --git a/l10n-vi/mail/chrome/messenger/folderProps.dtd b/l10n-vi/mail/chrome/messenger/folderProps.dtd
new file mode 100644
index 0000000000..cdfc244d53
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/folderProps.dtd
@@ -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/. -->
+
+<!ENTITY folderProps.windowtitle.label "Thuộc tính">
+
+<!ENTITY generalInfo.label "Thông tin Tổng quát">
+<!ENTITY folderCharsetFallback2.label "Mã hóa văn bản dự phòng:">
+<!ENTITY folderCharsetFallback2.accesskey "E">
+<!ENTITY folderCharsetEnforce2.label "Áp dụng mã hóa cho tất cả các thư trong thư mục (cài đặt mã hóa văn bản tin nhắn cá nhân và tự động phát hiện sẽ bị bỏ qua)">
+<!ENTITY folderCharsetEnforce2.accesskey "A">
+<!ENTITY folderRebuildSummaryFileTip2.label "Xây dựng lại Chỉ số Tập tin Tóm tắt">
+<!ENTITY folderRebuildSummaryFile2.label "Sửa thư mục">
+<!ENTITY folderRebuildSummaryFile2.accesskey "S">
+<!ENTITY folderRebuildSummaryFile.explanation "Đôi khi tập tin chỉ mục của thư mục (.msf) bị hư và thư tin trông có thể như bị biến mất hoặc các thư tin đã xóa lại hiện ra; sửa thư mục có thể khắc phục các vấn đề này.">
+<!ENTITY folderIncludeInGlobalSearch.label "Bao gồm thư tin trong thư mục này trong kết quả Tìm kiếm Bao quát">
+<!ENTITY folderIncludeInGlobalSearch.accesskey "g">
+
+<!ENTITY retention.label "Chính sách Sử dụng">
+<!ENTITY retentionUseAccount.label "Sử dụng thiết lập tài khoản của tôi">
+<!ENTITY retentionUseAccount.accesskey "S">
+<!ENTITY daysOld.label "ngày">
+<!ENTITY message.label "thư mới nhất">
+<!ENTITY retentionCleanup.label "Để khôi phục dung lượng đĩa, thư cũ sẽ bị xóa.">
+<!ENTITY retentionCleanupImap.label "Để khôi phục dung lượng đĩa, thư cũ có thể bị xóa vĩnh viễn, cả bản sao trong máy lẫn bản gốc trên máy chủ.">
+<!ENTITY retentionCleanupPop.label "Để khôi phục dung lượng đĩa, thư cũ có thể bị xóa vĩnh viễn, bao gồm cả bản gốc trên máy chủ.">
+<!ENTITY retentionDeleteMsg.label "Xóa thư cũ hơn">
+<!ENTITY retentionDeleteMsg.accesskey "a">
+<!ENTITY retentionKeepAll.label "Không xóa bất kì thư nào">
+<!ENTITY retentionKeepAll.accesskey "K">
+<!ENTITY retentionKeepRecent.label "Xóa tất cả trừ gần đây">
+<!ENTITY retentionKeepRecent.accesskey "g">
+<!ENTITY retentionApplyToFlagged.label "Luôn luôn giữ lại thư gắn sao">
+<!ENTITY retentionApplyToFlagged.accesskey "s">
+
+<!ENTITY folderSynchronizationTab.label "Đồng bộ hóa">
+<!ENTITY folderCheckForNewMessages2.label "Khi lấy thư tin mới cho tài khoản này, luôn luôn kiểm tra thư mục này">
+<!ENTITY folderCheckForNewMessages2.accesskey "K">
+
+<!ENTITY offlineFolder.check.label "Chọn thư mục này để dùng ngoại tuyến">
+<!ENTITY offlineFolder.check.accesskey "C">
+<!ENTITY offlineFolder.button.label "Tải ngay">
+<!ENTITY offlineFolder.button.accesskey "T">
+
+<!ENTITY selectofflineNewsgroup.check.label "Chọn nhóm tin để dùng ngoại tuyến">
+<!ENTITY selectofflineNewsgroup.check.accesskey "o">
+<!ENTITY offlineNewsgroup.button.label "Tải ngay">
+<!ENTITY offlineNewsgroup.button.accesskey "i">
+
+<!ENTITY folderProps.name.label "Tên:">
+<!ENTITY folderProps.name.accesskey "T">
+<!ENTITY folderProps.color.label "Màu biểu tượng:">
+<!ENTITY folderProps.color.accesskey "I">
+<!ENTITY folderProps.reset.tooltip "Khôi phục màu mặc định">
+<!ENTITY folderProps.location.label "Địa chỉ:">
+<!ENTITY folderProps.location.accesskey "a">
+
+<!ENTITY folderSharingTab.label "Chia sẻ">
+<!ENTITY privileges.button.label "Quyền hạn…">
+<!ENTITY privileges.button.accesskey "Q">
+<!ENTITY permissionsDesc.label "Bạn có những quyền sau:">
+<!ENTITY folderOtherUsers.label "Những người khác có quyền truy cập vào thư mục này:">
+<!ENTITY folderType.label "Kiểu Thư Mục:">
+
+<!ENTITY folderQuotaTab.label "Hạn mức">
+<!ENTITY folderQuotaUsage.label "Sử dụng:">
+<!ENTITY folderQuotaStatus.label "Trạng thái:">
+
+<!ENTITY numberOfMessages.label "Số lượng tin nhắn:">
+<!-- LOCALIZATION NOTE: When the number of messages can't be determined, this string is displayed as the number -->
+<!ENTITY numberUnknown.label "không rõ">
+<!ENTITY sizeOnDisk.label "Kích thước trên ổ đĩa:">
+<!-- LOCALIZATION NOTE: When the size can't be determined, this string is displayed as the size -->
+<!ENTITY sizeUnknown.label "không rõ">
diff --git a/l10n-vi/mail/chrome/messenger/folderWidgets.properties b/l10n-vi/mail/chrome/messenger/folderWidgets.properties
new file mode 100644
index 0000000000..f3f71cdc37
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/folderWidgets.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(globalInbox)
+# %S=name of the Local folders account
+globalInbox=Hộp thư đến công khai (%S)
+# LOCALIZATION NOTE(verboseFolderFormat): %1$S is folder name, %2$S is server name
+verboseFolderFormat=%1$S trên %2$S
+chooseFolder=Chọn thư mục…
+chooseAccount=Chọn tài khoản…
+noFolders=Không có thư mục có sẵn
diff --git a/l10n-vi/mail/chrome/messenger/folderpane.dtd b/l10n-vi/mail/chrome/messenger/folderpane.dtd
new file mode 100644
index 0000000000..373ee6c78f
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/folderpane.dtd
@@ -0,0 +1,7 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<!ENTITY nameColumn.label "Tên">
+<!ENTITY unreadColumn.label "Chưa đọc">
+<!ENTITY totalColumn.label "Tổng">
+<!ENTITY folderSizeColumn.label "Kích thước">
diff --git a/l10n-vi/mail/chrome/messenger/gloda.properties b/l10n-vi/mail/chrome/messenger/gloda.properties
new file mode 100644
index 0000000000..dedb0567e7
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/gloda.properties
@@ -0,0 +1,175 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 (*.facetNameLabel): These are the labels used to label the facet
+# displays in the global search facet display mechanism. They should be
+# compact descriptions of the facet type (e.g. "Folder", and don't need to
+# refer to the objects being faceted (e.g. "Message" or "Mail").
+
+# LOCALIZATION NOTE (*.includeLabel): The label to use for the included group
+# in the facet display. If not provided, we will fall back to
+# "glodaFacetView.facets.included.fallbackLabel".
+
+# LOCALIZATION NOTE (*.excludeLabel): The label to use for the excluded group
+# in the facet display. If not provided, we will fall back to
+# "glodaFacetView.facets.excluded.fallbackLabel".
+
+# LOCALIZATION NOTE (*.remainderLabel): The label to use for the remaining items
+# that are neither part of the included group or the excluded group in the
+# facet display. If not provided, we will fall back to
+# "glodaFacetView.facets.remainder.fallbackLabel".
+
+# LOCALIZATION NOTE (*.mustMatchLabel): The label to use for the popup menu
+# to indicate that the results should be restricted to messages which match
+# a particular value. If not provided, we will fall back to
+# "glodaFacetView.facets.mustMatch.fallbackLabel". #1, if present, is
+# replaced by the value of the facet (name, folder, mailing list, etc.)
+
+# LOCALIZATION NOTE (*.cantMatchLabel): The label to use for the popup menu
+# to indicate that the results should be restricted to messages which match
+# a particular value. If not provided, we will fall back to
+# "glodaFacetView.facets.cantMatch.fallbackLabel". #1, if present, is
+# replaced by the value of the facet (name, folder, mailing list, etc.)
+
+# LOCALIZATION NOTE (*.mayMatchLabel): The label to use for the popup menu
+# to indicate that the results should no longer be restricted relative to
+# this particular facet value. If not provided, we will fall back to
+# "glodaFacetView.facets.mayMatch.fallbackLabel". #1, if present, is
+# replaced by the value of the facet (name, folder, mailing list, etc.)
+
+# LOCALIZATION NOTE (*.mustMatchSomeLabel): The label to use for the popup menu
+# to indicate that the results should be restricted to messages which have
+# _some_ value (e.g. at least one tag is set). If not provided, we will fall
+# back to "glodaFacetView.facets.mustMatchSome.fallbackLabel". #1, if present,
+# is replaced by the value of the facet (name, folder, mailing list, etc.)
+
+# LOCALIZATION NOTE (*.mustMatchNoneLabel): The label to use for the popup menu
+# to indicate that the results should be restricted to messages which have _no_
+# value (e.g. no tags are set). If not provided, we will fall back to
+# "glodaFacetView.facets.mustMatchNoneLabel.fallbackLabel". #1, if present, is
+# replaced by the value of the facet (name, folder, mailing list, etc.)
+
+# LOCALIZATION NOTE (*.mayMatchAnyLabel): The label to use for the popup menu
+# to indicate that the results should not be restricted to messages which have
+# any or no value (e.g. no requirements on any tags are set). If not provided,
+# we will fall back to "glodaFacetView.facets.mayMatchAnyLabel.fallbackLabel".
+# #1, if present, is replaced by the value of the facet (name, folder, mailing
+# list, etc.)
+
+# LOCALIZATION NOTE (gloda.message.attr.account.*): Stores the account in which
+# a message's folder is located.
+gloda.message.attr.account.facetNameLabel=Tài khoản
+gloda.message.attr.account.includeLabel=được lưu trữ trong bất kỳ của:
+gloda.message.attr.account.excludeLabel=không được lưu trữ trong:
+gloda.message.attr.account.remainderLabel=các tài khoản khác:
+gloda.message.attr.account.mustMatchLabel=phải trong #1
+gloda.message.attr.account.cantMatchLabel=không thể trong #1
+
+# LOCALIZATION NOTE (gloda.message.attr.folder.*): Stores the message folder in
+# which the message is stored.
+gloda.message.attr.folder.facetNameLabel=Thư mục
+gloda.message.attr.folder.includeLabel=được lưu trữ trong bất kỳ:
+gloda.message.attr.folder.excludeLabel=không được lưu trữ trong:
+gloda.message.attr.folder.remainderLabel=các thư mục khác:
+gloda.message.attr.folder.mustMatchLabel=phải trong #1
+gloda.message.attr.folder.cantMatchLabel=không thể trong #1
+
+# LOCALIZATION NOTE (gloda.message.attr.fromMe.*): Stores everyone involved
+# with the message. This means from/to/cc/bcc.
+gloda.message.attr.fromMe.facetNameLabel=Từ Tôi
+
+# LOCALIZATION NOTE (gloda.message.attr.toMe.*): Stores everyone involved
+# with the message. This means from/to/cc/bcc.
+gloda.message.attr.toMe.facetNameLabel=Tới Tôi
+
+# LOCALIZATION NOTE (gloda.message.attr.involves.*): Stores everyone involved
+# with the message. This means from/to/cc/bcc.
+gloda.message.attr.involves.facetNameLabel=Người khác
+gloda.message.attr.involves.includeLabel=bao gồm bất kì:
+gloda.message.attr.involves.excludeLabel=không bao gồm:
+gloda.message.attr.involves.remainderLabel=thuộc tính khác:
+gloda.message.attr.involves.mustMatchLabel=phải bao gồm #1
+gloda.message.attr.involves.cantMatchLabel=không thể bao gồm #1
+
+# LOCALIZATION NOTE (gloda.message.attr.date.*): Stores the date of the message.
+# Thunderbird normally stores the date the message claims it was composed
+# according to the "Date" header. This is not the same as when the message
+# was sent or when it was eventually received by the user. In the future we
+# may change this to be one of the other dates, but not anytime soon.
+gloda.message.attr.date.facetNameLabel=Ngày
+
+# LOCALIZATION NOTE (gloda.message.attr.attachmentTypes.*): Stores the list of
+# MIME types (ex: image/png, text/plain) of real attachments (not just part of
+# the message content but explicitly named attachments) on the message.
+# Although we hope to be able to provide localized human-readable explanations
+# of the MIME type (ex: "PowerPoint document"), I don't know if that is going
+# to happen.
+gloda.message.attr.attachmentTypes.facetNameLabel=Đính kèm
+
+# LOCALIZATION NOTE (gloda.message.attr.mailing-list.*): Stores the mailing
+# lists detected in the message. This will normally be the e-mail address of
+# the mailing list and only be detected in messages received from the mailing
+# list. Extensions may contribute additional detected mailing-list-like
+# things.
+gloda.message.attr.mailing-list.facetNameLabel=Danh sách thư
+gloda.message.attr.mailing-list.noneLabel=Không có
+gloda.message.attr.mailing-list.includeLabel=nhận được trên bất kỳ của:
+gloda.message.attr.mailing-list.excludeLabel=không nhận được trên bất kỳ của:
+gloda.message.attr.mailing-list.remainderLabel=danh sách gửi thư khác:
+gloda.message.attr.mailing-list.mustMatchLabel=phải trong #1
+gloda.message.attr.mailing-list.cantMatchLabel=không thể trong #1
+gloda.message.attr.mailing-list.mustMatchSomeLabel=phải trong một danh sách thư
+gloda.message.attr.mailing-list.mustMatchNoneLabel=không thể trong một danh sách thư
+
+# LOCALIZATION NOTE (gloda.message.attr.tag.*): Stores the tags applied to the
+# message. Notably, gmail's labels are not currently exposed via IMAP and we
+# do not do anything clever with gmail, so this is independent of gmail labels
+# This may change in the future, but it's a safe bet it's not happening on
+# Thunderbird's side prior to 3.0.
+gloda.message.attr.tag.facetNameLabel=Nhãn
+gloda.message.attr.tag.noneLabel=Không có
+gloda.message.attr.tag.includeLabel=được gắn thẻ bất kỳ của:
+gloda.message.attr.tag.excludeLabel=không được gắn thẻ:
+gloda.message.attr.tag.remainderLabel=các thẻ khác:
+gloda.message.attr.tag.mustMatchLabel=phải được dán nhãn #1
+gloda.message.attr.tag.cantMatchLabel=không thể được dán nhãn #1
+gloda.message.attr.tag.mustMatchSomeLabel=phải được dán nhãn
+gloda.message.attr.tag.mustMatchNoneLabel=không thể được dán nhãn
+
+# LOCALIZATION NOTE (gloda.message.attr.star.*): Stores whether the message is
+# starred or not, as indicated by a pretty star icon. In the past, the icon
+# used to be a flag. The IMAP terminology continues to be "flagged".
+gloda.message.attr.star.facetNameLabel=Gắn sao
+
+# LOCALIZATION NOTE (gloda.message.attr.read.*): Stores whether the user has
+# read the message or not.
+gloda.message.attr.read.facetNameLabel=Đã đọc
+
+# LOCALIZATION NOTE (gloda.message.attr.repliedTo.*): Stores whether we believe
+# the user has ever replied to the message. We normally show a little icon in
+# the thread pane when this is the case.
+gloda.message.attr.repliedTo.facetNameLabel=Đã trả lời Tới
+
+# LOCALIZATION NOTE (gloda.message.attr.forwarded.*): Stores whether we believe
+# the user has ever forwarded the message. We normally show a little icon in
+# the thread pane when this is the case.
+gloda.message.attr.forwarded.facetNameLabel=Đã chuyển tiếp
+
+# LOCALIZATION NOTE (gloda.mimetype.category.*.label): Map categories of MIME
+# types defined in MimeTypeCategories.jsm to labels.
+# LOCALIZATION NOTE (gloda.mimetype.category.archives.label): Archive is
+# referring to things like zip files, tar files, tar.gz files, etc.
+gloda.mimetype.category.archives.label=Lưu trữ
+gloda.mimetype.category.documents.label=Tài liệu
+gloda.mimetype.category.images.label=Hình ảnh
+# LOCALIZATION NOTE (gloda.mimetype.category.media.label): Media is meant to
+# encompass both audio and video. This is because video and audio streams are
+# frequently stored in the same type of container and we cannot rely on the
+# sending e-mail client to have been clever enough to figure out what was
+# really in the file. So we group them together.
+gloda.mimetype.category.media.label=Đa phương tiện (Âm thanh, Đoạn phim)
+gloda.mimetype.category.pdf.label=Tập tin PDF
+# LOCALIZATION NOTE (gloda.mimetype.category.other.label): Other is the category
+# for MIME types that we don't really know what it is.
+gloda.mimetype.category.other.label=Khác
diff --git a/l10n-vi/mail/chrome/messenger/glodaComplete.properties b/l10n-vi/mail/chrome/messenger/glodaComplete.properties
new file mode 100644
index 0000000000..ee981d3d2a
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/glodaComplete.properties
@@ -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/.
+
+# LOCALIZATION NOTE (glodaComplete.messagesTagged.label): The label used
+# in the autocomplete widget to refer to a query for all messages tagged
+# by a particular tag (replacing #1).
+glodaComplete.messagesTagged.label=Tin nhắn được gắn nhãn: #1
+
+# LOCALIZATION NOTE (glodaComplete.messagesMentioning.label): The label used
+# in the autocomplete widget to refer to a search for all messages mentioning
+# a particular word (replacing #1).
+glodaComplete.messagesMentioning.label=Các thư có nói đến: #1
+
+# LOCALIZATION NOTE (glodaComplete.messagesWithMany.label): The label used
+# in the autocomplete widget to refer to a search for all messages mentioning
+# a set of words, or a phrase containing multiple words (e.g. "red pepper")
+# We use the same words in en-US, but maybe that's not always true.
+glodaComplete.messagesMentioningMany.label=Các thư có nói đến: #1
diff --git a/l10n-vi/mail/chrome/messenger/glodaFacetView.dtd b/l10n-vi/mail/chrome/messenger/glodaFacetView.dtd
new file mode 100644
index 0000000000..77ae12b5e4
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/glodaFacetView.dtd
@@ -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 (glodaFacetView.filters.label): Label at the top of the
+ faceting sidebar. Serves as a header both for the checkboxes under it as
+ well for labeled facets with multiple options. -->
+<!ENTITY glodaFacetView.filters.label "Bộ lọc">
+
+<!-- LOCALIZATION NOTE (glodaFacetView.loading.label): Label that appears when
+ the search results take a long time to appear. -->
+<!ENTITY glodaFacetView.loading.label "Đang tìm&#8230;">
+
+<!-- LOCALIZATION NOTE (glodaFacetView.empty.label): Label that appears when
+ there are no results that match the search query. -->
+<!ENTITY glodaFacetView.empty.label "Không có thư nào khớp với tìm kiếm của bạn">
+
+<!-- LOCALIZATION NOTE (glodaFacetView.pageMore.label): Label at the bottom
+ of the results list to show more hits. -->
+<!ENTITY glodaFacetView.pageMore.label "Thêm &#187;">
+
+<!-- LOCALIZATION NOTE(glodaFacetView.results.message.openEmailAsList.label2): The
+ label for the button/link that causes us to display all of the emails in
+ the active set in a new thread pane display tab. -->
+<!ENTITY glodaFacetView.openEmailAsList.label "Hiển thị kết quả dưới dạng danh sách">
+
+<!-- LOCALIZATION NOTE(glodaFacetView.results.message.openEmailAsList.tooltip):
+ The tooltip to display when hovering over the openEmailAsList label. -->
+<!ENTITY glodaFacetView.openEmailAsList.tooltip "Hiển thị tất cả các thông báo email trong bộ hoạt động trong thẻ mới">
diff --git a/l10n-vi/mail/chrome/messenger/glodaFacetView.properties b/l10n-vi/mail/chrome/messenger/glodaFacetView.properties
new file mode 100644
index 0000000000..e60ab46873
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/glodaFacetView.properties
@@ -0,0 +1,171 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 (glodaFacetView.tab.query.label):
+# The tab title to display for tabs that are based on a gloda (global database)
+# query or collection rather than a user search. At some point we might try
+# and explain what the query/collection is in automatic fashion, but not today.
+glodaFacetView.tab.query.label=Tìm kiếm
+
+# LOCALIZATION NOTE (glodaFacetView.tab.search.label):
+# The tab title to display for tabs with a new gloda (global database)
+# user search (rather than a query or collection) without a search string.
+# After the search has been started, we just display the search string entered
+# by the user.
+glodaFacetView.tab.search.label=Tìm kiếm
+
+# LOCALIZATION NOTE(glodaFacetView.search.label2):
+# The heading for the search page.
+# A short description of user's search query will be appended.
+glodaFacetView.search.label2=Kết quả cho:
+
+# LOCALIZATION NOTE(glodaFacetView.constraints.query.fulltext.label):
+# The label to display to describe when our base query was a fulltext search
+# across messages. The value is displayed following the label.
+glodaFacetView.constraints.query.fulltext.label=Đang tìm #1
+glodaFacetView.constraints.query.fulltext.andJoinWord=và
+glodaFacetView.constraints.query.fulltext.orJoinWord=hoặc
+
+# LOCALIZATION NOTE(glodaFacetView.constraints.query.initial):
+# The label to display to describe when our base query is not a full-text
+# search. Additional labels are appended describing each constraint.
+glodaFacetView.constraints.query.initial=Đang tìm thư
+
+# LOCALIZATION NOTE(glodaFacetView.constraints.query.involves.label):
+# The label to display to describe when our base query was on messages
+# involving a given contact from the address book. The value is displayed
+# where the #1 is.
+glodaFacetView.constraints.query.involves.label=bao gồm #1
+
+# LOCALIZATION NOTE(glodaFacetView.constraints.query.contact.label):
+# The label to display to describe when our base query was on messages
+# tagged with a specific tag. The tag is displayed following the label.
+glodaFacetView.constraints.query.tagged.label=được dán nhãn:
+
+
+# LOCALIZATION NOTE (glodaFacetView.facets.mode.top.listAllLabel): The label to
+# use when we are only displaying the top entries for a facet. When the
+# label is clicked on, it results in us displaying all of the values for that
+# facet. The value "#1" (if present) is replaced with the total number of
+# values that will be displayed (rather than the number currently hidden).
+# This string supports pluralization. See
+# https://developer.mozilla.org/en/Localization_and_Plurals for details on
+# how this stuff works.
+glodaFacetView.facets.mode.top.listAllLabel=Liệt kê tất cả #1
+
+# LOCALIZATION NOTE (glodaFacetView.facets.included.fallbackLabel): The label to
+# use for groups in a facet that have been explicitly included by the user if
+# there is no explicit attribute "includeLabel" defined. (The explicit label
+# would be named "gloda.message.attr.ATTRIBUTE.includeLabel".)
+glodaFacetView.facets.included.fallbackLabel=bao gồm bất kì:
+# LOCALIZATION NOTE (glodaFacetView.facets.excluded.fallbackLabel): The label to
+# use for groups in a facet that have been explicitly excluded by the user if
+# there is no explicit attribute "excludeLabel" defined. (The explicit label
+# would be named "gloda.message.attr.ATTRIBUTE.excludeLabel".)
+glodaFacetView.facets.excluded.fallbackLabel=không bao gồm:
+# LOCALIZATION NOTE (glodaFacetView.facets.remainder.fallbackLabel): The label
+# to use for groups in a facet that are neither part of the included group or
+# the excluded group if there is no explicit attribute "remainderLabel"
+# defined. (The explicit label would be named
+# "gloda.message.attr.ATTRIBUTE.remainderLabel".)
+glodaFacetView.facets.remainder.fallbackLabel=khác:
+
+# LOCALIZATION NOTE (glodaFacetView.facets.mustMatchLabel.fallbackLabel): The label
+# to use to restrict a facet by a particular value if there is no explicit
+# attribute "mustMatchLabel" defined. (The explicit label would be named
+# "gloda.message.attr.ATTRIBUTE.mustMatchLabel".)
+glodaFacetView.facets.mustMatchLabel.fallbackLabel=phải khớp #1
+glodaFacetView.facets.mustMatchNoneLabel.fallbackLabel=không thể có một giá trị
+
+# LOCALIZATION NOTE (glodaFacetView.facets.cantMatchLabel.fallbackLabel): The label
+# to use to restrict a facet by the absence of a particular value if there is
+# no explicit attribute "cantMatchLabel" defined. (The explicit label would be
+# named "gloda.message.attr.ATTRIBUTE.cantMatchLabel".)
+glodaFacetView.facets.cantMatchLabel.fallbackLabel=không thể khớp #1
+glodaFacetView.facets.mustMatchSomeLabel.fallbackLabel=phải có một giá trị
+
+# LOCALIZATION NOTE (glodaFacetView.facets.mayMatchLabel.fallbackLabel): The label
+# to use to undo the restriction of a facet by a particular value if there is
+# no explicit attribute "mayMatchLabel" defined. (The explicit label would be
+# named "gloda.message.attr.ATTRIBUTE.mayMatchLabel".)
+glodaFacetView.facets.mayMatchLabel.fallbackLabel=xóa ràng buộc
+glodaFacetView.facets.mayMatchAnyLabel.fallbackLabel=xóa ràng buộc
+
+# LOCALIZATION NOTE (glodaFacetView.facets.noneLabel): The text to display when
+# a facet needs to indicate that an attribute omitted a value or was otherwise
+# empty.
+glodaFacetView.facets.noneLabel=Không
+
+# LOCALIZATION NOTE (glodaFacetView.facets.filter.attachmentTypes.allLabel):
+# The label to use when all types of attachments are being displayed.
+glodaFacetView.facets.filter.attachmentTypes.allLabel=Bất kì Loại nào
+
+# LOCALIZATION NOTE (glodaFacetView.result.message.fromLabel): Used in the
+# faceted search message display to indicate the author of a message.
+# An example usage is "from: Bob".
+glodaFacetView.result.message.fromLabel=từ:
+
+# LOCALIZATION NOTE (glodaFacetView.result.message.toLabel): Used in the
+# faceted search message display to indicate the recipients of a message.
+# An example usage is "to: Bob, Chuck, Don".
+glodaFacetView.result.message.toLabel=tới:
+
+# LOCALIZATION NOTE (glodaFacetView.result.message.noSubject): Used in the
+# faceted search message display to act as a click target for messages with
+# no subject.
+glodaFacetView.result.message.noSubject=(không tiêu đề)
+
+# LOCALIZATION NOTE(glodaFacetView.results.header.countLabel):
+# This label is displayed above the list of result messages; it tells the user
+# how many messages we are displaying in the list out of the total number of
+# messages in the active set (the set of messages remaining after the
+# application of the facet constraints.)
+# The goal of the various sub-parts here is to make a label along the lines of
+# "M of N". Because there are two numbers, this is split into two parts,
+# 'NMessages' for what in English is just the first number and 'ofN' for the
+# "of N" part. We then use 'grouping' to decide how to combine the two. This
+# was suggested by Rimas Kudelis.
+# LOCALIZATION NOTE(glodaFacetView.results.header.countLabel.NMessages):
+# The first part of the countLabel string (although you can change the order
+# in 'grouping'). This is pluralized using the mechanism described at
+# https://developer.mozilla.org/en/Localization_and_Plurals. We replace
+# "#1" with the number of messages being shown in the result list.
+glodaFacetView.results.header.countLabel.NMessages=#1
+# LOCALIZATION NOTE(glodaFacetView.results.header.countLabel.ofN):
+# The second part of the countLabel string (although you can change the order
+# in 'grouping'). This is pluralized using the mechanism described at
+# https://developer.mozilla.org/en/Localization_and_Plurals. We replace
+# "#1" with the total number of messagse in the active set.
+glodaFacetView.results.header.countLabel.ofN=của #1
+# LOCALIZATION NOTE(glodaFacetView.results.header.countLabel.grouping):
+# Combines the pluralized
+# "glodaFacetView.results.header.countLabel.NMessages" string (as #1) with
+# the pluralized "glodaFacetView.results.header.countLabel.ofN" (as #2)
+# to make a single label.
+glodaFacetView.results.header.countLabel.grouping=#1 #2
+
+glodaFacetView.results.message.timeline.label=Chuyển đổi dòng thời gian
+# LOCALIZATION NOTE(glodaFacetView.results.message.sort.relevance2):
+# a clickable label causing the sort to be done by most relevant messages first.
+glodaFacetView.results.message.sort.relevance2=Sắp xếp theo sự liên quan
+# LOCALIZATION NOTE(glodaFacetView.results.message.sort.date2):
+# a clickable label causing the sort to be done by most recent messages first.
+glodaFacetView.results.message.sort.date2=Sắp xếp theo ngày
+
+# LOCALIZATION NOTE(glodaFacetView.results.message.recipientSeparator): This is
+# the string in between the names of recipients (see
+# glodaFacetView.results.message.andOthers for more information). The \u0020
+# character is a Unicode space character, which is needed as otherwise the
+# trailing whitespace is trimmed before it gets to the code.
+glodaFacetView.results.message.recipientSeparator=,\u0020
+
+# LOCALIZATION NOTE(glodaFacetView.results.message.andOthers):
+# When a message has too many recipients, we only show the first few and then
+# display this label to express how many are not displayed. So if a message
+# has 5 recipients, we might only show the first 3, and then use this label
+# to indicate that there are 2 that are not displayed. This string can be
+# pluralized; see https://developer.mozilla.org/en/Localization_and_Plurals
+# for details on how to do that. Note that in English, we use the "serial
+# comma", but other languages may not need a leading separator there.
+glodaFacetView.results.message.andOthers=, và #1 khác
diff --git a/l10n-vi/mail/chrome/messenger/imAccountWizard.dtd b/l10n-vi/mail/chrome/messenger/imAccountWizard.dtd
new file mode 100644
index 0000000000..eb3ae5e98f
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/imAccountWizard.dtd
@@ -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/. -->
+
+<!ENTITY windowTitle.label "Trình kết nối tài khoản trò chuyện">
+
+<!ENTITY accountProtocolTitle.label "Mạng trò chuyện">
+<!ENTITY accountProtocolInfo.label "Vui lòng chọn mạng của tài khoản trò chuyện của bạn.">
+<!ENTITY accountProtocolField.label "Mạng:">
+<!ENTITY accountProtocolGetMore.label "Nhận thêm…">
+
+<!ENTITY accountUsernameTitle.label "Tên đăng nhập">
+<!ENTITY accountUsernameDuplicate.label "Tài khoản này đã được cấu hình!">
+
+<!ENTITY accountPasswordTitle.label "Mật khẩu">
+<!ENTITY accountPasswordInfo.label "Vui lòng nhập mật khẩu của bạn vào ô bên dưới.">
+<!ENTITY accountPasswordField.label "Mật khẩu:">
+<!ENTITY accountPasswordManager.label "Mật khẩu được nhập vào đây sẽ được lưu trong trình quản lý mật khẩu. Để trống ô này nếu bạn muốn được nhắc nhập mật khẩu mỗi khi tài khoản này được kết nối.">
+
+<!ENTITY accountAdvancedTitle.label "Tùy chọn nâng cao">
+<!ENTITY accountAdvancedInfo.label "Hãy bỏ qua bước này nếu bạn muốn.">
+<!ENTITY accountAdvanced.newMailNotification.label "Thông báo thư mới">
+<!ENTITY accountAliasGroupbox.caption "Bí danh cục bộ">
+<!ENTITY accountAliasField.label "Bí danh:">
+<!ENTITY accountAliasInfo.label "Điều này sẽ chỉ được hiển thị trong các cuộc hội thoại của bạn khi bạn nói chuyện, những người liên lạc từ xa sẽ không nhìn thấy nó.">
+<!ENTITY accountProxySettings.caption "Cài đặt proxy">
+<!ENTITY accountProxySettings.change.label "Thay đổi…">
+<!ENTITY accountProxySettings.change.accessKey "C">
+
+<!ENTITY accountSummaryTitle.label "Tóm tắt">
+<!ENTITY accountSummaryInfo.label "Một bản tóm tắt các thông tin bạn đã nhập được hiển thị dưới đây. Vui lòng kiểm tra nó trước khi tài khoản được tạo.">
+<!ENTITY accountSummary.connectNow.label "Kết nối tài khoản này ngay bây giờ.">
diff --git a/l10n-vi/mail/chrome/messenger/imAccounts.properties b/l10n-vi/mail/chrome/messenger/imAccounts.properties
new file mode 100644
index 0000000000..97f024982d
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/imAccounts.properties
@@ -0,0 +1,60 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (protoOptions):
+# %S is replaced by the name of a protocol
+protoOptions=Tùy chọn %S
+accountUsername=Tên đăng nhập:
+# LOCALIZATION NOTE (accountColon):
+# This string is used to append a colon after the label of each
+# option. It's localizable so that the typography can be adapted.
+accountColon=%S:
+# LOCALIZATION NOTE (accountUsernameInfo):
+# %S is replaced by the name of a protocol
+accountUsernameInfo=Vui lòng nhập tên người dùng cho tài khoản %S của bạn.
+# LOCALIZATION NOTE (accountUsernameInfoWithDescription):
+# %1$S is a hint for the expected format of the username
+# %2$S is the name of a protocol
+accountUsernameInfoWithDescription=Vui lòng nhập tên người dùng (%1$S) cho tài khoản %2$S của bạn.
+
+# LOCALIZATION NOTE (account.connection.error):
+# %S is the error message.
+account.connection.error=Lỗi: %S
+# LOCALIZATION NOTE (account.connection.errorUnknownPrpl)
+# %S is the id (not very user friendly; hence the quotes) of the missing plugin.
+account.connection.errorUnknownPrpl=Không có phần bổ trợ giao thức '%S'.
+account.connection.errorEnteringPasswordRequired=Yêu cầu nhập mật khẩu để kết nối tài khoản này.
+account.connection.errorCrashedAccount=Một sự cố đã xảy ra khi kết nối tài khoản này.
+# LOCALIZATION NOTE (account.connection.progress):
+# %S is a message indicating progress of the connection process
+account.connection.progress=Đang kết nối: %S…
+account.connecting=Đang kết nối…
+account.connectedForSeconds=Đã kết nối trong vài giây.
+# LOCALIZATION NOTE (account.connectedFor{Double,Single},
+# account.reconnectIn{Double,Single}):
+# Each pair of %S is a number followed by a unit. The units are
+# already localized in a downloads.properties file of the toolkit.
+account.connectedForDouble=Đã kết nối với %1$S %2$S và %3$S %4$S.
+account.connectedForSingle=Đã kết nối với %1$S %2$S.
+
+requestAuthorizeTitle=Yêu cầu ủy quyền
+# LOCALIZATION NOTE (requestAuthorizeAllow, requestAuthorizeDeny):
+# the & symbol indicates the position of the character that should be
+# used as the accesskey for this button.
+requestAuthorizeAllow=&Cho phép
+requestAuthorizeDeny=%Từ chối
+# LOCALIZATION NOTE (requestAuthorizeText):
+# %S is a contact username.
+requestAuthorizeText=%S đã thêm bạn vào danh sách bạn bè của anh ấy/cô ấy, bạn có muốn cho phép anh ấy/cô ấy gặp bạn không?
+
+accountsManager.notification.button.accessKey=C
+accountsManager.notification.button.label=Kết nối ngay
+accountsManager.notification.userDisabled.label=Bạn đã tắt kết nối tự động.
+accountsManager.notification.safeMode.label=Cài đặt kết nối tự động đã bị bỏ qua vì ứng dụng hiện đang chạy ở chế độ an toàn.
+accountsManager.notification.startOffline.label=Cài đặt kết nối tự động đã bị bỏ qua vì ứng dụng đã được khởi động ở chế độ ngoại tuyến.
+accountsManager.notification.crash.label=Lần chạy cuối cùng bất ngờ thoát ra trong khi kết nối. Kết nối tự động đã bị vô hiệu hóa để cung cấp cho bạn chỉnh sửa cài đặt của bạn.
+# LOCALIZATION NOTE (accountsManager.notification.singleCrash.label): Semi-colon list of plural forms.
+# See: https://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is the number of accounts that are suspected to have caused a crash.
+accountsManager.notification.other.label=Kết nối tự động đã bị vô hiệu hóa.
diff --git a/l10n-vi/mail/chrome/messenger/imapMsgs.properties b/l10n-vi/mail/chrome/messenger/imapMsgs.properties
new file mode 100644
index 0000000000..b1be2f6e31
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/imapMsgs.properties
@@ -0,0 +1,246 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 are used by the imap code to display progress/status/error messages
+#
+
+#LOCALIZATION NOTE(imapAlertDialogTile): Do not translate the word "%S"
+# below. Place the word %S where the account name should appear.
+imapAlertDialogTitle=Thông báo cho tài khoản %S
+
+# Status - opening folder
+imapStatusSelectingMailbox=Đang mở thư mục %S…
+
+# Status - create folder
+imapStatusCreatingMailbox=Đang tạo thư mục…
+
+# Status - deleting a folder
+# LOCALIZATION NOTE (imapStatusDeletingMailbox): The "%S" below should not be translated.
+# Instead, insert "%S" in your translation where you wish to display the name
+# of the folder being deleted.
+imapStatusDeletingMailbox=Đang xóa thư mục %S…
+
+# Status - renaming mailbox
+# LOCALIZATION NOTE (imapStatusRenamingMailbox): The "%S" below should not be translated.
+# Instead, insert "%S" in your translation where you wish to display the name
+# of the folder being renamed.
+imapStatusRenamingMailbox=Đang đổi tên thư mục %S…
+
+# Status - looking for mailboxes
+imapStatusLookingForMailbox=Đang tìm các thư mục…
+
+# Status - subscribing to mailbox
+# LOCALIZATION NOTE (imapStatusSubscribeToMailbox): The "%S" below should not be translated.
+# Instead, insert "%S" in your translation where you wish to display the name
+# of the folder being subscribed to.
+imapStatusSubscribeToMailbox=Đang đăng ký vào thư mục %S…
+
+# Status - unsubscribing from mailbox
+# LOCALIZATION NOTE (imapStatusUnsubscribeMailbox): The "%S" below should not be translated.
+# Instead, insert "%S" in your translation where you wish to display the name
+# of the folder being unsubscribed from.
+imapStatusUnsubscribeMailbox=Đang hủy đăng ký khỏi thư mục %S…
+
+# Status - searching imap folder
+imapStatusSearchMailbox=Đang tìm kiếm thư mục…
+
+# Status - closing a folder
+imapStatusCloseMailbox=Đang đóng thư mục…
+
+# Status - compacting a folder
+imapStatusExpungingMailbox=Đang làm gọn thư mục…
+
+# Status - logging out
+imapStatusLoggingOut=Đang đăng xuất…
+
+# Status - checking server capabilities
+imapStatusCheckCompat=Đang kiểm tra khả năng của máy chủ thư…
+
+# Status - logging on
+imapStatusSendingLogin=Đang gửi thông tin đăng nhập…
+
+# Status - auth logon
+imapStatusSendingAuthLogin=Đang gửi thông tin đăng nhập…
+
+imapDownloadingMessage=Đang tải thư…
+
+# LOCALIZATION NOTE (imapGettingACLForFolder): Do not translate the word "ACL" below.
+imapGettingACLForFolder=Đang nhận thư mục ACL…
+
+imapGettingServerInfo=Đang nhận thông tin cấu hình từ máy chủ…
+
+imapGettingMailboxInfo=Đang nhận thông tin cấu hình hộp thư…
+
+imapEmptyMimePart=Phần thân này sẽ được tải xuống theo yêu cầu.
+
+# LOCALIZATION NOTE (imapReceivingMessageHeaders3): Do not translate the words "%1$S", "%2$S", and "%3$S" below.
+# Place the word %1$S in your translation where the number of the header being downloaded should appear.
+# Place the word %2$S in your translation where the total number of headers to be downloaded should appear.
+# Place the word %3$S in your translation where the name of the folder being processed should appear.
+# Note: The account name and separators (e.g. colon, space) are automatically added to the status message.
+# Example: "Joe's Account: Downloading message header 100 of 1000 in Drafts…"
+
+# LOCALIZATION NOTE (imapReceivingMessageFlags3): Do not translate the words "%1$S", "%2$S", and "%3$S" below.
+# Place the word %1$S in your translation where the number of the flag being downloaded should appear.
+# Place the word %2$S in your translation where the total number of flags to be downloaded should appear.
+# Place the word %3$S in your translation where the name of the folder being processed should appear.
+# Note: The account name and separators (e.g. colon, space) are automatically added to the status message.
+# Example: "Jim's Account: Downloading message flag 100 of 1000 in INBOX…"
+
+imapDeletingMessages=Đang xóa thư…
+
+imapDeletingMessage=Đang xóa thư…
+
+# LOCALIZATION NOTE (imapMovingMessages): Do not translate the word "%S" below.
+# Place the word %S in your translation where the name of the folder should appear.
+imapMovingMessages=Đang di chuyển thư đến %S…
+
+# LOCALIZATION NOTE (imapMovingMessage): Do not translate the word "%S" below.
+# Place the word %S in your translation where the name of the folder should appear.
+imapMovingMessage=Đang di chuyển thư đến %S…
+
+# LOCALIZATION NOTE (imapCopyingMessages): Do not translate the word "%S" below.
+# Place the word %S in your translation where the name of the folder should appear.
+imapCopyingMessages=Đang sao chép thư vào %S…
+
+# LOCALIZATION NOTE (imapCopyingMessage): Do not translate the word "%S" below.
+# Place the word %S in your translation where the name of the folder should appear.
+imapCopyingMessage=Đang sao chép thư vào %S…
+
+# LOCALIZATION NOTE (imapFolderReceivingMessageOf3): Do not translate the words "%1$S", "%2$S", and "%3$S" below.
+# Place the word %1$S in your translation where the number of the message being downloaded should appear.
+# Place the word %2$S in your translation where the total number of messages to be downloaded should appear.
+# Place the word %3$S in your translation where the name of the folder being processed should appear.
+# Note: The account name and separators (e.g. colon, space) are automatically added to the status message.
+# Example: "Juan's Account: Downloading message 100 of 1000 in Sent…"
+imapFolderReceivingMessageOf3=Đang tải xuống thư %1$S của %2$S trong %3$S…
+
+# LOCALIZATION NOTE (imapDiscoveringMailbox): Do not translate the word "%S" below.
+# Place the word %S in your translation where the name of the folder should appear.
+imapDiscoveringMailbox=Đã tìm thấy thư mục: %S
+
+# LOCALIZATION NOTE (imapEnterServerPasswordPrompt): Do not translate the words %1$S and %2$S below.
+# Place the word %1$S in your translation where the username should appear.
+# Place the word %2$S in your translation where the servername should appear.
+imapEnterServerPasswordPrompt=Nhập mật khẩu cho %1$S trên %2$S:
+
+# LOCALIZATION NOTE (imapServerNotImap4): Do not translate the word "IMAP4" below.
+imapServerNotImap4=Máy chủ thư %S không phải là máy chủ thư IMAP4.
+
+# This is intentionally left blank.
+imapDone=
+
+# LOCALIZATION NOTE (imapEnterPasswordPromptTitleWithUsername): Do not translate the
+# word %1$S. Place the word %1$S where the user name should appear.
+imapEnterPasswordPromptTitleWithUsername=Nhập mật khẩu của bạn cho %1$S
+
+imapUnknownHostError=Không thể kết nối với máy chủ %S.
+imapOAuth2Error=Lỗi xác thực trong khi kết nối với máy chủ %S.
+
+imapConnectionRefusedError=Không thể kết nối với máy chủ thư %S; kết nối đã bị từ chối.
+
+imapNetTimeoutError=Đã hết thời gian kết nối tới máy chủ %S.
+
+# Status - no messages to download
+imapNoNewMessages=Không có thư mới trên máy chủ.
+
+imapDefaultAccountName=Thư của %S
+
+imapSpecialChar2=Ký tự %S được dành riêng trên máy chủ imap này. Vui lòng chọn một tên khác.
+
+imapPersonalSharedFolderTypeName=Thư mục cá nhân
+
+imapPublicFolderTypeName=Thư mục công cộng
+
+imapOtherUsersFolderTypeName=Thư mục người dùng khác
+
+imapPersonalFolderTypeDescription=Đây là một thư mục thư cá nhân. Nó không được chia sẻ.
+
+imapPersonalSharedFolderTypeDescription=Đây là một thư mục thư cá nhân. Nó đã được chia sẻ.
+
+imapPublicFolderTypeDescription=Đây là một thư mục công cộng.
+
+imapOtherUsersFolderTypeDescription=Đây là thư mục thư được chia sẻ bởi người dùng '%S'.
+
+imapAclFullRights=Kiểm soát hoàn toàn
+
+imapAclLookupRight=Tra cứu
+
+imapAclReadRight=Đọc
+
+imapAclSeenRight=Đặt trạng thái đọc/chưa đọc
+
+imapAclWriteRight=Ghi
+
+imapAclInsertRight=Chèn (Sao chép vào)
+
+imapAclPostRight=Bài đăng
+
+imapAclCreateRight=Tạo thư mục con
+
+imapAclDeleteRight=Xóa thư
+
+imapAclAdministerRight=Thư mục quản trị
+
+imapServerDoesntSupportAcl=Máy chủ này không hỗ trợ các thư mục chia sẻ.
+
+imapAclExpungeRight=Hết hạn
+
+imapServerDisconnected= Máy chủ %S đã ngắt kết nối. Máy chủ có thể đã bị hỏng hoặc có thể có sự cố mạng.
+
+# LOCALIZATION NOTE (autoSubscribeText): %1$S is the imap folder.
+imapSubscribePrompt=Bạn có muốn đăng kí %1$S?
+
+
+
+
+
+# Out of memory
+imapOutOfMemory=Ứng dụng đã hết bộ nhớ.
+
+# LOCALIZATION NOTE (imapCopyingMessageOf2): Do not translate the word "%S" below.
+# Place the word %3$S in your translation where the name of the destination folder should appear.
+# Place the word %1$S where the currently copying message should appear.
+# Place the word %2$S where the total number of messages should appear.
+imapCopyingMessageOf2=Đang sao chép thư %1$S của %2$S sang %3$S…
+
+# LOCALIZATION NOTE (imapMoveFolderToTrash): Do not translate the word %S below.
+# "%S" is the the name of the folder.
+imapMoveFolderToTrash=Bạn có chắc chắn muốn xóa thư mục '%S' không?
+
+# LOCALIZATION NOTE (imapDeleteNoTrash): Do not translate the word %S below.
+# "%S" is the the name of the folder.
+imapDeleteNoTrash=Không thể hoàn tác sau khi xóa thư mục này và sẽ xóa tất cả các thư mà nó chứa và các thư mục con của nó. Bạn có chắc chắn vẫn muốn xóa thư mục '%S' không?
+
+imapDeleteFolderDialogTitle=Xóa thư mục
+
+imapDeleteFolderButtonLabel=&Xóa thư mục
+
+# LOCALIZATION NOTE (imapAuthChangeEncryptToPlainSSL): %S is the server hostname
+
+# LOCALIZATION NOTE (imapAuthChangePlainToEncrypt): %S is the server hostname
+
+# LOCALIZATION NOTE (imapAuthChangeEncryptToPlainNoSSL): %S is the server hostname
+
+# LOCALIZATION NOTE (imapAuthMechNotSupported): %S is the server hostname
+
+# LOCALIZATION NOTE (imapAuthGssapiFailed): %S is the server hostname
+imapAuthGssapiFailed=Kerberos/GSSAPI không được máy chủ IMAP %S chấp nhận. Vui lòng kiểm tra xem bạn đã đăng nhập vào Kerberos/GSSAPI chưa.
+
+# LOCALIZATION NOTE (imapServerCommandFailed):
+# Place the word %1$S in your translation where the name of the account name should appear.
+# Place the word %2$S in your translation where the server response should appear.
+imapServerCommandFailed=Lệnh hiện tại đã không thành công. Máy chủ thư cho tài khoản %1$S đã trả lời: %2$S
+
+# LOCALIZATION NOTE (imapFolderCommandFailed): Do not translate the word %S below.
+# Place the word %1$S in your translation where the name of the account should appear.
+# Place the word %2$S in your translation where the name of the folder should appear.
+# Place the word %3$S in your translation where the server response should appear.
+imapFolderCommandFailed=Hoạt động hiện tại trên '%2$S' đã không thành công. Máy chủ thư cho tài khoản %1$S đã trả lời: %3$S
+
+# LOCALIZATION NOTE (imapServerAlert):
+# Place the word %1$S in your translation where the name of the account should appear.
+# Place the word %2$S in your translation where the alert from the server should appear.
+imapServerAlert=Thông báo từ tài khoản %1$S: %2$S
diff --git a/l10n-vi/mail/chrome/messenger/importDialog.dtd b/l10n-vi/mail/chrome/messenger/importDialog.dtd
new file mode 100644
index 0000000000..63954ed9cf
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/importDialog.dtd
@@ -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/. -->
+
+<!--
+LOCALIZATION NOTE : 'Communicator 4.x' is the used for previous versions of
+Netscape Communicator, Please translate using the brandname in respective
+languages for Netscape Communicator 4 releases.
+LOCALIZATION NOTE : Do not translate any of the occurrences of the word
+"&brandShortName;" below.
+-->
+
+<!ENTITY importDialog.windowTitle "Nhập">
+<!ENTITY importAll.label "Nhập mọi thứ">
+<!ENTITY importAll.accesskey "E">
+<!ENTITY importMail.label "Thư">
+<!ENTITY importMail.accesskey "M">
+<!ENTITY importFeeds.label "Nguồn cấp đă đăng kí">
+<!ENTITY importFeeds.accesskey "d">
+<!ENTITY importAddressbook.label "Sổ địa chỉ">
+<!ENTITY importAddressbook.accesskey "A">
+<!ENTITY importSettings.label "Cài đặt">
+<!ENTITY importSettings.accesskey "S">
+<!ENTITY importFilters.label "Bộ lọc">
+<!ENTITY importFilters.accesskey "F">
+
+<!ENTITY window.width "40em">
+<!ENTITY window.macWidth "45em">
+
+<!ENTITY importTitle.label "Trình nhập dữ liệu vào &brandShortName;">
+<!ENTITY importShortDesc.label "Nhập thư, sổ địa chỉ, cài đặt và bộ lọc từ chương trình khác">
+
+<!ENTITY importDescription1.label "Trình hướng dẫn này sẽ nhập thư, sổ địa chỉ, tùy chỉnh và/hoặc bộ lọc từ các chương trình gửi thư và các định dạng sổ địa chỉ phổ biến khác vào &brandShortName;.">
+<!ENTITY importDescription2.label "Khi chúng đã được nhập, bạn có thể truy cập chúng ngay trong &brandShortName;.">
+
+<!ENTITY selectDescription.label "Vui lòng chọn kiểu tập tin mà bạn muốn nhập:">
+<!ENTITY selectDescriptionB.label "Vui lòng chọn một tài khoản hiện có hoặc tạo một tài khoản mới:">
+<!ENTITY selectDescription.accesskey "P">
+<!ENTITY acctName.label "Tên:">
+<!ENTITY acctName.accesskey "N">
+<!ENTITY noModulesFound.label "Không tìm thấy ứng dụng hoặc tập tin để nhập dữ liệu.">
+
+<!ENTITY back.label "&lt; Quay lại">
+<!ENTITY forward.label "Tiến &gt;">
+<!ENTITY finish.label "Hoàn thành">
+<!ENTITY cancel.label "Hủy bỏ">
+
+<!ENTITY select.label "hoặc chọn các mục muốn nhập:">
+
+<!ENTITY title.label "Tiêu đề">
+<!ENTITY processing.label "Đang nhập…">
diff --git a/l10n-vi/mail/chrome/messenger/importMsgs.properties b/l10n-vi/mail/chrome/messenger/importMsgs.properties
new file mode 100644
index 0000000000..2051e8c0ce
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/importMsgs.properties
@@ -0,0 +1,304 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 are used by the import code to display status/error
+# and informational messages
+
+# Success message when no address books are found to import
+## @name IMPORT_NO_ADDRBOOKS
+## @loc None
+2000=Không có sổ địa chỉ được tìm thấy để nhập.
+
+# Error: Address book import not initialized
+## @name IMPORT_ERROR_AB_NOTINITIALIZED
+## @loc None
+2001=Không thể nhập sổ địa chỉ: lỗi nhận dạng.
+
+# Error: Unable to create the import thread
+## @name IMPORT_ERROR_AB_NOTHREAD
+## @loc None
+2002=Không thể nhập sổ địa chỉ: không thể tạo luồng nhập.
+
+# Error: Unable to create the import thread
+## @name IMPORT_ERROR_GETABOOK
+## @loc None
+# LOCALIZATION NOTE (Error 2003): Do not translate the word "%S" below.
+2003=Lỗi khi nhập %S: không thể tạo sổ địa chỉ.
+
+# Success message when no mailboxes are found to import
+## @name IMPORT_NO_MAILBOXES
+## @loc None
+2004=Không tìm thấy hộp thư để nhập
+
+# Error: Mailbox import not initialized
+## @name IMPORT_ERROR_MB_NOTINITIALIZED
+## @loc None
+2005=Không thể nhập hộp thư, lỗi nhận dạng
+
+# Error: Unable to create the import thread
+## @name IMPORT_ERROR_MB_NOTHREAD
+## @loc None
+2006=Không thể nhập hộp thư, không thể tạo luồng nhập
+
+# Error: Unable to create the proxy object for importing mailboxes
+## @name IMPORT_ERROR_MB_NOPROXY
+## @loc None
+2007=Không thể nhập hộp thư, không thể tạo đối tượng proxy cho hộp thư đích
+
+# Error: Error creating destination mailboxes
+## @name IMPORT_ERROR_MB_FINDCHILD
+## @loc None
+# LOCALIZATION NOTE (Error 2008): Do not translate the word "%S" below.
+# Place %S in your translation where the name of the mailbox should appear.
+2008=Lỗi khi tạo hộp thư đích, không thể tìm thấy hộp thư %S
+
+# Error: Error creating destination mailboxes
+## @name IMPORT_ERROR_MB_CREATE
+## @loc None
+# LOCALIZATION NOTE (Error 2009): Do not translate the word "%S" below.
+# Place %S in your translation where the name of the mailbox should appear.
+2009=Lỗi khi nhập hộp thư %S, không thể tạo hộp thư đích
+
+# Error: No destination folder to import mailboxes
+## @name IMPORT_ERROR_MB_NODESTFOLDER
+## @loc None
+2010=Không thể tạo thư mục để nhập thư vào
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC_START
+## @loc None
+2100=Tên
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2101=Họ
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2102=Tên hiển thị
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2103=Tên hiệu
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2104=Email Chính
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2105=Email phụ
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2106=Điện thoại công ty
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2107=Điện thoại nhà
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2108=Số Fax
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2109=Số của Máy nhắn tin
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2110=Số Di Động
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2111=Địa chỉ Nhà
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2112=Địa chỉ Nhà 2
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2113=Thành phố Quê nhà
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2114=Tiểu bang Quê nhà
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2115=Mã Zip Quê nhà
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2116=Quốc gia của nơi Quê nhà
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2117=Địa chỉ Công ty
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2118=Địa chỉ Công ty 2
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2119=Thành phố nơi Làm việc
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2120=Tiểu bang nơi Làm việc
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2121=Mã Zip nơi Làm việc
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2122=Quốc gia nơi Làm việc
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2123=Chức vụ Nghề nghiệp
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2124=Bộ phận
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2125=Tổ chức
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2126=Trang Web 1
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2127=Trang Web 2
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2128=Năm Sinh
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2129=Tháng Sinh
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2130=Ngày Sinh
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2131=Tùy chỉnh 1
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2132=Tùy chỉnh 2
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2133=Tùy chỉnh 3
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2134=Tùy chỉnh 4
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC
+## @loc None
+2135=Lưu ý
+
+# Description: Address book field name
+## @name IMPORT_FIELD_DESC_END
+## @loc None
+2136=Tên Screen
+
+#Error strings
+ImportAlreadyInProgress=Một thao tác nhập đang tiến hành. Hãy thử lại khi tiến trình nhập hiện tại đã hoàn thành.
+
+#Error strings for settings import
+ImportSettingsBadModule=Không thể nạp module thiết lập
+ImportSettingsNotFound=Không thể tìm thiết lập. Hãy kiểm tra để chắc chắn rằng chương trình đã được cài trên máy.
+ImportSettingsFailed=Một lỗi xảy ra trong khi nhập thiết lập. Một số hoặc tất cả các thiết lập có thể đã chưa được nhập.
+# LOCALIZATION NOTE : Do not translate the word "%S" below.
+ImportSettingsSuccess=Thiết lập được nhập từ %S
+
+#Error string for mail import
+ImportMailBadModule=Không thể nạp module nhập thư
+ImportMailNotFound=Không thể tìm thấy thư để nhập. Hãy kiểm tra để chắc chắn rằng chương trình đã được cài trên máy.
+ImportEmptyAddressBook=Không thể nhập sổ địa chỉ rỗng %S.
+# LOCALIZATION NOTE: Do not translate the word "%S" below.
+ImportMailFailed=Một lỗi xảy ra trong khi nhập thư từ %S
+# LOCALIZATION NOTE: Do not translate the word "%S" below.
+ImportMailSuccess=Thư đã được nhập thành công từ %S
+
+# Error string for address import
+ImportAddressBadModule=Không thể nạp module nhập sổ địa chỉ.
+ImportAddressNotFound=Không tìm thấy sổ địa chỉ để nhập. Hãy kiểm tra để chắc chắn rằng chương trình đã được cài trên máy.
+# LOCALIZATION NOTE : Do not translate the word "%S" below.
+ImportAddressFailed=Một lỗi xảy ra trong khi nhập địa chỉ từ %S.
+# LOCALIZATION NOTE : Do not translate the word "%S" below.
+ImportAddressSuccess=Địa chỉ đã được nhập thành công từ %S.
+
+# Error string for filters import
+ImportFiltersBadModule=Không thể nạp module nhập bộ lọc.
+# LOCALIZATION NOTE : The %S will get replaced by the name of the import module.
+ImportFiltersFailed=Một lỗi xảy ra trong khi nhập bộ lọc từ %S.
+# LOCALIZATION NOTE : The %S will get replaced by the name of the import module.
+ImportFiltersSuccess=Bộ lọc đã được nhập thành công từ %S.
+# LOCALIZATION NOTE : The %S will get replaced by the name of the import module.
+ImportFiltersPartial=Bộ lọc đã được nhập một phần từ %S. Cảnh báo ở bên dưới:
+
+#Progress strings
+# LOCALIZATION NOTE : Do not translate the word "%S" below.
+MailProgressMeterText=Đang chuyển đổi hộp thư từ %S
+# LOCALIZATION NOTE : Do not translate the word "%S" below.
+AddrProgressMeterText=Đang chuyển đổi sổ địa chỉ từ %S
+
+#Import file dialog strings
+ImportSelectSettings=Chọn tập tin thiết lập
+ImportSelectMailDir=Chọn thư mục thư
+ImportSelectAddrDir=Chọn thư mục sổ địa chỉ
+ImportSelectAddrFile=Chọn tập tin sổ địa chỉ
+
+# Folder Names for imported Mail
+DefaultFolderName=Thư được Nhập
+# LOCALIZATION NOTE: Do not translate the word "%S" below.
+ImportModuleFolderName=%S Nhập
diff --git a/l10n-vi/mail/chrome/messenger/joinChat.dtd b/l10n-vi/mail/chrome/messenger/joinChat.dtd
new file mode 100644
index 0000000000..cf3dad6683
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/joinChat.dtd
@@ -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/. -->
+
+<!ENTITY joinChatWindow.title "Tham gia trò chuyện">
+<!ENTITY name.label "Phòng">
+<!ENTITY optional.label "(không bắt buộc)">
+<!ENTITY account.label "Tài khoản">
+<!ENTITY autojoin.label "Tự động tham gia phòng trò chuyện này">
+<!ENTITY autojoin.accesskey "A">
diff --git a/l10n-vi/mail/chrome/messenger/junkLog.dtd b/l10n-vi/mail/chrome/messenger/junkLog.dtd
new file mode 100644
index 0000000000..2d0e1b8a34
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/junkLog.dtd
@@ -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/. -->
+
+<!ENTITY adaptiveJunkLog.title "Nhật ký thư rác thích ứng">
+<!ENTITY adaptiveJunkLogInfo.label "Nhật ký hoạt động kiểm soát thư rác thích ứng.">
+<!ENTITY clearLog.label "Xóa nhật ký">
+<!ENTITY clearLog.accesskey "C">
+<!ENTITY closeLog.label "Đóng">
+<!ENTITY closeLog.accesskey "o">
diff --git a/l10n-vi/mail/chrome/messenger/junkMailInfo.dtd b/l10n-vi/mail/chrome/messenger/junkMailInfo.dtd
new file mode 100644
index 0000000000..3dc28248ed
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/junkMailInfo.dtd
@@ -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/. -->
+
+<!ENTITY window.title "Về Thư Rác">
+<!ENTITY window.width "450">
+<!ENTITY info1a.label "&brandShortName; tự động nhận dạng các thư có vẻ là thư rác (còn gọi là spam). Thư mà &brandShortName; nghĩ là thư rác sẽ hiển thị một biểu tượng thư rác">
+<!ENTITY info1b.label ".">
+<!ENTITY info2.label "Đầu tiên, bạn phải luyện cho &brandShortName; nhận diện thư rác, bằng cách dùng nút trên Thanh công cụ Thư rác để đánh dấu các thư có phải là rác hay không.">
+<!ENTITY info3.label "Khi &brandShortName; đã nhận diện đúng thư rác, bạn có thể dùng Bộ kiểm soát Thư Rác để tự động di chuyển chúng vào thư mục Thư rác.">
+<!ENTITY info4.label "Để biết thêm thông tin, hãy nhấn Trợ giúp.">
+
diff --git a/l10n-vi/mail/chrome/messenger/localMsgs.properties b/l10n-vi/mail/chrome/messenger/localMsgs.properties
new file mode 100644
index 0000000000..b39f2535b2
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/localMsgs.properties
@@ -0,0 +1,134 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#
+# The following are used by the local mail code to display progress/status/error messages
+#
+
+# LOCALIZATION NOTE(pop3ErrorDialogTitle): Do not translate the word "%S"
+# below. Place the word %S where the account name should appear.
+pop3ErrorDialogTitle=Lỗi với tài khoản %S
+
+# LOCALIZATION NOTE (pop3EnterPasswordPromptTitleWithUsername): Do not translate the
+# word %1$S. Place the word %1$S where the user name should appear.
+pop3EnterPasswordPromptTitleWithUsername=Nhập mật khẩu của bạn cho %1$S
+
+# LOCALIZATION NOTE(pop3EnterPasswordPrompt): Do not translate the words "%1$S"
+# and "%2$S" below. Place the word %1$S where the user name should appear, and
+# %2$S where the host name should appear.
+pop3EnterPasswordPrompt=Nhập mật khẩu cho %1$S trên %2$S:
+
+# LOCALIZATION NOTE(pop3PreviouslyEnteredPasswordIsInvalidPrompt): Do not
+# translate the words "%1$S" and "%2$S" below. Place the word %1$S where the
+# user name should appear, and %2$S where the host name should appear.
+pop3PreviouslyEnteredPasswordIsInvalidPrompt=Vui lòng nhập mật khẩu mới cho người dùng %1$S trên %2$S:
+
+# Status - Downloading message n of m
+# LOCALIZATION NOTE (receivingMessages): Do not translate %1$S or %2$S in the following lines.
+# Place the word %1$S where the number of messages downloaded so far should appear.
+# Place the word %2$S where the total number of messages to receive should appear;
+receivingMessages=Đang tải thư %1$S của %2$S…
+
+# Status - connecting to host
+hostContact=Máy chủ đã liên lạc, đang gửi thông tin đăng nhập…
+
+# Status - no messages to download
+noNewMessages=Không có tin nhắn mới.
+
+# Status - messages received after the download
+#LOCALIZATION NOTE : Do not translate %1$S or %2$S in the following line.
+# %1$S will receive the number of messages received
+# %2$S will receive the total number of messages
+receivedMsgs=Đã nhận được %1$S của %2$S thư
+
+# Status - parsing folder
+#LOCALIZATION NOTE (buildingSummary): Do not translate %S in the following line.
+# Place the word %S where the name of the mailbox should appear
+buildingSummary=Xây dựng tập tin tóm tắt cho %S…
+
+# Status - parsing folder
+localStatusDocumentDone=Xong
+
+# Status - pop3 server error
+#LOCALIZATION NOTE (pop3ServerError): Do not translate POP3 in the following line.
+pop3ServerError=Đã xảy ra lỗi với máy chủ thư POP3.
+
+# Status - pop3 user name failed
+pop3UsernameFailure=Thất bại khi gửi tên người dùng.
+
+# Status - password failed
+#LOCALIZATION NOTE (pop3PasswordFailed): Do not translate "%1$S" below.
+# Place the word %1$S where the user name should appear.
+pop3PasswordFailed=Thất bại khi gửi mật khẩu cho người dùng %1$S.
+
+# Status - write error occurred
+pop3MessageWriteError=Không thể viết email vào hộp thư. Đảm bảo hệ thống tập tin cho phép bạn đặc quyền viết và bạn có đủ dung lượng đĩa để sao chép hộp thư.
+
+# Status - retr failure from the server
+pop3RetrFailure=Lệnh RETR không thành công. Lỗi khi truy xuất thư.
+
+# Status - password undefined
+
+# Status - username undefined
+pop3UsernameUndefined=Bạn chưa cung cấp tên người dùng cho máy chủ này. Vui lòng cung cấp một trong menu thiết lập tài khoản và thử lại.
+
+# Status - list failure
+pop3ListFailure=Lệnh LIST không thành công. Lỗi khi nhận ID và kích thước của thư.
+
+# Status - delete error
+pop3DeleFailure=Lệnh DELE không thành công. Lỗi khi đánh dấu thư là đã xóa.
+
+# Status - stat failed
+pop3StatFail=Lệnh STAT không thành công. Lỗi khi nhận số thư và kích cỡ.
+
+#LOCALIZATION NOTE (pop3ServerSaid): Do not remove the leading space during translation.
+pop3ServerSaid= Máy chủ thư %S đã trả lời:
+
+copyingMessagesStatus=Đang sao chép %S của %S thư sang %S
+
+movingMessagesStatus=Đang di chuyển %S của %S thư sang %S
+
+# Status - pop3 server or folder busy
+# LOCALIZATION NOTE (pop3ServerBusy): Do not translate the word "%S" below.
+# Place %S where the account name should appear.
+pop3ServerBusy=Tài khoản %S đang được xử lý. Vui lòng đợi cho đến khi xử lý hoàn tất để nhận thư.
+
+
+
+
+
+
+#LOCALIZATION NOTE (movemailCantParseSpool): %S is file name
+
+pop3TmpDownloadError=Đã xảy ra lỗi khi tải xuống thư sau: \nTừ: %S\n Chủ đề: %S\n Thư này có thể chứa vi-rút hoặc không đủ dung lượng đĩa. Bỏ qua thư này?
+
+# Status - the server doesn't support UIDL…
+# LOCALIZATION NOTE(pop3ServerDoesNotSupportUidlEtc): The following sentence should be translated in this way:
+# Do not translate "POP3"
+# Do not translate "%S". Place %S in your translation where the name of the server should appear.
+# Do not translate "UIDL"
+
+# Status - the server doesn't support the top command
+# LOCALIZATION NOTE(pop3ServerDoesNotSupportTopCommand): The following sentence should be translated in this way:
+# Do not translate "POP3"
+# Do not translate "%S". Place %S in your translation where the name of the server should appear.
+# Do not translate "TOP"
+
+
+# LOCALIZATION NOTE (pop3MoveFolderToTrash): Do not translate the word %S below.
+# "%S" is the the name of the folder.
+pop3MoveFolderToTrash=Bạn có chắc chắn muốn xóa thư mục '%S' không?
+
+pop3DeleteFolderDialogTitle=Xóa thư mục
+
+pop3DeleteFolderButtonLabel=&Xóa thư mục
+
+
+
+
+
+# Authentication server caps and pref don't match
+
+# Status - Could not log in to GSSAPI, and it was the only method
+
diff --git a/l10n-vi/mail/chrome/messenger/mailEditorOverlay.dtd b/l10n-vi/mail/chrome/messenger/mailEditorOverlay.dtd
new file mode 100644
index 0000000000..b654d9492e
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/mailEditorOverlay.dtd
@@ -0,0 +1,7 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY sendPage.label "Gửi Trang…">
+<!ENTITY sendPage.accesskey "G">
+
diff --git a/l10n-vi/mail/chrome/messenger/mailOverlay.dtd b/l10n-vi/mail/chrome/messenger/mailOverlay.dtd
new file mode 100644
index 0000000000..5b2459be83
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/mailOverlay.dtd
@@ -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/. -->
+
+<!ENTITY newMessageCmd2.key "N">
+<!ENTITY newMessageCmd.key "M">
+<!ENTITY newMessageCmd.label "Thư">
+<!ENTITY newMessageCmd.accesskey "T">
+
+<!ENTITY newContactCmd.label "Liên hệ trong sổ địa chỉ…">
+<!ENTITY newContactCmd.accesskey "c">
diff --git a/l10n-vi/mail/chrome/messenger/mailViewList.dtd b/l10n-vi/mail/chrome/messenger/mailViewList.dtd
new file mode 100644
index 0000000000..5205a2ff03
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/mailViewList.dtd
@@ -0,0 +1,7 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!--LOCALIZATION NOTE msgViewPickerOverlay.dtd UI for showing various views on a folder -->
+
+<!ENTITY mailViewListTitle.label "Tùy chỉnh chế độ xem thư">
diff --git a/l10n-vi/mail/chrome/messenger/mailViewSetup.dtd b/l10n-vi/mail/chrome/messenger/mailViewSetup.dtd
new file mode 100644
index 0000000000..3610db27e5
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/mailViewSetup.dtd
@@ -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 msgViewPickerOverlay.dtd UI for showing various views on a folder -->
+
+<!ENTITY mailViewSetupTitle.label "Cài đặt xem thư">
+<!ENTITY mailViewHeading.label "Tên cách hiển thị thư:">
+<!ENTITY mailViewHeading.accesskey "h">
+<!ENTITY searchTermCaption.label "Khi cách hiển thị này được chọn, chỉ hiển thị các thư:">
diff --git a/l10n-vi/mail/chrome/messenger/mailviews.properties b/l10n-vi/mail/chrome/messenger/mailviews.properties
new file mode 100644
index 0000000000..1a6b830e38
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/mailviews.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/.
+
+#
+# Mail Views
+#
+
+mailViewPeopleIKnow=Những người tôi biết
+mailViewRecentMail=Thư gần đây
+mailViewLastFiveDays=5 ngày qua
+mailViewNotJunk=Không phải thư rác
+mailViewHasAttachments=Có đính kèm
diff --git a/l10n-vi/mail/chrome/messenger/markByDate.dtd b/l10n-vi/mail/chrome/messenger/markByDate.dtd
new file mode 100644
index 0000000000..3236783096
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/markByDate.dtd
@@ -0,0 +1,9 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY messageMarkByDate.label "Đánh dấu thư là đã đọc theo ngày">
+<!ENTITY markByDateLower.label "Đánh dấu thư là đã đọc từ:">
+<!ENTITY markByDateLower.accesskey "F">
+<!ENTITY markByDateUpper.label "Đến:">
+<!ENTITY markByDateUpper.accesskey "T">
diff --git a/l10n-vi/mail/chrome/messenger/messenger.dtd b/l10n-vi/mail/chrome/messenger/messenger.dtd
new file mode 100644
index 0000000000..b0e18f9bd0
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/messenger.dtd
@@ -0,0 +1,973 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY titledefault.label "&brandFullName;">
+<!ENTITY titleSeparator.label " - ">
+
+<!-- File Menu -->
+<!ENTITY newFolderCmd.label "Thư mục…">
+<!ENTITY newFolderCmd.accesskey "F">
+<!ENTITY closeTabCmd2.label "Đóng thẻ">
+<!ENTITY closeTabCmd2.accesskey "C">
+<!ENTITY closeOtherTabsCmd2.label "Đóng các thẻ khác">
+<!ENTITY closeOtherTabsCmd2.accesskey "o">
+<!ENTITY recentlyClosedTabsCmd.label "Các thẻ mới đóng gần đây">
+<!ENTITY recentlyClosedTabsCmd.accesskey "R">
+
+<!ENTITY undoCloseTabCmd.commandkey "T">
+<!-- LOCALIZATION NOTE (moveToNewWindow.label):
+ Menu option to cause the current tab to be migrated to a new Thunderbird
+ window.
+ -->
+<!ENTITY moveToNewWindow.label "Di chuyển đến cửa sổ mới">
+<!ENTITY moveToNewWindow.accesskey "W">
+<!ENTITY newVirtualFolderCmd.label "Tìm kiếm đã lưu…">
+<!ENTITY newVirtualFolderCmd.accesskey "S">
+<!ENTITY newOtherAccountsCmd.label "Các tài khoản khác…">
+<!ENTITY newOtherAccountsCmd.accesskey "O">
+<!ENTITY newCreateEmailAccountCmd.label "Tạo tài khoản thư mới…">
+<!ENTITY newCreateEmailAccountCmd.accesskey "G">
+<!ENTITY newExistingEmailAccountCmd.label "Tài khoản thư hiện có…">
+<!ENTITY newExistingEmailAccountCmd.accesskey "E">
+<!ENTITY newIMAccountCmd.label "Tài khoản trò chuyện…">
+<!ENTITY newIMAccountCmd.accesskey "C">
+<!ENTITY newFeedAccountCmd.label "Tài khoản nguồn cấp…">
+<!ENTITY newFeedAccountCmd.accesskey "d">
+<!ENTITY newIMContactCmd.label "Trò chuyện liên hệ…">
+<!ENTITY newIMContactCmd.accesskey "h">
+<!ENTITY newMessageCmd2.key "N">
+<!ENTITY newMessageCmd.key "M">
+<!ENTITY newMessageCmd.label "Thư">
+<!ENTITY newMessageCmd.accesskey "m">
+<!ENTITY newContactCmd.label "Sổ địa chỉ liên hệ…">
+<!ENTITY newContactCmd.accesskey "C">
+<!ENTITY openMenuCmd.label "Mở">
+<!ENTITY openMenuCmd.accesskey "O">
+<!ENTITY openMessageFileCmd.label "Mở các thư đã lưu…">
+<!ENTITY openMessageFileCmd.accesskey "O">
+<!ENTITY saveAsMenu.label "Lưu thành">
+<!ENTITY saveAsMenu.accesskey "S">
+<!ENTITY saveAsFileCmd.label "Tập tin">
+<!ENTITY saveAsFileCmd.accesskey "F">
+<!ENTITY saveAsFileCmd.key "s">
+<!ENTITY saveAsTemplateCmd.label "Mẫu">
+<!ENTITY saveAsTemplateCmd.accesskey "T">
+<!ENTITY getNewMsgForCmd.label "Nhận thư mới cho">
+<!ENTITY getNewMsgForCmd.accesskey "w">
+<!ENTITY getAllNewMsgCmdPopupMenu.label "Tất cả các tài khoản">
+<!ENTITY getAllNewMsgCmdPopupMenu.accesskey "A">
+<!ENTITY getNewMsgCurrentAccountCmdPopupMenu.label "Tài khoản hiện tại">
+<!ENTITY getNewMsgCurrentAccountCmdPopupMenu.accesskey "C">
+<!ENTITY getNextNMsgCmd2.label "Nhận thư tin tức tiếp theo">
+<!ENTITY getNextNMsgCmd2.accesskey "t">
+<!ENTITY sendUnsentCmd.label "Gửi các thư chưa gửi">
+<!ENTITY sendUnsentCmd.accesskey "d">
+<!ENTITY subscribeCmd.label "Đăng kí…">
+<!ENTITY subscribeCmd.accesskey "b">
+<!ENTITY deleteFolder.label "Xóa thư mục">
+<!ENTITY deleteFolder.accesskey "e">
+<!ENTITY renameFolder.label "Đổi tên thư mục…">
+<!ENTITY renameFolder.accesskey "R">
+<!ENTITY renameFolder.key "VK_F2">
+<!ENTITY compactFolders.label "Làm gọn thư mục">
+<!ENTITY compactFolders.accesskey "F">
+<!ENTITY emptyTrashCmd.label "Dọn sạch thùng rác">
+<!ENTITY emptyTrashCmd.accesskey "y">
+<!ENTITY offlineMenu.label "Ngoại tuyến">
+<!ENTITY offlineMenu.accesskey "l">
+<!ENTITY offlineGoOfflineCmd.label "Làm việc ngoại tuyến">
+<!ENTITY offlineGoOfflineCmd.accesskey "w">
+<!ENTITY synchronizeOfflineCmd.label "Tải xuống/Đồng bộ hóa ngay…">
+<!ENTITY synchronizeOfflineCmd.accesskey "S">
+<!ENTITY settingsOfflineCmd2.label "Cài đặt ngoại tuyến">
+<!ENTITY settingsOfflineCmd2.accesskey "e">
+<!ENTITY downloadSelectedCmd.label "Nhận các thư đã chọn">
+<!ENTITY downloadSelectedCmd.accesskey "l">
+<!ENTITY downloadStarredCmd.label "Nhận các thư được gắn dấu sao">
+<!ENTITY downloadStarredCmd.accesskey "a">
+<!ENTITY printCmd.label "In…">
+<!ENTITY printCmd.accesskey "P">
+<!ENTITY printCmd.key "p">
+<!ENTITY printPreviewCmd.label "Xem trước khi in">
+<!ENTITY printPreviewCmd.accesskey "v">
+<!ENTITY printSetupCmd.label "Thiết lập trang…">
+<!ENTITY printSetupCmd.accesskey "u">
+
+<!-- Edit Menu -->
+<!ENTITY deleteMsgCmd.label "Xóa thư">
+<!ENTITY deleteMsgCmd.accesskey "D">
+<!ENTITY undeleteMsgCmd.label "Không xóa thư">
+<!ENTITY undeleteMsgCmd.accesskey "d">
+<!ENTITY deleteMsgsCmd.label "Xóa thư đã chọn">
+<!ENTITY deleteMsgsCmd.accesskey "D">
+<!ENTITY undeleteMsgsCmd.label "Không xóa thư đã chọn">
+<!ENTITY undeleteMsgsCmd.accesskey "d">
+<!ENTITY deleteFolderCmd.label "Xóa thư mục">
+<!ENTITY deleteFolderCmd.accesskey "D">
+<!ENTITY unsubscribeNewsgroupCmd.label "Hủy đăng ký">
+<!ENTITY unsubscribeNewsgroupCmd.accesskey "b">
+<!ENTITY selectMenu.label "Chọn">
+<!ENTITY selectMenu.accesskey "S">
+<!ENTITY all.label "Tất cả">
+<!ENTITY all.accesskey "A">
+<!ENTITY selectThreadCmd.label "Chủ đề">
+<!ENTITY selectThreadCmd.accesskey "T">
+<!ENTITY selectThreadCmd.key "a">
+<!ENTITY selectFlaggedCmd.label "Thư được gắn dấu sao">
+<!ENTITY selectFlaggedCmd.accesskey "S">
+<!ENTITY menuFavoriteFolder.label "Thư mục yêu thích">
+<!ENTITY menuFavoriteFolder.accesskey "v">
+<!ENTITY folderPropsCmd2.label "Thuộc tính">
+<!ENTITY folderPropsFolderCmd2.label "Thuộc tính thư mục">
+<!ENTITY folderPropsNewsgroupCmd2.label "Thuộc tính nhóm tin">
+<!ENTITY folderPropsCmd.accesskey "o">
+<!ENTITY undoDeleteMsgCmd.label "Hoàn tác xóa thư">
+<!ENTITY redoDeleteMsgCmd.label "Làm lại xóa thư">
+<!ENTITY undoMoveMsgCmd.label "Hoàn tác di chuyển thư">
+<!ENTITY redoMoveMsgCmd.label "Làm lại di chuyển thư">
+<!ENTITY undoCopyMsgCmd.label "Hoàn tác sao chép thư">
+<!ENTITY redoCopyMsgCmd.label "Làm lại sao chép thư">
+<!ENTITY undoMarkAllCmd.label "Hoàn tác đánh dấu tất cả là đã đọc">
+<!ENTITY redoMarkAllCmd.label "Đánh dấu lại tất cả là đã đọc">
+<!ENTITY undoDefaultCmd.label "Hoàn tác">
+<!ENTITY undoDefaultCmd.accesskey "U">
+<!ENTITY redoDefaultCmd.label "Làm lại">
+<!ENTITY redoDefaultCmd.accesskey "R">
+
+<!-- View Menu -->
+<!ENTITY menubarCmd.label "Thanh menu">
+<!ENTITY menubarCmd.accesskey "M">
+<!ENTITY showMessengerToolbarCmd.label "Thanh công cụ thư">
+<!ENTITY showMessengerToolbarCmd.accesskey "o">
+<!ENTITY customizeToolbar.label "Tùy biến…">
+<!ENTITY customizeToolbar.accesskey "C">
+
+<!ENTITY messagePaneLayoutStyle.label "Bố cục">
+<!ENTITY messagePaneLayoutStyle.accesskey "L">
+<!ENTITY messagePaneClassic.label "Chế độ xem cổ điển">
+<!ENTITY messagePaneClassic.accesskey "C">
+<!ENTITY messagePaneWide.label "Chế độ xem rộng">
+<!ENTITY messagePaneWide.accesskey "W">
+<!ENTITY messagePaneVertical.label "Chế độ xem dọc">
+<!ENTITY messagePaneVertical.accesskey "V">
+<!ENTITY showFolderPaneCmd.label "Ngăn thư mục">
+<!ENTITY showFolderPaneCmd.accesskey "F">
+<!ENTITY showFolderPaneColsCmd.label "Cột trong ngăn thư mục">
+<!ENTITY showFolderPaneColsCmd.accesskey "P">
+<!ENTITY showMessageCmd.label "Ngăn đọc thư">
+<!ENTITY showMessageCmd.accesskey "M">
+
+<!ENTITY folderView.label "Thư mục">
+<!ENTITY folderView.accesskey "F">
+<!ENTITY unifiedFolders.label "Hợp nhất">
+<!ENTITY unifiedFolders.accesskey "n">
+<!ENTITY allFolders.label "Tất cả">
+<!ENTITY allFolders.accesskey "A">
+<!ENTITY unreadFolders.label "Chưa đọc">
+<!ENTITY unreadFolders.accesskey "U">
+<!ENTITY favoriteFolders.label "Yêu thích">
+<!ENTITY favoriteFolders.accesskey "F">
+<!ENTITY recentFolders.label "Gần đây">
+<!ENTITY recentFolders.accesskey "R">
+<!ENTITY compactVersion.label "Chế độ xem gọn">
+<!ENTITY compactVersion.accesskey "C">
+<!ENTITY folderPaneBar.label "Thanh công cụ ngăn thư mục">
+<!ENTITY folderPaneBar.accesskey "F">
+
+<!-- Sort Menu -->
+<!ENTITY sortMenu.label "Sắp xếp theo">
+<!ENTITY sortMenu.accesskey "S">
+<!ENTITY sortByDateCmd.label "Ngày">
+<!ENTITY sortByDateCmd.accesskey "e">
+<!ENTITY sortByReceivedCmd.label "Đã nhận">
+<!ENTITY sortByReceivedCmd.accesskey "v">
+<!ENTITY sortByStarCmd.label "Dấu sao">
+<!ENTITY sortByStarCmd.accesskey "S">
+<!ENTITY sortByAttachmentsCmd.label "Đính kèm">
+<!ENTITY sortByAttachmentsCmd.accesskey "m">
+<!ENTITY sortByPriorityCmd.label "Ưu tiên">
+<!ENTITY sortByPriorityCmd.accesskey "P">
+<!ENTITY sortBySizeCmd.label "Kích thước">
+<!ENTITY sortBySizeCmd.accesskey "z">
+<!ENTITY sortByStatusCmd.label "Trạng thái">
+<!ENTITY sortByStatusCmd.accesskey "u">
+<!ENTITY sortByTagsCmd.label "Nhãn">
+<!ENTITY sortByTagsCmd.accesskey "g">
+<!ENTITY sortByJunkStatusCmd.label "Trạng thái thư rác">
+<!ENTITY sortByJunkStatusCmd.accesskey "J">
+<!ENTITY sortBySubjectCmd.label "Tiêu đề">
+<!ENTITY sortBySubjectCmd.accesskey "b">
+<!ENTITY sortByFromCmd.label "Người gửi">
+<!ENTITY sortByFromCmd.accesskey "F">
+<!ENTITY sortByRecipientCmd.label "Người nhận">
+<!ENTITY sortByRecipientCmd.accesskey "c">
+<!ENTITY sortByCorrespondentCmd.label "Người viết">
+<!ENTITY sortByCorrespondentCmd.accesskey "n">
+<!ENTITY sortByUnreadCmd.label "Đã đọc">
+<!ENTITY sortByUnreadCmd.accesskey "R">
+<!ENTITY sortByOrderReceivedCmd.label "Thứ tự nhận được">
+<!ENTITY sortByOrderReceivedCmd.accesskey "O">
+<!ENTITY sortAscending.label "Tăng dần">
+<!ENTITY sortAscending.accesskey "A">
+<!ENTITY sortDescending.label "Giảm dần">
+<!ENTITY sortDescending.accesskey "D">
+<!ENTITY sortThreaded.label "Theo chủ đề">
+<!ENTITY sortThreaded.accesskey "T">
+<!ENTITY sortUnthreaded.label "Không theo chủ đề">
+<!ENTITY sortUnthreaded.accesskey "h">
+<!ENTITY groupBySort.label "Được nhóm theo sắp xếp">
+<!ENTITY groupBySort.accesskey "G">
+<!ENTITY msgsMenu.label "Thư">
+<!ENTITY msgsMenu.accesskey "M">
+<!ENTITY threads.label "Chủ đề">
+<!ENTITY threads.accesskey "e">
+<!ENTITY allMsgsCmd.label "Tất cả">
+<!ENTITY allMsgsCmd.accesskey "A">
+<!ENTITY expandAllThreadsCmd.label "Mở rộng tất cả các chủ đề">
+<!ENTITY expandAllThreadsCmd.accesskey "E">
+<!ENTITY expandAllThreadsCmd.key "*">
+<!ENTITY collapseAllThreadsCmd.label "Thu gọn tất cả các chủ đề">
+<!ENTITY collapseAllThreadsCmd.accesskey "C">
+<!ENTITY collapseAllThreadsCmd.key "\">
+<!ENTITY unreadMsgsCmd.label "Chưa đọc">
+<!ENTITY unreadMsgsCmd.accesskey "U">
+<!ENTITY threadsWithUnreadCmd.label "Chủ đề có thư chưa đọc">
+<!ENTITY threadsWithUnreadCmd.accesskey "T">
+<!ENTITY watchedThreadsWithUnreadCmd.label "Chủ đề đã đăng kí có thư chưa đọc">
+<!ENTITY watchedThreadsWithUnreadCmd.accesskey "W">
+<!ENTITY ignoredThreadsCmd.label "Chủ đề đã bỏ qua">
+<!ENTITY ignoredThreadsCmd.accesskey "i">
+
+<!ENTITY headersMenu.label "Thông tin thư">
+<!ENTITY headersMenu.accesskey "H">
+<!ENTITY headersAllCmd.label "Tất cả">
+<!ENTITY headersAllCmd.accesskey "A">
+<!ENTITY headersNormalCmd.label "Bình thường">
+<!ENTITY headersNormalCmd.accesskey "N">
+<!ENTITY bodyMenu.label "Nội dung thư dưới dạng">
+<!ENTITY bodyMenu.accesskey "B">
+<!ENTITY bodyAllowHTML.label "HTML gốc">
+<!ENTITY bodyAllowHTML.accesskey "H">
+<!ENTITY bodySanitized.label "HTML đơn giản">
+<!ENTITY bodySanitized.accesskey "S">
+<!ENTITY bodyAsPlaintext.label "Văn bản thuần túy">
+<!ENTITY bodyAsPlaintext.accesskey "P">
+<!ENTITY bodyAllParts.label "Tất cả các phần thân">
+<!ENTITY bodyAllParts.accesskey "A">
+
+<!ENTITY bodyMenuFeed.label "Nội dung nguồn cấp dưới dạng">
+<!ENTITY bodyMenuFeed.accesskey "B">
+<!ENTITY viewFeedWebPage.label "Trang web">
+<!ENTITY viewFeedWebPage.accesskey "W">
+<!ENTITY viewFeedSummary.label "Tóm tắt">
+<!ENTITY viewFeedSummary.accesskey "m">
+<!ENTITY viewFeedSummaryFeedPropsPref.label "Định dạng mặc định">
+<!ENTITY viewFeedSummaryFeedPropsPref.accesskey "D">
+
+<!ENTITY viewAttachmentsInlineCmd.label "Hiển thị đính kèm trong nội dung thư">
+<!ENTITY viewAttachmentsInlineCmd.accesskey "A">
+
+<!ENTITY pageSourceCmd.label "Mã nguồn của thư">
+<!ENTITY pageSourceCmd.accesskey "o">
+<!ENTITY pageSourceCmd.key "u">
+<!ENTITY getNewMessagesCmd.key "y">
+<!ENTITY getAllNewMessagesCmd.key "Y">
+
+<!-- Search Menu -->
+<!ENTITY findMenu.label "Tìm">
+<!ENTITY findMenu.accesskey "F">
+<!ENTITY findCmd.label "Tìm trong thư này…">
+<!ENTITY findCmd.accesskey "F">
+<!ENTITY findCmd.key "f">
+<!ENTITY findAgainCmd.label "Tìm tiếp">
+<!ENTITY findAgainCmd.accesskey "g">
+<!ENTITY findAgainCmd.key "g">
+<!ENTITY findAgainCmd.key2 "VK_F3">
+<!ENTITY findPrevCmd.key "g">
+<!ENTITY findPrevCmd.key2 "VK_F3">
+<!ENTITY searchMailCmd.label "Tìm kiếm thư…">
+<!ENTITY searchMailCmd.accesskey "M">
+<!ENTITY searchMailCmd.key "f">
+<!ENTITY glodaSearchCmd.label "Tìm kiếm tổng quát…">
+<!ENTITY glodaSearchCmd.accesskey "G">
+<!ENTITY searchAddressesCmd.label "Tìm kiếm địa chỉ…">
+<!ENTITY searchAddressesCmd.accesskey "S">
+
+<!-- Go Menu -->
+<!ENTITY goMenu.label "Đi">
+<!ENTITY goMenu.accesskey "G">
+<!ENTITY nextMenu.label "Tiếp">
+<!ENTITY nextMenu.accesskey "N">
+<!ENTITY nextMsgCmd.label "Thư">
+<!ENTITY nextMsgCmd.accesskey "M">
+<!ENTITY nextMsgCmd.key "f">
+<!ENTITY nextUnreadMsgCmd.label "Thư chưa đọc">
+<!ENTITY nextUnreadMsgCmd.accesskey "U">
+<!ENTITY nextUnreadMsgCmd.key "n">
+<!ENTITY nextStarredMsgCmd.label "Thư được gắn dấu sao">
+<!ENTITY nextStarredMsgCmd.accesskey "S">
+<!ENTITY nextUnreadThread.label "Chủ đề chưa đọc">
+<!ENTITY nextUnreadThread.accesskey "T">
+<!ENTITY nextUnreadThread.key "t">
+<!ENTITY prevMenu.label "Trước">
+<!ENTITY prevMenu.accesskey "P">
+<!ENTITY prevMsgCmd.label "Thư">
+<!ENTITY prevMsgCmd.accesskey "M">
+<!ENTITY prevMsgCmd.key "b">
+<!ENTITY prevUnreadMsgCmd.label "Thư chưa đọc">
+<!ENTITY prevUnreadMsgCmd.accesskey "U">
+<!ENTITY prevUnreadMsgCmd.key "p">
+<!ENTITY goForwardCmd.label "Tiến">
+<!ENTITY goForwardCmd.accesskey "F">
+<!ENTITY goForwardCmd.commandKey "]">
+<!ENTITY goBackCmd.label "Quay lại">
+<!ENTITY goBackCmd.accesskey "B">
+<!ENTITY goBackCmd.commandKey "[">
+<!ENTITY goChatCmd.label "Trò chuyện">
+<!ENTITY goChatCmd.accesskey "c">
+<!ENTITY goChatCmd2.key "H">
+<!ENTITY prevStarredMsgCmd.label "Thư được gắn dấu sao">
+<!ENTITY prevStarredMsgCmd.accesskey "S">
+<!ENTITY folderMenu.label "Thư mục">
+<!ENTITY folderMenu.accesskey "O">
+<!ENTITY goRecentlyClosedTabs.label "Thẻ mới đóng gần đây">
+<!ENTITY goRecentlyClosedTabs.accesskey "R">
+<!ENTITY startPageCmd.label "Trang bắt đầu thư">
+<!ENTITY startPageCmd.accesskey "S">
+
+<!-- Message Menu -->
+<!ENTITY msgMenu.label "Thư">
+<!ENTITY msgMenu.accesskey "M">
+<!ENTITY newMsgCmd.label "Thư mới">
+<!ENTITY newMsgCmd.accesskey "N">
+<!ENTITY newNewMsgCmd.label "Thư">
+<!ENTITY newNewMsgCmd.accesskey "M">
+<!ENTITY archiveMsgCmd.label "Lưu trữ">
+<!ENTITY archiveMsgCmd.accesskey "A">
+<!ENTITY archiveMsgCmd.key "a">
+<!ENTITY cancelNewsMsgCmd.label "Hủy thư">
+<!ENTITY cancelNewsMsgCmd.accesskey "C">
+<!ENTITY replyMsgCmd.label "Trả lời">
+<!ENTITY replyMsgCmd.accesskey "R">
+<!ENTITY replyMsgCmd.key "r">
+<!ENTITY replySenderCmd.label "Chỉ trả lời người gửi">
+<!ENTITY replySenderCmd.accesskey "R">
+<!ENTITY replyNewsgroupCmd2.label "Theo dõi nhóm tin">
+<!ENTITY replyNewsgroupCmd2.accesskey "u">
+<!ENTITY replyToAllMsgCmd.label "Trả lời tất cả">
+<!ENTITY replyToAllMsgCmd.accesskey "p">
+<!ENTITY replyToAllMsgCmd.key "r">
+<!ENTITY replyToListMsgCmd.label "Trả lời danh sách">
+<!ENTITY replyToListMsgCmd.accesskey "L">
+<!ENTITY replyToListMsgCmd.key "l">
+<!ENTITY forwardMsgCmd.label "Chuyển tiếp">
+<!ENTITY forwardMsgCmd.accesskey "F">
+<!ENTITY forwardMsgCmd.key "l">
+<!ENTITY forwardAsMenu.label "Chuyển tiếp dưới dạng">
+<!ENTITY forwardAsMenu.accesskey "w">
+<!ENTITY forwardAsInline.label "Ngay trong thư">
+<!ENTITY forwardAsInline.accesskey "I">
+<!ENTITY forwardAsAttachmentCmd.label "Đính kèm">
+<!ENTITY forwardAsAttachmentCmd.accesskey "A">
+<!ENTITY editAsNewMsgCmd.label "Chỉnh sửa như thư mới">
+<!ENTITY editAsNewMsgCmd.accesskey "E">
+<!ENTITY editAsNewMsgCmd.key "e">
+<!ENTITY editDraftMsgCmd.label "Chỉnh sửa thư nháp">
+<!ENTITY editDraftMsgCmd.accesskey "D">
+<!ENTITY editTemplateMsgCmd.label "Chỉnh sửa mẫu">
+<!ENTITY editTemplateMsgCmd.accesskey "T">
+<!ENTITY newMsgFromTemplateCmd.label "Thư mới từ mẫu">
+<!ENTITY newMsgFromTemplateCmd.keycode "VK_RETURN"><!-- do not change "VK_RETURN" -->
+<!ENTITY createFilter.label "Tạo bộ lọc từ thư…">
+<!ENTITY createFilter.accesskey "o">
+<!ENTITY moveMsgToMenu.label "Di chuyển đến">
+<!ENTITY moveMsgToMenu.accesskey "D">
+<!ENTITY moveCopyMsgRecentMenu.label "Gần đây">
+<!ENTITY moveCopyMsgRecentMenu.accesskey "G">
+<!ENTITY copyMessageLocation.label "Sao chép địa chỉ thư">
+<!ENTITY copyMessageLocation.accesskey "p">
+<!ENTITY copyMsgToMenu.label "Sao chép đến">
+<!ENTITY copyMsgToMenu.accesskey "C">
+<!ENTITY moveToFolderAgain.label "Thử di chuyển lại">
+<!ENTITY moveToFolderAgain.accesskey "n">
+<!ENTITY moveToFolderAgainCmd.key "m">
+<!ENTITY killThreadMenu.label "Bỏ qua chủ đề">
+<!ENTITY killThreadMenu.accesskey "B">
+<!ENTITY killThreadMenu.key "k">
+<!ENTITY killSubthreadMenu.label "Bỏ qua chủ đề con">
+<!ENTITY killSubthreadMenu.accesskey "q">
+<!ENTITY killSubthreadMenu.key "k">
+<!ENTITY watchThreadMenu.label "Theo dõi chủ đề">
+<!ENTITY watchThreadMenu.accesskey "e">
+<!ENTITY watchThreadMenu.key "w">
+<!ENTITY tagMenu.label "Nhãn">
+<!ENTITY tagMenu.accesskey "h">
+<!ENTITY tagCmd0.key "0">
+<!ENTITY tagCmd1.key "1">
+<!ENTITY tagCmd2.key "2">
+<!ENTITY tagCmd3.key "3">
+<!ENTITY tagCmd4.key "4">
+<!ENTITY tagCmd5.key "5">
+<!ENTITY tagCmd6.key "6">
+<!ENTITY tagCmd7.key "7">
+<!ENTITY tagCmd8.key "8">
+<!ENTITY tagCmd9.key "9">
+<!ENTITY markMenu.label "Đánh dấu">
+<!ENTITY markMenu.accesskey "u">
+<!ENTITY toggleReadCmd.key "m">
+<!ENTITY markAsReadCmd.label "Đã đọc">
+<!ENTITY markAsReadCmd.accesskey "c">
+<!ENTITY markAsUnreadCmd.label "Chưa đọc">
+<!ENTITY markAsUnreadCmd.accesskey "C">
+<!ENTITY markThreadAsReadCmd.label "Chủ đề là đã đọc">
+<!ENTITY markThreadAsReadCmd.accesskey "h">
+<!ENTITY markThreadAsReadCmd.key "r">
+<!ENTITY markReadByDateCmd.label "Đã đọc theo ngày…">
+<!ENTITY markReadByDateCmd.accesskey "y">
+<!ENTITY markReadByDateCmd.key "c">
+<!ENTITY markAllReadCmd.label "Tất cả là đã đọc">
+<!ENTITY markAllReadCmd.accesskey "T">
+<!ENTITY markAllReadCmd.key "c">
+<!ENTITY markStarredCmd.label "Thêm sao">
+<!ENTITY markStarredCmd.accesskey "S">
+<!ENTITY markStarredCmd.key "S">
+<!ENTITY markAsJunkCmd.label "Thư rác">
+<!ENTITY markAsJunkCmd.accesskey "r">
+<!ENTITY markAsJunkCmd.key "j">
+<!ENTITY markAsNotJunkCmd.label "Không phải thư rác">
+<!ENTITY markAsNotJunkCmd.accesskey "K">
+<!ENTITY markAsNotJunkCmd.key "j">
+<!ENTITY recalculateJunkScoreCmd.label "Chạy điều khiển thư rác">
+<!ENTITY recalculateJunkScoreCmd.accesskey "B">
+<!ENTITY openMessageWindowCmd.label "Mở thư">
+<!ENTITY openMessageWindowCmd.accesskey "M">
+<!ENTITY openMessageWindowCmd.key "o">
+<!ENTITY openInConversationCmd.label "Mở trong hội thoại">
+<!ENTITY openInConversationCmd.accesskey "s">
+<!ENTITY openInConversationCmd.key "o">
+<!ENTITY openAttachmentListCmd.label "Đính kèm">
+<!ENTITY openAttachmentListCmd.accesskey "h">
+<!ENTITY openFeedMessage1.label "Khi mở thư nguồn cấp dữ liệu">
+<!ENTITY openFeedMessage1.accesskey "O">
+<!ENTITY openFeedWebPage.label "Mở dưới dạng trang web">
+<!ENTITY openFeedWebPage.accesskey "W">
+<!ENTITY openFeedSummary.label "Mở dưới dạng tóm tắt">
+<!ENTITY openFeedSummary.accesskey "S">
+<!ENTITY openFeedWebPageInMP.label "Bật-tắt trang web và tóm tắt trong khung đọc thư">
+<!ENTITY openFeedWebPageInMP.accesskey "K">
+
+<!-- Windows Menu -->
+<!ENTITY windowMenu.label "Cửa sổ">
+
+<!-- Tools Menu -->
+<!ENTITY tasksMenu.label "Công cụ">
+<!ENTITY tasksMenu.accesskey "g">
+<!ENTITY messengerCmd.label "Thư &amp; nhóm tin">
+<!ENTITY messengerCmd.accesskey "N">
+<!ENTITY addressBookCmd.label "Sổ địa chỉ">
+<!ENTITY addressBookCmd.accesskey "S">
+<!ENTITY addressBookCmd.key "B">
+<!ENTITY addons.label "Tiện ích">
+<!ENTITY addons.accesskey "T">
+<!ENTITY addonPrefs.label "Tùy chọn tiện ích">
+<!ENTITY addonPrefs.accesskey "O">
+<!ENTITY addonPrefsUnix.label "Tùy chỉnh tiện ích">
+<!ENTITY addonPrefsUnix.accesskey "P">
+<!ENTITY addonNoPrefs.label "Không tìm thấy cài đặt tiện ích.">
+<!ENTITY activitymanager.label "Trình quản lý hoạt động">
+<!ENTITY activitymanager.accesskey "Q">
+<!ENTITY imAccountsStatus.label "Trạng thái trò chuyện">
+<!ENTITY imAccountsStatus.accesskey "C">
+<!ENTITY imStatus.available "Có mặt">
+<!ENTITY imStatus.unavailable "Không sẵn sàng">
+<!ENTITY imStatus.offline "Ngoại tuyến">
+<!ENTITY imStatus.showAccounts "Hiển thị tài khoản…">
+<!ENTITY joinChatCmd.label "Tham gia trò chuyện…">
+<!ENTITY joinChatCmd.accesskey "t">
+<!ENTITY savedFiles.label "Tập tin đã lưu">
+<!ENTITY savedFiles.accesskey "u">
+<!ENTITY savedFiles.key "j">
+<!ENTITY filtersCmd2.label "Bộ lọc tin nhắn">
+<!ENTITY filtersCmd2.accesskey "F">
+<!ENTITY filtersApply.label "Chạy bộ lọc trên thư mục">
+<!ENTITY filtersApply.accesskey "C">
+<!ENTITY filtersApplyToSelection.label "Chạy bộ lọc trên các thư được chọn">
+<!ENTITY filtersApplyToSelection.accesskey "r">
+<!ENTITY filtersApplyToMessage.label "Chạy bộ lọc trên thư">
+<!ENTITY filtersApplyToMessage.accesskey "r">
+<!ENTITY runJunkControls.label "Chạy điều khiển thư rác trên thư mục">
+<!ENTITY runJunkControls.accesskey "k">
+<!ENTITY deleteJunk.label "Xóa thư được đánh dấu là thư rác trong thư mục">
+<!ENTITY deleteJunk.accesskey "X">
+<!ENTITY importCmd.label "Nhập…">
+<!ENTITY importCmd.accesskey "N">
+<!ENTITY clearRecentHistory.label "Xóa lịch sử gần đây…">
+<!ENTITY clearRecentHistory.accesskey "H">
+<!ENTITY accountManagerCmd2.label "Cài đặt tài khoản">
+<!ENTITY accountManagerCmd2.accesskey "S">
+<!-- LOCALIZATION NOTE (accountManagerCmdUnix.accesskey):
+ Belongs to accountManagerCmd.label, which is placed under the Edit menu
+ on Unix systems
+ -->
+<!ENTITY accountManagerCmdUnix2.accesskey "A">
+
+<!-- Developer Tools Submenu -->
+<!ENTITY devtoolsMenu.label "Công cụ dành cho nhà phát triển">
+<!ENTITY devtoolsMenu.accesskey "e">
+<!ENTITY devToolboxCmd.label "Hộp công cụ dành cho nhà phát triển">
+<!ENTITY devToolboxCmd.accesskey "T">
+<!ENTITY devToolboxCmd.commandkey "i">
+<!ENTITY debugAddonsCmd.label "Gỡ lỗi tiện ích">
+<!ENTITY debugAddonsCmd.accesskey "A">
+<!ENTITY tabsDebugCmd.label "Trình gỡ lỗi khung nội dung">
+<!ENTITY tabsDebugCmd.accesskey "C">
+<!ENTITY errorConsoleCmd.label "Bảng kiểm soát lỗi">
+<!ENTITY errorConsoleCmd.accesskey "L">
+<!ENTITY errorConsoleCmd.commandkey "j">
+
+<!-- Mail Toolbar -->
+<!ENTITY getMsgButton1.label "Nhận tin nhắn">
+<!ENTITY newMsgButton.label "Viết thư">
+<!ENTITY replyButton.label "Trả lời">
+<!ENTITY replyAllButton.label "Trả lời tất cả">
+<!ENTITY replyListButton.label "Trả lời danh sách">
+<!ENTITY forwardButton.label "Chuyển tiếp">
+<!ENTITY fileButton.label "Xếp">
+<!ENTITY archiveButton.label "Lưu trữ">
+<!ENTITY openConversationButton.label "Hội thoại">
+<!ENTITY nextButton.label "Tiếp theo">
+<!ENTITY nextButtonToolbarItem.label "Thư chưa đọc tiếp theo">
+<!ENTITY nextMsgButton.label "Tiếp theo">
+<!ENTITY previousButton.label "Trước">
+<!ENTITY previousButtonToolbarItem.label "Thư chưa đọc trước đó">
+<!ENTITY previousMsgButton.label "Trước">
+<!ENTITY backButton1.label "Quay lại">
+<!ENTITY goForwardButton1.label "Tiến">
+<!ENTITY deleteItem.title "Xóa">
+<!ENTITY deleteButton.label "Xóa">
+<!ENTITY undeleteButton.label "Không xóa">
+<!ENTITY markButton.label "Đánh dấu">
+<!ENTITY printButton.label "In">
+<!ENTITY stopButton.label "Dừng">
+<!ENTITY throbberItem.title "Chỉ báo hoạt động">
+<!ENTITY junkItem.title "Thư rác">
+<!ENTITY junkButton.label "Thư rác">
+<!ENTITY notJunkButton.label "Không phải thư rác">
+<!ENTITY addressBookButton.label "Sổ địa chỉ">
+<!ENTITY chatButton.label "Trò chuyện">
+<!ENTITY glodaSearch.title "Tìm kiếm toàn bộ">
+<!ENTITY searchItem.title "Tìm kiếm nhanh">
+<!ENTITY mailViewsToolbarItem.title "Cách hiển thị thư">
+<!ENTITY folderLocationToolbarItem.title "Địa chỉ thư mục">
+<!ENTITY tagButton.label "Nhãn">
+<!ENTITY compactButton.label "Làm gọn">
+<!ENTITY appmenuButton.label "Trình đơn ứng dụng">
+
+<!-- Mail Toolbar Tooltips-->
+<!ENTITY advancedButton.tooltip "Tìm kiếm thư nâng cao">
+<!ENTITY getMsgButton.tooltip "Nhận thư mới">
+<!ENTITY getAllNewMsgCmd.label "Nhận tất cả thư mới">
+<!ENTITY getAllNewMsgCmd.accesskey "y">
+<!ENTITY newMsgButton.tooltip "Tạo một thư mới">
+<!ENTITY replyButton.tooltip "Trả lời thư">
+<!ENTITY replyAllButton.tooltip "Trả lời người gửi và tất cả người nhận">
+<!ENTITY replyListButton.tooltip "Trả lời danh sách thư">
+<!ENTITY forwardButton.tooltip "Chuyển tiếp thư đã chọn">
+<!ENTITY forwardAsInline.tooltip "Chuyển tiếp thư được chọn dưới dạng văn bản ngay trong thư">
+<!ENTITY forwardAsAttachment.tooltip "Chuyển tiếp thư được chọn dưới dạng đính kèm">
+<!ENTITY fileButton.tooltip "Xếp thông điệp được chọn vào thư mục">
+<!ENTITY archiveButton.tooltip "Lưu trữ các thư đã chọn">
+<!ENTITY openMsgConversationButton.tooltip "Hiển thị cuộc hội thoại của thư đã chọn">
+<!ENTITY nextButton.tooltip "Chuyển sang thư chưa đọc tiếp theo">
+<!ENTITY nextMsgButton.tooltip "Di chuyển đến thư kế tiếp">
+<!ENTITY previousButton.tooltip "Chuyển sang thư chưa đọc phía trước">
+<!ENTITY previousMsgButton.tooltip "Di chuyển đến thư trước">
+<!ENTITY goForwardButton.tooltip "Đi tới một thư">
+<!ENTITY goBackButton.tooltip "Trở lại một thư">
+<!ENTITY deleteButton.tooltip "Xóa thư hoặc thư mục đã chọn">
+<!ENTITY undeleteButton.tooltip "Không xóa thư đã chọn">
+<!ENTITY markButton.tooltip "Đánh dấu thư">
+<!ENTITY printButton.tooltip "In thư này">
+<!ENTITY stopButton.tooltip "Dừng việc truyền tải hiện tại">
+<!ENTITY junkButton.tooltip "Đánh dấu thư đã chọn là thư rác">
+<!ENTITY notJunkButton.tooltip "Đánh dấu thư đã chọn không phải là thư rác">
+<!ENTITY addressBookButton.tooltip "Vào sổ địa chỉ">
+<!ENTITY chatButton.tooltip "Hiển thị thẻ trò chuyện">
+<!ENTITY tagButton.tooltip "Dán nhãn cho thư">
+<!ENTITY compactButton.tooltip "Dọn các thư bị xóa ra khỏi thư mục đã chọn">
+<!ENTITY appmenuButton1.tooltip "Hiển thị menu &brandShortName;">
+<!ENTITY addonsButton.tooltip "Quản lý tiện ích của bạn">
+
+<!-- Toolbar Button Popup -->
+<!ENTITY buttonMenuForwardAsInline.label "Chuyển tiếp ngay trong thư">
+<!ENTITY buttonMenuForwardAsAttachment.label "Chuyển tiếp dưới dạng đính kèm">
+
+<!-- Remote Content Button Popup -->
+<!ENTITY remoteContentOptionsAllowForMsg.label "Hiển thị nội dung từ xa trong thư này">
+<!ENTITY remoteContentOptionsAllowForMsg.accesskey "S">
+<!ENTITY editRemoteContentSettings.label "Chỉnh sửa tùy chọn nội dung từ xa…">
+<!ENTITY editRemoteContentSettings.accesskey "E">
+<!ENTITY editRemoteContentSettingsUnix.label "Chỉnh sửa tùy chỉnh nội dung từ xa…">
+<!ENTITY editRemoteContentSettingsUnix.accesskey "E">
+
+<!-- Phishing Button Popup -->
+<!ENTITY phishingOptionIgnore.label "Bỏ qua cảnh báo cho thư này">
+<!ENTITY phishingOptionIgnore.accesskey "n">
+<!ENTITY phishingOptionSettings.label "Chỉnh sửa tùy chọn phát hiện lừa đảo…">
+<!ENTITY phishingOptionSettings.accesskey "d">
+<!ENTITY phishingOptionSettingsUnix.label "Chỉnh sửa tùy chỉnh phát hiện lừa đảo…">
+<!ENTITY phishingOptionSettingsUnix.accesskey "d">
+
+<!-- AppMenu Popup -->
+<!ENTITY appmenuNewMsgCmd.label "Thư mới">
+<!ENTITY appmenuNewContactCmd.label "Liên hệ trong sổ địa chỉ…">
+<!ENTITY appmenuEditMenu.label "Chỉnh sửa">
+<!ENTITY appmenuToolbarLayout.label "Bố cục thanh công cụ…">
+<!ENTITY appmenuSelectThread.label "Chọn chủ đề">
+<!ENTITY appmenuSelectFlagged.label "Chọn thư được gắn dấu sao">
+
+<!-- Tags Menu Popup -->
+<!ENTITY addNewTag.label "Nhãn mới…">
+<!ENTITY addNewTag.accesskey "N">
+<!ENTITY manageTags.label "Quản lý nhãn…">
+<!ENTITY manageTags.accesskey "M">
+
+<!-- Folder Pane -->
+<!ENTITY folderNameColumn.label "Tên">
+<!ENTITY folderUnreadColumn.label "Chưa đọc">
+<!ENTITY folderTotalColumn.label "Tổng">
+<!ENTITY folderSizeColumn.label "Dung lượng">
+
+<!-- Folder Pane Context Menu -->
+<!ENTITY folderContextGetMessages.label "Nhận thư">
+<!ENTITY folderContextGetMessages.accesskey "G">
+<!ENTITY folderContextMarkAllFoldersRead.label "Đánh dấu tất cả thư mục là đã đọc">
+<!ENTITY folderContextPauseAllUpdates.label "Tạm dừng tất cả cập nhật">
+<!ENTITY folderContextPauseUpdates.label "Tạm dừng cập nhật">
+<!ENTITY folderContextPauseUpdates.accesskey "U">
+<!ENTITY folderContextOpenInNewWindow.label "Mở trong cửa sổ mới">
+<!ENTITY folderContextOpenInNewWindow.accesskey "O">
+<!ENTITY folderContextOpenNewTab.label "Mở trong thẻ mới">
+<!ENTITY folderContextOpenNewTab.accesskey "o">
+<!ENTITY folderContextNew.label "Thư mục con mới…">
+<!ENTITY folderContextNew.accesskey "c">
+<!ENTITY folderContextRename.label "Đổi tên">
+<!ENTITY folderContextRename.accesskey "i">
+<!ENTITY folderContextRemove.label "Xóa">
+<!ENTITY folderContextRemove.accesskey "X">
+<!ENTITY folderContextCompact.label "Làm gọn">
+<!ENTITY folderContextCompact.accesskey "g">
+<!ENTITY folderContextEmptyTrash.label "Dọn sạch thùng rác">
+<!ENTITY folderContextEmptyTrash.accesskey "D">
+<!ENTITY folderContextEmptyJunk.label "Dọn sạch thư rác">
+<!ENTITY folderContextEmptyJunk.accesskey "r">
+<!ENTITY folderContextSendUnsentMessages.label "Gửi các thư chưa gửi">
+<!ENTITY folderContextSendUnsentMessages.accesskey "G">
+<!ENTITY folderContextUnsubscribe.label "Dừng theo dõi">
+<!ENTITY folderContextUnsubscribe.accesskey "D">
+<!ENTITY folderContextMarkNewsgroupRead.label "Đánh dấu nhóm tin là đã đọc">
+<!ENTITY folderContextMarkNewsgroupRead.accesskey "u">
+<!ENTITY folderContextMarkMailFolderRead.label "Đánh dấu thư mục là đã đọc">
+<!ENTITY folderContextMarkMailFolderRead.accesskey "u">
+<!ENTITY folderContextSubscribe.label "Theo dõi…">
+<!ENTITY folderContextSubscribe.accesskey "e">
+<!ENTITY folderContextSearchForMessages.label "Tìm kiếm thư…">
+<!ENTITY folderContextSearchForMessages.accesskey "S">
+<!ENTITY folderContextProperties2.label "Thuộc tính">
+<!ENTITY folderContextProperties2.accesskey "P">
+<!ENTITY folderContextFavoriteFolder.label "Thư mục yêu thích">
+<!ENTITY folderContextFavoriteFolder.accesskey "a">
+<!ENTITY folderContextSettings2.label "Cài đặt">
+<!ENTITY folderContextSettings2.accesskey "e">
+
+<!-- Search Bar -->
+<!ENTITY SearchNameOrEmail.label "Tên hoặc email chứa:">
+<!ENTITY SearchNameOrEmail.accesskey "N">
+
+<!-- Gloda Search Bar -->
+<!ENTITY glodaSearchBar.placeholder "Tìm kiếm thư…">
+
+<!-- Quick Search Menu Bar -->
+<!ENTITY searchSubjectMenu.label "Tiêu đề">
+<!ENTITY searchFromMenu.label "Người gửi">
+<!ENTITY searchSubjectOrFromMenu.label "Tiêu đề hoặc Từ">
+<!ENTITY searchRecipient.label "Người nhận hoặc Cc">
+<!ENTITY searchSubjectOrRecipientMenu.label "Tiêu đề, người nhận hoặc Cc">
+<!ENTITY searchMessageBody.label "Toàn bộ thư">
+<!ENTITY saveAsVirtualFolderMenu.label "Lưu tìm kiếm dưới dạng thư mục…">
+
+<!-- Thread Pane -->
+<!ENTITY selectColumn.label "Chọn thư">
+<!ENTITY threadColumn.label "Chủ đề">
+<!ENTITY fromColumn.label "Từ">
+<!ENTITY recipientColumn.label "Người nhận">
+<!ENTITY correspondentColumn.label "Người viết">
+<!ENTITY subjectColumn.label "Tiêu đề">
+<!ENTITY dateColumn.label "Ngày">
+<!ENTITY priorityColumn.label "Ưu tiên">
+<!ENTITY tagsColumn.label "Nhãn">
+<!ENTITY accountColumn.label "Tài khoản">
+<!ENTITY statusColumn.label "Trạng thái">
+<!ENTITY sizeColumn.label "Dung lượng">
+<!ENTITY junkStatusColumn.label "Trạng thái thư rác">
+<!ENTITY unreadColumn.label "Chưa đọc">
+<!ENTITY totalColumn.label "Tổng">
+<!ENTITY readColumn.label "Đã đọc">
+<!ENTITY receivedColumn.label "Nhận được">
+<!ENTITY starredColumn.label "Đã gắn dấu sao">
+<!ENTITY locationColumn.label "Địa chỉ">
+<!ENTITY idColumn.label "Thứ tự nhận được">
+<!ENTITY attachmentColumn.label "Đính kèm">
+
+<!ENTITY deleteColumn.label "Xóa">
+
+<!-- Thread Pane Tooltips -->
+<!ENTITY columnChooser2.tooltip "Chọn các cột để hiển thị">
+<!ENTITY selectColumn.tooltip "Chuyển đổi chọn tất cả các tin nhắn">
+<!ENTITY threadColumn2.tooltip "Hiển thị chủ đề thư">
+<!ENTITY fromColumn2.tooltip "Sắp xếp theo người gửi">
+<!ENTITY recipientColumn2.tooltip "Sắp xếp theo người nhận">
+<!ENTITY correspondentColumn2.tooltip "Sắp xếp theo người viết">
+<!ENTITY subjectColumn2.tooltip "Sắp xếp theo chủ đề">
+<!ENTITY dateColumn2.tooltip "Sắp xếp theo ngày">
+<!ENTITY priorityColumn2.tooltip "Sắp xếp theo mức độ ưu tiên">
+<!ENTITY tagsColumn2.tooltip "Sắp xếp theo nhãn">
+<!ENTITY accountColumn2.tooltip "Sắp xếp theo tài khoản">
+<!ENTITY statusColumn2.tooltip "Sắp xếp theo trạng thái">
+<!ENTITY sizeColumn2.tooltip "Sắp xếp theo kích thước">
+<!ENTITY junkStatusColumn2.tooltip "Sắp xếp theo trạng thái thư rác">
+<!ENTITY unreadColumn2.tooltip "Số lượng tin nhắn chưa đọc trong chủ đề">
+<!ENTITY totalColumn2.tooltip "Tổng số tin nhắn trong chủ đề">
+<!ENTITY readColumn2.tooltip "Sắp xếp theo đã đọc">
+<!ENTITY receivedColumn2.tooltip "Sắp xếp theo ngày nhận">
+<!ENTITY starredColumn2.tooltip "Sắp xếp theo sao">
+<!ENTITY locationColumn2.tooltip "Sắp xếp theo địa chỉ">
+<!ENTITY idColumn2.tooltip "Sắp xếp theo thứ tự nhận được">
+<!ENTITY attachmentColumn2.tooltip "Sắp xếp theo đính kèm">
+
+<!ENTITY deleteColumn.tooltip "Xóa tin nhắn">
+
+<!-- Thread Pane Context Menu -->
+<!ENTITY contextNewMsgFromTemplate.label "Thư mới từ mẫu">
+<!ENTITY contextOpenNewWindow.label "Mở thư trong cửa sổ mới">
+<!ENTITY contextOpenNewWindow.accesskey "M">
+<!-- The contextOpenNewTab.accesskey ("T") potentially conflicts with
+ cutCmd.accessKey which is defined in textcontext.dtd from toolkit. Right
+ now, both menu items can't be visible at the same time, but should someone
+ enable copy/paste of message, this key would probably need to be changed. -->
+<!ENTITY contextOpenNewTab.label "Mở thư trong thẻ mới">
+<!ENTITY contextOpenNewTab.accesskey "T">
+<!ENTITY contextOpenConversation.label "Mở thư trong hội thoại">
+<!ENTITY contextOpenConversation.accesskey "o">
+<!ENTITY contextOpenContainingFolder.label "Mở thư trong thư mục chứa">
+<!ENTITY contextOpenContainingFolder.accesskey "n">
+<!ENTITY contextEditMsgAsNew.label "Chỉnh sửa như thư mới">
+<!ENTITY contextEditMsgAsNew.accesskey "E">
+<!ENTITY contextEditDraftMsg.label "Chỉnh sửa thư nháp">
+<!ENTITY contextEditTemplate.label "Chỉnh sửa mẫu">
+<!ENTITY contextEditTemplate.accesskey "T">
+<!ENTITY contextArchive.label "Lưu trữ">
+<!ENTITY contextArchive.accesskey "L">
+<!ENTITY contextReplySender.label "Chỉ trả lời người gửi">
+<!ENTITY contextReplySender.accesskey "g">
+<!ENTITY contextReplyNewsgroup2.label "Theo dõi nhóm tin">
+<!ENTITY contextReplyNewsgroup2.accesskey "u">
+<!ENTITY contextReplyAll.label "Trả lời tất cả">
+<!ENTITY contextReplyAll.accesskey "r">
+<!ENTITY contextReplyList.label "Trả lời danh sách">
+<!ENTITY contextReplyList.accesskey "D">
+<!ENTITY contextForward.label "Chuyển tiếp">
+<!ENTITY contextForward.accesskey "y">
+<!ENTITY contextForwardAsMenu.label "Chuyển tiếp dưới dạng">
+<!ENTITY contextForwardAsMenu.accesskey "o">
+<!ENTITY contextForwardAsInline.label "Ngay trong thư">
+<!ENTITY contextForwardAsInline.accesskey "I">
+<!ENTITY contextForwardAsAttachmentItem.label "Đính kèm">
+<!ENTITY contextForwardAsAttachmentItem.accesskey "A">
+<!ENTITY contextMultiForwardAsAttachment.label "Chuyển tiếp dưới dạng đính kèm">
+<!ENTITY contextMultiForwardAsAttachment.accesskey "o">
+<!ENTITY contextMoveMsgMenu.label "Di chuyển đến">
+<!ENTITY contextMoveMsgMenu.accesskey "D">
+<!ENTITY contextMoveCopyMsgRecentMenu.label "Gần đây">
+<!ENTITY contextMoveCopyMsgRecentMenu.accesskey "G">
+<!ENTITY contextMoveCopyMsgFavoritesMenu.label "Ưa thích">
+<!ENTITY contextMoveCopyMsgFavoritesMenu.accesskey "F">
+<!ENTITY contextCopyMsgMenu.label "Sao chép đến">
+<!ENTITY contextCopyMsgMenu.accesskey "C">
+<!ENTITY contextKillThreadMenu.label "Bỏ qua chủ đề">
+<!ENTITY contextKillSubthreadMenu.accesskey "b">
+<!ENTITY contextKillThreadMenu.accesskey "I">
+<!ENTITY contextKillSubthreadMenu.label "Bỏ qua chủ đề con">
+<!ENTITY contextWatchThreadMenu.label "Theo dõi chủ đề">
+<!-- LOCALIZATION NOTE (contextWatchThreadMenu.accesskey):
+ In the en-US locale we ran out of access keys, so there is an empty access key for
+ Watch Thread. Localizers can pick a suitable key
+ -->
+<!ENTITY contextWatchThreadMenu.accesskey "">
+<!ENTITY contextSaveAs.label "Lưu thành…">
+<!ENTITY contextSaveAs.accesskey "L">
+<!ENTITY contextPrint.label "In…">
+<!ENTITY contextPrint.accesskey "I">
+<!ENTITY contextPrintPreview.label "Xem trước khi in">
+<!ENTITY contextPrintPreview.accesskey "e">
+
+<!-- LOCALIZATION NOTE (columnPicker.applyTo.label):
+ This option in the thread pane column picker pops up a sub-menu containing
+ the "columnPicker.applyToFolder.label" and
+ "columnPicker.applyToFolderAndChildren.label" options. This item indicates
+ a desire to apply the currently displayed set of columns to some other
+ folder(s). The sub-menu items indicate whether we want to apply it to just
+ a folder or also its children.
+ -->
+<!ENTITY columnPicker.applyTo.label "Áp dụng cột cho…">
+<!-- LOCALIZATION NOTE (columnPicker.applyToFolder.label):
+ This option in the thread pane column picker is found on a sub-menu beneath
+ the "columnPicker.applyTo.label" alongside
+ "columnPicker.applyToFolderAndChildren.label". It indicates a desire to
+ apply the currently display thread pane column settings to a single folder
+ that the user selects using the same widget as the move to/copy to
+ mechanism (via a series of popups).
+ -->
+<!ENTITY columnPicker.applyToFolder.label "Thư mục…">
+<!-- LOCALIZATION NOTE (columnPicker.applyToFolderAndChildren.label):
+ This option in the thread pane column picker is found on a sub-menu beneath
+ the "columnPicker.applyTo.label" alongside
+ "columnPicker.applyToFolder.label". It indicates a desire to
+ apply the currently display thread pane column settings to a folder and all
+ of its descendents. The user selects the folder using the same widget as the
+ move to/copy to mechanism (via a series of popups).
+ -->
+<!ENTITY columnPicker.applyToFolderAndChildren.label "Thư mục và thư mục con của nó…">
+<!-- LOCALIZATION NOTE (columnPicker.thisFolder.label):
+ This is used in the folder selection widget for the
+ "columnPicker.applyToFolder.label" and
+ "columnPicker.applyToFolderAndChildren.label" menu options. Whenever
+ a folder has children, it results in a menu popup; the first menu item
+ in that popup is given this label to indicate that that folder should be
+ selected. For example, if folder "A" has two children, "B" and "C", then
+ when the user hovers over "A", a new popup menu will be displayed whose
+ items are "This folder", "B", and "C". This is the equivalent of the
+ "File here" option for the move to/copy to widget.
+ -->
+<!ENTITY columnPicker.thisFolder.label "Thư mục này">
+
+<!-- Media (video/audio) controls -->
+<!ENTITY contextPlay.label "Phát">
+<!ENTITY contextPlay.accesskey "C">
+<!ENTITY contextPause.label "Tạm dừng">
+<!ENTITY contextPause.accesskey "d">
+<!ENTITY contextMute.label "Tắt tiếng">
+<!ENTITY contextMute.accesskey "g">
+<!ENTITY contextUnmute.label "Bật tiếng">
+<!ENTITY contextUnmute.accesskey "B">
+
+<!-- Quick Search Bar -->
+<!-- LOCALIZATION NOTE (quickSearchCmd.key):
+ This is actually the key used for the global message search box; we have
+ not changed
+ -->
+<!ENTITY quickSearchCmd.key "k">
+<!-- LOCALIZATION NOTE (search.label.base1):
+ This is the base of the empty text for the global search box. We replace
+ #1 with the contents of the appropriate search.keyLabel.* value for the
+ platform.
+ The goal is to convey to the user that typing in the box will allow them
+ to search for messages globally and that there is a hotkey they can press
+ to get to the box faster. If the global indexer is disabled, the search
+ box will be collapsed and the user will never see this message.
+ -->
+<!ENTITY search.label.base1 "Tìm kiếm #1">
+<!-- LOCALIZATION NOTE (search.keyLabel.nonmac):
+ The description of the key-binding to get into the global search box on
+ windows and linux (which use the control key). We use the key defined in
+ the quickSearchCmd.key entity defined above, the letter should match it.
+ -->
+<!ENTITY search.keyLabel.nonmac "&lt;Ctrl+K&gt;">
+<!-- LOCALIZATION NOTE (search.keyLabel.mac):
+ The description of the key-binding to get into the global search box on mac
+ systems. We use the key defined in the quickSearchCmd.key entity defined
+ above, the letter should match it.
+ -->
+<!ENTITY search.keyLabel.mac "&lt;&#x2318;K&gt;">
+
+<!-- Message Header Context Menu -->
+<!ENTITY AddToAddressBook.label "Thêm vào sổ địa chỉ…">
+<!ENTITY AddToAddressBook.accesskey "a">
+<!ENTITY AddDirectlyToAddressBook.label "Thêm vào sổ địa chỉ">
+<!ENTITY AddDirectlyToAddressBook.accesskey "a">
+<!ENTITY EditContact1.label "Chỉnh sửa liên hệ">
+<!ENTITY EditContact1.accesskey "E">
+<!ENTITY ViewContact.label "Xem liên hệ">
+<!ENTITY ViewContact.accesskey "H">
+<!ENTITY SubscribeToNewsgroup.label "Đăng kí theo dõi nhóm tin">
+<!ENTITY SubscribeToNewsgroup.accesskey "N">
+<!ENTITY SendMessageTo.label "Soạn thư đến">
+<!ENTITY SendMessageTo.accesskey "S">
+<!ENTITY CopyEmailAddress.label "Sao chép địa chỉ email">
+<!ENTITY CopyEmailAddress.accesskey "C">
+<!ENTITY CopyNameAndEmailAddress.label "Sao chép tên và địa chỉ email">
+<!ENTITY CopyNameAndEmailAddress.accesskey "N">
+<!ENTITY CopyNewsgroupName.label "Sao chép tên nhóm tin">
+<!ENTITY CopyNewsgroupName.accesskey "C">
+<!ENTITY CopyNewsgroupURL.label "Sao chép URL nhóm tin">
+<!ENTITY CopyNewsgroupURL.accesskey "U">
+<!ENTITY CreateFilterFrom.label "Tạo bộ lọc từ…">
+<!ENTITY CreateFilterFrom.accesskey "B">
+<!ENTITY reportPhishingURL.label "Báo cáo email lừa đảo">
+<!ENTITY reportPhishingURL.accesskey "o">
+
+<!-- Spell checker context menu items -->
+<!ENTITY spellAddDictionaries.label "Thêm từ điển…">
+<!ENTITY spellAddDictionaries.accesskey "m">
+
+<!-- Content Pane Context Menu -->
+<!ENTITY saveLinkAsCmd.label "Lưu liên kết dưới dạng…">
+<!ENTITY saveLinkAsCmd.accesskey "K">
+<!ENTITY saveImageAsCmd.label "Lưu ảnh dưới dạng…">
+<!ENTITY saveImageAsCmd.accesskey "L">
+<!ENTITY copyLinkCmd.label "Sao chép địa chỉ liên kết">
+<!ENTITY copyLinkCmd.accesskey "a">
+<!ENTITY copyImageAllCmd.label "Sao chép ảnh">
+<!ENTITY copyImageAllCmd.accesskey "p">
+<!ENTITY copyEmailCmd.label "Sao chép địa chỉ email">
+<!ENTITY copyEmailCmd.accesskey "E">
+<!ENTITY stopCmd.label "Dừng">
+<!ENTITY stopCmd.accesskey "D">
+<!ENTITY reloadCmd.label "Tải lại">
+<!ENTITY reloadCmd.accesskey "i">
+<!ENTITY openInBrowser.label "Mở trong trình duyệt">
+<!ENTITY openInBrowser.accesskey "o">
+<!ENTITY openLinkInBrowser.label "Mở liên kết trong trình duyệt">
+<!ENTITY openLinkInBrowser.accesskey "o">
+
+<!-- Statusbar -->
+<!ENTITY statusText.label "Xong">
+
+<!-- Mac OS X Window Menu -->
+<!ENTITY minimizeWindow.label "Thu nhỏ">
+<!ENTITY minimizeWindow.key "m">
+<!ENTITY bringAllToFront.label "Đưa tất cả ra phía trước">
+<!ENTITY zoomWindow.label "Thu phóng">
+
+<!-- Mac OS X Application Menu (Cocoa widgets) -->
+<!ENTITY preferencesCmdMac2.label "Tùy chỉnh">
+<!ENTITY preferencesCmdMac.commandkey ",">
+<!ENTITY preferencesCmdMac.modifiers "accel">
+<!ENTITY servicesMenuMac.label "Dịch vụ">
+<!ENTITY hideThisAppCmdMac.label "Ẩn &brandShortName;">
+<!ENTITY hideThisAppCmdMac.commandkey "H">
+<!ENTITY hideThisAppCmdMac.modifiers "accel">
+<!ENTITY hideOtherAppsCmdMac.label "Ẩn các chương trình khác">
+<!ENTITY hideOtherAppsCmdMac.commandkey "H">
+<!ENTITY hideOtherAppsCmdMac.modifiers "accel,alt">
+<!ENTITY showAllAppsCmdMac.label "Hiện tất cả">
+
+<!-- Mac OS X Dock Icon pop-up menu -->
+<!ENTITY dockOptions.label "Tùy chọn biểu tượng ứng dụng…">
+<!ENTITY writeNewMessageDock.label "Viết thư mới">
+<!ENTITY openAddressBookDock.label "Mở sổ địa chỉ">
+
+<!-- Content tab Navigation buttons -->
+<!ENTITY browseBackButton.tooltip "Trở lại trang trước">
+<!ENTITY browseForwardButton.tooltip "Tiến tới trang sau">
diff --git a/l10n-vi/mail/chrome/messenger/messenger.properties b/l10n-vi/mail/chrome/messenger/messenger.properties
new file mode 100644
index 0000000000..18aaaa63b8
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/messenger.properties
@@ -0,0 +1,791 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 are used by the messenger application
+#
+
+# LOCALIZATION NOTE(statusMessage):
+# Do not translate the words %1$S and %2$S below. Place the word %1$S where the
+# account name should appear and %2$S where the status message should appear.
+# EXAMPLE: Jim's Account: Downloading messages...
+statusMessage=%1$S: %2$S
+
+removeAccount=Xóa tài khoản…
+newFolderMenuItem=Thư mục…
+newSubfolderMenuItem=Thư mục con…
+newFolder=Thư mục mới…
+newSubfolder=Thư mục con mới…
+markFolderRead=Đánh dấu thư mục là đã đọc;Đánh dấu các thư mục là đã đọc
+markNewsgroupRead=Đánh dấu nhóm tin là đã đọc;Đánh dấu các nhóm tin là đã đọc
+folderProperties=Thuộc tính thư mục
+newTag=Nhãn mới…
+# LOCALIZATION NOTE (getNextNewsMessages): Semi-colon list of plural forms.
+# #1 is the number of news messages to get.
+getNextNewsMessages=Nhận #1 tin tức tiếp theo;Nhận #1 tin tức tiếp theo
+advanceNextPrompt=Đi tới thư chưa đọc tiếp theo trong %S?
+titleNewsPreHost=trên
+replyToSender=Trả lời người gửi
+reply=Trả lời
+EMLFiles=Tập tin thư
+OpenEMLFiles=Mở thư
+# LOCALIZATION NOTE(defaultSaveMessageAsFileName): Do not translate ".eml"
+# in the line below. Also, the complete file name should be 8.3.
+defaultSaveMessageAsFileName=message.eml
+# LOCALIZATION NOTE(longMsgSubjectTruncator): A suffix string appended to the filename
+# (created from message subject) if it needed to be truncated due to length.
+longMsgSubjectTruncator=...
+SaveMailAs=Lưu thư dưới dạng
+SaveAttachment=Lưu đính kèm
+SaveAllAttachments=Lưu tất cả đính kèm
+DetachAttachment=Tách đính kèm
+DetachAllAttachments=Tách tất cả đính kèm
+ChooseFolder=Chọn thư mục
+LoadingMessageToPrint=Đang nạp thư để in…
+MessageLoaded=Thư đã được nạp…
+PrintingMessage=Đang in thư…
+PrintPreviewMessage=Xem trước khi in thư…
+PrintingContact=Đang in danh bạ…
+PrintPreviewContact=Xem trước khi in danh bạ…
+PrintingAddrBook=Đang in sổ địa chỉ…
+PrintPreviewAddrBook=Xem trước khi in sổ địa chỉ…
+PrintingComplete=Xong.
+PreviewTitle=%S - %S
+LoadingMailMsgForPrint=(Đang nạp nội dung để In)
+LoadingMailMsgForPrintPreview=(Đang nạp nội dung để xem trước khi In)
+saveAttachmentFailed=Không thể lưu tập tin đính kèm. Vui lòng kiểm tra tên tập tin và thử lại sau.
+saveMessageFailed=Không thể lưu thư. Vui lòng kiểm tra tên tập tin và thử lại sau.
+fileExists=%S đã tồn tại. Bạn có muốn thay thế nó?
+# LOCALIZATION NOTE(failedToReadFile): %1$S is replaced by the file name, %2$S is replaced by the reason the file load failed.
+failedToReadFile=Không thể đọc tập tin: %1$S lý do: %2$S
+
+downloadingNewsgroups=Đang tải xuống các nhóm tin để sử dụng ngoại tuyến
+downloadingMail=Đang tải xuống thư để sử dụng ngoại tuyến
+sendingUnsent=Đang gửi thư chưa được gửi
+
+folderExists=Tên thư mục đó đã tồn tại. Vui lòng nhập một tên khác.
+# LOCALIZATION NOTE(confirmDuplicateFolderRename): %1$S is name of folder being moved, %2$S is parent folder name, %3$S is proposed new folder name
+confirmDuplicateFolderRename=Thư mục con có tên '%1$S' đã tồn tại trong thư mục '%2$S'. Bạn có muốn di chuyển thư mục này bằng tên mới '%3$S' không?
+folderCreationFailed=Không thể tạo thư mục vì tên mà bạn nhập vào chứa một kí tự không thể nhận dạng. Vui lòng nhập một tên khác và thử lại.
+
+compactingFolder=Đang làm gọn thư mục %S…
+# LOCALIZATION NOTE(compactingDone): %1$S is the compaction gain.
+compactingDone=Đã xong việc nén (khoảng %1$S đã lưu).
+autoCompactAllFoldersTitle=Làm gọn thư mục
+# LOCALIZATION NOTE(autoCompactAllFoldersMsg): %1$S will be replaced by size gain of the compaction (including the unit), %2$S will be replaced by application name
+autoCompactAllFoldersMsg=Các thư bạn đã xóa có thể bị xóa khỏi đĩa. Thao tác này sẽ tiết kiệm khoảng %1$S dung lượng đĩa. Chọn tùy chọn bên dưới để cho phép %2$S tự động làm việc này mà không cần hỏi bạn.
+autoCompactNeverAskCheckbox=Tự động xóa tin nhắn đã xóa và đừng hỏi tôi.
+proceedButton=&Tiến hành
+
+confirmFolderDeletionForFilter=Xóa thư mục '%S' cũng sẽ vô hiệu hóa các bộ lọc của nó. Bạn có chắc là bạn muốn xóa thư mục không?
+alertFilterChanged=Bộ lọc trong thư mục này sẽ được cập nhật.
+filterDisabled=Không thể tìm thấy thư mục '%S', cho nên bộ lọc đi cùng với nó sẽ bị vô hiệu hóa. Hãy xác minh xem thư mục có tồn tại không, và bộ lọc có chỉ đến đúng thư mục hợp lệ không.
+filterFolderDeniedLocked=Không thể lọc thư vào thư mục '%S' vì đang diễn ra một thao tác khác.
+parsingFolderFailed=Không thể mở thư mục %S vì nó đang được dùng trong thao tác khác. Vui lòng đợi cho đến khi thao tác đó hoàn thành rồi chọn thư mục lại.
+deletingMsgsFailed=Không thể xóa thư mục %S vì nó đang được dùng trong thao tác khác. Vui lòng đợi cho đến khi thao tác đó hoàn thành rồi chọn thư mục lại.
+alertFilterCheckbox=Đừng cảnh báo tôi nữa.
+compactFolderDeniedLock=Không thể làm gọn thư mục '%S' vì đang diễn ra thao tác khác. Vui lòng thử lại sau.
+compactFolderWriteFailed=Không thể làm gọn thư mục '%S' vì việc ghi vào thư mục bị thất bại. Hãy xác minh xem bạn có đủ dung lượng đĩa, và bạn có quyền ghi lên hệ thống tập tin không, rồi thử lại.
+compactFolderInsufficientSpace=Một số thư mục (ví dụ: '%S') không thể nén vì không đủ dung lượng đĩa trống. Vui lòng xóa một số tập tin và thử lại.
+filterFolderHdrAddFailed=Các thư không thể được lọc vào thư mục '%S' vì không thể thêm một thư vào nó. Xác minh rằng thư mục đang hiển thị đúng hoặc thử sửa chữa nó từ các thuộc tính thư mục.
+filterFolderWriteFailed=Không thể lọc thư vào thư mục '%S' việc ghi vào thư mục bị thất bại. Hãy xác minh xem bạn có đủ dung lượng đĩa, và bạn có quyền ghi lên hệ thống tập tin không, rồi thử lại.
+copyMsgWriteFailed=Không thể sao chép hoặc di chuyển thư vào thư mục '%S' vì việc ghi vào thư mục bị thất bại. Để lấy thêm dung lượng đĩa, từ menu Tập tin, đầu tiên chọn Dọn sạch thùng rác, rồi chọn Làm gọn thư mục, rồi thử lại.
+cantMoveMsgWOBodyOffline=Khi làm việc ngoại tuyến, bạn không thể di chuyển hoặc chép những thư chưa được tải cho việc dùng ngoại tuyến. Từ cửa sổ Thư, mở trình đơn Tập tin, chọn Ngoại tuyến, rồi bỏ chọn Làm việc Ngoại tuyến, rồi thử lại.
+operationFailedFolderBusy=Thao tác bị thất bại vì một thao tác khác đang dùng thư mục. Vui lòng đợi cho đến khi thao tác đó hoàn thành rồi thử lại.
+folderRenameFailed=Không thể đổi tên thư mục. Có thể thư mục đang được phân tích, hoặc tên mới không phải là tên hợp lệ.
+# LOCALIZATION NOTE(verboseFolderFormat): %1$S is folder name, %2$S is server name
+verboseFolderFormat=%1$S trên %2$S
+# LOCALIZATION NOTE(filterFolderTruncateFailed): %1$S is replaced by the folder name, %2$S is replaced by the brandShortName
+filterFolderTruncateFailed=Có lỗi khi xóa sạch Hộp thư sau khi lọc một thư vào thư mục '%1$S'. Có thể bạn cần tắt %2$S và xóa INBOX.msf.
+
+mailboxTooLarge=Thư mục %S đã đầy, và không thể giữ thêm thư nữa. Để có thêm chỗ chứa thư, hãy xóa những thư cũ hoặc không mong muốn, và làm gọn thư mục.
+outOfDiskSpace=Không có đủ dung lượng đĩa để tải thư mới. Hãy thử xóa thư cũ, làm trống thư mục Thùng rác và nén thư mục thư của bạn, sau đó thử lại.
+errorGettingDB=Không thể mở tập tin tóm tắt cho %S. Có lẽ có lỗi trên đĩa, hoặc đường dẫn đầy đủ quá dài.
+defaultServerTag=(Mặc định)
+
+# Used in message database list view to provide a text value for graphic based cells.
+messageUnread=Chưa đọc
+messageHasFlag=Đã gắn dấu sao
+messageHasAttachment=Có đính kèm
+messageJunk=Thư rác
+messageExpanded=Mở rộng
+messageCollapsed=Thu gọn
+
+# Used in the SMTP Account Settings panel when a server value has no properties
+smtpServerList-NotSpecified=<không chỉ định>
+smtpServer-ConnectionSecurityType-0=Không
+smtpServer-ConnectionSecurityType-1=STARTTLS, nếu có
+smtpServer-ConnectionSecurityType-2=STARTTLS
+smtpServer-ConnectionSecurityType-3=SSL/TLS
+smtpServers-confirmServerDeletionTitle=Xóa máy chủ
+smtpServers-confirmServerDeletion=Bạn có chắc là bạn muốn xóa máy chủ: \n %S?
+
+# Account Settings - Both Incoming and SMTP server
+authNo=Không xác thực
+authOld=Mật khẩu, phương thức gốc (không an toàn)
+authPasswordCleartextInsecurely=Mật khẩu, truyền không an toàn
+authPasswordCleartextViaSSL=Mật khẩu bình thường
+authPasswordEncrypted=Mật khẩu mã hóa
+authKerberos=Kerberos / GSSAPI
+authExternal=Chứng chỉ TLS
+authNTLM=NTLM
+authOAuth2=OAuth2
+authAnySecure=Bất kỳ phương pháp an toàn (không dùng nữa)
+authAny=Bất kỳ phương pháp nào (không an toàn)
+
+# OAuth2 window title
+# LOCALIZATION NOTE(oauth2WindowTitle):
+# %1$S is the username (or full email address) used for authentication.
+# %2$S is the hostname of the account being authenticated.
+oauth2WindowTitle=Nhập thông tin đăng nhập cho %1$S trên %2$S
+
+# LOCALIZATION NOTE(serverType-nntp): Do not translate "NNTP" in the line below
+serverType-nntp=Máy chủ tin tức (NNTP)
+# LOCALIZATION NOTE(serverType-pop3): Do not translate "POP" in the line below
+serverType-pop3=Máy chủ thư POP
+# LOCALIZATION NOTE(serverType-imap): Do not translate "IMAP" in the line below
+serverType-imap=Máy chủ thư IMAP
+serverType-none=Lưu trữ thư nội bộ
+# LOCALIZATION NOTE(serverType-movemail): DONT_TRANSLATE
+serverType-movemail=Unix Movemail
+
+sizeColumnTooltip2=Sắp xếp theo kích thước
+sizeColumnHeader=Kích thước
+linesColumnTooltip2=Sắp xếp theo dòng
+linesColumnHeader=Dòng
+
+# LOCALIZATION NOTE (getMsgButtonTooltip): Do not translate the word "%S" below.
+# Place the word "%S" in your translation where the name of the comma separated accounts should appear.
+getMsgButtonTooltip=Nhận thư mới cho %S
+# Used to separate email addresses in a list. Note the trailing space ', '
+getMsgButtonTooltip.listSeparator=,\u0020
+
+# status feedback stuff
+documentDone=
+documentLoading=Đang tải thư…
+
+# LOCALIZATION NOTE (autosyncProgress): Do not translate the word "%1$S" or "%2$S" below.
+# Place the word %1$S in your translation where the name of the comma separated folders should appear.
+# Place the word %2$S in your translation where the name of the comma separated accounts should appear.
+autosyncProgress=Đồng bộ hóa thư mục %1$S từ %2$S…
+
+unreadMsgStatus=Chưa đọc: %S
+selectedMsgStatus=Đã chọn: %S
+totalMsgStatus=Tổng: %S
+
+# localized folder names
+
+localFolders=Thư mục cục bộ
+
+# LOCALIZATION NOTE (inboxFolderName): OK to translate all foldernames, bugzilla #57440 & bugzilla #23625 fixed
+inboxFolderName=Hộp thư
+trashFolderName=Thùng rác
+sentFolderName=Thư đã gửi
+draftsFolderName=Thư nháp
+templatesFolderName=Thư mẫu
+outboxFolderName=Thư chờ gửi
+junkFolderName=Thư rác
+archivesFolderName=Lưu trữ
+
+# "Normal" priority is often blank,
+# depending on the consumers of these strings
+priorityLowest=Thấp nhất
+priorityLow=Thấp
+priorityNormal=Bình thường
+priorityHigh=Cao
+priorityHighest=Cao nhất
+
+#Group by date thread pane titles
+today=Hôm nay
+yesterday=Hôm qua
+lastWeek=Tuần trước
+last7Days=7 ngày qua
+twoWeeksAgo=Hai tuần trước
+last14Days=14 ngày qua
+older=Cũ hơn
+futureDate=Tương lai
+
+#Grouped By Tags
+untaggedMessages=Thư không dán nhãn
+
+# Grouped by status
+messagesWithNoStatus=Không trạng thái
+
+#Grouped by priority
+noPriority=Không ưu tiên
+
+#Grouped by has attachments
+noAttachments=Không đính kèm
+attachments=Đính kèm
+
+#Grouped by starred
+notFlagged=Không gắn sao
+groupFlagged=Gắn sao
+
+# defaults descriptions for tag prefs listed in mailnews.js
+# (we keep the .labels. names for backwards compatibility)
+mailnews.tags.remove=Xóa tất cả các nhãn
+mailnews.labels.description.1=Quan trọng
+mailnews.labels.description.2=Làm việc
+mailnews.labels.description.3=Cá nhân
+mailnews.labels.description.4=Sẽ làm
+mailnews.labels.description.5=Để sau
+
+# Format definition tag menu texts.
+# This is necessary in order to get the accesskeys to be the on the first
+# character of the menu text instead of after the menu text.
+# If a key definition exists for the tag at index n, that key's key will be
+# taken as the accesskey, eg.
+# <key id="key_tag3" key="&tagCmd3.key;" oncommand="ToggleMessageTagKey(3);"/>
+# makes the third tag have the accesskey &tagCmd3.key;.
+# In the menuitem's label, this accesskey appears at %1$S below; %2$S will be
+# replaced by the tag label.
+mailnews.tags.format=%1$S %2$S
+
+replied=Đã trả lời
+forwarded=Đã chuyển tiếp
+new=Mới
+read=Đã đọc
+flagged=Gắn sao
+
+# for junk status picker in search and mail views
+junk=Thư rác
+
+# for junk score origin picker in search and mail views
+junkScoreOriginPlugin=Phần bổ trợ
+junkScoreOriginFilter=Bộ lọc
+junkScoreOriginWhitelist=Danh sách trắng
+junkScoreOriginUser=Người dùng
+junkScoreOriginImapFlag=Cờ IMAP
+
+# for the has attachment picker in search and mail views
+hasAttachments=Có đính kèm
+
+# for the Tag picker in search and mail views.
+tag=Nhãn
+
+# LOCALIZATION NOTE(andOthers):
+# for multiple authors, add this abbreviation to the first author to indicate
+# there are more; for the From column in the threadpane message list.
+
+# mailnews.js
+mailnews.send_default_charset=UTF-8
+mailnews.view_default_charset=UTF-8
+
+# whether to generate display names in last first order
+# LOCALIZATION NOTE(mail.addr_book.displayName.lastnamefirst):
+# the only valid values are: true OR false (choose from the untranslated English words)
+mail.addr_book.displayName.lastnamefirst=true
+
+# whether to also show phonetic fields in the addressbook
+# LOCALIZATION NOTE(mail.addr_book.show_phonetic_fields):
+# the only valid values are: true OR false (choose from the untranslated English words)
+mail.addr_book.show_phonetic_fields=false
+
+# valid format options are:
+# 1: yyyy/mm/dd
+# 2: yyyy/dd/mm
+# 3: mm/dd/yyyy
+# 4: mm/yyyy/dd
+# 5: dd/mm/yyyy
+# 6: dd/yyyy/mm
+#
+# 0: auto-detect the current locale format
+# a separator has to be either '/', '-', '.' and the year in Christian year
+# otherwise mm/dd/yyyy (option 3) is used
+#
+mailnews.search_date_format=5
+# separator for search date (e.g. "/", "-"), or empty when search_date_format is zero
+mailnews.search_date_separator=
+# leading zeros for day and month values, not used if mailnews.search_date_format is not zero
+mailnews.search_date_leading_zeros=true
+
+# offline msg
+nocachedbodybody2=Nội dung của thư này chưa được tải xuống từ \
+máy chủ để đọc ngoại tuyến. Để đọc thư này, \
+bạn phải kết nối lại với mạng, chọn Ngoại tuyến từ \
+menu Tập tin và sau đó bỏ chọn Làm việc ngoại tuyến. \
+Trong tương lai, bạn có thể chọn thư hoặc thư mục để đọc ngoại tuyến. Để \
+làm điều này, chọn Ngoại tuyến từ menu Tập tin, sau đó chọn Tải xuống/Đồng bộ hóa ngay. \
+Bạn có thể điều chỉnh tùy chọn Dung lượng đĩa để ngăn việc tải xuống thư quá lớn.
+
+# LOCALIZATION NOTE(acctCentralTitleFormat): %1$S is brand, %2$S is account type, %3$S is account name
+acctCentralTitleFormat=%1$S %2$S - %3$S
+mailAcctType=Thư
+newsAcctType=Tin tức
+feedsAcctType=Nguồn cấp
+
+# LOCALIZATION NOTE(nocachedbodytitle): Do not translate "<TITLE>" or "</TITLE>" in the line below
+nocachedbodytitle=<TITLE>Chuyển sang trực tuyến để xem thư này</TITLE>\n
+
+# mailWindowOverlay.js
+confirmUnsubscribeTitle=Xác nhận dừng theo dõi
+confirmUnsubscribeText=Bạn có chắc chắn muốn dừng theo dõi %S?
+confirmUnsubscribeManyText=Bạn có chắc chắn muốn dừng theo dõi khỏi các nhóm tin này?
+restoreAllTabs=Mở lại tất cả các thẻ
+
+confirmMarkAllFoldersReadTitle=Đánh dấu tất cả thư mục là đã đọc
+confirmMarkAllFoldersReadMessage=Bạn có chắc chắn muốn đánh dấu tất cả các thư trong tất cả các thư mục của tài khoản này là đã đọc không?
+
+# LOCALIZATION NOTE(junkBarMessage): %S is brand
+junkBarMessage=%S nghĩ rằng thư này là thư rác.
+junkBarButton=Không phải thư rác
+junkBarButtonKey=N
+junkBarInfoButton=Tìm hiểu thêm
+junkBarInfoButtonKey=L
+
+# LOCALIZATION NOTE(remoteContentBarMessage): %S is brand
+remoteContentBarMessage=Để bảo vệ quyền riêng tư của bạn, %S đã chặn nội dung từ xa trong thư này.
+remoteContentPrefLabel=Tùy chọn
+remoteContentPrefAccesskey=O
+remoteContentPrefLabelUnix=Tùy chỉnh
+remoteContentPrefAccesskeyUnix=P
+
+# LOCALIZATION NOTE(remoteAllowResource): %S is origin
+remoteAllowResource=Cho phép nội dung từ xa từ %S
+# LOCALIZATION NOTE(remoteAllowAll): Semi-colon list of plural forms.
+# See: https://developer.mozilla.org/en/Localization_and_Plurals
+# #1 is the number of origins
+remoteAllowAll=Cho phép nội dung từ xa từ tất cả #1 nguồn gốc được liệt kê ở trên
+
+phishingBarMessage=Thư này có vẻ như lừa đảo.
+phishingBarPrefLabel=Tùy chọn
+phishingBarPrefAccesskey=O
+phishingBarPrefLabelUnix=Tùy chỉnh
+phishingBarPrefAccesskeyUnix=P
+
+mdnBarIgnoreButton=Bỏ qua yêu cầu
+mdnBarIgnoreButtonKey=n
+mdnBarSendReqButton=Gửi biên nhận
+mdnBarSendReqButtonKey=S
+
+draftMessageMsg=Đây là một thư nháp.
+draftMessageButton=Chỉnh sửa
+draftMessageButtonKey=E
+
+# msgHdrViewOverlay.js
+openLabel=Mở
+openLabelAccesskey=M
+saveLabel=Lưu thành…
+saveLabelAccesskey=L
+detachLabel=Tách rời…
+detachLabelAccesskey=a
+deleteLabel=Xóa
+deleteLabelAccesskey=a
+openFolderLabel=Mở thư mục chứa
+openFolderLabelAccesskey=F
+deleteAttachments=Các phần đính kèm sau đây sẽ bị xóa vĩnh viễn khỏi thư này:\n%S\nThao tác này sẽ không thể hoàn tác được. Bạn có muốn tiếp tục không?
+detachAttachments=Các phần đính kèm sau đây đã được lưu thành công và sẽ bị xóa vĩnh viễn khỏi thư này:\n%S\nThao tác này sẽ không thể hoàn tác được. Bạn có muốn tiếp tục không?
+deleteAttachmentFailure=Không xóa được các tập tin đính kèm đã chọn.
+emptyAttachment=Phần đính kèm này có vẻ rỗng.\nVui lòng hỏi lại người đã gửi tập tin này.\nThông thường, tường lửa hoặc trình diệt virút sẽ xóa các tập tin đính kèm.
+externalAttachmentNotFound=Tập tin tách rời hoặc tập tin đính kèm liên kết này không được tìm thấy hoặc không thể truy cập được tại vị trí này nữa.
+
+# LOCALIZATION NOTE (attachmentCount): Semi-colon list of plural forms.
+# See: https://developer.mozilla.org/en/Localization_and_Plurals
+# #1 number of attachments
+attachmentCount=#1 đính kèm
+
+# LOCALIZATION NOTE (attachmentCountSingle): This is the format for the
+# attachment header when a message has only one attachment. This is separate
+# from attachmentCount above, since attachmentCountSingle typically ends with a
+# colon.
+attachmentCountSingle=1 đính kèm:
+
+# LOCALIZATION NOTE (attachmentSizeUnknown): The string to show for the total
+# size of all attachments when none of the attachments' sizes can be detected.
+attachmentSizeUnknown=kích cỡ không rõ
+
+# LOCALIZATION NOTE (attachmentSizeAtLeast): The string to show for the total
+# size of all attachments when at least one (but not all) of the attachments'
+# sizes can't be detected. %1$S is the formatted size.
+attachmentSizeAtLeast=ít nhất %1$S
+
+# This is the format for prepending accesskeys to the
+# each of the attachments in the file|attachments menu:
+# ie: 1 file.txt
+# 2 another file.txt
+attachmentDisplayNameFormat=%S %S
+
+# This is the heading for the attachment summary when printing an email
+attachmentsPrintHeader=Đính kèm:
+
+# Connection Error Messages
+# LOCALIZATION NOTE(unknownHostError): %S is the server name
+unknownHostError=Không thể kết nối với máy chủ %S.
+# LOCALIZATION NOTE(connectionRefusedError): %S is the server name
+connectionRefusedError=Không thể kết nối với máy chủ %S; kết nối đã bị từ chối.
+# LOCALIZATION NOTE(netTimeoutError): %S is the server name
+netTimeoutError=Đã hết thời gian kết nối tới máy chủ %S.
+# LOCALIZATION NOTE(netResetError): %S is the server name
+netResetError=Kết nối với máy chủ %S đã được đặt lại.
+# LOCALIZATION NOTE(netInterruptError): %S is the server name
+netInterruptError=Kết nối với máy chủ %S bị gián đoạn.
+
+recipientSearchCriteria=Tiêu đề hoặc người nhận chứa:
+fromSearchCriteria=Tiêu đề hoặc người gửi chứa:
+
+# LOCALIZATION NOTE(biffNotification): %1$S is the number of new messages
+biffNotification_message=có %1$S thư mới
+biffNotification_messages=có %1$S thư mới
+
+# LOCALIZATION NOTE(newMailNotification_message): %1$S is the name of the account %2$S is the number of new messages
+newMailNotification_message=%1$S đã nhận %2$S thư mới
+
+# LOCALIZATION NOTE(newMailNotification_messages): %1$S is the name of the account %2$S is the number of new messages
+newMailNotification_messages=%1$S đã nhận %2$S thư mới
+
+# LOCALIZATION NOTE(newMailNotification_messagetitle): %1$S is subject of new message and %2$S is sender of new message.
+# This is UNIX only
+newMailNotification_messagetitle=%1$S từ %2$S
+
+# LOCALIZATION NOTE(newMailAlert_message):
+# Semi-colon list of plural forms. See:
+# https://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is the name of the account, #2 is the number of new messages
+newMailAlert_message=#1 đã nhận #2 thư mới
+
+# LOCALIZATION NOTE(macBiffNotification is Mac only):
+# %1$S is the number of new messages
+# %2$S is a list of names and/or email addresses separated by biffNotification_separator
+# %3$S is the number of new messages not displayed in the biff alert
+macBiffNotification_message=%1$S thư mới từ %2$S.
+macBiffNotification_messages=%1$S thư mới từ %2$S.
+macBiffNotification_messages_extra=%1$S thư mới từ %2$S và còn %3$S nữa.
+# Used to separate names/email addresses in a list. Note the trailing space ', '
+macBiffNotification_separator=,\u0020
+
+# For the Quota tab in the mail folder properties dialog
+quotaPercentUsed=%S%% đủ
+# for quota in main window (commandglue.js)
+percent=%S%%
+quotaTooltip2=Hạn mức IMAP: Đã dùng %S trên tổng số %S. Nhấp để biết thêm chi tiết.
+
+# for message views
+confirmViewDeleteTitle=Xác nhận
+confirmViewDeleteMessage=Bạn có chắc là bạn muốn xóa cách hiển thị này?
+
+# for virtual folders
+confirmSavedSearchTitle=Xác nhận xóa
+confirmSavedSearchDeleteMessage=Bạn có chắc là bạn muốn xóa tìm kiếm đã được lưu này?
+
+## @name ENTER_PASSWORD_PROMPT
+## @loc None
+# LOCALIZATION NOTE (passwordPrompt): Do not translate the word %S below.
+# Place the word "%S" in your translation where the email address
+# or the username should appear
+passwordPrompt=Nhập mật khẩu cho %1$S trên %2$S:
+
+## @name ENTER_PASSWORD_PROMPT_TITLE
+## @loc None
+passwordTitle=Yêu cầu mật khẩu máy chủ thư
+
+# for checking if the user really wants to open lots of messages in separate windows.
+openWindowWarningTitle=Xác nhận
+# LOCALIZATION NOTE (openWindowWarningConfirmation): Semi-colon list of plural forms.
+# #1 is the number of messages the user is attempting to open.
+openWindowWarningConfirmation=Việc mở #1 thư có thể bị chậm. Tiếp tục?
+
+# for checking if the user really wants to open lots of messages in tabs.
+openTabWarningTitle=Xác nhận
+# LOCALIZATION NOTE (openTabWarningConfirmation): Semi-colon list of plural forms.
+# #1 is the number of messages the user is attempting to open.
+openTabWarningConfirmation=Việc mở #1 thư có thể bị chậm. Tiếp tục?
+
+# for warning the user that a tag they're trying to create already exists
+tagExists=Tên nhãn đã tồn tại.
+
+# title of the edit tag dialog
+editTagTitle=Chỉnh sửa nhãn
+
+# for the virtual folder list dialog title
+# %S is the name of the saved search folder
+editVirtualFolderPropertiesTitle=Chỉnh sửa thuộc tính tìm kiếm đã lưu cho %S
+# LOCALIZATION NOTE (foldersChosen): #1 number of chosen folders
+virtualFolderSourcesChosen=#1 thư mục được chọn
+
+#alert to inform the user to choose one or more folders to search for a saved search folder
+alertNoSearchFoldersSelected=Bạn phải chọn ít nhất một thư mục để tìm.
+
+# These are displayed in the message and folder pane windows
+# LOCALIZATION NOTE %.*f is the abbreviated size in the appropriate units
+byteAbbreviation2=%.*f byte
+kiloByteAbbreviation2=%.*f KB
+megaByteAbbreviation2=%.*f MB
+gigaByteAbbreviation2=%.*f GB
+teraByteAbbreviation2=%.*f TB
+petaByteAbbreviation2=%.*f PB
+
+## LOCALIZATION NOTE(folderWithAccount):
+## This is used to show folder name together with an account name.
+## %1$S = folder name
+## %2$S = account name
+folderWithAccount=%1$S - %2$S
+## LOCALIZATION NOTE(folderWithUnreadMsgs):
+## This is a concatenation of two strings to compose a folder label with unread messages.
+## %1$S = folder name
+## %2$S = count of unread messages
+folderWithUnreadMsgs=%1$S (%2$S)
+## LOCALIZATION NOTE(summarizedValue):
+## This string shows an indication that the value shown is actually a summary
+## accumulated from all subfolders.
+## %S = summarized value from all subfolders
+folderSummarizedSymbolValue=▾%S
+## LOCALIZATION NOTE(subfoldersExplanation):
+## This is a tooltip message shown on the values in the numeric folder pane columns.
+## %1$S = is the count of messages having the respective property, found in the folder under mouse cursor
+## %2$S = is the count of messages having the respective property, found in subfolders of the folder under mouse cursor
+subfoldersExplanation=%1$S trong thư mục này, %2$S trong thư mục con
+
+# Error message if message for a message id wasn't found
+errorOpenMessageForMessageIdTitle=Lỗi khi mở id-thư
+errorOpenMessageForMessageIdMessage=Không tìm thấy thư cho id-thư %S
+
+# Warnings to alert users about phishing urls
+confirmPhishingTitle=Báo động Lừa đảo Email
+linkMismatchTitle=Đã phát hiện liên kết không khớp
+#LOCALIZATION NOTE %1$S is the brand name, %2$S is the host name of the url being visited
+confirmPhishingUrl=%1$S nghĩ rằng thư này là thư lừa đảo. Liên kết trong thư có thể sẽ cố mạo danh trang web mà bạn muốn vào. Bạn có chắc là bạn muốn vào %2$S không?
+#LOCALIZATION NOTE %1$S is the host name of indicated host, %2$S is the host name of the actual host.
+confirmPhishingUrlAlternate=Liên kết bạn vừa nhấp dường như dẫn đến một trang web khác với những gì văn bản liên kết đã chỉ ra. Điều này đôi khi được sử dụng để theo dõi xem bạn có nhấp vào liên kết hay không, nhưng nó cũng có thể là một trò lừa đảo.\n\nVăn bản liên kết chỉ ra rằng liên kết sẽ dẫn đến %1$S, nhưng nó dẫn đến %2$S.
+#LOCALIZATION NOTE $1$S is the host name of the indicated host.
+confirmPhishingGoAhead=Tiếp tục đi đến %1$S
+#LOCALIZATION NOTE %1$S is the host name that was displayed to the user.
+confirmPhishingGoDirect=Đi đến %1$S
+
+# Check for Updates
+# LOCALIZATION NOTE (updatesItem_*): these are alternative labels for Check for Update item in Help menu.
+# Which one is used depends on Update process state.
+updatesItem_default=Tìm bản Cập nhật…
+updatesItem_defaultFallback=Tìm bản Cập nhật…
+updatesItem_default.accesskey=C
+updatesItem_downloading=Đang tải xuống %S…
+updatesItem_downloadingFallback=Đang tải bản cập nhật xuống…
+updatesItem_downloading.accesskey=D
+updatesItem_resume=Tiếp tục tải xuống %S…
+updatesItem_resumeFallback=Tiếp tục tải xuống bản cập nhật…
+updatesItem_resume.accesskey=T
+updatesItem_pending=Cài đặt bản cập nhật ngay…
+updatesItem_pendingFallback=Cài đặt bản cập nhật ngay…
+updatesItem_pending.accesskey=C
+
+# Folder Pane Header Title Strings
+folderPaneModeHeader_all=Tất cả Thư mục
+folderPaneModeHeader_unread=Thư mục Chưa đọc
+folderPaneModeHeader_unread_compact=Thư mục chưa đọc - Chế độ xem thu gọn
+folderPaneModeHeader_favorite=Thư mục Ưa thích
+folderPaneModeHeader_favorite_compact=Thư mục yêu thích - Chế độ xem thu gọn
+folderPaneModeHeader_recent=Thư mục Gần đây
+folderPaneModeHeader_recent_compact=Thư mục gần đây - Chế độ xem thu gọn
+folderPaneModeHeader_smart=Thư mục Hợp nhất
+unifiedAccountName=Thư mục Hợp nhất
+
+# Copy / Move to Folder Again
+#LOCALIZATION NOTE %1$S is the name of the folder we will move to. moveToFolderAgainAccessKey
+# should have the same value as copyToFolderAgainAccessKey as they are the same menu item in the UI
+# moveToFolderAgainAccessKey should also be a letter that occurs before %1$S
+moveToFolderAgain=Di chuyển đến "%1$S" Lần nữa
+moveToFolderAgainAccessKey=L
+#LOCALIZATION NOTE %1$S is the name of the folder we will copy to
+# copyToFolderAgainAccessKey
+# should have the same value as moveToFolderAgainAccessKey as they are the same menu item in the UI
+# copyToFolderAgainAccessKey should also be a letter that occurs before %1$S
+copyToFolderAgain=Sao chép đến "%1$S" một lần nữa
+copyToFolderAgainAccessKey=L
+
+#LOCALIZATION NOTE(mdnBarMessageNormal) %1$S is the name of the sender
+mdnBarMessageNormal=%1$S đã yêu cầu được thông báo khi bạn đọc thư này.
+#LOCALIZATION NOTE(mdnBarMessageAddressDiffers) %1$S is the name of the sender, %2$S is the address(es) to send return receipt to
+mdnBarMessageAddressDiffers=%1$S đã yêu cầu được thông báo (tại %2$S) khi bạn đọc thư này.
+
+# mailCommands.js
+emptyJunkFolderTitle=Làm trống "%S"
+emptyJunkFolderMessage=Xóa tất cả thư và thư mục con trong thư mục rác?
+emptyJunkDontAsk=Đừng hỏi lại tôi nữa.
+emptyTrashFolderTitle=Làm trống "%S"
+emptyTrashFolderMessage=Xóa tất cả thư và thư mục con trong thư mục rác?
+emptyTrashDontAsk=Đừng hỏi lại tôi nữa.
+
+# junkCommands.js
+junkAnalysisPercentComplete=Phân tích Thư rác đã hoàn tất %S
+processingJunkMessages=Đang xử lí Thư rác
+
+# Messenger bootstrapping messages
+fileNotFoundTitle = Không tìm thấy Tập tin
+#LOCALIZATION NOTE(fileNotFoundMsg): %S is the filename
+fileNotFoundMsg = Tập tin %S không tồn tại.
+
+fileEmptyTitle = Tập tin rỗng
+#LOCALIZATION NOTE(fileEmptyMsg): %S is the filename
+fileEmptyMsg = Tập tin %S rỗng.
+
+# LOCALIZATION NOTE (headerMoreAddrs): semicolon separated list of plural
+# forms of the word "more" as used after the number of addresses
+# currently hidden while displaying a header such as "to", "cc", or "bcc"
+# in the message header box. English has two identical forms here, so it will
+# construct strings that look like (for example) "1 more" or "20 more".
+# <https://developer.mozilla.org/en/Localization_and_Plurals> has details
+# on this mechanism.
+headerMoreAddrs=thêm #1
+
+# LOCALIZATION NOTE (headerMoreAddrsTooltip): semicolon separated list of
+# plural forms of the phrase ", and #1 more" as used in the tooltip text
+# of the more widget displayed in the header pane (see headerMoreAddrs).
+# English has two identical forms here, so it will construct strings that
+# look like (for example) ", and 1 more" or ", and 20 more".
+# <https://developer.mozilla.org/en/Localization_and_Plurals> has details
+# on this mechanism.
+headerMoreAddrsTooltip=, và #1 khác
+
+# LOCALIZATION NOTE (headertoFieldMe): first person prepositional object
+# pronoun used in the "to" header of the message header pane. This is also
+# used for the fallback case if a header-specific localization is not
+# available.
+headertoFieldMe=Tôi
+
+# LOCALIZATION NOTE (headerfromFieldMe): first person prepositional object
+# pronoun used in the "from" header of the message header pane.
+headerfromFieldMe=Tôi
+
+# LOCALIZATION NOTE (headerreply-toFieldMe): first person prepositional
+# object pronoun used in the "reply-to" header of the message header pane.
+headerreply-toFieldMe=Tôi
+
+# LOCALIZATION NOTE (headerccFieldMe): first person prepositional object
+# pronoun used in the "cc" header of the message header pane.
+headerccFieldMe=Tôi
+
+# LOCALIZATION NOTE (headerbccFieldMe): first person prepositional object
+# pronoun used in the "bcc" header of the message header pane.
+headerbccFieldMe=Tôi
+
+expandAttachmentPaneTooltip=Hiển thị khung đính kèm
+collapseAttachmentPaneTooltip=Ẩn ngăn đính kèm
+
+# Shown when content tabs are being loaded.
+loadingTab=Đang tải…
+
+confirmMsgDelete.title=Xác nhận xóa
+confirmMsgDelete.collapsed.desc=Điều này sẽ xóa thư trong chủ đề đã thu gọn. Bạn có chắc chắn muốn tiếp tục?
+confirmMsgDelete.deleteNoTrash.desc=Thao tác này sẽ xóa thư ngay lập tức mà không chuyển vào thùng rác. Bạn có chắc chắn muốn tiếp tục?
+confirmMsgDelete.deleteFromTrash.desc=Thao tác này sẽ xóa vĩnh viễn thư khỏi thùng rác. Bạn có chắc chắn muốn tiếp tục?
+confirmMsgDelete.dontAsk.label=Đừng hỏi lại tôi nữa.
+confirmMsgDelete.delete.label=Xóa
+
+mailServerLoginFailedTitle=Đăng nhập bị Thất bại
+# LOCALIZATION NOTE (mailServerLoginFailedTitleWithAccount):
+# "%S" is the account name.
+mailServerLoginFailedTitleWithAccount=Không thể đăng nhập vào tài khoản "%S"
+# LOCALIZATION NOTE (mailServerLoginFailed2):
+# %1$S is the host name of the server, %2$S is the user name.
+mailServerLoginFailed2=Không thể đăng nhập vào máy chủ %1$S với tên người dùng %2$S.
+mailServerLoginFailedRetryButton=&Thử lại
+mailServerLoginFailedEnterNewPasswordButton=&Nhập Mật Khẩu Mới
+
+# LOCALIZATION NOTE (threadPane.columnPicker.confirmFolder.noChildren.title):
+# When the user selects a folder to apply the currently displayed columns to
+# via the "columnPicker.applyToFolder.label" menu option, this is the title of
+# the confirmation dialog used to verify they selected the correct folder. This
+# is the case in which we apply the columns only to the folder and not to any of
+# its children.
+threadPane.columnPicker.confirmFolder.noChildren.title=Áp dụng các thay đổi?
+# LOCALIZATION NOTE (threadPane.columnPicker.confirmFolder.noChildren.message):
+# When the user selects a folder to apply the currently displayed columns to
+# via the "columnPicker.applyToFolder.label" menu option, this is the text of
+# the confirmation dialog used to verify they selected the correct folder. The
+# string '%S' is replaced with the name of the folder the user selected in
+# order to help them confirm they picked what they thought they picked. This
+# is the case in which we apply the columns only to the folder and not to any of
+# its children.
+threadPane.columnPicker.confirmFolder.noChildren.message=Áp dụng các cột của thư mục hiện tại cho %S?
+
+# LOCALIZATION NOTE (threadPane.columnPicker.confirmFolder.withChildren.title):
+# When the user selects a folder to apply the currently displayed columns to via
+# the "columnPicker.applyToFolderAndChildren.label" menu option, this is the
+# title of the confirmation dialog used to verify they selected the correct
+# folder. This is the case in which we apply the columns to the folder and all
+# of its children.
+threadPane.columnPicker.confirmFolder.withChildren.title=Áp dụng các thay đổi?
+# LOCALIZATION NOTE (threadPane.columnPicker.confirmFolder.withChildren.message):
+# When the user selects a folder to apply the currently displayed columns to via
+# the "columnPicker.applyToFolderAndChildren.label" menu option, this is the
+# text of the confirmation dialog used to verify they selected the correct
+# folder. The string '%S' is replaced with the name of the folder the user
+# selected in order to help them confirm they picked what they thought they
+# picked. This is the case in which we apply the columns to the folder and all
+# of its children.
+threadPane.columnPicker.confirmFolder.withChildren.message=Áp dụng các cột của thư mục hiện tại cho %S và thư mục con của nó?
+
+# LOCALIZATION NOTE (lwthemeInstallRequest.message): %S will be replaced with
+# the host name of the site.
+lwthemeInstallRequest.message=Trang này (%S) có ý định cài đặt một giao diện.
+lwthemeInstallRequest.allowButton=Cho phép
+lwthemeInstallRequest.allowButton.accesskey=C
+
+lwthemePostInstallNotification.message=Một giao diện mới đã được cài đặt.
+lwthemePostInstallNotification.undoButton=Hoàn tác
+lwthemePostInstallNotification.undoButton.accesskey=H
+lwthemePostInstallNotification.manageButton=Quản lí Giao diện…
+lwthemePostInstallNotification.manageButton.accesskey=Q
+
+# safeModeRestart
+safeModeRestartPromptTitle=Khởi động lại và vô hiệu hóa Tiện ích
+safeModeRestartPromptMessage=Bạn có chắc bạn muốn vô hiệu hóa tất cả tiện ích và khởi động lại?
+safeModeRestartButton=Khởi động lại
+
+# LOCALIZATION NOTE (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
+
+# Sanitize
+# LOCALIZATION NOTE (sanitizeDialog2.everything.title): When "Time range to
+# clear" is set to "Everything", the Clear Recent History dialog's title is
+# changed to this. See UI mockup and comment 11 at bug 480169 -->
+sanitizeDialog2.everything.title=Xóa toàn bộ lịch sử
+sanitizeButtonOK=Xóa ngay
+# LOCALIZATION NOTE (sanitizeEverythingWarning2): 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.
+sanitizeEverythingWarning2=Toàn bộ lịch sử sẽ bị xóa.
+# LOCALIZATION NOTE (sanitizeSelectedWarning): 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.
+sanitizeSelectedWarning=Tất cả các mục đã chọn sẽ bị xóa.
+
+learnMoreAboutIgnoreThread=Tìm hiểu thêm…
+learnMoreAboutIgnoreThreadAccessKey = L
+# LOCALIZATION NOTE (ignoredThreadFeedback): #1 is the message thread title
+# LOCALIZATION NOTE (ignoredSubthreadFeedback): #1 is the message subthread title
+# LOCALIZATION NOTE (ignoredThreadsFeedback): Semi-colon list of plural forms.
+# #1 is the number of threads
+# LOCALIZATION NOTE (ignoredSubthreadsFeedback): Semi-colon list of plural forms.
+# #1 is number of subthreads
+# LOCALIZATION NOTE (saveAsType): replace %S with the extension of the file to be saved.
+saveAsType=Tập tin %S
+
+# LOCALIZATION NOTE (openSearch.label): The label used in the autocomplete
+# widget to refer to a search on the web for a short string containing at most
+# 15 characters. %1$S is the search provider to use. %2$S is the string to
+# search for.
+openSearch.label=Tìm kiếm %1$S cho "%2$S"
+
+# LOCALIZATION NOTE (openSearch.label.truncated): The label used in the
+# autocomplete widget to refer to a search on the web for a short string
+# containing more than 15 characters. %1$S is the search provider to use. %2$S
+# is the string to search for, truncated to 15 characters.
+openSearch.label.truncated=Tìm kiếm %1$S cho "%2$S…"
+
+# LOCALIZATION NOTE (aboutDialog.architecture.*):
+# The sixtyFourBit and thirtyTwoBit strings describe the architecture of the
+# current Thunderbird build: 32-bit or 64-bit. These strings are used in parentheses
+# after the Thunderbird version 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
+
+errorConsoleTitle = Bảng điều khiển lỗi
+
+# 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 appmenu.
+panel.back = Quay lại
diff --git a/l10n-vi/mail/chrome/messenger/messengercompose/EdAdvancedEdit.dtd b/l10n-vi/mail/chrome/messenger/messengercompose/EdAdvancedEdit.dtd
new file mode 100644
index 0000000000..b483cfe4d0
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/messengercompose/EdAdvancedEdit.dtd
@@ -0,0 +1,18 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY WindowTitle.label "Trình chỉnh sửa thuộc tính nâng cao">
+<!ENTITY AttName.label "Thuộc tính: ">
+<!ENTITY AttValue.label "Giá trị: ">
+<!ENTITY PropertyName.label "Thuộc tính (Property): ">
+<!ENTITY currentattributesfor.label "Thuộc tính hiện tại của: ">
+<!ENTITY tree.attributeHeader.label "Thuộc tính">
+<!ENTITY tree.propertyHeader.label "Thuộc tính">
+<!ENTITY tree.valueHeader.label "Giá trị">
+<!ENTITY tabHTML.label "Thuộc tính HTML">
+<!ENTITY tabCSS.label "Phong cách bên trong">
+<!ENTITY tabJSE.label "Sự kiện JavaScript">
+
+<!ENTITY editAttribute.label "Nhấn lên một mục ở trên để chỉnh sửa giá trị của nó">
+<!ENTITY removeAttribute.label "Xóa">
diff --git a/l10n-vi/mail/chrome/messenger/messengercompose/EdColorPicker.dtd b/l10n-vi/mail/chrome/messenger/messengercompose/EdColorPicker.dtd
new file mode 100644
index 0000000000..bd55840f0d
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/messengercompose/EdColorPicker.dtd
@@ -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/. -->
+
+<!ENTITY windowTitle.label "Màu">
+<!ENTITY lastPickedColor.label "Màu mới chọn">
+<!ENTITY lastPickedColor.accessKey "M">
+<!ENTITY chooseColor1.label "Chọn một màu:">
+<!ENTITY chooseColor2.label "Nhập chuỗi màu HTML">
+<!ENTITY chooseColor2.accessKey "H">
+<!ENTITY setColorExample.label "(vd.: &quot;#0000ff&quot; hoặc &quot;blue&quot;):">
+<!ENTITY default.label "Mặc định">
+<!ENTITY default.accessKey "M">
+<!ENTITY palette.label "Bảng màu:">
+<!ENTITY standardPalette.label "Chuẩn">
+<!ENTITY webPalette.label "Tất cả màu của web">
+<!ENTITY background.label "Nền cho:">
+<!ENTITY background.accessKey "N">
+<!ENTITY table.label "Bảng">
+<!ENTITY table.accessKey "B">
+<!ENTITY cell.label "Các Ô">
+<!ENTITY cell.accessKey "C">
diff --git a/l10n-vi/mail/chrome/messenger/messengercompose/EdConvertToTable.dtd b/l10n-vi/mail/chrome/messenger/messengercompose/EdConvertToTable.dtd
new file mode 100644
index 0000000000..c2dcf17c0f
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/messengercompose/EdConvertToTable.dtd
@@ -0,0 +1,15 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+
+<!-- Window title -->
+<!ENTITY windowTitle.label "Chuyển đổi sang bảng">
+<!ENTITY instructions1.label "Trình soạn thảo tạo một hàng mới trên bảng cho mỗi đoạn đã chọn.">
+<!ENTITY instructions2.label "Chọn kí tự dùng để tách các khối vào các cột:">
+<!ENTITY commaRadio.label "Dấu phẩy">
+<!ENTITY spaceRadio.label "Khoảng trống">
+<!ENTITY otherRadio.label "Kí tự khác:">
+<!ENTITY deleteCharCheck.label "Xóa kí tự phân tách">
+<!ENTITY collapseSpaces.label "Bỏ qua khoảng trống thừa">
+<!ENTITY collapseSpaces.tooltip "Chuyển đổi các khoảng trống kề cận thành một dấu ngăn cách">
diff --git a/l10n-vi/mail/chrome/messenger/messengercompose/EdDialogOverlay.dtd b/l10n-vi/mail/chrome/messenger/messengercompose/EdDialogOverlay.dtd
new file mode 100644
index 0000000000..9ce109fd6b
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/messengercompose/EdDialogOverlay.dtd
@@ -0,0 +1,18 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY AdvancedEditButton.label "Chỉnh sửa nâng cao…">
+<!ENTITY AdvancedEditButton.accessKey "S">
+<!ENTITY AdvancedEditButton.tooltip "Thêm hoặc chỉnh sửa thuộc tính HTML, thuộc tính style và JavaScript">
+<!ENTITY chooseFileButton.label "Chọn tập tin…">
+<!ENTITY chooseFileButton.accessKey "C">
+<!ENTITY chooseFileLinkButton.label "Chọn tập tin…">
+<!ENTITY chooseFileLinkButton.accessKey "h">
+<!ENTITY makeUrlRelative.label "URL tương đối so với địa chỉ trang">
+<!ENTITY makeUrlRelative.accessKey "U">
+<!ENTITY makeUrlRelative.tooltip "Thay đổi giữa URL tuyệt đối và tương đối. Bạn phải lưu trang trước khi thay đổi.">
+
+<!-- Shared by Link and Image dialogs -->
+<!ENTITY LinkURLEditField2.label "Nhập vị trí trang web, tệp cục bộ hoặc chọn neo được đặt tên hoặc tiêu đề từ menu ngữ cảnh của trường:">
+<!ENTITY LinkURLEditField2.accessKey "w">
diff --git a/l10n-vi/mail/chrome/messenger/messengercompose/EdNamedAnchorProperties.dtd b/l10n-vi/mail/chrome/messenger/messengercompose/EdNamedAnchorProperties.dtd
new file mode 100644
index 0000000000..024bd84565
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/messengercompose/EdNamedAnchorProperties.dtd
@@ -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/. -->
+
+<!ENTITY windowTitle.label "Thuộc tính mỏ neo">
+<!ENTITY anchorNameEditField.label "Tên mỏ neo:">
+<!ENTITY anchorNameEditField.accessKey "N">
+<!ENTITY nameInput.tooltip "Nhập một tên cho mỏ neo (đích) này">
diff --git a/l10n-vi/mail/chrome/messenger/messengercompose/EditorColorProperties.dtd b/l10n-vi/mail/chrome/messenger/messengercompose/EditorColorProperties.dtd
new file mode 100644
index 0000000000..03e272e203
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/messengercompose/EditorColorProperties.dtd
@@ -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/. -->
+
+<!-- Window title -->
+<!ENTITY windowTitle.label "Màu và nền trang">
+<!ENTITY pageColors.label "Màu Trang">
+<!ENTITY defaultColorsRadio.label "Màu mặc định của người đọc (Không thiết lập màu trong trang)">
+<!ENTITY defaultColorsRadio.accessKey "M">
+<!ENTITY defaultColorsRadio.tooltip "Dùng thiết lập màu từ trình duyệt của người đọc">
+<!ENTITY customColorsRadio.label "Dùng màu tùy chọn:">
+<!ENTITY customColorsRadio.accessKey "D">
+<!ENTITY customColorsRadio.tooltip "Những thiết lập màu này sẽ hiển thị đè lên các thiết lập trình duyệt của người đọc">
+
+<!ENTITY normalText.label "Chữ thường">
+<!ENTITY normalText.accessKey "B">
+<!ENTITY linkText.label "Chữ liên kết">
+<!ENTITY linkText.accessKey "l">
+<!ENTITY activeLinkText.label "Chữ liên kết đang chọn">
+<!ENTITY activeLinkText.accessKey "C">
+<!ENTITY visitedLinkText.label "Chữ liên kết đã thăm">
+<!ENTITY visitedLinkText.accessKey "t">
+<!ENTITY background.label "Nền:">
+<!ENTITY background.accessKey "N">
+<!ENTITY colon.character ":">
+<!ENTITY backgroundImage.label "Hình nền:">
+<!ENTITY backgroundImage.accessKey "H">
+<!ENTITY backgroundImage.tooltip "Dùng một tập tin ảnh làm nền cho trang của bạn">
+<!ENTITY backgroundImage.shortenedDataURI "URI dữ liệu rút ngắn (bản sao sẽ đặt URI đầy đủ vào bảng tạm)">
diff --git a/l10n-vi/mail/chrome/messenger/messengercompose/EditorHLineProperties.dtd b/l10n-vi/mail/chrome/messenger/messengercompose/EditorHLineProperties.dtd
new file mode 100644
index 0000000000..a30cf6ea57
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/messengercompose/EditorHLineProperties.dtd
@@ -0,0 +1,27 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+
+<!-- Window title -->
+<!ENTITY windowTitle.label "Thuộc tính đường ngang">
+
+<!ENTITY dimensionsBox.label "Chiều">
+<!ENTITY heightEditField.label "Cao:">
+<!ENTITY heightEditField.accessKey "C">
+<!ENTITY widthEditField.label "Rộng:">
+<!ENTITY widthEditField.accessKey "R">
+<!ENTITY pixelsPopup.value "điểm ảnh">
+<!ENTITY alignmentBox.label "Canh hàng">
+<!ENTITY leftRadio.label "Trái">
+<!ENTITY leftRadio.accessKey "T">
+<!ENTITY centerRadio.label "Giữa">
+<!ENTITY centerRadio.accessKey "G">
+<!ENTITY rightRadio.label "Phải">
+<!ENTITY rightRadio.accessKey "P">
+
+<!ENTITY threeDShading.label "Bóng 3-D">
+<!ENTITY threeDShading.accessKey "B">
+<!ENTITY saveSettings.label "Sử dụng làm mặc định">
+<!ENTITY saveSettings.accessKey "D">
+<!ENTITY saveSettings.tooltip "Lưu các thiết lập này để dùng khi chèn các đường kẻ ngang mới">
diff --git a/l10n-vi/mail/chrome/messenger/messengercompose/EditorImageProperties.dtd b/l10n-vi/mail/chrome/messenger/messengercompose/EditorImageProperties.dtd
new file mode 100644
index 0000000000..02772637e0
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/messengercompose/EditorImageProperties.dtd
@@ -0,0 +1,79 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- These strings are for use specifically in the editor's image and form image dialogs. -->
+
+<!-- Window title -->
+<!ENTITY windowTitle.label "Thuộc tính hình ảnh…">
+
+<!ENTITY pixelsPopup.value "pixel">
+
+<!-- These are in the Location tab panel -->
+<!ENTITY locationEditField.label "Đường dẫn hình ảnh:">
+<!ENTITY locationEditField.accessKey "L">
+<!ENTITY locationEditField.tooltip "Gõ vào tên hoặc vị trí của hình ảnh">
+<!ENTITY locationEditField.shortenedDataURI "URI dữ liệu rút ngắn (bản sao sẽ đặt URI đầy đủ vào bảng tạm)">
+<!ENTITY title.label "Ghi chú:">
+<!ENTITY title.accessKey "T">
+<!ENTITY title.tooltip "Thuộc tính html 'title' hiển thị dưới dạng ghi chú">
+<!ENTITY altText.label "Văn bản thay thế:">
+<!ENTITY altText.accessKey "A">
+<!ENTITY altTextEditField.tooltip "Gõ văn bản hiển thị thay cho hình ảnh">
+<!ENTITY noAltText.label "Không dùng văn bản thay thế">
+<!ENTITY noAltText.accessKey "D">
+
+<!ENTITY previewBox.label "Xem trước hình ảnh">
+
+<!-- These controls are in the Dimensions tab panel -->
+<!-- actualSize.label should be same as actualSizeRadio.label + ":" -->
+<!ENTITY actualSize.label "Kích thước thực:">
+<!ENTITY actualSizeRadio.label "Kích thước thực">
+<!ENTITY actualSizeRadio.accessKey "A">
+<!ENTITY actualSizeRadio.tooltip "Chuyển ảnh về kích thước thực">
+<!ENTITY customSizeRadio.label "Kích thước tùy biến">
+<!ENTITY customSizeRadio.accessKey "S">
+<!ENTITY customSizeRadio.tooltip "Thay đổi kích thước như đang hiển thị trên trang">
+<!ENTITY heightEditField.label "Chiều rộng:">
+<!ENTITY heightEditField.accessKey "G">
+<!ENTITY widthEditField.label "Chiều dài:">
+<!ENTITY widthEditField.accessKey "W">
+<!ENTITY constrainCheckbox.label "Giữ nguyên">
+<!ENTITY constrainCheckbox.accessKey "G">
+<!ENTITY constrainCheckbox.tooltip "Giữ nguyên tỉ lệ ảnh">
+
+<!-- These controls are in the Image Map box of the expanded area -->
+<!ENTITY imagemapBox.label "Bản đồ hình ảnh">
+<!ENTITY removeImageMapButton.label "Xóa">
+<!ENTITY removeImageMapButton.accessKey "R">
+
+<!-- These are the options for image alignment -->
+<!ENTITY alignment.label "Căn chỉnh văn bản theo hình ảnh">
+<!ENTITY bottomPopup.value "Theo phần dưới">
+<!ENTITY topPopup.value "Theo phần trên">
+<!ENTITY centerPopup.value "Ở giữa">
+<!ENTITY wrapRightPopup.value "Bao lại ở bên phải">
+<!ENTITY wrapLeftPopup.value "Bao lại ở bên trái">
+
+<!-- These controls are in the Spacing Box -->
+<!ENTITY spacingBox.label "Khoảng cách">
+<!ENTITY leftRightEditField.label "Trái và phải:">
+<!ENTITY leftRightEditField.accessKey "L">
+<!ENTITY topBottomEditField.label "Trên và dưới:">
+<!ENTITY topBottomEditField.accessKey "T">
+<!ENTITY borderEditField.label "Đường viền Liên tục:">
+<!ENTITY borderEditField.accessKey "B">
+
+<!-- These controls are in the Link Box -->
+<!ENTITY showImageLinkBorder.label "Hiện viền xung quanh ảnh liên kết">
+<!ENTITY showImageLinkBorder.accessKey "B">
+<!ENTITY LinkAdvancedEditButton.label "Sửa đổi liên kết nâng cao…">
+<!ENTITY LinkAdvancedEditButton.accessKey "L">
+<!ENTITY LinkAdvancedEditButton.tooltip "Thêm hoặc chỉnh sửa thuộc tính HTML, thuộc tính style và JavaScript">
+
+<!-- These tabs are currently used in the image input dialog -->
+<!ENTITY imageInputTab.label "Biểu mẫu">
+<!ENTITY imageLocationTab.label "Địa chỉ">
+<!ENTITY imageDimensionsTab.label "Kích thước">
+<!ENTITY imageAppearanceTab.label "Diện mạo">
+<!ENTITY imageLinkTab.label "Liên kết">
diff --git a/l10n-vi/mail/chrome/messenger/messengercompose/EditorInsertChars.dtd b/l10n-vi/mail/chrome/messenger/messengercompose/EditorInsertChars.dtd
new file mode 100644
index 0000000000..f1ed0b16bf
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/messengercompose/EditorInsertChars.dtd
@@ -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/. -->
+
+
+<!-- Window title -->
+<!ENTITY windowTitle.label "Chèn ký tự">
+<!ENTITY category.label "Phân mục">
+<!ENTITY letter.label "Chữ cái:">
+<!ENTITY letter.accessKey "L">
+<!ENTITY character.label "Kí tự:">
+<!ENTITY character.accessKey "C">
+<!ENTITY accentUpper.label "Dấu HOA">
+<!ENTITY accentLower.label "Dấu thường">
+<!ENTITY otherUpper.label "Chữ HOA khác">
+<!ENTITY otherLower.label "Chữ thường khác">
+<!ENTITY commonSymbols.label "Biểu tượng phổ biến">
+<!ENTITY insertButton.label "Chèn">
+<!ENTITY closeButton.label "Đóng">
diff --git a/l10n-vi/mail/chrome/messenger/messengercompose/EditorInsertMath.dtd b/l10n-vi/mail/chrome/messenger/messengercompose/EditorInsertMath.dtd
new file mode 100644
index 0000000000..c5c08ea2fa
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/messengercompose/EditorInsertMath.dtd
@@ -0,0 +1,21 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- Window title -->
+<!ENTITY windowTitle.label "Chèn toán">
+
+<!ENTITY sourceEditField.label "Nhập mã nguồn LaTeX:">
+
+<!ENTITY options.label "Tùy chọn">
+<!ENTITY optionInline.label "Chế độ nội dòng">
+<!ENTITY optionInline.accesskey "N">
+<!ENTITY optionDisplay.label "Chế độ hiển thị">
+<!ENTITY optionDisplay.accesskey "D">
+<!ENTITY optionLTR.label "Hướng từ trái sang phải">
+<!ENTITY optionLTR.accesskey "L">
+<!ENTITY optionRTL.label "Hướng từ phải sang trái">
+<!ENTITY optionRTL.accesskey "R">
+
+<!ENTITY insertButton.label "Chèn">
+<!ENTITY insertButton.accesskey "I">
diff --git a/l10n-vi/mail/chrome/messenger/messengercompose/EditorInsertSource.dtd b/l10n-vi/mail/chrome/messenger/messengercompose/EditorInsertSource.dtd
new file mode 100644
index 0000000000..8c25abc2d9
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/messengercompose/EditorInsertSource.dtd
@@ -0,0 +1,15 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- Window title -->
+<!ENTITY windowTitle.label "Chèn HTML">
+<!ENTITY sourceEditField.label "Chèn văn bản và thẻ HTML:">
+<!ENTITY example.label "Ví dụ: ">
+<!-- LOCALIZATION NOTE (exampleOpenTag.label): DONT_TRANSLATE: they are text for HTML tagnames: "<i>" and "</i>" -->
+<!ENTITY exampleOpenTag.label "&lt;i&gt;">
+<!-- LOCALIZATION NOTE (exampleCloseTag.label): DONT_TRANSLATE: they are text for HTML tagnames: "<i>" and "</i>" -->
+<!ENTITY exampleCloseTag.label "&lt;/i&gt;">
+<!ENTITY exampleText.label "Xin chào thế giới!">
+<!ENTITY insertButton.label "Chèn">
+<!ENTITY insertButton.accesskey "I">
diff --git a/l10n-vi/mail/chrome/messenger/messengercompose/EditorInsertTOC.dtd b/l10n-vi/mail/chrome/messenger/messengercompose/EditorInsertTOC.dtd
new file mode 100644
index 0000000000..6915be90da
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/messengercompose/EditorInsertTOC.dtd
@@ -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/. -->
+
+<!ENTITY Window.title "Mục lục">
+<!ENTITY buildToc.label "Tạo mục lục từ:">
+<!ENTITY tag.label "Thẻ:">
+<!ENTITY class.label "Lớp:">
+<!ENTITY header1.label "Cấp 1">
+<!ENTITY header2.label "Cấp 2">
+<!ENTITY header3.label "Cấp 3">
+<!ENTITY header4.label "Cấp 4">
+<!ENTITY header5.label "Cấp 5">
+<!ENTITY header6.label "Cấp 6">
+<!ENTITY makeReadOnly.label "Tạo mục lục chỉ-đọc">
+<!ENTITY orderedList.label "Đánh số tất cả các mục trong mục lục">
diff --git a/l10n-vi/mail/chrome/messenger/messengercompose/EditorInsertTable.dtd b/l10n-vi/mail/chrome/messenger/messengercompose/EditorInsertTable.dtd
new file mode 100644
index 0000000000..5bf190007c
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/messengercompose/EditorInsertTable.dtd
@@ -0,0 +1,18 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- Window title -->
+<!ENTITY windowTitle.label "Chèn bảng">
+
+<!ENTITY size.label "Kích thước">
+<!ENTITY numRowsEditField.label "Hàng:">
+<!ENTITY numRowsEditField.accessKey "R">
+<!ENTITY numColumnsEditField.label "Cột:">
+<!ENTITY numColumnsEditField.accessKey "C">
+<!ENTITY widthEditField.label "Rộng:">
+<!ENTITY widthEditField.accessKey "W">
+<!ENTITY borderEditField.label "Viền:">
+<!ENTITY borderEditField.accessKey "B">
+<!ENTITY borderEditField.tooltip "Gõ một số để tạo đường viền bảng, hoặc gõ số không (0) để không tạo viền">
+<!ENTITY pixels.label "điểm ảnh">
diff --git a/l10n-vi/mail/chrome/messenger/messengercompose/EditorLinkProperties.dtd b/l10n-vi/mail/chrome/messenger/messengercompose/EditorLinkProperties.dtd
new file mode 100644
index 0000000000..8111779711
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/messengercompose/EditorLinkProperties.dtd
@@ -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/. -->
+
+<!ENTITY windowTitle.label "Thuộc tính liên kết">
+<!ENTITY LinkURLBox.label "Địa chỉ liên kết">
diff --git a/l10n-vi/mail/chrome/messenger/messengercompose/EditorListProperties.dtd b/l10n-vi/mail/chrome/messenger/messengercompose/EditorListProperties.dtd
new file mode 100644
index 0000000000..34204478e8
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/messengercompose/EditorListProperties.dtd
@@ -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/. -->
+
+
+<!-- Window title -->
+<!ENTITY windowTitle.label "Thuộc tính danh sách">
+
+<!ENTITY ListType.label "Kiểu danh sách">
+<!ENTITY bulletStyle.label "Kiểu Bullet:">
+<!ENTITY startingNumber.label "Bắt đầu từ:">
+<!ENTITY startingNumber.accessKey "S">
+<!ENTITY none.value "Không có">
+<!ENTITY bulletList.value "Danh sách Bullet (Không đánh số)">
+<!ENTITY numberList.value "Danh sách đánh số">
+<!ENTITY definitionList.value "Danh sách định nghĩa">
+<!ENTITY changeEntireListRadio.label "Thay đổi toàn bộ danh sách">
+<!ENTITY changeEntireListRadio.accessKey "C">
+<!ENTITY changeSelectedRadio.label "Chỉ thay đổi các mục được chọn">
+<!ENTITY changeSelectedRadio.accessKey "I">
diff --git a/l10n-vi/mail/chrome/messenger/messengercompose/EditorPersonalDictionary.dtd b/l10n-vi/mail/chrome/messenger/messengercompose/EditorPersonalDictionary.dtd
new file mode 100644
index 0000000000..d586c75f33
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/messengercompose/EditorPersonalDictionary.dtd
@@ -0,0 +1,18 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- Window title -->
+<!ENTITY windowTitle.label "Từ điển cá nhân">
+
+<!ENTITY wordEditField.label "Từ mới:">
+<!ENTITY wordEditField.accessKey "N">
+<!ENTITY AddButton.label "Thêm">
+<!ENTITY AddButton.accessKey "A">
+<!ENTITY DictionaryList.label "Các từ trong từ điển:">
+<!ENTITY DictionaryList.accessKey "W">
+<!ENTITY RemoveButton.label "Xóa">
+<!ENTITY RemoveButton.accessKey "e">
+
+<!ENTITY CloseButton.label "Đóng">
+<!ENTITY CloseButton.accessKey "C">
diff --git a/l10n-vi/mail/chrome/messenger/messengercompose/EditorReplace.dtd b/l10n-vi/mail/chrome/messenger/messengercompose/EditorReplace.dtd
new file mode 100644
index 0000000000..9766f32436
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/messengercompose/EditorReplace.dtd
@@ -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/. -->
+
+<!-- extracted from EdReplace.xul -->
+
+<!-- extracted from EdReplace.xhtml -->
+
+<!ENTITY replaceDialog.title "Tìm và thay thế">
+<!ENTITY findField.label "Tìm văn bản:">
+<!ENTITY findField.accesskey "n">
+<!ENTITY replaceField.label "Thay thế bằng:">
+<!ENTITY replaceField.accesskey "a">
+<!ENTITY caseSensitiveCheckbox.label "Phân biệt HOA-thường">
+<!ENTITY caseSensitiveCheckbox.accesskey "M">
+<!ENTITY wrapCheckbox.label "Bao lại xung quanh">
+<!ENTITY wrapCheckbox.accesskey "W">
+<!ENTITY backwardsCheckbox.label "Tìm kiếm ngược">
+<!ENTITY backwardsCheckbox.accesskey "b">
+<!ENTITY findNextButton.label "Tìm tiếp">
+<!ENTITY findNextButton.accesskey "F">
+<!ENTITY replaceButton.label "Thay thế">
+<!ENTITY replaceButton.accesskey "R">
+<!ENTITY replaceAndFindButton.label "Thay thế và tìm">
+<!ENTITY replaceAndFindButton.accesskey "d">
+<!ENTITY replaceAllButton.label "Thay thế tất cả">
+<!ENTITY replaceAllButton.accesskey "A">
+<!ENTITY closeButton.label "Đóng">
+<!ENTITY closeButton.accesskey "C">
diff --git a/l10n-vi/mail/chrome/messenger/messengercompose/EditorSpellCheck.dtd b/l10n-vi/mail/chrome/messenger/messengercompose/EditorSpellCheck.dtd
new file mode 100644
index 0000000000..3c017384cc
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/messengercompose/EditorSpellCheck.dtd
@@ -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/. -->
+
+<!-- Window title -->
+<!ENTITY windowTitle.label "Kiểm tra chính tả">
+
+<!ENTITY misspelledWord.label "Từ sai chính tả:">
+<!ENTITY wordEditField.label "Thay thế bằng:">
+<!ENTITY wordEditField.accessKey "w">
+<!ENTITY checkwordButton.label "Kiểm tra từ">
+<!ENTITY checkwordButton.accessKey "k">
+<!ENTITY suggestions.label "Đề xuất:">
+<!ENTITY suggestions.accessKey "u">
+<!ENTITY ignoreButton.label "Bỏ qua">
+<!ENTITY ignoreButton.accessKey "I">
+<!ENTITY ignoreAllButton.label "Bỏ qua tất cả">
+<!ENTITY ignoreAllButton.accessKey "n">
+<!ENTITY replaceButton.label "Thay thế">
+<!ENTITY replaceButton.accessKey "R">
+<!ENTITY replaceAllButton.label "Thay thế tất cả">
+<!ENTITY replaceAllButton.accessKey "A">
+<!ENTITY stopButton.label "Dừng">
+<!ENTITY stopButton.accessKey "o">
+<!ENTITY userDictionary.label "Từ điển cá nhân:">
+<!ENTITY moreDictionaries.label "Tải thêm từ điển…">
+<!ENTITY addToUserDictionaryButton.label "Thêm từ">
+<!ENTITY addToUserDictionaryButton.accessKey "d">
+<!ENTITY editUserDictionaryButton.label "Chỉnh sửa…">
+<!ENTITY editUserDictionaryButton.accessKey "C">
+<!ENTITY recheckButton2.label "Kiểm tra lại văn bản">
+<!ENTITY recheckButton2.accessKey "T">
+<!ENTITY closeButton.label "Đóng">
+<!ENTITY closeButton.accessKey "C">
+<!ENTITY sendButton.label "Gửi">
+<!ENTITY sendButton.accessKey "S">
+<!ENTITY languagePopup.label "Ngôn ngữ:">
+<!ENTITY languagePopup.accessKey "L">
diff --git a/l10n-vi/mail/chrome/messenger/messengercompose/EditorTableProperties.dtd b/l10n-vi/mail/chrome/messenger/messengercompose/EditorTableProperties.dtd
new file mode 100644
index 0000000000..1616736fc7
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/messengercompose/EditorTableProperties.dtd
@@ -0,0 +1,75 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY tableWindow.title "Thuộc tính bảng">
+<!ENTITY applyButton.label "Áp dụng">
+<!ENTITY applyButton.accesskey "A">
+<!ENTITY closeButton.label "Đóng">
+<!ENTITY tableTab.label "Bảng">
+<!ENTITY cellTab.label "Ô">
+<!ENTITY tableRows.label "Hàng:">
+<!ENTITY tableRows.accessKey "R">
+<!ENTITY tableColumns.label "Cột:">
+<!ENTITY tableColumns.accessKey "C">
+<!ENTITY tableHeight.label "Cao:">
+<!ENTITY tableHeight.accessKey "G">
+<!ENTITY tableWidth.label "Rộng:">
+<!ENTITY tableWidth.accessKey "W">
+<!ENTITY tableBorderSpacing.label "Viền và khoảng cách">
+<!ENTITY tableBorderWidth.label "Viền:">
+<!ENTITY tableBorderWidth.accessKey "V">
+<!ENTITY tableSpacing.label "Khoảng cách:">
+<!ENTITY tableSpacing.accessKey "S">
+<!ENTITY tablePadding.label "Khoảng đệm:">
+<!ENTITY tablePadding.accessKey "P">
+<!ENTITY tablePxBetwCells.label "điểm ảnh giữa các ô">
+<!ENTITY tablePxBetwBrdrCellContent.label "điểm ảnh giữa viền ô và nội dung">
+<!ENTITY tableAlignment.label "Căn chỉnh bảng:">
+<!ENTITY tableAlignment.accessKey "T">
+<!ENTITY tableCaption.label "Tiêu đề:">
+<!ENTITY tableCaption.accessKey "N">
+<!ENTITY tableCaptionAbove.label "Trên bảng">
+<!ENTITY tableCaptionBelow.label "Dưới bảng">
+<!ENTITY tableCaptionLeft.label "Bên trái bảng">
+<!ENTITY tableCaptionRight.label "Bên phải bảng">
+<!ENTITY tableCaptionNone.label "Không có">
+<!ENTITY tableInheritColor.label "(Để cho màu trang hiện xuyên suốt)">
+
+<!ENTITY cellSelection.label "Phần được chọn">
+<!ENTITY cellSelectCell.label "Ô">
+<!ENTITY cellSelectRow.label "Hàng">
+<!ENTITY cellSelectColumn.label "Cột">
+<!ENTITY cellSelectNext.label "Sau">
+<!ENTITY cellSelectNext.accessKey "N">
+<!ENTITY cellSelectPrevious.label "Trước">
+<!ENTITY cellSelectPrevious.accessKey "P">
+<!ENTITY applyBeforeChange.label "Thay đổi hiện tại sẽ được áp dụng sau khi thay đổi phần được chọn.">
+<!ENTITY cellContentAlignment.label "Căn chỉnh nội dung">
+<!ENTITY cellHorizontal.label "Ngang:">
+<!ENTITY cellHorizontal.accessKey "Z">
+<!ENTITY cellVertical.label "Dọc:">
+<!ENTITY cellVertical.accessKey "V">
+<!ENTITY cellStyle.label "Kiểu ô:">
+<!ENTITY cellStyle.accessKey "C">
+<!ENTITY cellNormal.label "Bình thường">
+<!ENTITY cellHeader.label "Header">
+<!ENTITY cellTextWrap.label "Ngắt dòng văn bản:">
+<!ENTITY cellTextWrap.accessKey "T">
+<!ENTITY cellWrap.label "Ngắt dòng">
+<!ENTITY cellNoWrap.label "Không ngắt dòng">
+<!ENTITY cellAlignTop.label "Trên cùng">
+<!ENTITY cellAlignMiddle.label "Giữa">
+<!ENTITY cellAlignBottom.label "Dưới cùng">
+<!ENTITY cellAlignJustify.label "Hai Bên">
+<!ENTITY cellInheritColor.label "(Để màu bảng hiện xuyên suốt)">
+<!ENTITY cellUseCheckboxHelp.label "Sử dụng hộp kiểm để xác định thuộc tính nào sẽ được áp dụng cho tất cả các ô được chọn">
+
+<!-- Used in both Table and Cell panels -->
+<!ENTITY size.label "Kích thước">
+<!ENTITY pixels.label "điểm ảnh">
+<!ENTITY backgroundColor.label "Màu nền:">
+<!ENTITY backgroundColor.accessKey "B">
+<!ENTITY AlignLeft.label "Trái">
+<!ENTITY AlignCenter.label "Giữa">
+<!ENTITY AlignRight.label "Phải">
diff --git a/l10n-vi/mail/chrome/messenger/messengercompose/askSendFormat.dtd b/l10n-vi/mail/chrome/messenger/messengercompose/askSendFormat.dtd
new file mode 100644
index 0000000000..7be991c8eb
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/messengercompose/askSendFormat.dtd
@@ -0,0 +1,21 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!--LOCALIZATION NOTE askSendFormat.dtd UI for dialog that asks the user, which format to use for sending a message -->
+<!ENTITY windowTitle.label "Câu hỏi Thư HTML">
+
+<!ENTITY recipient.label "Một số người nhận không được liệt kê là có khả năng nhận thư HTML.">
+
+<!ENTITY question.label "Bạn có muốn chuyển đổi thư thành dạng văn bản thuần hay vẫn gửi nó đi dưới dạng HTML?">
+
+<!ENTITY plainTextAndHtml.label "Gửi dạng Văn bản Thuần và HTML">
+<!ENTITY plainTextAndHtml.accesskey "d">
+<!ENTITY plainTextOnly.label "Chỉ gửi dạng Văn bản Thuần">
+<!ENTITY plainTextOnly.accesskey "V">
+<!ENTITY htmlOnly.label "Chỉ gửi dạng HTML">
+<!ENTITY htmlOnly.accesskey "H">
+
+<!ENTITY send.label "Gửi">
+<!ENTITY send.accesskey "G">
+
diff --git a/l10n-vi/mail/chrome/messenger/messengercompose/askSendFormat.properties b/l10n-vi/mail/chrome/messenger/messengercompose/askSendFormat.properties
new file mode 100644
index 0000000000..d8afadd243
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/messengercompose/askSendFormat.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/.
+
+convertibleYes=Thư của bạn có thể được chuyển đổi qua dạng văn bản thuần mà không bị mất thông tin.
+convertibleAltering=Thư của bạn có thể được chuyển đổi qua dạng văn bản thuần mà không bị mất thông tin. Tuy nhiên, phiên bản văn bản thuần có thể trông khác so với những gì bạn thấy trong trình soạn thảo.
+convertibleNo=Tuy nhiên, bạn đã dùng các cách thức định dạng (vd. màu chữ) và chúng sẽ không được chuyển đổi qua văn bản thuần.
+recommended=(khuyên dùng)
+
diff --git a/l10n-vi/mail/chrome/messenger/messengercompose/composeMsgs.properties b/l10n-vi/mail/chrome/messenger/messengercompose/composeMsgs.properties
new file mode 100644
index 0000000000..b675d93443
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/messengercompose/composeMsgs.properties
@@ -0,0 +1,429 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 are used by the compose back end
+#
+## LOCALIZATION NOTE (unableToOpenFile, unableToOpenTmpFile):
+## %S will be replaced with the name of file that could not be opened
+unableToOpenFile=Không thể mở tập tin %S.
+unableToOpenTmpFile=Không thể mở tập tin tạm thời %S. Hãy kiểm tra thiết lập 'Thư mục Tạm' của bạn.
+
+## LOCALIZATION NOTE (errorSendingFromCommand): argument %s is the Outgoing server (SMTP) response
+
+## LOCALIZATION NOTE (errorSendingDataCommand): argument %s is the Outgoing server (SMTP) response
+
+## LOCALIZATION NOTE (errorSendingMessage): argument %s is the Outgoing server (SMTP) response
+
+## LOCALIZATION NOTE (sendFailedUnexpected): argument %X is a hex error code value
+
+## LOCALIZATION NOTE (smtpSecurityIssue): argument %S is the Outgoing server (SMTP) response
+
+## LOCALIZATION NOTE (smtpServerError): argument %s is the Outgoing server (SMTP) response
+
+## LOCALIZATION NOTE (communicationsError): argument %d is the error code
+
+
+msgCancelling=Đang hủy bỏ…
+followupToSenderMessage=Tác giả của tin nhắn này đã yêu cầu rằng các câu trả lời chỉ được gửi cho tác giả. Nếu bạn cũng muốn trả lời nhóm tin tức, hãy thêm một hàng mới vào khu vực địa chỉ, chọn nhóm tin từ danh sách người nhận và nhập tên của nhóm tin.
+
+## LOCALIZATION NOTE (errorAttachingFile): argument %S is the file name/URI of the object to be attached
+
+## LOCALIZATION NOTE (incorrectSmtpGreeting): argument %s is the Outgoing server (SMTP) greeting
+
+## LOCALIZATION NOTE (errorSendingRcptCommand): argument %1$S is the Outgoing server (SMTP) response, argument %2$S is the intended message recipient.
+
+## LOCALIZATION NOTE (startTlsFailed): argument %S is the Outgoing server (SMTP)
+
+## LOCALIZATION NOTE (smtpPasswordUndefined): argument %S is the Outgoing server (SMTP) account
+
+## LOCALIZATION NOTE (smtpSendNotAllowed): argument %s is the Outgoing server (SMTP) response
+
+## LOCALIZATION NOTE (smtpTempSizeExceeded): argument %s is the Outgoing server (SMTP) response
+
+## LOCALIZATION NOTE (smtpClientid): argument %s is the Outgoing server (SMTP) response
+
+## LOCALIZATION NOTE (smtpClientidPermission): argument %s is the Outgoing server (SMTP) response
+
+## LOCALIZATION NOTE (smtpPermSizeExceeded1): argument %d is the Outgoing server (SMTP) size limit
+
+## LOCALIZATION NOTE (smtpPermSizeExceeded2): argument %s is the Outgoing server (SMTP) response
+
+## LOCALIZATION NOTE (smtpSendFailedUnknownServer): argument %S is the Outgoing server (SMTP)
+
+## LOCALIZATION NOTE (smtpSendRequestRefused): argument %S is the Outgoing server (SMTP)
+
+## LOCALIZATION NOTE (smtpSendInterrupted): argument %S is the Outgoing server (SMTP)
+
+## LOCALIZATION NOTE (smtpSendTimeout): argument %S is the Outgoing server (SMTP)
+
+## LOCALIZATION NOTE (smtpSendFailedUnknownReason): argument %S is the Outgoing server (SMTP)
+
+# LOCALIZATION NOTE (smtpHintAuthEncryptToPlainNoSsl): %S is the server hostname
+
+# LOCALIZATION NOTE (smtpHintAuthEncryptToPlainSsl): %S is the server hostname
+
+# LOCALIZATION NOTE (smtpHintAuthPlainToEncrypt): %S is the server hostname
+
+# LOCALIZATION NOTE (smtpAuthFailure): %S is the server hostname
+
+# LOCALIZATION NOTE (smtpAuthGssapi): %S is the server hostname
+
+# LOCALIZATION NOTE (smtpAuthMechNotSupported): %S is the server hostname
+
+# LOCALIZATION NOTE (errorIllegalLocalPart): %s is an email address with an illegal localpart
+
+## Strings used for the save message dialog shown when the user closes a message compose window
+saveDlogTitle=Lưu Thư
+
+## LOCALIZATION NOTE (saveDlogMessages3): Do not translate the words %1$S and \n.
+## %1$S is replaced by the folder name configured for saving drafts (typically the "Drafts" folder).
+## Translate "Write" to match the translation of item "windowTitleWrite" below.
+saveDlogMessages3=Lưu thư này vào thư mục nháp của bạn (%1$S) và đóng cửa sổ soạn thảo?
+discardButtonLabel=&Loại bỏ những thay đổi
+
+## generics string
+defaultSubject=(không tiêu đề)
+chooseFileToAttach=Đính kèm Tập tin
+genericFailureExplanation=Vui lòng xác minh rằng cài đặt tài khoản của bạn là chính xác và thử lại.
+
+## LOCALIZATION NOTE (undisclosedRecipients): this string must use only US_ASCII characters
+
+# LOCALIZATION NOTE (chooseFileToAttachViaCloud): %1$S is the cloud
+# provider to save the file to.
+chooseFileToAttachViaCloud=Đính kèm tập tin qua %1$S
+
+## Window titles
+# LOCALIZATION NOTE (windowTitleWrite):
+# %1$S is the message subject.
+# %2$S is the application name.
+# Example: Write: Re: Invitation - Thunderbird
+windowTitleWrite=Viết thư: %1$S - %2$S
+# LOCALIZATION NOTE (windowTitlePrintPreview):
+# %1$S is the message subject.
+# %2$S is the application name.
+# Example: Print Preview: Re: Invitation - Thunderbird
+windowTitlePrintPreview=Xem trước khi in: %1$S - %2$S
+
+## From field
+msgIdentityPlaceholder=Nhập tùy chỉnh từ địa chỉ sẽ được sử dụng thay vì %S
+customizeFromAddressTitle=Tùy chỉnh từ địa chỉ
+customizeFromAddressIgnore=Không bao giờ thông báo tôi về điều này lần nữa
+
+## Strings used by the empty subject dialog
+subjectEmptyTitle=Nhắc về Tiêu đề
+subjectEmptyMessage=Thư này chưa có tiêu đề.
+sendWithEmptySubjectButton=&Gửi thư Không có Tiêu đề
+cancelSendingButton=&Hủy việc gửi
+
+## Strings used by the dialog that informs about the lack of newsgroup support.
+noNewsgroupSupportTitle=Nhóm tin Không được Hỗ trợ
+recipientDlogMessage=Tài khoản này chỉ hỗ trợ người nhận email. Nếu tiếp tục thì sẽ bỏ qua nhóm tin.
+
+## Strings used by the alert that tells the user that an e-mail address is invalid.
+addressInvalidTitle=Địa chỉ Người nhận Không hợp lệ
+addressInvalid=%1$S không phải là một địa chỉ email hợp lệ vì nó không có dạng ngườidùng@tênmiền. Bạn phải sửa lại trước khi gửi e-mail.
+
+## String used by the dialog that asks the user to attach a web page
+attachPageDlogTitle=Vui lòng chọn địa chỉ để đính kèm
+attachPageDlogMessage=Trang Web (URL):
+
+## String used for attachment pretty name, when the attachment is a message
+messageAttachmentSafeName=Thư được Đính kèm
+
+## String used for attachment pretty name, when the attachment is a message part
+partAttachmentSafeName=Một phần Thư được Đính kèm
+
+# LOCALIZATION NOTE (attachmentBucketAttachFilesTooltip):
+# This tooltip should be same as attachFile.label in messengercompose.dtd,
+# but without ellipsis (…).
+attachmentBucketAttachFilesTooltip=Đính kèm tập tin
+attachmentBucketClearSelectionTooltip=Xóa lựa chọn
+attachmentBucketHeaderShowTooltip=Hiển thị ngăn đính kèm
+attachmentBucketHeaderMinimizeTooltip=Ẩn ngăn đính kèm
+attachmentBucketHeaderRestoreTooltip=Khôi phục ngăn đính kèm
+
+## String used by the Initialization Error dialog
+initErrorDlogTitle=Soạn thảo Thư
+initErrorDlgMessage=Một lỗi xảy ra trong khi đang tạo một cửa sổ soạn thư. Vui lòng thử lại.
+
+## String used if a file to attach does not exist when passed as
+## a command line argument
+errorFileAttachTitle=Đính kèm tập tin
+
+## LOCALIZATION NOTE (errorFileAttachMessage): %1$S will be replaced by the non-existent file name.
+errorFileAttachMessage=Tập tin %1$S không tồn tại nên không thể được đính kèm vào thư.
+
+## String used if a file to serve as message body does not exist or cannot be loaded when passed
+## as a command line argument
+
+## LOCALIZATION NOTE (errorFileMessageMessage): %1$S will be replaced by the non-existent file name.
+errorFileMessageMessage=Tập tin %1$S không tồn tại và không thể được sử dụng làm nội dung thư.
+
+## LOCALIZATION NOTE (errorLoadFileMessageMessage): %1$S will be replaced by the name of the file that can't be loaded.
+errorLoadFileMessageMessage=Không thể tải tập tin %1$S dưới dạng nội dung thư.
+
+## Strings used by the Save as Draft/Template dialog
+SaveDialogTitle=Lưu thư
+
+## LOCALIZATION NOTE (SaveDialogMsg): %1$S is the folder name, %2$S is the host name
+SaveDialogMsg=Thư của bạn đã được lưu vào thư mục %1$S dưới %2$S.
+CheckMsg=Không hiện lại hộp thoại này.
+
+## Strings used by the prompt when Quitting while in progress
+quitComposeWindowTitle=Đang gửi thư
+
+## LOCALIZATION NOTE (quitComposeWindowMessage2): don't translate \n
+quitComposeWindowMessage2=%1$S hiện đang trong quá trình gửi thư.\nBạn có muốn đợi cho đến khi thư được gửi xong rồi mới thoát hay thoát ngay bây giờ?
+quitComposeWindowQuitButtonLabel2=&Thoát
+quitComposeWindowWaitButtonLabel2=&Chờ đợi
+quitComposeWindowSaveTitle=Đang lưu thư
+
+## LOCALIZATION NOTE (quitComposeWindowSaveMessage): don't translate \n
+quitComposeWindowSaveMessage=%1$S hiện đang trong quá trình lưu thư.\nBạn có muốn đợi cho đến khi thư được lưu xong rồi mới thoát hay thoát ngay bây giờ?
+
+## Strings used by the prompt for Ctrl-Enter check before sending message
+sendMessageCheckWindowTitle=Gửi thư
+sendMessageCheckLabel=Bạn có chắc là bạn đã sẵn sàng gửi thư này không?
+sendMessageCheckSendButtonLabel=Gửi
+assemblingMessageDone=Tập hợp thư…Xong
+assemblingMessage=Tập hợp thư…
+smtpMailSent=Thư đã được gửi thành công
+assemblingMailInformation=Đang tập hợp thông tin thư…
+
+## LOCALIZATION NOTE (gatheringAttachment): argument %S is the file name/URI of attachment
+gatheringAttachment=Đang đính kèm %S…
+creatingMailMessage=Đang tạo thư…
+
+## LOCALIZATION NOTE (copyMessageStart): argument %S is the folder name
+copyMessageStart=Đang sao chép thư đến thư mục %S…
+copyMessageComplete=Sao chép hoàn tất.
+copyMessageFailed=Sao chép thất bại.
+filterMessageComplete=Đã lọc xong.
+filterMessageFailed=Có lỗi khi lọc.
+
+## LOCALIZATION NOTE (largeMessageSendWarning):
+## Do not translate %S. It is the size of the message in user-friendly notation.
+largeMessageSendWarning=Cảnh báo! Bạn sắp gửi một thư có kích thước %S. Bạn có chắc chắn muốn làm điều này?
+sendingMessage=Đang gửi thư…
+sendMessageErrorTitle=Lỗi khi gửi thư
+postingMessage=Đang xuất bản thư…
+sendLaterErrorTitle=Lỗi khi gửi sau
+saveDraftErrorTitle=Lỗi khi lưu bản nháp
+saveTemplateErrorTitle=Lỗi khi lưu mẫu
+
+## LOCALIZATION NOTE (failureOnObjectEmbeddingWhileSaving): argument %.200S is the file name/URI of object to be embedded
+failureOnObjectEmbeddingWhileSaving=Có một vấn đề bao gồm tập tin %.200S trong thư. Bạn có muốn tiếp tục lưu thư mà không có tập tin này?
+
+## LOCALIZATION NOTE (failureOnObjectEmbeddingWhileSending): argument %.200S is the file name/URI of object to be embedded
+failureOnObjectEmbeddingWhileSending=Có một vấn đề bao gồm tập tin %.200S trong thư. Bạn có muốn tiếp tục gửi thư mà không có tập tin này?
+returnToComposeWindowQuestion=Bạn có muốn quay lại cửa sổ soạn thảo?
+
+## reply header in composeMsg
+## LOCALIZATION NOTE (mailnews.reply_header_authorwrotesingle): #1 is the author (name of the person replying to)
+mailnews.reply_header_authorwrotesingle=#1 đã viết:
+
+## LOCALIZATION NOTE (mailnews.reply_header_ondateauthorwrote): #1 is the author, #2 is the date, #3 is the time
+mailnews.reply_header_ondateauthorwrote=Vào lúc #3 #2, #1 đã viết:
+
+## LOCALIZATION NOTE (mailnews.reply_header_authorwroteondate): #1 is the author, #2 is the date, #3 is the time
+mailnews.reply_header_authorwroteondate=#1 đã viết vào lúc #3 #2:
+
+## reply header in composeMsg
+## user specified
+mailnews.reply_header_originalmessage=-------- Thư gốc --------
+
+## forwarded header in composeMsg
+## user specified
+mailnews.forward_header_originalmessage=-------- Tin nhắn đã được chuyển tiếp --------
+
+## Strings used by the rename attachment dialog
+renameAttachmentTitle=Đổi tên đính kèm
+renameAttachmentMessage=Tên phần đính kèm mới:
+
+## Attachment Reminder
+## LOCALIZATION NOTE (mail.compose.attachment_reminder_keywords): comma separated
+## words that should trigger an attachment reminder.
+mail.compose.attachment_reminder_keywords=.doc,.pdf,.xls,.ppt,.rtf,.pps,attachment,attach,attached,attaching,enclosed,CV,cover letter
+
+addAttachmentButton=Thêm phần đính kèm…
+addAttachmentButton.accesskey=A
+remindLaterButton=Nhắc tôi sau
+remindLaterButton.accesskey=L
+disableAttachmentReminderButton=Vô hiệu hóa lời nhắc đính kèm cho thư hiện tại
+attachmentReminderTitle=Nhắc nhở đính kèm
+attachmentReminderMsg=Bạn có quên thêm phần đính kèm?
+
+# LOCALIZATION NOTE (attachmentReminderKeywordsMsgs): Semi-colon list of plural forms.
+# See: https://developer.mozilla.org/en/Localization_and_Plurals
+# #1 number of keywords
+attachmentReminderKeywordsMsgs=Đã tìm thấy #1 từ khóa đính kèm:
+attachmentReminderOptionsMsg=Lời nhắc nhở cho phần đính kèm có thể được thiết lập trong tùy chỉnh
+attachmentReminderYesIForgot=Oh, tôi đã làm!
+attachmentReminderFalseAlarm=Không, gửi ngay
+
+# Strings used by the Filelink offer notification bar.
+learnMore.label=Tìm hiểu thêm…
+learnMore.accesskey=m
+
+# LOCALIZATION NOTE (bigFileDescription): Semi-colon list of plural forms.
+# See: https://developer.mozilla.org/en/Localization_and_Plurals
+# #1 number of big attached files
+bigFileShare.label=Liên kết
+bigFileShare.accesskey=l
+bigFileAttach.label=Bỏ qua
+bigFileAttach.accesskey=i
+bigFileChooseAccount.title=Chọn tài khoản
+bigFileChooseAccount.text=Chọn một tài khoản đám mây để tải tệp đính kèm lên
+bigFileHideNotification.title=Không tải lên tập tin của tôi
+bigFileHideNotification.text=Bạn sẽ không được thông báo nếu bạn đính kèm nhiều tệp lớn hơn vào thư này.
+bigFileHideNotification.check=Không bao giờ thông báo tôi về điều này lần nữa.
+
+# LOCALIZATION NOTE(cloudFileUploadingTooltip): Do not translate the string
+# %S. %S is the display name for the cloud account the attachment is being
+# uploaded to.
+cloudFileUploadingTooltip=Đang tải lên vào %S…
+
+# LOCALIZATION NOTE(cloudFileUploadedTooltip): Do not translate the string
+# %S. %S is the display name for the cloud account the attachment was uploaded
+# to.
+cloudFileUploadedTooltip=Đã tải lên vào %S
+cloudFileUploadingCancel.label=Hủy bỏ
+cloudFileUploadingCancel.accesskey=c
+
+## LOCALIZATION NOTE(smtpEnterPasswordPrompt): Do not translate the
+## word %S. Place the word %S where the host name should appear.
+smtpEnterPasswordPrompt=Nhập mật khẩu cho %S:
+
+## LOCALIZATION NOTE(smtpEnterPasswordPromptWithUsername): Do not translate the
+## words %1$S and %2$S. Place the word %1$S where the host name should appear,
+## and %2$S where the user name should appear.
+smtpEnterPasswordPromptWithUsername=Nhập mật khẩu cho %2$S trên %1$S:
+
+## LOCALIZATION NOTE(smtpEnterPasswordPromptTitleWithHostname): Do not translate the
+## word %1$S. Place the word %1$S where the server host name should appear.
+
+# LOCALIZATION NOTE (removeAttachmentMsgs): Semi-colon list of plural forms.
+# See: https://developer.mozilla.org/en/Localization_and_Plurals
+removeAttachmentMsgs=Xóa (các) phần đính kèm
+
+## LOCALIZATION NOTE(promptToSaveSentLocally2): Do not translate the strings %1$S, %2$S, %3$S and \n.
+## %2$S will be replaced with the account name. $1$S will be replaced by the folder name
+## configured to contain saved sent messages (typically the "Sent" folder).
+## %3$S will be replaced with the local folders account name (typically "Local Folders").
+## Translate "Write" to match the translation of item "windowTitleWrite" above.
+errorFilteringMsg=Thư của bạn đã được gửi và lưu, nhưng đã xảy ra lỗi khi chạy các bộ lọc thư trên đó.
+errorCloudFileAuth.title=Lỗi khi xác thực
+
+## LOCALIZATION NOTE(promptToSaveDraftLocally2): Do not translate the strings %1$S, %2$S, %3$S and \n.
+## %2$S will be replaced with the account name. $1$S will be replaced by the folder name
+## configured to contain saved draft messages (typically the "Drafts" folder).
+## %3$S will be replaced with the local folders account name (typically "Local Folders").
+buttonLabelRetry2=&Thử lại
+
+## LOCALIZATION NOTE(promptToSaveTemplateLocally2): Do not translate the strings %1$S, %2$S, %3$S and \n.
+## %2$S will be replaced with the account name. $1$S will be replaced by the folder name
+## configured to contain saved templates (typically the "Templates" folder).
+## %3$S will be replaced with the local folders account name (typically "Local Folders").
+promptToSaveTemplateLocally2=Mẫu của bạn không được sao chép vào thư mục mẫu của bạn (%1$S) do lỗi truy cập mạng hoặc tập tin.\nBạn có thể thử lại hoặc lưu mẫu cục bộ vào %3$S/%1$S-%2$S.
+
+## LOCALIZATION NOTE(saveToLocalFoldersFailed): Message appears after normal
+## save fails (e.g., to Sent) and save to Local Folders also fails. This could
+## occur if network is down and filesystem problems are present such as disk
+## full, permission issues or hardware failure.
+saveToLocalFoldersFailed=Không thể lưu thư của bạn vào các thư mục địa phương. Có thể hết không gian trống để lưu trữ tập tin.
+
+## LOCALIZATION NOTE(errorCloudFileAuth.message):
+## %1$S is the name of the online storage service against which the authentication failed.
+errorCloudFileAuth.message=Không thể xác thực với %1$S.
+errorCloudFileUpload.title=Lỗi khi tải lên
+
+## LOCALIZATION NOTE(errorCloudFileUpload.message):
+## %1$S is the name of the online storage service against which the uploading failed.
+## %2$S is the name of the file that failed to upload.
+errorCloudFileUpload.message=Không thể tải %2$S lên %1$S.
+errorCloudFileQuota.title=Lỗi hạn mức
+
+## LOCALIZATION NOTE(errorCloudFileQuota.message):
+## %1$S is the name of the online storage service being uploaded to.
+## %2$S is the name of the file that could not be uploaded due to exceeding the storage limit.
+errorCloudFileQuota.message=Tải lên %2$S lên %1$S sẽ vượt quá dung lượng không gian trống của bạn.
+errorCloudFileNameLimit.title=Lỗi tên tập tin
+
+## LOCALIZATION NOTE(errorCloudFileNameLimit.message):
+## %1$S is the name of the online storage service being uploaded to.
+## %2$S is the name of the file that could not be uploaded due to the excess file name length
+errorCloudFileNameLimit.message=%2$S chứa hơn 120 ký tự trong tên của nó lớn hơn độ dài tên tập tin tối đa cho %1$S. Vui lòng đổi tên tập tin để có 120 ký tự hoặc ít hơn trong tên của nó và tải lên lại.
+errorCloudFileLimit.title=Lỗi kích thước tập tin
+
+## LOCALIZATION NOTE(errorCloudFileLimit.message):
+## %1$S is the name of the online storage service being uploaded to.
+## %2$S is the name of the file that could not be uploaded due to size restrictions.
+errorCloudFileLimit.message=%2$S vượt quá kích thước tối đa cho %1$S.
+errorCloudFileOther.title=Lỗi không xác định
+
+## LOCALIZATION NOTE(errorCloudFileOther.message):
+## %1$S is the name of the online storage service that cannot be communicated with.
+errorCloudFileOther.message=Đã xảy ra lỗi không xác định khi giao tiếp với %1$S.
+errorCloudFileDeletion.title=Lỗi khi xóa
+
+## LOCALIZATION NOTE(errorCloudFileDeletion.message):
+## %1$S is the name of the online storage service that the file is to be deleted from.
+## %2$S is the name of the file that failed to be deleted.
+errorCloudFileDeletion.message=Đã xảy ra sự cố khi xóa %2$S khỏi %1$S.
+errorCloudFileUpgrade.label=Nâng cấp
+
+## LOCALIZATION NOTE(cloudAttachmentCountHeader): A line of text describing how
+## many uploaded files have been appended to this message. Emphasis should be
+## on sharing as opposed to attaching. This item is used as a header to a list,
+## hence the colon. This header is only displayed in HTML emails.
+## Using PluralForm (so don't replace the #1).
+cloudAttachmentCountHeader=Tôi đã liên kết #1 tập tin với email này:
+
+## LOCALIZATION NOTE(cloudAttachmentListFooter): %1$S is a link, whose text
+## contents are the brandFullName of this application.
+cloudAttachmentListFooter=%1$S giúp dễ dàng chia sẻ các tập tin lớn qua email.
+
+## LOCALIZATION NOTE(cloudAttachmentListItem): A line of text describing a cloud
+## attachment to be inserted into the message body. Do not translate the words
+## %1$S, %2$S, %3$S, or %4$S. %1$S is the attachment name, %2$S is its size,
+## %3$S is the name of the cloud storage service, and %4$S is the link to the
+## attachment.
+cloudAttachmentListItem=* %1$S (%2$S) được lưu trữ trên %3$S: %4$S
+
+## LOCALIZATION NOTE(stopShowingUploadingNotification): This string is used in the Filelink
+## upload notification bar to allow the user to dismiss the notification permanently.
+stopShowingUploadingNotification.accesskey=N
+stopShowingUploadingNotification.label=Đừng hiển thị lại điều này
+replaceButton.label=Thay thế…
+replaceButton.accesskey=x
+replaceButton.tooltip=Hiển thị hộp thoại Tìm và thay thế
+
+## LOCALIZATION NOTE(blockedAllowResource): %S is the URL to load.
+blockedAllowResource=Bỏ chặn %S
+## LOCALIZATION NOTE (blockedContentMessage): Semi-colon list of plural forms.
+## See: https://developer.mozilla.org/en/docs/Localization_and_Plurals
+## %S will be replaced by brandShortName.
+## Files must be unblocked individually, therefore the plural form reads:
+## Unblocking a file (one of several) will include it (that one file) in your sent message.
+## In other words:
+## Unblocking one/several file(s) will include it/them in your message.
+blockedContentMessage=%S đã chặn một số tập tin tải vào thư này. Bỏ chặn tập tin sẽ bao gồm nó trong thư đã gửi của bạn.
+
+blockedContentPrefLabel=Tùy chọn
+blockedContentPrefAccesskey=O
+
+blockedContentPrefLabelUnix=Tùy chỉnh
+blockedContentPrefAccesskeyUnix=P
+
+## Identity matching warning notification bar.
+## LOCALIZATION NOTE(identityWarning): %S will be replaced with the identity name.
+
+## Recipient pills fields.
+## LOCALIZATION NOTE(confirmRemoveRecipientRowTitle2): %S will be replaced with the field name.
+## LOCALIZATION NOTE(confirmRemoveRecipientRowBody2): %S will be replaced with the field name.
+
+## LOCALIZATION NOTE headersSpaceStyle is for aligning label of a newly create recipient row.
+## It should be larger than the largest Header label and identical to &headersSpace2.style;
+
diff --git a/l10n-vi/mail/chrome/messenger/messengercompose/editor.properties b/l10n-vi/mail/chrome/messenger/messengercompose/editor.properties
new file mode 100644
index 0000000000..b66a546c69
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/messengercompose/editor.properties
@@ -0,0 +1,208 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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: embedded "\n" represent HTML breaks (<br>)
+# Don't translate embedded "\n".
+# Don't translate strings like this: %variable%
+# as they will be replaced using JavaScript
+#
+No=Không
+Save=Lưu
+More=Nhiều hơn
+Less=Ít hơn
+MoreProperties=Nhiều thuộc tính hơn
+FewerProperties=Ít thuộc tính hơn
+PropertiesAccessKey=P
+None=Không có
+none=không có
+OpenHTMLFile=Mở tập tin HTML
+OpenTextFile=Mở tập tin văn bản
+SelectImageFile=Chọn tập tin ảnh
+SaveDocument=Lưu trang
+SaveDocumentAs=Lưu trang dưới dạng
+SaveTextAs=Lưu văn bản dưới dạng
+EditMode=Chế độ chỉnh sửa
+Preview=Xem trước
+Publish=Xuất bản
+PublishPage=Xuất bản trang
+DontPublish=Không xuất bản
+SavePassword=Sử dụng trình quản lý mật khẩu để lưu mật khẩu này
+CorrectSpelling=(đúng chính tả)
+NoSuggestedWords=(không có từ gợi ý)
+NoMisspelledWord=Không có lỗi chính tả
+CheckSpellingDone=Kiểm tra chính tả hoàn tất.
+CheckSpelling=Kiểm tra chính tả
+InputError=Lỗi
+Alert=Cảnh báo
+CantEditFramesetMsg=Trình soạn thảo không thể mở các bộ khung HTML, hoặc các trang có khung nội bộ. Để soạn thảo bộ khung, hãy thử mở trang của các khung riêng rẽ. Để soạn thảo trang có khung nội bộ, hãy lưu một bản sao của trang và xóa thẻ <iframe>.
+CantEditMimeTypeMsg=Không thể chỉnh sửa loại trang này.
+CantEditDocumentMsg=Không thể chỉnh sửa trang này vì không rõ lí do.
+BeforeClosing=trước khi đóng
+BeforePreview=trước khi xem trong trình duyệt
+BeforeValidate=trước khi kiểm định tài liệu
+# LOCALIZATION NOTE (SaveFilePrompt, PublishPrompt): Don't translate %title% and %reason% (this is the reason for asking user to close, such as "before closing")
+SaveFilePrompt=Bạn có muốn lưu các thay đổi trong “%title%” %reason%?
+PublishPrompt=Bạn có muốn lưu các thay đổi trong “%title%” %reason%?
+SaveFileFailed=Lưu tập tin thất bại!
+
+# Publishing error strings:
+# LOCALIZATION NOTE Don't translate %dir% or %file% in the Publishing error strings:
+FileNotFound=Không tìm thấy %file%.
+SubdirDoesNotExist=Thư mục con "%dir%" không tồn tại trên trang này hoặc tên tệp "%file%" đã được sử dụng bởi thư mục con khác.
+FilenameIsSubdir=Tên tập tin “%file%” đã được sử dụng bởi một thư mục con khác.
+ServerNotAvailable=Máy chủ không có sẵn. Kiểm tra kết nối của bạn và thử lại sau.
+Offline=Bạn hiện đang ngoại tuyến. Hãy nhấn biểu tượng gần góc dưới bên phải của bất kì cửa sổ nào để trực tuyến.
+DiskFull=Không đủ dung lượng trống trên đĩa để lưu tập tin "%file%."
+NameTooLong=Tên tệp hoặc tên thư mục con quá dài.
+AccessDenied=Bạn không có quyền xuất bản đến vị trí này.
+UnknownPublishError=Xảy ra lỗi xuất bản không rõ lí do.
+PublishFailed=Xuất bản thất bại.
+PublishCompleted=Xuất bản đã hoàn tất.
+AllFilesPublished=Đã xuất bản các tập tin
+# LOCALIZATION NOTE Don't translate %x% or %total%
+FailedFileMsg=%x% của %total% tập tin không thể xuất bản.
+# End-Publishing error strings
+Prompt=Lời nhắc
+# LOCALIZATION NOTE (PromptFTPUsernamePassword): Don't translate %host%
+PromptFTPUsernamePassword=Hãy nhập tên người dùng và mật khẩu cho máy chủ FTP ở %host%
+RevertCaption=Hoàn nguyên về lần lưu cuối cùng
+Revert=Hoàn nguyên
+SendPageReason=trước khi gửi trang này
+Send=Gửi
+## LOCALIZATION NOTE (PublishProgressCaption, PublishToSite, AbandonChanges): Don't translate %title%
+PublishProgressCaption=Đang xuất bản: %title%
+PublishToSite=Đang xuất bản lên trang: %title%
+AbandonChanges=Bạn có muốn từ bỏ những thay đổi chưa lưu của “%title%” và tải lại trang?
+DocumentTitle=Tiêu đề trang
+NeedDocTitle=Vui lòng nhập một tiêu đề cho trang hiện tại.
+DocTitleHelp=Tiêu đề sẽ hiện ra ở thanh tiêu đề của cửa sổ và trang đánh dấu.
+CancelPublishTitle=Hủy bỏ việc xuất bản?
+## LOCALIZATION NOTE: "Continue" in this sentence must match the text for
+## the CancelPublishContinue key below
+CancelPublishMessage=Hủy bỏ trong khi đang xuất bản có thể khiến tập tin của bạn không được truyền đầy đủ. Bạn muốn Tiếp tục hay Hủy bỏ?
+CancelPublishContinue=Tiếp tục
+MissingImageError=Xin hãy nhập hay chọn hình ở dạng GIF, JPEG, hoặc PNG.
+EmptyHREFError=Xin hãy chọn địa chỉ để tạo liên kết mới.
+LinkText=Liên kết văn bản
+LinkImage=Liên kết ảnh
+MixedSelection=[Lựa chọn Hỗn hợp]
+Mixed=(hỗn hợp)
+# LOCALIZATION NOTE (NotInstalled): %S is the name of the font
+NotInstalled=%S (chưa cài đặt)
+EnterLinkText=Nhập văn bản để hiển thị trong liên kết:
+EnterLinkTextAccessKey=T
+EmptyLinkTextError=Xin hãy nhập văn bản cho liên kết này.
+EditTextWarning=Nội dung hiện có sẽ được thay thế.
+#LOCALIZATION NOTE (ValidateNumber):Don't translate: %n% %min% %max%
+ValidateRangeMsg=Số bạn đã nhập (%n%) nằm ở ngoài khoảng cho phép.
+ValidateNumberMsg=Xin hãy nhập số giữa %min% và %max%.
+MissingAnchorNameError=Xin hãy nhập tên cho mỏ neo này.
+#LOCALIZATION NOTE (DuplicateAnchorNameError): Don't translate %name%
+DuplicateAnchorNameError="%name%" đã tồn tại trong trang này. Vui lòng nhập một tên khác.
+BulletStyle=Kiểu Bullet
+SolidCircle=Vòng tròn tô đậm
+OpenCircle=Vòng tròn trống
+SolidSquare=Hình vuông tô đậm
+NumberStyle=Kiểu đánh số
+Automatic=Tự động
+Style_1=1, 2, 3…
+Style_I=I, II, III…
+Style_i=i, ii, iii…
+Style_A=A, B, C…
+Style_a=a, b, c…
+Pixels=điểm ảnh
+Percent=phần trăm
+PercentOfCell=% ô
+PercentOfWindow=% cửa sổ
+PercentOfTable=% bảng
+#LOCALIZATION NOTE (untitledTitle): %S is the window #. No plural handling needed.
+untitledTitle=không-tên-%S
+untitledDefaultFilename=không-tên
+ShowToolbar=Hiển thị thanh công cụ
+HideToolbar=Ẩn thanh công cụ
+ImapError=Không thể tải ảnh
+ImapCheck=\nXin hãy chọn địa chỉ (URL) mới và thử lại.
+SaveToUseRelativeUrl=Chỉ có thể sử dụng các URL tương đối trong các trang được lưu
+NoNamedAnchorsOrHeadings=(Trang này không có mỏ neo hoặc đầu đề)
+TextColor=Màu chữ
+HighlightColor=Màu tô sáng
+PageColor=Màu nền trang
+BlockColor=Màu nền khối
+TableColor=Màu nền bảng
+CellColor=Màu nền ô
+TableOrCellColor=Màu bảng hoặc ô
+LinkColor=Màu liên kết văn bản
+ActiveLinkColor=Màu liên kết kích hoạt
+VisitedLinkColor=Màu liên kết đã truy cập
+NoColorError=Nhấp vào màu hoặc nhập chuỗi màu HTML hợp lệ
+Table=Bảng
+TableCell=Ô bảng
+NestedTable=Bảng lồng nhau
+HLine=Đường ngang
+Link=Liên kết
+Image=Hình
+ImageAndLink=Ảnh và liên kết
+NamedAnchor=Mỏ neo
+List=Danh sách
+ListItem=Danh sách mục
+Form=Biểu mẫu
+InputTag=Trường biểu mẫu
+InputImage=Hình biểu mẫu
+TextArea=Vùng văn bản
+Select=Danh sách chọn
+Button=Nút
+Label=Nhãn
+FieldSet=Bộ trường
+Tag=Nhãn
+MissingSiteNameError=Vui lòng nhập tên để xuất bản trang web này.
+MissingPublishUrlError=Vui lòng nhập vị trí để xuất bản trang này.
+MissingPublishFilename=Vui lòng nhập tên tập tin cho trang hiện tại.
+#LOCALIZATION NOTE (DuplicateSiteNameError): Don't translate %name%
+DuplicateSiteNameError="%name%" đã tồn tại. Vui lòng nhập một tên khác.
+AdvancedProperties=Thuộc tính nâng cao…
+AdvancedEditForCellMsg=Chỉnh sửa nâng cao không khả dụng khi nhiều ô được chọn
+# LOCALIZATION NOTE (ObjectProperties):Don't translate "%obj%" it will be replaced with one of above object nouns
+ObjectProperties=Thuộc tính %obj%…
+# LOCALIZATION NOTE This character must be in the above string and not conflict with other accesskeys in Format menu
+ObjectPropertiesAccessKey=o
+# LOCALIZATION NOTE (JoinSelectedCells): This variable should contain the "tableJoinCells.accesskey"
+# letter as defined in editorOverlay.dtd
+JoinSelectedCells=Hợp nhất các ô được chọn
+# LOCALIZATION NOTE (JoinCellToRight): This variable should contain the "tableJoinCells.accesskey"
+# letter as defined in editorOverlay.dtd
+JoinCellToRight=Hợp nhất với ô bên phải
+JoinCellAccesskey=j
+# LOCALIZATION NOTE (TableSelectKey): Ctrl key on a keyboard
+TableSelectKey=Ctrl+
+# LOCALIZATION NOTE (XulKeyMac): Command key on a Mac keyboard
+XulKeyMac=Cmd+
+# LOCALIZATION NOTE (Del): Del key on a keyboard
+Del=Del
+Delete=Xóa
+DeleteCells=Xóa các ô
+DeleteTableTitle=Xóa các hàng hoặc cột
+DeleteTableMsg=Nếu xóa hàng hay cột thì sẽ xóa những ô (và nội dung trong đó) thuộc hàng hay cột đó. Bạn có chắc muốn làm vậy không?
+Clear=Xóa trắng
+#Mouse actions
+Click=Nhấp
+Drag=Kéo
+Unknown=Không rõ
+#
+# LOCALIZATION NOTE "RemoveTextStylesAccesskey" is used for both
+# menu items: "RemoveTextStyles" and "StopTextStyles"
+RemoveTextStylesAccesskey=x
+RemoveTextStyles=Xóa tất cả các kiểu văn bản
+StopTextStyles=Ngừng kiểu văn bản
+#
+# LOCALIZATION NOTE "RemoveLinksAccesskey" is used for both
+# menu items: "RemoveLinks" and "StopLinks"
+RemoveLinksAccesskey=n
+RemoveLinks=Xóa liên kết
+StopLinks=Ngừng liên kết
+#
+NoFormAction=Bạn nên nhập một hành động cho biểu mẫu này. Biểu mẫu tự đệ trình dùng một kĩ thuật nâng cao, và có thể không hoạt động giống nhau trong các trình duyệt.
+NoAltText=Nếu hình này có liên quan đến nội dung của tài liệu, bạn cần phải cung cấp văn bản thay thế để hiển thị trong những trình duyệt văn-bản-thuần, và cũng để hiển thị khi hình đang được tải hoặc khi việc tải hình bị vô hiệu hóa.
+#
+Malformed=Nguồn không thể được chuyển đổi lại thành tài liệu vì nó không phải là XHTML hợp lệ.
+NoLinksToCheck=Không có phần tử chứa liên kết để kiểm tra
diff --git a/l10n-vi/mail/chrome/messenger/messengercompose/editorOverlay.dtd b/l10n-vi/mail/chrome/messenger/messengercompose/editorOverlay.dtd
new file mode 100644
index 0000000000..ea8c0b8039
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/messengercompose/editorOverlay.dtd
@@ -0,0 +1,303 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- Attn: Localization - some of the menus in this dialog directly affect mail also. -->
+
+<!-- Edit menu items -->
+<!ENTITY pasteNoFormatting.label "Dán mà không cần định dạng">
+<!ENTITY pasteNoFormatting.accesskey "n">
+<!ENTITY pasteNoFormatting.key "V">
+<!ENTITY pasteAsQuotationCmd.label "Dán dưới dạng trích dẫn">
+<!ENTITY pasteAsQuotationCmd.accesskey "Q">
+
+<!-- Insert menu items -->
+<!ENTITY insertMenu.label "Chèn">
+<!ENTITY insertMenu.accesskey "I">
+<!ENTITY insertLinkCmd2.label "Liên kết…">
+<!ENTITY insertLinkCmd2.accesskey "L">
+<!ENTITY insertLinkCmd2.key "K">
+<!ENTITY insertAnchorCmd.label "Mỏ neo…">
+<!ENTITY insertAnchorCmd.accesskey "A">
+<!ENTITY insertImageCmd.label "Hình…">
+<!ENTITY insertImageCmd.accesskey "I">
+<!ENTITY insertHLineCmd.label "Đường ngang">
+<!ENTITY insertHLineCmd.accesskey "o">
+<!ENTITY insertTableCmd.label "Bảng…">
+<!ENTITY insertTableCmd.accesskey "T">
+<!ENTITY insertHTMLCmd.label "HTML…">
+<!ENTITY insertHTMLCmd.accesskey "H">
+<!ENTITY insertMathCmd.label "Toán học…">
+<!ENTITY insertMathCmd.accesskey "M">
+<!ENTITY insertCharsCmd.label "Kí hiệu và biểu tượng…">
+<!ENTITY insertCharsCmd.accesskey "C">
+<!ENTITY insertBreakAllCmd.label "Ngắt đoạn sau (các) hình">
+<!ENTITY insertBreakAllCmd.accesskey "k">
+
+<!-- Used just in context popup. -->
+<!ENTITY createLinkCmd.label "Tạo liên kết…">
+<!ENTITY createLinkCmd.accesskey "k">
+<!ENTITY editLinkCmd.label "Chỉnh sửa liên kết trong trình soạn thảo mới">
+<!ENTITY editLinkCmd.accesskey "i">
+
+<!-- Font Face SubMenu -->
+<!ENTITY FontFaceSelect.tooltip "Chọn phông chữ">
+<!ENTITY fontfaceMenu.label "Phông chữ">
+<!ENTITY fontfaceMenu.accesskey "F">
+<!ENTITY fontVarWidth.label "Chiều rộng thay đổi">
+<!ENTITY fontVarWidth.accesskey "V">
+<!ENTITY fontFixedWidth.label "Chiều rộng cố định">
+<!ENTITY fontFixedWidth.accesskey "x">
+<!ENTITY fontFixedWidth.key "T">
+<!ENTITY fontHelvetica.label "Helvetica, Arial">
+<!ENTITY fontHelvetica.accesskey "l">
+<!ENTITY fontTimes.label "Times">
+<!ENTITY fontTimes.accesskey "T">
+<!ENTITY fontCourier.label "Courier">
+<!ENTITY fontCourier.accesskey "C">
+
+<!-- Font Size SubMenu -->
+<!ENTITY FontSizeSelect.tooltip "Chọn cỡ chữ">
+<!ENTITY decreaseFontSize.label "Nhỏ hơn">
+<!ENTITY decreaseFontSize.accesskey "r">
+<!ENTITY decrementFontSize.key "&lt;">
+<!ENTITY decrementFontSize.key2 ","> <!-- < is above this key on many keyboards -->
+<!ENTITY increaseFontSize.label "Lớn hơn">
+<!ENTITY increaseFontSize.accesskey "g">
+<!ENTITY incrementFontSize.key "&gt;">
+<!ENTITY incrementFontSize.key2 "."> <!-- > is above this key on many keyboards -->
+
+<!ENTITY fontSizeMenu.label "Cỡ chữ">
+<!ENTITY fontSizeMenu.accesskey "z">
+<!ENTITY size-tinyCmd.label "Rất nhỏ">
+<!ENTITY size-tinyCmd.accesskey "T">
+<!ENTITY size-smallCmd.label "Nhỏ">
+<!ENTITY size-smallCmd.accesskey "S">
+<!ENTITY size-mediumCmd.label "Trung bình">
+<!ENTITY size-mediumCmd.accesskey "M">
+<!ENTITY size-largeCmd.label "Lớn">
+<!ENTITY size-largeCmd.accesskey "L">
+<!ENTITY size-extraLargeCmd.label "Rất lớn">
+<!ENTITY size-extraLargeCmd.accesskey "x">
+<!ENTITY size-hugeCmd.label "Siêu lớn">
+<!ENTITY size-hugeCmd.accesskey "H">
+
+<!-- Font Style SubMenu -->
+<!ENTITY fontStyleMenu.label "Kiểu chữ">
+<!ENTITY fontStyleMenu.accesskey "S">
+<!ENTITY styleBoldCmd.label "Đậm">
+<!ENTITY styleBoldCmd.accesskey "B">
+<!ENTITY styleBoldCmd.key "B">
+<!ENTITY styleItalicCmd.label "Nghiêng">
+<!ENTITY styleItalicCmd.accesskey "I">
+<!ENTITY styleItalicCmd.key "I">
+<!ENTITY styleUnderlineCmd.label "Gạch dưới">
+<!ENTITY styleUnderlineCmd.accesskey "U">
+<!ENTITY styleUnderlineCmd.key "U">
+<!ENTITY styleStrikeThruCmd.label "Gạch ngang">
+<!ENTITY styleStrikeThruCmd.accesskey "k">
+<!ENTITY styleSuperscriptCmd.label "Chữ nhỏ bên trên">
+<!ENTITY styleSuperscriptCmd.accesskey "p">
+<!ENTITY styleSubscriptCmd.label "Chữ nhỏ bên dưới">
+<!ENTITY styleSubscriptCmd.accesskey "S">
+<!ENTITY styleNonbreakingCmd.label "Không ngắt dòng">
+<!ENTITY styleNonbreakingCmd.accesskey "N">
+<!ENTITY styleEm.label "Nhấn mạnh">
+<!ENTITY styleEm.accesskey "E">
+<!ENTITY styleStrong.label "Nhấn mạnh hơn">
+<!ENTITY styleStrong.accesskey "t">
+<!ENTITY styleCite.label "Nguồn trích dẫn">
+<!ENTITY styleCite.accesskey "C">
+<!ENTITY styleAbbr.label "Viết tắt">
+<!ENTITY styleAbbr.accesskey "A">
+<!ENTITY styleAcronym.label "Viết tắt chữ cái đầu">
+<!ENTITY styleAcronym.accesskey "r">
+<!ENTITY styleCode.label "Đoạn mã">
+<!ENTITY styleCode.accesskey "o">
+<!ENTITY styleSamp.label "Ví dụ mẫu">
+<!ENTITY styleSamp.accesskey "m">
+<!ENTITY styleVar.label "Biến">
+<!ENTITY styleVar.accesskey "V">
+
+<!ENTITY formatFontColor.label "Màu chữ…">
+<!ENTITY formatFontColor.accesskey "C">
+<!ENTITY tableOrCellColor.label "Màu nền bảng hoặc ô…">
+<!ENTITY tableOrCellColor.accesskey "B">
+
+<!ENTITY formatRemoveStyles.key "Y">
+<!ENTITY formatRemoveLinks.key "K">
+<!ENTITY formatRemoveNamedAnchors.label "Xóa mỏ neo">
+<!ENTITY formatRemoveNamedAnchors.accesskey "R">
+<!ENTITY formatRemoveNamedAnchors2.key "R">
+
+<!ENTITY paragraphMenu.label "Đoạn văn">
+<!ENTITY paragraphMenu.accesskey "P">
+<!ENTITY paragraphParagraphCmd.label "Đoạn văn">
+<!ENTITY paragraphParagraphCmd.accesskey "P">
+<!ENTITY heading1Cmd.label "Đầu đề cấp 1">
+<!ENTITY heading1Cmd.accesskey "1">
+<!ENTITY heading2Cmd.label "Đầu đề cấp 2">
+<!ENTITY heading2Cmd.accesskey "2">
+<!ENTITY heading3Cmd.label "Đầu đề cấp 3">
+<!ENTITY heading3Cmd.accesskey "3">
+<!ENTITY heading4Cmd.label "Đầu đề cấp 4">
+<!ENTITY heading4Cmd.accesskey "4">
+<!ENTITY heading5Cmd.label "Đầu đề cấp 5">
+<!ENTITY heading5Cmd.accesskey "5">
+<!ENTITY heading6Cmd.label "Đầu đề cấp 6">
+<!ENTITY heading6Cmd.accesskey "6">
+<!ENTITY paragraphAddressCmd.label "Địa chỉ">
+<!ENTITY paragraphAddressCmd.accesskey "A">
+<!ENTITY paragraphPreformatCmd.label "Định dạng sẵn">
+<!ENTITY paragraphPreformatCmd.accesskey "f">
+
+<!-- List menu items -->
+<!ENTITY formatlistMenu.label "Danh sách">
+<!ENTITY formatlistMenu.accesskey "L">
+<!ENTITY noneCmd.label "Không có">
+<!ENTITY noneCmd.accesskey "K">
+<!ENTITY listBulletCmd.label "Gạch đầu dòng">
+<!ENTITY listBulletCmd.accesskey "B">
+<!ENTITY listNumberedCmd.label "Được đánh số">
+<!ENTITY listNumberedCmd.accesskey "m">
+<!ENTITY listTermCmd.label "Thuật ngữ">
+<!ENTITY listTermCmd.accesskey "T">
+<!ENTITY listDefinitionCmd.label "Định nghĩa">
+<!ENTITY listDefinitionCmd.accesskey "D">
+<!ENTITY listPropsCmd.label "Danh sách thuộc tính…">
+<!ENTITY listPropsCmd.accesskey "L">
+
+<!ENTITY ParagraphSelect.tooltip "Chọn một định dạng đoạn văn">
+<!-- Shared in Paragraph, and Toolbar menulist -->
+<!ENTITY bodyTextCmd.label "Nội dung">
+<!ENTITY bodyTextCmd.accesskey "T">
+
+<!-- Align menu items -->
+<!ENTITY alignMenu.label "Căn chỉnh">
+<!ENTITY alignMenu.accesskey "A">
+<!ENTITY alignLeft.label "Trái">
+<!ENTITY alignLeft.accesskey "L">
+<!ENTITY alignLeft.tooltip "Căn trái">
+<!ENTITY alignCenter.label "Giữa">
+<!ENTITY alignCenter.accesskey "C">
+<!ENTITY alignCenter.tooltip "Căn giữa">
+<!ENTITY alignRight.label "Phải">
+<!ENTITY alignRight.accesskey "R">
+<!ENTITY alignRight.tooltip "Căn phải">
+<!ENTITY alignJustify.label "Hai bên">
+<!ENTITY alignJustify.accesskey "J">
+<!ENTITY alignJustify.tooltip "Căn hai bên">
+
+<!ENTITY increaseIndent.label "Tăng lề">
+<!ENTITY increaseIndent.accesskey "I">
+<!ENTITY increaseIndent.key "]">
+<!ENTITY decreaseIndent.label "Giảm lề">
+<!ENTITY decreaseIndent.accesskey "D">
+<!ENTITY decreaseIndent.key "[">
+
+<!ENTITY colorsAndBackground.label "Nền và màu trang…">
+<!ENTITY colorsAndBackground.accesskey "u">
+
+<!-- Table Menu -->
+<!ENTITY tableMenu.label "Bảng">
+<!ENTITY tableMenu.accesskey "b">
+
+<!-- Select Submenu -->
+<!ENTITY tableSelectMenu.label "Chọn">
+<!ENTITY tableSelectMenu.accesskey "S">
+
+<!ENTITY tableSelectMenu2.label "Chọn bảng">
+<!ENTITY tableSelectMenu2.accesskey "S">
+<!ENTITY tableInsertMenu2.label "Chèn bảng">
+<!ENTITY tableInsertMenu2.accesskey "I">
+<!ENTITY tableDeleteMenu2.label "Xóa bảng">
+<!ENTITY tableDeleteMenu2.accesskey "D">
+
+<!-- Insert SubMenu -->
+<!ENTITY tableInsertMenu.label "Chèn">
+<!ENTITY tableInsertMenu.accesskey "I">
+<!ENTITY tableTable.label "Bảng">
+<!ENTITY tableTable.accesskey "T">
+<!ENTITY tableRow.label "Hàng">
+<!ENTITY tableRows.label "Các hàng">
+<!ENTITY tableRow.accesskey "R">
+<!ENTITY tableRowAbove.label "Hàng trên">
+<!ENTITY tableRowAbove.accesskey "R">
+<!ENTITY tableRowBelow.label "Hàng dưới">
+<!ENTITY tableRowBelow.accesskey "B">
+<!ENTITY tableColumn.label "Cột">
+<!ENTITY tableColumns.label "Các cột">
+<!ENTITY tableColumn.accesskey "o">
+<!ENTITY tableColumnBefore.label "Cột trước">
+<!ENTITY tableColumnBefore.accesskey "o">
+<!ENTITY tableColumnAfter.label "Cột sau">
+<!ENTITY tableColumnAfter.accesskey "A">
+<!ENTITY tableCell.label "Ô">
+<!ENTITY tableCells.label "Các ô">
+<!ENTITY tableCell.accesskey "C">
+<!ENTITY tableCellContents.label "Nội dung ô">
+<!ENTITY tableCellContents.accesskey "n">
+<!ENTITY tableAllCells.label "Tất cả các ô">
+<!ENTITY tableAllCells.accesskey "A">
+<!ENTITY tableCellBefore.label "Ô trước">
+<!ENTITY tableCellBefore.accesskey "C">
+<!ENTITY tableCellAfter.label "Ô sau">
+<!ENTITY tableCellAfter.accesskey "f">
+<!-- Delete SubMenu -->
+<!ENTITY tableDeleteMenu.label "Xóa">
+<!ENTITY tableDeleteMenu.accesskey "D">
+
+<!-- text for "Join Cells" is in editor.properties
+ ("JoinSelectedCells" and "JoinCellToRight")
+ the access key must exist in both of those strings
+ But value must be set here for accesskey to draw properly
+-->
+<!ENTITY tableJoinCells.label "j">
+<!ENTITY tableJoinCells.accesskey "j">
+<!ENTITY tableSplitCell.label "Chia ô">
+<!ENTITY tableSplitCell.accesskey "C">
+<!ENTITY convertToTable.label "Tạo bảng từ phần đã chọn">
+<!ENTITY convertToTable.accesskey "r">
+<!ENTITY tableProperties.label "Thuộc tính bảng…">
+<!ENTITY tableProperties.accesskey "o">
+
+<!ENTITY imageToolbarCmd.label "Hình">
+<!ENTITY imageToolbarCmd.tooltip "Chèn hình mới hoặc chỉnh sửa thuộc tính của hình">
+<!ENTITY hruleToolbarCmd.label "Đ.Ngang">
+<!ENTITY hruleToolbarCmd.tooltip "Chèn đường kẻ ngang hoặc chỉnh sửa thuộc tính của đường kẻ">
+<!ENTITY tableToolbarCmd.label "Bảng">
+<!ENTITY tableToolbarCmd.tooltip "Chèn bảng mới hoặc chỉnh sửa thuộc tính của bảng">
+<!ENTITY linkToolbarCmd.label "Liên kết">
+<!ENTITY linkToolbarCmd.tooltip "Chèn liên kết mới hoặc chỉnh sửa thuộc tính của liên kết đã chọn">
+<!ENTITY anchorToolbarCmd.label "Mỏ neo">
+<!ENTITY anchorToolbarCmd.tooltip "Chèn neo mới hoặc chỉnh sửa thuộc tính của neo được chọn">
+<!ENTITY TextColorButton.tooltip "Chọn màu chữ">
+<!ENTITY BackgroundColorButton.tooltip "Chọn màu nền">
+
+<!-- Editor toolbar -->
+<!ENTITY absoluteFontSizeToolbarCmd.tooltip "Đặt cỡ chữ">
+<!ENTITY decreaseFontSizeToolbarCmd.tooltip "Cỡ chữ nhỏ hơn">
+<!ENTITY increaseFontSizeToolbarCmd.tooltip "Cỡ chữ lớn hơn">
+<!ENTITY boldToolbarCmd.tooltip "Đậm">
+<!ENTITY italicToolbarCmd.tooltip "Nghiêng">
+<!ENTITY underlineToolbarCmd.tooltip "Gạch dưới">
+<!ENTITY bulletListToolbarCmd.tooltip "Áp dụng hoặc xóa danh sách bullet">
+<!ENTITY numberListToolbarCmd.tooltip "Áp dụng hoặc xóa danh sách số">
+<!ENTITY outdentToolbarCmd.tooltip "Giảm lề văn bản (chuyển trái)">
+<!ENTITY indentToolbarCmd.tooltip "Tăng lề văn bản (chuyển phải)">
+<!ENTITY AlignPopupButton.tooltip "Chọn cách căn văn bản">
+<!ENTITY InsertPopupButton.tooltip "Chèn một liên kết, neo, hình ảnh, đường ngang hoặc bảng">
+<!ENTITY alignLeftButton.tooltip "Căn theo lề trái">
+<!ENTITY alignCenterButton.tooltip "Căn vào giữa">
+<!ENTITY alignRightButton.tooltip "Căn theo lề phải">
+<!ENTITY alignJustifyButton.tooltip "Căn theo hai bên lề">
+
+<!-- TOC manipulation -->
+<!ENTITY insertTOC.label "Chèn">
+<!ENTITY insertTOC.accesskey "i">
+<!ENTITY updateTOC.label "Cập nhật">
+<!ENTITY updateTOC.accesskey "u">
+<!ENTITY removeTOC.label "Xóa">
+<!ENTITY removeTOC.accesskey "r">
+<!ENTITY tocMenu.label "Mục lục…">
+<!ENTITY tocMenu.accesskey "b">
diff --git a/l10n-vi/mail/chrome/messenger/messengercompose/mailComposeEditorOverlay.dtd b/l10n-vi/mail/chrome/messenger/messengercompose/mailComposeEditorOverlay.dtd
new file mode 100644
index 0000000000..9e9f66d690
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/messengercompose/mailComposeEditorOverlay.dtd
@@ -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/. -->
+
+<!ENTITY attachImageSource.label "Đính kèm ảnh này vào thư">
+<!ENTITY attachImageSource.accesskey "k">
+
+<!ENTITY attachLinkSource.label "Đính kèm nguồn của liên kết này vào thư">
+<!ENTITY attachLinkSource.accesskey "k">
+
diff --git a/l10n-vi/mail/chrome/messenger/messengercompose/messengercompose.dtd b/l10n-vi/mail/chrome/messenger/messengercompose/messengercompose.dtd
new file mode 100644
index 0000000000..a4bcf1386f
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/messengercompose/messengercompose.dtd
@@ -0,0 +1,346 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.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 messengercompose.dtd Main UI for message composition -->
+<!ENTITY msgComposeWindow.title "Viết thư: (chưa có tiêu đề)">
+
+<!-- File Menu -->
+<!ENTITY fileMenu.label "Tập tin">
+<!ENTITY fileMenu.accesskey "T">
+<!ENTITY newMenu.label "Mới">
+<!ENTITY newMenu.accesskey "M">
+<!ENTITY newMessage.label "Thư">
+<!ENTITY newMessage.key "M">
+<!ENTITY newMessageCmd2.key "N">
+<!ENTITY newMessage.accesskey "T">
+<!ENTITY newContact.label "Liên hệ trong sổ địa chỉ…">
+<!ENTITY newContact.accesskey "S">
+<!ENTITY attachMenu.label "Đính kèm">
+<!ENTITY attachMenu.accesskey "k">
+<!ENTITY attachFileCmd.label "Tập tin…">
+<!ENTITY attachFileCmd.accesskey "T">
+<!ENTITY attachFileCmd.key "A">
+<!ENTITY attachCloudCmd.label "Filelink">
+<!ENTITY attachCloudCmd.accesskey "i">
+<!ENTITY attachPageCmd.label "Trang web…">
+<!ENTITY attachPageCmd.accesskey "W">
+<!--LOCALIZATION NOTE attachVCardCmd.label Don't translate the term 'vCard' -->
+<!ENTITY attachVCardCmd.label "Thẻ cá nhân (vCard)">
+<!ENTITY attachVCardCmd.accesskey "C">
+<!ENTITY remindLater.label "Nhắc tôi sau">
+<!ENTITY remindLater.accesskey "L">
+<!ENTITY closeCmd.label "Đóng">
+<!ENTITY closeCmd.key "W">
+<!ENTITY closeCmd.accesskey "g">
+<!ENTITY saveCmd.label "Lưu">
+<!ENTITY saveCmd.key "S">
+<!ENTITY saveCmd.accesskey "L">
+<!ENTITY saveAsCmd.label "Lưu Thành">
+<!ENTITY saveAsCmd.accesskey "u">
+<!ENTITY saveAsFileCmd.label "Tập tin…">
+<!ENTITY saveAsFileCmd.accesskey "T">
+<!ENTITY saveAsDraftCmd.label "Thư nháp">
+<!ENTITY saveAsDraftCmd.accesskey "N">
+<!ENTITY saveAsTemplateCmd.label "Thư mẫu">
+<!ENTITY saveAsTemplateCmd.accesskey "M">
+<!ENTITY sendNowCmd.label "Gửi ngay">
+<!ENTITY sendCmd.keycode "VK_RETURN">
+<!ENTITY sendNowCmd.accesskey "N">
+<!ENTITY sendLaterCmd.label "Gửi sau">
+<!ENTITY sendLaterCmd.keycode "VK_RETURN">
+<!ENTITY sendLaterCmd.accesskey "S">
+<!ENTITY printSetupCmd.label "Thiết lập trang…">
+<!ENTITY printSetupCmd.accesskey "p">
+<!ENTITY printPreviewCmd.label "Xem trước khi in">
+<!ENTITY printPreviewCmd.accesskey "v">
+<!ENTITY printCmd.label "In…">
+<!ENTITY printCmd.key "P">
+<!ENTITY printCmd.accesskey "I">
+
+<!-- Edit Menu -->
+<!ENTITY editMenu.label "Chỉnh sửa">
+<!ENTITY editMenu.accesskey "e">
+<!ENTITY undoCmd.label "Hoàn tác">
+<!ENTITY undoCmd.key "Z">
+<!ENTITY undoCmd.accesskey "H">
+<!ENTITY redoCmd.label "Làm lại">
+<!ENTITY redoCmd.key "Y">
+<!ENTITY redoCmd.accesskey "L">
+<!ENTITY cutCmd.key "X">
+<!ENTITY copyCmd.key "C">
+<!ENTITY pasteCmd.key "V">
+<!ENTITY pasteNoFormattingCmd.key "V">
+<!ENTITY pasteAsQuotationCmd.key "o">
+<!ENTITY editRewrapCmd.accesskey "w">
+<!ENTITY deleteCmd.label "Xóa">
+<!ENTITY deleteCmd.accesskey "X">
+<!ENTITY editRewrapCmd.label "Gói lại">
+<!ENTITY editRewrapCmd.key "R">
+<!ENTITY renameAttachmentCmd.label "Đổi tên đính kèm…">
+<!ENTITY renameAttachmentCmd.accesskey "e">
+<!ENTITY reorderAttachmentsCmd.label "Sắp xếp lại đính kèm…">
+<!ENTITY reorderAttachmentsCmd.accesskey "s">
+<!ENTITY reorderAttachmentsCmd.key "x">
+<!ENTITY toggleAttachmentPaneCmd.label "Ngăn đính kèm">
+<!-- LOCALIZATION NOTE (toggleAttachmentPaneCmd.accesskey):
+ For better mnemonics, toggleAttachmentPaneCmd.accesskey should be the same
+ as attachments.accesskey. -->
+<!ENTITY toggleAttachmentPaneCmd.accesskey "m">
+<!ENTITY selectAllCmd.accesskey "B">
+<!ENTITY findBarCmd.label "Tìm kiếm…">
+<!ENTITY findBarCmd.accesskey "F">
+<!ENTITY findBarCmd.key "F">
+<!ENTITY findReplaceCmd.label "Tìm và thay thế…">
+<!ENTITY findReplaceCmd.accesskey "l">
+<!ENTITY findReplaceCmd.key "H">
+<!ENTITY findAgainCmd.label "Tìm tiếp">
+<!ENTITY findAgainCmd.accesskey "i">
+<!ENTITY findAgainCmd.key "G">
+<!ENTITY findAgainCmd.key2 "VK_F3">
+<!ENTITY findPrevCmd.label "Tìm phía trước">
+<!ENTITY findPrevCmd.accesskey "r">
+<!ENTITY findPrevCmd.key "G">
+<!ENTITY findPrevCmd.key2 "VK_F3">
+
+<!-- Reorder Attachment Panel -->
+<!ENTITY reorderAttachmentsPanel.label "Sắp xếp lại đính kèm">
+<!ENTITY moveAttachmentTopPanelBtn.label "Chuyển lên trên cùng">
+<!ENTITY moveAttachmentUpPanelBtn.label "Di chuyển lên">
+<!ENTITY moveAttachmentBundleUpPanelBtn.label "Di chuyển cung nhau">
+<!ENTITY moveAttachmentDownPanelBtn.label "Di chuyển xuống">
+<!ENTITY moveAttachmentBottomPanelBtn.label "Chuyển xuống dưới cùng">
+
+<!-- LOCALIZATION NOTE (sortAttachmentsPanelBtn.Sort.AZ.label):
+ Please ensure that this translation matches
+ sortAttachmentsPanelBtn.Sort.ZA.label, except for the sort direction. -->
+<!ENTITY sortAttachmentsPanelBtn.Sort.AZ.label "Sắp xếp: A - Z">
+<!ENTITY sortAttachmentsPanelBtn.Sort.ZA.label "Sắp xếp: Z - A">
+<!-- LOCALIZATION NOTE (sortAttachmentsPanelBtn.SortSelection.AZ.label):
+ Please ensure that this translation matches
+ sortAttachmentsPanelBtn.SortSelection.ZA.label, except for the sort direction. -->
+<!ENTITY sortAttachmentsPanelBtn.SortSelection.AZ.label "Sắp xếp phần đã chọn: A - Z">
+<!ENTITY sortAttachmentsPanelBtn.SortSelection.ZA.label "Sắp xếp phần đã chọn: Z - A">
+<!ENTITY sortAttachmentsPanelBtn.key "t">
+
+<!-- View Menu -->
+<!ENTITY viewMenu.label "Hiển thị">
+<!ENTITY viewMenu.accesskey "H">
+<!ENTITY viewToolbarsMenuNew.label "Thanh công cụ">
+<!ENTITY viewToolbarsMenuNew.accesskey "C">
+<!ENTITY menubarCmd.label "Thanh menu">
+<!ENTITY menubarCmd.accesskey "M">
+<!ENTITY showCompositionToolbarCmd.label "Thanh công cụ soạn thảo">
+<!ENTITY showCompositionToolbarCmd.accesskey "S">
+<!ENTITY showFormattingBarCmd.label "Thanh định dạng">
+<!ENTITY showFormattingBarCmd.accesskey "a">
+<!ENTITY showTaskbarCmd.label "Thanh trạng thái">
+<!ENTITY showTaskbarCmd.accesskey "h">
+<!ENTITY customizeToolbar.label "Tùy biến…">
+<!ENTITY customizeToolbar.accesskey "y">
+
+<!ENTITY addressSidebar.label "Thanh bên liên hệ">
+<!ENTITY addressSidebar.accesskey "o">
+
+<!-- Format Menu -->
+<!ENTITY formatMenu.label "Định dạng">
+<!ENTITY formatMenu.accesskey "d">
+
+<!-- Options Menu -->
+<!ENTITY optionsMenu.label "Tùy chọn">
+<!ENTITY optionsMenu.accesskey "y">
+<!ENTITY checkSpellingCmd2.label "Kiểm tra chính tả…">
+<!ENTITY checkSpellingCmd2.key "p">
+<!ENTITY checkSpellingCmd2.key2 "VK_F7">
+<!ENTITY checkSpellingCmd2.accesskey "a">
+<!ENTITY enableInlineSpellChecker.label "Kiểm tra chính tả khi bạn nhập">
+<!ENTITY enableInlineSpellChecker.accesskey "S">
+<!ENTITY quoteCmd.label "Trích dẫn Thư">
+<!ENTITY quoteCmd.accesskey "r">
+
+<!--LOCALIZATION NOTE attachVCard.label Don't translate the term 'vCard' -->
+<!ENTITY attachVCard.label "Đính kèm thẻ cá nhân (vCard)">
+<!ENTITY attachVCard.accesskey "v">
+
+<!ENTITY returnReceiptMenu.label "Biên lai hoàn trả">
+<!ENTITY returnReceiptMenu.accesskey "C">
+<!ENTITY dsnMenu.label "Thông báo trạng thái gửi thư">
+<!ENTITY dsnMenu.accesskey "G">
+<!ENTITY deliveryFormatMenu.label "Định dạng phân phối">
+<!ENTITY deliveryFormatMenu.accesskey "F">
+<!ENTITY autoFormatCmd.label "Tự động nhận diện">
+<!ENTITY autoFormatCmd.accesskey "T">
+<!ENTITY plainTextFormatCmd.label "Chỉ văn bản thuần túy">
+<!ENTITY plainTextFormatCmd.accesskey "V">
+<!ENTITY htmlFormatCmd.label "Văn bản Phong phú (HTML)">
+<!ENTITY htmlFormatCmd.accesskey "P">
+<!ENTITY bothFormatCmd.label "Văn bản thuần túy và phong phú (HTML)">
+<!ENTITY bothFormatCmd.accesskey "H">
+<!ENTITY priorityMenu.label "Ưu tiên">
+<!ENTITY priorityMenu.accesskey "u">
+<!ENTITY priorityButton.title "Ưu tiên">
+<!ENTITY priorityButton.tooltiptext "Thay đổi mức độ ưu tiên của thư">
+<!ENTITY priorityButton.label "Ưu tiên:">
+<!ENTITY lowestPriorityCmd.label "Thấp nhất">
+<!ENTITY lowestPriorityCmd.accesskey "T">
+<!ENTITY lowPriorityCmd.label "Thấp">
+<!ENTITY lowPriorityCmd.accesskey "h">
+<!ENTITY normalPriorityCmd.label "Bình thường">
+<!ENTITY normalPriorityCmd.accesskey "n">
+<!ENTITY highPriorityCmd.label "Cao">
+<!ENTITY highPriorityCmd.accesskey "a">
+<!ENTITY highestPriorityCmd.label "Cao nhất">
+<!ENTITY highestPriorityCmd.accesskey "C">
+<!ENTITY fileCarbonCopyCmd.label "Gửi một bản sao đến">
+<!ENTITY fileCarbonCopyCmd.accesskey "m">
+<!ENTITY fileHereMenu.label "Xếp vào đây">
+
+<!-- Tools Menu -->
+<!ENTITY tasksMenu.label "Công cụ">
+<!ENTITY tasksMenu.accesskey "g">
+<!ENTITY messengerCmd.label "Thư &amp; nhóm tin">
+<!ENTITY messengerCmd.accesskey "T">
+<!ENTITY messengerCmd.commandkey "1">
+<!ENTITY addressBookCmd.label "Sổ địa chỉ">
+<!ENTITY addressBookCmd.accesskey "S">
+<!ENTITY addressBookCmd.key "B">
+<!ENTITY accountManagerCmd2.label "Cài đặt tài khoản">
+<!ENTITY accountManagerCmd2.accesskey "S">
+<!ENTITY accountManagerCmdUnix2.accesskey "S">
+<!ENTITY preferencesCmd2.label "Tùy chọn">
+<!ENTITY preferencesCmd2.accesskey "O">
+<!ENTITY preferencesCmdUnix.label "Tùy chỉnh">
+<!ENTITY preferencesCmdUnix.accesskey "y">
+
+<!-- Mac OS X Window Menu -->
+<!ENTITY minimizeWindow.key "m">
+<!ENTITY minimizeWindow.label "Thu nhỏ">
+<!ENTITY bringAllToFront.label "Đưa tất cả ra phía trước">
+<!ENTITY zoomWindow.label "Thu phóng">
+<!ENTITY windowMenu.label "Cửa sổ">
+
+<!-- Mail Toolbar -->
+<!ENTITY sendButton.label "Gửi">
+<!ENTITY quoteButton.label "Trích dẫn">
+<!ENTITY addressButton.label "Danh bạ">
+<!ENTITY attachButton.label "Đính kèm">
+<!ENTITY spellingButton.label "Chính tả">
+<!ENTITY saveButton.label "Lưu">
+<!ENTITY printButton.label "In">
+
+<!-- Mail Toolbar Tooltips -->
+<!ENTITY sendButton.tooltip "Gửi thư này ngay">
+<!ENTITY sendlaterButton.tooltip "Gửi thư này sau">
+<!ENTITY quoteButton.tooltip "Trích dẫn thư trước">
+<!ENTITY addressButton.tooltip "Chọn một người nhận từ sổ địa chỉ">
+<!ENTITY attachButton.tooltip2 "Thêm một đính kèm">
+<!ENTITY spellingButton.tooltip "Kiểm tra chính tả của phần đã chọn hoặc toàn bộ thư">
+<!ENTITY saveButton.tooltip "Lưu thư này">
+<!ENTITY cutButton.tooltip "Cắt">
+<!ENTITY copyButton.tooltip "Sao chép">
+<!ENTITY pasteButton.tooltip "Dán">
+<!ENTITY printButton.tooltip "In thư này">
+
+<!-- Headers -->
+<!--LOCALIZATION NOTE headersSpaces.style is for aligning the From:, To: and
+ Subject: rows. It should be larger than the largest Header label -->
+<!ENTITY headersSpace2.style "width: 8em;">
+<!ENTITY extraRecipients.tooltip "Các loại địa chỉ khác">
+<!ENTITY fromAddr2.label "Từ">
+<!ENTITY fromAddr.accesskey "i">
+<!ENTITY toAddr2.label "Đến">
+<!ENTITY ccAddr2.label "Cc">
+<!ENTITY bccAddr2.label "Bcc">
+<!ENTITY newsgroupsAddr2.label "Nhóm tin">
+<!ENTITY subject2.label "Tiêu đề">
+<!ENTITY subject.accesskey "u">
+<!ENTITY attachmentBucketCloseButton.tooltip "Ẩn ngăn đính kèm">
+
+<!-- Format Toolbar, imported from editorAppShell.xhtml -->
+<!ENTITY SmileButton.tooltip "Chèn mặt cười">
+<!ENTITY smiley1Cmd.label "Cười">
+<!ENTITY smiley2Cmd.label "Cau có">
+<!ENTITY smiley3Cmd.label "Nháy mắt">
+<!ENTITY smiley4Cmd.label "Thè lưỡi">
+<!ENTITY smiley5Cmd.label "Cười lớn">
+<!ENTITY smiley6Cmd.label "Ngượng ngùng">
+<!ENTITY smiley7Cmd.label "Phân vân">
+<!ENTITY smiley8Cmd.label "Ngạc nhiên">
+<!ENTITY smiley9Cmd.label "Chụt chụt">
+<!ENTITY smiley10Cmd.label "La hét">
+<!ENTITY smiley11Cmd.label "Ngầu">
+<!ENTITY smiley12Cmd.label "Miệng đầy tiền">
+<!ENTITY smiley13Cmd.label "Bị chặn họng">
+<!ENTITY smiley14Cmd.label "Ngây thơ">
+<!ENTITY smiley15Cmd.label "Khóc">
+<!ENTITY smiley16Cmd.label "Ngậm tăm">
+
+<!-- Message Pane Context Menu -->
+<!ENTITY spellCheckNoSuggestions.label "Không tìm thấy đề xuất nào">
+<!ENTITY spellCheckIgnoreWord.label "Bỏ qua từ">
+<!ENTITY spellCheckIgnoreWord.accesskey "u">
+<!ENTITY spellCheckAddToDictionary.label "Thêm vào từ điển">
+<!ENTITY spellCheckAddToDictionary.accesskey "v">
+<!ENTITY undo.label "Hoàn tác">
+<!ENTITY undo.accesskey "H">
+<!ENTITY cut.label "Cắt">
+<!ENTITY cut.accesskey "t">
+<!ENTITY copy.label "Sao chép">
+<!ENTITY copy.accesskey "C">
+<!ENTITY paste.label "Dán">
+<!ENTITY paste.accesskey "D">
+<!ENTITY pasteQuote.label "Dán dưới dạng trích dẫn">
+<!ENTITY pasteQuote.accesskey "n">
+
+<!-- Attachment Item and List Context Menus -->
+<!ENTITY openAttachment.label "Mở">
+<!ENTITY openAttachment.accesskey "M">
+<!ENTITY delete.label "Xóa">
+<!ENTITY delete.accesskey "X">
+<!ENTITY removeAttachment.label "Xóa đính kèm">
+<!ENTITY removeAttachment.accesskey "M">
+<!ENTITY renameAttachment.label "Đổi tên…">
+<!ENTITY renameAttachment.accesskey "i">
+<!ENTITY reorderAttachments.label "Sắp xếp lại đính kèm…">
+<!ENTITY reorderAttachments.accesskey "s">
+<!ENTITY removeAllAttachments.label "Xóa tất cả đính kèm">
+<!ENTITY removeAllAttachments.accesskey "v">
+<!ENTITY selectAll.label "Chọn tất cả">
+<!ENTITY selectAll.accesskey "B">
+<!ENTITY attachFile.label "Đính kèm tập tin…">
+<!ENTITY attachFile.accesskey "k">
+<!ENTITY attachCloud.label "Filelink…">
+<!ENTITY attachCloud.accesskey "i">
+<!ENTITY convertCloud.label "Chuyển đổi thành…">
+<!ENTITY convertCloud.accesskey "C">
+<!ENTITY cancelUpload.label "Hủy tải lên">
+<!ENTITY cancelUpload.accesskey "n">
+<!ENTITY convertRegularAttachment.label "Đính kèm chung">
+<!ENTITY convertRegularAttachment.accesskey "A">
+<!ENTITY attachPage.label "Đính kèm trang web…">
+<!ENTITY attachPage.accesskey "W">
+
+<!-- Attachment Pane Header Bar Context Menu -->
+<!-- LOCALIZATION NOTE (initiallyShowAttachmentPane.label):
+ Should use the same wording as startExpandedCmd.label
+ in msgHdrViewOverlay.dtd. -->
+<!ENTITY initiallyShowAttachmentPane.label "Ban đầu hiển thị ngăn đính kèm">
+<!ENTITY initiallyShowAttachmentPane.accesskey "S">
+
+<!-- Spell checker context menu items -->
+<!ENTITY spellAddDictionaries.label "Thêm từ điển…">
+<!ENTITY spellAddDictionaries.accesskey "A">
+
+<!-- Title for the address picker panel -->
+<!ENTITY addressesSidebarTitle.label "Danh bạ">
+
+<!-- Identity popup customize menuitem -->
+<!ENTITY customizeFromAddress.label "Tùy chỉnh từ địa chỉ…">
+<!ENTITY customizeFromAddress.accesskey "A">
+
+<!-- Accessibility name for the document -->
+<!ENTITY aria.message.bodyName "Phần thân của thư">
+
+<!-- Status Bar -->
+<!ENTITY languageStatusButton.tooltip "Ngôn ngữ kiểm tra chính tả">
+<!ENTITY encodingStatusPanel.tooltip "Mã hóa văn bản">
diff --git a/l10n-vi/mail/chrome/messenger/messengercompose/sendProgress.dtd b/l10n-vi/mail/chrome/messenger/messengercompose/sendProgress.dtd
new file mode 100644
index 0000000000..28eccab1c5
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/messengercompose/sendProgress.dtd
@@ -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 sendProgress.dtd Main UI for Send Message Progress Dialog -->
+<!ENTITY sendDialog.title "Đang xử lý tin nhắn">
+<!ENTITY status.label "Trạng thái:">
+<!ENTITY progress.label "Tiến trình:">
diff --git a/l10n-vi/mail/chrome/messenger/messengercompose/sendProgress.properties b/l10n-vi/mail/chrome/messenger/messengercompose/sendProgress.properties
new file mode 100644
index 0000000000..5df11302d9
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/messengercompose/sendProgress.properties
@@ -0,0 +1,21 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (titleSendMsgSubject):
+# %S will be replaced by the message subject.
+titleSendMsgSubject=Đang gửi thư - %S
+titleSendMsg=Đang gửi thư
+# LOCALIZATION NOTE (titleSaveMsgSubject):
+# %S will be replaced by the message subject.
+titleSaveMsgSubject=Đang lưu thư - %S
+titleSaveMsg=Đang lưu thư
+
+# LOCALIZATION NOTE (percentMsg):
+# This string is used to format the text to the right of the progress meter.
+# %S will be replaced by the percentage of the file that has been saved.
+# %% will be replaced a single % sign.
+percentMsg=%S%%
+
+messageSent=Thư của bạn đã được gửi.
+messageSaved=Thư của bạn đã được lưu.
diff --git a/l10n-vi/mail/chrome/messenger/migration/migration.dtd b/l10n-vi/mail/chrome/messenger/migration/migration.dtd
new file mode 100644
index 0000000000..585cf8320e
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/migration/migration.dtd
@@ -0,0 +1,30 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+
+<!ENTITY migrationWizard.title "Trình thuật sĩ Nhập">
+
+<!ENTITY importFromWin.label "Nhập tùy chọn, cài đặt tài khoản, sổ địa chỉ, bộ lọc và các dữ liệu khác từ:">
+<!ENTITY importFromNonWin.label "Nhập tùy chỉnh, cài đặt tài khoản, sổ địa chỉ, bộ lọc và các dữ liệu khác từ:">
+<!ENTITY importSourceNotFound.label "Không có ứng dụng để nhập dữ liệu từ tìm thấy.">
+
+<!ENTITY importFromNothing.label "Không nhập gì cả">
+<!ENTITY importFromNothing.accesskey "K">
+<!ENTITY importFromSeamonkey3.label "SeaMonkey 2 trở lên">
+<!ENTITY importFromSeamonkey3.accesskey "S">
+<!ENTITY importFromOutlook.label "Outlook">
+<!ENTITY importFromOutlook.accesskey "O">
+
+<!ENTITY importSource.title "Nhập Thiết lập và Thư mục Thư">
+<!ENTITY importItems.title "Các mục cần Nhập">
+<!ENTITY importItems.label "Chọn các mục để nhập:">
+
+<!ENTITY migrating.title "Đang nhập…">
+<!ENTITY migrating.label "Các mục sau đang được nhập…">
+
+<!ENTITY selectProfile.title "Chọn Hồ Sơ">
+<!ENTITY selectProfile.label "Các hồ sơ có thể nhập được từ:">
+
+<!ENTITY done.title "Nhập Xong">
+<!ENTITY done.label "Các mục sau đã được nhập thành công:">
diff --git a/l10n-vi/mail/chrome/messenger/migration/migration.properties b/l10n-vi/mail/chrome/messenger/migration/migration.properties
new file mode 100644
index 0000000000..13755c9ed0
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/migration/migration.properties
@@ -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/.
+
+profileName_format=%S %S
+
+# Import Sources
+1_seamonkey=Tùy chỉnh
+
+2_seamonkey=Cài đặt tài khoản
+2_outlook=Cài đặt tài khoản
+
+4_seamonkey=Sổ địa chỉ
+4_outlook=Sổ địa chỉ
+
+8_seamonkey=Huấn luyện Nhận dạng Thư rác
+
+16_seamonkey=Mật khẩu đã lưu
+
+32_seamonkey=Dữ liệu Khác
+
+64_seamonkey=Thư mục Nhóm tin
+
+128_seamonkey=Thư mục Thư
+128_outlook=Thư mục Thư
diff --git a/l10n-vi/mail/chrome/messenger/mime.properties b/l10n-vi/mail/chrome/messenger/mime.properties
new file mode 100644
index 0000000000..9990cf4e22
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/mime.properties
@@ -0,0 +1,154 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#
+# The following are used by libmime to emit header display in HTML
+#
+
+# Mail subject
+## @name MIME_MHTML_SUBJECT
+## @loc None
+1000=Tiêu đề
+
+# Resent-Comments
+## @name MIME_MHTML_RESENT_COMMENTS
+## @loc
+1001=Gửi tiếp - Bình luận
+
+# Resent-Date
+## @name MIME_MHTML_RESENT_DATE
+## @loc
+1002=Gửi tiếp - Ngày
+
+# Resent-Sender
+## @name MIME_MHTML_RESENT_SENDER
+## @loc
+1003=Gửi tiếp - Nhờ
+
+# Resent-From
+## @name MIME_MHTML_RESENT_FROM
+## @loc
+1004=Gửi tiếp - Từ
+
+# Resent-To
+## @name MIME_MHTML_RESENT_TO
+## @loc
+1005=Gửi tiếp - Tới
+
+# Resent-CC
+## @name MIME_MHTML_RESENT_CC
+## @loc
+1006=Gửi tiếp - CC
+
+# Date
+## @name MIME_MHTML_DATE
+## @loc
+1007=Ngày
+
+# Sender
+## @name MIME_MHTML_SENDER
+## @loc
+1008=Người gửi Cho
+
+# From
+## @name MIME_MHTML_FROM
+## @loc
+1009=Từ
+
+# Reply-To
+## @name MIME_MHTML_REPLY_TO
+## @loc
+1010=Trả lời Tới
+
+# Organization
+## @name MIME_MHTML_ORGANIZATION
+## @loc
+1011=Tổ chức
+
+# To
+## @name MIME_MHTML_TO
+## @loc
+1012=Tới
+
+# CC
+## @name MIME_MHTML_CC
+## @loc
+1013=CC
+
+# Newsgroups
+## @name MIME_MHTML_NEWSGROUPS
+## @loc
+1014=Nhóm tin
+
+# Followup-To
+## @name MIME_MHTML_FOLLOWUP_TO
+## @loc
+1015=Trả lời Tin tại
+
+# References
+## @name MIME_MHTML_REFERENCES
+## @loc
+1016=Tham khảo
+
+# Message ID
+## @name MIME_MHTML_MESSAGE_ID
+## @loc
+1021=ID Thư
+
+# BCC
+## @name MIME_MHTML_BCC
+## @loc
+1023=BCC
+
+# Link to doc
+## @name MIME_MSG_LINK_TO_DOCUMENT
+## @loc
+1026=Liên kết tới Tài liệu
+
+# Get Doc info
+## @name MIME_MSG_DOCUMENT_INFO
+## @loc
+1027=<B>Thông tin Tài liệu:</B>
+
+# Msg Attachment
+## @name MIME_MSG_ATTACHMENT
+## @loc
+1028=Đính kèm
+
+# default attachment name
+## @name MIME_MSG_DEFAULT_ATTACHMENT_NAME
+## @loc
+# LOCALIZATION NOTE (1040): Do not translate "%s" below.
+# Place the %s where you wish the part number of the attachment to appear
+1040=Phần %s
+
+# default forwarded message prefix
+## @name MIME_FORWARDED_MESSAGE_HTML_USER_WROTE
+## @loc
+1041=-------- Thư Gốc --------
+
+# Partial Message Truncated
+## @name MIME_MSG_PARTIAL_TRUNCATED
+## @loc
+MIME_MSG_PARTIAL_TRUNCATED=Đã cắt ngắn!
+
+# Partial Message Truncated Explanation
+## @name MIME_MSG_PARTIAL_TRUNCATED_EXPLANATION
+## @loc
+MIME_MSG_PARTIAL_TRUNCATED_EXPLANATION=Thông báo này vượt quá kích thước thư tối đa được đặt trong cài đặt tài khoản, vì vậy chúng tôi chỉ tải xuống một vài dòng đầu tiên từ máy chủ thư.
+
+# Partial Message Not Downloaded
+## @name MIME_MSG_PARTIAL_NOT_DOWNLOADED
+## @loc
+MIME_MSG_PARTIAL_NOT_DOWNLOADED=Chưa tải xuống
+
+# Partial Message Not Downloaded Explanation
+## @name MIME_MSG_PARTIAL_NOT_DOWNLOADED_EXPLANATION
+## @loc
+MIME_MSG_PARTIAL_NOT_DOWNLOADED_EXPLANATION=Chỉ các tiêu đề cho thư này được tải xuống từ máy chủ thư.
+
+# MIME_MSG_PARTIAL_CLICK_FOR_REST
+## @name MIME_MSG_PARTIAL_CLICK_FOR_REST
+## @loc
+MIME_MSG_PARTIAL_CLICK_FOR_REST=Tải phần còn lại của tin nhắn.
diff --git a/l10n-vi/mail/chrome/messenger/mimeheader.properties b/l10n-vi/mail/chrome/messenger/mimeheader.properties
new file mode 100644
index 0000000000..aa53bbb4b8
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/mimeheader.properties
@@ -0,0 +1,35 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 are used by libmime for header display in XML & HTML
+#
+TO=Đến
+BCC=BCC
+CC=CC
+DATE=Ngày
+DISTRIBUTION=Phân phối
+FCC=FCC
+FOLLOWUP-TO=Trả lời Tin tại
+FROM=Từ
+STATUS=Trạng thái
+LINES=Dòng
+MESSAGE-ID=ID Thư
+MIME-VERSION=Phiên bản MIME
+NEWSGROUPS=Nhóm tin
+ORGANIZATION=Tổ chức
+REFERENCES=Tham khảo
+REPLY-TO=Trả lời Tới
+RESENT-COMMENTS=Gửi tiếp - Bình luận
+RESENT-DATE=Gửi tiếp - Ngày
+RESENT-FROM=Gửi tiếp - Từ
+RESENT-MESSAGE-ID=Gửi tiếp - ID Thư
+RESENT-SENDER=Gửi tiếp - Nhờ
+RESENT-TO=Gửi tiếp - Tới
+RESENT-CC=Gửi tiếp - CC
+SENDER=Người gửi Cho
+SUBJECT=Tiêu đề
+APPROVED-BY=Chấp-thuận-Bởi
+USER-AGENT=Chương Trình Gửi
+FILENAME=Tên tập tin
diff --git a/l10n-vi/mail/chrome/messenger/morkImportMsgs.properties b/l10n-vi/mail/chrome/messenger/morkImportMsgs.properties
new file mode 100644
index 0000000000..61d22e59ad
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/morkImportMsgs.properties
@@ -0,0 +1,18 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, you can obtain one at http://mozilla.org/MPL/2.0/.
+
+#
+# The following are used by the Mork import code to display status/error
+# and informational messages.
+#
+
+MABFiles = Sổ địa chỉ Mork
+
+# Short name of import module
+morkImportName = Cơ sở dữ liệu Mork (.mab)
+
+# Description of import module
+morkImportDescription = Nhập sổ địa chỉ từ SeaMonkey hoặc các phiên bản trước đó của Thunderbird.
+
+morkImportSuccess = Thành công!
diff --git a/l10n-vi/mail/chrome/messenger/msgAccountCentral.dtd b/l10n-vi/mail/chrome/messenger/msgAccountCentral.dtd
new file mode 100644
index 0000000000..75a5ed449c
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/msgAccountCentral.dtd
@@ -0,0 +1,27 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY emailSectionHdr.label "Email">
+<!ENTITY readMsgsLink.label "Thư đã đọc">
+<!ENTITY composeMsgLink.label "Viết thư mới">
+
+<!ENTITY newsSectionHdr.label "Nhóm tin">
+<!ENTITY subscribeNewsLink.label "Quản lí phần đăng kí nhóm tin">
+
+<!ENTITY feedsSectionHdr.label "Nguồn cấp">
+<!ENTITY subscribeFeeds.label "Quản lí đăng kí">
+
+<!ENTITY chat.label "Trò chuyện">
+<!ENTITY movemail.label "Movemail">
+
+<!ENTITY accountsSectionHdr.label "Tài khoản">
+<!ENTITY subscribeImapFolders.label "Quản lí phần đăng kí thư mục">
+<!ENTITY settingsLink.label "Xem cài đặt cho tài khoản này">
+<!ENTITY setupNewAcct.label "Thiết lập một tài khoản:">
+
+<!ENTITY advFeaturesSectionHdr.label "Tính năng nâng cao">
+<!ENTITY searchMsgsLink.label "Tìm kiếm thư">
+<!ENTITY filtersLink.label "Quản lí bộ lọc thư">
+<!ENTITY junkSettings.label "Cài đặt thư rác">
+<!ENTITY offlineLink.label "Thiết lập ngoại tuyến">
diff --git a/l10n-vi/mail/chrome/messenger/msgHdrViewOverlay.dtd b/l10n-vi/mail/chrome/messenger/msgHdrViewOverlay.dtd
new file mode 100644
index 0000000000..3dbc240e7a
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/msgHdrViewOverlay.dtd
@@ -0,0 +1,111 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY toField4.label "Đến">
+<!ENTITY fromField4.label "Từ">
+<!ENTITY senderField4.label "Người gửi">
+<!ENTITY author.label "Tác giả">
+<!ENTITY organizationField4.label "Tổ chức">
+<!ENTITY replyToField4.label "Trả lời đến">
+
+<!ENTITY subjectField4.label "Tiêu đề">
+<!ENTITY ccField4.label "Cc">
+<!ENTITY bccField4.label "Bcc">
+<!ENTITY newsgroupsField4.label "Nhóm tin">
+<!ENTITY tagsHdr4.label "Nhãn">
+<!ENTITY dateField4.label "Ngày">
+<!ENTITY userAgentField4.label "Chuỗi đại diện người dùng">
+<!ENTITY referencesField4.label "Tài liệu tham khảo">
+<!ENTITY messageIdField4.label "ID thư">
+<!ENTITY originalWebsite4.label "Trang web">
+
+<!ENTITY hdrArchiveButton1.label "Lưu trữ">
+<!ENTITY hdrArchiveButton1.tooltip "Lưu trữ thư này">
+<!ENTITY hdrSmartReplyButton1.label "Trả lời thông minh">
+<!ENTITY hdrReplyButton1.label "Trả lời">
+<!ENTITY hdrReplyButton2.tooltip "Trả lời người gửi thư này">
+<!ENTITY hdrReplyAllButton1.label "Trả lời tất cả">
+<!ENTITY hdrReplyAllButton1.tooltip "Trả lời người gửi và tất cả người nhận">
+<!ENTITY hdrReplyListButton1.label "Trả lời danh sách">
+<!ENTITY hdrReplyListButton1.tooltip "Trả lời danh sách thư">
+<!ENTITY hdrFollowupButton1.tooltip "Đăng một bài theo dõi cho nhóm tin này">
+<!ENTITY hdrForwardButton1.label "Chuyển tiếp">
+<!ENTITY hdrForwardButton1.tooltip "Chuyển tiếp thư này">
+<!ENTITY hdrJunkButton1.label "Thư rác">
+<!ENTITY hdrJunkButton1.tooltip "Đánh dấu thư này là thư rác">
+<!ENTITY hdrTrashButton1.label "Xóa">
+<!ENTITY hdrTrashButton1.tooltip "Xóa thư này">
+
+<!ENTITY hdrViewToolbarShowFull.label "Hiển thị biểu tượng và văn bản">
+<!ENTITY hdrViewToolbarShowFull.accesskey "a">
+<!ENTITY hdrViewToolbarShowIcons.label "Chỉ hiển thị biểu tượng">
+<!ENTITY hdrViewToolbarShowIcons.accesskey "I">
+<!ENTITY hdrViewToolbarShowText.label "Chỉ hiển thị văn bản">
+<!ENTITY hdrViewToolbarShowText.accesskey "T">
+<!ENTITY hdrViewToolbarAlwaysReplySender.label "Luôn hiển thị trả lời cho người gửi">
+<!ENTITY hdrViewToolbarAlwaysReplySender.accesskey "R">
+
+<!ENTITY otherActionsButton2.label "Thêm">
+<!ENTITY otherActionsButton.tooltip "Nhiều hành động hơn">
+<!ENTITY otherActionsOpenConversation1.label "Mở trong hội thoại">
+<!ENTITY otherActionsOpenConversation1.accesskey "C">
+<!ENTITY otherActionsOpenInNewWindow1.label "Mở trong cửa sổ mới">
+<!ENTITY otherActionsOpenInNewWindow1.accesskey "W">
+<!ENTITY otherActionsOpenInNewTab1.label "Mở trong thẻ mới">
+<!ENTITY otherActionsOpenInNewTab1.accesskey "T">
+<!ENTITY markAsReadMenuItem1.label "Đánh dấu là đã đọc">
+<!ENTITY markAsReadMenuItem1.accesskey "R">
+<!ENTITY markAsUnreadMenuItem1.label "Đánh dấu là chưa đọc">
+<!ENTITY markAsUnreadMenuItem1.accesskey "r">
+<!ENTITY saveAsMenuItem1.label "Lưu thành…">
+<!ENTITY saveAsMenuItem1.accesskey "S">
+<!ENTITY viewSourceMenuItem1.label "Xem mã nguồn">
+<!ENTITY viewSourceMenuItem1.accesskey "V">
+<!ENTITY otherActionsPrint1.label "In…">
+<!ENTITY otherActionsPrint1.accesskey "P">
+
+<!-- Attachment bar context menu items -->
+<!ENTITY startExpandedCmd.label "Hiển thị ngăn đính kèm ban đầu">
+<!ENTITY startExpandedCmd.accesskey "S">
+
+<!-- Attachment context menu items -->
+<!ENTITY openAttachmentCmd.label "Mở">
+<!ENTITY openAttachmentCmd.accesskey "O">
+<!ENTITY saveAsAttachmentCmd.label "Lưu thành…">
+<!ENTITY saveAsAttachmentCmd.accesskey "S">
+<!ENTITY detachAttachmentCmd.label "Tách rời…">
+<!ENTITY detachAttachmentCmd.accesskey "D">
+<!ENTITY deleteAttachmentCmd.label "Xóa">
+<!ENTITY deleteAttachmentCmd.accesskey "e">
+<!ENTITY openAllAttachmentsCmd.label "Mở tất cả…">
+<!ENTITY openAllAttachmentsCmd.accesskey "O">
+<!ENTITY saveAllAttachmentsCmd.label "Lưu tất cả…">
+<!ENTITY saveAllAttachmentsCmd.accesskey "S">
+<!ENTITY detachAllAttachmentsCmd.label "Tách rời tất cả…">
+<!ENTITY detachAllAttachmentsCmd.accesskey "D">
+<!ENTITY deleteAllAttachmentsCmd.label "Xóa tất cả…">
+<!ENTITY deleteAllAttachmentsCmd.accesskey "e">
+
+<!ENTITY openAttachment.tooltip "Mở tập tin đính kèm">
+
+<!ENTITY detachedAttachmentFolder.show.label "Mở thư mục chứa">
+<!ENTITY detachedAttachmentFolder.show.accesskey "F">
+<!ENTITY detachedAttachmentFolder.showMac.label "Hiển thị trong Finder">
+<!ENTITY detachedAttachmentFolder.showMac.accesskey "F">
+
+<!-- Attachment toolbar items -->
+<!ENTITY saveAttachmentButton1.label "Lưu">
+<!ENTITY saveAttachmentButton1.tooltip "Lưu tập tin đính kèm">
+<!ENTITY saveAllAttachmentsButton1.label "Lưu tất cả">
+<!ENTITY saveAllAttachmentsButton1.tooltip "Lưu tất cả tập tin đính kèm">
+
+<!ENTITY copyLinkCmd.label "Sao chép địa chỉ liên kết">
+<!ENTITY copyLinkCmd.accesskey "C">
+
+<!ENTITY CopyMessageId.label "Sao chép ID thư">
+<!ENTITY CopyMessageId.accesskey "C">
+<!ENTITY OpenMessageForMsgId.label "Mở thư cho ID">
+<!ENTITY OpenMessageForMsgId.accesskey "O">
+<!ENTITY OpenBrowserWithMsgId.label "Mở trình duyệt với ID thư">
+<!ENTITY OpenBrowserWithMsgId.accesskey "B">
diff --git a/l10n-vi/mail/chrome/messenger/msgPrintEngine.dtd b/l10n-vi/mail/chrome/messenger/msgPrintEngine.dtd
new file mode 100644
index 0000000000..9ccc3ccb86
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/msgPrintEngine.dtd
@@ -0,0 +1,16 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- LOCALIZATION NOTE (printCmd.key, closeCmd.key):
+ As defined in msgPrintEngine.xul, Ctrl plus the command keys defined here
+ will be the keyboard shortcuts effective in print preview, e.g. Ctrl+P
+ -->
+
+<!-- LOCALIZATION NOTE (printCmd.key, closeCmd.key):
+ As defined in msgPrintEngine.xhtml, Ctrl plus the command keys defined here
+ will be the keyboard shortcuts effective in print preview, e.g. Ctrl+P
+ -->
+
+<!ENTITY printCmd.key "P">
+<!ENTITY closeCmd.key "W">
diff --git a/l10n-vi/mail/chrome/messenger/msgSynchronize.dtd b/l10n-vi/mail/chrome/messenger/msgSynchronize.dtd
new file mode 100644
index 0000000000..f24e0cab0e
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/msgSynchronize.dtd
@@ -0,0 +1,25 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- extracted from MsgSynchronize.xul and msgSelectOfflineFolders.xul-->
+
+<!-- extracted from MsgSynchronize.xhtml and msgSelectOfflineFolders.xhtml-->
+
+<!ENTITY MsgSynchronize.label "Tải xuống và đồng bộ hóa thư">
+<!ENTITY MsgSelect.label "Các mục để Sử dụng Ngoại tuyến">
+<!ENTITY MsgSyncDesc.label "Nếu bạn đã chọn thư mục hoặc nhóm tin để dùng ngoại tuyến, bạn có thể tải/đồng bộ chúng ngay bây giờ. Nếu chưa, hãy sử dụng nút &quot;Chọn&quot; để chọn thư mục thư và nhóm tin để dùng ngoại tuyến.">
+<!ENTITY MsgSyncDirections.label "Tải và/hoặc đồng bộ những mục sau:">
+<!ENTITY syncTypeMail.label "Thư">
+<!ENTITY syncTypeMail.accesskey "T">
+<!ENTITY syncTypeNews.label "Nhóm tin">
+<!ENTITY syncTypeNews.accesskey "N">
+<!ENTITY sendMessage.label "Gửi các thư chưa gửi">
+<!ENTITY sendMessage.accesskey "G">
+<!ENTITY workOffline.label "Làm việc ngoại tuyến khi tải và/hoặc đồng bộ xong">
+<!ENTITY workOffline.accesskey "o">
+<!ENTITY selectButton.label "Chọn…">
+<!ENTITY selectButton.accesskey "C">
+<!ENTITY MsgSelectDesc.label "Chọn thư mục và nhóm tin để dùng ngoại tuyến.">
+<!ENTITY MsgSelectInd.label "Tải">
+<!ENTITY MsgSelectItems.label "Thư mục và Nhóm tin">
diff --git a/l10n-vi/mail/chrome/messenger/msgViewPickerOverlay.dtd b/l10n-vi/mail/chrome/messenger/msgViewPickerOverlay.dtd
new file mode 100644
index 0000000000..c8951249c0
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/msgViewPickerOverlay.dtd
@@ -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/. -->
+
+<!--LOCALIZATION NOTE msgViewPickerOverlay.dtd UI for showing various views on a folder -->
+
+<!ENTITY viewPicker.label "Xem:">
+<!ENTITY viewPicker.accesskey "i">
+<!ENTITY viewAll.label "Tất cả">
+<!ENTITY viewAll.accesskey "A">
+<!ENTITY viewUnread.label "Chưa đọc">
+<!ENTITY viewUnread.accesskey "U">
+<!ENTITY viewNotDeleted.label "Chưa xóa">
+<!ENTITY viewNotDeleted.accesskey "D">
+<!ENTITY viewTags.label "Nhãn">
+<!ENTITY viewTags.accesskey "T">
+<!ENTITY viewCustomViews.label "Tùy biến chế độ xem">
+<!ENTITY viewCustomViews.accesskey "V">
+<!ENTITY viewVirtualFolder.label "Lưu chế độ xem dưới dạng thư mục…">
+<!ENTITY viewVirtualFolder.accesskey "S">
+<!ENTITY viewCustomizeView.label "Tùy biến…">
+<!ENTITY viewCustomizeView.accesskey "C">
diff --git a/l10n-vi/mail/chrome/messenger/msgmdn.properties b/l10n-vi/mail/chrome/messenger/msgmdn.properties
new file mode 100644
index 0000000000..9b02acde49
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/msgmdn.properties
@@ -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/.
+## Msg Mdn Report strings
+MsgMdnDisplayed=Lưu ý: Chứng nhận Hồi báo chỉ biết rằng thư đã được hiển thị trên máy tính của người nhận. Không có gì đảm bảo rằng người nhận đã đọc nó hoặc hiểu nội dung thư.
+MsgMdnDispatched=Thư đã được in, fax, hoặc chuyển tiếp mà không được hiển thị tới người nhận. Không có gì đảm bảo rằng người nhận sẽ đọc nó sau này cả.
+MsgMdnProcessed=Thư đã được xử lí bởi chương trình gửi thư của người dùng và không được hiển thị. hông có gì đảm bảo rằng người nhận sẽ đọc nó sau này cả.
+MsgMdnDeleted=Thư đã bị xóa. Người mà bạn gửi thư có thể thấy hoặc không thấy nó. Có thể họ sẽ khôi phục nó và đọc sau.
+MsgMdnDenied=Người nhận thư không muốn gửi chứng nhận hồi báo trở lại cho bạn.
+MsgMdnFailed=Một hư hỏng đã xảy ra. Không thể tạo hoặc gửi chứng nhận hồi báo phù hợp tới bạn.
+# LOCALIZATION NOTE : Do not translate the word "%S" below.
+MsgMdnMsgSentTo=Đây là một Chứng nhận Hồi báo cho thư mà bạn đã gửi tới %S.
+MdnDisplayedReceipt=Chứng nhận Hồi báo (đã hiển thị)
+MdnDispatchedReceipt=Chứng nhận Hồi báo (đã gửi)
+MdnProcessedReceipt=Chứng nhận Hồi báo (đã xử lí)
+MdnDeletedReceipt=Chứng nhận Hồi báo (đã xóa)
+MdnDeniedReceipt=Chứng nhận Hồi báo (bị từ chối)
+MdnFailedReceipt=Chứng nhận Hồi báo (bị thất bại)
+
diff --git a/l10n-vi/mail/chrome/messenger/multimessageview.dtd b/l10n-vi/mail/chrome/messenger/multimessageview.dtd
new file mode 100644
index 0000000000..8ad733c4c8
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/multimessageview.dtd
@@ -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/. -->
+
+<!ENTITY window.title "Tóm tắt Thư">
+<!ENTITY selectedmessages.label "Các thư Đã chọn">
+<!ENTITY archiveButton.label "Lưu trữ">
+<!ENTITY deleteButton.label "Xóa">
diff --git a/l10n-vi/mail/chrome/messenger/multimessageview.properties b/l10n-vi/mail/chrome/messenger/multimessageview.properties
new file mode 100644
index 0000000000..8de70ba3a0
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/multimessageview.properties
@@ -0,0 +1,66 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (numConversations): Semi-colon list of plural forms.
+# See: https://developer.mozilla.org/en/Localization_and_Plurals
+# The number of conversations (threads or solitary messages) selected. #1 is the
+# number of conversations.
+numConversations=#1 cuộc hội thoại
+
+# LOCALIZATION NOTE (atLeastNumConversations): Semi-colon list of plural forms.
+# See: https://developer.mozilla.org/en/Localization_and_Plurals
+# The number of conversations (threads or solitary messages) selected. #1 is the
+# number of conversations. We use this when we didn't actually scan the entire
+# list of selected messages, so there may be more conversations than reported
+# (or maybe not!).
+atLeastNumConversations=#1+ cuộc hội thoại
+
+# LOCALIZATION NOTE (numMessages): Semi-colon list of plural forms.
+# See: https://developer.mozilla.org/en/Localization_and_Plurals
+# The number of messages in a thread. #1 is the number of messages.
+numMessages=#1 thư
+
+# LOCALIZATION NOTE (numUnread): Semi-colon list of plural forms.
+# See: https://developer.mozilla.org/en/Localization_and_Plurals
+# The number of unread messages in a thread; meant to be appended to
+# "numMessages". #1 is the number of unread messages.
+numUnread=, #1 chưa đọc
+
+# LOCALIZATION NOTE (numIgnored): Semi-colon list of plural forms.
+# See: https://developer.mozilla.org/en/Localization_and_Plurals
+# The number of ignored messages in a thread; meant to be appended to
+# "numMessages". #1 is the number of ignored messages.
+numIgnored=,#1 đã bỏ qua
+
+# LOCALIZATION NOTE (atLeastNumIgnored): Semi-colon list of plural forms.
+# See: https://developer.mozilla.org/en/Localization_and_Plurals
+# The number of ignored messages in a thread; meant to be appended to
+# "numMessages". #1 is the number of ignored messages. We use this when we
+# didn't actually scan the entire list of selected messages, so there may be
+# more ignored messages than reported (or maybe not!).
+atLeastNumIgnored=, #1+ đã bỏ qua
+
+# LOCALIZATION NOTE (noSubject): What to display for a message if it has no
+# subject.
+noSubject=(không tiêu đề)
+
+# LOCALIZATION NOTE (messagesTotalSize): A message indicating the total size on
+# disk of the selected messages. #1 is the size, e.g. "123 KB".
+messagesTotalSize=Những thư này chiếm #1.
+
+# LOCALIZATION NOTE (messagesTotalSizeMoreThan): A message indicating the total
+# size on disk of the selected messages. #1 is the size, e.g. "123 KB". We use
+# this when we didn't actually scan the entire list of selected messages, so
+# this is a *minimum* size.
+messagesTotalSizeMoreThan=Những thư này chiếm hơn #1.
+
+# LOCALIZATION NOTE (maxCountExceeded): A message to let the user know that not
+# all of the selected messages were summarized. #1 is the total number of
+# messages selected and #2 is the number of messages actually shown.
+maxCountExceeded= (Lưu ý: #1 thư được chọn, #2 đầu tiên được hiển thị)
+
+# LOCALIZATION NOTE (maxThreadCountExceeded): A message to let the user know that
+# not all of the selected thread were summarized. #1 is the total number of
+# threads selected and #2 is the number of threads actually shown.
+maxThreadCountExceeded= (Lưu ý: #1 chủ đề được chọn, #2 đầu tiên được hiển thị)
diff --git a/l10n-vi/mail/chrome/messenger/newFolderDialog.dtd b/l10n-vi/mail/chrome/messenger/newFolderDialog.dtd
new file mode 100644
index 0000000000..fa95df5682
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/newFolderDialog.dtd
@@ -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/. -->
+
+<!-- Labels -->
+<!ENTITY newFolderDialog.title "Thư mục Mới">
+<!ENTITY name.label "Tên:">
+<!ENTITY name.accesskey "T">
+<!ENTITY description.label "Tạo thành thư mục con cho:">
+<!ENTITY description.accesskey "c">
+<!ENTITY folderRestriction1.label "Máy chủ này giới hạn thư mục trong hai dạng đặc biệt.">
+<!ENTITY folderRestriction2.label "Cho phép thư mục mới của bạn chứa:">
+<!ENTITY foldersOnly.label "Chỉ Thư Mục">
+<!ENTITY messagesOnly.label "Chỉ Thư">
+<!ENTITY accept.label "Tạo Thư Mục">
+<!ENTITY accept.accesskey "o">
+
diff --git a/l10n-vi/mail/chrome/messenger/newmailaccount/accountProvisioner.dtd b/l10n-vi/mail/chrome/messenger/newmailaccount/accountProvisioner.dtd
new file mode 100644
index 0000000000..3383ae1d94
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/newmailaccount/accountProvisioner.dtd
@@ -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/. -->
+
+<!ENTITY window.title "Chào mừng đến với &brandShortName;">
+<!ENTITY header2.label "Bạn có muốn thêm một địa chỉ email mới?">
+<!ENTITY other.languages "Chúng tôi chỉ hiển thị các nhà cung cấp cung cấp địa chỉ trong khu vực của bạn. Nhấn vào đây để hiển thị tất cả các nhà cung cấp.">
+<!ENTITY error.line1 "Xin lỗi, chúng tôi không thể tìm thấy bất kỳ địa chỉ email được đề xuất.">
+<!ENTITY error.line2 "You try can search for nicknames or any other term to find more emails">
+
+<!-- LOCALIZATION NOTE(error.suggest.before, error.suggest.middle, error.suggest.after):
+ error.suggest.before, error.suggest.middle, and error.suggest.after all go into
+ one line with error.suggest.middle that links to a site which provides download
+ of free account alternatives. -->
+<!ENTITY error.suggest.before "Ngoài ra, bạn có thể thử một trong những ">
+<!ENTITY error.suggest.middle "lựa chọn tài khoản email miễn phí">
+<!ENTITY error.suggest.after ".">
+
+<!-- LOCALIZATION NOTE(success.title.before, success.title.after):
+ success.title.before and success.title.after all go into one line, wrapping
+ around the name that the user has typed in to the search input. -->
+<!ENTITY success.title.before "Xin chào ">
+<!ENTITY success.title.after ", các địa chỉ email sau đây có sẵn cho bạn:">
+<!ENTITY success.tip "(Bạn cũng có thể tìm kiếm biệt danh hoặc bất kỳ thuật ngữ nào khác để tìm thêm email)">
+<!ENTITY partnership.description "Hợp tác với một số nhà cung cấp, &brandShortName; có thể cung cấp cho bạn một tài khoản email mới. Chỉ cần điền tên và họ của bạn hoặc bất kỳ từ nào bạn muốn, vào các trường ở trên để bắt đầu.">
+<!ENTITY existing.header "Đã có một địa chỉ bạn muốn sử dụng?">
+<!ENTITY tinyheader.title "Đã có một địa chỉ?">
+<!ENTITY tinyheader.existing "Bỏ qua cái này và sử dụng email hiện có của tôi">
+<!ENTITY content.close "Tôi nghĩ rằng tôi sẽ cấu hình tài khoản của mình sau.">
+<!ENTITY successful.title "Chúc mừng!">
+<!ENTITY successful.successMessage "Bạn đã thiết lập thành công tài khoản của bạn.">
+<!ENTITY successful.write "Viết một số email">
+<!ENTITY successful.write.desc "Let your friends and family know about your new address.<br/> That’s why you got this new account, isn’t it?">
+<!ENTITY successful.customize "Tùy chỉnh &brandShortName; với một số tiện ích mở rộng thú vị">
+<!ENTITY successful.customize.desc "Có hàng ngàn tiện ích bổ sung cho phép bạn tùy chỉnh &brandShortName; để làm cho nó phù hợp với nhu cầu cụ thể của bạn.">
+<!ENTITY successful.attach "Đính kèm chữ ký cá nhân vào email của tôi">
+<!ENTITY successful.attach.desc "Bạn có thể tự động đính kèm một trích dẫn hoặc một số thông tin về bản thân vào cuối mỗi tin nhắn bạn gửi.">
+<!ENTITY successful.close "Đóng cửa sổ này.">
+<!ENTITY input.namePlaceholder "Tên hoặc biệt danh của bạn">
+<!ENTITY input.search "Tìm kiếm">
+<!ENTITY search_engine.title "Tùy chỉnh công cụ tìm kiếm của bạn">
+<!ENTITY search_engine.message "Nhà cung cấp email của bạn cũng có thể cung cấp cho bạn khả năng tìm kiếm trên web.">
+<!ENTITY search_engine.button "Hoàn thành">
diff --git a/l10n-vi/mail/chrome/messenger/newmailaccount/accountProvisioner.properties b/l10n-vi/mail/chrome/messenger/newmailaccount/accountProvisioner.properties
new file mode 100644
index 0000000000..5d03e0daef
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/newmailaccount/accountProvisioner.properties
@@ -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/.
+
+# LOCALIZATION NOTE (free):
+# This will be shown instead of a price when displaying free email accounts
+free=Miễn phí
+# LOCALIZATION NOTE (price):
+# %S will be the price per year charged to the user for the account.
+price=%S một năm
+# LOCALIZATION NOTE (moreOptions): Semi-colon list of plural forms.
+# See: https://developer.mozilla.org/en/Localization_and_Plurals
+# #1 is the number of additional email addresses available for registration.
+# This line is shown when there are more than two suggested email
+# addresses available.
+moreOptions=thêm +#1…
+# LOCALIZATION NOTE (sepAnd):
+# \u0020 is a space, and should be included before and after.
+sepAnd=\u0020và\u0020
+# LOCALIZATION NOTE (sepComma):
+# \u0020 is a space, and should be included after.
+sepComma=,\u0020
+# LOCALIZATION NOTE (privacyDisclaimer):
+# #1 will be a link for the Mozilla Privacy policy page.
+# #2 will be a list of providers with links to their ToS and Privacy policies, separated by the 'sepComma' delimiter.
+privacyDisclaimer=Các thuật ngữ tìm kiếm được sử dụng được gửi đến Mozilla (#1) và nhà cung cấp email bên thứ 3 #2 để tìm địa chỉ email có sẵn.
+privacyPolicy=Chính sách riêng tư
+tos=Điều khoản dịch vụ
+# LOCALIZATION NOTE (searchEngineDesc):
+# %S will be the selected search engine.
+searchEngineDesc=Sử dụng %S làm công cụ tìm kiếm mặc định của tôi
+cannotConnect=Xin lỗi - chúng tôi không thể liên lạc với máy chủ đăng ký của chúng tôi. Vui lòng kiểm tra kết nối của bạn.
diff --git a/l10n-vi/mail/chrome/messenger/news.properties b/l10n-vi/mail/chrome/messenger/news.properties
new file mode 100644
index 0000000000..411dd9e3d2
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/news.properties
@@ -0,0 +1,56 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+downloadHeadersTitlePrefix=Tải xuống header
+downloadHeadersInfoText=Có %S đầu đề mới để tải cho nhóm tin này.
+cancelDisallowed=Tin bài này có vẻ không phải của bạn. Bạn chỉ có thể hủy bài của bạn, chứ không thể hủy bài của người khác.
+cancelConfirm=Bạn có chắc là bạn muốn hủy thư này?
+messageCancelled=Đã hủy thư.
+enterUserPassTitle=Yêu cầu tên người dùng và mật khẩu cho máy chủ tin tức
+# LOCALIZATION NOTE (enterUserPassServer): %S is the server being accessed
+enterUserPassServer=Vui lòng nhập tên người dùng và mật khẩu cho %S:
+# LOCALIZATION NOTE (enterUserPassGroup): %1$S is a specific newsgroup to set
+# the password for; %2$S is the server from which the newsgroup is accessed
+enterUserPassGroup=Vui lòng nhập tên người dùng và mật khẩu cho %1$S trên %2$S:
+okButtonText=Tải xuống
+
+noNewMessages=Không có thư mới trên máy chủ.
+# LOCALIZATION NOTE (newNewsgroupHeaders): %1$S is the number of the current
+# header being downloaded, %2$S is the number of headers to be downloaded, and
+# %3$S is the newsgroup whose headers are being downloaded.
+newNewsgroupHeaders=Đang tải %1$S trên tổng %2$S đầu đề cho %3$S
+# LOCALIZATION NOTE (newNewsgroupFilteringHeaders): %1$S is the name of the MIME
+# header being filtered on, %2$S is the number of the current header being
+# downloaded, %3$S is the number of headers to be downloaded, and %4$S is the
+# newsgroup whose headers are being downloaded.
+newNewsgroupFilteringHeaders=Đang lấy đầu đề cho bộ lọc: %1$S (%2$S/%3$S) trên tổng %4$S
+downloadingArticles=Đang tải tin bài %S-%S
+bytesReceived=Đang tải nhóm tin: Đã nhận %S (đã đọc %S kB ở tốc độ %S kB/giây)
+downloadingArticlesForOffline=Đang tải tin các bài %S-%S trên tổng %S
+
+# LOCALIZATION NOTE (autoUnsubscribeText): %1$S is the newsgroup and %2$S is the newsgroup-server it is being removed from.
+autoUnsubscribeText=Nhóm tin %1$S có vẻ không tồn tại trên máy chủ %2$S. Bạn có muốn bỏ đăng kí nó?
+
+# LOCALIZATION NOTE (autoSubscribeText): %1$S is the newsgroup.
+autoSubscribeText=Bạn có muốn đăng kí %1$S?
+
+# LOCALIZATION NOTE (Error -304): In the following item, don't translate "NNTP"
+# Error - server error
+## @name NNTP_ERROR_MESSAGE
+## @loc None
+-304=Một lỗi Tin (NNTP) xảy ra:
+
+# Error - newsgroup scan error
+## @name NNTP_NEWSGROUP_SCAN_ERROR
+## @loc None
+-305=Một lỗi tin xảy ra. Việc quét toàn bộ nhóm tin đã không hoàn thành. Hãy thử Hiển thị Tất cả Nhóm tin lại lần nữa
+
+# Error - NNTP authinfo failure
+## @name NNTP_AUTH_FAILED
+## @loc None
+-260=Một lỗi xác thực xảy ra. Vui lòng nhập lại tên và/hoặc mật khẩu.
+
+# Error - TCP error
+## @name TCP_ERROR
+## @loc None
+-206=Một lỗi liên lạc xảy ra. Hãy thử kết nối lại. Lỗi TCP:
diff --git a/l10n-vi/mail/chrome/messenger/newsError.dtd b/l10n-vi/mail/chrome/messenger/newsError.dtd
new file mode 100644
index 0000000000..08a9b4966d
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/newsError.dtd
@@ -0,0 +1,31 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- LOCALIZATION NOTE (newsError.title): The title of the news error page.
+ Not generally visible. -->
+<!ENTITY newsError.title "Gặp vấn đề khi tải bài viết">
+
+<!-- LOCALIZATION NOTE (articleNotFound.title): The main heading for the news
+ error page. -->
+<!ENTITY articleNotFound.title "Không tìm thấy bài viết">
+
+<!-- LOCALIZATION NOTE (articleNotFound.desc): A longer description for the news
+ error page. -->
+<!ENTITY articleNotFound.desc "Máy chủ nhóm tin báo cáo rằng nó không tìm thấy bài viết nào.">
+
+<!-- LOCALIZATION NOTE (serverResponded.title): A string preceding the text
+ response from the newsgroup server describing the error. -->
+<!ENTITY serverResponded.title "Máy chủ nhóm tin đã trả lời:">
+
+<!-- LOCALIZATION NOTE (articleExpired.title): A string explaining that the
+ article may have expired. -->
+<!ENTITY articleExpired.title "Có lẽ bài viết đã hết hạn?">
+
+<!-- LOCALIZATION NOTE (trySearching.title): A string preceding the message's
+ ID. -->
+<!ENTITY trySearching.title "Hãy thử tìm kiếm bài viết:">
+
+<!-- LOCALIZATION NOTE (removeExpiredArticles.title): The label for the button
+ to remove all expired articles from the newsgroup. -->
+<!ENTITY removeExpiredArticles.title "Xóa tất cả các bài viết đã hết hạn">
diff --git a/l10n-vi/mail/chrome/messenger/oeImportMsgs.properties b/l10n-vi/mail/chrome/messenger/oeImportMsgs.properties
new file mode 100644
index 0000000000..9f2e07d1ad
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/oeImportMsgs.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/.
+
+#
+# The following are used by the outlook express import code to display status/error
+# and informational messages
+#
+
+# Short name of import module
+## @name OEIMPORT_NAME
+## @loc None
+## LOCALIZATION NOTE (2000): DONT_TRANSLATE
+2000=Outlook Express
+
+# Description of import module
+## @name OEIMPORT_DESCRIPTION
+## @loc None
+## LOCALIZATION NOTE (2011): In this item, don't translate "Outlook Express"
+2011=Thư, sổ địa chỉ, và thiết lập Outlook Express
+
+# Success message
+## @name OEIMPORT_MAILBOX_SUCCESS
+## @loc None
+## LOCALIZATION NOTE (2002): In this item, don't translate "%S" or "%d"
+## The variable %S will contain the name of the Mailbox
+## The variable %d will contain the number of messages
+2002=Hộp thư %S, đã nhập %d thư
+
+# Error message
+## @name OEIMPORT_MAILBOX_BADPARAM
+## @loc None
+2003=Tham số xấu được đưa qua để nhập hộp thư.
+
+# Error message
+## @name OEIMPORT_MAILBOX_BADSOURCEFILE
+## @loc None
+## LOCALIZATION NOTE (2004): In this item, don't translate "%S"
+## The variable %S will contain the name of the Mailbox
+2004=Lỗi khi đang truy cập tập tin cho hộp thư %S.
+
+# Error message
+## @name OEIMPORT_MAILBOX_CONVERTERROR
+## @loc None
+## LOCALIZATION NOTE (2005): In this item, don't translate "%S"
+## The variable %S will contain the name of the Mailbox
+2005=Lỗi khi đang nhập hộp thư %S, có thể tất cả thư sẽ được nhập từ hộp thư này.
+
+# Default name of imported addressbook
+## @name OEIMPORT_DEFAULT_NAME
+## @loc None
+2006=Sổ địa chỉ Outlook Express
+
+# Autofind description
+## @name OEIMPORT_AUTOFIND
+## @loc None
+2007=Sổ địa chỉ Outlook Express (sổ địa chỉ windows)
+
+# Description
+## @name OEIMPORT_ADDRESS_SUCCESS
+## @loc None
+## LOCALIZATION NOTE (2006): In this item, don't translate "%S"
+## The variable %S will receive the name of the address book
+2008=Đã nhập sổ địa chỉ %S
+
+# Error message
+## @name OEIMPORT_ADDRESS_CONVERTERROR
+## @loc None
+## LOCALIZATION NOTE (2009): In this item, don't translate "%S"
+## The variable %S will receive the name of the address book
+2009=Lỗi khi đang nhập sổ địa chỉ %S, có thể tất cả địa chỉ đã không được nhập hết.
+
+# Error message
+## @name OEIMPORT_ADDRESS_BADPARAM
+## @loc None
+2010=Tham số xấu được đưa qua để nhập sổ địa chỉ.
diff --git a/l10n-vi/mail/chrome/messenger/offline.properties b/l10n-vi/mail/chrome/messenger/offline.properties
new file mode 100644
index 0000000000..4884d1628c
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/offline.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/.
+
+# Download Messages Prompt
+downloadMessagesWindowTitle1=Tải thư
+downloadMessagesLabel1=Bạn có muốn tải thư để dùng ngoại tuyến trước khi rời mạng không?
+downloadMessagesCheckboxLabel1=Luôn hỏi mỗi khi tôi chuyển sang ngoại tuyến
+downloadMessagesNow2=Tải ngay (&D)
+
+# Send Messages Prompt
+sendMessagesWindowTitle1=Thư chưa gửi
+sendMessagesLabel2=Bạn có muốn gửi những thư chưa gửi của bạn ngay bây giờ không?
+sendMessagesCheckboxLabel1=Luôn hỏi mỗi khi tôi trực tuyến
+sendMessagesNow2=Gửi ngay (&S)
+
+processMessagesLater2=Để sau (&L)
+
+# GetMessages While Offline Prompt
+getMessagesOfflineWindowTitle1=Nhận thư
+getMessagesOfflineLabel1=Bạn hiện đang ngoại tuyến. Bạn có muốn quay lại trực tuyến để nhận thư mới không?
+
+# Send Messages Offline Prompt
+sendMessagesOfflineWindowTitle1=Thư chưa gửi
+sendMessagesOfflineLabel1=Bạn hiện đang ngoại tuyến. Bạn có muốn quay lại trực tuyến để gửi những thư chưa gửi không?
+
+offlineTooltip=Bạn hiện đang ngoại tuyến.
+onlineTooltip=Bạn hiện đang trực tuyến.
diff --git a/l10n-vi/mail/chrome/messenger/offlineStartup.properties b/l10n-vi/mail/chrome/messenger/offlineStartup.properties
new file mode 100644
index 0000000000..c02d5fb0d9
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/offlineStartup.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/.
+
+title=Làm việc trực tuyến
+desc=Bạn có muốn trực tuyến ngay bây giờ không?\n\n(Nếu bạn chọn làm việc ngoại tuyến, bạn có thể trở lại trực tuyến sau - chọn `Ngoại tuyến' từ menu `Tập tin', rồi bỏ chọn `Làm việc ngoại tuyến'.)
+workOnline=Làm việc trực tuyến
+workOffline=Làm việc ngoại tuyến
diff --git a/l10n-vi/mail/chrome/messenger/outlookImportMsgs.properties b/l10n-vi/mail/chrome/messenger/outlookImportMsgs.properties
new file mode 100644
index 0000000000..e9f29ce859
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/outlookImportMsgs.properties
@@ -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/.
+
+#
+# The following are used by the outlook express import code to display status/error
+# and informational messages
+#
+
+#
+# The following are used by the outlook express import code to display status/error
+# and informational messages
+#
+
+# Short name of import module
+## @name OUTLOOKIMPORT_NAME
+## @loc None
+## LOCALIZATION NOTE (2000): DONT_TRANSLATE
+2000=Outlook
+
+# Description of import module
+## @name OUTLOOKIMPORT_DESCRIPTION
+## @loc None
+## LOCALIZATION NOTE (2010): In this item, don't translate "Outlook"
+2010=Thư, sổ địa chỉ, và thiết lập Outlook
+
+# Success message
+## @name OUTLOOKIMPORT_MAILBOX_SUCCESS
+## @loc None
+## LOCALIZATION NOTE (2002): In this item, don't translate "%S" or "%d"
+## The variable %S will receive the name of the mailbox
+## The variable %d will receive the number of messages
+2002=Hộp thư %S, đã nhập %d thư
+
+# Error message
+## @name OUTLOOKIMPORT_MAILBOX_BADPARAM
+## @loc None
+2003=Tham số xấu được đưa qua để nhập hộp thư.
+
+# Error message
+## @name OUTLOOKIMPORT_MAILBOX_CONVERTERROR
+## @loc None
+## LOCALIZATION NOTE (2004): In this item, don't translate "%S"
+## The variable %S will receive the name of the mailbox
+2004=Lỗi khi đang nhập hộp thư %S, có thể tất cả thư sẽ được nhập từ hộp thư này.
+
+# Address book name
+## @name OUTLOOKIMPORT_ADDRNAME
+## @loc None
+## LOCALIZATION NOTE (2005): In this item, don't translate "Outlook"
+2005=Sổ địa chỉ Outlook
+
+# Description
+## @name OUTLOOKIMPORT_ADDRESS_SUCCESS
+## @loc None
+## LOCALIZATION NOTE (2006): In this item, don't translate "%S"
+## The variable %S will receive the name of the address book
+2006=Đã nhập sổ địa chỉ %S
+
+# Error message
+## @name OUTLOOKIMPORT_ADDRESS_BADPARAM
+## @loc None
+2007=Tham số xấu xen vào việc nhập sổ địa chỉ.
+
+# Error message
+## @name OUTLOOKIMPORT_ADDRESS_BADSOURCEFILE
+## @loc None
+## LOCALIZATION NOTE (2008): In this item, don't translate "%S"
+## The variable %S will receive the name of the address book
+2008=Lỗi khi đang truy cập tập tin cho sổ địa chỉ %S.
+
+# Error message
+## @name OUTLOOKIMPORT_ADDRESS_CONVERTERROR
+## @loc None
+## LOCALIZATION NOTE (2009): In this item, don't translate "%S"
+## The variable %S will receive the name of the address book
+2009=Lỗi khi đang nhập sổ địa chỉ %S, có thể tất cả địa chỉ đã không được nhập hết.
+
diff --git a/l10n-vi/mail/chrome/messenger/pgpmime.properties b/l10n-vi/mail/chrome/messenger/pgpmime.properties
new file mode 100644
index 0000000000..b44ac456fc
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/pgpmime.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/.
+
+#
+# The following are used by the pgpmime content type handler
+#
+
+# LOCALIZATION NOTE(pgpMimeNeedsAddon): The text can contain HTML tags.
+pgpNotAvailable=Đây là thư OpenPGP được mã hóa, nhưng không hỗ trợ giải mã OpenPGP.
diff --git a/l10n-vi/mail/chrome/messenger/preferences/applicationManager.properties b/l10n-vi/mail/chrome/messenger/preferences/applicationManager.properties
new file mode 100644
index 0000000000..4150e29137
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/preferences/applicationManager.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/.
+
+# LOCALIZATION NOTE
+# in descriptionApplications, %S will be replaced by one of the 3 following strings
+descriptionApplications=Các chương trình sau có thể được dùng để xử lí %S.
+
+handleProtocol=%S liên kết
+handleFile=%S nội dung
+
+descriptionWebApp=Ứng dụng web này được đặt tại:
+descriptionLocalApp=Ứng dụng này được đặt tại:
diff --git a/l10n-vi/mail/chrome/messenger/preferences/applications.properties b/l10n-vi/mail/chrome/messenger/preferences/applications.properties
new file mode 100644
index 0000000000..c3cf03faae
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/preferences/applications.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/.
+
+# LOCALIZATION NOTE (dialog_removeAccount):
+# %S will be replaced with the user-defined name of a storage account.
+dialog_removeAccount=Bạn có chắc chắn muốn xóa tài khoản "%S" không?
+
+# LOCALIZATION NOTE (addProvider):
+# %S will be replace with the display name of a provider, e.g. DropBox
+addProvider=Thêm %S
+
+notConfiguredYet=Tài khoản này chưa được cấu hình
diff --git a/l10n-vi/mail/chrome/messenger/preferences/messagestyle.properties b/l10n-vi/mail/chrome/messenger/preferences/messagestyle.properties
new file mode 100644
index 0000000000..162f783432
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/preferences/messagestyle.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/.
+
+# Content of preview conversation for chat message styles
+default=Mặc định
+nick1=Florian
+buddy1=florian@im.instantbird.org
+nick2=Patrick
+buddy2=patrick@im.instantbird.org
+message1=Chào! :-)
+message2=Chuyện gì thế?
+message3=Tôi đang thử Thunderbird! ;-)
diff --git a/l10n-vi/mail/chrome/messenger/preferences/preferences.properties b/l10n-vi/mail/chrome/messenger/preferences/preferences.properties
new file mode 100644
index 0000000000..94700d258c
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/preferences/preferences.properties
@@ -0,0 +1,118 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 HTML and Plain Text Domain Names for sendOption
+html_domainsAddDomainTitle=Thêm tên miền HTML
+html_domainsAddDomain=Tên miền HTML:
+plaintext_domainsAddDomainTitle=Thêm tên miền văn bản thuần túy
+plaintext_domainsAddDomain=Tên miền văn bản thuần túy:
+
+domainNameErrorTitle=Lỗi tên miền
+#### LOCALIZATION NOTE: do not translate %S
+domainDuplicationError=Tên miền %S đã tồn tại trong danh sách HTML hoặc văn bản thuần túy.
+
+#### Junk
+confirmResetJunkTrainingTitle=Xác nhận
+confirmResetJunkTrainingText=Bạn có chắc chắn muốn đặt lại dữ liệu đào tạo bộ lọc thích ứng?
+
+#### Downloads
+desktopFolderName=Bàn làm việc
+myDownloadsFolderName=Tải xuống của tôi
+chooseAttachmentsFolderTitle=Chọn thư mục
+
+#### Applications
+
+fileEnding=Tập tin %S
+saveFile=Lưu tập tin
+
+# LOCALIZATION NOTE (useApp, useDefault): %S = Application name
+useApp=Dùng %S
+useDefault=Dùng %S (mặc định)
+
+useOtherApp=Dùng chương trình khác…
+fpTitleChooseApp=Chọn ứng dụng trợ giúp
+manageApp=Chi tiết ứng dụng…
+alwaysAsk=Luôn hỏi
+delete=Xóa thao tác
+confirmDeleteTitle=Xóa thao tác
+confirmDeleteText=Bạn có chắc là mình muốn xóa thao tác này không?
+
+# LOCALIZATION NOTE (typeDescriptionWithDetails):
+# %1$S = type description (for example "Portable Document Format")
+# %2$S = details (see below, for example "(application/pdf: .pdf, .pdfx)")
+typeDescriptionWithDetails=%1$S %2$S
+
+# LOCALIZATION NOTE (typeDetailsWithTypeOrExt):
+# %1$S = type or extensions (for example "application/pdf", or ".pdf, .pdfx")
+typeDetailsWithTypeOrExt=(%1$S)
+
+# LOCALIZATION NOTE (typeDetailsWithTypeAndExt):
+# %1$S = type (for example "application/pdf")
+# %2$S = extensions (for example ".pdf, .pdfx")
+typeDetailsWithTypeAndExt=(%1$S: %2$S)
+
+#### Sound Notifications
+soundFilePickerTitle=Chọn âm thanh
+
+#### Search Engine Picker
+searchEnginePickerTitle=Chọn công cụ tìm kiếm
+searchEngineType2=Công cụ tìm kiếm
+
+#### Remote content
+imagepermissionstext=Bạn có thể chỉ định từ đó hình ảnh trang web và nội dung từ xa khác được phép tải. Bạn cũng có thể cho phép tất cả nội dung từ xa dựa trên địa chỉ e-mail của người gửi. Nhập địa chỉ của trang web hoặc e-mail bạn muốn quản lý, sau đó bấm Chặn hoặc Cho phép.
+imagepermissionstitle=Ngoại lệ - Nội dung từ xa
+
+#### Cookies
+cookiepermissionstitle=Ngoại lệ - Cookie
+cookiepermissionstext=Bạn có thể chỉ định trang web nào luôn luôn hoặc không bao giờ được đặt cookie. Gõ chính xác địa chỉ trang bạn muốn quản lí sau đó nhấp Chặn, Cho phép hoặc Cho phép theo phiên.
+
+#### Cookie Viewer
+hostColon=Máy chủ:
+domainColon=Tên miền:
+forSecureOnly=Chỉ những kết nối đã mã hóa
+forAnyConnection=Mọi loại kết nối
+expireAtEndOfSession=Khi kết thúc phiên
+
+noCookieSelected=<không cookie nào được chọn>
+cookiesAll=Các cookie sau được lưu trong máy tính của bạn:
+cookiesFiltered=Những cookie sau khớp với thông tin bạn tìm:
+# LOCALIZATION NOTE (removeSelectedCookies):
+# Semicolon-separated list of plural forms. See:
+# https://developer.mozilla.org/en/docs/Localization_and_Plurals
+# If you need to display the number of selected elements in your language,
+# you can use #1 in your localization as a placeholder for the number.
+# For example this is the English string with numbers:
+# removeSelectedCookies=Remove #1 Selected;Remove #1 Selected
+removeSelectedCookies=Xóa mục đã chọn
+defaultUserContextLabel=Không
+
+####Preferences::Advanced::Network
+#LOCALIZATION NOTE: The next string is for the disk usage of the cache.
+# e.g., "Your cache is currently using 200 MB"
+# %1$S = size
+# %2$S = unit (MB, KB, etc.)
+actualDiskCacheSize=Bộ đệm của bạn đang chiếm %1$S %2$S dung lượng đĩa
+actualDiskCacheSizeCalculated=Đang tính toán kích thước bộ nhớ đệm…
+
+# LOCALIZATION NOTE (labelDefaultFont): %S = font name
+labelDefaultFont=Mặc định (%S)
+labelDefaultFontUnnamed=Mặc định
+
+# LOCALIZATION NOTE (appLocale.label): %S = Name of the application locale,
+# e.g. English (United States)
+appLocale.label=Ngôn ngữ ứng dụng: %S
+appLocale.accesskey=o
+# LOCALIZATION NOTE (rsLocale.label): %S = Name of the locale chosen in regional settings,
+# e.g. German (Germany)
+rsLocale.label=Ngôn ngữ cài đặt khu vực: %S
+rsLocale.accesskey=e
+
+#### Master Password (Moved to Fluent in M-C in bug 1435915)
+pw_change2empty_in_fips_mode=Bạn đang ở chế độ FIPS. FIPS yêu cầu mật khẩu chính không được để trống.
+pw_change_failed_title=Thay đổi mật khẩu không thành công
+
+applications-type-pdf = Định dạng tài liệu di động (PDF)
+
+# LOCALIZATION NOTE (previewInApp): %S = brandShortName
+previewInApp=Xem trước trong %S
diff --git a/l10n-vi/mail/chrome/messenger/prefs.properties b/l10n-vi/mail/chrome/messenger/prefs.properties
new file mode 100644
index 0000000000..0d54b8af0e
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/prefs.properties
@@ -0,0 +1,90 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 are used by the Account Wizard
+#
+enterValidEmail=Vui lòng nhập một địa chỉ email hợp lệ.
+accountNameExists=Tài khoản có tên này đã tồn tại. Vui lòng nhập một tên tài khoản khác.
+accountNameEmpty=Tên tài khoản không thể để trống.
+modifiedAccountExists=Đã tồn tại một tài khoản có cùng tên người dùng hoặc tên máy chủ đó. Vui lòng nhập một tên máy chủ và/hoặc tên người dùng khác.
+userNameChanged=Tên người dùng của bạn đã được cập nhật. Bạn cũng có thể cần cập nhật địa chỉ email và/hoặc tên người dùng được liên kết với tài khoản này.
+serverNameChanged=Cài đặt tên máy chủ đã thay đổi. Vui lòng xác minh rằng mọi thư mục được sử dụng bởi các bộ lọc đều tồn tại trên máy chủ mới.
+# LOCALIZATION NOTE (junkSettingsBroken): %1$S is the account name
+junkSettingsBroken=Cài đặt thư rác trên tài khoản "%1$S" có thể xảy ra sự cố. Bạn có muốn xem lại chúng trước khi lưu cài đặt tài khoản?
+# LOCALIZATION NOTE (localDirectoryChanged): %1$S is program name (&brandShortName;)
+localDirectoryChanged=%1$S cần khởi động lại ngay để áp dụng thay đổi cho cài đặt thư mục cục bộ.
+localDirectoryRestart=Khởi động lại
+userNameEmpty=Tên người dùng không thể để trống.
+# LOCALIZATION NOTE (localDirectoryInvalid): %1$S is path to folder
+localDirectoryInvalid=Đường dẫn thư mục cục bộ "%1$S" không hợp lệ. Vui lòng chọn một thư mục khác.
+# LOCALIZATION NOTE (localDirectoryNotAllowed): %1$S is path to folder
+localDirectoryNotAllowed=Đường dẫn thư mục cục bộ "%1$S" không phù hợp để lưu trữ thư. Vui lòng chọn một thư mục khác.
+# if the user chooses to cancel the wizard when no accounts are there throw a message
+# LOCALIZATION NOTE (cancelWizard)
+# do not localize "\n\n"
+cancelWizard=Bạn có chắc chắn muốn thoát trình hướng dẫn tài khoản không?\n\nNếu bạn thoát, mọi thông tin bạn đã nhập sẽ bị mất và tài khoản sẽ không được tạo.
+accountWizard=Trình hướng dẫn tài khoản
+WizardExit=Thoát
+WizardContinue=Hủy bỏ
+# when the wizard already has a domain (Should we say something different?)
+enterValidServerName=Vui lòng nhập tên máy chủ hợp lệ.
+failedRemoveAccount=Không thể xóa tài khoản này.
+#LOCALIZATION NOTE: accountName: %1$S is server name, %2$S is user name
+accountName=%1$S - %2$S
+
+# LOCALIZATION NOTE: confirmDeferAccountWarning: do not localize "\n\n", it means a new empty line in the string.
+confirmDeferAccountWarning=Nếu bạn lưu trữ thư mới của tài khoản này trong hộp thư đến của tài khoản khác, bạn sẽ không còn có thể truy cập email đã tải xuống cho tài khoản này. Nếu bạn có thư trong tài khoản này, vui lòng sao chép nó sang tài khoản khác trước.\n\nNếu bạn có bộ lọc thư vào tài khoản này, bạn nên vô hiệu hóa chúng hoặc thay đổi thư mục đích. Nếu bất kỳ tài khoản nào có thư mục đặc biệt trong tài khoản này (đã gửi, thư nháp, mẫu, lưu trữ, thư rác), bạn nên thay đổi chúng thành tài khoản khác.\n\nBạn có muốn lưu email của tài khoản này vào một tài khoản khác không?
+confirmDeferAccountTitle=Trì hoãn tài khoản?
+
+directoryAlreadyUsedByOtherAccount=Thư mục được chỉ định trong cài đặt thư mục cục bộ đã được sử dụng bởi tài khoản "%S". Vui lòng chọn một thư mục khác.
+directoryParentUsedByOtherAccount=Thư mục mẹ của thư mục được chỉ định trong cài đặt thư mục cục bộ đã được sử dụng bởi tài khoản "%S". Vui lòng chọn một thư mục khác.
+directoryChildUsedByOtherAccount=Thư mục con của thư mục được chỉ định trong cài đặt thư mục cục bộ đã được sử dụng bởi tài khoản "%S". Vui lòng chọn một thư mục khác.
+#Provide default example values for sample email address
+exampleEmailUserName=user
+exampleEmailDomain=example.net
+emailFieldText=Địa chỉ email:
+#LOCALIZATION NOTE: defaultEmailText: %1$S is user name, %2$S is domain
+defaultEmailText=Nhập địa chỉ email của bạn. Đây là địa chỉ mà người khác sẽ dùng để gửi email cho bạn (ví dụ, "%1$S@%2$S").
+#LOCALIZATION NOTE: customizedEmailText: %1$S is provider, %2$S is email username, %3$S is sample email, %4$S is sample username
+customizedEmailText=Nhập %1$S %2$S của bạn (ví dụ, nếu địa chỉ email %1$S của bạn là "%3$S", %2$S của bạn sẽ là "%4$S").
+
+# account manager stuff
+prefPanel-server=Cài đặt máy chủ
+prefPanel-copies=Bản sao & thư mục
+prefPanel-synchronization=Đồng bộ hóa & lưu trữ
+prefPanel-diskspace=Dung lượng đĩa
+prefPanel-addressing=Soạn thảo & giải quyết
+prefPanel-junk=Cài đặt thư rác
+## LOCALIZATION NOTE (prefPanel-smtp): Don't translate "SMTP"
+prefPanel-smtp=Máy chủ gửi thư (SMTP)
+
+# account manager multiple identity support
+#LOCALIZATION NOTE: accountName: %1$S
+identity-list-title=Danh tính cho %1$S
+
+identityDialogTitleAdd=Danh tính mới
+## LOCALIZATION NOTE (identityDialogTitleEdit): %S is the identity name
+identityDialogTitleEdit=Chỉnh sửa %S
+
+identity-edit-req=Bạn phải xác định một địa chỉ email hợp lệ cho danh tính này.
+identity-edit-req-title=Lỗi khi tạo danh tính
+
+## LOCALIZATION NOTE (identity-delete-confirm): %S is the identity name
+# and should be put on a new line. The new line is produced with the "\n" string.
+identity-delete-confirm=Bạn có chắc chắn muốn xóa danh tính này không?\n%S
+## LOCALIZATION NOTE (identity-delete-confirm-title): %S is the account name
+identity-delete-confirm-title=Xóa danh tính cho %S
+identity-delete-confirm-button=Xóa
+
+choosefile=Chọn một tập tin
+
+forAccount=Đối với tài khoản "%S"
+
+removeFromServerTitle=Xác nhận xóa thư vĩnh viễn, tự động
+removeFromServer=Cài đặt này sẽ xóa vĩnh viễn các thư cũ khỏi máy chủ từ xa và bộ nhớ cục bộ của bạn. Bạn có chắc muốn tiếp tục?
+
+confirmSyncChangesTitle=Xác nhận thay đổi đồng bộ hóa
+confirmSyncChanges=Cài đặt đồng bộ hóa thư đã được thay đổi.\n\nBạn có muốn lưu chúng không?
+confirmSyncChangesDiscard=Loại bỏ
+
diff --git a/l10n-vi/mail/chrome/messenger/quickFilterBar.dtd b/l10n-vi/mail/chrome/messenger/quickFilterBar.dtd
new file mode 100644
index 0000000000..44ddd70f70
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/quickFilterBar.dtd
@@ -0,0 +1,276 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.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 (quickFilterBar.qfbShowFilterBar.label):
+ The label for the button on the tab bar that toggles the visibility of
+ the quick filter bar.
+ -->
+<!ENTITY quickFilterBar.qfbShowFilterBar.label
+ "Bộ lọc nhanh">
+
+<!-- LOCALIZATION NOTE (quickFilterBar.toggleBarVisibility.menu.label):
+ The label to display for the "View... Toolbars..." menu item that controls
+ whether the quick filter bar is visible.
+ -->
+<!ENTITY quickFilterBar.toggleBarVisibility.menu.label
+ "Thanh bộ lọc nhanh">
+
+<!-- LOCALIZATION NOTE (quickFilterBar.toggleBarVisibility.menu.accesskey):
+ The access key for the "View... Toolbars..." menu item label that controls
+ whether the quick filter bar is visible.
+ -->
+<!ENTITY quickFilterBar.toggleBarVisibility.menu.accesskey
+ "Q">
+
+<!-- LOCALIZATION NOTE (quickFilterBar.toggleBarVisibility.appmenu.label):
+ The label to display for the "App Menu... Preferences..." menu item that
+ controls whether the quick filter bar is visible.
+ -->
+<!ENTITY quickFilterBar.toggleBarVisibility.appmenu.label
+ "Thanh bộ lọc nhanh">
+
+<!-- LOCALIZATION NOTE (quickFilterBar.toggleBarVisibility.button.tooltip):
+ The tooltip to display when hovering over the button on the tab bar that
+ toggles the visibility of the quick filter bar.
+ -->
+<!ENTITY quickFilterBar.toggleBarVisibility.button.tooltip
+ "Bật/tắt thanh bộ lọc nhanh">
+
+<!-- LOCALIZATION NOTE (quickFilterBar.sticky.tooltip):
+ The tooltip to display when the user hovers over the sticky button
+ (currently displayed as a push-pin). When active, the sticky button
+ causes the current filter settings to be retained when the user changes
+ folders or opens new tabs. (When inactive, only the state of the text
+ filters are propagated between folder changes and when opening new tabs.)
+ -->
+<!ENTITY quickFilterBar.sticky.tooltip
+ "Giữ các bộ lọc được áp dụng khi chuyển đổi thư mục">
+
+<!-- LOCALIZATION NOTE (quickFilterBar.unread.label):
+ The label for the filter button that causes us to filter results to only
+ include unread messages.
+ -->
+<!ENTITY quickFilterBar.unread.label
+ "Chưa đọc">
+
+<!-- LOCALIZATION NOTE (quickFilterBar.unread.tooltip):
+ The tooltip for the filter button that causes us to filter results to only
+ include unread messages.
+ -->
+<!ENTITY quickFilterBar.unread.tooltip
+ "Chỉ hiện các thư chưa đọc">
+
+<!-- LOCALIZATION NOTE (quickFilterBar.starred.label):
+ The label for the filter button that causes us to filter results to only
+ include messages that have been starred/flagged.
+ -->
+<!ENTITY quickFilterBar.starred.label
+ "Gắn sao">
+
+<!-- LOCALIZATION NOTE (quickFilterBar.starred.tooltip):
+ The tooltip for the filter button that causes us to filter results to only
+ include messages that have been starred/flagged.
+ -->
+<!ENTITY quickFilterBar.starred.tooltip
+ "Chỉ hiện các thư gắn sao">
+
+<!-- LOCALIZATION NOTE (quickFilterBar.inaddrbook.label):
+ The label for the filter button that causes us to filter results to only
+ include messages from contacts in one of the user's non-remote address
+ books.
+ -->
+<!ENTITY quickFilterBar.inaddrbook.label
+ "Liên hệ">
+
+<!-- LOCALIZATION NOTE (quickFilterBar.inaddrbook.tooltip):
+ The tooltip for the filter button that causes us to filter results to only
+ include messages from contacts in one of the user's non-remote address
+ books.
+ -->
+<!ENTITY quickFilterBar.inaddrbook.tooltip
+ "Chỉ hiện thư tin từ những người trong sổ địa chỉ của bạn">
+
+<!-- LOCALIZATION NOTE (quickFilterBar.tags.label):
+ The label for the filter button that causes us to filter results to only
+ include messages with at least one tag on them.
+ -->
+<!ENTITY quickFilterBar.tags.label
+ "Nhãn">
+
+<!-- LOCALIZATION NOTE (quickFilterBar.tags.tooltip):
+ The tooltip for the filter button that causes us to filter results to only
+ include messages with at least one tag on them.
+ -->
+<!ENTITY quickFilterBar.tags.tooltip
+ "Chỉ hiện các thư có dán nhãn">
+
+<!-- LOCALIZATION NOTE (quickFilterBar.attachment.label):
+ The label for the filter button that causes us to filter results to only
+ include messages with attachments.
+ -->
+<!ENTITY quickFilterBar.attachment.label
+ "Đính kèm">
+
+<!-- LOCALIZATION NOTE (quickFilterBar.attachment.tooltip):
+ The tooltip for the filter button that causes us to filter results to only
+ include messages with attachments.
+ -->
+<!ENTITY quickFilterBar.attachment.tooltip
+ "Chỉ hiện các thư có phần đính kèm">
+
+<!-- LOCALIZATION NOTE (quickFilterBar.resultsLabel.some.formatString):
+ This is used to populate the results box; it either displays the
+ number of messages found using this string, that there are no messages
+ (using quickFilterBar.resultsLabel.none), or the box is hidden.
+ This is a pluralizable string used to express the number of messages in
+ the results. We replace the '#1' with the number of messages, otherwise
+ see the following URL For more information:
+ https://developer.mozilla.org/En/Localization_and_Plurals
+ -->
+<!ENTITY quickFilterBar.resultsLabel.some.formatString
+ "#1 thư;#1 thư">
+
+<!-- LOCALIZATION NOTE (quickFilterBar.resultsLabel.none):
+ The contents of the results box when there is a filter active but there
+ are no messages matching the filter.
+ -->
+<!ENTITY quickFilterBar.resultsLabel.none
+ "Không có kết quả">
+
+<!-- LOCALIZATION NOTE (quickFilterBar.resultsLabel.minWidth):
+ The minimum width, in pixels, of the results label. Please size this
+ so that a 3 or 4 digit number of messages in the results can be displayed
+ without growing the size of the box. You can tell this has been
+ accomplished if adding a filter constraint that changes the displayed
+ string to your "no results" string does not result in any changes to the
+ size of the text box to the label's right. (If your string for
+ "no results" is longer than the "#### messages" case, then size for that.
+ -->
+<!ENTITY quickFilterBar.resultsLabel.minWidth
+ "100">
+
+<!-- LOCALIZATION NOTE (quickFilterBar.textbox.emptyText.base1):
+ This is the base of the empty text for the text search box. We replace
+ #1 with the contents of the appropriate
+ quickFilterBar.textbox.emptyText.keyLabel.* value for the platform.
+ The goal is to convey to the user that typing in the box will filter
+ the messages and that there is a hotkey they can press to get to the
+ box faster.
+ -->
+<!ENTITY quickFilterBar.textbox.emptyText.base1
+ "Lọc các tin nhắn này #1">
+
+<!-- LOCALIZATION NOTE (quickFilterBar.show.key2):
+ This is the key used to show the quick filter bar. -->
+<!ENTITY quickFilterBar.show.key2
+ "k">
+
+<!-- LOCALIZATION NOTE (quickFilterBar.textbox.emptyText.keyLabel.nonmac):
+ The description of the key-binding to get into the box on windows and
+ linux (which use the control key). This should match the value of
+ quickFilterBar.show.key above.
+ -->
+<!ENTITY quickFilterBar.textbox.emptyText.keyLabel2.nonmac
+ "&lt;Ctrl+Shift+K&gt;">
+
+<!-- LOCALIZATION NOTE (quickFilterBar.textbox.emptyText.keyLabel.mac):
+ The description of the key-binding to get into the box on mac systems.
+ This should match the value of quickFilterBar.show.key above.
+ -->
+<!ENTITY quickFilterBar.textbox.emptyText.keyLabel2.mac
+ "&lt;&#x21E7;&#x2318;K&gt;">
+
+<!-- LOCALIZATION NOTE (quickFilterBar.booleanMode.tooltip):
+ Tooltip of the Any of / All of tagging mode selector.
+ -->
+<!ENTITY quickFilterBar.booleanMode.tooltip "Chế độ lọc nhãn">
+
+<!-- LOCALIZATION NOTE (quickFilterBar.booleanModeAny.label):
+ Tooltip of the Any of / All of tagging mode selector.
+ -->
+<!ENTITY quickFilterBar.booleanModeAny.label "Bất kỳ của">
+
+<!-- LOCALIZATION NOTE (quickFilterBar.booleanModeAny.tooltip):
+ Tooltip of the Any of / All of tagging mode selector.
+ -->
+<!ENTITY quickFilterBar.booleanModeAny.tooltip "Ít nhất một trong các tiêu chí nhãn được chọn phải phù hợp">
+
+<!-- LOCALIZATION NOTE (quickFilterBar.booleanModeAll.label):
+ Tooltip of the Any of / All of tagging mode selector.
+ -->
+<!ENTITY quickFilterBar.booleanModeAll.label "Nguyên văn của">
+
+<!-- LOCALIZATION NOTE (quickFilterBar.booleanModeAll.tooltip):
+ Tooltip of the Any of / All of tagging mode selector.
+ -->
+<!ENTITY quickFilterBar.booleanModeAll.tooltip "Tất cả các tiêu chí nhãn được chọn phải phù hợp">
+
+<!-- LOCALIZATION NOTE (quickFilterBar.textbox.idealWidth):
+ The number of pixels for the ideal width of the quick filter box textbox.
+ Choose this value so that the emptyText fits nicely with a little bit of
+ extra whitespace.
+ -->
+<!ENTITY quickFilterBar.textbox.idealWidth
+ "320">
+
+<!-- LOCALIZATION NOTE (quickFilterBar.textbox.minWidth):
+ The minimum width of the quick filter textbox in pixels. This is the size
+ which we should refuse to flex below. When we hit this size, the buttons
+ with labels will have their labels collapsed.
+ -->
+<!ENTITY quickFilterBar.textbox.minWidth
+ "280">
+
+<!-- LOCALIZATION NOTE (quickFilterBar.textFilter.explanation.label):
+ This label explains what the sender/recipients/subject/body buttons do.
+ This string should ideally be kept short because the label and the text
+ filter buttons share their bar (that appears when there is text in the text
+ filter box) with the list of tags when the tag filter is active, and the
+ tag sub-bar wants as much space as possible. (Overflow is handled by an
+ arrow scroll box.)
+ -->
+<!ENTITY quickFilterBar.textFilter.explanation.label
+ "Lọc thư tin theo:">
+
+<!-- LOCALIZATION NOTE (quickFilterBar.textFilter.sender.label):
+ The button label that toggles whether the text filter searches the message
+ sender for the string.
+ -->
+<!ENTITY quickFilterBar.textFilter.sender.label
+ "Người gửi">
+
+<!-- LOCALIZATION NOTE (quickFilterBar.textFilter.recipients.label):
+ The button label that toggles whether the text filter searches the message
+ recipients (to, cc) for the string.
+ -->
+<!ENTITY quickFilterBar.textFilter.recipients.label
+ "Người nhận">
+
+<!-- LOCALIZATION NOTE (quickFilterBar.textFilter.subject.label):
+ The button label that toggles whether the text filter searches the message
+ subject for the string.
+ -->
+<!ENTITY quickFilterBar.textFilter.subject.label
+ "Tiêu đề">
+
+<!-- LOCALIZATION NOTE (quickFilterBar.textFilter.body.label):
+ The button label that toggles whether the text filter searches the message
+ body for the string.
+ -->
+<!ENTITY quickFilterBar.textFilter.body.label
+ "Nội dung">
+
+<!-- LOCALIZATION NOTE (quickFilterBar.glodaUpsell.continueSearch):
+ The first line of the panel popup that tells the user we found no matches
+ but we can convert to a global search for them.
+ -->
+<!ENTITY quickFilterBar.glodaUpsell.continueSearch
+ "Tiếp tục tìm kiếm này trên tất cả các thư mục">
+
+<!-- LOCALIZATION NOTE (quickFilterBar.glodaUpsell.pressEnterAndCurrent):
+ The second line of the panel popup that tells the user we found no matches.
+ This line will have #1 replaced with what the user has typed so far.
+ -->
+<!ENTITY quickFilterBar.glodaUpsell.pressEnterAndCurrent
+ "Nhấn 'Enter' một lần nữa để tiếp tục tìm kiếm của bạn cho: #1">
diff --git a/l10n-vi/mail/chrome/messenger/removeAccount.dtd b/l10n-vi/mail/chrome/messenger/removeAccount.dtd
new file mode 100644
index 0000000000..79117b760e
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/removeAccount.dtd
@@ -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/. -->
+
+<!ENTITY dialogTitle "Xóa tài khoản và dữ liệu">
+<!ENTITY removeButton.label "Xóa">
+<!ENTITY removeButton.accesskey "R">
+<!ENTITY removeAccount.label "Xóa thông tin tài khoản">
+<!ENTITY removeAccount.accesskey "a">
+<!ENTITY removeAccount.desc "Chỉ xóa kiến thức &brandShortName; của tài khoản này. Không ảnh hưởng đến chính tài khoản trên máy chủ.">
+<!ENTITY removeData.label "Xóa dữ liệu thư">
+<!ENTITY removeData.accesskey "d">
+<!ENTITY removeDataChat.label "Xóa dữ liệu hội thoại">
+<!ENTITY removeDataChat.accesskey "d">
+<!ENTITY removeDataLocalAccount.desc "Xóa tất cả các thư, thư mục và bộ lọc được liên kết với tài khoản này khỏi đĩa cục bộ của bạn. Điều này không ảnh hưởng đến một số thư vẫn có thể được lưu trên máy chủ. Không chọn điều này nếu bạn có kế hoạch lưu trữ dữ liệu cục bộ hoặc sử dụng lại nó sau trong &brandShortName;.">
+<!ENTITY removeDataServerAccount.desc "Xóa tất cả thư, thư mục và bộ lọc được liên kết với tài khoản này khỏi đĩa cục bộ của bạn. Thư và thư mục của bạn vẫn được giữ trên máy chủ.">
+<!ENTITY removeDataChatAccount.desc "Xóa tất cả nhật ký của các cuộc hội thoại được lưu trữ cho tài khoản này trên đĩa cục bộ của bạn.">
+<!ENTITY showData.label "Hiển thị vị trí dữ liệu">
+<!ENTITY showData.accesskey "S">
+<!ENTITY progressPending "Đang xóa dữ liệu đã chọn…">
+<!ENTITY progressSuccess "Xóa bỏ thành công.">
+<!ENTITY progressFailure "Xóa bỏ thất bại.">
diff --git a/l10n-vi/mail/chrome/messenger/removeAccount.properties b/l10n-vi/mail/chrome/messenger/removeAccount.properties
new file mode 100644
index 0000000000..edab6c1792
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/removeAccount.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/.
+
+removeQuestion=Bạn có chắc chắn muốn xóa tài khoản "%S" không?
diff --git a/l10n-vi/mail/chrome/messenger/renameFolderDialog.dtd b/l10n-vi/mail/chrome/messenger/renameFolderDialog.dtd
new file mode 100644
index 0000000000..79965b9e91
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/renameFolderDialog.dtd
@@ -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/. -->
+
+<!ENTITY renameFolderDialog.title "Đổi tên Thư mục">
+<!ENTITY rename.label "Nhập tên mới cho thư mục của bạn:">
+<!ENTITY rename.accesskey "N">
+<!ENTITY accept.label "Đổi tên">
+<!ENTITY accept.accesskey "i">
+
diff --git a/l10n-vi/mail/chrome/messenger/safeMode.dtd b/l10n-vi/mail/chrome/messenger/safeMode.dtd
new file mode 100644
index 0000000000..5dce3f8f48
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/safeMode.dtd
@@ -0,0 +1,21 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY safeModeDialog.title "Chế độ an toàn của &brandShortName;">
+<!ENTITY window.width "37em">
+
+<!ENTITY safeModeDescription.label "&brandShortName; đang chạy ở chế độ an toàn, nó sẽ tạm thời vô hiệu hóa mọi thiết lập cá nhân, chủ đề, tiện ích mở rộng của bạn.">
+<!ENTITY safeModeDescription2.label "Bạn có thể chuyển một số hoặc tất cả các thiết lập sau đây thành những thay đổi vĩnh viễn:">
+
+<!ENTITY disableAddons.label "Vô hiệu hóa tất cả tiện ích">
+<!ENTITY disableAddons.accesskey "D">
+
+<!ENTITY resetToolbars.label "Đặt lại các thanh công cụ và điều khiển về mặc định">
+<!ENTITY resetToolbars.accesskey "R">
+
+<!ENTITY changeAndRestartButton.label "Lưu thay đổi và khởi động lại">
+<!ENTITY changeAndRestartButton.accesskey "M">
+
+<!ENTITY continueButton.label "Tiếp tục ở chế độ an toàn">
+<!ENTITY continueButton.accesskey "C">
diff --git a/l10n-vi/mail/chrome/messenger/sanitize.dtd b/l10n-vi/mail/chrome/messenger/sanitize.dtd
new file mode 100644
index 0000000000..5449df8ff7
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/sanitize.dtd
@@ -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/. -->
+
+<!ENTITY sanitizeDialog2.title "Xóa lịch sử gần đây">
+
+<!-- XXX rearrange entities to match physical layout when l10n isn't an issue -->
+<!-- LOCALIZATION NOTE (clearTimeDuration.*): "Time range to clear" dropdown.
+ See UI mockup at bug 480169 -->
+<!ENTITY clearTimeDuration.label "Khoảng thời gian để xóa: ">
+<!ENTITY clearTimeDuration.accesskey "T">
+<!ENTITY clearTimeDuration.lastHour "Một tiếng gần đây">
+<!ENTITY clearTimeDuration.last2Hours "Hai tiếng gần đây">
+<!ENTITY clearTimeDuration.last4Hours "Bốn tiếng gần đây">
+<!ENTITY clearTimeDuration.today "Hôm nay">
+<!ENTITY clearTimeDuration.everything "Mọi thứ">
+<!-- Localization note (clearTimeDuration.suffix) - trailing entity for languages
+that require it. -->
+<!ENTITY clearTimeDuration.suffix "">
+
+<!-- LOCALIZATION NOTE (detailsProgressiveDisclosure.*): Labels and accesskeys
+ of the "Details" progressive disclosure button. See UI mockup at bug
+ 480169 -->
+<!ENTITY detailsProgressiveDisclosure.label "Chi tiết">
+<!ENTITY detailsProgressiveDisclosure.accesskey "e">
+
+
+<!ENTITY historyGroup.label "Lịch sử">
+
+<!ENTITY itemHistory.label "Lịch sử duyệt web">
+<!ENTITY itemHistory.accesskey "B">
+<!ENTITY itemCookies.label "Cookie">
+<!ENTITY itemCookies.accesskey "C">
+<!ENTITY itemCache.label "Bộ nhớ đệm">
+<!ENTITY itemCache.accesskey "A">
+
+<!-- LOCALIZATION NOTE (sanitizeEverythingUndoWarning): Second warning paragraph
+ that appears when "Time range to clear" is set to "Everything". See UI
+ mockup at bug 480169 -->
+<!ENTITY sanitizeEverythingUndoWarning "Thao tác này không thể hoàn tác được.">
+
+<!ENTITY dialog.width "28em">
diff --git a/l10n-vi/mail/chrome/messenger/seamonkeyImportMsgs.properties b/l10n-vi/mail/chrome/messenger/seamonkeyImportMsgs.properties
new file mode 100644
index 0000000000..10b6514596
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/seamonkeyImportMsgs.properties
@@ -0,0 +1,18 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+# The following are used by the seamonkey import code to display status/error
+# and informational messages
+
+# Short name of import module
+SeamonkeyImportName=SeaMonkey
+
+# Description of import module
+SeamonkeyImportDescription=Nhập sổ địa chỉ, thư và tài khoản từ SeaMonkey.
+
+# Success Message for addressbook import
+SeamonkeyImportAddressSuccess=Sổ địa chỉ đã được nhập thành công.
+
+# Success Message for mail import
+SeamonkeyImportSettingsSuccess=Thư và tài khoản cục bộ đã được nhập thành công.
diff --git a/l10n-vi/mail/chrome/messenger/search-attributes.properties b/l10n-vi/mail/chrome/messenger/search-attributes.properties
new file mode 100644
index 0000000000..4e0bf7a95a
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/search-attributes.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/.
+
+#these need to match nsMsgSearchAttrib interface in nsMsgSearchCore.idl
+#and nsMsgSearchAttribMap in nsMsgSearchAdapter.cpp
+Subject=Chủ đề
+From=Từ
+Body=Nội dung
+Date=Ngày
+Priority=Ưu tiên
+Status=Trạng thái
+To=Tới
+Cc=Cc
+ToOrCc=Tới hoặc Cc
+AgeInDays=Ngày tuổi
+SizeKB=Dung lượng (kB)
+Tags=Nhãn
+# for AB and LDAP
+AnyName=Tên bất kì
+DisplayName=Tên hiển thị
+Nickname=Tên hiệu
+ScreenName=Tên Screen
+Email=Email
+AdditionalEmail=Email phụ
+AnyNumber=Bất Cứ Số
+WorkPhone=Điện thoại công ty
+HomePhone=Điện thoại nhà
+Fax=Fax
+Pager=Máy nhắn tin
+Mobile=Di động
+City=Thành phố
+Street=Đường
+Title=Chức vụ
+Organization=Tổ chức
+Department=Bộ phận
+# more mailnews
+FromToCcOrBcc=Người gửi, người nhận, Cc hoặc Bcc
+JunkScoreOrigin=Gốc Điểm Thư Rác
+JunkPercent=Phần trăm Thư rác
+AttachmentStatus=Trạng thái Phần đính kèm
+JunkStatus=Trạng thái Thư rác
+Label=Nhãn
+Customize=Tùy biến…
+MissingCustomTerm=Thuật ngữ Tùy biến Đang thiếu
diff --git a/l10n-vi/mail/chrome/messenger/search-operators.properties b/l10n-vi/mail/chrome/messenger/search-operators.properties
new file mode 100644
index 0000000000..26cff6ec67
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/search-operators.properties
@@ -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/.
+
+0=chứa
+1=không chứa
+2=là
+3=không là
+4=là rỗng
+
+5=trước
+6=sau
+
+7=cao hơn
+8=thấp hơn
+
+9=bắt đầu bằng
+10=kết thúc bằng
+
+11=nghe giống như
+12=LdapDwim
+
+13=lớn hơn
+14=nhỏ hơn
+
+15=Hoàn tất Tên
+16=có trong sổ địa chỉ của tôi
+17=không có trong sổ địa chỉ của tôi
+18=không rỗng
+19=phù hợp
+20=không phù hợp
+
diff --git a/l10n-vi/mail/chrome/messenger/search.properties b/l10n-vi/mail/chrome/messenger/search.properties
new file mode 100644
index 0000000000..9fa690b729
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/search.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/.
+
+# these are the fields that get inserted in the search line
+# for "and" searches, this looks like:
+#
+# searchAnd0 <attribute> searchAnd1 <operator> searchAnd2 <value> searchAnd4
+#
+# for example, in english this looks like:
+# and the [Sender ] [doesn't contain] [John]
+#
+# TODO: need to special-case the first line (filterindex==0)
+
+# filter stuff
+
+searchingMessage=Đang tìm kiếm…
+# LOCALIZATION NOTE (matchesFound): #1 number of matches found
+matchesFound=#1 kết quả phù hợp;#1 kết quả phù hợp
+noMatchesFound=Không tìm thấy
+labelForStopButton=Dừng
+labelForSearchButton=Tìm kiếm
+labelForStopButton.accesskey=S
+labelForSearchButton.accesskey=S
+
+moreButtonTooltipText=Thêm một quy tắc mới
+lessButtonTooltipText=Xóa quy luật này
diff --git a/l10n-vi/mail/chrome/messenger/searchTermOverlay.dtd b/l10n-vi/mail/chrome/messenger/searchTermOverlay.dtd
new file mode 100644
index 0000000000..37dc5f88e9
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/searchTermOverlay.dtd
@@ -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/. -->
+
+<!ENTITY matchAll.label "Phù hợp tất cả những tìm kiếm sau">
+<!ENTITY matchAll.accesskey "s">
+<!ENTITY matchAny.label "Phù hợp bất kì tìm kiếm nào">
+<!ENTITY matchAny.accesskey "n">
+<!ENTITY matchAllMsgs.label "Phù hợp tất cả thư">
+<!ENTITY matchAllMsgs.accesskey "P">
+
+<!-- LOCALIZATION NOTE
+ The values below are used to control the widths of the search widgets.
+ Change the values only when the localized strings in the popup menus
+ are truncated in the widgets.
+ -->
+<!ENTITY searchTermListAttributesFlexValue "5">
+<!ENTITY searchTermListOperatorsFlexValue "5">
+<!ENTITY searchTermListValueFlexValue "5">
+
diff --git a/l10n-vi/mail/chrome/messenger/shutdownWindow.properties b/l10n-vi/mail/chrome/messenger/shutdownWindow.properties
new file mode 100644
index 0000000000..a7ad008670
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/shutdownWindow.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/.
+
+
+# These strings are loaded and represented by the XUL dialog.
+shutdownDialogTitle=Cửa sổ tiến trình tắt
+taskProgress=Đang xử lí %1$S trên tổng %2$S tác vụ
+
+# These strings are loaded by the individual shutdown tasks.
diff --git a/l10n-vi/mail/chrome/messenger/smime.properties b/l10n-vi/mail/chrome/messenger/smime.properties
new file mode 100644
index 0000000000..eae2a9291e
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/smime.properties
@@ -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/.
+
+#
+# The following are used by the smime content type handler
+#
+
+## @name NS_MSG_UNABLE_TO_OPEN_FILE
+## LOCALIZATION NOTE: the text can contain HTML tags.
+1000=Đây là một thư <B>ĐÃ MÃ HÓA</B> hoặc <B>ĐÃ KÝ</B>.<br> Ứng dụng thư này không hỗ trợ thư đã mã hóa hoặc đã ký.
diff --git a/l10n-vi/mail/chrome/messenger/smtpEditOverlay.dtd b/l10n-vi/mail/chrome/messenger/smtpEditOverlay.dtd
new file mode 100644
index 0000000000..df1e4121a5
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/smtpEditOverlay.dtd
@@ -0,0 +1,24 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY settings.caption "Thiết lập">
+<!ENTITY security.caption "Bảo mật và Xác thực">
+<!ENTITY serverName.label "Tên Máy Chủ:">
+<!ENTITY serverName.accesskey "T">
+<!ENTITY serverDescription.label "Mô tả:">
+<!ENTITY serverDescription.accesskey "M">
+<!ENTITY serverPort.label "Cổng:">
+<!ENTITY serverPort.accesskey "C">
+<!ENTITY userName.label "Tên đăng nhập:">
+<!ENTITY userName.accesskey "m">
+<!ENTITY connectionSecurity.label "Bảo mật kết nối:">
+<!ENTITY connectionSecurity.accesskey "k">
+<!ENTITY connectionSecurityType-0.label "Không có">
+<!ENTITY connectionSecurityType-1.label "STARTTLS, nếu có">
+<!ENTITY connectionSecurityType-2.label "STARTTLS">
+<!ENTITY connectionSecurityType-3.label "SSL/TLS">
+<!ENTITY smtpEditTitle.label "Máy chủ SMTP">
+<!ENTITY serverPortDefault.label "Mặc định:">
+<!ENTITY authMethod.label "Phương thức xác thực:">
+<!ENTITY authMethod.accesskey "x">
diff --git a/l10n-vi/mail/chrome/messenger/subscribe.dtd b/l10n-vi/mail/chrome/messenger/subscribe.dtd
new file mode 100644
index 0000000000..01cf9cacaf
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/subscribe.dtd
@@ -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/. -->
+
+<!ENTITY subscribeDialog.title "Đăng kí">
+<!ENTITY subscribeButton.label "Theo dõi">
+<!ENTITY subscribeButton.accesskey "e">
+<!ENTITY unsubscribeButton.label "Dừng theo dõi">
+<!ENTITY unsubscribeButton.accesskey "D">
+<!ENTITY newGroupsTab.label "Nhóm Mới">
+<!ENTITY newGroupsTab.accesskey "N">
+<!ENTITY refreshButton.label "Làm tươi">
+<!ENTITY refreshButton.accesskey "L">
+<!ENTITY stopButton.label "Dừng">
+<!ENTITY stopButton.accesskey "D">
+<!ENTITY server.label "Tài khoản:">
+<!ENTITY server.accesskey "T">
+<!ENTITY subscribedHeader.label "Theo dõi">
+<!-- commenting out until bug 38906 is fixed
+<!ENTITY messagesHeader.label "Messages"> -->
+<!ENTITY namefield.label "Hiện các mục có chứa:">
+<!ENTITY namefield.accesskey "H">
diff --git a/l10n-vi/mail/chrome/messenger/subscribe.properties b/l10n-vi/mail/chrome/messenger/subscribe.properties
new file mode 100644
index 0000000000..fc7dd293bb
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/subscribe.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/.
+
+subscribeLabel-nntp=Chọn các nhóm tin để đăng ký:
+subscribeLabel-imap=Chọn thư mục để theo dõi:
+currentListTab-nntp.label=Danh sách nhóm hiện tại
+currentListTab-nntp.accesskey=L
+currentListTab-imap.label=Danh sách thư mục
+currentListTab-imap.accesskey=L
+pleaseWaitString=Vui lòng chờ…
+offlineState=Bạn đang ngoại tuyến. Các mục không thể được lấy từ máy chủ.
+errorPopulating=Lỗi khi lấy các mục từ máy chủ.
diff --git a/l10n-vi/mail/chrome/messenger/tabmail.dtd b/l10n-vi/mail/chrome/messenger/tabmail.dtd
new file mode 100644
index 0000000000..030168d12e
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/tabmail.dtd
@@ -0,0 +1,9 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY closeTab.label "Đóng thẻ">
+<!ENTITY listAllTabs.label "Liệt kê tất cả các thẻ">
+<!-- LOCALIZATION NOTE(defaultTabTitle.label): This is the default tab
+ title to show when the tab has no title. -->
+<!ENTITY defaultTabTitle.label "Trang chủ">
diff --git a/l10n-vi/mail/chrome/messenger/taskbar.properties b/l10n-vi/mail/chrome/messenger/taskbar.properties
new file mode 100644
index 0000000000..df332a956e
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/taskbar.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/.
+
+taskbar.tasks.composeMessage.label=Viết thư mới
+taskbar.tasks.composeMessage.description=Viết thư mới.
+taskbar.tasks.openAddressBook.label=Mở sổ địa chỉ
+taskbar.tasks.openAddressBook.description=Mở sổ địa chỉ của bạn.
+
diff --git a/l10n-vi/mail/chrome/messenger/telemetry.properties b/l10n-vi/mail/chrome/messenger/telemetry.properties
new file mode 100644
index 0000000000..162fb8e03e
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/telemetry.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/.
+
+# Telemetry prompt
+# LOCALIZATION NOTE (telemetryText): %1$S will be replaced by brandFullName,
+# and %2$S by the value of the toolkit.telemetry.server_owner preference.
+telemetryText = Bạn có muốn giúp cải thiện %1$S bằng cách tự động báo cáo mức sử dụng bộ nhớ, hiệu suất và khả năng phản hồi cho %2$S không?
+telemetryLinkLabel = Tìm hiểu thêm
+telemetryYesButtonLabel = Có
+telemetryYesButtonAccessKey = Y
+telemetryNoButtonLabel = Không
+telemetryNoButtonAccessKey = N
diff --git a/l10n-vi/mail/chrome/messenger/templateUtils.properties b/l10n-vi/mail/chrome/messenger/templateUtils.properties
new file mode 100644
index 0000000000..83b5f244d5
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/templateUtils.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 yesterday: used in various places where we compute
+# a "friendly" date, e.g. displaying that a message was from yesterday.
+yesterday=hôm qua
diff --git a/l10n-vi/mail/chrome/messenger/textImportMsgs.properties b/l10n-vi/mail/chrome/messenger/textImportMsgs.properties
new file mode 100644
index 0000000000..1e8466f7c7
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/textImportMsgs.properties
@@ -0,0 +1,43 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#
+# The following are used by the outlook express import code to display status/error
+# and informational messages
+#
+
+# Short name of import module
+## @name TEXTIMPORT_NAME
+## @loc None
+2000=Tập tin văn bản (LDIF, .tab, .csv, .txt)
+
+# Description of import module
+## @name TEXTIMPORT_DESCRIPTION
+## @loc None
+2001=Nhập sổ địa chỉ từ tập tin văn bản, bao gồm: các định dạng LDIF (.ldif, .ldi), phân-cách-bằng-tab (.tab, .txt) hoặc ngăn-cách-bằng-dấu-phẩy (.csv).
+
+# Description of import module
+## @name TEXTIMPORT_ADDRESS_NAME
+## @loc None
+2002=Sổ địa chỉ văn bản
+
+# Description
+## @name TEXTIMPORT_ADDRESS_SUCCESS
+## @loc None
+2003=Đã nhập sổ địa chỉ %S
+
+# Error message
+## @name TEXTIMPORT_ADDRESS_BADPARAM
+## @loc None
+2004=Tham số xấu xen vào việc nhập sổ địa chỉ.
+
+# Error message
+## @name TEXTIMPORT_ADDRESS_BADSOURCEFILE
+## @loc None
+2005=Lỗi khi đang truy cập tập tin cho sổ địa chỉ %S.
+
+# Error message
+## @name TEXTIMPORT_ADDRESS_CONVERTERROR
+## @loc None
+2006=Lỗi khi đang nhập sổ địa chỉ %S, có thể tất cả địa chỉ đã không được nhập hết.
diff --git a/l10n-vi/mail/chrome/messenger/vCardImportMsgs.properties b/l10n-vi/mail/chrome/messenger/vCardImportMsgs.properties
new file mode 100644
index 0000000000..e5e1a39e60
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/vCardImportMsgs.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/.
+
+#
+# The following are used by the vCard import code to display status, error, and
+# informational messages
+#
+
+vCardImportName=Tập tin vCard (.vcf)
+
+vCardImportDescription=Nhập sổ địa chỉ từ định dạng vCard
+
+vCardImportAddressName=Sổ địa chỉ vCard
+
+# LOCALIZATION NOTE (vCardImportAddressSuccess): %S is replaced by the
+# name of the address book being imported.
+vCardImportAddressSuccess=Đã nhập sổ địa chỉ %S
+
+# LOCALIZATION NOTE (vCardImportAddressSuccess): %S is replaced by the
+# name of the address book being imported.
+vCardImportAddressBadSourceFile=Lỗi khi đang truy cập tập tin cho sổ địa chỉ %S.
+
+# LOCALIZATION NOTE (vCardImportAddressSuccess): %S is replaced by the
+# name of the address book being imported.
+vCardImportAddressConvertError=Lỗi khi đang nhập sổ địa chỉ %S, có thể tất cả địa chỉ đã không được nhập hết.
diff --git a/l10n-vi/mail/chrome/messenger/viewLog.dtd b/l10n-vi/mail/chrome/messenger/viewLog.dtd
new file mode 100644
index 0000000000..074eb575fa
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/viewLog.dtd
@@ -0,0 +1,13 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY viewLog.title "Lưu kí Bộ lọc">
+<!ENTITY viewLogInfo.text "Lưu kí Bộ lọc ghi lại các bộ lọc được chạy cho tài khoản này. Hãy dùng hộp kiểm bên dưới để kích hoạt lưu kí.">
+<!ENTITY clearLog.label "Xóa Lưu Kí">
+<!ENTITY clearLog.accesskey "X">
+<!ENTITY enableLog.label "Kích hoạt Lưu kí Bộ lọc">
+<!ENTITY enableLog.accesskey "K">
+<!ENTITY closeLog.label "Đóng">
+<!ENTITY closeLog.accesskey "g">
+
diff --git a/l10n-vi/mail/chrome/messenger/viewSource.dtd b/l10n-vi/mail/chrome/messenger/viewSource.dtd
new file mode 100644
index 0000000000..1836786592
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/viewSource.dtd
@@ -0,0 +1,90 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- extracted from content/viewSource.xul -->
+
+<!-- extracted from content/viewSource.xhtml -->
+
+<!-- LOCALIZATION NOTE (mainWindow.title) : DONT_TRANSLATE -->
+<!ENTITY mainWindow.title "&brandFullName;">
+<!-- LOCALIZATION NOTE (mainWindow.titlemodifier) : DONT_TRANSLATE -->
+<!ENTITY mainWindow.titlemodifier "&brandFullName;">
+<!-- LOCALIZATION NOTE (mainWindow.titlemodifierseparator) : DONT_TRANSLATE -->
+<!ENTITY mainWindow.titlemodifierseparator " - ">
+<!ENTITY mainWindow.preface "Nguồn của: ">
+
+<!ENTITY editMenu.label "Chỉnh sửa">
+<!ENTITY editMenu.accesskey "E">
+<!ENTITY fileMenu.label "Tập tin">
+<!ENTITY fileMenu.accesskey "F">
+<!ENTITY savePageCmd.label "Lưu trang dưới dạng…">
+<!ENTITY savePageCmd.accesskey "A">
+<!ENTITY savePageCmd.commandkey "S">
+<!ENTITY pageSetupCmd.label "Thiết lập trang…">
+<!ENTITY pageSetupCmd.accesskey "u">
+<!ENTITY printPreviewCmd.label "Xem trước khi in">
+<!ENTITY printPreviewCmd.accesskey "v">
+<!ENTITY printCmd.label "In…">
+<!ENTITY printCmd.accesskey "P">
+<!ENTITY printCmd.commandkey "P">
+<!ENTITY closeCmd.label "Đóng">
+<!ENTITY closeCmd.accesskey "C">
+<!ENTITY closeCmd.commandkey "W">
+
+<!-- LOCALIZATION NOTE :
+textEnlarge.commandkey3, textReduce.commandkey2 and
+textReset.commandkey2 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. -->
+
+<!ENTITY textEnlarge.commandkey "+">
+<!ENTITY textEnlarge.commandkey2 "=">
+<!ENTITY textEnlarge.commandkey3 "">
+<!ENTITY textReduce.commandkey "-">
+<!ENTITY textReduce.commandkey2 "">
+<!ENTITY textReset.commandkey "0">
+<!ENTITY textReset.commandkey2 "">
+
+<!ENTITY goToLineCmd.label "Đi tới dòng…">
+<!ENTITY goToLineCmd.accesskey "G">
+<!ENTITY goToLineCmd.commandkey "l">
+
+<!ENTITY viewMenu.label "Xem">
+<!ENTITY viewMenu.accesskey "V">
+<!ENTITY reloadCmd.label "Tải lại">
+<!ENTITY reloadCmd.accesskey "R">
+<!ENTITY reloadCmd.commandkey "r">
+<!ENTITY menu_wrapLongLines.title "Xuống hàng cho các dòng dài">
+<!ENTITY menu_wrapLongLines.accesskey "W">
+<!ENTITY menu_highlightSyntax.label "Tô sáng cú pháp">
+<!ENTITY menu_highlightSyntax.accesskey "H">
+<!ENTITY menu_textSize.label "Cỡ chữ">
+<!ENTITY menu_textSize.accesskey "Z">
+<!ENTITY menu_textEnlarge.label "Tăng">
+<!ENTITY menu_textEnlarge.accesskey "I">
+<!ENTITY menu_textReduce.label "Giảm">
+<!ENTITY menu_textReduce.accesskey "D">
+<!ENTITY menu_textReset.label "Bình thường">
+<!ENTITY menu_textReset.accesskey "N">
+
+<!ENTITY findOnCmd.label "Tìm trong trang này…">
+<!ENTITY findOnCmd.accesskey "F">
+<!ENTITY findOnCmd.commandkey "f">
+<!ENTITY findAgainCmd.label "Tìm tiếp">
+<!ENTITY findAgainCmd.accesskey "g">
+<!ENTITY findAgainCmd.commandkey "g">
+<!ENTITY findAgainCmd.commandkey2 "VK_F3">
+<!ENTITY findSelectionCmd.commandkey "e">
+
+<!ENTITY backCmd.label "Quay lại">
+<!ENTITY backCmd.accesskey "B">
+<!ENTITY forwardCmd.label "Tiến">
+<!ENTITY forwardCmd.accesskey "F">
+<!ENTITY goBackCmd.commandKey "[">
+<!ENTITY goForwardCmd.commandKey "]">
+
+<!ENTITY copyLinkCmd.label "Sao chép địa chỉ liên kết">
+<!ENTITY copyLinkCmd.accesskey "L">
+<!ENTITY copyEmailCmd.label "Sao chép địa chỉ email">
+<!ENTITY copyEmailCmd.accesskey "E">
diff --git a/l10n-vi/mail/chrome/messenger/viewSource.properties b/l10n-vi/mail/chrome/messenger/viewSource.properties
new file mode 100644
index 0000000000..79d3f0af13
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/viewSource.properties
@@ -0,0 +1,17 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+goToLineTitle = Đi tới dòng
+goToLineText = Nhập số dòng
+invalidInputTitle = Đầu vào không hợp lệ
+invalidInputText = Số dòng đã nhập không hợp lệ.
+outOfRangeTitle = Không tìm thấy dòng
+outOfRangeText = Không tìm thấy dòng được chỉ định.
+viewSelectionSourceTitle = Mã Nguồn DOM của phần đã chọn
+viewMathMLSourceTitle = Mã nguồn DOM của MathML
+
+context_goToLine_label = Đi tới dòng…
+context_goToLine_accesskey = L
+context_wrapLongLines_label = Cắt những dòng dài
+context_highlightSyntax_label = Tô sáng cú pháp
diff --git a/l10n-vi/mail/chrome/messenger/viewZoomOverlay.dtd b/l10n-vi/mail/chrome/messenger/viewZoomOverlay.dtd
new file mode 100644
index 0000000000..56a857b108
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/viewZoomOverlay.dtd
@@ -0,0 +1,30 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- LOCALIZATION NOTE :
+fullZoomEnlargeCmd.commandkey3, fullZoomReduceCmd.commandkey2 and
+fullZoomResetCmd.commandkey2 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. -->
+
+<!ENTITY fullZoomEnlargeCmd.label "Phóng to">
+<!ENTITY fullZoomEnlargeCmd.accesskey "I">
+<!ENTITY fullZoomEnlargeCmd.commandkey "+">
+<!ENTITY fullZoomEnlargeCmd.commandkey2 "="> <!-- + is above this key on many keyboards -->
+<!ENTITY fullZoomEnlargeCmd.commandkey3 "">
+
+<!ENTITY fullZoomReduceCmd.label "Thu nhỏ">
+<!ENTITY fullZoomReduceCmd.accesskey "O">
+<!ENTITY fullZoomReduceCmd.commandkey "-">
+<!ENTITY fullZoomReduceCmd.commandkey2 "">
+
+<!ENTITY fullZoomResetCmd.label "Đặt lại">
+<!ENTITY fullZoomResetCmd.accesskey "R">
+<!ENTITY fullZoomResetCmd.commandkey "0">
+<!ENTITY fullZoomResetCmd.commandkey2 "">
+
+<!ENTITY fullZoomToggleCmd.label "Chỉ phóng to văn bản">
+<!ENTITY fullZoomToggleCmd.accesskey "T">
+<!ENTITY fullZoom.label "Thu phóng">
+<!ENTITY fullZoom.accesskey "Z">
diff --git a/l10n-vi/mail/chrome/messenger/virtualFolderListDialog.dtd b/l10n-vi/mail/chrome/messenger/virtualFolderListDialog.dtd
new file mode 100644
index 0000000000..80c207f1ab
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/virtualFolderListDialog.dtd
@@ -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/. -->
+
+<!ENTITY virtualFolderListTitle.title "Chọn (các) thư mục">
+<!ENTITY virtualFolderDesc.label "Chọn các thư mục để tìm trong:">
+<!ENTITY folderName.label "Tên thư mục">
+<!ENTITY folderSearch.label "Tìm kiếm">
diff --git a/l10n-vi/mail/chrome/messenger/virtualFolderProperties.dtd b/l10n-vi/mail/chrome/messenger/virtualFolderProperties.dtd
new file mode 100644
index 0000000000..c9ce81c709
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/virtualFolderProperties.dtd
@@ -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/. -->
+
+<!ENTITY virtualFolderProperties.title "Thư mục Tìm kiếm Được lưu Mới">
+<!ENTITY name.label "Tên:">
+<!ENTITY name.accesskey "n">
+<!ENTITY description.label "Tạo thành thư mục con cho:">
+<!ENTITY description.accesskey "c">
+
+<!ENTITY searchTermCaption.label "Cấu hình tiêu chuẩn đưa vào thư mục tìm kiếm được lưu này: ">
+
+<!ENTITY folderSelectionCaption.label "Chọn các thư mục để tìm trong: ">
+<!ENTITY chooseFoldersButton.label "Chọn…">
+<!ENTITY chooseFoldersButton.accesskey "h">
+
+<!ENTITY searchOnline.label "Tìm kiếm trực tuyến (Cung cấp kết quả cập nhật cho các thư mục IMAP và tin tức nhưng tăng thời gian mở thư mục)">
+<!ENTITY searchOnline.accesskey "T">
+<!ENTITY newFolderButton.label "Tạo">
+<!ENTITY newFolderButton.accesskey "o">
+<!ENTITY editFolderButton.label "Cập nhật">
+<!ENTITY editFolderButton.accesskey "U">
diff --git a/l10n-vi/mail/chrome/messenger/wmImportMsgs.properties b/l10n-vi/mail/chrome/messenger/wmImportMsgs.properties
new file mode 100644
index 0000000000..339669c4e4
--- /dev/null
+++ b/l10n-vi/mail/chrome/messenger/wmImportMsgs.properties
@@ -0,0 +1,77 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#
+# The following are used by the windows live mail import code to display status/error
+# and informational messages
+#
+
+# Short name of import module
+## @name WMIMPORT_NAME
+## @loc None
+## LOCALIZATION NOTE (2000): DONT_TRANSLATE
+2000=Windows Live Mail
+
+# Description of import module
+## @name WMIMPORT_DESCRIPTION
+## @loc None
+## LOCALIZATION NOTE (2001): In this item, don't translate "Windows Live Mail"
+2001=Thiết lập Windows Live Mail
+
+# Success message
+## @name WMIMPORT_MAILBOX_SUCCESS
+## @loc None
+## LOCALIZATION NOTE (2002): In this item, don't translate "%1$S" or "%2$d"
+## The variable %1$S will contain the name of the Mailbox
+## The variable %2$d will contain the number of messages
+2002=Hộp thư %1$S, đã nhập %2$d thư
+
+# Error message
+## @name WMIMPORT_MAILBOX_BADPARAM
+## @loc None
+2003=Tham số xấu được đưa qua để nhập hộp thư.
+
+# Error message
+## @name WMIMPORT_MAILBOX_BADSOURCEFILE
+## @loc None
+## LOCALIZATION NOTE (2004): In this item, don't translate "%S"
+## The variable %S will contain the name of the Mailbox
+2004=Lỗi khi đang truy cập tập tin cho hộp thư %S.
+
+# Error message
+## @name WMIMPORT_MAILBOX_CONVERTERROR
+## @loc None
+## LOCALIZATION NOTE (2005): In this item, don't translate "%S"
+## The variable %S will contain the name of the Mailbox
+2005=Lỗi khi đang nhập hộp thư %S, có thể tất cả thư sẽ được nhập từ hộp thư này.
+
+# Default name of imported addressbook
+## @name WMIMPORT_DEFAULT_NAME
+## @loc None
+2006=Sổ địa chỉ Windows Live Mail
+
+# Autofind description
+## @name WMIMPORT_AUTOFIND
+## @loc None
+2007=Sổ địa chỉ Windows Live Mail (sổ địa chỉ windows)
+
+# Description
+## @name WMIMPORT_ADDRESS_SUCCESS
+## @loc None
+## LOCALIZATION NOTE (2006): In this item, don't translate "%S"
+## The variable %S will receive the name of the address book
+2008=Đã nhập sổ địa chỉ %S
+
+# Error message
+## @name WMIMPORT_ADDRESS_CONVERTERROR
+## @loc None
+## LOCALIZATION NOTE (2009): In this item, don't translate "%S"
+## The variable %S will receive the name of the address book
+2009=Lỗi khi đang nhập sổ địa chỉ %S, có thể tất cả địa chỉ đã không được nhập hết.
+
+# Error message
+## @name WMIMPORT_ADDRESS_BADPARAM
+## @loc None
+2010=Tham số xấu được đưa qua để nhập sổ địa chỉ.
+
diff --git a/l10n-vi/mail/chrome/mozldap/ldap.properties b/l10n-vi/mail/chrome/mozldap/ldap.properties
new file mode 100644
index 0000000000..62563696c7
--- /dev/null
+++ b/l10n-vi/mail/chrome/mozldap/ldap.properties
@@ -0,0 +1,261 @@
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 two strings are used when prompting the user for authentication
+# information:
+
+## @name AUTH_PROMPT_TITLE
+## @loc none
+authPromptTitle=Yêu cầu mật khẩu máy chủ LDAP
+
+## @name AUTH_PROMPT_TEXT
+## @loc %1$S should not be localized. It is the hostname of the LDAP server.
+authPromptText=Vui lòng nhập mật khẩu cho %1$S.
+
+# These are string versions of all the errors defined in
+# nsILDAPErrors.idl, as well as the nsresult codes based on those
+# errors. See that file for the genesis of these codes, as well as
+# for info about how to get documentation about their precise
+# meanings.
+
+## @name OPERATIONS_ERROR
+## @loc none
+1=Lỗi hoạt động
+
+## @name PROTOCOL_ERROR
+## @loc none
+2=Lỗi giao thức
+
+## @name TIMELIMIT_EXCEEDED
+## @loc none
+3=Vượt quá định mức thời gian
+
+## @name SIZELIMIT_EXCEEDED
+## @loc none
+4=Vượt quá định mức kích cỡ
+
+## @name COMPARE_FALSE
+## @loc none
+5=So sánh sai
+
+## @name COMPARE_TRUE
+## @loc none
+6=So sánh đúng
+
+## @name STRONG_AUTH_NOT_SUPPORTED
+## @loc none
+7=Phương thức xác thực không được hỗ trợ
+
+## @name STRONG_AUTH_REQUIRED
+## @loc none
+8=Yêu cầu xác thực mạnh
+
+## @name PARTIAL_RESULTS
+## @loc none
+9=Đã nhận đường dẫn và một phần kết quả
+
+## @name REFERRAL
+## @loc none
+10=Đã nhận đường dẫn
+
+## @name ADMINLIMIT_EXCEEDED
+## @loc none
+11=Vượt quá giới hạn quản trị
+
+## @name UNAVAILABLE_CRITICAL_EXTENSION
+## @loc none
+12=Không có phần mở rộng chính yếu
+
+## @name CONFIDENTIALITY_REQUIRED
+## @loc none
+13=Yêu cầu tính mật
+
+## @name SASL_BIND_IN_PROGRESS
+## @loc none
+14=Đang trong quá trình gắn kết SASL
+
+## @name NO_SUCH_ATTRIBUTE
+## @loc none
+16=Không có thuộc tính như vậy
+
+## @name UNDEFINED_TYPE
+## @loc none
+17=Kiểu thuộc tính chưa định nghĩa
+
+## @name INAPPROPRIATE MATCHING
+## @loc none
+18=Kết hợp không phù hợp
+
+## @name CONSTRAINT_VIOLATION
+## @loc none
+19=Vi phạm liên tục
+
+## @name TYPE_OR_VALUE_EXISTS
+## @loc none
+20=Kiểu hoặc giá trị đã tồn tại
+
+## @name INVALID_SYNTAX
+## @loc none
+21=Cú pháp bất hợp lệ
+
+## @name NO_SUCH_OBJECT
+## @loc none
+32=Không có đối tượng như vậy
+
+## @name ALIAS_PROBLEM
+## @loc none
+33=Vấn đề biệt danh
+
+## @name INVALID_DN_ SYNTAX
+## @loc none
+34=Cú pháp DN bất hợp lệ
+
+## @name IS_LEAF
+## @loc none
+35=Đối tượng là một lá
+
+## @name ALIAS_DEREF_PROBLEM
+## @loc none
+36=Vấn đề chặn tham khảo biệt danh
+
+## @name INAPPROPRIATE_AUTH
+## @loc none
+48=Xác thực không phù hợp
+
+## @name INVALID_CREDENTIALS
+## @loc none
+49=Ủy nhiệm bất hợp lệ
+
+## @name INSUFFICIENT_ACCESS
+## @loc none
+50=Không đủ lượng truy cập
+
+## @name BUSY
+## @loc none
+51=Máy chủ LDAP đang bận
+
+## @name UNAVAILABLE
+## @loc none
+52=Máy chủ LDAP không hiện hữu
+
+## @name UNWILLING_TO_PERFORM
+## @loc none
+53=Máy chủ LDAP không sẵn sàng thực thi
+
+## @name LOOP_DETECT
+## @loc none
+54=Vòng lặp
+
+## @name SORT_CONTROL_MISSING
+## @loc none
+60=Không thấy Điều khiển Sắp xếp
+
+## @name INDEX_RANGE_ERROR
+## @loc none
+61=Kết quả tìm kiếm vượt quá khoảng được xác định bởi offsets
+
+## @name NAMING_VIOLATION
+## @loc none
+64=Vi phạm đặt tên
+
+## @name OBJECT_CLASS_VIOLATION
+## @loc none
+65=Vi phạm lớp đối tượng
+
+## @name NOT_ALLOWED_ON_NONLEAF
+## @loc none
+66=Hoạt động không được phép trên nonleaf
+
+## @name NOT_ALLOWED_ON_RDN
+## @loc none
+67=Hoạt động không được phép trên RDN
+
+## @name ALREADY_EXISTS
+## @loc none
+68=Đã tồn tại
+
+## @name NO_OBJECT_CLASS_MODS
+## @loc none
+69=Không thể sửa đổi lớp đối tượng
+
+## @name RESULTS_TOO_LARGE
+## @loc none
+70=Kết quả quá lớn
+
+## @name AFFECTS_MULTIPLE_DSAS
+## @loc none
+71=Ảnh hưởng nhiều máy chủ
+
+## @name OTHER
+## @loc none
+80=Lỗi chưa biết
+
+## @name SERVER_DOWN
+## @loc none
+81=Không thể liên hệ máy chủ LDAP
+
+## @name LOCAL_ERROR
+## @loc none
+82=Lỗi nội bộ
+
+## @name ENCODING_ERROR
+## @loc none
+83=Lỗi mã hóa
+
+## @name DECODING_ERROR
+## @loc none
+84=Lỗi giải mã
+
+## @name TIMEOUT
+## @loc none
+85=Máy chủ LDAP bị quá thời gian kết nối
+
+## @name AUTH_UNKNOWN
+## @loc none
+86=Phương thức xác thực chưa biết
+
+## @name FILTER_ERROR
+## @loc none
+87=Bộ lọc tìm kiếm bất hợp lệ
+
+## @name USER_CANCELLED
+## @loc none
+88=Người dùng hủy bỏ hoạt động
+
+## @name PARAM_ERROR
+## @loc none
+89=Tham số xấu đến mạch kết nối LDAP
+
+## @name NO_MEMORY
+## @loc none
+90=Hết bộ nhớ
+
+## @name CONNECT_ERROR
+## @loc none
+91=Không thể kết nối máy chủ LDAP
+
+## @name NOT_SUPPORTED
+## @loc none
+92=Không được hỗ trợ bởi phiên bản giao thức LDAP này
+
+## @name CONTROL_NOT_FOUND
+## @loc none
+93=Không tìm thấy điều khiển LDAP đã yêu cầu
+
+## @name NO_RESULTS_RETURNED
+## @loc none
+94=Không có kết quả trả về
+
+## @name MORE_RESULTS_TO_RETURN
+## @loc none
+95=Nhiều kết quả trả về hơn
+
+## @name CLIENT_LOOP
+## @loc none
+96=Máy khách phát hiện thấy vòng lặp
+
+## @name REFERRAL_LIMIT_EXCEEDED
+## @loc none
+97=Vượt quá định mức bước nhảy tham chiếu
diff --git a/l10n-vi/mail/chrome/overrides/netError.dtd b/l10n-vi/mail/chrome/overrides/netError.dtd
new file mode 100644
index 0000000000..0d03bb9dce
--- /dev/null
+++ b/l10n-vi/mail/chrome/overrides/netError.dtd
@@ -0,0 +1,184 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd">
+%brandDTD;
+
+<!ENTITY loadError.label "Gặp vấn đề khi tải trang">
+<!ENTITY retry.label "Thử Lại">
+
+<!-- Specific error messages -->
+
+<!ENTITY connectionFailure.title "Không thể kết nối">
+<!ENTITY connectionFailure.longDesc "&sharedLongDesc;">
+
+<!ENTITY deniedPortAccess.title "Địa chỉ này đã bị chặn">
+<!ENTITY deniedPortAccess.longDesc "">
+
+<!ENTITY dnsNotFound.title "Không tìm thấy máy chủ">
+<!ENTITY dnsNotFound.longDesc "
+<ul>
+ <li>Kiểm tra các lỗi gõ địa chỉ như là
+ <strong>ww</strong>.example.com thay vì
+ <strong>www</strong>.example.com</li>
+ <li>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 của bạn.</li>
+ <li>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 rằng &brandShortName; được phép truy cập Web.</li>
+</ul>
+">
+
+<!ENTITY fileNotFound.title "Không tìm thấy tập tin">
+<!ENTITY fileNotFound.longDesc "
+<ul>
+ <li>Kiểm tra tên xem có lỗi gõ HOA-thường hay lỗi nào khác không.</li>
+ <li>Kiểm tra xem tập tin có bị chuyển, đổi tên hay bị xóa không.</li>
+</ul>
+">
+
+<!ENTITY fileAccessDenied.title "Truy cập tập tin bị từ chối">
+<!ENTITY fileAccessDenied.longDesc "<ul>
+ <li>Nó có thể đã bị xóa, chuyển đi, hay quyền truy cập tập tin đã bị chặn.</li>
+</ul>">
+
+<!ENTITY generic.title "Oái.">
+<!ENTITY generic.longDesc "
+<p>&brandShortName; không thể mở trang này vì nguyên nhân nào đó.</p>
+">
+
+<!ENTITY malformedURI.title "Địa chỉ không hợp lệ">
+<!ENTITY malformedURI.longDesc "
+<ul>
+ <li>Địa chỉ Web thường được viết như sau
+ <strong>http://www.example.com/</strong></li>
+ <li>Hãy chắc rằng bạn đang dùng dấu chéo lên (vd.
+ <strong>/</strong>).</li>
+</ul>
+">
+
+<!ENTITY netInterrupt.title "Kết nối bị ngắt">
+<!ENTITY netInterrupt.longDesc "&sharedLongDesc;">
+
+<!ENTITY notCached.title "Tài liệu bị Hết hạn">
+<!ENTITY notCached.longDesc "<p>Tài liệu được yêu cầu không có sẵn trong bộ đệm.</p><ul><li>Để phòng ngừa bảo mật, &brandShortName; không tự động yêu cầu lại các tài liệu nhạy cảm.</li><li>Nhấp vào Thử lại để yêu cầu lại tài liệu từ trang web.</li></ul>">
+
+<!ENTITY netOffline.title "Chế độ ngoại tuyến">
+<!ENTITY netOffline.longDesc2 "<ul>
+ <li>Bấm &quot;Thử lại&quot; để vào chế độ trực tuyến và tải lại trang.</li>
+</ul>
+">
+
+<!ENTITY contentEncodingError.title "Lỗi bảng mã">
+<!ENTITY contentEncodingError.longDesc "
+<ul>
+ <li>Vui lòng liên hệ với chủ trang web để báo họ vấn đề này.</li>
+</ul>
+">
+
+<!ENTITY unsafeContentType.title "Kiểu tập tin nguy hiểm">
+<!ENTITY unsafeContentType.longDesc "
+<ul>
+ <li>Vui lòng liên hệ với chủ trang web để báo họ vấn đề này.</li>
+</ul>
+">
+
+<!ENTITY netReset.title "Kết nối bị khởi tạo lại">
+<!ENTITY netReset.longDesc "&sharedLongDesc;">
+
+<!ENTITY netTimeout.title "Đã hết thời gian kết nối">
+<!ENTITY netTimeout.longDesc "&sharedLongDesc;">
+
+<!ENTITY unknownProtocolFound.title "Không nhận dạng được địa chỉ này">
+<!ENTITY unknownProtocolFound.longDesc "<ul>
+ <li>Bạn có thể cần cài đặt phần mềm khác để mở địa chỉ này.</li>
+</ul>">
+
+<!ENTITY proxyConnectFailure.title "Máy chủ proxy từ chối kết nối">
+<!ENTITY proxyConnectFailure.longDesc "
+<ul>
+ <li>Kiểm tra thiết lập proxy để chắc chắn rằng mọi thứ đều đúng.</li>
+ <li>Liên hệ với quản trị mạng của bạn để chắc chắn rằng máy chủ proxy vẫn đang hoạt động.</li>
+</ul>
+">
+
+<!ENTITY proxyResolveFailure.title "Không thể tìm thấy máy chủ proxy">
+<!ENTITY proxyResolveFailure.longDesc "
+<ul>
+ <li>Kiểm tra thiết lập proxy để chắc chắn rằng mọi thứ đều đúng.</li>
+ <li>Kiểm tra để chắc rằng máy tính của bạn vẫn đang có kết nối mạng.</li>
+ <li>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.</li>
+</ul>
+">
+
+<!ENTITY redirectLoop.title "Trang không chuyển hướng đúng">
+<!ENTITY redirectLoop.longDesc "
+<ul>
+ <li>Vấn đề này thỉnh thoảng có thể xảy ra do vô hiệu hóa hoặc từ chối cookie.</li>
+</ul>
+">
+
+<!ENTITY unknownSocketType.title "Phản hồi bất ngờ từ máy chủ">
+<!ENTITY unknownSocketType.longDesc "
+<ul>
+ <li>Kiểm tra để chắc chắn rằng hệ thống của bạn có Trình quản lí Bảo mật Cá nhân.</li>
+ <li>Điều này có thể là do cấu hình không chuẩn trên máy chủ.</li>
+</ul>
+">
+
+<!ENTITY nssFailure2.title "Kết nối An toàn bị Thất bại">
+<!ENTITY nssFailure2.longDesc2 "<ul>
+ <li>Không thể hiển thị trang bạn đang cố xem vì tính xác thực của dữ liệu nhận được không thể được xác minh.</li>
+ <li>Vui lòng liên hệ với chủ sở hữu trang web để thông báo cho họ về vấn đề này.</li>
+</ul>">
+
+<!ENTITY nssBadCert.title "Kết nối an toàn bị thất bại">
+<!ENTITY nssBadCert.longDesc2 "
+<ul>
+ <li>Đây có thể là vấn đề ở phần cấu hình của máy chủ, hoặc có thể do ai đó đang cố mạo nhận là máy chủ.</li>
+ <li>Nếu bạn đã từng kết nối tới máy chủ này thành công trong quá khứ, lỗi này có thể chỉ là tạm thời, bạn có thể thử lại sau.</li>
+</ul>
+">
+
+<!ENTITY sharedLongDesc "
+<ul>
+ <li>Trang 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.</li>
+ <li>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 của bạn.</li>
+ <li>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.</li>
+</ul>
+">
+
+<!ENTITY cspBlocked.title "Bị chặn bởi Chính sách bảo mật nội dung">
+<!ENTITY cspBlocked.longDesc "<p>&brandShortName; không tải trang này vì nó có một chính sách bảo vệ nội dung không cho phép việc tải theo cách này.</p>">
+
+<!ENTITY xfoBlocked.title "Bị chặn bởi chính sách X-Frame-Options">
+<!ENTITY xfoBlocked.longDesc "<p>&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.</p>">
+
+<!ENTITY corruptedContentErrorv2.title "Lỗi nội dung bị hỏng">
+<!ENTITY corruptedContentErrorv2.longDesc "<p>Không thể hiển thị được trang mà bạn muốn xem vì có lỗi trong truyền tải dữ liệu.</p><ul><li>Vui lòng liên hệ chủ trang web để báo họ về vấn đề này.</li></ul>">
+
+<!ENTITY securityOverride.linkText "Hoặc bạn có thể thêm một ngoại lệ…">
+<!ENTITY securityOverride.getMeOutOfHereButton "Đưa tôi ra khỏi đây!">
+<!ENTITY securityOverride.exceptionButtonLabel "Thêm Ngoại Lệ…">
+
+<!-- LOCALIZATION NOTE (securityOverride.warningContent) - Do not translate the
+contents of the <button> tags. It uses strings already defined above. The
+button is included here (instead of netError.xhtml) because it exposes
+functionality specific to thunderbird. -->
+
+<!ENTITY securityOverride.warningContent "<p>Bạn không nên thêm ngoại lệ nếu bạn đang dùng một kết nối mạng mà bạn không tin tưởng hoàn toàn hoặc bạn không quen thấy cảnh báo cho máy chủ này.</p>
+
+<button id='getMeOutOfHereButton'>&securityOverride.getMeOutOfHereButton;</button>
+<button id='exceptionDialogButton'>&securityOverride.exceptionButtonLabel;</button>
+">
+
+<!ENTITY remoteXUL.title "XUL từ xa">
+<!ENTITY remoteXUL.longDesc "<p><ul><li>Vui lòng liên hệ với chủ trang web để báo họ vấn đề này.</li></ul></p>">
+
+<!ENTITY inadequateSecurityError.title "Kết nối của bạn không an toàn">
+<!-- LOCALIZATION NOTE (inadequateSecurityError.longDesc) - Do not translate
+ "NS_ERROR_NET_INADEQUATE_SECURITY". -->
+<!ENTITY inadequateSecurityError.longDesc "<p><span class='hostname'></span> sử dụng công nghệ bảo mật lỗi thời và dễ bị tấn 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.</p><p>Mã lỗi: NS_ERROR_NET_INADEQUATE_SECURITY</p>">
+
+<!ENTITY blockedByPolicy.title "Trang bị chặn">
+
+<!ENTITY networkProtocolError.title "Lỗi giao thức mạng">
+<!ENTITY networkProtocolError.longDesc "<p>Không thể hiển thị trang bạn đang cố xem vì lỗi trong giao thức mạng đã được phát hiện.</p><ul><li>Vui lòng liên hệ với chủ sở hữu trang web để thông báo cho họ về sự cố này.</li></ul>">
diff --git a/l10n-vi/mail/chrome/overrides/profileDowngrade.dtd b/l10n-vi/mail/chrome/overrides/profileDowngrade.dtd
new file mode 100644
index 0000000000..607b34299c
--- /dev/null
+++ b/l10n-vi/mail/chrome/overrides/profileDowngrade.dtd
@@ -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/. -->
+
+<!-- LOCALIZATION NOTE:
+ This UI can be most easily shown by modifying the version in compatibility.ini
+ to a newer version and then starting Thunderbird.
+ For this feature, "installation" is used to mean "this discrete download of
+ Thunderbird" and "version" is used to mean "the specific revision number of a
+ given Thunderbird channel". These terms are not synonymous.
+-->
+<!ENTITY window.title "Bạn đã chạy một phiên bản cũ hơn của &brandProductName;">
+<!ENTITY window.style "width: 490px;">
+
+<!ENTITY window.nosync2 "Phiên bản mới hơn của &brandProductName; có thể đã thực hiện các thay đổi đối với hồ sơ của bạn mà nó không còn tương thích với phiên bản cũ hơn này. Chỉ sử dụng cấu hình này với phiên bản mới hơn hoặc tạo cấu hình mới cho bản cài đặt &brandShortName;. Tạo một hồ sơ mới yêu cầu thiết lập lại tài khoản, lịch và các tiện ích mở rộng của bạn.">
+
+<!ENTITY window.moreinfo "Thông tin chi tiết…">
+<!ENTITY window.create "Tạo hồ sơ mới">
+<!ENTITY window.quit-win "Thoát">
+<!ENTITY window.quit-nonwin "Thoát">
diff --git a/l10n-vi/mail/chrome/overrides/settingsChange.dtd b/l10n-vi/mail/chrome/overrides/settingsChange.dtd
new file mode 100644
index 0000000000..bf22b52765
--- /dev/null
+++ b/l10n-vi/mail/chrome/overrides/settingsChange.dtd
@@ -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/. -->
+
+<!ENTITY settingsChangePreferences.label "Có thể thay đổi cài đặt bằng cách sử dụng thẻ đính kèm trong tùy chỉnh &brandShortName;">
+<!ENTITY settingsChangeOptions.label "Có thể thay đổi cài đặt bằng cách sử dụng thẻ đính kèm trong tùy chọn &brandShortName;">
diff --git a/l10n-vi/mail/defines.inc b/l10n-vi/mail/defines.inc
new file mode 100644
index 0000000000..00370a67a7
--- /dev/null
+++ b/l10n-vi/mail/defines.inc
@@ -0,0 +1,9 @@
+#filter emptyLines
+
+#define MOZ_LANGPACK_CREATOR mozilla.org
+
+# If non-English locales wish to credit multiple contributors, uncomment this
+# variable definition and use the format specified.
+#define MOZ_LANGPACK_CONTRIBUTORS <em:contributor>Nguyễn Xuân Minh</em:contributor> <em:contributor>Quế Tùng</em:contributor> <em:contributor>Nguyễn Mạnh Hùng</em:contributor> <em:contributor>Huỳnh Hải Đăng</em:contributor> <em:contributor>Bùi Việt Khoa</em:contributor> <em:contributor>Trần Nguyễn Sơn</em:contributor> <em:contributor>Pierre Neter</em:contributor>
+
+#unfilter emptyLines
diff --git a/l10n-vi/mail/installer/custom.properties b/l10n-vi/mail/installer/custom.properties
new file mode 100644
index 0000000000..38dde95695
--- /dev/null
+++ b/l10n-vi/mail/installer/custom.properties
@@ -0,0 +1,85 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 là một ứng dụng email đầy đủ tính năng. $BrandShortName hỗ trợ các giao thức thư IMAP và POP, cũng như định dạng thư HTML. Kiểm soát thư rác tích hợp, khả năng RSS, tìm kiếm nhanh mạnh mẽ, kiểm tra chính tả khi bạn nhập, hộp thư đến toàn cầu và lọc thư nâng cao hoàn thiện bộ tính năng hiện đại của $BrandShortName.
+CONTEXT_OPTIONS=&Tùy chọn $BrandShortName
+CONTEXT_SAFE_MODE=&Chế độ an toàn $BrandShortName
+OPTIONS_PAGE_TITLE=Kiểu thiết lập
+OPTIONS_PAGE_SUBTITLE=Tùy chọn cài đặt
+SHORTCUTS_PAGE_TITLE=Thiết lập lối tắt
+SHORTCUTS_PAGE_SUBTITLE=Tạo các biểu tượng chương trình
+COMPONENTS_PAGE_TITLE=Thiết lập các thành phần tùy chọn
+COMPONENTS_PAGE_SUBTITLE=Thành phần tùy chọn được đề xuất
+OPTIONAL_COMPONENTS_DESC=Dịch vụ bảo trì sẽ cho phép bạn cập nhật $BrandShortName một cách âm thầm.
+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=&Sử dụng $BrandShortName làm chương trình gửi thư mặc định của tôi
+SUMMARY_INSTALL_CLICK=Nhấp Cài đặt để tiếp tục.
+SUMMARY_UPGRADE_CLICK=Nhấp 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_LAUNCH=$BrandShortName đang chạy trên máy.\n\nVui lòng đóng $BrandShortName trước khi chạy phiên bản bạn vừa mới cài đặt.
+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 khỏi máy bạn.
+UN_CONFIRM_UNINSTALLED_FROM=$BrandShortName sẽ được gỡ bỏ khỏi thư mục sau:
+UN_CONFIRM_CLICK=Nhấn “Gỡ bỏ” để tiếp tục.
+
+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=Đang làm việc…
+
+# _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
+
+# 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 (&U)
diff --git a/l10n-vi/mail/installer/mui.properties b/l10n-vi/mail/installer/mui.properties
new file mode 100644
index 0000000000..16bb17f656
--- /dev/null
+++ b/l10n-vi/mail/installer/mui.properties
@@ -0,0 +1,60 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# 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=Trình cài đặt đã hoàn thành.
+MUI_TEXT_ABORT_TITLE=Cài đặt bị hủy bỏ
+MUI_TEXT_ABORT_SUBTITLE=Trình cài đặt chưa được hoàn thành.
+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 gỡ bỏ 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 đang không chạy.\n\n$_CLICK
+MUI_UNTEXT_CONFIRM_TITLE=Gỡ bỏ $BrandFullNameDA
+MUI_UNTEXT_CONFIRM_SUBTITLE=Gỡ bỏ $BrandFullNameDA khỏi máy 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=Trình gỡ bỏ đã hoàn thành.
+MUI_UNTEXT_ABORT_TITLE=Gỡ cài đặt 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 bạn.\n\nNhấn “Hoàn thành” để đóng trình pháp sư 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/mail/installer/override.properties b/l10n-vi/mail/installer/override.properties
new file mode 100644
index 0000000000..eb8c1602dc
--- /dev/null
+++ b/l10n-vi/mail/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 string enclose the strin with an additional double quote
+# (e.g. ""This will include quotes"").
+
+SetupCaption=Trình cài đặt $BrandFullName
+UninstallCaption=Trình 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 giấy phép thỏa thuận
+DontAcceptBtn=Tôi &không chấp nhận các điều khoản trong giấy phép thỏa thuận
+InstallBtn=&Cài đặt
+UninstallBtn=&Gỡ bỏ
+CancelBtn=Hủy bỏ
+CloseBtn=Đón&g
+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=Trình cài đặt 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 bị thất bại
+CopyTo="Sao chép đến "
+Registering="Đang đăng kí: "
+Unregistering="Đang bỏ đăng kí: "
+SymbolNotFound="Không thể tìm biểu tượng: "
+CouldNotLoad="Không thể tải: "
+CreateFolder="Tạo thư mục: "
+CreateShortcut="Tạo lối tắt: "
+CreatedUninstaller="Đã tạo trình gỡ bỏ: "
+Delete="Xóa tập tin: "
+DeleteOnReboot="Xóa khi khởi động lại: "
+ErrorCreatingShortcut="Gặp lỗi khi tạo lối tắt: "
+ErrorCreating="Gặp lỗi khi tạo: "
+ErrorDecompressing=Gặp lỗi khi giải nén dữ liệu! Có thể trình cài đặt đã bị hỏng?
+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ỏng: mã tác vụ không 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 nhật kí tiến trình cài đặt
+Byte=B
+Kilo=K
+Mega=M
+Giga=G
diff --git a/l10n-vi/mail/isp/isps.txt b/l10n-vi/mail/isp/isps.txt
new file mode 100644
index 0000000000..36bc4884b5
--- /dev/null
+++ b/l10n-vi/mail/isp/isps.txt
@@ -0,0 +1 @@
+gmail
diff --git a/l10n-vi/mail/messenger/aboutProfilesExtra.ftl b/l10n-vi/mail/messenger/aboutProfilesExtra.ftl
new file mode 100644
index 0000000000..dfb5acd926
--- /dev/null
+++ b/l10n-vi/mail/messenger/aboutProfilesExtra.ftl
@@ -0,0 +1,5 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+profiles-launch-profile-plain = Khởi chạy hồ sơ
diff --git a/l10n-vi/mail/messenger/aboutRights.ftl b/l10n-vi/mail/messenger/aboutRights.ftl
new file mode 100644
index 0000000000..4553928861
--- /dev/null
+++ b/l10n-vi/mail/messenger/aboutRights.ftl
@@ -0,0 +1,34 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+rights-title = Về quyền lợi của bạn
+rights-intro = { -brand-full-name } là phần mềm tự do mã nguồn mở, được xây dựng bởi một cộng đồng gồm hàng nghìn người trên khắp thế giới. Có vài điều mà bạn nên biết:
+rights-intro-point-1 = { -brand-short-name } cung cấp cho bạn theo điều khoản của <a data-l10n-name="mozilla-public-license-link">giấy phép công cộng Mozilla</a>. Điều này có nghĩa là bạn có thể sử dụng, sao chép và phân phối { -brand-short-name } đến người khác. Bạn cũng được hoan nghênh trong việc chỉnh sửa mã nguồn của { -brand-short-name } cho phù hợp với nhu cầu của mình. Giấy phép công cộng Mozilla cũng cho bạn quyền phân phối phiên bản được chỉnh sửa đó.
+rights-intro-point-2 =
+ Bạn không được cấp bất kỳ quyền hoặc giấy phép nhãn hiệu nào cho các
+ nhãn hiệu của tổ chức Mozilla hoặc bất kỳ bên nào, bao gồm nhưng không
+ giới hạn tên hoặc logo Thunderbird. Thông tin bổ sung về nhãn hiệu có thể
+ được tìm thấy <a data-l10n-name="mozilla-trademarks-link">tại đây</a>.
+rights-intro-point-3 = Một số tính năng trong { -brand-short-name }, như Trình Báo Cáo Lỗi, cho bạn tùy chọn cung cấp phản hồi tới { -vendor-short-name }. Bằng việc chọn gửi phản hồi, bạn cho { -vendor-short-name } quyền sử dụng phản hồi đó để cải tiến sản phẩm, công bố phản hồi trên trang web, và phân phối phản hồi.
+rights-intro-point-4 = Cách chúng tôi dùng thông tin cá nhân của bạn và phản hồi được gửi tới { -vendor-short-name } thông qua { -brand-short-name } được mô tả trong <a data-l10n-name="mozilla-privacy-policy-link">chính sách riêng tư { -brand-short-name }</a>.
+rights-intro-point-4-unbranded = Bất kì chính sách riêng tư thích hợp nào cho sản phẩm này sẽ được liệt kê tại đây.
+rights-intro-point-5 = Một số tính năng { -brand-short-name } sử dụng dịch vụ thông tin dựa trên web, tuy nhiên, chúng tôi không thể đảm bảo chúng chính xác 100% hoặc không có lỗi. Chi tiết hơn, bao gồm thông tin về cách vô hiệu hóa tính năng dùng những dịch vụ này, có thể được tìm thấy trong <a data-l10n-name="mozilla-service-terms-link">điều khoản dịch vụ</a>.
+rights-intro-point-5-unbranded = Nếu sản phẩm này kết hợp các dịch vụ web, bất kì điều khoản dịch vụ thích hợp nào cho (các) dịch vụ cần phải được liên kết với <a data-l10n-name="mozilla-website-services-link">Các Dịch Vụ Đối Với Trang Web</a>.
+rights-intro-point-6 = Để có thể phát một số loại nội dung video, { -brand-short-name } cần tải xuống một số mô đun giải mã nội dung từ một bên thứ ba.
+rights-webservices-header = Dịch vụ Thông tin Dựa trên Web { -brand-full-name }
+rights-webservices = { -brand-full-name } dùng dịch vụ thông tin dựa trên web ("Dịch Vụ") để cung cấp một số tính năng mà bạn dùng trong phiên bản { -brand-short-name } theo điều khoản được mô tả bên dưới. Nếu bạn không muốn dùng một hoặc nhiều Dịch Vụ hoặc điều khoản bên dưới không chấp nhận được, bạn có thể vô hiệu hóa tính năng hoặc Dịch Vụ. Chỉ dẫn cho cách vô hiệu hóa một tính năng hay Dịch Vụ đặc thù có thể được tìm <a data-l10n-name="mozilla-disable-service-link">tại đây</a>. Các tính năng và dịch vụ khác có thể bị tắt trong phần tùy chỉnh ứng dụng.
+rights-locationawarebrowsing = <strong>Duyệt web Nhận diện Vị trí: </strong>luôn có sẵn. Không có thông tin địa điểm nào được gửi đi mà không có sự cho phép của bạn. Nếu bạn muốn vô hiệu hóa hoàn toàn tính năng này, làm theo các bước sau:
+rights-locationawarebrowsing-term-1 = Trong thanh URL, gõ <code>about:config</code>
+rights-locationawarebrowsing-term-2 = Gõ geo.enabled
+rights-locationawarebrowsing-term-3 = Nhấp đôi vào tùy chỉnh geo.enabled
+rights-locationawarebrowsing-term-4 = Duyệt web Nhận diện Địa điểm bây giờ đã bị vô hiệu hóa
+rights-webservices-unbranded = Tổng quan về các dịch vụ đối với trang web mà sản phẩm này kết hợp, cùng với các chỉ dẫn về cách vô hiệu hóa chúng, nếu thích hợp, sẽ được bao gồm ở đây.
+rights-webservices-term-unbranded = Bất kì điều khoản dịch vụ nào cho sản phẩm này sẽ được liệt kê tại đây.
+rights-webservices-term-1 = { -vendor-short-name } và những bên đóng góp, những bên cấp phép và những đối tác làm việc để cung cấp Dịch Vụ mới và chính xác nhất. Tuy nhiên, chúng tôi không thể đảm bảo rằng thông tin này là toàn diện và không có lỗi. Ví dụ, Dịch vụ Duyệt web An toàn có thể không nhận diện các trang nguy hiểm và có thể nhận diện nhầm các trang an toàn, và trong Dịch vụ Nhận diện Địa điểm, tất cả địa điểm trả lại bởi nhà cung cấp dịch vụ của chúng tôi chỉ là ước tính và chúng tôi lẫn nhà cung cấp dịch vụ không đảm bảo tính chính xác của các địa điểm đó.
+rights-webservices-term-2 = { -vendor-short-name } có thể ngừng hoặc thay đổi Dịch Vụ theo ý mình.
+rights-webservices-term-3 = Bạn được hoan nghênh sử dụng những dịch vụ này trong phiên bản { -brand-short-name } đi kèm, và { -vendor-short-name } trao cho bạn quyền làm vậy. { -vendor-short-name } và những bên cấp phép của nó bảo lưu tất cả quyền khác trong dịch vụ. Những điều khoản này không nhằm giới hạn bất kì quyền nào được trao theo giấy phép mã nguồn mở áp dụng cho { -brand-short-name } và phiên bản mã nguồn tương ứng của { -brand-short-name }.
+rights-webservices-term-4 = <strong>Dịch Vụ được cung cấp theo "nguyên trạng" { -vendor-short-name }, những người đóng góp, các bên cung cấp giấy phép và các bên phân phối không chịu trách nhiệm (trực tiếp hay gián tiếp), bảo đảm bất kỳ điều gì, bao gồm cả việc kinh doanh Dịch Vụ hay đảm bảo Dịch Vụ phục vụ mục đích của bạn. Bạn chịu hoàn toàn rủi ro về chất lượng và hiệu năng của Dịch Vụ khi sử dụng Dịch Vụ cho bất kỳ mục đích nào. Trong một vài phạm vi pháp lý, việc miễn trừ hoặc giới hạn đối với các trách nhiệm gián tiếp là không được phép, vì vậy văn bản từ chối trách nhiệm này có thể không áp dụng đối với bạn.</strong>
+rights-webservices-term-5 = <strong>Trừ khi được yêu cầu bởi luật pháp, { -vendor-short-name }, những người đóng góp, các bên cung cấp giấy phép và phân phối sẽ không có nghĩa vụ đối với bất kì tổn hại gián tiếp, đặc biệt, vô tình, mang tính hậu quả, mang tính trừng phạt hoặc cảnh cáo nào xảy ra bên ngoài hoặc trong bất kì cách thức nào liên quan đến việc sử dụng { -brand-short-name } và Dịch Vụ. Tổng các nghĩa vụ tập hợp trong các điều khoản này không vượt quá $500 (năm trăm đôla). Một số luật xét xử không cho phép sự miễn trừ hoặc giới hạn đối với những tổn hại nào đó, cho nên sự miễn trừ và giới hạn này có thể không áp dụng đối với bạn.</strong>
+rights-webservices-term-6 = { -vendor-short-name } đôi khi có thể cập nhật các điều khoản này khi cần thiết. Các điều khoản này không được sửa đổi hoặc hủy bỏ nếu không có thỏa thuận viết tay của { -vendor-short-name }.
+rights-webservices-term-7 = Những điều khoản này được chi phối theo luật của tiểu bang California, Hoa Kỳ, không bao gồm sự mâu thuẫn của nó với các điều khoản pháp lí. Nếu có bất kì phần nào trong các điều khoản bị xem là bất hợp lệ và không bắt buộc, các phần còn lại sẽ vẫn có đầy đủ tính hiệu lực và bắt buộc. Khi xảy ra mâu thuẫn giữa phiên bản được chuyển ngữ của các điều khoản này và phiên bản tiếng Anh, phiên bản tiếng Anh sẽ là phiên bản chủ đạo.
diff --git a/l10n-vi/mail/messenger/aboutSupportMail.ftl b/l10n-vi/mail/messenger/aboutSupportMail.ftl
new file mode 100644
index 0000000000..f8e4772177
--- /dev/null
+++ b/l10n-vi/mail/messenger/aboutSupportMail.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/.
+
+accounts-title = Tài khoản thư và tin tức
+show-private-data-main-text = Bao gồm tên tài khoản
+show-private-data-explanation-text = (thông tin có thể nhận diện cá nhân)
+accounts-ID = ID
+accounts-name = Tên
+accounts-incoming-server = Máy chủ nhận thư
+accounts-outgoing-servers = Máy chủ gửi thư
+accounts-server-name = Tên
+accounts-conn-security = Bảo mật kết nối
+accounts-auth-method = Phương thức xác thực
+accounts-default = Mặc định?
+identity-name = Danh tính
+
+send-via-email = Gửi qua email
+
+app-basics-telemetry = Dữ liệu từ xa
diff --git a/l10n-vi/mail/messenger/accountCentral.ftl b/l10n-vi/mail/messenger/accountCentral.ftl
new file mode 100644
index 0000000000..18cb64bd14
--- /dev/null
+++ b/l10n-vi/mail/messenger/accountCentral.ftl
@@ -0,0 +1,68 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+account-central-title = Chào mừng đến với { -brand-full-name }
+account-settings = Cài đặt tài khoản
+
+# $accounts (Number) - the number of configured accounts
+setup-title = Chọn những gì để thiết lập
+about-title = Về { -brand-full-name }
+resources-title = Tài nguyên
+
+release-notes =
+ .title = Về { -brand-full-name }
+
+email-label = Email
+ .aria-label = Kết nối với tài khoản email hiện tại của bạn
+email-description = { -brand-short-name } cho phép bạn kết nối với tài khoản email hiện tại của mình, để đọc email của bạn một cách thuận tiện và hiệu quả từ trong ứng dụng.
+
+calendar-label = Lịch
+ .aria-label = Tạo một lịch mới
+calendar-description = { -brand-short-name } cho phép bạn xử lý các sự kiện và giúp bạn tổ chức. Kết nối với lịch từ xa sẽ giữ cho tất cả các sự kiện của bạn được đồng bộ hóa trên tất cả các thiết bị của bạn.
+
+chat-label = Trò chuyện
+ .aria-label = Kết nối với tài khoản trò chuyện của bạn
+chat-description = { -brand-short-name } cho phép bạn kết nối với nhiều tài khoản nhắn tin tức thời, cung cấp hỗ trợ cho các nền tảng khác nhau.
+
+filelink-label = Filelink
+ .aria-label = Thiết lập Filelink
+filelink-description = { -brand-short-name } cho phép bạn thiết lập tài khoản đám mây filelink thuận tiện để dễ dàng gửi các tập tin đính kèm lớn.
+
+addressbook-label = Sổ địa chỉ
+ .aria-label = Tạo một sổ địa chỉ mới
+addressbook-description = { -brand-short-name } cho phép bạn sắp xếp tất cả các địa chỉ liên lạc của bạn trong một sổ địa chỉ. Bạn cũng có thể kết nối với sổ địa chỉ từ xa để giữ cho tất cả các địa chỉ liên lạc của bạn được đồng bộ hóa.
+
+feeds-label = Nguồn cấp
+ .aria-label = Kết nối đến nguồn cấp
+feeds-description = { -brand-short-name } cho phép bạn kết nối với nguồn cấp dữ liệu RSS/Atom để nhận tin tức và cập nhật từ khắp nơi.
+
+newsgroups-label = Nhóm tin
+ .aria-label = Kết nối đến một nhóm tin
+newsgroups-description = { -brand-short-name } cho phép bạn kết nối với tất cả các nhóm tin bạn muốn.
+
+import-title = Nhập dữ liệu từ chương trình khác…
+import-paragraph = { -brand-short-name } cho phép bạn nhập thư mail, mục nhập sổ địa chỉ, đăng ký nguồn cấp dữ liệu, tùy chọn và/hoặc bộ lọc từ các chương trình thư khác và các định dạng sổ địa chỉ phổ biến.
+
+import-label = Nhập
+ .aria-label = Nhập dữ liệu từ các chương trình khác
+
+about-paragraph = Thunderbird là ứng dụng email và lịch trình đa nền tảng, mã nguồn mở hàng đầu, miễn phí cho doanh nghiệp và sử dụng cá nhân. Chúng tôi muốn nó được an toàn và trở nên tốt hơn. Việc quyên góp sẽ cho phép chúng tôi thuê các nhà phát triển, trả tiền cho cơ sở hạ tầng và tiếp tục cải thiện.
+
+about-paragraph-2 = <b>Thunderbird được tài trợ bởi những người dùng như bạn! Nếu bạn thích Thunderbird, bạn có thể cân nhắc việc quyên góp.</b> Cách tốt nhất để bạn đảm bảo Thunderbird vẫn có sẵn là
+about-donation = quyên góp
+
+about-paragraph-consider-donation = <b>Thunderbird được tài trợ bởi những người dùng như bạn! Nếu bạn thích Thunderbird, vui lòng xem xét việc quyên góp.</b> Cách tốt nhất để bạn đảm bảo Thunderbird vẫn khả dụng là <a data-l10n-name="donation-link">thực hiện quyên góp</a>.
+
+explore-link = Khám phá các tính năng
+support-link = Hỗ trợ
+involved-link = Tham gia
+developer-link = Tài liệu dành cho nhà phát triển
+
+read = Đọc thư
+compose = Viết thư mới
+search = Tìm kiếm thư
+filter = Quản lí bộ lọc thư
+nntp-subscription = Quản lí đăng kí nhóm tin
+rss-subscription = Quản lý đăng ký theo dõi
+e2e = Mã hóa đầu cuối
diff --git a/l10n-vi/mail/messenger/addressbook/abCardDAVDialog.ftl b/l10n-vi/mail/messenger/addressbook/abCardDAVDialog.ftl
new file mode 100644
index 0000000000..9c18521b96
--- /dev/null
+++ b/l10n-vi/mail/messenger/addressbook/abCardDAVDialog.ftl
@@ -0,0 +1,45 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, you can obtain one at http://mozilla.org/MPL/2.0/.
+
+carddav-window =
+ .title = Sổ địa chỉ CardDAV mới
+
+carddav-dialog =
+ .buttonlabelaccept = Tiếp tục
+ .buttonaccesskeyaccept = C
+
+carddav-experimental-warning = Hỗ trợ sổ địa chỉ CardDAV đang thử nghiệm và có thể làm hỏng vĩnh viễn dữ liệu của bạn. Chỉ sử dụng khi bạn biết rõ nguy cơ.
+
+carddav-provider-label =
+ .value = Nhà cung cấp CardDAV:
+ .accesskey = P
+
+carddav-provider-option-other = Nhà cung cấp khác…
+
+carddav-url-label =
+ .value = URL CardDAV:
+ .accesskey = V
+
+carddav-username-label =
+ .value = Tên đăng nhập:
+ .accesskey = U
+carddav-username-input =
+ .placeholder = you@example.com
+
+carddav-password-label =
+ .value = Mật khẩu:
+ .accesskey = w
+carddav-password-input =
+ .placeholder = Mật khẩu
+
+carddav-remember-password =
+ .label = Ghi nhớ mật khẩu
+ .accesskey = m
+
+carddav-loading = Đang tìm cấu hình…
+carddav-connection-error = Không thể kết nối.
+carddav-none-found = Không tìm thấy sổ địa chỉ để thêm cho tài khoản được chỉ định.
+carddav-already-added = Tất cả các sổ địa chỉ cho tài khoản được chỉ định đã được thêm vào.
+
+carddav-available-books = Sổ địa chỉ có sẵn:
diff --git a/l10n-vi/mail/messenger/addressbook/abCardDAVProperties.ftl b/l10n-vi/mail/messenger/addressbook/abCardDAVProperties.ftl
new file mode 100644
index 0000000000..8783c05287
--- /dev/null
+++ b/l10n-vi/mail/messenger/addressbook/abCardDAVProperties.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/.
+
+carddav-url-label =
+ .value = URL CardDAV:
+ .accesskey = V
+carddav-refreshinterval-label =
+ .label = Đồng bộ hoá:
+ .accesskey = S
+# Variables:
+# $minutes (integer) - Number of minutes between address book synchronizations
+carddav-refreshinterval-minutes-value =
+ .label =
+ { $minutes ->
+ *[other] mỗi { $minutes } phút
+ }
+# Variables:
+# $hours (integer) - Number of hours between address book synchronizations
+carddav-refreshinterval-hours-value =
+ .label =
+ { $hours ->
+ *[other] mỗi { $hours } giờ
+ }
+carddav-readonly-label =
+ .label = Chỉ đọc
+ .accesskey = R
diff --git a/l10n-vi/mail/messenger/menubar.ftl b/l10n-vi/mail/messenger/menubar.ftl
new file mode 100644
index 0000000000..79de0170f2
--- /dev/null
+++ b/l10n-vi/mail/messenger/menubar.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/.
+
+
+## View Menu
+
+menu-view-charset =
+ .label = Bảng mã văn bản
+ .accesskey = c
+
+## Mail Toolbar
+
+toolbar-junk-button =
+ .label = Thư rác
+ .tooltiptext = Đánh dấu các thư đã chọn là thư rác
+toolbar-not-junk-button =
+ .label = Không phải thư rác
+ .tooltiptext = Đánh dấu các thư đã chọn là không phải thư rác
+toolbar-delete-button =
+ .label = Xóa
+ .tooltiptext = Xóa thư hoặc thư mục đã chọn
+toolbar-undelete-button =
+ .label = Hoàn tác xóa
+ .tooltiptext = Phục hồi các thư đã chọn
diff --git a/l10n-vi/mail/messenger/messenger.ftl b/l10n-vi/mail/messenger/messenger.ftl
new file mode 100644
index 0000000000..dbf3a5d403
--- /dev/null
+++ b/l10n-vi/mail/messenger/messenger.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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-rights-notification-text = { -brand-short-name } là phần mềm nguồn mở và miễn phí, được xây dựng bởi một cộng đồng gồm hàng ngàn người từ khắp nơi trên thế giới.
+
+## Folder Pane
+
+folder-pane-toolbar =
+ .toolbarname = Thanh công cụ ngăn thư mục
+ .accesskey = F
+folder-pane-header-label = Thư mục
+
+## Folder Toolbar Header Popup
+
+folder-toolbar-hide-toolbar-toolbarbutton =
+ .label = Ẩn thanh công cụ
+ .accesskey = H
+show-all-folders-label =
+ .label = Tất cả thư mục
+ .accesskey = A
+show-unread-folders-label =
+ .label = Thư mục chưa đọc
+ .accesskey = n
+show-favorite-folders-label =
+ .label = Thư mục yêu thích
+ .accesskey = F
+show-smart-folders-label =
+ .label = Thư mục hợp nhất
+ .accesskey = U
+show-recent-folders-label =
+ .label = Thư mục gần đây
+ .accesskey = R
+folder-toolbar-toggle-folder-compact-view =
+ .label = Chế độ xem thu gọn
+ .accesskey = C
diff --git a/l10n-vi/mail/messenger/messengercompose/messengercompose.ftl b/l10n-vi/mail/messenger/messengercompose/messengercompose.ftl
new file mode 100644
index 0000000000..40c0cc63f7
--- /dev/null
+++ b/l10n-vi/mail/messenger/messengercompose/messengercompose.ftl
@@ -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/.
+
+
+# Addressing widget
+
+# $type (String) - the type of the addressing row
+remove-address-row-type = Xóa trường { $type }
+# $type (String) - the type of the addressing row
+remove-address-row-type-label =
+ .tooltiptext = Xóa trường { $type }
+# $type (String) - the type of the addressing row
+# $count (Number) - the number of address pills currently present in the addressing row
+address-input-type-aria-label =
+ { $count ->
+ [0] { $type }
+ *[other] { $type } với { $count } địa chỉ, sử dụng phím mũi tên trái để chọn chúng.
+ }
+# $email (String) - the email address
+# $count (Number) - the number of address pills currently present in the addressing row
+pill-aria-label =
+ { $count ->
+ *[other] { $email }, 1 của { $count }: nhấn Enter để chỉnh sửa, Delete để xóa.
+ }
+# $email (String) - the email address
+pill-tooltip-invalid-address = { $email } không phải là địa chỉ e-mail hợp lệ
+# $email (String) - the email address
+pill-tooltip-not-in-address-book = { $email } không có trong sổ địa chỉ của bạn
+pill-action-edit =
+ .label = Chỉnh sửa địa chỉ
+ .accesskey = e
+pill-action-move-to =
+ .label = Chuyển sang Đến
+ .accesskey = t
+pill-action-move-cc =
+ .label = Chuyển sang Cc
+ .accesskey = c
+pill-action-move-bcc =
+ .label = Chuyển sang Bcc
+ .accesskey = b
+# $count (Number) - the number of attachments in the attachment bucket
+attachment-bucket-count =
+ .value =
+ { $count ->
+ [1] { $count } đính kèm
+ *[other] { $count } đính kèm
+ }
+ .accesskey = m
+# $count (Number) - the number of attachments in the attachment bucket
+attachments-placeholder-tooltip =
+ .tooltiptext =
+ { $count ->
+ [1] { $count } đính kèm
+ *[other] { $count } đính kèm
+ }
+# { attachment-bucket-count.accesskey } - Do not localize this message.
+key-toggle-attachment-pane =
+ .key = { attachment-bucket-count.accesskey }
+button-return-receipt =
+ .label = Biên nhận
+ .tooltiptext = Yêu cầu biên nhận trả lại cho thư này
diff --git a/l10n-vi/mail/messenger/newInstall.ftl b/l10n-vi/mail/messenger/newInstall.ftl
new file mode 100644
index 0000000000..9dc098f8e9
--- /dev/null
+++ b/l10n-vi/mail/messenger/newInstall.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/.
+
+connection-window =
+ .title = Tin tức quan trọng
+continue-button =
+ .label = Tiếp tục
+main-text = Bản cài đặt { -brand-short-name } này có cấu hình mới. Nó không chia sẻ dữ liệu email, mật khẩu, tùy chọn người dùng và sổ địa chỉ với các bản cài đặt khác của { -brand-product-name } (bao gồm { -brand-product-name }, { -brand-product-name } Beta và { -brand-product-name } Daily) trên máy tính này.
diff --git a/l10n-vi/mail/messenger/newInstallPage.ftl b/l10n-vi/mail/messenger/newInstallPage.ftl
new file mode 100644
index 0000000000..81b1943998
--- /dev/null
+++ b/l10n-vi/mail/messenger/newInstallPage.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/.
+
+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 tin trong đó { -brand-product-name } lưu thông tin như dữ liệu email, mật khẩu, tùy chọn người dùng và sổ địa chỉ.
+changed-desc-dedicated = Để giúp chuyển đổi giữa các cài đặt { -brand-product-name } (bao gồm { -brand-product-name }, { -brand-product-name } Beta và { -brand-product-name } Hàng ngày), cài đặt này hiện có một hồ sơ riêng biệt. 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 { -brand-product-name } khác.
+lost = <b>Bạn không mất bất kỳ dữ liệu cá nhân hoặc tùy chỉnh nào.</b> Nếu bạn đã lưu thông tin vào { -brand-product-name } trên máy tính này, nó vẫn có sẵn trong bản cài đặt { -brand-product-name } 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 { -brand-product-name }.
+resources = Tài nguyên
+about-pofiles-link = Xem và quản lý hồ sơ của bạn
+support-link = Sử dụng trình quản lý hồ sơ - Bài viết hỗ trợ
diff --git a/l10n-vi/mail/messenger/openpgp/backupKeyPassword.ftl b/l10n-vi/mail/messenger/openpgp/backupKeyPassword.ftl
new file mode 100644
index 0000000000..9fcc0a4f26
--- /dev/null
+++ b/l10n-vi/mail/messenger/openpgp/backupKeyPassword.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/.
+
+set-password-window =
+ .title = Chọn mật khẩu để sao lưu khóa OpenPGP của bạn
+
+set-password-legend = Chọn mật khẩu
+
+set-password-message = Mật khẩu sao lưu chứng chỉ mà bạn đặt ở đây bảo vệ tập tin sao lưu mà bạn sẽ tạo. Bạn phải đặt mật khẩu để tiến hành sao lưu.
+
+set-password-backup-pw =
+ .value = Mật khẩu sao lưu khóa bí mật:
+
+set-password-repeat-backup-pw =
+ .value = Mật khẩu sao lưu khóa bí mật (một lần nữa):
+
+set-password-reminder = <b>Quan trọng!</b> Nếu bạn quên mật khẩu sao lưu khóa bí mật của mình, bạn sẽ không thể khôi phục bản sao lưu này sau này. Hãy ghi lại nó ở một vị trí an toàn.
+
+password-quality-meter = Độ an toàn mật khẩu
diff --git a/l10n-vi/mail/messenger/openpgp/changeExpiryDlg.ftl b/l10n-vi/mail/messenger/openpgp/changeExpiryDlg.ftl
new file mode 100644
index 0000000000..8d9647f5d0
--- /dev/null
+++ b/l10n-vi/mail/messenger/openpgp/changeExpiryDlg.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/.
+
+openpgp-change-key-expiry-title =
+ .title = Thay đổi thời hạn sử dụng khóa
+
+info-will-expire = Khóa này hiện được định cấu hình để hết hạn vào { $date }.
+info-already-expired = Khóa này đã hết hạn.
+info-does-not-expire = Khóa này hiện được định cấu hình để không bao giờ hết hạn.
+
+info-explanation-1 = <b>Sau khi khóa hết hạn</b>, bạn không thể sử dụng khóa đó để mã hóa hoặc ký kỹ thuật số nữa.
+
+info-explanation-2 = Để sử dụng khóa này trong thời gian dài hơn, hãy thay đổi ngày hết hạn của nó, sau đó chia sẻ lại khóa công khai với các đối tác trò chuyện của bạn.
+
+expire-dont-change =
+ .label = Không thay đổi hạn sử dụng
+expire-never-label =
+ .label = Khóa sẽ không bao giờ hết hạn
+expire-in-label =
+ .label = Khóa sẽ hết hạn sau:
+expire-in-months = Tháng
diff --git a/l10n-vi/mail/messenger/openpgp/composeKeyStatus.ftl b/l10n-vi/mail/messenger/openpgp/composeKeyStatus.ftl
new file mode 100644
index 0000000000..007c022784
--- /dev/null
+++ b/l10n-vi/mail/messenger/openpgp/composeKeyStatus.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/.
+
+openpgp-compose-key-status-intro-need-keys = Để gửi một tin nhắn được mã hóa đầu cuối, bạn phải lấy và chấp nhận một khóa công khai cho mỗi người nhận.
+openpgp-compose-key-status-keys-heading = Tính khả dụng của các khóa OpenPGP:
+openpgp-compose-key-status-title =
+ .title = Thư bảo mật OpenPGP
+openpgp-compose-key-status-recipient =
+ .label = Người nhận
+openpgp-compose-key-status-status =
+ .label = Trạng thái
+openpgp-compose-key-status-open-details = Quản lý khóa cho người nhận đã chọn…
+openpgp-recip-good = ok
+openpgp-recip-missing = không có sẵn khóa
+openpgp-recip-none-accepted = không có khóa được chấp nhận
diff --git a/l10n-vi/mail/messenger/openpgp/keyWizard.ftl b/l10n-vi/mail/messenger/openpgp/keyWizard.ftl
new file mode 100644
index 0000000000..4ed3885273
--- /dev/null
+++ b/l10n-vi/mail/messenger/openpgp/keyWizard.ftl
@@ -0,0 +1,125 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# $identity (String) - the email address of the currently selected identity
+key-wizard-dialog-window =
+ .title = Thêm Khóa OpenPGP Cá nhân cho { $identity }
+key-wizard-button =
+ .buttonlabelaccept = Tiếp tục
+ .buttonlabelhelp = Quay lại
+key-wizard-warning = <b>Nếu bạn có khóa cá nhân hiện tại</b> cho địa chỉ email này, bạn nên nhập khóa đó. Nếu không, bạn sẽ không có quyền truy cập vào kho lưu trữ email được mã hóa của mình, cũng như không thể đọc các email được mã hóa đến từ những người vẫn đang sử dụng khóa hiện có của bạn.
+key-wizard-learn-more = Tìm hiểu thêm
+radio-create-key =
+ .label = Tạo khóa OpenPGP mới
+ .accesskey = C
+radio-import-key =
+ .label = Nhập khóa OpenPGP hiện có
+ .accesskey = I
+radio-gnupg-key =
+ .label = Sử dụng khóa ngoài của bạn thông qua GnuPG (ví dụ: từ thẻ thông minh)
+ .accesskey = U
+
+## Generate key section
+
+openpgp-generate-key-title = Tạo khóa OpenPGP
+openpgp-generate-key-info = <b>Quá trình tạo khóa có thể mất đến vài phút để hoàn tất.</b> Không thoát ứng dụng khi đang tiến hành tạo khóa. Tích cực duyệt hoặc thực hiện các thao tác sử dụng nhiều đĩa trong quá trình tạo khóa sẽ bổ sung 'nhóm ngẫu nhiên' và tăng tốc quá trình. Bạn sẽ được thông báo khi quá trình tạo khóa hoàn tất.
+openpgp-keygen-expiry-title = Khóa hết hạn
+openpgp-keygen-expiry-description = Xác định thời gian hết hạn của khóa mới tạo của bạn. Sau đó, bạn có thể kiểm soát ngày để gia hạn nếu cần.
+radio-keygen-expiry =
+ .label = Khóa hết hạn sau
+ .accesskey = e
+radio-keygen-no-expiry =
+ .label = Khóa không hết hạn
+ .accesskey = d
+openpgp-keygen-days-label =
+ .label = ngày
+openpgp-keygen-months-label =
+ .label = tháng
+openpgp-keygen-years-label =
+ .label = năm
+openpgp-keygen-advanced-title = Cài đặt nâng cao
+openpgp-keygen-advanced-description = Kiểm soát cài đặt nâng cao của khóa OpenPGP của bạn.
+openpgp-keygen-keytype =
+ .value = Loại khóa:
+ .accesskey = t
+openpgp-keygen-keysize =
+ .value = Kích thước khóa:
+ .accesskey = s
+openpgp-keygen-type-rsa =
+ .label = RSA
+openpgp-keygen-type-ecc =
+ .label = ECC (Elliptic Curve)
+openpgp-keygen-button = Tạo khóa
+openpgp-keygen-progress-title = Đang tạo khóa OpenPGP mới của bạn…
+openpgp-keygen-import-progress-title = Nhập khóa OpenPGP của bạn…
+openpgp-import-success = Đã nhập thành công khóa OpenPGP!
+openpgp-import-success-title = Hoàn tất quá trình nhập
+openpgp-import-success-description = Để bắt đầu sử dụng khóa OpenPGP đã nhập của bạn để mã hóa email, hãy đóng hộp thoại này và truy cập Cài đặt tài khoản của bạn để chọn nó.
+openpgp-keygen-confirm =
+ .label = Xác nhận
+openpgp-keygen-dismiss =
+ .label = Hủy bỏ
+openpgp-keygen-cancel =
+ .label = Hủy bỏ quá trình…
+openpgp-keygen-import-complete =
+ .label = Đóng
+ .accesskey = C
+openpgp-keygen-missing-username = Không có tên được chỉ định cho tài khoản hiện tại. Vui lòng nhập giá trị vào trường "Tên của bạn" trong cài đặt tài khoản.
+openpgp-keygen-long-expiry = Bạn không thể tạo khóa hết hạn sau hơn 100 năm.
+openpgp-keygen-short-expiry = Khóa của bạn phải có giá trị trong ít nhất một ngày.
+openpgp-keygen-ongoing = Đã ở trong quá trình tạo khóa!
+openpgp-keygen-error-core = Không thể khởi tạo OpenPGP Core Service
+# $identity (String) - the newly generate OpenPGP Key
+openpgp-keygen-error-revocation = Đã tạo thành công khóa OpenPGP nhưng không thể thu hồi khóa { $key }
+openpgp-keygen-abort-title = Hủy việc tạo khóa?
+openpgp-keygen-abort = Khóa OpenPGP hiện đang được tạo, bạn có chắc chắn muốn hủy nó không?
+# $identity (String) - the name and email address of the currently selected identity
+openpgp-key-confirm = Tạo khóa công khai và khóa bí mật cho { $identity }?
+
+## Import Key section
+
+openpgp-import-key-title = Nhập khóa OpenPGP cá nhân hiện có
+openpgp-import-key-legend = Chọn một tập tin đã sao lưu trước đó.
+openpgp-import-key-description = Bạn có thể nhập các khóa cá nhân đã được tạo bằng phần mềm OpenPGP khác.
+openpgp-import-key-info = Phần mềm khác có thể mô tả khóa cá nhân bằng các thuật ngữ thay thế như khóa riêng, khóa bí mật, khóa cá nhân hoặc cặp khóa.
+# $count (Number) - the number of keys found in the selected files
+openpgp-import-key-list-amount =
+ { $count ->
+ *[other] Thunderbird đã tìm thấy { $count } khóa có thể nhập được.
+ }
+openpgp-import-key-list-description = Xác nhận khóa nào có thể được coi là khóa cá nhân của bạn. Chỉ những khóa do bạn tự tạo và thể hiện danh tính của riêng bạn mới được sử dụng làm khóa cá nhân. Bạn có thể thay đổi tùy chọn này sau trong hộp thoại Thuộc tính khóa.
+openpgp-import-key-list-caption = Các khóa được đánh dấu được coi là Khóa cá nhân sẽ được liệt kê trong phần Mã hóa đầu cuối. Những cái khác sẽ có sẵn bên trong Trình quản lý khóa.
+openpgp-passphrase-prompt-title = Yêu cầu cụm mật khẩu
+# $identity (String) - the id of the key being imported
+openpgp-passphrase-prompt = Vui lòng nhập cụm mật khẩu để mở khóa sau: { $key }
+openpgp-import-key-button =
+ .label = Chọn tập tin để nhập…
+ .accesskey = S
+import-key-file = Nhập tập tin khóa OpenPGP
+import-key-personal-checkbox =
+ .label = Coi khóa này như một khóa cá nhân
+gnupg-file = Tập tin GnuPG
+import-error-file-size = <b>Lỗi!</b> Các tập tin lớn hơn 5MB không được hỗ trợ.
+# $error (String) - the reported error from the failed key import method
+import-error-failed = <b>Lỗi!</b> Không thể nhập tập tin. { $error }
+# $error (String) - the reported error from the failed key import method
+openpgp-import-keys-failed = <b>Lỗi!</b> Không thể nhập khóa. { $error }
+openpgp-import-identity-label = Danh tính
+openpgp-import-fingerprint-label = Vân tay
+openpgp-import-created-label = Đã tạo
+openpgp-import-bits-label = Bit
+openpgp-import-key-props =
+ .label = Thuộc tính khóa
+ .accesskey = K
+
+## External Key section
+
+openpgp-external-key-title = Khóa GnuPG bên ngoài
+openpgp-external-key-description = Định cấu hình khóa GnuPG bên ngoài bằng cách nhập ID khóa
+openpgp-external-key-info = Ngoài ra, bạn phải sử dụng Trình quản lý khóa để nhập và chấp nhận khóa công khai tương ứng.
+openpgp-external-key-warning = <b>Bạn chỉ có thể định cấu hình một khóa GnuPG bên ngoài.</b> Mục nhập trước đó của bạn sẽ được thay thế.
+openpgp-save-external-button = Lưu ID khóa
+openpgp-external-key-label = ID khóa bí mật:
+openpgp-external-key-input =
+ .placeholder = 123456789341298340
diff --git a/l10n-vi/mail/messenger/openpgp/msgReadStatus.ftl b/l10n-vi/mail/messenger/openpgp/msgReadStatus.ftl
new file mode 100644
index 0000000000..bf6d356f78
--- /dev/null
+++ b/l10n-vi/mail/messenger/openpgp/msgReadStatus.ftl
@@ -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/.
+
+
+## Message Header Encryption Button
+
+message-header-show-security-info-key = S
+# $type (String) - the shortcut key defined in the message-header-show-security-info-key
+message-security-button =
+ .title =
+ { PLATFORM() ->
+ [macos] Hiển thị bảo mật thư (⌘ ⌥ { message-header-show-security-info-key })
+ *[other] Hiển thị bảo mật thư (Ctrl+Alt+{ message-header-show-security-info-key })
+ }
+openpgp-view-signer-key =
+ .label = Xem khóa của người ký
+openpgp-view-your-encryption-key =
+ .label = Xem khóa giải mã của bạn
+openpgp-openpgp = OpenPGP
+openpgp-no-sig = Không có chữ ký số
+openpgp-uncertain-sig = Chữ ký số không chắc chắn
+openpgp-invalid-sig = Chữ ký số không hợp lệ
+openpgp-good-sig = Chữ ký số tốt
+openpgp-sig-uncertain-no-key = Thư này có chứa chữ ký số, nhưng không chắc liệu nó có đúng hay không. Để xác minh chữ ký, bạn cần lấy bản sao khóa công khai của người gửi.
+openpgp-sig-uncertain-uid-mismatch = Thư này chứa chữ ký số nhưng đã phát hiện thấy không khớp. Thư được gửi từ một địa chỉ email không khớp với khóa công khai của người ký.
+openpgp-sig-uncertain-not-accepted = Thư này chứa chữ ký số, nhưng bạn vẫn chưa quyết định xem khóa của người ký có được bạn chấp nhận hay không.
+openpgp-sig-invalid-rejected = Thư này chứa chữ ký số, nhưng trước đó bạn đã quyết định từ chối khóa người ký.
+openpgp-sig-invalid-technical-problem = Thư này chứa chữ ký số, nhưng đã phát hiện ra lỗi kỹ thuật. Thư đã bị hỏng hoặc đã bị người khác sửa đổi.
+openpgp-sig-valid-unverified = Thư này bao gồm một chữ ký số hợp lệ từ một khóa mà bạn đã chấp nhận. Tuy nhiên, bạn vẫn chưa xác minh được rằng khóa có thực sự thuộc sở hữu của người gửi hay không.
+openpgp-sig-valid-verified = Thư này bao gồm một chữ ký số hợp lệ từ một khóa đã được xác minh.
+openpgp-sig-valid-own-key = Thư này bao gồm một chữ ký số hợp lệ từ khóa cá nhân của bạn.
+openpgp-sig-key-id = ID khóa người ký: { $key }
+openpgp-sig-key-id-with-subkey-id = ID khóa người ký: { $key } (ID khóa phụ: { $subkey })
+openpgp-enc-key-id = ID khóa giải mã của bạn: { $key }
+openpgp-enc-key-with-subkey-id = ID khóa giải mã của bạn: { $key } (ID khóa phụ: { $subkey })
+openpgp-unknown-key-id = Khóa không xác định
+openpgp-other-enc-additional-key-ids = Ngoài ra, thư đã được mã hóa cho chủ sở hữu của các khóa sau:
+openpgp-other-enc-all-key-ids = Thư đã được mã hóa cho chủ sở hữu của các khóa sau:
diff --git a/l10n-vi/mail/messenger/openpgp/oneRecipientStatus.ftl b/l10n-vi/mail/messenger/openpgp/oneRecipientStatus.ftl
new file mode 100644
index 0000000000..d57393b04a
--- /dev/null
+++ b/l10n-vi/mail/messenger/openpgp/oneRecipientStatus.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/.
+
+openpgp-one-recipient-status-title =
+ .title = Tin nhắn bảo mật OpenPGP
+openpgp-one-recipient-status-status =
+ .label = Trạng thái
+openpgp-one-recipient-status-key-id =
+ .label = ID khóa
+openpgp-one-recipient-status-created-date =
+ .label = Đã tạo lúc
+openpgp-one-recipient-status-expires-date =
+ .label = Hết hạn
+openpgp-one-recipient-status-open-details =
+ .label = Mở chi tiết và chỉnh sửa chấp nhận…
+openpgp-one-recipient-status-discover =
+ .label = Khám phá khóa mới hoặc khóa đã cập nhật
+openpgp-one-recipient-status-instruction1 = Để gửi một tin nhắn được mã hóa đầu-cuối đến người nhận, bạn cần lấy khóa công khai OpenPGP của họ và đánh dấu là đã chấp nhận.
+openpgp-one-recipient-status-instruction2 = Để lấy khóa công khai của họ, hãy nhập chúng từ email mà họ đã gửi cho bạn và bao gồm nó. Ngoài ra, bạn có thể thử khám phá khóa công khai của họ trên một thư mục.
+openpgp-key-own = Đã chấp nhận (khóa cá nhân)
+openpgp-key-secret-not-personal = Không sử dụng được
+openpgp-key-verified = Đã chấp nhận (đã xác minh)
+openpgp-key-unverified = Đã chấp nhận (chưa xác minh)
+openpgp-key-undecided = Không được chấp nhận (chưa quyết định)
+openpgp-key-rejected = Không được chấp nhận (bị từ chối)
+openpgp-intro = Các khóa công khai có sẵn cho { $key }
diff --git a/l10n-vi/mail/messenger/openpgp/openpgp-frontend.ftl b/l10n-vi/mail/messenger/openpgp/openpgp-frontend.ftl
new file mode 100644
index 0000000000..fc5b3aafa6
--- /dev/null
+++ b/l10n-vi/mail/messenger/openpgp/openpgp-frontend.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/.
+
+openpgp-manage-keys-openpgp-cmd =
+ .label = Trình quản lý khóa OpenPGP
+ .accesskey = O
+openpgp-ctx-decrypt-open =
+ .label = Giải mã và mở
+ .accesskey = D
+openpgp-ctx-decrypt-save =
+ .label = Giải mã và lưu dưới dạng…
+ .accesskey = C
+openpgp-ctx-import-key =
+ .label = Nhập khóa OpenPGP
+ .accesskey = I
+openpgp-ctx-verify-att =
+ .label = Xác minh chữ ký
+ .accesskey = V
+openpgp-be-careful-new-key = Cảnh báo: Khóa công khai OpenPGP mới trong thông báo này khác với các khóa công khai mà trước đây bạn đã chấp nhận cho { $email }.
+openpgp-import-sender-key =
+ .label = Nhập…
+openpgp-search-keys-openpgp =
+ .label = Khám phá khóa OpenPGP
+openpgp-missing-signature-key = Thư này đã được ký bằng một khóa mà bạn chưa có.
+openpgp-search-signature-key =
+ .label = Khám phá…
+# Don't translate the terms "OpenPGP" and "MS-Exchange"
+openpgp-broken-exchange-info = Đây là thông báo OpenPGP dường như đã bị hỏng bởi MS-Exchange. Nếu nội dung thư không được hiển thị như mong đợi, bạn có thể thử sửa chữa tự động.
+openpgp-broken-exchange-repair =
+ .label = Sửa chữa thư
+openpgp-broken-exchange-wait = Vui lòng chờ…
+openpgp-cannot-decrypt-because-mdc =
+ Đây là một thư được mã hóa sử dụng một cơ chế cũ và dễ bị tấn công.
+ Nó có thể đã được sửa đổi khi đang chuyển, với ý định lấy cắp nội dung của nó.
+ Để ngăn ngừa rủi ro này, nội dung không được hiển thị.
+openpgp-cannot-decrypt-because-missing-key = Không có khóa bí mật cần thiết để giải mã thông báo này.
+openpgp-partially-signed =
+ Chỉ một tập hợp con của thông báo này được ký điện tử bằng OpenPGP.
+ Nếu bạn nhấp vào nút xác minh, các phần không được bảo vệ sẽ bị ẩn và trạng thái của chữ ký điện tử sẽ được hiển thị.
+openpgp-partially-encrypted =
+ Chỉ một tập hợp con của thông báo này được mã hóa bằng OpenPGP.
+ Các phần có thể đọc được của thư đã được hiển thị không được mã hóa.
+ Nếu bạn nhấp vào nút giải mã, nội dung của các phần được mã hóa sẽ được hiển thị.
+openpgp-reminder-partial-display = Nhắc nhở: Thông báo hiển thị bên dưới chỉ là một tập hợp con của thông báo gốc.
+openpgp-partial-verify-button = Xác minh
+openpgp-partial-decrypt-button = Giải mã
diff --git a/l10n-vi/mail/messenger/openpgp/openpgp.ftl b/l10n-vi/mail/messenger/openpgp/openpgp.ftl
new file mode 100644
index 0000000000..8e9f69504f
--- /dev/null
+++ b/l10n-vi/mail/messenger/openpgp/openpgp.ftl
@@ -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/.
+
+e2e-intro-description = Để gửi thư được mã hóa hoặc được ký điện tử, bạn cần định cấu hình công nghệ mã hóa, OpenPGP hoặc S/MIME.
+
+e2e-intro-description-more = Chọn khóa cá nhân của bạn để cho phép sử dụng OpenPGP hoặc chứng chỉ cá nhân của bạn để cho phép sử dụng S/MIME. Đối với khóa cá nhân hoặc chứng chỉ, bạn sở hữu khóa bí mật tương ứng.
+
+openpgp-key-user-id-label = Tài khoản / ID người dùng
+openpgp-keygen-title-label =
+ .title = Tạo khóa OpenPGP
+openpgp-cancel-key =
+ .label = Hủy bỏ
+ .tooltiptext = Hủy bỏ tạo khóa
+openpgp-key-gen-expiry-title =
+ .label = Khóa hết hạn
+openpgp-key-gen-expire-label = Khóa hết hạn sau
+openpgp-key-gen-days-label =
+ .label = ngày
+openpgp-key-gen-months-label =
+ .label = tháng
+openpgp-key-gen-years-label =
+ .label = năm
+openpgp-key-gen-no-expiry-label =
+ .label = Khóa không hết hạn
+openpgp-key-gen-key-size-label = Kích thước khóa
+openpgp-key-gen-console-label = Trình tạo khóa
+openpgp-key-gen-key-type-label = Loại khóa
+openpgp-key-gen-key-type-rsa =
+ .label = RSA
+openpgp-key-gen-key-type-ecc =
+ .label = ECC (Elliptic Curve)
+openpgp-generate-key =
+ .label = Tạo khóa
+ .tooltiptext = Tạo khóa tuân thủ OpenPGP mới để mã hóa và/hoặc ký
+openpgp-advanced-prefs-button-label =
+ .label = Nâng cao…
+
+openpgp-key-expiry-label =
+ .label = Hết hạn
+
+openpgp-key-id-label =
+ .label = ID khóa
+
+openpgp-key-man-title =
+ .title = Trình quản lý khóa OpenPGP
+
+openpgp-key-man-file-menu =
+ .label = Tập tin
+ .accesskey = F
+openpgp-key-man-edit-menu =
+ .label = Chỉnh sửa
+ .accesskey = E
+openpgp-key-man-view-menu =
+ .label = Xem
+ .accesskey = V
+openpgp-key-man-generate-menu =
+ .label = Tạo
+ .accesskey = G
+openpgp-key-man-keyserver-menu =
+ .label = Keyserver
+ .accesskey = K
+
+openpgp-key-man-import-public-from-file =
+ .label = Nhập (các) khóa công khai từ tập tin
+ .accesskey = I
+openpgp-key-man-import-secret-from-file =
+ .label = Nhập (các) khóa bí mật từ tập tin
+openpgp-key-man-import-from-clipbrd =
+ .label = Nhập (các) khóa từ bộ nhớ tạm
+ .accesskey = I
+openpgp-key-man-import-from-url =
+ .label = Nhập (các) khóa từ URL
+ .accesskey = U
+openpgp-key-man-export-to-file =
+ .label = Xuất (các) khóa công khai vào tập tin
+ .accesskey = E
+openpgp-key-man-send-keys =
+ .label = Gửi (các) khóa công khai qua email
+ .accesskey = S
+openpgp-key-man-backup-secret-keys =
+ .label = Sao lưu (các) khóa bí mật vào tập tin
+ .accesskey = B
+
+openpgp-key-man-discover-cmd =
+ .label = Khám phá khóa trực tuyến
+ .accesskey = D
+openpgp-key-man-discover-prompt = Để khám phá các khóa OpenPGP trực tuyến, trên máy chủ hoặc sử dụng giao thức WKD, hãy nhập địa chỉ email hoặc ID khóa.
+openpgp-key-man-discover-progress = Đang tìm kiếm…
+
+openpgp-key-copy-key =
+ .label = Sao chép khóa công khai
+ .accesskey = C
+
+openpgp-key-export-key =
+ .label = Xuất khóa công khai vào tập tin
+ .accesskey = E
+
+openpgp-key-backup-key =
+ .label = Sao lưu khóa bí mật vào tập tin
+ .accesskey = B
+
+openpgp-key-send-key =
+ .label = Gửi khóa công khai qua email
+ .accesskey = S
+
+openpgp-key-man-ctx-expor-to-file-label =
+ .label = Xuất khóa sang tập tin
+
+openpgp-key-man-close =
+ .label = Đóng
+openpgp-key-man-reload =
+ .label = Tải lại bộ nhớ đệm khóa
+ .accesskey = R
+openpgp-key-man-change-expiry =
+ .label = Thay đổi ngày hết hạn
+ .accesskey = E
+openpgp-key-man-del-key =
+ .label = Xóa (các) khóa
+ .accesskey = D
+openpgp-delete-key =
+ .label = Xóa khóa
+ .accesskey = D
+openpgp-key-man-revoke-key =
+ .label = Thu hồi khóa
+ .accesskey = R
+openpgp-key-man-key-props =
+ .label = Thuộc tính khóa
+ .accesskey = K
+openpgp-key-man-key-more =
+ .label = Thêm
+ .accesskey = m
+openpgp-key-man-view-photo =
+ .label = ID ảnh
+ .accesskey = p
+openpgp-key-man-ctx-view-photo-label =
+ .label = Xem ID ảnh
+openpgp-key-man-show-invalid-keys =
+ .label = Hiển thị các khóa không hợp lệ
+ .accesskey = D
+openpgp-key-man-show-others-keys =
+ .label = Hiển thị chìa khóa từ người khác
+ .accesskey = O
+openpgp-key-man-user-id-label =
+ .label = Tên
+openpgp-key-man-fingerprint-label =
+ .label = Vân tay
+openpgp-key-man-select-all =
+ .label = Chọn tất cả các khóa
+ .accesskey = a
+openpgp-key-man-empty-tree-tooltip =
+ .label = Nhập cụm từ tìm kiếm vào ô bên trên
+openpgp-key-man-nothing-found-tooltip =
+ .label = Không có khóa nào phù hợp với cụm từ tìm kiếm của bạn
+openpgp-key-man-please-wait-tooltip =
+ .label = Vui lòng đợi trong khi các khóa đang được tải…
+
+openpgp-key-man-filter-label =
+ .placeholder = Tìm kiếm khóa
+
+openpgp-key-man-select-all-key =
+ .key = A
+openpgp-key-man-key-details-key =
+ .key = I
+
+openpgp-key-details-title =
+ .title = Thuộc tính khóa
+openpgp-key-details-signatures-tab =
+ .label = Chứng chỉ
+openpgp-key-details-structure-tab =
+ .label = Cấu trúc
+openpgp-key-details-uid-certified-col =
+ .label = ID người dùng / Được chứng nhận bởi
+openpgp-key-details-id-label =
+ .label = ID
+openpgp-key-details-key-type-label = Kiểu
+openpgp-key-details-algorithm-label =
+ .label = Thuật toán
+openpgp-key-details-size-label =
+ .label = Kích thước
+openpgp-key-details-created-label =
+ .label = Được tạo
+openpgp-key-details-created-header = Được tạo
+openpgp-key-details-expiry-label =
+ .label = Hết hạn
+openpgp-key-details-expiry-header = Hết hạn
+openpgp-key-details-fingerprint-label = Vân tay
+openpgp-key-details-sel-action =
+ .label = Chọn hành động…
+ .accesskey = S
+openpgp-card-details-close-window-label =
+ .buttonlabelaccept = Đóng
+openpgp-acceptance-rejected-label =
+ .label = Không, từ chối khóa này.
+openpgp-acceptance-undecided-label =
+ .label = Chưa, để sau.
+openpgp-acceptance-unverified-label =
+ .label = Có, nhưng tôi chưa xác minh rằng đó là khóa chính xác.
+openpgp-acceptance-verified-label =
+ .label = Có, tôi đã trực tiếp xác minh chìa khóa này có vân tay chính xác.
+
+## e2e encryption settings
+
+
+## OpenPGP Key selection area
+
+
+## Account settings export output
+
diff --git a/l10n-vi/mail/messenger/otr/add-finger.ftl b/l10n-vi/mail/messenger/otr/add-finger.ftl
new file mode 100644
index 0000000000..96e0136d9e
--- /dev/null
+++ b/l10n-vi/mail/messenger/otr/add-finger.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/.
+
+otr-add-finger =
+ .title = Thêm dấu vân tay OTR
+
+# Variables:
+# $name (String) - name of a chat contact person
+# Do not translate 'OTR' (name of an encryption protocol)
+otr-add-finger-description = Nhập dấu vân tay khóa OTR cho { $name }.
+
+otr-add-finger-fingerprint = Dấu vân tay:
+otr-add-finger-tooltip-error = Ký tự đã nhập không hợp lệ. Chỉ cho phép chữ cái ABCDEF và số
+
+otr-add-finger-input =
+ .placeholder = Dấu vân tay OTR dài 40 ký tự
diff --git a/l10n-vi/mail/messenger/otr/am-im-otr.ftl b/l10n-vi/mail/messenger/otr/am-im-otr.ftl
new file mode 100644
index 0000000000..4f724e3093
--- /dev/null
+++ b/l10n-vi/mail/messenger/otr/am-im-otr.ftl
@@ -0,0 +1,24 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+account-encryption =
+ .label = Mã hóa đầu cuối
+account-otr-label = Nhắn tin ngoài luồng (OTR)
+account-otr-description = { -brand-short-name } hỗ trợ mã hóa đầu cuối của các cuộc hội thoại một-một. Điều này ngăn các bên thứ ba nghe lén cuộc trò chuyện. Mã hóa đầu cuối chỉ có thể được sử dụng khi người khác cũng sử dụng phần mềm hỗ trợ OTR.
+otr-encryption-title = Mã hóa đã được xác minh
+otr-encryption-caption = Để cho phép người khác xác minh danh tính của bạn trong các cuộc trò chuyện OTR, hãy chia sẻ dấu vân tay OTR của riêng bạn bằng cách sử dụng kênh liên lạc bên ngoài (ngoài băng tần).
+otr-fingerprint-label = Dấu vân tay của bạn:
+view-fingerprint-button =
+ .label = Quản lý dấu vân tay của liên hệ
+ .accesskey = F
+otr-settings-title = Cài đặt OTR
+otr-log =
+ .label = Bao gồm các tin nhắn được mã hóa OTR trong nhật ký hội thoại
+otr-requireEncryption =
+ .label = Yêu cầu mã hóa đầu cuối cho các cuộc hội thoại một-một
+otr-verifyNudge =
+ .label = Luôn nhắc tôi xác minh một liên hệ chưa được xác minh
+
+otr-notYetAvailable = chưa có sẵn
+
diff --git a/l10n-vi/mail/messenger/otr/auth.ftl b/l10n-vi/mail/messenger/otr/auth.ftl
new file mode 100644
index 0000000000..d2fa2d7aee
--- /dev/null
+++ b/l10n-vi/mail/messenger/otr/auth.ftl
@@ -0,0 +1,59 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+otr-auth =
+ .title = Xác minh danh tính liên hệ
+ .buttonlabelaccept = Xác minh
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+auth-title = Xác minh danh tính của { $name }
+
+# Variables:
+# $own_name (String) - the user's own screen name
+auth-your-fp-value = Dấu vân tay cho bạn, { $own_name }:
+
+# Variables:
+# $their_name (String) - the screen name of a chat contact
+auth-their-fp-value = Dấu vân tay cho { $their_name }:
+
+auth-help = Xác minh danh tính của người liên hệ giúp đảm bảo rằng cuộc trò chuyện thực sự riêng tư, khiến cho bên thứ ba rất khó nghe lén hoặc thao túng cuộc trò chuyện.
+auth-helpTitle = Trợ giúp xác minh
+
+auth-questionReceived = Đây là câu hỏi của người liên hệ của bạn:
+
+auth-yes =
+ .label = Có
+
+auth-no =
+ .label = Không
+
+auth-verified = Tôi đã xác minh rằng trên thực tế đây là dấu vân tay chính xác.
+
+auth-manualVerification = Xác minh dấu vân tay thủ công
+auth-questionAndAnswer = Câu hỏi và trả lời
+auth-sharedSecret = Đã chia sẻ bí mật
+
+auth-manualVerification-label =
+ .label = { auth-manualVerification }
+
+auth-questionAndAnswer-label =
+ .label = { auth-questionAndAnswer }
+
+auth-sharedSecret-label =
+ .label = { auth-sharedSecret }
+
+auth-manualInstruction = Liên hệ với đối tác hội thoại dự định của bạn thông qua một số kênh được xác thực khác, chẳng hạn như email có chữ ký OpenPGP hoặc qua điện thoại. Bạn nên nói với nhau dấu vân tay của bạn. (Dấu vân tay là tổng kiểm tra xác định khóa mã hóa.) Nếu dấu vân tay khớp, bạn nên cho biết trong hộp thoại bên dưới rằng bạn đã xác minh dấu vân tay.
+
+auth-how = Bạn muốn xác minh danh tính liên hệ của bạn như thế nào?
+
+auth-qaInstruction = Hãy nghĩ về một câu hỏi mà câu trả lời chỉ được biết cho bạn và liên hệ của bạn. Nhập câu hỏi và trả lời, sau đó đợi liên hệ của bạn nhập câu trả lời. Nếu câu trả lời không khớp, kênh liên lạc bạn đang sử dụng có thể bị giám sát.
+
+auth-secretInstruction = Hãy nghĩ về một bí mật chỉ được biết đến với bạn và liên lạc của bạn. Không sử dụng cùng một kết nối Internet để trao đổi bí mật. Nhập bí mật, sau đó chờ liên hệ của bạn để nhập nó. Nếu các bí mật không khớp, kênh liên lạc bạn đang sử dụng có thể bị giám sát.
+
+auth-question = Nhập câu hỏi:
+
+auth-answer = Nhập câu trả lời (phân biệt chữ hoa/thường):
+
+auth-secret = Nhập bí mật:
diff --git a/l10n-vi/mail/messenger/otr/chat.ftl b/l10n-vi/mail/messenger/otr/chat.ftl
new file mode 100644
index 0000000000..a15f7bf51b
--- /dev/null
+++ b/l10n-vi/mail/messenger/otr/chat.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/.
+
+state-label = Trạng thái mã hóa:
+
+start-text = Bắt đầu một cuộc trò chuyện được mã hóa
+
+start-label =
+ .label = { start-text }
+
+start-tooltip =
+ .tooltiptext = { start-text }
+
+end-label =
+ .label = Kết thúc cuộc trò chuyện được mã hóa
+
+auth-label =
+ .label = Xác minh danh tính liên hệ của bạn
diff --git a/l10n-vi/mail/messenger/otr/finger-sync.ftl b/l10n-vi/mail/messenger/otr/finger-sync.ftl
new file mode 100644
index 0000000000..3d88c9751e
--- /dev/null
+++ b/l10n-vi/mail/messenger/otr/finger-sync.ftl
@@ -0,0 +1,12 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+finger-yes = Đã xác minh
+finger-no = Chưa được xác minh
+
+finger-subset-title = Xóa dấu vân tay
+finger-subset-message = Ít nhất một dấu vân tay không thể bị xóa, bởi vì khóa tương ứng hiện đang được sử dụng trong một cuộc trò chuyện đang hoạt động.
+
+finger-remove-all-title = Xóa tất cả dấu vân tay
+finger-remove-all-message = Bạn có chắc chắn muốn xóa tất cả dấu vân tay đã thấy trước đó? Tất cả các xác minh danh tính OTR trước đó sẽ bị mất.
diff --git a/l10n-vi/mail/messenger/otr/finger.ftl b/l10n-vi/mail/messenger/otr/finger.ftl
new file mode 100644
index 0000000000..6f99ee5fda
--- /dev/null
+++ b/l10n-vi/mail/messenger/otr/finger.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/.
+
+otr-finger =
+ .buttonlabelaccept = Đóng
+ .title = Trước đây đã thấy dấu vân tay OTR
+
+finger-intro = Dấu vân tay OTR từ các cuộc hội thoại được mã hóa đầu cuối trước đó.
+
+finger-screenName =
+ .label = Liên hệ
+finger-verified =
+ .label = Tình trạng xác minh
+finger-fingerprint =
+ .label = Dấu vân tay
+
+finger-remove =
+ .label = Xóa mục đã chọn
+
+finger-remove-all =
+ .label = Xóa tất cả
diff --git a/l10n-vi/mail/messenger/otr/otr.ftl b/l10n-vi/mail/messenger/otr/otr.ftl
new file mode 100644
index 0000000000..d2ce877642
--- /dev/null
+++ b/l10n-vi/mail/messenger/otr/otr.ftl
@@ -0,0 +1,34 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+msgevent-encryption_required_part1 = Bạn đã cố gửi một thư không được mã hóa tới { $name }. Là một chính sách, thư không được mã hóa sẽ không được phép.
+msgevent-encryption_required_part2 = Đang thử bắt đầu một cuộc trò chuyện riêng tư. Thư của bạn sẽ được gửi lại khi cuộc trò chuyện riêng tư bắt đầu.
+msgevent-encryption_error = Đã xảy ra lỗi khi mã hóa thư của bạn. Thư đã không được gửi.
+# Variables:
+# $name (String) - the screen name of a chat contact person
+msgevent-connection_ended = { $name } đã đóng kết nối được mã hóa của họ với bạn. Để tránh việc bạn vô tình gửi thư mà không mã hóa, thư của bạn đã không được gửi. Vui lòng kết thúc cuộc trò chuyện được mã hóa của bạn hoặc khởi động lại nó.
+# Variables:
+# $name (String) - the screen name of a chat contact person
+msgevent-setup_error = Đã xảy ra lỗi khi thiết lập cuộc trò chuyện riêng tư với { $name }.
+# Variables:
+# $name (String) - the screen name of a chat contact person
+msgevent-rcvdmsg_unreadable = Bạn đã nhận được một tin nhắn mã hóa không đọc được từ { $name }.
+# Do not translate 'OTR' (name of an encryption protocol)
+# Variables:
+# $name (String) - the screen name of a chat contact person
+msgevent-rcvdmsg_unrecognized = Bạn đã nhận được một tin nhắn OTR không xác định từ { $name }.
+# Variables:
+# $name (String) - the screen name of a chat contact person
+context-gone_secure_private = Đã bắt đầu cuộc trò chuyện riêng tư với { $name }.
+# Variables:
+# $name (String) - the screen name of a chat contact person
+context-still_secure = Đã làm mới cuộc trò chuyện được mã hóa với { $name }.
+error-enc = Đã xảy ra lỗi khi mã hóa tin nhắn.
+error-unreadable = Bạn đã truyền đi một tin nhắn được mã hóa không đọc được.
+resent = [đã gửi lại]
+# Variables:
+# $name (String) - the screen name of a chat contact person
+tlv-disconnected = { $name } đã kết thúc cuộc trò chuyện được mã hóa của họ với bạn; bạn cũng nên làm vậy.
diff --git a/l10n-vi/mail/messenger/otr/otrUI.ftl b/l10n-vi/mail/messenger/otr/otrUI.ftl
new file mode 100644
index 0000000000..961f169a50
--- /dev/null
+++ b/l10n-vi/mail/messenger/otr/otrUI.ftl
@@ -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/.
+
+start-label = Bắt đầu một cuộc trò chuyện được mã hóa
+refresh-label = Làm mới cuộc hội thoại được mã hóa
+auth-label = Xác minh danh tính liên hệ của bạn
+reauth-label = Xác minh lại danh tính liên hệ của bạn
+
+auth-cancel = Hủy bỏ
+auth-cancelAccessKey = C
+
+auth-error = Đã xảy ra lỗi trong khi xác minh danh tính của liên hệ của bạn.
+auth-success = Hoàn tất xác minh danh tính liên hệ của bạn.
+auth-successThem = Liên hệ của bạn đã xác minh thành công danh tính của bạn. Bạn có thể muốn xác minh danh tính của họ bằng cách đặt câu hỏi của riêng bạn.
+auth-fail = Không thể xác minh danh tính của liên hệ của bạn.
+auth-waiting = Đang chờ liên hệ để hoàn tất xác minh…
+
+finger-verify = Xác minh
+finger-verify-accessKey = V
+
+# Do not translate 'OTR' (name of an encryption protocol)
+buddycontextmenu-label = Thêm dấu vân tay OTR
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+alert-start = Đang thử bắt đầu một cuộc trò chuyện được mã hóa với { $name }.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+alert-refresh = Đang thử làm mới cuộc hội thoại được mã hóa bằng { $name }.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+alert-gone_insecure = Cuộc trò chuyện được mã hóa với { $name } đã kết thúc.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+finger-unseen = Danh tính của { $name } chưa được xác minh. Việc nghe lén thông thường là không thể, nhưng với một số nỗ lực ai đó có thể nghe được. Ngăn chặn sự giám sát bằng cách xác minh danh tính của người liên hệ này.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+finger-seen = { $name } đang liên hệ với bạn từ một máy tính không được nhận dạng. Việc nghe lén thông thường là không thể, nhưng với một số nỗ lực ai đó có thể nghe được. Ngăn chặn sự giám sát bằng cách xác minh danh tính của người liên hệ này.
+
+state-not_private = Cuộc trò chuyện hiện tại không riêng tư.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+state-unverified = Cuộc hội thoại hiện tại được mã hóa nhưng không riêng tư, vì danh tính của { $name } vẫn chưa được xác minh.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+state-private = Danh tính của { $name } đã được xác minh. Cuộc trò chuyện hiện tại được mã hóa và riêng tư.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+state-finished = { $name } đã kết thúc cuộc trò chuyện được mã hóa của họ với bạn; bạn nên làm như vậy.
+
+state-not_private-label = Không an toàn
+state-unverified-label = Chưa xác minh
+state-private-label = Riêng tư
+state-finished-label = Hoàn tất
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+verify-request = { $name } đã yêu cầu xác minh danh tính của bạn.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+afterauth-private = Bạn đã xác minh danh tính của { $name }.
+
+# Variables:
+# $name (String) - the screen name of a chat contact person
+afterauth-unverified = Danh tính của { $name } chưa được xác minh.
+
+verify-title = Xác minh danh tính liên hệ của bạn
+error-title = Lỗi
+success-title = Mã hóa đầu cuối
+successThem-title = Xác minh danh tính liên hệ của bạn
+fail-title = Không thể xác minh
+waiting-title = Đã gửi yêu cầu xác minh
+
+# Do not translate 'OTR' (name of an encryption protocol)
+# Variables:
+# $error (String) - contains an error message that describes the cause of the failure
+otr-genkey-failed = Tạo khóa riêng OTR không thành công: { $error }
diff --git a/l10n-vi/mail/messenger/policies/aboutPolicies.ftl b/l10n-vi/mail/messenger/policies/aboutPolicies.ftl
new file mode 100644
index 0000000000..e6d6970138
--- /dev/null
+++ b/l10n-vi/mail/messenger/policies/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 = Hoạt động
+errors-tab = Lỗi
+documentation-tab = Tài liệu
+
+no-specified-policies-message = Dịch vụ chính sách doanh nghiệp đang hoạt động nhưng không có chính sách nào được kích hoạt.
+inactive-message = Dịch vụ chính sách doanh nghiệp không hoạt động.
+
+policy-name = Tên chính sách
+policy-value = Giá trị chính sách
+policy-errors = Lỗi chính sách
diff --git a/l10n-vi/mail/messenger/policies/policies-descriptions.ftl b/l10n-vi/mail/messenger/policies/policies-descriptions.ftl
new file mode 100644
index 0000000000..1721463dc5
--- /dev/null
+++ b/l10n-vi/mail/messenger/policies/policies-descriptions.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/.
+
+
+## The Enterprise Policies feature is aimed at system administrators
+## who want to deploy these settings across several Thunderbird 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 = Đặt URL cập nhật ứng dụng tùy chỉnh.
+policy-Authentication = Định cấu hình xác thực tích hợp cho các trang web hỗ trợ nó.
+policy-BlockAboutAddons = Chặn quyền truy cập vào trình quản lý tiện ích (about:addons).
+policy-BlockAboutConfig = Chặn quyền truy cập vào trang about:config.
+policy-BlockAboutProfiles = Chặn quyền truy cập vào trang about:profiles.
+policy-BlockAboutSupport = Chặn quyền truy cập vào trang about:support.
+policy-CaptivePortal = Kích hoạt hoặc vô hiệu hóa hỗ trợ cổng bị khóa.
+policy-CertificatesDescription = Thêm chứng chỉ hoặc sử dụng chứng chỉ tích hợp.
+policy-Cookies = Cho phép hoặc từ chối các trang web để đặt 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 = Ngăn { -brand-short-name } cập nhật.
+policy-DisableDefaultClientAgent = Ngăn không cho tác nhân khách mặc định thực hiện bất kỳ hành động nào. Chỉ áp dụng cho Windows; các nền tảng khác không có tác nhân.
+policy-DisableDeveloperTools = Chặn quyền truy cập vào các 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-DisableForgetButton = Ngăn 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, mật khẩu chính không thể được tạo ra.
+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-DisableProfileImport = Vô hiệu hóa lệnh menu để nhập dữ liệu từ một ứng dụng khác.
+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 chặn người dùng bỏ qua các cảnh báo bảo mật nhất định.
+policy-DisableSystemAddonUpdate = Ngăn { -brand-short-name } cài đặt và cập nhật các tiện ích hệ thống.
+policy-DisableTelemetry = Tắt Telemetry.
+policy-DisplayMenuBar = Hiển thị thanh menu theo mặc định.
+policy-DNSOverHTTPS = Định cấu hình DNS qua HTTPS.
+policy-DontCheckDefaultClient = Vô hiệu hóa kiểm tra cho máy khách 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 = Bật hoặc tắt 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 có 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-HardwareAcceleration = Nếu sai, tắt tăng tốc phần cứng.
+policy-InstallAddonsPermission = Cho phép các trang web nhất định để 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-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-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 } đề nghị ghi nhớ 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 định 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-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 = Định cấu hình cài đặt 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-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 = Bật hoặc tắt đề 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 = Đặt phiên bản SSL tối đa.
+policy-SSLVersionMin = Đặt 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/mail/messenger/preferences/am-im.ftl b/l10n-vi/mail/messenger/preferences/am-im.ftl
new file mode 100644
index 0000000000..a861bd5451
--- /dev/null
+++ b/l10n-vi/mail/messenger/preferences/am-im.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/.
+
+account-settingsTitle = Cài đặt xác thực
+account-channelTitle = Kênh mặc định
diff --git a/l10n-vi/mail/messenger/preferences/application-manager.ftl b/l10n-vi/mail/messenger/preferences/application-manager.ftl
new file mode 100644
index 0000000000..f9ef408e2b
--- /dev/null
+++ b/l10n-vi/mail/messenger/preferences/application-manager.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/.
+
+app-manager-window-dialog =
+ .title = Chi tiết ứng dụng
+ .style = width: 30em; min-height: 20em;
+
+remove-app-button =
+ .label = Xóa
+ .accesskey = R
diff --git a/l10n-vi/mail/messenger/preferences/attachment-reminder.ftl b/l10n-vi/mail/messenger/preferences/attachment-reminder.ftl
new file mode 100644
index 0000000000..9670be9ef0
--- /dev/null
+++ b/l10n-vi/mail/messenger/preferences/attachment-reminder.ftl
@@ -0,0 +1,26 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+attachment-reminder-window =
+ .title = Từ khóa lời nhắc về đính kèm
+
+attachment-reminder-label = { -brand-short-name } sẽ cảnh báo bạn về các tập tin đính kèm bị thiếu nếu bạn sắp gửi e-mail chứa một trong những từ khóa này.
+
+keyword-new-button =
+ .label = Mới…
+ .accesskey = N
+
+keyword-edit-button =
+ .label = Chỉnh sửa…
+ .accesskey = E
+
+keyword-remove-button =
+ .label = Xóa
+ .accesskey = D
+
+new-keyword-title = Từ khóa mới
+new-keyword-label = Từ khóa:
+
+edit-keyword-title = Chỉnh sửa từ khóa
+edit-keyword-label = Từ khóa:
diff --git a/l10n-vi/mail/messenger/preferences/colors.ftl b/l10n-vi/mail/messenger/preferences/colors.ftl
new file mode 100644
index 0000000000..5f49c491f7
--- /dev/null
+++ b/l10n-vi/mail/messenger/preferences/colors.ftl
@@ -0,0 +1,52 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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-dialog-window =
+ .title = Màu sắc
+ .style =
+ { PLATFORM() ->
+ [macos] width: 41em !important
+ *[other] width: 38em !important
+ }
+
+colors-dialog-legend = Văn bản và nền
+
+text-color-label =
+ .value = Văn bản:
+ .accesskey = T
+
+background-color-label =
+ .value = Nền:
+ .accesskey = B
+
+use-system-colors =
+ .label = Dùng màu sắc của hệ thống
+ .accesskey = s
+
+colors-link-legend = Màu liên kết
+
+link-color-label =
+ .value = Liên kết chưa truy cập:
+ .accesskey = L
+
+visited-link-color-label =
+ .value = Liên kết đã truy cập:
+ .accesskey = V
+
+underline-link-checkbox =
+ .label = Các liên kết được gạch chân
+ .accesskey = U
+
+override-color-label =
+ .value = Ghi đè các màu được chỉ định bởi nội dung bằng các lựa chọn của tôi ở trên:
+ .accesskey = O
+
+override-color-always =
+ .label = Luôn luôn
+
+override-color-auto =
+ .label = Chỉ trong các chủ đề có độ tương phản cao
+
+override-color-never =
+ .label = Không bao giờ
diff --git a/l10n-vi/mail/messenger/preferences/connection.ftl b/l10n-vi/mail/messenger/preferences/connection.ftl
new file mode 100644
index 0000000000..c346cef1db
--- /dev/null
+++ b/l10n-vi/mail/messenger/preferences/connection.ftl
@@ -0,0 +1,115 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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-dns-over-https-url-resolver = Sử dụng nhà cung cấp
+ .accesskey = r
+
+# 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 URL mặc định để xử lý DNS qua 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 để giải quyết DNS qua HTTPS
+ Nhập URL ưa thích của bạn để giải quyết DNS qua HTTPS
+ Nhập URL ưa thích của bạn để giải quyết DNS qua HTTPS
+ Nhập URL ưa thích của bạn để xử lí DNS qua HTTPS
+
+connection-dns-over-https-custom-label = Tùy chỉnh
+
+connection-dialog-window =
+ .title = Cài đặt kết nối
+ .style =
+ { PLATFORM() ->
+ [macos] width: 44em !important
+ *[other] width: 49em !important
+ }
+
+connection-proxy-legend = Định cấu hình proxy để truy cập Internet
+
+proxy-type-no =
+ .label = Không dùng proxy
+ .accesskey = y
+
+proxy-type-wpad =
+ .label = Tự động phát hiện cài đặt proxy cho mạng này
+ .accesskey = w
+
+proxy-type-system =
+ .label = Sử dụng cài đặt proxy của hệ thống
+ .accesskey = u
+
+proxy-type-manual =
+ .label = Cấu hình proxy thủ công:
+ .accesskey = m
+
+proxy-http-label =
+ .value = Proxy HTTP:
+ .accesskey = h
+
+http-port-label =
+ .value = Cổng:
+ .accesskey = p
+
+proxy-http-sharing =
+ .label = Đồng thời sử dụng proxy này cho HTTPS
+ .accesskey = x
+
+proxy-https-label =
+ .value = HTTPS Proxy:
+ .accesskey = S
+
+ssl-port-label =
+ .value = Cổng:
+ .accesskey = o
+
+proxy-socks-label =
+ .value = Máy chủ SOCKS:
+ .accesskey = c
+
+socks-port-label =
+ .value = Cổng:
+ .accesskey = t
+
+proxy-socks4-label =
+ .label = SOCKS v4
+ .accesskey = k
+
+proxy-socks5-label =
+ .label = SOCKS v5
+ .accesskey = v
+
+proxy-type-auto =
+ .label = URL cấu hình proxy tự động:
+ .accesskey = A
+
+proxy-reload-label =
+ .label = Tải lại
+ .accesskey = l
+
+no-proxy-label =
+ .value = Không dùng proxy cho:
+ .accesskey = n
+
+no-proxy-example = Ví dụ: .mozilla.org, .net.nz, 192.168.1.0/24
+
+# Note: Do not translate localhost, 127.0.0.1 and ::1.
+no-proxy-localhost-label = Các kết nối với localhost, 127.0.0.1 và :: 1 không bao giờ được ủy quyền.
+
+proxy-password-prompt =
+ .label = Không yêu cầu xác nhận nếu đã lưu mật khẩu
+ .accesskey = i
+ .tooltiptext = Tùy chọn này âm thầm xác thực bạn với proxy khi bạn đã lưu thông tin đăng nhập cho họ. Bạn sẽ được nhắc nếu xác thực thất bại.
+
+proxy-remote-dns =
+ .label = DNS của proxy khi dùng SOCKS v5
+ .accesskey = d
+
+proxy-enable-doh =
+ .label = Kích hoạt DNS qua HTTPS
+ .accesskey = b
diff --git a/l10n-vi/mail/messenger/preferences/cookies.ftl b/l10n-vi/mail/messenger/preferences/cookies.ftl
new file mode 100644
index 0000000000..75010f1b5a
--- /dev/null
+++ b/l10n-vi/mail/messenger/preferences/cookies.ftl
@@ -0,0 +1,55 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+cookies-window-dialog =
+ .title = Cookie
+ .style = width: 36em;
+
+window-close-key =
+ .key = w
+
+window-focus-search-key =
+ .key = f
+
+window-focus-search-alt-key =
+ .key = k
+
+filter-search-label =
+ .value = Tìm:
+ .accesskey = S
+
+cookies-on-system-label = Các cookie sau được lưu trong máy tính của bạn:
+
+treecol-site-header =
+ .label = Trang
+
+treecol-name-header =
+ .label = Tên cookie
+
+props-name-label =
+ .value = Tên:
+props-value-label =
+ .value = Nội dung:
+props-domain-label =
+ .value = Máy chủ:
+props-path-label =
+ .value = Đường dẫn:
+props-secure-label =
+ .value = Gửi cho:
+props-expires-label =
+ .value = Hết hạn:
+props-container-label =
+ .value = Ngăn chứa:
+
+remove-cookie-button =
+ .label = Xóa cookie
+ .accesskey = R
+
+remove-all-cookies-button =
+ .label = Xóa tất cả cookie
+ .accesskey = A
+
+cookie-close-button =
+ .label = Đóng
+ .accesskey = C
diff --git a/l10n-vi/mail/messenger/preferences/dock-options.ftl b/l10n-vi/mail/messenger/preferences/dock-options.ftl
new file mode 100644
index 0000000000..5ab75d7c2a
--- /dev/null
+++ b/l10n-vi/mail/messenger/preferences/dock-options.ftl
@@ -0,0 +1,26 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+dock-options-window-dialog =
+ .title = Tùy chọn biểu tượng ứng dụng
+ .style = width: 35em;
+
+bounce-system-dock-icon =
+ .label = Hoạt ảnh biểu tượng ứng dụng khi có thư mới
+ .accesskey = i
+
+dock-icon-legend = Huy hiệu biểu tượng ứng dụng
+
+dock-icon-show-label =
+ .value = Biểu tượng ứng dụng huy hiệu với:
+
+count-unread-messages-radio =
+ .label = Đếm số tin nhắn chưa đọc
+ .accesskey = u
+
+count-new-messages-radio =
+ .label = Đếm số tin nhắn mới
+ .accesskey = n
+
+notification-settings-info = Bạn có thể tắt huy hiệu trên ngăn thông báo của tùy chọn hệ thống.
diff --git a/l10n-vi/mail/messenger/preferences/fonts.ftl b/l10n-vi/mail/messenger/preferences/fonts.ftl
new file mode 100644
index 0000000000..64a4167144
--- /dev/null
+++ b/l10n-vi/mail/messenger/preferences/fonts.ftl
@@ -0,0 +1,151 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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-close =
+ .key = w
+
+# 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
+
+fonts-encoding-dialog-title =
+ .title = Phông chữ & bảng mã
+
+fonts-language-legend =
+ .value = Phông chữ cho:
+ .accesskey = t
+
+fonts-proportional-label =
+ .value = Tỷ lệ:
+ .accesskey = P
+
+## Languages
+
+# Note: Translate "Latin" as the name of Latin (Roman) script, not as the name of the Latin language.
+font-language-group-latin =
+ .label = Latin
+font-language-group-japanese =
+ .label = Nhật Bản
+font-language-group-trad-chinese =
+ .label = Hoa Phồn Thể (Đài Loan)
+font-language-group-simpl-chinese =
+ .label = Hoa Giản Thể
+font-language-group-trad-chinese-hk =
+ .label = Hoa Phồn Thể (Hồng Kông)
+font-language-group-korean =
+ .label = Hàn Quốc
+font-language-group-cyrillic =
+ .label = Kirin
+font-language-group-el =
+ .label = Hi Lạp
+font-language-group-other =
+ .label = Hệ thống chữ viết khác
+font-language-group-thai =
+ .label = Thái
+font-language-group-hebrew =
+ .label = Do Thái
+font-language-group-arabic =
+ .label = Ả Rập
+font-language-group-devanagari =
+ .label = Devanagari
+font-language-group-tamil =
+ .label = Tamil
+font-language-group-armenian =
+ .label = Armenia
+font-language-group-bengali =
+ .label = Băng-gan
+font-language-group-canadian =
+ .label = Kí hiệu Âm tiết Canađa Thống nhất
+font-language-group-ethiopic =
+ .label = Ethiopic
+font-language-group-georgian =
+ .label = Gruzia
+font-language-group-gujarati =
+ .label = Gujarat
+font-language-group-gurmukhi =
+ .label = Gurmukhi
+font-language-group-khmer =
+ .label = Khơ-me
+font-language-group-malayalam =
+ .label = Malayalam
+font-language-group-math =
+ .label = Mathematics
+font-language-group-odia =
+ .label = Tiếng Odia
+font-language-group-telugu =
+ .label = Tiếng Telugu
+font-language-group-kannada =
+ .label = Tiếng Kannada
+font-language-group-sinhala =
+ .label = Tiếng Sinhala
+font-language-group-tibetan =
+ .label = Tiếng Tibetan
+
+## Default font type
+
+default-font-serif =
+ .label = Serif
+
+default-font-sans-serif =
+ .label = Sans Serif
+
+font-size-label =
+ .value = Kích cỡ:
+ .accesskey = e
+
+font-size-monospace-label =
+ .value = Kích cỡ:
+ .accesskey = i
+
+font-serif-label =
+ .value = Serif:
+ .accesskey = S
+
+font-sans-serif-label =
+ .value = Sans-serif:
+ .accesskey = n
+
+font-monospace-label =
+ .value = Monospace:
+ .accesskey = M
+
+font-min-size-label =
+ .value = Cỡ phông tối thiểu:
+ .accesskey = z
+
+min-size-none =
+ .label = Không
+
+## Fonts in message
+
+font-control-legend = Điều chỉnh phông chữ
+
+use-document-fonts-checkbox =
+ .label = Cho phép thư sử dụng phông chữ khác
+ .accesskey = o
+
+use-fixed-width-plain-checkbox =
+ .label = Sử dụng phông chữ có chiều rộng cố định cho thư văn bản thuần túy
+ .accesskey = x
+
+## Language settings
+
+text-encoding-legend = Bảng mã văn bản
+
+text-encoding-description = Đặt mã hóa văn bản mặc định để gửi và nhận thư
+
+font-outgoing-email-label =
+ .value = Thư gửi đi:
+ .accesskey = u
+
+font-incoming-email-label =
+ .value = Thư đến:
+ .accesskey = I
+
+default-font-reply-checkbox =
+ .label = Khi có thể, sử dụng mã hóa văn bản mặc định trong trả lời
+ .accesskey = h
diff --git a/l10n-vi/mail/messenger/preferences/languages.ftl b/l10n-vi/mail/messenger/preferences/languages.ftl
new file mode 100644
index 0000000000..2c7fa7db81
--- /dev/null
+++ b/l10n-vi/mail/messenger/preferences/languages.ftl
@@ -0,0 +1,45 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+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 = R
+
+languages-customize-select-language =
+ .placeholder = Chọn một ngôn ngữ để thêm...
+
+languages-customize-add =
+ .label = Thêm
+ .accesskey = A
+
+messenger-languages-window =
+ .title = Cài đặt ngôn ngữ { -brand-short-name }
+ .style = width: 40em
+
+messenger-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.
+
+messenger-languages-search = Tìm kiếm thêm ngôn ngữ...
+
+messenger-languages-searching =
+ .label = Đang tìm kiếm ngôn ngữ...
+
+messenger-languages-downloading =
+ .label = Đang tải xuống…
+
+messenger-languages-select-language =
+ .label = Chọn một ngôn ngữ để thêm...
+ .placeholder = Chọn một ngôn ngữ để thêm...
+
+messenger-languages-installed-label = Ngôn ngữ đã cài đặt
+messenger-languages-available-label = Ngôn ngữ có sẵn
+
+messenger-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/mail/messenger/preferences/new-tag.ftl b/l10n-vi/mail/messenger/preferences/new-tag.ftl
new file mode 100644
index 0000000000..69aaf79891
--- /dev/null
+++ b/l10n-vi/mail/messenger/preferences/new-tag.ftl
@@ -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/.
+
+tag-dialog-window =
+ .title = Nhãn mới
+
+tag-name-label =
+ .value = Tên nhãn:
+ .accesskey = T
+
+tag-color-label =
+ .value = Màu:
+ .accesskey = C
diff --git a/l10n-vi/mail/messenger/preferences/notifications.ftl b/l10n-vi/mail/messenger/preferences/notifications.ftl
new file mode 100644
index 0000000000..883fe9aea3
--- /dev/null
+++ b/l10n-vi/mail/messenger/preferences/notifications.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/.
+
+notifications-dialog-window =
+ .title = Tùy chỉnh thông báo thư mới
+
+customize-alert-description = Chọn các trường muốn hiện trong thông báo:
+
+preview-text-checkbox =
+ .label = Xem trước thư văn bản
+ .accesskey = M
+
+subject-checkbox =
+ .label = Tiêu đề
+ .accesskey = S
+
+sender-checkbox =
+ .label = Người gửi
+ .accesskey = e
+
+## Note: open-time-label-before is displayed first, then there's a field where
+## the user can enter a number, and open-time-label-after is displayed at the end
+## of the line. The translations of the open-time-label-before and open-time-label-after
+## parts don't have to mean the exact same thing as in English; please try instead
+## to translate the whole sentence.
+
+open-time-label-before =
+ .value = Hiển thị thông báo thư mới trong
+ .accesskey = N
+
+open-time-label-after =
+ .value = giây
diff --git a/l10n-vi/mail/messenger/preferences/offline.ftl b/l10n-vi/mail/messenger/preferences/offline.ftl
new file mode 100644
index 0000000000..b0ff376ec3
--- /dev/null
+++ b/l10n-vi/mail/messenger/preferences/offline.ftl
@@ -0,0 +1,56 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+offline-dialog-window =
+ .title = Cài đặt ngoại tuyến
+
+autodetect-online-label =
+ .label = Tự động theo dõi trạng thái trực tuyến được phát hiện
+ .accesskey = d
+
+startup-label = Trạng thái thủ công khi khởi động:
+
+status-radio-remember =
+ .label = Ghi nhớ tình trạng trực tuyến trước đó
+ .accesskey = R
+
+status-radio-ask =
+ .label = Hỏi tôi về trạng thái trực tuyến
+ .accesskey = k
+
+status-radio-always-online =
+ .label = Trực tuyến
+ .accesskey = l
+
+status-radio-always-offline =
+ .label = Ngoại tuyến
+ .accesskey = f
+
+going-online-label = Gửi những thư chưa gửi khi trực tuyến?
+
+going-online-auto =
+ .label = Có
+ .accesskey = Y
+
+going-online-not =
+ .label = Không
+ .accesskey = N
+
+going-online-ask =
+ .label = Hỏi tôi
+ .accesskey = s
+
+going-offline-label = Tải thư để sử dụng ngoại tuyến khi rời mạng?
+
+going-offline-auto =
+ .label = Có
+ .accesskey = e
+
+going-offline-not =
+ .label = Không
+ .accesskey = o
+
+going-offline-ask =
+ .label = Hỏi tôi
+ .accesskey = a
diff --git a/l10n-vi/mail/messenger/preferences/passwordManager.ftl b/l10n-vi/mail/messenger/preferences/passwordManager.ftl
new file mode 100644
index 0000000000..6870fbe870
--- /dev/null
+++ b/l10n-vi/mail/messenger/preferences/passwordManager.ftl
@@ -0,0 +1,85 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+saved-logins =
+ .title = Đăng nhập đã lưu
+window-close =
+ .key = w
+focus-search-shortcut =
+ .key = f
+focus-search-altshortcut =
+ .key = k
+copy-provider-url-cmd =
+ .label = Sao chép URL
+ .accesskey = y
+copy-username-cmd =
+ .label = Sao chép tên đăng nhập
+ .accesskey = U
+edit-username-cmd =
+ .label = Chỉnh sửa tên đăng nhập
+ .accesskey = d
+copy-password-cmd =
+ .label = Sao chép mật khẩu
+ .accesskey = C
+edit-password-cmd =
+ .label = Chỉnh sửa mật khẩu
+ .accesskey = E
+search-filter =
+ .accesskey = S
+ .placeholder = Tìm kiếm
+column-heading-provider =
+ .label = Nhà cung cấp
+column-heading-username =
+ .label = Tên đăng nhập
+column-heading-password =
+ .label = Mật khẩu
+column-heading-time-created =
+ .label = Sử dụng lần đầu
+column-heading-time-last-used =
+ .label = Sử dụng lần cuối
+column-heading-time-password-changed =
+ .label = Thay đổi lần cuối
+column-heading-times-used =
+ .label = Số lần sử dụng
+remove =
+ .label = Xóa
+ .accesskey = R
+import =
+ .label = Nhập…
+ .accesskey = I
+close-button =
+ .label = Đóng
+ .accesskey = C
+
+show-passwords =
+ .label = Hiện mật khẩu
+ .accesskey = P
+hide-passwords =
+ .label = Ẩn mật khẩu
+ .accesskey = P
+logins-description-all = Thông tin đăng nhập cho các nhà cung cấp sau được lưu trữ trên máy tính của bạn
+logins-description-filtered = Các thông tin đăng nhập sau phù hợp với tìm kiếm của bạn:
+remove-all =
+ .label = Xóa tất cả
+ .accesskey = A
+remove-all-shown =
+ .label = Xóa tất cả được hiển thị
+ .accesskey = A
+remove-all-passwords-prompt = Bạn có chắc bạn muốn xóa tất cả mật khẩu?
+remove-all-passwords-title = Xóa tất cả mật khẩu
+no-master-password-prompt = Bạn có chắc bạn muốn hiện các mật khẩu của mình?
+
+## OS Authentication dialog
+
+# This message can be seen by trying to show or copy the passwords.
+password-os-auth-dialog-message = Xác nhận danh tính của bạn để hiển thị mật khẩu đã lưu.
+
+# This message can be seen by trying to show or copy the passwords.
+# The macOS strings are preceded by the operating system with "Thunderbird 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.
+password-os-auth-dialog-message-macosx = hiển thị mật khẩu đã lưu
+
+# Don't change this label.
+password-os-auth-dialog-caption = { -brand-full-name }
diff --git a/l10n-vi/mail/messenger/preferences/permissions.ftl b/l10n-vi/mail/messenger/preferences/permissions.ftl
new file mode 100644
index 0000000000..996c8d2a16
--- /dev/null
+++ b/l10n-vi/mail/messenger/preferences/permissions.ftl
@@ -0,0 +1,56 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+permissions-reminder-window =
+ .title = Ngoại trừ
+ .style = width: 36em;
+
+window-close-key =
+ .key = w
+
+website-address-label =
+ .value = Địa chỉ của trang web:
+ .accesskey = d
+
+block-button =
+ .label = Chặn
+ .accesskey = B
+
+allow-session-button =
+ .label = Cho phép theo phiên
+ .accesskey = n
+
+allow-button =
+ .label = Cho phép
+ .accesskey = A
+
+treehead-sitename-label =
+ .label = Trang
+
+treehead-status-label =
+ .label = Trạng thái
+
+remove-site-button =
+ .label = Xóa trang
+ .accesskey = R
+
+remove-all-site-button =
+ .label = Xóa hết các trang này
+ .accesskey = e
+
+cancel-button =
+ .label = Hủy bỏ
+ .accesskey = C
+
+save-button =
+ .label = Lưu thay đổi
+ .accesskey = S
+
+permission-can-label = Cho phép
+permission-can-access-first-party-label = Chỉ chấp nhận bên thứ nhất
+permission-can-session-label = Cho phép theo phiên
+permission-cannot-label = Chặn
+
+invalid-uri-message = Vui lòng nhập tên máy chủ hợp lệ
+invalid-uri-title = Tên máy chủ không hợp lệ
diff --git a/l10n-vi/mail/messenger/preferences/preferences.ftl b/l10n-vi/mail/messenger/preferences/preferences.ftl
new file mode 100644
index 0000000000..93ea389cfb
--- /dev/null
+++ b/l10n-vi/mail/messenger/preferences/preferences.ftl
@@ -0,0 +1,715 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+close-button =
+ .aria-label = Đóng
+preferences-title =
+ .title =
+ { PLATFORM() ->
+ [windows] Tùy chọn
+ *[other] Tùy chỉnh
+ }
+category-list =
+ .aria-label = Thể loại
+pane-general-title = Tổng quát
+category-general =
+ .tooltiptext = { pane-general-title }
+pane-compose-title = Soạn thảo
+category-compose =
+ .tooltiptext = Soạn thảo
+pane-privacy-title = Riêng tư & Bảo mật
+category-privacy =
+ .tooltiptext = Riêng tư & Bảo mật
+pane-chat-title = Trò chuyện
+category-chat =
+ .tooltiptext = Trò chuyện
+pane-calendar-title = Lịch
+category-calendar =
+ .tooltiptext = Lịch
+general-language-and-appearance-header = Ngôn ngữ & giao diện
+general-incoming-mail-header = Thư đến:
+general-files-and-attachment-header = Tập tin & đính kèm
+general-tags-header = Nhãn
+general-reading-and-display-header = Đọc & hiển thị
+general-updates-header = Cập nhật
+general-network-and-diskspace-header = Mạng & dung lượng trống
+general-indexing-label = Chỉ mục
+composition-category-header = Soạn thảo
+composition-attachments-header = Đính kèm
+composition-spelling-title = Chính tả
+compose-html-style-title = Phong cách HTML
+composition-addressing-header = Địa chỉ
+privacy-main-header = Riêng tư
+privacy-passwords-header = Mật khẩu
+privacy-junk-header = Thư rác
+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 = Chính sách riêng 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
+# 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-security-header = Bảo mật
+privacy-scam-detection-title = Phát hiện lừa đảo
+privacy-anti-virus-title = Trình chống vi-rút
+privacy-certificates-title = Chứng nhận
+chat-pane-header = Trò chuyện
+chat-status-title = Trạng thái
+chat-notifications-title = Thông báo
+chat-pane-styling-header = Kiểu dáng
+choose-messenger-language-description = Chọn ngôn ngữ được sử dụng để hiển thị menu, tin nhắn và thông báo từ { -brand-short-name }.
+manage-messenger-languages-button =
+ .label = Tùy chỉnh…
+ .accesskey = l
+confirm-messenger-language-change-description = Khởi động lại { -brand-short-name } để áp dụng những thay đổi này
+confirm-messenger-language-change-button = Áp dụng và khởi động lại
+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 tin này.
+
+ Không thể ghi vào tập tin: { $path }
+update-in-progress-title = Đang cập nhật
+update-in-progress-message = Bạn có muốn { -brand-short-name } tiếp tục với bản cập nhật này không?
+update-in-progress-ok-button = &Loại 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
+account-button = Cài đặt tài khoản
+addons-button = Tiện ích mở rộng & chủ đề
+
+## 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 "Thunderbird 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 "Thunderbird 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
+# Don't change this label.
+master-password-os-auth-dialog-caption = { -brand-full-name }
+
+## General Tab
+
+focus-search-shortcut =
+ .key = f
+focus-search-shortcut-alt =
+ .key = k
+general-legend = Trang khởi động { -brand-short-name }
+start-page-label =
+ .label = Khi { -brand-short-name } khởi động, hiển thị trang bắt đầu trong vùng hiển thị thư
+ .accesskey = W
+location-label =
+ .value = Địa chỉ:
+ .accesskey = o
+restore-default-label =
+ .label = Khôi phục về mặc định
+ .accesskey = R
+default-search-engine = Công cụ tìm kiếm mặc định
+add-search-engine =
+ .label = Thêm từ tập tin
+ .accesskey = A
+remove-search-engine =
+ .label = Xóa
+ .accesskey = v
+minimize-to-tray-label =
+ .label = Khi { -brand-short-name } đã thu nhỏ, di chuyển nó vào khay
+ .accesskey = m
+new-message-arrival = Khi có thư mới:
+mail-play-sound-label =
+ .label =
+ { PLATFORM() ->
+ [macos] Phát tập tin âm thanh sau:
+ *[other] Phát ra âm thanh
+ }
+ .accesskey =
+ { PLATFORM() ->
+ [macos] d
+ *[other] d
+ }
+mail-play-button =
+ .label = Phát
+ .accesskey = P
+change-dock-icon = Thay đổi tùy chọn cho biểu tượng ứng dụng
+app-icon-options =
+ .label = Tùy chọn biểu tượng ứng dụng…
+ .accesskey = n
+notification-settings = Thông báo và âm thanh mặc định có thể được tắt trong Notification pane của System Preferences.
+animated-alert-label =
+ .label = Hiển thị thông báo
+ .accesskey = S
+customize-alert-label =
+ .label = Tùy biến…
+ .accesskey = C
+tray-icon-label =
+ .label = Hiển thị biểu tượng trong khay thanh tác vụ
+ .accesskey = t
+mail-system-sound-label =
+ .label = Âm thanh mặc định của hệ thống khi có thư mới
+ .accesskey = D
+mail-custom-sound-label =
+ .label = Sử dụng tập tin âm thanh sau
+ .accesskey = U
+mail-browse-sound-button =
+ .label = Duyệt…
+ .accesskey = B
+enable-gloda-search-label =
+ .label = Cho phép tìm kiếm và lập chỉ mục đầy đủ
+ .accesskey = G
+datetime-formatting-legend = Định dạng ngày và giờ
+language-selector-legend = Ngôn ngữ
+allow-hw-accel =
+ .label = Sử dụng chế độ tăng tốc phần cứng khi khả dụng
+ .accesskey = h
+store-type-label =
+ .value = Kiểu lưu trữ thư cho tài khoản mới:
+ .accesskey = T
+mbox-store-label =
+ .label = Tập tin trên mỗi thư mục (mbox)
+maildir-store-label =
+ .label = Tập tin trên mỗi thư (maildir)
+scrolling-legend = Cuộn
+autoscroll-label =
+ .label = Sử dụng tự động cuộn
+ .accesskey = U
+smooth-scrolling-label =
+ .label = Cuộn uyển chuyển
+ .accesskey = m
+system-integration-legend = Hệ thống tích hợp
+always-check-default =
+ .label = Luôn kiểm tra xem { -brand-short-name } có phải là ứng dụng thư mặc định khi khởi động
+ .accesskey = A
+check-default-button =
+ .label = Kiểm tra ngay…
+ .accesskey = N
+# Note: This is the search engine name for all the different platforms.
+# Platforms that don't support it should be left blank.
+search-engine-name =
+ { PLATFORM() ->
+ [macos] Spotlight
+ [windows] Tìm kiếm Windows
+ *[other] { "" }
+ }
+search-integration-label =
+ .label = Cho phép { search-engine-name } tìm kiếm thư
+ .accesskey = S
+config-editor-button =
+ .label = Trình chỉnh sửa cấu hình…
+ .accesskey = C
+return-receipts-description = Xác định cách thức { -brand-short-name } xử lý biên lai
+return-receipts-button =
+ .label = Biên lai…
+ .accesskey = R
+update-app-legend = Cập nhật { -brand-short-name }
+# Variables:
+# $version (String): version of Thunderbird, e.g. 68.0.1
+update-app-version = Phiên bản { $version }
+allow-description = Cho phép { -brand-short-name }
+automatic-updates-label =
+ .label = Tự động cài đặt các cập nhật (nên làm vì tăng tính bảo mật)
+ .accesskey = A
+check-updates-label =
+ .label = Kiểm tra cập nhật, nhưng hãy để tôi chọn có cài đặt chúng không
+ .accesskey = C
+update-history-button =
+ .label = Hiển thị lịch sử cập nhật
+ .accesskey = p
+use-service =
+ .label = Sử dụng dịch vụ chạy nền để cài đặt các cập nhật
+ .accesskey = b
+cross-user-udpate-warning = Cài đặt này sẽ áp dụng cho tất cả các tài khoản Windows và các cấu hình của { -brand-short-name } sử dụng cài đặt này của { -brand-short-name }.
+networking-legend = Kết nối
+proxy-config-description = Định cấu hình cách { -brand-short-name } kết nối Internet
+network-settings-button =
+ .label = Cài đặt…
+ .accesskey = S
+offline-legend = Ngoại tuyến
+offline-settings = Cấu hình thiết lập ngoại tuyến
+offline-settings-button =
+ .label = Ngoại tuyến…
+ .accesskey = O
+diskspace-legend = Dung lượng đĩa
+offline-compact-folder =
+ .label = Nén tất cả các thư mục khi nó sẽ lưu lại
+ .accesskey = a
+compact-folder-size =
+ .value = MB tổng cộng
+
+## Note: The entities use-cache-before and use-cache-after appear on a single
+## line in preferences as follows:
+## use-cache-before [ textbox for cache size in MB ] use-cache-after
+
+use-cache-before =
+ .value = Sử dụng tối đa
+ .accesskey = U
+use-cache-after = MB dung lượng đĩa cho bộ đệm
+
+##
+
+smart-cache-label =
+ .label = Ghi đè quản lý bộ đệm tự động
+ .accesskey = v
+clear-cache-button =
+ .label = Xóa ngay
+ .accesskey = C
+fonts-legend = Phông chữ & màu sắc
+default-font-label =
+ .value = Phông chữ mặc định:
+ .accesskey = D
+default-size-label =
+ .value = Kích cỡ:
+ .accesskey = S
+font-options-button =
+ .label = Nâng cao…
+ .accesskey = A
+color-options-button =
+ .label = Màu sắc…
+ .accesskey = C
+display-width-legend = Thư văn bản thuần túy
+# Note : convert-emoticons-label 'Emoticons' are also known as 'Smileys', e.g. :-)
+convert-emoticons-label =
+ .label = Hiển thị biểu tượng cảm xúc dưới dạng đồ họa
+ .accesskey = e
+display-text-label = Khi hiển thị các thư văn bản thuần túy được trích dẫn:
+style-label =
+ .value = Kiểu:
+ .accesskey = y
+regular-style-item =
+ .label = Thông thường
+bold-style-item =
+ .label = Đậm
+italic-style-item =
+ .label = Nghiêng
+bold-italic-style-item =
+ .label = Nghiêng đậm
+size-label =
+ .value = Kích thước:
+ .accesskey = z
+regular-size-item =
+ .label = Thông thường
+bigger-size-item =
+ .label = Lớn hơn
+smaller-size-item =
+ .label = Nhỏ hơn
+quoted-text-color =
+ .label = Màu sắc:
+ .accesskey = o
+search-input =
+ .placeholder = Tìm kiếm
+type-column-label =
+ .label = Kiểu dữ liệu
+ .accesskey = T
+action-column-label =
+ .label = Hành động
+ .accesskey = A
+save-to-label =
+ .label = Lưu các tập tin vào
+ .accesskey = S
+choose-folder-label =
+ .label =
+ { PLATFORM() ->
+ [macos] Chọn…
+ *[other] Duyệt…
+ }
+ .accesskey =
+ { PLATFORM() ->
+ [macos] C
+ *[other] B
+ }
+always-ask-label =
+ .label = Luôn hỏi tôi nơi lưu tập tin
+ .accesskey = A
+display-tags-text = Thẻ có thể được sử dụng để phân loại và ưu tiên thư của bạn.
+new-tag-button =
+ .label = Mới…
+ .accesskey = N
+edit-tag-button =
+ .label = Chỉnh sửa…
+ .accesskey = E
+delete-tag-button =
+ .label = Xóa
+ .accesskey = D
+auto-mark-as-read =
+ .label = Tự động đánh dấu thư là đã đọc
+ .accesskey = A
+mark-read-no-delay =
+ .label = Ngay lập tức trên màn hình
+ .accesskey = o
+
+## Note: This will concatenate to "After displaying for [___] seconds",
+## using (mark-read-delay) and a number (seconds-label).
+
+mark-read-delay =
+ .label = Sau khi hiển thị
+ .accesskey = d
+seconds-label = giây
+
+##
+
+open-msg-label =
+ .value = Mở thư trong:
+open-msg-tab =
+ .label = Một thẻ mới
+ .accesskey = t
+open-msg-window =
+ .label = Một cửa sổ thư mới
+ .accesskey = n
+open-msg-ex-window =
+ .label = Một cửa sổ thư hiện có
+ .accesskey = e
+close-move-delete =
+ .label = Đóng cửa sổ thư/thẻ khi di chuyển hoặc xóa
+ .accesskey = C
+display-name-label =
+ .value = Tên hiển thị:
+condensed-addresses-label =
+ .label = Chỉ hiển thị tên cho những người trong sổ địa chỉ của tôi
+ .accesskey = S
+
+## Compose Tab
+
+forward-label =
+ .value = Chuyển tiếp thư:
+ .accesskey = y
+inline-label =
+ .label = Ngay trong thư
+as-attachment-label =
+ .label = Dưới dạng đính kèm
+extension-label =
+ .label = thêm phần mở rộng cho tên tập tin
+ .accesskey = e
+
+## Note: This will concatenate to "Auto Save every [___] minutes",
+## using (auto-save-label) and a number (auto-save-end).
+
+auto-save-label =
+ .label = Tự động lưu mỗi
+ .accesskey = A
+auto-save-end = phút
+
+##
+
+warn-on-send-accel-key =
+ .label = Xác nhận khi sử dụng phím tắt để gửi thư
+ .accesskey = C
+spellcheck-label =
+ .label = Kiểm tra chính tả trước khi gửi
+ .accesskey = C
+spellcheck-inline-label =
+ .label = Kiểm tra chính tả ngay khi đang gõ
+ .accesskey = E
+language-popup-label =
+ .value = Ngôn ngữ:
+ .accesskey = L
+download-dictionaries-link = Tải thêm từ điển
+font-label =
+ .value = Phông chữ:
+ .accesskey = n
+font-size-label =
+ .value = Cỡ chữ:
+ .accesskey = z
+default-colors-label =
+ .label = Sử dụng màu mặc định của trình đọc
+ .accesskey = d
+font-color-label =
+ .value = Màu chữ:
+ .accesskey = T
+bg-color-label =
+ .value = Màu nền:
+ .accesskey = B
+restore-html-label =
+ .label = Khôi phục về mặc định
+ .accesskey = R
+default-format-label =
+ .label = Sử dụng định dạng của đoạn thay vì phần thân văn bản theo mặc định
+ .accesskey = P
+format-description = Cấu hình hành vi định dạng văn bản
+send-options-label =
+ .label = Tùy chọn gửi…
+ .accesskey = S
+autocomplete-description = Khi tìm địa chỉ trong thư, tra cứu các mục khớp nhau trong:
+ab-label =
+ .label = Sổ địa chỉ nội bộ
+ .accesskey = L
+directories-label =
+ .label = Máy chủ thư mục:
+ .accesskey = D
+directories-none-label =
+ .none = Không có
+edit-directories-label =
+ .label = Chỉnh sửa thư mục…
+ .accesskey = E
+email-picker-label =
+ .label = Tự động thêm địa chỉ email gửi đi vào:
+ .accesskey = A
+default-directory-label =
+ .value = Thư mục khởi động mặc định trong cửa sổ của sổ địa chỉ:
+ .accesskey = S
+default-last-label =
+ .none = Thư mục được sử dụng lần cuối
+attachment-label =
+ .label = Kiểm tra các tập tin đính kèm bị thiếu
+ .accesskey = m
+attachment-options-label =
+ .label = Từ khóa…
+ .accesskey = K
+enable-cloud-share =
+ .label = Đề nghị chia sẻ cho các tập tin lớn hơn
+cloud-share-size =
+ .value = MB
+add-cloud-account =
+ .label = Thêm…
+ .accesskey = A
+ .defaultlabel = Thêm…
+remove-cloud-account =
+ .label = Xóa
+ .accesskey = R
+find-cloud-providers =
+ .value = Tìm thêm nhà cung cấp…
+cloud-account-description = Thêm dịch vụ lưu trữ Filelink mới
+
+## Privacy Tab
+
+mail-content = Nội dung thư
+remote-content-label =
+ .label = Cho phép nội dung từ xa trong thư
+ .accesskey = m
+exceptions-button =
+ .label = Ngoại lệ…
+ .accesskey = E
+remote-content-info =
+ .value = Tìm hiểu thêm về các vấn đề riêng tư của nội dung từ xa
+web-content = Nội dung web
+history-label =
+ .label = Ghi nhớ các trang web và liên kết tôi đã truy cập
+ .accesskey = R
+cookies-label =
+ .label = Cho phép cookie từ các trang
+ .accesskey = A
+third-party-label =
+ .value = Cho phép cookie từ bên thứ ba:
+ .accesskey = c
+third-party-always =
+ .label = Luôn luôn
+third-party-never =
+ .label = Không bao giờ
+third-party-visited =
+ .label = Từ các trang đã truy cập
+keep-label =
+ .value = Lưu cho tới khi:
+ .accesskey = K
+keep-expire =
+ .label = chúng hết hạn
+keep-close =
+ .label = Tôi đóng { -brand-short-name }
+keep-ask =
+ .label = hỏi tôi mọi lúc
+cookies-button =
+ .label = Hiện cookie…
+ .accesskey = S
+do-not-track-label =
+ .label = 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
+ .accesskey = n
+learn-button =
+ .label = Tìm hiểu thêm
+passwords-description = { -brand-short-name } có thể ghi nhớ mật khẩu cho tất cả tài khoản của bạn.
+passwords-button =
+ .label = Mật khẩu đã lưu…
+ .accesskey = S
+master-password-description = Mật khẩu chính bảo vệ tất cả mật khẩu của bạn, nhưng bạn phải nhập mật khẩu một lần mỗi phiên.
+master-password-label =
+ .label = Dùng một mật khẩu chính
+ .accesskey = U
+master-password-button =
+ .label = Thay đổi mật khẩu chính…
+ .accesskey = C
+primary-password-description = Mật khẩu chính bảo vệ tất cả mật khẩu của bạn, nhưng bạn phải nhập mật khẩu một lần mỗi phiên.
+primary-password-label =
+ .label = Sử dụng mật khẩu chính
+ .accesskey = U
+primary-password-button =
+ .label = Thay đổi mật khẩu chính…
+ .accesskey = C
+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
+junk-description = Đặt cài đặt thư rác mặc định của bạn. Cài đặt thư rác dành riêng cho tài khoản có thể được định cấu hình trong cài đặt tài khoản.
+junk-label =
+ .label = Khi tôi đánh dấu thư là thư rác:
+ .accesskey = W
+junk-move-label =
+ .label = Di chuyển chúng vào thư mục "Thư rác" của tài khoản
+ .accesskey = o
+junk-delete-label =
+ .label = Xóa chúng
+ .accesskey = D
+junk-read-label =
+ .label = Đánh dấu thư được xác định là thư rác khi đọc
+ .accesskey = M
+junk-log-label =
+ .label = Cho phép ghi nhật ký bộ lọc thư rác thích ứng
+ .accesskey = E
+junk-log-button =
+ .label = Hiển thị nhật ký
+ .accesskey = S
+reset-junk-button =
+ .label = Đặt lại dữ liệu đào tạo
+ .accesskey = R
+phishing-description = { -brand-short-name } có thể phân tích tin nhắn cho các vụ lừa đảo email đáng ngờ bằng cách tìm kiếm các kỹ thuật phổ biến được sử dụng để đánh lừa bạn.
+phishing-label =
+ .label = Hãy cho tôi biết nếu thư tôi đang đọc là một email lừa đảo đáng ngờ
+ .accesskey = T
+antivirus-description = { -brand-short-name } có thể giúp phần mềm chống vi-rút dễ dàng phân tích thư đến của vi-rút trước khi chúng được lưu trữ cục bộ.
+antivirus-label =
+ .label = Cho phép máy khách chống vi-rút cách ly các thư đến riêng lẻ
+ .accesskey = A
+certificate-description = Khi một máy chủ yêu cầu chứng chỉ cá nhân của tôi:
+certificate-auto =
+ .label = Tự động chọn một cái
+ .accesskey = S
+certificate-ask =
+ .label = Hỏi tôi mọi lúc
+ .accesskey = A
+ocsp-label =
+ .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
+certificate-button =
+ .label = Quản lý chứng chỉ…
+ .accesskey = M
+security-devices-button =
+ .label = Thiết bị bảo mật…
+ .accesskey = D
+
+## Chat Tab
+
+startup-label =
+ .value = Khi { -brand-short-name } khởi động:
+ .accesskey = s
+offline-label =
+ .label = Giữ tài khoản trò chuyện của tôi ngoại tuyến
+auto-connect-label =
+ .label = Tự động kết nối tài khoản trò chuyện của tôi
+
+## Note: idle-label is displayed first, then there's a field where the user
+## can enter a number, and itemTime is displayed at the end of the line.
+## The translations of the idle-label and idle-time-label parts don't have
+## to mean the exact same thing as in English; please try instead to
+## translate the whole sentence.
+
+idle-label =
+ .label = Hãy để những người liên hệ của tôi biết rằng tôi đang nhàn rỗi sau
+ .accesskey = I
+idle-time-label = phút không hoạt động
+
+##
+
+away-message-label =
+ .label = và đặt trạng thái của tôi thành vắng với thông báo trạng thái này:
+ .accesskey = A
+send-typing-label =
+ .label = Gửi thông báo về việc gõ trong các cuộc hội thoại
+ .accesskey = t
+notification-label = Khi có tin nhắn đến:
+show-notification-label =
+ .label = Hiển thị thông báo:
+ .accesskey = c
+notification-all =
+ .label = với tên người xem và tin nhắn xem trước
+notification-name =
+ .label = chỉ với tên người gửi
+notification-empty =
+ .label = không có bất kỳ thông tin nào
+notification-type-label =
+ .label =
+ { PLATFORM() ->
+ [macos] Hoạt ảnh biểu tượng trên dock
+ *[other] Nhấp nháy mục trên thanh tác vụ
+ }
+ .accesskey =
+ { PLATFORM() ->
+ [macos] o
+ *[other] F
+ }
+chat-play-sound-label =
+ .label = Phát một âm thanh
+ .accesskey = d
+chat-play-button =
+ .label = Phát
+ .accesskey = P
+chat-system-sound-label =
+ .label = Âm thanh mặc định của hệ thống khi có thư mới
+ .accesskey = D
+chat-custom-sound-label =
+ .label = Sử dụng tập tin âm thanh sau
+ .accesskey = U
+chat-browse-sound-button =
+ .label = Duyệt…
+ .accesskey = B
+theme-label =
+ .value = Chủ đề:
+ .accesskey = T
+style-thunderbird =
+ .label = Thunderbird
+style-bubbles =
+ .label = Bong bóng
+style-dark =
+ .label = Tối
+style-paper =
+ .label = Những trang giấy
+style-simple =
+ .label = Đơn giản
+preview-label = Xem trước:
+no-preview-label = Không có bản xem trước
+no-preview-description = Chủ đề này không hợp lệ hoặc hiện không khả dụng (tiện ích bị tắt, chế độ an toàn, …).
+chat-variant-label =
+ .value = Biến thể:
+ .accesskey = V
+chat-header-label =
+ .label = Hiển thị Header
+ .accesskey = H
+# 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 kiếm trong Tùy chọn
+ *[other] Tìm kiếm trong Tùy chỉnh
+ }
+
+## Preferences UI Search Results
+
+search-results-header = Kết quả tìm kiếm
+# `<span data-l10n-name="query"></span>` 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 “<span data-l10n-name="query"></span>”.
+ *[other] Xin lỗi! Không có kết quả trong phần Tùy chỉnh cho “<span data-l10n-name="query"></span>”.
+ }
+search-results-help-link = Cần trợ giúp? Đi đến <a data-l10n-name="url">Hỗ trợ { -brand-short-name }</a>
diff --git a/l10n-vi/mail/messenger/preferences/receipts.ftl b/l10n-vi/mail/messenger/preferences/receipts.ftl
new file mode 100644
index 0000000000..97254b5cdd
--- /dev/null
+++ b/l10n-vi/mail/messenger/preferences/receipts.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/.
+
+receipts-dialog-window =
+ .title = Chứng nhận Hồi báo
+
+return-receipt-checkbox =
+ .label = Khi gửi thư, luôn luôn yêu cầu chứng chận hồi báo
+ .acceskey = W
+
+receipt-arrive-label = Khi một chứng nhận đến:
+
+receipt-leave-radio =
+ .label = Để nó trong Hộp thư của tôi
+ .acceskey = i
+
+receipt-move-radio =
+ .label = Chuyển nó vào thư mục "Đã gửi"
+ .acceskey = m
+
+receipt-request-label = Khi tôi nhận được một yêu cầu chứng nhận hồi báo:
+
+receipt-return-never-radio =
+ .label = Không bao giờ gửi chứng nhận hồi báo
+ .acceskey = n
+
+receipt-return-some-radio =
+ .label = Cho phép chứng nhận hồi báo đối với một số loại thư
+ .acceskey = r
+
+receipt-not-to-cc =
+ .value = Nếu tôi không nằm trong trường Tới hoặc Cc của thư:
+ .acceskey = f
+
+receipt-send-never-label =
+ .label = Không bao giờ gửi
+
+receipt-send-always-label =
+ .label = Luôn luôn gửi
+
+receipt-send-ask-label =
+ .label = Hỏi tôi
+
+sender-outside-domain =
+ .value = Nếu người gửi nằm ngoài tên miền của tôi:
+ .acceskey = t
+
+other-cases-label =
+ .value = Trong mọi trường hợp khác:
+ .acceskey = a
diff --git a/l10n-vi/mail/messenger/preferences/sendoptions.ftl b/l10n-vi/mail/messenger/preferences/sendoptions.ftl
new file mode 100644
index 0000000000..3f69944a7d
--- /dev/null
+++ b/l10n-vi/mail/messenger/preferences/sendoptions.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/.
+
+sendoptions-dialog-window =
+ .title = Tùy chọn gửi
+
+send-mail-title = Định dạng văn bản
+
+auto-downgrade-label =
+ .label = Gửi tin nhắn dưới dạng văn bản thuần túy nếu có thể
+ .accesskey = t
+
+default-html-format-label = Khi gửi thư ở định dạng HTML và một hoặc nhiều người nhận không được liệt kê là có thể nhận HTML:
+
+html-format-ask =
+ .label = Hỏi tôi muốn làm gì
+ .accesskey = k
+
+html-format-convert =
+ .label = Chuyển đổi thư thành văn bản thuần túy
+ .accesskey = C
+
+html-format-send-html =
+ .label = Vẫn gửi thư bằng HTML
+ .accesskey = S
+
+html-format-send-both =
+ .label = Gửi thư bằng cả văn bản thuần túy và HTML
+ .accesskey = e
+
+default-html-format-info = Lưu ý: Sử dụng sổ địa chỉ để chỉ định các định dạng văn bản ưa thích cho người nhận.
+
+html-tab-label =
+ .label = Tên miền HTML
+ .accesskey = H
+
+plain-tab-label =
+ .label = Tên miền văn bản thuần túy
+ .accesskey = P
+
+send-message-domain-label = Khi bạn gửi tin nhắn đến một địa chỉ có một trong những tên miền được liệt kê bên dưới, { -brand-short-name } tự động gửi tin nhắn theo đúng định dạng.
+
+add-domain-button =
+ .label = Thêm…
+ .accesskey = A
+
+delete-domain-button =
+ .label = Xóa
+ .accesskey = D
diff --git a/l10n-vi/mail/messenger/preferences/system-integration.ftl b/l10n-vi/mail/messenger/preferences/system-integration.ftl
new file mode 100644
index 0000000000..3870a3ed84
--- /dev/null
+++ b/l10n-vi/mail/messenger/preferences/system-integration.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/.
+
+system-integration-title =
+ .title = Tích hợp Hệ thống
+system-integration-dialog =
+ .buttonlabelaccept = Đặt làm mặc định
+ .buttonlabelcancel = Bỏ qua tích hợp
+ .buttonlabelcancel2 = Hủy bỏ
+default-client-intro = Dùng { -brand-short-name } làm chương trình mặc định cho:
+unset-default-tooltip = Không thể bỏ đặt { -brand-short-name } là ứng dụng khách mặc định trong { -brand-short-name }. Để đặt ứng dụng khác thành mặc định, bạn phải sử dụng hộp thoại 'Đặt làm mặc định'.
+checkbox-email-label =
+ .label = Thư điện tử (E-Mail)
+ .tooltiptext = { unset-default-tooltip }
+checkbox-newsgroups-label =
+ .label = Nhóm tin
+ .tooltiptext = { unset-default-tooltip }
+checkbox-feeds-label =
+ .label = Nguồn cấp
+ .tooltiptext = { unset-default-tooltip }
+checkbox-calendar-label =
+ .label = Lịch
+ .tooltiptext = { unset-default-tooltip }
+# Note: This is the search engine name for all the different platforms.
+# Platforms that don't support it should be left blank.
+system-search-engine-name =
+ { PLATFORM() ->
+ [macos] Spotlight
+ [windows] Tìm kiếm Windows
+ *[other] { "" }
+ }
+system-search-integration-label =
+ .label = Cho phép { system-search-engine-name } tìm kiếm thư
+ .accesskey = t
+check-on-startup-label =
+ .label = Luôn thực hiện việc kiểm tra này mỗi khi khởi động { -brand-short-name }
+ .accesskey = L
diff --git a/l10n-vi/mail/updater/updater.ini b/l10n-vi/mail/updater/updater.ini
new file mode 100644
index 0000000000..f7852a6fbc
--- /dev/null
+++ b/l10n-vi/mail/updater/updater.ini
@@ -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/.
+
+; This file is in the UTF-8 encoding
+[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…
+
diff --git a/l10n-vi/mobile/android/chrome/about.dtd b/l10n-vi/mobile/android/chrome/about.dtd
new file mode 100644
index 0000000000..1886ee4f07
--- /dev/null
+++ b/l10n-vi/mobile/android/chrome/about.dtd
@@ -0,0 +1,21 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<!ENTITY aboutPage.title "Thông tin về &brandShortName;">
+<!ENTITY aboutPage.warningVersion "&brandShortName; được thiết kế để thử nghiệm và có thể không ổn định.">
+<!ENTITY aboutPage.checkForUpdates.link "Kiểm tra cập nhật »">
+<!ENTITY aboutPage.checkForUpdates.checking "Đang tìm các cập nhật…">
+<!ENTITY aboutPage.checkForUpdates.none "Không có cập nhật">
+<!ENTITY aboutPage.checkForUpdates.available2 "Tải xuống bản cập nhật">
+<!ENTITY aboutPage.checkForUpdates.downloading "Đang tải cập nhật xuống…">
+<!ENTITY aboutPage.checkForUpdates.downloaded2 "Cài đặt cập nhật">
+<!ENTITY aboutPage.faq.label "Câu hỏi thường gặp">
+<!ENTITY aboutPage.support.label "Hỗ trợ">
+<!ENTITY aboutPage.privacyPolicy.label "Chính sách riêng tư">
+<!ENTITY aboutPage.rights.label "Biết Về Quyền Của Bạn">
+<!ENTITY aboutPage.relNotes.label "Ghi chú Phát hành">
+<!ENTITY aboutPage.credits.label "Công trạng">
+<!ENTITY aboutPage.license.label "Thông tin Giấy phép">
+
+<!-- LOCALIZATION NOTE (aboutPage.logoTrademark): The message is explicitly about the word "Firefox" being trademarked, that's why we use it, instead of brandShortName. -->
+<!ENTITY aboutPage.logoTrademark "Firefox và logo Firefox là thương hiệu của tổ chức Tổ chức Mozilla.">
diff --git a/l10n-vi/mobile/android/chrome/aboutAccounts.dtd b/l10n-vi/mobile/android/chrome/aboutAccounts.dtd
new file mode 100644
index 0000000000..1259df8f5d
--- /dev/null
+++ b/l10n-vi/mobile/android/chrome/aboutAccounts.dtd
@@ -0,0 +1,13 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY aboutAccounts.connected.title "Tài khoản Firefox">
+<!ENTITY aboutAccounts.connected.description "Bạn đang kết nối với cái tên">
+<!ENTITY aboutAccounts.syncPreferences.label "Chạm để kiểm tra cài đặt đồng bộ hóa">
+
+<!ENTITY aboutAccounts.noConnection.title "Không có kết nối mạng">
+<!ENTITY aboutAccounts.retry.label "Thử lại">
+
+<!ENTITY aboutAccounts.restrictedError.title "Bị hạn chế">
+<!ENTITY aboutAccounts.restrictedError.description "Bạn không thể quản lý tài khoản Firefox từ hồ sơ này.">
diff --git a/l10n-vi/mobile/android/chrome/aboutAccounts.properties b/l10n-vi/mobile/android/chrome/aboutAccounts.properties
new file mode 100644
index 0000000000..a303c7139e
--- /dev/null
+++ b/l10n-vi/mobile/android/chrome/aboutAccounts.properties
@@ -0,0 +1,16 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (relinkDenied.message): Ideally, this string is short (it's
+# a toast message).
+relinkDenied.message = Đã đăng nhập để đồng bộ hóa!
+# LOCALIZATION NOTE (relinkDenied.openPrefs): Ideally, this string is short (it's a
+# button label) and upper-case, to match Google and Android's convention.
+relinkDenied.openPrefs = PREFS
+
+relinkVerify.title = Bạn có chắc muốn đăng nhập để đồng bộ hóa?
+# LOCALIZATION NOTE (relinkVerify.message): Email address of a user previously signed in to Sync.
+relinkVerify.message = Bạn đã đăng nhập vào đồng bộ hóa bằng một địa chỉ email khác trước đây. Đăng nhập lần này sẽ sát nhập các trang đánh dấu, mật khẩu và các thiết lập khác với %S
+relinkVerify.continue = Tiếp tục
+relinkVerify.cancel = Hủy bỏ
diff --git a/l10n-vi/mobile/android/chrome/aboutAddons.dtd b/l10n-vi/mobile/android/chrome/aboutAddons.dtd
new file mode 100644
index 0000000000..b84c5da2a5
--- /dev/null
+++ b/l10n-vi/mobile/android/chrome/aboutAddons.dtd
@@ -0,0 +1,15 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY aboutAddons.title2 "Tiện ích">
+<!ENTITY aboutAddons.header2 "Tiện ích của bạn">
+
+<!ENTITY addonAction.enable "Bật">
+<!ENTITY addonAction.disable "Vô hiệu hóa">
+<!ENTITY addonAction.uninstall "Gỡ bỏ">
+<!ENTITY addonAction.undo "Hoàn tác">
+<!ENTITY addonAction.update "Cập nhật">
+
+<!ENTITY addonUnsigned.message "&brandShortName; không thể xác thực tiện ích này.">
+<!ENTITY addonUnsigned.learnMore "Tìm hiểu thêm">
diff --git a/l10n-vi/mobile/android/chrome/aboutAddons.properties b/l10n-vi/mobile/android/chrome/aboutAddons.properties
new file mode 100644
index 0000000000..1fa3c50240
--- /dev/null
+++ b/l10n-vi/mobile/android/chrome/aboutAddons.properties
@@ -0,0 +1,12 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+addonStatus.uninstalled=%S sẽ được gỡ bỏ sau khi bạn khởi động lại.
+
+# Will keep both strings and at runtime will fallback on the old one if the new one is not yet localized
+addons.browseAll=Tìm tất cả các tiện ích Firefox
+
+addons.browseRecommended=Duyệt các tiện ích mở rộng đề xuất cho Firefox
+
+addon.options=Tùy chọn
diff --git a/l10n-vi/mobile/android/chrome/aboutCertError.dtd b/l10n-vi/mobile/android/chrome/aboutCertError.dtd
new file mode 100644
index 0000000000..0ba184db88
--- /dev/null
+++ b/l10n-vi/mobile/android/chrome/aboutCertError.dtd
@@ -0,0 +1,31 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY % brandDTD
+ SYSTEM "chrome://branding/locale/brand.dtd">
+ %brandDTD;
+
+<!-- These strings are used by Firefox's custom about:certerror page,
+a replacement for the standard security certificate errors produced
+by NSS/PSM via netError.xhtml. -->
+
+<!ENTITY certerror.pagetitle "Kết Nối không đáng tin cậy">
+<!ENTITY certerror.longpagetitle "Kết Nối Này Không Đáng Tin">
+
+<!-- Localization note (certerror.introPara1) - The string "#1" will
+be replaced at runtime with the name of the server to which the user
+was trying to connect. -->
+<!ENTITY certerror.introPara1 "Bạn đã yêu cầu &brandShortName; kết nối an toàn tới <b>#1</b>, nhưng chúng tôi không thể xác nhận kết nối của bạn là an toàn.">
+
+<!ENTITY certerror.whatShouldIDo.heading "Tôi Nên Làm Gì?">
+<!ENTITY certerror.whatShouldIDo.content "Nếu bạn thường kết nối tới trang này mà không gặp vấn đề gì, lỗi này có thể là do ai đó đang cố gắng mạo danh trang này, và bạn không nên tiếp tục nữa.">
+<!ENTITY certerror.getMeOutOfHere.label "Đưa tôi ra khỏi đây!">
+
+<!ENTITY certerror.expert.heading "Tôi hiểu các nguy cơ">
+<!ENTITY certerror.expert.content "Nếu bạn hiểu điều gì đang xảy ra, bạn có thể yêu cầu &brandShortName; tin tưởng định danh của trang này. <b>Cho dù bạn tin tưởng trang web này, lỗi này cũng vẫn có thể là do ai đó đang cố tác động tới kết nối của bạn.</b>">
+<!ENTITY certerror.expert.contentPara2 "Đừng thêm ngoại lệ trừ khi bạn biết lí do đúng đắn khiến trang này không dùng định danh đáng tin cậy.">
+<!ENTITY certerror.addTemporaryException.label "Truy cập trang">
+<!ENTITY certerror.addPermanentException.label "Thêm ngoại lệ vĩnh viễn">
+
+<!ENTITY certerror.technical.heading "Chi tiết Kĩ thuật">
diff --git a/l10n-vi/mobile/android/chrome/aboutDownloads.dtd b/l10n-vi/mobile/android/chrome/aboutDownloads.dtd
new file mode 100644
index 0000000000..d9590ef33d
--- /dev/null
+++ b/l10n-vi/mobile/android/chrome/aboutDownloads.dtd
@@ -0,0 +1,15 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY aboutDownloads.title "Tải xuống">
+<!ENTITY aboutDownloads.header "Tải xuống của bạn">
+<!ENTITY aboutDownloads.empty "Không có tải xuống nào">
+
+<!ENTITY aboutDownloads.open "Mở">
+<!ENTITY aboutDownloads.remove "Xóa">
+<!ENTITY aboutDownloads.removeAll "Xoá tất cả">
+<!ENTITY aboutDownloads.pause "Tạm dừng">
+<!ENTITY aboutDownloads.resume "Tiếp tục">
+<!ENTITY aboutDownloads.cancel "Hủy bỏ">
+<!ENTITY aboutDownloads.retry "Thử lại">
diff --git a/l10n-vi/mobile/android/chrome/aboutDownloads.properties b/l10n-vi/mobile/android/chrome/aboutDownloads.properties
new file mode 100644
index 0000000000..eff6b57b34
--- /dev/null
+++ b/l10n-vi/mobile/android/chrome/aboutDownloads.properties
@@ -0,0 +1,17 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (downloadMessage.deleteAll):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+downloadMessage.deleteAll=Xoá #1 tác vụ tải xuống?
+
+downloadAction.deleteAll=Xoá tất cả
+
+downloadState.downloading=Đang tải xuống…
+downloadState.canceled=Đã hủy
+downloadState.failed=Thất bại
+downloadState.paused=Đã tạm dừng
+downloadState.starting=Đang bắt đầu…
+downloadState.unknownSize=Dung lượng không xác định
diff --git a/l10n-vi/mobile/android/chrome/aboutHome.dtd b/l10n-vi/mobile/android/chrome/aboutHome.dtd
new file mode 100644
index 0000000000..11a47475c9
--- /dev/null
+++ b/l10n-vi/mobile/android/chrome/aboutHome.dtd
@@ -0,0 +1,7 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<!-- This string should be kept in sync with the home_title string
+ in android_strings.dtd -->
+
+<!ENTITY abouthome.title "Trang chủ &brandShortName;">
diff --git a/l10n-vi/mobile/android/chrome/aboutLogins.dtd b/l10n-vi/mobile/android/chrome/aboutLogins.dtd
new file mode 100644
index 0000000000..97d76ce47d
--- /dev/null
+++ b/l10n-vi/mobile/android/chrome/aboutLogins.dtd
@@ -0,0 +1,9 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd">
+ %brandDTD;
+<!ENTITY aboutLogins.title "Đăng nhập">
+<!ENTITY aboutLogins.update "Cập nhật">
+<!ENTITY aboutLogins.emptyLoginText "Giữ thông tin đăng nhập an toàn">
+<!ENTITY aboutLogins.emptyLoginHint "Thông tin đăng nhập và lý lịch bạn lưu lại bằng &brandShortName; sẽ hiển thị ở đây.">
diff --git a/l10n-vi/mobile/android/chrome/aboutLogins.properties b/l10n-vi/mobile/android/chrome/aboutLogins.properties
new file mode 100644
index 0000000000..f95110392d
--- /dev/null
+++ b/l10n-vi/mobile/android/chrome/aboutLogins.properties
@@ -0,0 +1,33 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+loginsMenu.showPassword=Hiện mật khẩu
+loginsMenu.copyPassword=Sao chép mật khẩu
+loginsMenu.copyUsername=Sao chép tên người dùng
+loginsMenu.editLogin=Chỉnh sửa thông tin đăng nhập
+loginsMenu.delete=Xóa
+
+loginsMenu.deleteAll=Xoá tất cả
+
+loginsDialog.confirmDelete=Xoá thông tin đăng nhập này?
+loginsDialog.confirmDeleteForFxaUser=Xóa thông tin đăng nhập này?\n\nĐiều này có thể ảnh hưởng đến thông tin đăng nhập đã được đồng bộ hóa.
+loginsDialog.confirmDeleteAll=Xóa tất cả thông tin đăng nhập?
+loginsDialog.confirmDeleteAllForFxaUser=Xóa tất cả thông tin đăng nhập?\n\nĐiều này có thể ảnh hưởng đến thông tin đăng nhập đã được đồng bộ hóa.
+loginsDialog.copy=Sao chép
+loginsDialog.confirm=OK
+loginsDialog.cancel=Hủy bỏ
+
+editLogin.fallbackTitle=Chỉnh sửa thông tin đăng nhập
+editLogin.saved1=Thông tin đăng nhập đã được lưu
+editLogin.couldNotSave=Không thể lưu thay đổi
+
+loginsDetails.copyFailed=Sao chép không thành công
+loginsDetails.passwordCopied=Đã sao chép mật khẩu
+loginsDetails.usernameCopied=Đã sao chép tên người dùng
+loginsDetails.deleted=Đã xóa thông tin đăng nhập
+
+loginsDetails.deletedAll=Tất cả thông tin đăng nhập đã bị xóa
+
+password-btn.show=Hiện
+password-btn.hide=Ẩn
diff --git a/l10n-vi/mobile/android/chrome/aboutPrivateBrowsing.dtd b/l10n-vi/mobile/android/chrome/aboutPrivateBrowsing.dtd
new file mode 100644
index 0000000000..eef2bf1f94
--- /dev/null
+++ b/l10n-vi/mobile/android/chrome/aboutPrivateBrowsing.dtd
@@ -0,0 +1,25 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY privatebrowsingpage.title "Duyệt web Riêng tư">
+
+<!-- Localisation note: the plus sign here is a shorthand way of expressing the word "and". Contextually the privatebrowsingpage.title.private string
+ is used as a title, with the privatebrowsingpage.title string preceding it but on a separate line.
+ So the final line will say "Private Browsing + Tracking Protection". -->
+<!ENTITY privatebrowsingpage.title.private "+ Chống theo dõi">
+<!-- Localization note (privatebrowsingpage.title.normal1): "Private Browsing"
+ is capitalized in English to be consistent with our existing uses of the
+ term. -->
+<!ENTITY privatebrowsingpage.title.normal1 "Bạn không ở trong chế độ duyệt riêng tư">
+
+<!ENTITY privatebrowsingpage.description.trackingProtection "&brandShortName; chặn những thành phần của trang có thể theo dõi hoạt động duyệt web của bạn.">
+<!ENTITY privatebrowsingpage.description.privateDetails "Chúng tôi không lưu lại bất kỳ lịch sử duyệt web nào, nhưng các tập tin đã tải xuống và trang đánh dấu mới sẽ được lưu lại trên thiết bị của bạn.">
+
+<!-- Localization note (privatebrowsingpage.description.normal2): "Private
+ Browsing is capitalized in English to be consistent with our existing uses
+ of the term. -->
+<!ENTITY privatebrowsingpage.description.normal2 "Trong chế độ duyệt riêng tư, chúng tôi sẽ không giữ bất kỳ lịch sử hoặc cookie duyệt web nào của bạn. Các trang đánh dấu bạn thêm và các tập tin bạn tải xuống vẫn sẽ được lưu trên thiết bị của bạn.">
+
+<!ENTITY privatebrowsingpage.link.private "Muốn tìm hiểu thêm?">
+<!ENTITY privatebrowsingpage.link.normal "Mở trong một thẻ riêng tư mới">
diff --git a/l10n-vi/mobile/android/chrome/browser.properties b/l10n-vi/mobile/android/chrome/browser.properties
new file mode 100644
index 0000000000..c85c9fdbe1
--- /dev/null
+++ b/l10n-vi/mobile/android/chrome/browser.properties
@@ -0,0 +1,477 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+addonsConfirmInstall.title=Cài đặt Tiện ích
+addonsConfirmInstall.install=Cài đặt
+
+addonsConfirmInstallUnsigned.title=Tiện ích chưa được xác thực
+addonsConfirmInstallUnsigned.message=Trang này muốn cài đặt một tiện ích chưa được xác thực. Chúng tôi không chịu trách nhiệm những vẫn đề có thể xảy ra.
+
+# Alerts
+alertAddonsDownloading=Đang tải tiện ích
+alertAddonsInstalledNoRestart.message=Cài đặt hoàn tất
+
+# LOCALIZATION NOTE (alertAddonsInstalledNoRestart.action2): Ideally, this string is short (it's a
+# button label) and upper-case, to match Google and Android's convention.
+alertAddonsInstalledNoRestart.action2=TIỆN ÍCH
+
+alertDownloadsStart2=Bắt đầu tải xuống
+alertDownloadsDone2=Tải xuống đã hoàn tất
+alertDownloadsToast=Đã bắt đầu tải xuống…
+alertDownloadsPause=Tạm dừng
+alertDownloadsResume=Tiếp tục
+alertDownloadsCancel=Hủy bỏ
+# LOCALIZATION NOTE (alertDownloadSucceeded): This text is shown as a snackbar inside the app after a
+# successful download. %S will be replaced by the file name of the download.
+alertDownloadSucceeded=Đã tải xuống %S
+# LOCALIZATION NOTE (downloads.disabledInGuest): This message appears in a toast
+# when the user tries to download something in Guest mode.
+downloads.disabledInGuest=Tải xuống bị vô hiệu hóa trong phiên làm việc khách
+
+# LOCALIZATION NOTE (alertSearchEngineAddedToast, alertSearchEngineErrorToast, alertSearchEngineDuplicateToast)
+# %S will be replaced by the name of the search engine (exposed by the current page)
+# that has been added; for example, 'Google'.
+alertSearchEngineAddedToast='%S' đã được thêm vào danh sách công cụ tìm kiếm
+alertSearchEngineErrorToast=Không thể thêm '%S' vào danh sách công cụ tìm kiếm
+alertSearchEngineDuplicateToast='%S' đã có trong danh sách công cụ tìm kiếm
+
+# LOCALIZATION NOTE (alertShutdownSanitize): This text is shown as a snackbar during shutdown if the
+# user has enabled "Clear private data on exit".
+alertShutdownSanitize=Xóa dữ liệu riêng tư…
+
+alertPrintjobToast=Đang in...
+
+download.blocked=Không thể tải xuống tập tin
+
+addonError.titleError=Lỗi
+addonError.titleBlocked=Tiện ích đã bị chặn
+addonError.learnMore=Tìm hiểu thêm
+
+# LOCALIZATION NOTE (unsignedAddonsDisabled.title, unsignedAddonsDisabled.message):
+# These strings will appear in a dialog when Firefox detects that installed add-ons cannot be verified.
+unsignedAddonsDisabled.title=Tiện ích chưa được xác thực
+unsignedAddonsDisabled.message=Một số tiện ích đã cài đặt không thể xác thực được nên chúng đã bị vô hiệu hóa.
+unsignedAddonsDisabled.dismiss=Bỏ qua
+unsignedAddonsDisabled.viewAddons=Xem tiện tích
+
+# LOCALIZATION NOTE (addonError-1, addonError-2, addonError-3, addonError-4, addonError-5):
+# #1 is the add-on name, #2 is the add-on host, #3 is the application name
+addonError-1=Không thể tải tiện ích này vì không thể kết nối tới #2.
+addonError-2=Tiện ích từ #2 không thể cài đặt được vì nó không phải là tiện ích #3 yêu cầu.
+addonError-3=Tiện ích tải từ #2 không thể cài đặt được vì có vẻ như nó đã bị hỏng.
+addonError-4=#1 không thể cài đặt được vì #3 không thể sửa đổi tập tin cần thiết.
+addonError-5=#3 đã chặn #2 cài đặt một tiện ích chưa được xác thực.
+
+# LOCALIZATION NOTE (addonLocalError-1, addonLocalError-2, addonLocalError-3, addonLocalError-4, addonLocalError-5, addonErrorIncompatible, addonErrorBlocklisted):
+# #1 is the add-on name, #3 is the application name, #4 is the application version
+addonLocalError-1=Tiện ích này không thể cài đặt được vì một lỗi hệ thống.
+addonLocalError-2=Tiện ích này không thể cài đặt được vì nó không phải là tiện ích #3 yêu cầu.
+addonLocalError-3=Tiện ích này không thể cài đặt được vì có vẻ như nó đã bị hỏng.
+addonLocalError-4=#1 không thể cài đặt được vì #3 không thể sửa đổi tập tin cần thiết.
+addonLocalError-5=Tiện ích này không thể cài đặt được vì nó chưa được xác thực
+addonErrorIncompatible=#1 không thể cài đặt được vì nó không tương thích với #3 #4.
+addonErrorBlocklisted=#1 không thể cài đặt được vì nó có khả năng gây ra các vấn đề về bảo mật và ổn định.
+
+# Notifications
+notificationRestart.normal=Khởi động lại để hoàn tất thay đổi.
+notificationRestart.blocked=Đã cài đặt tiện ích không an toàn. Khởi động lại để vô hiệu hóa.
+notificationRestart.button=Khởi động lại
+doorhanger.learnMore=Tìm hiểu thêm
+
+# Popup Blocker
+
+# LOCALIZATION NOTE (popup.message): Semicolon-separated list of plural forms.
+# #1 is brandShortName and #2 is the number of pop-ups blocked.
+popup.message=#1 ngăn không cho trang web này mở một cửa sổ bật lên. Bạn có muốn hiển thị nó?; #1 ngăn không cho trang web này mở cửa sổ bật lên #2. Bạn có muốn hiển thị chúng?
+popup.dontAskAgain=Không hỏi lại về trang này
+popup.show=Hiển thị
+popup.dontShow=Không hiển thị
+
+# SafeBrowsing
+safeBrowsingDoorhanger=Trang này đã được xác định là có chứa phần mềm độc hại hoặc cố gắng lừa đảo. Hãy cẩn thận.
+
+# LOCALIZATION NOTE (blockPopups.label2): Label that will be used in
+# site settings dialog.
+blockPopups.label2=Cửa sổ bật lên
+
+# XPInstall
+xpinstallPromptWarning2=%S đã chặn yêu cầu cài đặt phần mềm từ trang này (%S) vào máy bạn.
+xpinstallPromptWarningLocal=%S đã chặn tiện ích này (%S) được cài đặt trên thiết bị của bạn.
+xpinstallPromptWarningDirect=%S đã chặn một tiện ích cài đặt lên thiết bị của bạn.
+xpinstallPromptAllowButton=Cho phép
+xpinstallDisabledMessageLocked=Việc cài đặt phần mềm đã bị vô hiệu hóa bởi người quản trị hệ thống của bạn.
+xpinstallDisabledMessage2=Việc cài đặt phần mềm hiện tại đã bị vô hiệu hóa. Hãy nhấn Bật rồi thử lại.‌
+xpinstallDisabledButton=Bật
+
+# LOCALIZATION NOTE (webextPerms.header)
+# This string is used as a header in the webextension permissions dialog,
+# %S is replaced with the localized name of the extension being installed.
+# See https://bug1308309.bmoattachments.org/attachment.cgi?id=8814612
+# for an example of the full dialog.
+# Note, this string will be used as raw markup. Avoid characters like <, >, &
+webextPerms.header=Thêm %S?
+
+# LOCALIZATION NOTE (webextPerms.listIntro)
+# This string will be followed by a list of permissions requested
+# by the webextension.
+webextPerms.listIntro=Nó yêu cầu sự cho phép của bạn để:
+webextPerms.add.label=Thêm
+webextPerms.cancel.label=Hủy bỏ
+
+# LOCALIZATION NOTE (webextPerms.updateText)
+# %S is replaced with the localized name of the updated extension.
+webextPerms.updateText=%S đã được cập nhật. Bạn phải cho phép các quyền mới trước khi cài đặt phiên bản cập nhật. Chọn “Hủy bỏ” sẽ giữ lại phiên bản hiện tại của tiện ích.
+
+webextPerms.updateAccept.label=Cập nhật
+
+# LOCALIZATION NOTE (webextPerms.optionalPermsHeader)
+# %S is replaced with the localized name of the extension requesting new
+# permissions.
+webextPerms.optionalPermsHeader=%S yêu cầu quyền bổ sung.
+webextPerms.optionalPermsListIntro=Trang cần truy cập:
+webextPerms.optionalPermsAllow.label=Cho phép
+webextPerms.optionalPermsDeny.label=Từ chối
+
+webextPerms.description.bookmarks=Xem và chỉnh sửa trang đánh dấu
+webextPerms.description.browserSettings=Đọc và chỉnh sửa cài đặt trình duyệt
+webextPerms.description.browsingData=Xóa lịch sử duyệt web gần đây, cookie, và dữ liệu liên quan
+webextPerms.description.clipboardRead=Lấy dữ liệu từ bảng tạm
+webextPerms.description.clipboardWrite=Nhập dữ liệu vào bảng tạm
+webextPerms.description.devtools=Mở rộng công cụ dành cho nhà phát triển để truy cập dữ liệu của bạn trong các thẻ đang mở
+webextPerms.description.downloads=Tải xuống các tập tin và chỉnh sửa lịch sử tải xuống của trình duyệt
+webextPerms.description.downloads.open=Mở tập tin đã tải xuống máy tính của bạn
+webextPerms.description.find=Đọc văn bản của tất cả các thẻ đang mở
+webextPerms.description.geolocation=Truy cập vị trí của bạn
+webextPerms.description.history=Truy cập lịch sử duyệt web
+webextPerms.description.management=Theo dõi việc sử dụng tiện ích mở rộng và quản lý các chủ đề
+# LOCALIZATION NOTE (webextPerms.description.nativeMessaging)
+# %S will be replaced with the name of the application
+webextPerms.description.nativeMessaging=Trao đổi tin nhắn với các chương trình khác với %S
+webextPerms.description.notifications=Hiển thị thông báo cho bạn
+webextPerms.description.privacy=Đọc và chỉnh sửa các cài đặt riêng tư
+webextPerms.description.proxy=Kiểm soát cài đặt proxy của trình duyệt
+webextPerms.description.sessions=Truy cập các thẻ đã đóng gần đây
+webextPerms.description.tabs=Truy cập các thẻ trên trình duyệt
+webextPerms.description.topSites=Truy cập lịch sử duyệt web
+webextPerms.description.webNavigation=Truy cập hoạt động của trình duyệt trong khi điều hướng
+
+webextPerms.hostDescription.allUrls=Truy cập dữ liệu của bạn trên mọi trang web
+
+# LOCALIZATION NOTE (webextPerms.hostDescription.wildcard)
+# %S will be replaced by the DNS domain for which a webextension
+# is requesting access (e.g., mozilla.org)
+webextPerms.hostDescription.wildcard=Truy cập dữ liệu của bạn trên các trang có tên miền %S
+
+# LOCALIZATION NOTE (webextPerms.hostDescription.tooManyWildcards):
+# Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 will be replaced by an integer indicating the number of additional
+# domains for which this webextension is requesting permission.
+webextPerms.hostDescription.tooManyWildcards=Truy cập dữ liệu của bạn trong #1 tên miền khác
+
+# LOCALIZATION NOTE (webextPerms.hostDescription.oneSite)
+# %S will be replaced by the DNS host name for which a webextension
+# is requesting access (e.g., www.mozilla.org)
+webextPerms.hostDescription.oneSite=Truy cập dữ liệu của bạn từ %S
+
+# LOCALIZATION NOTE (webextPerms.hostDescription.tooManySites)
+# Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 will be replaced by an integer indicating the number of additional
+# hosts for which this webextension is requesting permission.
+webextPerms.hostDescription.tooManySites=Truy cập dữ liệu của bạn trên #1 trang khác
+
+
+# Site Identity
+identity.identified.verifier=Xác minh bởi: %S
+identity.identified.verified_by_you=Bạn vừa thêm một ngoại lệ an ninh cho trang web này
+identity.identified.state_and_country=%S, %S
+
+# Geolocation UI
+geolocation.allow=Chia sẻ
+geolocation.dontAllow=Không chia sẻ
+# LOCALIZATION NOTE (geolocation.location): Label that will be used in
+# site settings dialog.
+geolocation.location=Vị trí
+
+# Desktop notification UI
+desktopNotification2.allow=Luôn luôn
+desktopNotification2.dontAllow=Không bao giờ
+# LOCALIZATION NOTE (desktopNotification.notifications): Label that will be
+# used in site settings dialog.
+desktopNotification.notifications=Thông báo
+
+# Imageblocking
+imageblocking.downloadedImage=Hình ảnh không bị chặn
+imageblocking.showAllImages=Hiện tất cả
+
+# New Tab Popup
+# LOCALIZATION NOTE (newtabpopup, newprivatetabpopup): Semicolon-separated list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 number of tabs
+newtabpopup.opened=#1 thẻ mới được mở
+newprivatetabpopup.opened=Thẻ riêng tư mới đã được mở; #1 thẻ riêng tư mới đã được mở
+
+# LOCALIZATION NOTE (newtabpopup.switch): Ideally, this string is short (it's a
+# button label) and upper-case, to match Google and Android's convention.
+newtabpopup.switch=CHUYỂN
+
+# Undo close tab toast
+# LOCALIZATION NOTE (undoCloseToast.message): This message appears in a toast
+# when the user closes a tab. %S is the title of the tab that was closed.
+undoCloseToast.message=Đã đóng %S
+
+# Private Tab closed message
+# LOCALIZATION NOTE (privateClosedMessage.message): This message appears
+# when the user closes a private tab.
+privateClosedMessage.message=Đã đóng thẻ duyệt web riêng tư
+
+# LOCALIZATION NOTE (undoCloseToast.messageDefault): This message appears in a
+# toast when the user closes a tab if there is no title to display.
+undoCloseToast.messageDefault=Thẻ đã đóng
+
+# LOCALIZATION NOTE (undoCloseToast.action2): Ideally, this string is short (it's a
+# button label) and upper-case, to match Google and Android's convention.
+undoCloseToast.action2=HOÀN TÁC
+
+# Offline web applications
+offlineApps.ask=Cho phép %S lưu dữ liệu trên thiết bị của bạn để sử dụng ngoại tuyến?
+offlineApps.dontAskAgain=Không hỏi lại lần nữa cho trang này
+offlineApps.allow=Cho phép
+offlineApps.dontAllow2=Không cho phép
+
+# LOCALIZATION NOTE (offlineApps.offlineData): Label that will be used in
+# site settings dialog.
+offlineApps.offlineData=Dữ liệu ngoại tuyến
+
+# LOCALIZATION NOTE (password.logins): Label that will be used in
+ # site settings dialog.
+password.logins=Đăng nhập
+# LOCALIZATION NOTE (password.save): This should match
+# saveButton in passwordmgr.properties
+password.save=Lưu
+# LOCALIZATION NOTE (password.dontSave): This should match
+# dontSaveButton in passwordmgr.properties
+password.dontSave=Không lưu
+
+# LOCALIZATION NOTE (browser.menu.showCharacterEncoding): Set to the string
+# "true" (spelled and capitalized exactly that way) to show the "Character
+# Encoding" menu in the site menu. Any other value will hide it. Without this
+# setting, the "Character Encoding" menu must be enabled via Preferences.
+# This is not a string to translate. If users frequently use the "Character Encoding"
+# menu, set this to "true". Otherwise, you can leave it as "false".
+browser.menu.showCharacterEncoding=false
+
+# Text Selection
+selectionHelper.textCopied=Đã sao chép văn bản vào clipboard
+
+# Casting
+# LOCALIZATION NOTE (casting.sendToDevice): Label that will be used in the
+# dialog/prompt.
+casting.sendToDevice=Gửi đến thiết bị
+
+# Context menu
+contextmenu.openInNewTab=Mở liên kết trong thẻ mới
+contextmenu.openInPrivateTab=Mở liên kết trong thẻ riêng tư
+contextmenu.share=Chia sẻ
+contextmenu.copyLink=Sao chép liên kết
+contextmenu.shareLink=Chia sẻ liên kết
+contextmenu.bookmarkLink=Đánh dấu liên kết
+contextmenu.copyEmailAddress=Sao chép địa chỉ email
+contextmenu.shareEmailAddress=Chia sẻ địa chỉ thư điện tử
+contextmenu.copyPhoneNumber=Sao chép số điện thoại
+contextmenu.sharePhoneNumber=Chia sẻ số điện thoại
+contextmenu.fullScreen=Toàn màn hình
+contextmenu.viewImage=Xem ảnh
+contextmenu.copyImageLocation=Sao chép địa chỉ ảnh
+contextmenu.shareImage=Chia sẻ hình ảnh
+# LOCALIZATION NOTE (contextmenu.search):
+# The label of the contextmenu item which allows you to search with your default search engine for
+# the text you have selected. %S is the name of the search engine. For example, "Google".
+contextmenu.search=Công cụ tìm kiếm %S
+contextmenu.saveImage=Lưu ảnh
+contextmenu.showImage=Hiện ảnh
+contextmenu.setImageAs=Đặt ảnh làm
+# LOCALIZATION NOTE (contextmenu.addSearchEngine3): This string should be rather short. If it is
+# significantly longer than the translation for the "Paste" action then this might trigger an
+# Android bug positioning the floating text selection partially off the screen. This issue heavily
+# depends on the screen size and the specific translations. For English "Paste" / "Add search engine"
+# is working while "Paste" / "Add as search engine" triggers the bug. See bug 1262098 for more details.
+# Manual testing the scenario described in bug 1262098 is highly recommended.
+contextmenu.addSearchEngine3=Thêm công cụ tìm kiếm
+contextmenu.playMedia=Phát
+contextmenu.pauseMedia=Tạm dừng
+contextmenu.showControls2=Hiện điều khiển
+contextmenu.mute=Tắt tiếng
+contextmenu.unmute=Bật tiếng
+contextmenu.saveVideo=Lưu video
+contextmenu.saveAudio=Lưu âm thanh
+contextmenu.addToContacts=Thêm liên lạc
+# LOCALIZATION NOTE (contextmenu.sendToDevice):
+# The label that will be used in the contextmenu and the pageaction
+contextmenu.sendToDevice=Gửi đến thiết bị
+
+contextmenu.copy=Sao chép
+contextmenu.cut=Cắt
+contextmenu.selectAll=Chọn toàn bộ
+contextmenu.paste=Dán
+
+contextmenu.call=Gọi
+
+#Input widgets UI
+inputWidgetHelper.date=Chọn ngày
+inputWidgetHelper.datetime-local=Chọn ngày và giờ
+inputWidgetHelper.time=Chọn giờ
+inputWidgetHelper.week=Chọn tuần
+inputWidgetHelper.month=Chọn tháng
+inputWidgetHelper.cancel=Hủy bỏ
+inputWidgetHelper.set=Thiết lập
+inputWidgetHelper.clear=Xóa
+
+# Web Console API
+stacktrace.anonymousFunction=<vô danh>
+stacktrace.outputMessage=Truy stack từ %S, hàm %S, dòng %S.
+timer.start=%S: Đã khởi động đồng hồ
+
+# LOCALIZATION NOTE (timer.end):
+# This string is used to display the result of the console.timeEnd() call.
+# %1$S=name of timer, %2$S=number of milliseconds
+timer.end=%1$S: %2$Sms
+
+# Click to play plugins
+clickToPlayPlugins.activate=Kích hoạt
+clickToPlayPlugins.dontActivate=Không kích hoạt
+# LOCALIZATION NOTE (clickToPlayPlugins.plugins): Label that
+# will be used in site settings dialog.
+clickToPlayPlugins.plugins=Phần bổ trợ
+
+# Site settings dialog
+
+masterPassword.incorrect=Mật khẩu không đúng
+
+# Debugger
+# LOCALIZATION NOTE (remoteIncomingPromptTitle): The title displayed on the
+# dialog that prompts the user to allow the incoming connection.
+remoteIncomingPromptTitle=Kết nối đến
+# LOCALIZATION NOTE (remoteIncomingPromptUSB): The message displayed on the
+# dialog that prompts the user to allow an incoming USB connection.
+remoteIncomingPromptUSB=Cho phép gỡ lỗi qua USB?
+# LOCALIZATION NOTE (remoteIncomingPromptUSB): The message displayed on the
+# dialog that prompts the user to allow an incoming TCP connection.
+remoteIncomingPromptTCP=Cho phép kết nối gỡ lỗi từ xa từ %1$S:%2$S? Kết nối này đòi hỏi một mã QR được quét để xác thực chứng chỉ thiết bị từ xa. Bạn có thể tránh việc quét cho lần sau bằng cách ghi nhớ các thiết bị.
+# LOCALIZATION NOTE (remoteIncomingPromptDeny): This button will deny an
+# an incoming remote debugger connection.
+remoteIncomingPromptDeny=Từ chối
+# LOCALIZATION NOTE (remoteIncomingPromptAllow): This button will allow an
+# an incoming remote debugger connection.
+remoteIncomingPromptAllow=Cho phép
+# LOCALIZATION NOTE (remoteIncomingPromptScan): This button will start a QR
+# code scanner to authenticate an incoming remote debugger connection. The
+# connection will be allowed assuming the scan succeeds.
+remoteIncomingPromptScan=Quét
+# LOCALIZATION NOTE (remoteIncomingPromptScanAndRemember): This button will
+# start a QR code scanner to authenticate an incoming remote debugger
+# connection. The connection will be allowed assuming the scan succeeds, and
+# the other endpoint's certificate will be saved to skip future scans for this
+# client.
+remoteIncomingPromptScanAndRemember=Quét và ghi nhớ
+# LOCALIZATION NOTE (remoteQRScanFailedPromptTitle): The title displayed in a
+# dialog when we are unable to complete the QR code scan for an incoming remote
+# debugging connection.
+remoteQRScanFailedPromptTitle=Lỗi quét QR
+# LOCALIZATION NOTE (remoteQRScanFailedPromptMessage): The message displayed in
+# a dialog when we are unable to complete the QR code scan for an incoming
+# remote debugging connection.
+remoteQRScanFailedPromptMessage=Không thể quét mã QR để gỡ lỗi từ xa. Hãy chắc rằng ứng dụng quét mã vạch đã được cài đặt và thử lại lần nữa.
+# LOCALIZATION NOTE (remoteQRScanFailedPromptOK): This button dismisses the
+# dialog that appears when we are unable to complete the QR code scan for an
+# incoming remote debugging connection.
+remoteQRScanFailedPromptOK=Đồng ý
+
+# Helper apps
+helperapps.open=Mở
+helperapps.openWithApp2=Mở bằng ứng dụng %S
+helperapps.openWithList2=Mở bằng ứng dụng
+helperapps.always=Luôn luôn
+helperapps.never=Không bao giờ
+helperapps.pick=Hoàn thành hành động bằng
+helperapps.saveToDisk=Tải xuống
+helperapps.alwaysUse=Luôn luôn
+helperapps.useJustOnce=Chỉ lần này
+
+# LOCALIZATION NOTE (getUserMedia.shareCamera.message, getUserMedia.shareMicrophone.message, getUserMedia.shareCameraAndMicrophone.message, getUserMedia.sharingCamera.message, getUserMedia.sharingMicrophone.message, getUserMedia.sharingCameraAndMicrophone.message): %S is the website origin (e.g. www.mozilla.org)
+getUserMedia.shareCamera.message = Bạn có muốn chia sẻ máy ảnh với %S?
+getUserMedia.shareMicrophone.message = Bạn có muốn chia sẻ mic của bạn với %S?
+getUserMedia.shareCameraAndMicrophone.message = Bạn có muốn chia sẻ máy quay và micrô của bạn với %S?
+getUserMedia.denyRequest.label = Không chia sẻ
+getUserMedia.shareRequest.label = Chia sẻ
+getUserMedia.videoSource.default = Máy ảnh %S
+getUserMedia.videoSource.frontCamera = Máy ảnh trước
+getUserMedia.videoSource.backCamera = Máy ảnh sau
+getUserMedia.videoSource.none = Không video
+getUserMedia.videoSource.tabShare = Chọn một thẻ để truyền hình
+getUserMedia.videoSource.prompt = Nguồn video
+getUserMedia.audioDevice.default = Micrô %S
+getUserMedia.audioDevice.none = Không âm thanh
+getUserMedia.audioDevice.prompt = Micrô để sử dụng
+getUserMedia.sharingCamera.message2 = Đã bật máy ảnh
+getUserMedia.sharingMicrophone.message2 = Đã bật micrô
+getUserMedia.sharingCameraAndMicrophone.message2 = Đã bật máy ảnh và micrô
+getUserMedia.blockedCameraAccess = Máy ảnh đã bị khóa.
+getUserMedia.blockedMicrophoneAccess = Micrô đã bị khóa.
+getUserMedia.blockedCameraAndMicrophoneAccess = Máy ảnh và micrô đã bị khóa.
+
+# LOCALIZATION NOTE (userContextPersonal.label,
+# userContextWork.label,
+# userContextShopping.label,
+# userContextBanking.label,
+# userContextNone.label):
+# These strings specify the four predefined contexts included in support of the
+# Contextual Identity / Containers project. Each context is meant to represent
+# the context that the user is in when interacting with the site. Different
+# contexts will store cookies and other information from those sites in
+# different, isolated locations. You can enable the feature by typing
+# about:config in the URL bar and changing privacy.userContext.enabled to true.
+# Once enabled, you can open a new tab in a specific context by clicking
+# File > New Container Tab > (1 of 4 contexts). Once opened, you will see these
+# strings on the right-hand side of the URL bar.
+# In android this will be only exposed by web extensions
+userContextPersonal.label = Cá nhân
+userContextWork.label = Công việc
+userContextBanking.label = Ngân hàng
+userContextShopping.label = Mua sắm
+
+# LOCALIZATION NOTE (readerMode.toolbarTip):
+# Tip shown to users the first time we hide the reader mode toolbar.
+readerMode.toolbarTip=Chạm vào màn hình để hiển thị tùy chọn
+
+#Open in App
+openInApp.pageAction = Mở trong ứng dụng
+openInApp.ok = Đồng ý
+openInApp.cancel = Hủy bỏ
+
+#Tab sharing
+tabshare.title = "Chọn một thẻ để truyền hình"
+#Tabs in context menus
+browser.menu.context.default = Liên kết
+browser.menu.context.img = Ảnh
+browser.menu.context.video = Video
+browser.menu.context.audio = Âm thanh
+browser.menu.context.tel = Điện thoại
+browser.menu.context.mailto = Thư
+
+# "Subscribe to page" prompts created in FeedHandler.js
+feedHandler.chooseFeed=Chọn nguồn tin
+feedHandler.subscribeWith=Đăng ký nhận tin với
+
+# LOCALIZATION NOTE (nativeWindow.deprecated):
+# This string is shown in the console when someone uses deprecated NativeWindow apis.
+# %1$S=name of the api that's deprecated, %2$S=New API to use. This may be a url to
+# a file they should import or the name of an api.
+nativeWindow.deprecated=%1$S đã không được chấp nhận. Xin vui lòng sử dụng %2$S để thay thế
+
+# Vibration API permission prompt
+vibrationRequest.message = Cho phép trang này rung thiết bị của bạn?
+vibrationRequest.denyButton = Không cho phép
+vibrationRequest.allowButton = Cho phép
diff --git a/l10n-vi/mobile/android/chrome/config.dtd b/l10n-vi/mobile/android/chrome/config.dtd
new file mode 100644
index 0000000000..3c21d7bd7c
--- /dev/null
+++ b/l10n-vi/mobile/android/chrome/config.dtd
@@ -0,0 +1,21 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+
+<!ENTITY toolbar.searchPlaceholder "Tìm kiếm">
+
+<!ENTITY newPref.namePlaceholder "Tên">
+
+<!ENTITY newPref.valueBoolean "Luận lí">
+<!ENTITY newPref.valueString "Chuỗi">
+<!ENTITY newPref.valueInteger "Số nguyên">
+
+<!ENTITY newPref.stringPlaceholder "Nhập một chuỗi">
+<!ENTITY newPref.numberPlaceholder "Nhập một số">
+
+<!ENTITY newPref.toggleButton "Bật tắt">
+<!ENTITY newPref.cancelButton "Hủy bỏ">
+
+<!ENTITY contextMenu.copyPrefName "Sao chép tên">
+<!ENTITY contextMenu.copyPrefValue "Sao chép giá trị">
diff --git a/l10n-vi/mobile/android/chrome/config.properties b/l10n-vi/mobile/android/chrome/config.properties
new file mode 100644
index 0000000000..b09407fa39
--- /dev/null
+++ b/l10n-vi/mobile/android/chrome/config.properties
@@ -0,0 +1,9 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+newPref.createButton=Tạo
+newPref.changeButton=Thay đổi
+
+pref.toggleButton=Bật/Tắt
+pref.resetButton=Mặc định
diff --git a/l10n-vi/mobile/android/chrome/devicePrompt.properties b/l10n-vi/mobile/android/chrome/devicePrompt.properties
new file mode 100644
index 0000000000..a41b203375
--- /dev/null
+++ b/l10n-vi/mobile/android/chrome/devicePrompt.properties
@@ -0,0 +1,5 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+deviceMenu.title=Thiết bị gần đây
diff --git a/l10n-vi/mobile/android/chrome/passwordmgr.properties b/l10n-vi/mobile/android/chrome/passwordmgr.properties
new file mode 100644
index 0000000000..9e5faa0fdb
--- /dev/null
+++ b/l10n-vi/mobile/android/chrome/passwordmgr.properties
@@ -0,0 +1,20 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# String will be replaced by brandShortName.
+saveLogin=Bạn có muốn %S nhớ thông tin đăng nhập này?
+rememberButton=Lưu lại
+neverButton=Không bao giờ
+
+# String is the login's hostname
+updatePassword=Cập nhật mật khẩu đã lưu cho %S?
+updatePasswordNoUser=Cập nhật mật khẩu đã lưu cho thông tin đăng nhập này?
+updateButton=Cập nhật
+dontUpdateButton=Không cập nhật
+
+userSelectText2=Chọn đăng nhập để cập nhật:
+passwordChangeTitle=Xác nhận Thay đổi Mật khẩu
+
+username=Tên đăng nhập
+password=Mật khẩu
diff --git a/l10n-vi/mobile/android/chrome/phishing.dtd b/l10n-vi/mobile/android/chrome/phishing.dtd
new file mode 100644
index 0000000000..734f0dd1fb
--- /dev/null
+++ b/l10n-vi/mobile/android/chrome/phishing.dtd
@@ -0,0 +1,27 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY safeb.palm.accept.label "Đưa tôi ra khỏi đây!">
+<!ENTITY safeb.palm.decline.label "Bỏ qua cảnh báo này">
+<!ENTITY safeb.palm.reportPage.label "Tại sao trang này bị chặn?">
+<!-- Localization note (safeb.palm.advisory.desc) - Please don't translate <a id="advisory_provider"/> tag. It will be replaced at runtime with advisory link-->
+<!ENTITY safeb.palm.advisory.desc "Tư vấn được cung cấp bởi <a id='advisory_provider'/>">
+
+<!ENTITY safeb.blocked.malwarePage.title "Trang web Ác ý Đã biết!">
+<!-- Localization note (safeb.blocked.malware.shortDesc) - Please don't translate the contents of the <span id="malware_sitename"/> tag. It will be replaced at runtime with a domain name (e.g. www.badsite.com) -->
+<!ENTITY safeb.blocked.malwarePage.shortDesc "Trang web tại <span id='malware_sitename'/> được báo cáo là trang web ác ý và đã bị chặn dựa trên tùy chỉnh bảo mật của bạn.">
+<!ENTITY safeb.blocked.malwarePage.longDesc "<p>Trang ác ý cố gắng cài đặt các chương trình để ăn cắp thông tin cá nhân, dùng máy của bạn để tấn công máy khác, hoặc làm hư hệ thống của bạn.</p><p>Một số trang ác ý cố tình phân phối phần mềm độc hại, nhưng đa số đã bị sửa đổi mà không được phép hoặc người sở hữu không được biết.</p>">
+
+<!ENTITY safeb.blocked.phishingPage.title3 "Trang web lừa đảo!">
+<!-- Localization note (safeb.blocked.phishingPage.shortDesc3) - Please don't translate the contents of the <span id="phishing_sitename"/> tag. It will be replaced at runtime with a domain name (e.g. www.badsite.com) -->
+<!ENTITY safeb.blocked.phishingPage.shortDesc3 "Trang web tại <span id='phishing_sitename'/> được báo cáo là trang web ác ý và đã bị chặn dựa trên tùy chỉnh bảo mật của bạn.">
+<!ENTITY safeb.blocked.phishingPage.longDesc3 "<p>Trang web lừa đảo là trang được thiết kế để lừa bạn làm điều gì đó nguy hiểm như cài đặt phần mềm độc hại, tiết lộ thông tin cá nhân như mật khẩu, số điện thoại hay số thẻ tín dụng.</p><p>Cung cấp bất kỳ thông tin gì cho các trang web này có thể dẫn đến trộm cắp hay sự lừa đảo khác.</p>">
+
+<!ENTITY safeb.blocked.unwantedPage.title "Trang này có nghi ngờ cài đặt phần mềm không mong muốn!">
+<!-- Localization note (safeb.blocked.unwanted.shortDesc) - Please don't translate the contents of the <span id="unwanted_sitename"/> tag. It will be replaced at runtime with a domain name (e.g. www.badsite.com) -->
+<!ENTITY safeb.blocked.unwantedPage.shortDesc "Trang web tại <span id='unwanted_sitename'/> được báo cáo là có chứa phần mềm không mong muốn và đã bị chặn dựa trên tùy chỉnh bảo mật của bạn.">
+<!ENTITY safeb.blocked.unwantedPage.longDesc "Phần mềm không mong muốn mà trang này cố gắng cài đặt có thể là lừa đảo và ảnh hưởng nghiêm trọng đến hoạt động của thiết bị.">
+
+<!ENTITY safeb.blocked.harmfulPage.title "Trang bạn đang truy cập có thể chứa phần mềm gây hại">
+<!ENTITY safeb.blocked.harmfulPage.shortDesc "&brandShortName; đã chặn trang này vì có thể nó thử cài đặt các ứng dụng nguy hiểm mà nó có thể ăn cắp hoặc xóa thông tin của bạn (ví dụ, hình ảnh, mật khẩu, tin nhắn và thẻ tín dụng)."> \ No newline at end of file
diff --git a/l10n-vi/mobile/android/chrome/pippki.properties b/l10n-vi/mobile/android/chrome/pippki.properties
new file mode 100644
index 0000000000..36051e889b
--- /dev/null
+++ b/l10n-vi/mobile/android/chrome/pippki.properties
@@ -0,0 +1,84 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+nssdialogs.ok.label=OK
+nssdialogs.cancel.label=Hủy bỏ
+
+# These strings are stolen from security/manager/locales/en-US/chrome/pippki/pippki.dtd
+downloadCert.title=Đang tải Chứng chỉ
+downloadCert.message1=Bạn được hỏi có tin tưởng một CA (Bên thẩm định Chứng chỉ) mới hay không.
+downloadCert.viewCert.label=Xem
+downloadCert.trustSSL=Tin chứng chỉ này để nhận diện các trang web.
+downloadCert.trustEmail=Tin chứng chỉ này để nhận diện người dùng thư điện tử.
+pkcs12.getpassword.title=Hộp thoại Mục nhập Mật khẩu
+pkcs12.getpassword.message=Hãy nhập mật khẩu dùng để mật hóa bản sao lưu chứng chỉ này.
+clientAuthAsk.title=Yêu cầu Nhận diện Người dùng
+clientAuthAsk.message1=Trang này yêu cầu bạn tự nhận diện chính mình với một chứng chỉ:
+clientAuthAsk.message2=Chọn một chứng chỉ để thực hiện việc nhận diện này:
+clientAuthAsk.message3=Chi tiết của chứng chỉ đã chọn:
+clientAuthAsk.remember.label=Ghi nhớ quyết định này
+# LOCALIZATION NOTE(clientAuthAsk.nickAndSerial): Represents a single cert when
+# the user is choosing from a list of certificates.
+# %1$S is the nickname of the cert.
+# %2$S is the serial number of the cert in AA:BB:CC hex format.
+clientAuthAsk.nickAndSerial=%1$S [%2$S]
+# LOCALIZATION NOTE(clientAuthAsk.hostnameAndPort):
+# %1$S is the hostname of the server.
+# %2$S is the port of the server.
+clientAuthAsk.hostnameAndPort=%1$S:%2$S
+# LOCALIZATION NOTE(clientAuthAsk.organization): %S is the Organization of the
+# server cert.
+clientAuthAsk.organization=Tổ chức: "%S"
+# LOCALIZATION NOTE(clientAuthAsk.issuer): %S is the Organization of the
+# issuer cert of the server cert.
+clientAuthAsk.issuer=Được cấp dưới: "%S"
+# LOCALIZATION NOTE(clientAuthAsk.issuedTo): %1$S is the Distinguished Name of
+# the currently selected client cert, such as "CN=John Doe,OU=Example" (without
+# quotes).
+clientAuthAsk.issuedTo=Được cấp cho: %1$S
+# LOCALIZATION NOTE(clientAuthAsk.serial): %1$S is the serial number of the
+# selected cert in AA:BB:CC hex format.
+clientAuthAsk.serial=Số seri: %1$S
+# LOCALIZATION NOTE(clientAuthAsk.validityPeriod):
+# %1$S is the already localized notBefore date of the selected cert.
+# %2$S is the already localized notAfter date of the selected cert.
+clientAuthAsk.validityPeriod=Hợp lệ từ %1$S đến %2$S
+# LOCALIZATION NOTE(clientAuthAsk.keyUsages): %1$S is a comma separated list of
+# already localized key usages the selected cert is valid for.
+clientAuthAsk.keyUsages=Sử dụng khóa: %1$S
+# LOCALIZATION NOTE(clientAuthAsk.emailAddresses): %1$S is a comma separated
+# list of e-mail addresses the selected cert is valid for.
+clientAuthAsk.emailAddresses=Địa chỉ thư điện tử: %1$S
+# LOCALIZATION NOTE(clientAuthAsk.issuedBy): %1$S is the Distinguished Name of
+# the cert which issued the selected cert.
+clientAuthAsk.issuedBy=Được cấp bởi: %1$S
+# LOCALIZATION NOTE(clientAuthAsk.storedOn): %1$S is the name of the PKCS #11
+# token the selected cert is stored on.
+clientAuthAsk.storedOn=Lưu trữ trên: %1$S
+clientAuthAsk.viewCert.label=Xem
+
+certmgr.title=Chi tiết chứng chỉ
+# These strings are stolen from security/manager/locales/en-US/chrome/pippki/certManager.dtd
+certmgr.subjectinfo.label=Cấp cho
+certmgr.issuerinfo.label=Cấp bởi
+certmgr.periodofvalidity.label=Thời gian hiệu lực
+certmgr.fingerprints.label=Vân tay
+certdetail.cn=Tên chung (CN): %1$S
+certdetail.o=Tổ chức (O): %1$S
+certdetail.ou=Đơn vị của tổ chức (OU): %1$S
+# LOCALIZATION NOTE(certdetail.serialnumber): %1$S is the serial number of the
+# cert being viewed in AA:BB:CC hex format.
+certdetail.serialnumber=Số sê-ri: %1$S
+# LOCALIZATION NOTE(certdetail.sha256fingerprint): %1$S is the SHA-256
+# Fingerprint of the cert being viewed in AA:BB:CC hex format.
+certdetail.sha256fingerprint=Vân tay SHA-256: %1$S
+# LOCALIZATION NOTE(certdetail.sha1fingerprint): %1$S is the SHA-1 Fingerprint
+# of the cert being viewed in AA:BB:CC hex format.
+certdetail.sha1fingerprint=Vân tay SHA1: %1$S
+# LOCALIZATION NOTE(certdetail.notBefore): %1$S is the already localized
+# notBefore date of the cert being viewed.
+certdetail.notBefore=Bắt đầu vào: %1$S
+# LOCALIZATION NOTE(certdetail.notAfter): %1$S is the already localized notAfter
+# date of the cert being viewed.
+certdetail.notAfter=Hết hạn vào: %1$S
diff --git a/l10n-vi/mobile/android/chrome/sync.properties b/l10n-vi/mobile/android/chrome/sync.properties
new file mode 100644
index 0000000000..de904f43ed
--- /dev/null
+++ b/l10n-vi/mobile/android/chrome/sync.properties
@@ -0,0 +1,12 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Mobile Sync
+
+# %S is the date and time at which the last sync successfully completed
+lastSync2.label=Lần đồng bộ cuối: %S
+
+# %S is the username logged in
+account.label=Tài khoản: %S
+
diff --git a/l10n-vi/mobile/android/chrome/webcompatReporter.properties b/l10n-vi/mobile/android/chrome/webcompatReporter.properties
new file mode 100644
index 0000000000..cda3ff8e02
--- /dev/null
+++ b/l10n-vi/mobile/android/chrome/webcompatReporter.properties
@@ -0,0 +1,12 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (webcompat.menu.name): A "site issue" is a bug, display,
+# or functionality problem with a webpage in the browser.
+webcompat.menu.name=Báo cáo vấn đề về trang
+
+# LOCALIZATION NOTE (webcompat.reportDesktopMode.message): A " site issue" is a
+# bug, display, or functionality problem with a webpage in the browser.
+webcompat.reportDesktopMode.message=Báo cáo vấn đề về trang?
+webcompat.reportDesktopModeYes.label=Báo cáo
diff --git a/l10n-vi/mobile/android/defines.inc b/l10n-vi/mobile/android/defines.inc
new file mode 100644
index 0000000000..48fcae60a5
--- /dev/null
+++ b/l10n-vi/mobile/android/defines.inc
@@ -0,0 +1,14 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#filter emptyLines
+
+#define MOZ_LANGPACK_CREATOR vi.mozdev.org
+
+# If non-English locales wish to credit multiple contributors, uncomment this
+
+# variable definition and use the format specified.
+
+#define MOZ_LANGPACK_CONTRIBUTORS <em:contributor>Nguyễn Mạnh Hùng</em:contributor> <em:contributor>Nguyễn Xuân Minh</em:contributor> <em:contributor>Huỳnh Hải Đăng</em:contributor> <em:contributor>Bùi Việt Khoa</em:contributor> <em:contributor>Trần Nguyễn Sơn</em:contributor>
+
+#unfilter emptyLines
diff --git a/l10n-vi/mobile/android/mobile-l10n.js b/l10n-vi/mobile/android/mobile-l10n.js
new file mode 100644
index 0000000000..b410ad9aef
--- /dev/null
+++ b/l10n-vi/mobile/android/mobile-l10n.js
@@ -0,0 +1,6 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#filter substitution
+
diff --git a/l10n-vi/mobile/chrome/region.properties b/l10n-vi/mobile/chrome/region.properties
new file mode 100644
index 0000000000..7204fdac3d
--- /dev/null
+++ b/l10n-vi/mobile/chrome/region.properties
@@ -0,0 +1,31 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at https://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE: REVIEW_REQUIRED
+# Please do not commit any changes to this file without a review from the
+# l10n-drivers team (this includes en-US). In order to get one, please file
+# a bug, add the "productization" keyword and CC l10n@mozilla.com.
+
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Increment this number when anything gets changed in the list below. This will
+# cause Firefox to re-read these prefs and inject any new handlers into the
+# profile database. Note that "new" is defined as "has a different URL"; this
+# means that it's not possible to update the name of existing handler, so don't
+# make any spelling errors here.
+gecko.handlerService.defaultHandlersVersion=3
+
+# The default set of protocol handlers for mailto:
+gecko.handlerService.schemes.mailto.0.name=Yahoo! Mail
+gecko.handlerService.schemes.mailto.0.uriTemplate=https://compose.mail.yahoo.com/?To=%s
+gecko.handlerService.schemes.mailto.1.name=Gmail
+gecko.handlerService.schemes.mailto.1.uriTemplate=https://mail.google.com/mail/?extsrc=mailto&url=%s
+
+# This is the default set of web based feed handlers shown in the reader
+# selection UI
+browser.contentHandlers.types.0.title=My Yahoo!
+browser.contentHandlers.types.0.uri=https://add.my.yahoo.com/rss?url=%s
+
diff --git a/l10n-vi/mobile/overrides/appstrings.properties b/l10n-vi/mobile/overrides/appstrings.properties
new file mode 100644
index 0000000000..e1f3d57857
--- /dev/null
+++ b/l10n-vi/mobile/overrides/appstrings.properties
@@ -0,0 +1,41 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# BEFORE EDITING THIS FILE, PLEASE NOTE:
+# These strings are only here to support shipping Fennec ESR.
+# They are unused in GeckoView, so please don't make any changes.
+
+malformedURI2=Đường dẫn URL không đúng và không thể mở được.
+fileNotFound=Firefox không thể tìm thấy tập tin tại %S.
+fileAccessDenied=Tập tin %S không thể đọc được.
+dnsNotFound2=Firefox không thể tìm thấy máy chủ tại %S.
+unknownProtocolFound=Firefox không biết cách mở địa chỉ này, vì một trong những giao thức (%S) sau không được liên kết với bất kỳ chương trình nào hoặc không được phép trong trường hợp này.
+connectionFailure=Firefox không thể tạo kết nối tới máy chủ tại %S.
+netInterrupt=Kết nối tới %S bị gián đoạn khi đang tải trang.
+netTimeout=Máy chủ tại %S phản hồi quá lâu.
+redirectLoop=Firefox phát hiện máy chủ đang chuyển hướng địa chỉ yêu cầu theo một cách mà sẽ chẳng bao giờ hoàn tất.
+## LOCALIZATION NOTE (confirmRepostPrompt): In this item, don't translate "%S"
+confirmRepostPrompt=Để hiển thị trang này, %S phải gửi những thông tin làm lặp lại bất kì hành động nào (như là tìm kiếm hoặc xác nhận giao dịch) đã thực hiện trước đó.
+resendButton.label=Gửi lại
+unknownSocketType=Firefox không biết liên lạc với máy chủ như thế nào.
+netReset=Kết nối tới máy chủ đã bị khởi tạo lại trong khi đang tải trang.
+notCached=Tài liệu này không còn hiện hữu.
+netOffline=Firefox hiện đang ở chế độ ngoại tuyến và không thể duyệt Web.
+isprinting=Tài liệu không thể chỉnh sửa trong khi đang In hoặc Xem Trước.
+deniedPortAccess=Địa chỉ này dùng một cổng mạng vốn thường được dùng cho mục đích khác hơn là duyệt Web. Firefox đã hủy bỏ yêu cầu này để bảo vệ bạn.
+proxyResolveFailure=Firefox đã được cấu hình sử dụng máy chủ proxy, nhưng không thể tìm thấy.
+proxyConnectFailure=Firefox đã được cấu hình để sử dụng máy chủ proxy, nhưng proxy đang từ chối kết nối.
+contentEncodingError=Trang bạn muốn xem không thể hiển thị vì nó dùng một dạng thức nén bất hợp lệ hoặc không được hỗ trợ.
+unsafeContentType=Trang bạn muốn xem không thể hiển thị vì nó chứa một kiểu tập tin không an toàn. Vui lòng liên hệ người quản lí trang web để báo họ vấn đề này.
+malwareBlocked=Trang web tại %S bị báo cáo là trang web ác ý và đã bị chặn dựa trên tùy chỉnh bảo mật của bạn.
+harmfulBlocked=Trang web %S được báo cáo là một trang web có khả năng gây hại và đã bị chặn dựa trên cấu hình bảo mật của bạn.
+deceptiveBlocked=Trang web tại %S này đã được báo cáo là trang lừa đảo và đã bị chặn dựa trên cấu hình bảo mật của bạn.
+unwantedBlocked=Trang web tại %S bị báo cáo là có cài đặt phần mềm không mong muốn và đã bị chặn dựa trên tùy chỉnh bảo mật của bạn.
+cspBlocked=Trang này có một chính sách bảo mật nội dung mà nó không được cho phép tải theo cách này.
+corruptedContentErrorv2=Trang web tại %S đã có một vi phạm trong giao thức mạng mà không thể sửa chữa được.
+remoteXUL=Trang này sử dụng một kỹ thuật không được hỗ trợ và không còn có sẵn mặc định trong Firefox.
+sslv3Used=Firefox không thể đảm bảo an toàn dữ liệu cho bạn trên %S vì nó sử dụng SSLv3, một giao thức bảo mật không an toàn.
+weakCryptoUsed=Chủ sở hữu của %S đã cấu hình trang web của họ không đúng. Để bảo vệ thông tin của bạn không bị trộm cắp, Firefox đã ngừng kết nối đến trang web này.
+inadequateSecurityError=Trang web đã cố gắng giao tiếp ở mức độ bảo mật thấp.
+networkProtocolError=Firefox đã trải qua một vi phạm giao thức mạng mà không thể sửa chữa được.
diff --git a/l10n-vi/mobile/overrides/netError.dtd b/l10n-vi/mobile/overrides/netError.dtd
new file mode 100644
index 0000000000..e26a31daa3
--- /dev/null
+++ b/l10n-vi/mobile/overrides/netError.dtd
@@ -0,0 +1,158 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd">
+%brandDTD;
+
+<!ENTITY loadError.label "Gặp vấn đề khi tải trang">
+<!ENTITY retry.label "Thử lại">
+
+<!-- Specific error messages -->
+
+<!ENTITY connectionFailure.title "Không thể kết nối">
+<!ENTITY connectionFailure.longDesc2 "&sharedLongDesc3;">
+
+<!ENTITY deniedPortAccess.title "Địa chỉ này đã bị chặn">
+<!ENTITY deniedPortAccess.longDesc "">
+
+<!ENTITY dnsNotFound.title "Không tìm thấy máy chủ">
+<!-- LOCALIZATION NOTE (dnsNotFound.longDesc4) This string contains markup including widgets for searching
+ or enabling wifi connections. The text inside tags should be localized. Do not change the ids. -->
+<!ENTITY dnsNotFound.longDesc4 "<ul>
+ <li>Kiểm tra xem địa chỉ bạn nhập có lỗi không, ví dụ như
+ <strong>ww</strong>.example.com thay vì
+ <strong>www</strong>.example.com</li>
+ <div id='searchbox'>
+ <input id='searchtext' type='search'></input>
+ <button id='searchbutton'>Tìm kiếm</button>
+ </div>
+ <li>Nếu bạn không thể tải bất kỳ trang nào, hãy kiểm tra dữ liệu trên thiết bị hoặc kết nối Wi-Fi của bạn.
+ <button id='wifi'>Mở Wi-Fi</button>
+ </li>
+</ul>
+">
+
+<!ENTITY fileNotFound.title "Không tìm thấy tập tin">
+<!ENTITY fileNotFound.longDesc "<ul> <li>Kiểm tra tên xem có lỗi gõ HOA-thường hay lỗi nào khác không.</li> <li>Kiểm tra xem tập tin có bị chuyển, đổi tên hay bị xóa không.</li> </ul>">
+
+<!ENTITY fileAccessDenied.title "Truy cập tập tin đã bị từ chối">
+<!ENTITY fileAccessDenied.longDesc "<ul> <li>Nó có thể đã được gỡ bỏ, di chuyển, hoặc quyền truy cập tập tin có thể đã bị từ chối.</li> </ul>">
+
+<!ENTITY generic.title "Ôi không">
+<!ENTITY generic.longDesc "<p>&brandShortName; không thể tải trang này vì nào một vài lý do đó.</p>‌">
+
+<!ENTITY malformedURI.title "Địa chỉ không hợp lệ">
+<!-- LOCALIZATION NOTE (malformedURI.longDesc2) This string contains markup including widgets for searching
+ or enabling wifi connections. The text inside the tags should be localized. Do not touch the ids. -->
+<!ENTITY malformedURI.longDesc2 " <ul>
+ <li>Địa chỉ web thường được viết như
+ <strong>http://www.example.com/</strong></li>
+ <div id='searchbox'>
+ <input id='searchtext' type='search'></input>
+ <button id='searchbutton'>Tìm kiếm</button>
+ </div>
+ <li>Hãy chắc chắn rằng bạn đang sử dụng dấu gạch chéo (tức là
+ <strong>/</strong>).</li> </ul>">
+
+<!ENTITY netInterrupt.title "Kết nối bị ngắt">
+<!ENTITY netInterrupt.longDesc2 "&sharedLongDesc3;">
+
+<!ENTITY notCached.title "Tài liệu đã hết hạn">
+<!ENTITY notCached.longDesc "<p>Các tài liệu được yêu cầu không có sẵn trong bộ nhớ tạm của &brandShortName;.</p><ul><li>Để bảo mật, &brandShortName; không tự động yêu cầu lại tài liệu nhạy cảm.</li><li>Bấm thử lần nữa để yêu cầu lại tài liệu từ trang web.</li></ul>">
+
+<!ENTITY netOffline.title "Chế độ ngoại tuyến">
+
+<!ENTITY contentEncodingError.title "Lỗi Bảng Mã">
+<!ENTITY contentEncodingError.longDesc "<ul> <li>Vui lòng liên hệ với chủ trang web để báo họ vấn đề này.</li> </ul>">
+
+<!ENTITY unsafeContentType.title "Kiểu tập tin Không an toàn">
+<!ENTITY unsafeContentType.longDesc "<ul> <li>Vui lòng liên hệ với chủ trang web để báo họ vấn đề này.</li> </ul>">
+
+<!ENTITY netReset.title "Kết nối bị khởi tạo lại">
+<!ENTITY netReset.longDesc2 "&sharedLongDesc3;">
+
+<!ENTITY netTimeout.title "Kết nối bị hết thời gian">
+<!ENTITY netTimeout.longDesc2 "&sharedLongDesc3;">
+
+<!ENTITY unknownProtocolFound.title "Địa chỉ không hiểu được">
+<!ENTITY unknownProtocolFound.longDesc "<ul> <li>Có lẽ bạn cần phải cài đặt phần mềm khác để mở địa chỉ này.</li> </ul>">
+
+<!ENTITY proxyConnectFailure.title "Máy chủ proxy từ chối kết nối">
+<!ENTITY proxyConnectFailure.longDesc "<ul> <li>Kiểm tra thiết lập proxy để chắc chắn rằng mọi thứ đều đúng.</li> <li>Liên hệ với quản trị mạng của bạn để chắc chắn rằng máy chủ proxy vẫn đang hoạt động.</li> </ul>">
+
+<!ENTITY proxyResolveFailure.title "Không thể tìm thấy máy chủ proxy">
+<!-- LOCALIZATION NOTE (proxyResolveFailure.longDesc3) This string contains markup including widgets for enabling wifi connections.
+ The text inside the tags should be localized. Do not touch the ids. -->
+<!ENTITY proxyResolveFailure.longDesc3 "<ul> <li>Kiểm tra thiết lập proxy để chắc chắn rằng chúng đã hoạt động.</li> <li>Kiểm tra để chắc chắn rằng thiết bị có một kết nối dữ liệu mạng hoặc Wi-Fi. <button id='wifi'>Bật Wi-Fi</button> </li> </ul>">
+
+<!ENTITY redirectLoop.title "Trang không chuyển hướng đúng cách">
+<!ENTITY redirectLoop.longDesc "<ul> <li>Vấn đề này thỉnh thoảng có thể xảy ra do vô hiệu hóa hoặc từ chối cookie.</li> </ul>">
+
+<!ENTITY unknownSocketType.title "Phản hồi không mong muốn từ máy chủ">
+<!ENTITY unknownSocketType.longDesc "<ul> <li>Kiểm tra để chắc chắn rằng hệ thống của bạn có Trình quản lí Bảo mật Cá nhân.</li> <li>Điều này có thể là do cấu hình không chuẩn trên máy chủ.</li> </ul>">
+
+<!ENTITY nssFailure2.title "Kết nối An toàn bị Thất bại">
+<!ENTITY nssFailure2.longDesc2 "
+<ul>
+ <li>Trang bạn đang cố gắng xem không thể hiển thị vì không được kiểm chứng tính xác thực của các dữ liệu đã nhận.</li>
+ <li>Xin vui lòng liên hệ với chủ sở hữu trang web để thông báo cho họ về vấn đề này.</li>
+</ul>
+">
+
+<!ENTITY nssBadCert.title "Kết nối An toàn bị Thất bại">
+<!ENTITY nssBadCert.longDesc2 "
+<ul>
+ <li>Điều này có thể là một vấn đề với cấu hình của máy chủ, hoặc có thể ai đó đang cố gắng mạo danh máy chủ.</li>
+ <li>Nếu bạn đã kết nối với máy chủ này thành công trong quá khứ, các lỗi có thể là tạm thời, và bạn có thể thử lại sau.</li>
+</ul>
+">
+
+<!-- LOCALIZATION NOTE (sharedLongDesc3) This string contains markup including widgets for enabling wifi connections.
+ The text inside the tags should be localized. Do not touch the ids. -->
+<!ENTITY sharedLongDesc3 "
+<ul>
+ <li>Các trang web có thể tạm thời không sẵn sàng hoặc quá tải. Thử lại sau ít phút.</li>
+ <li>Nếu bạn không thể tải trang bất kỳ, hãy kiểm tra dữ liệu di động hoặc kết nối mạng không dây.
+ <button id='wifi'>Kích hoạt mạng không dây</button>
+ </li>
+</ul>
+">
+
+<!ENTITY cspBlocked.title "Bị chặn bởi Chính sách Bảo vệ Nội dung">
+<!ENTITY cspBlocked.longDesc "<p>&brandShortName; không tải trang này vì nó có một chính sách bảo vệ nội dung không cho phép việc tải theo cách này.</p>">
+
+<!ENTITY corruptedContentErrorv2.title "Lỗi nội dung không toàn vẹn">
+<!ENTITY corruptedContentErrorv2.longDesc "<p>Trang mà bạn đang cố xem không thể hiển thị được vì một lỗi trong truyền tải dữ liệu.</p><ul><li>Vui lòng liên hệ chủ trang web để báo họ về vấn đề này.</li></ul>">
+
+<!ENTITY securityOverride.linkText "Hoặc bạn có thể thêm một ngoại lệ…">
+<!ENTITY securityOverride.getMeOutOfHereButton "Đưa tôi ra khỏi đây!">
+<!ENTITY securityOverride.exceptionButtonLabel "Thêm Ngoại Lệ…">
+
+<!-- LOCALIZATION NOTE (securityOverride.warningContent) - Do not translate the
+contents of the <xul:button> tags. The only language content is the label= field,
+which uses strings already defined above. The button is included here (instead of
+netError.xhtml) because it exposes functionality specific to firefox. -->
+
+<!ENTITY securityOverride.warningContent "<p>Bạn không nên thêm ngoại lệ nếu bạn đang dùng một kết nối mạng mà bạn không tin tưởng hoàn toàn hoặc bạn không quen thấy cảnh báo cho máy chủ này.</p> <button id='getMeOutOfHereButton'>&securityOverride.getMeOutOfHereButton;</button> <button id='exceptionDialogButton'>&securityOverride.exceptionButtonLabel;</button>">
+
+<!ENTITY remoteXUL.title "XUL từ xa">
+<!ENTITY remoteXUL.longDesc "<p><ul><li>Vui lòng liên hệ với chủ trang web để báo họ vấn đề này.</li></ul></p>">
+
+<!ENTITY sslv3Used.title "Không thể kết nối an toàn">
+<!-- LOCALIZATION NOTE (sslv3Used.longDesc) - Do not translate
+ "SSL_ERROR_UNSUPPORTED_VERSION". -->
+<!ENTITY sslv3Used.longDesc "Thông tin bổ sung: SSL_ERROR_UNSUPPORTED_VERSION">
+
+<!ENTITY weakCryptoUsed.title "Kết nối của bạn không an toàn">
+<!-- LOCALIZATION NOTE (weakCryptoUsed.longDesc) - Do not translate
+ "SSL_ERROR_NO_CYPHER_OVERLAP". -->
+<!ENTITY weakCryptoUsed.longDesc "Thông tin bổ sung: SSL_ERROR_NO_CYPHER_OVERLAP">
+
+<!ENTITY inadequateSecurityError.title "Kết nối của bạn không an toàn">
+<!-- LOCALIZATION NOTE (inadequateSecurityError.longDesc) - Do not translate
+ "NS_ERROR_NET_INADEQUATE_SECURITY". -->
+<!ENTITY inadequateSecurityError.longDesc "<p><span class='hostname'></span> sử dụng công nghệ bảo mật là lỗi thời và dễ bị tấn công. Một kẻ tấn công có thể dễ dàng tiết lộ thông tin mà bạn nghĩ là an toàn. Quản trị trang web sẽ cần phải sửa chữa các máy chủ đầu tiên trước khi bạn có thể truy cập vào các trang web.</p><p>Mã lỗi: NS_ERROR_NET_INADEQUATE_SECURITY</p>">
+
+<!ENTITY networkProtocolError.title "Lỗi giao thức mạng">
+<!ENTITY networkProtocolError.longDesc "<p>Trang bạn đang cố xem không thể hiển thị vì lỗi trong giao thức mạng đã được phát hiện.</p><ul><li>Vui lòng liên hệ với chủ sở hữu trang web để thông báo cho họ về sự cố này.</li></ul>">
diff --git a/l10n-vi/netwerk/necko.properties b/l10n-vi/netwerk/necko.properties
new file mode 100644
index 0000000000..5cd9fd5f37
--- /dev/null
+++ b/l10n-vi/netwerk/necko.properties
@@ -0,0 +1,85 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ResolvingHost=Looking up
+#ConnectedTo=Connected to
+#ConnectingTo=Connecting to
+#SendingRequestTo=Sending request to
+#TransferringDataFrom=Transferring data from
+
+3=Đang giải quyết máy chủ %1$S…
+4=Đã kết nối tới %1$S…
+5=Đang gửi yêu cầu đến %1$S…
+6=Đang tải dữ liệu từ %1$S…
+7=Đang kết nối tới %1$S…
+8=Đã đọc %1$S
+9=Đã ghi %1$S
+10=Đang đợi %1$S…
+11=Đã giải quyết máy chủ %1$S…
+12=Thực hiện giao thức TLS tới %1$S…
+13=Giao thức TLS đã kết thúc tới %1$S…
+
+27=Đang bắt đầu giao dịch FTP…
+28=Giao dịch FTP hoàn tất
+
+RepostFormData=Trang web này đang chuyển hướng sang một địa chỉ mới. Bạn có muốn gửi lại các thông tin đã nhập sang địa chỉ mới không?
+
+# Directory listing strings
+DirTitle=Chỉ số của %1$S
+DirGoUp=Chuyển lên thư mục cha
+ShowHidden=Hiện các đối tượng ẩn
+DirColName=Tên
+DirColSize=Kích thước
+DirColMTime=Sửa đổi lần cuối
+DirFileLabel=Tập tin:
+
+SuperfluousAuth=Bạn sắp đăng nhập vào trang "%1$S" với tên người dùng "%2$S", nhưng trang này không yêu cầu xác minh. Đây có thể là một sự lừa đảo.\n\nCó phải "%1$S" là trang bạn muốn vào?
+AutomaticAuth=Bạn sắp đăng nhập vào trang "%1$S" với tên người dùng "%2$S".
+
+TrackerUriBlocked=Tài nguyên tại “%1$S” đã bị chặn do chặn nội dung được bật.
+UnsafeUriBlocked=Tài nguyên tại “%1$S” đã bị chặn bởi chế độ duyệt web an toàn.
+CookieBlockedByPermission=Yêu cầu truy cập cookie hoặc bộ nhớ trên “%1$S” bị chặn vì quyền cookie tùy chỉnh.
+CookieBlockedTracker=Yêu cầu truy cập cookie hoặc bộ nhớ trên “%1$S” bị chặn vì nó đến từ trình theo dõi và chặn nội dung được bật.
+CookieBlockedAll=Yêu cầu truy cập cookie hoặc bộ nhớ trên “%1$S” bị chặn vì chúng tôi đang chặn tất cả các yêu cầu truy cập lưu trữ.
+CookieBlockedForeign=Yêu cầu truy cập cookie hoặc bộ nhớ trên “%1$S” đã bị chặn vì chúng tôi đang chặn tất cả yêu cầu truy cập bộ nhớ của bên thứ ba và chặn nội dung được bật.
+
+# As part of dynamic first-party isolation, third-party resources might be limited to "partitioned" storage access that is separate from the first-party context.
+# This allows e.g. cookies to still be set, and prevents tracking without totally blocking storage access. This message is shown in the web console when this happens
+# to inform developers that their storage is isolated.
+
+# LOCALIZATION NOTE (CookieAllowedForOriginByStorageAccessAPI): %2$S and %1$S are URLs.
+# LOCALIZATION NOTE (CookieAllowedForOriginByHeuristic): %2$S and %1$S are URLs.
+# LOCALIZATION NOTE (CookieAllowedForFpiByHeuristic): %2$S and %1$S are URLs.
+
+# LOCALIZATION NOTE(CookieRejectedNonRequiresSecure): %1$S is the cookie name. Do not localize "sameSite=none" and "secure".
+CookieRejectedNonRequiresSecure=Cookie “%1$S” bị từ chối vì nó có thuộc tính “sameSite=none” nhưng lại thiếu thuộc tính “secure”.
+# LOCALIZATION NOTE(CookieRejectedNonRequiresSecureForBeta): %1$S is the cookie name. %2$S is a URL. Do not localize "sameSite", "sameSite=none" and "secure".
+CookieRejectedNonRequiresSecureForBeta=Cookie “%1$S” sẽ sớm bị từ chối vì nó có thuộc tính “sameSite” được đặt thành “none” hay một giá trị không hợp lệ, không có thuộc tính “secure”. Để biết thêm về thuộc tính của “sameSite“, hãy đọc %2$S
+# LOCALIZATION NOTE(CookieLaxForced): %1$S is the cookie name. Do not localize "sameSite", "lax" and "sameSite=lax".
+CookieLaxForced=Cookie “%1$S” có thuộc tính “sameSite” được đặt thành “lax” vì nó thiếu một thuộc tính của “sameSite” và “sameSite=lax” là giá trị mặc định của thuộc tính này.
+# LOCALIZATION NOTE(CookieLaxForcedForBeta): %1$S is the cookie name. %2$S is a URL. Do not localize "sameSite", "lax" and "sameSite=lax", "sameSite=none".
+# LOCALIZATION NOTE: %1$S is cookie name. Do not localize "sameSite", "lax", "strict" and "none"
+CookieSameSiteValueInvalid=Giá trị không hợp lệ của “sameSite“ của cookie “%1$S”. Các giá trị được hỗ trợ là: “lax“, “strict“, “none“.
+
+# LOCALIZATION NOTE(CookieRejectedNonRequiresSecure2): %1$S is the cookie name. Do not localize "SameSite=None" and "secure".
+# LOCALIZATION NOTE(CookieRejectedNonRequiresSecureForBeta2): %1$S is the cookie name. %2$S is a URL. Do not localize "SameSite", "SameSite=None" and "secure".
+# LOCALIZATION NOTE(CookieLaxForced2): %1$S is the cookie name. Do not localize "SameSite", "Lax" and "SameSite=Lax".
+# LOCALIZATION NOTE(CookieLaxForcedForBeta2): %1$S is the cookie name. %2$S is a URL. Do not localize "SameSite", "Lax" and "SameSite=Lax", "SameSite=None".
+# LOCALIZATION NOTE(CookieSameSiteValueInvalid2): %1$S is cookie name. Do not localize "SameSite", "Lax", "Strict" and "None"
+# LOCALIZATION NOTE (CookieOversize): %1$S is the cookie name. %2$S is the number of bytes. "B" means bytes.
+# LOCALIZATION NOTE (CookiePathOversize): %1$S is the cookie name. %2$S is the number of bytes. "B" means bytes.
+# LOCALIZATION NOTE (CookieSchemefulRejectForBeta): %1$S is the cookie name. %2$S is the hostname.
+# LOCALIZATION NOTE (CookieSchemefulReject): %1$S is the cookie name. %2$S is the hostname.
+# LOCALIZATION NOTE (CookieRejectedByPermissionManager): %1$S is the cookie response header.
+# LOCALIZATION NOTE (CookieRejectedInvalidCharName): %1$S is the cookie name.
+# LOCALIZATION NOTE (CookieRejectedInvalidDomain): %1$S is the cookie name.
+# LOCALIZATION NOTE (CookieRejectedInvalidPrefix): %1$S is the cookie name.
+# LOCALIZATION NOTE (CookieRejectedInvalidCharValue): %1$S is the cookie name.
+# LOCALIZATION NOTE (CookieRejectedHttpOnlyButFromScript): %1$S is the cookie name.
+# LOCALIZATION NOTE (CookieRejectedSecureButHttp): %1$S is the cookie name.
+# LOCALIZATION NOTE (CookieRejectedThirdParty): %1$S is the cookie response header.
+# LOCALIZATION NOTE (CookieRejectedNonsecureOverSecure): %1$S is the cookie name.
+# LOCALIZATION NOTE (CookieRejectedExpired): %1$S is the cookie name.
+# LOCALIZATION NOTE (CookieRejectedForNonSameSiteness): %1$S is the cookie name.
+CookieRejectedForNonSameSiteness=Cookie “%1$S” đã bị từ chối vì nó nằm trong ngữ cảnh nhiều trang web và “SameSite” của nó là “Lax” hoặc “Strict”.
diff --git a/l10n-vi/other-licenses/branding/sunbird/brand.dtd b/l10n-vi/other-licenses/branding/sunbird/brand.dtd
new file mode 100644
index 0000000000..ff7c1b2413
--- /dev/null
+++ b/l10n-vi/other-licenses/branding/sunbird/brand.dtd
@@ -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/. -->
+
+<!ENTITY brandShortName "Sunbird">
+<!ENTITY brandFullName "Mozilla Sunbird">
diff --git a/l10n-vi/other-licenses/branding/sunbird/brand.properties b/l10n-vi/other-licenses/branding/sunbird/brand.properties
new file mode 100644
index 0000000000..fcc403040f
--- /dev/null
+++ b/l10n-vi/other-licenses/branding/sunbird/brand.properties
@@ -0,0 +1,20 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+brandShortName=Sunbird
+brandFullName=Mozilla Sunbird
+vendorShortName=Mozilla
+
+# LOCALIZATION NOTE (releaseNotesURL):
+# For nightly builds, direct the user to an appropriate, yet non-version
+# specific project site.
+#
+# %s is replaced by __MOZ_APP_VERSION__
+#
+# example:
+# __MOZ_APP_VERSION__: 0.4
+# releaseNotesUrl: http://www.mozilla.foo/sunbird%S.html
+# result: http://www.mozilla.foo/sunbird0.4.html
+#
+releaseNotesURL=http://www.mozilla.org/projects/calendar/releases/sunbird%S.html
diff --git a/l10n-vi/security/manager/chrome/pipnss/nsserrors.properties b/l10n-vi/security/manager/chrome/pipnss/nsserrors.properties
new file mode 100644
index 0000000000..3644a3da00
--- /dev/null
+++ b/l10n-vi/security/manager/chrome/pipnss/nsserrors.properties
@@ -0,0 +1,331 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+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 chỉ 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 chỉ 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 chỉ 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 chỉ.
+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 chỉ 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 chỉ của bạn.
+SSL_ERROR_REVOKED_CERT_ALERT=SSL máy ngang hàng từ chối vì cho rằng chứng chỉ 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 chỉ 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 chỉ 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 yêu cầu chứng chỉ sai định dạng.
+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 xác minh chứng chỉ sai định dạng.
+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 chỉ 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 chỉ 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. \u0020
+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 chỉ 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 chỉ 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 chỉ 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 chỉ: 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 chỉ 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ật hóa hoặc kí: bạn chưa có chứng chỉ 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 chỉ 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 chỉ.
+SEC_ERROR_IMPORTING_CERTIFICATES=Lỗi khi đang cố nhập chứng chỉ.
+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 chỉ là không phù hợp cho thao tác đã làm.
+SEC_ERROR_INADEQUATE_CERT_TYPE=Kiểu chứng chỉ không được chấp thuận trong ứng dụng.
+SEC_ERROR_CERT_ADDR_MISMATCH=Địa chỉ trong phần kí chứng chỉ 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 chỉ 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 chỉ đã được dùng.
+SEC_ERROR_NOT_FORTEZZA_ISSUER=Chuỗi FORTEZZA ngang hàng có một Chứng chỉ 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 chỉ này không được phép cấp phát chứng chỉ có tên như vậy.
+SEC_ERROR_KRL_NOT_YET_VALID=Danh sách thu hồi khóa cho chứng chỉ này chưa hợp lệ.
+SEC_ERROR_CRL_NOT_YET_VALID=Danh sách thu hồi chứng chỉ cho chứng chỉ này chưa hợp lệ.
+SEC_ERROR_UNKNOWN_CERT=Không tìm thấy chứng chỉ yêu cầu.
+SEC_ERROR_UNKNOWN_SIGNER=Không tìm thấy chứng chỉ của người kí.
+SEC_ERROR_CERT_BAD_ACCESS_LOCATION=Vị trí của máy chủ tình trạng chứng chỉ có định dạng bất 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 chỉ.
+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 chỉ 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 chỉ có serial/tên nhà cấp phát trùng với một chứng chỉ đã có, nhưng đó không phải là cùng một chứng chỉ.
+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 chỉ kí OCSP bất hợp lệ trong phản hồi OCSP.
+SEC_ERROR_REVOKED_CERTIFICATE_CRL=Chứng chỉ bị thu hồi trong danh sách thu hồi chứng chỉ 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 chỉ đã bị thu hồi.
+SEC_ERROR_CRL_INVALID_VERSION=Danh sách Thu hồi Chứng chỉ của nhà Cấp phát 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 chỉ V1 của nhà Cấp phát có phần gia hạn nghiêm trọng.
+SEC_ERROR_CRL_UNKNOWN_CRITICAL_EXTENSION=Danh sách Thu hồi Chứng chỉ V2 của nhà Cấp phát có phần gia hạn nghiêm trọng chưa 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=Chứng chỉ của phần phản hồi OCSP được cấu hình 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 kiểm định chứng chỉ bị 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 chỉ bị thất bại khi kiểm định chính sách
+SEC_ERROR_UNKNOWN_AIA_LOCATION_TYPE=Kiểu địa điểm chưa biết trong phần mở rộng AIA chứng chỉ
+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=Địa điểm truy cập thông tin xấu trong mở rộng chứng chỉ
+SEC_ERROR_LIBPKIX_INTERNAL=Lỗi nội bộ Libpkix xảy ra trong quá trình kiểm định chứng chỉ.
+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=Không rõ phương thức truy cập thông tin trong mở rộng chứng chỉ.
+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 chỉ được ký theo thuật toán ký đã bị hủy bỏ do 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 chỉ 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 chỉ. Đối với một chứng chỉ đượ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 chỉ 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 chỉ X.509 phiên bản 1 không được tin cậy đã được sử dụng để cấp chứng chỉ máy chủ. Chứng chỉ 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 chỉ khác.
+MOZILLA_PKIX_ERROR_NOT_YET_VALID_CERTIFICATE=Máy chủ xuất trình chứng chỉ chưa hợp lệ.
+MOZILLA_PKIX_ERROR_NOT_YET_VALID_ISSUER_CERTIFICATE=Chứng chỉ chưa hợp lệ đã được sử dụng để cấp chứng chỉ máy chủ.
+MOZILLA_PKIX_ERROR_SIGNATURE_ALGORITHM_MISMATCH=Thuật toán chữ ký trong trường chữ ký của chứng chỉ 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 chỉ được xác minh.
+MOZILLA_PKIX_ERROR_VALIDITY_TOO_LONG=Máy chủ xuất trình chứng chỉ 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 chỉ 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 chỉ với một tên phân biệt nhà phát hành trống.
+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 chỉ này.
+MOZILLA_PKIX_ERROR_SELF_SIGNED_CERT=Chứng chỉ này không đáng tin vì nó được tự kí.
diff --git a/l10n-vi/security/manager/chrome/pipnss/pipnss.properties b/l10n-vi/security/manager/chrome/pipnss/pipnss.properties
new file mode 100644
index 0000000000..0f7c509c63
--- /dev/null
+++ b/l10n-vi/security/manager/chrome/pipnss/pipnss.properties
@@ -0,0 +1,308 @@
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+CertPassPrompt=Hãy nhập mật khẩu chính cho %S.
+
+CertPassPromptDefault=Vui lòng nhập mật khẩu chính của bạn.
+
+CertPasswordPrompt=Vui lòng nhập mật khẩu cho token PKCS#11 %S.
+
+CertPasswordPromptDefault=Vui lòng nhập mật khẩu chính của bạn.
+
+# The following strings have special requirements: they must fit in a 32 or 64
+# bytes buffer after being encoded to UTF-8.
+#
+# It's possible to verify the length of a translation using the Browser Console
+# in Firefox and evaluating the following code:
+#
+# (new TextEncoder('utf-8').encode('YOURSTRING')).length
+#
+# Simply replace YOURSTRING with your translation.
+#
+# If it's not possible to produce an understandable translation within these
+# limits, keeping the English text is an acceptable workaround.
+
+# LOCALIZATION NOTE (RootCertModuleName): string limit is 64 bytes after
+# conversion to UTF-8.
+# length_limit = 64 bytes
+RootCertModuleName=Mô-đun gốc dựng sẵn
+# LOCALIZATION NOTE (ManufacturerID): string limit is 32 bytes after conversion
+# to UTF-8.
+# length_limit = 32 bytes
+ManufacturerID=Mozilla.org
+# LOCALIZATION NOTE (LibraryDescription): string limit is 32 bytes after
+# conversion to UTF-8.
+# length_limit = 32 bytes
+LibraryDescription=PSM Internal Crypto Services
+# LOCALIZATION NOTE (TokenDescription): string limit is 32 bytes after
+# conversion to UTF-8.
+# length_limit = 32 bytes
+TokenDescription=Generic Crypto Services
+# LOCALIZATION NOTE (PrivateTokenDescription): string limit is 32 bytes after
+# conversion to UTF-8.
+# length_limit = 32 bytes
+PrivateTokenDescription=Software Security Device
+# LOCALIZATION NOTE (SlotDescription): string limit is 64 bytes after conversion
+# to UTF-8.
+# length_limit = 64 bytes
+SlotDescription=PSM Internal Cryptographic Services
+# LOCALIZATION NOTE (PrivateSlotDescription): string limit is 64 bytes after
+# conversion to UTF-8.
+# length_limit = 64 bytes
+PrivateSlotDescription=Khóa cá nhân PSM
+# LOCALIZATION NOTE (Fips140TokenDescription): string limit is 32 bytes after
+# conversion to UTF-8.
+# length_limit = 32 bytes
+Fips140TokenDescription=Software Security Device (FIPS)
+# LOCALIZATION NOTE (Fips140SlotDescription): string limit is 64 bytes after
+# conversion to UTF-8.
+# length_limit = 64 bytes
+Fips140SlotDescription=Dịch vụ mã hóa FIPS 140, khóa và chứng chỉ mật mã
+
+# LOCALIZATION NOTE (nick_template): $1s is the common name from a cert (e.g. "Mozilla"), $2s is the CA name (e.g. VeriSign)
+nick_template=ID %1$s’s %2$s
+#These are the strings set for the ASN1 objects in a certificate.
+CertDumpCertificate=Chứng chỉ
+CertDumpVersion=Phiên bản
+# LOCALIZATION NOTE (CertDumpVersionValue): %S is a version number (e.g. "3" in "Version 3")
+CertDumpVersionValue=Phiên bản %S
+CertDumpSerialNo=Số sê-ri
+CertDumpMD2WithRSA=PKCS #1 MD2 với mã hóa RSA
+CertDumpMD5WithRSA=PKCS #1 MD5 với mã hóa RSA
+CertDumpSHA1WithRSA=PKCS #1 SHA-1 với mã hóa RSA
+CertDumpSHA256WithRSA=PKCS #1 SHA-256 với mã hóa RSA
+CertDumpSHA384WithRSA=PKCS #1 SHA-384 với mã hóa RSA
+CertDumpSHA512WithRSA=PKCS #1 SHA-512 với mã hóa RSA
+CertDumpDefOID=Nhận dạng đối tượng (%S)
+CertDumpIssuer=Người cấp
+CertDumpSubject=Chủ thể
+CertDumpAVACountry=C
+CertDumpAVAState=ST
+CertDumpAVALocality=L
+CertDumpAVAOrg=O
+CertDumpAVAOU=OU
+CertDumpAVACN=CN
+CertDumpUserID=UID
+CertDumpPK9Email=E
+CertDumpAVADN=DN
+CertDumpAVADC=DC
+CertDumpSurname=Họ
+CertDumpGivenName=Tên
+CertDumpValidity=Tính hiệu lực
+CertDumpNotBefore=Không hiệu lực trước
+CertDumpNotAfter=Không hiệu lực sau
+CertDumpSPKI=Thông tin khóa công khai
+CertDumpSPKIAlg=Thuật toán khóa công khai
+CertDumpAlgID=Định danh thuật toán
+CertDumpParams=Các tham số thuật toán
+CertDumpRSAEncr=Mã hóa PKCS #1 RSA
+CertDumpRSAPSSSignature=Chữ ký PKCS #1 RSASSA-PSS
+CertDumpRSATemplate=Bộ phận (%S bits):\n%S\nTiêu biểu (%S bits):\n%S
+CertDumpECTemplate=Kích thước Khóa: %S bits\nChiều dài thứ tự điểm cơ sở: %S bits\nGiá trị công cộng:\n%S
+CertDumpIssuerUniqueID=ID duy nhất của tổ chức phát hành
+CertDumpSubjPubKey=Khóa công khai của chủ thể
+CertDumpSubjectUniqueID=ID duy nhất của chủ thể
+CertDumpExtensions=Phần mở rộng
+CertDumpSubjectDirectoryAttr=Thuộc tính thư mục chứng chỉ chủ thể
+CertDumpSubjectKeyID=ID khóa chứng chỉ chủ thể
+CertDumpKeyUsage=Sử dụng khóa chứng chỉ
+CertDumpSubjectAltName=Tên thay thế của chủ thể chứng chỉ
+CertDumpIssuerAltName=Tên thay thế của nhà phát hành chứng chỉ
+CertDumpBasicConstraints=Ràng buộc cơ bản của chứng chỉ
+CertDumpNameConstraints=Tên chứng chỉ ràng buộc
+CertDumpCrlDistPoints=Điểm Phân phối CRL
+CertDumpCertPolicies=Chính sách chứng chỉ
+CertDumpPolicyMappings=Chứng chỉ chính sách ánh xạ
+CertDumpPolicyConstraints=Ràng buộc chính sách chứng chỉ
+CertDumpAuthKeyID=Nhận dạng khóa của nhà thẩm định chứng chỉ
+CertDumpExtKeyUsage=Sử dụng khóa mở rộng
+CertDumpAuthInfoAccess=Quyền truy cập thông tin
+CertDumpAnsiX9DsaSignature=Chữ kí ANSI X9.57 DSA
+CertDumpAnsiX9DsaSignatureWithSha1=Chữ kí ANSI X9.57 DSA với Phân loại SHA1
+CertDumpAnsiX962ECDsaSignatureWithSha1=Chữ kí ANSI X9.62 ECDSA với SHA1
+CertDumpAnsiX962ECDsaSignatureWithSha224=Chữ ký ANSI X9.62 ECDSA với SHA224
+CertDumpAnsiX962ECDsaSignatureWithSha256=Chữ ký ANSI X9.62 ECDSA với SHA256
+CertDumpAnsiX962ECDsaSignatureWithSha384=Chữ ký ANSI X9.62 ECDSA với SHA384
+CertDumpAnsiX962ECDsaSignatureWithSha512=Chữ ký ANSI X9.62 ECDSA với SHA512
+
+CertDumpKUSign=Đang kí
+CertDumpKUNonRep=Không từ chối
+CertDumpKUEnc=Mã hóa khóa
+CertDumpKUDEnc=Mã hóa dữ liệu
+CertDumpKUKA=Thỏa thuận khóa
+CertDumpKUCertSign=Người ký chứng chỉ
+CertDumpKUCRLSigner=Bên kí CRL
+CertDumpCritical=Nghiêm trọng
+CertDumpNonCritical=Không nghiêm trọng
+CertDumpSigAlg=Thuật toán chữ ký chứng chỉ
+CertDumpCertSig=Giá trị chữ kí chứng chỉ
+CertDumpExtensionFailure=Lỗi: Không thể xử lí phần mở rộng
+CertDumpIsCA=Là cơ quan cấp chứng chỉ
+CertDumpIsNotCA=Không phải là cơ quan cấp chứng chỉ
+CertDumpPathLen=Số lượng CA trung gian tối đa: %S
+CertDumpPathLenUnlimited=không giới hạn
+CertDumpEKU_1_3_6_1_5_5_7_3_1=Xác thực máy chủ web TLS
+CertDumpEKU_1_3_6_1_5_5_7_3_2=Xác thực máy khách web TLS
+CertDumpEKU_1_3_6_1_5_5_7_3_3=Ký mã
+CertDumpEKU_1_3_6_1_5_5_7_3_4=Bảo vệ email
+CertDumpEKU_1_3_6_1_5_5_7_3_8=Đóng dấu thời gian
+CertDumpEKU_1_3_6_1_5_5_7_3_9=Kí OCSP
+CertDumpEKU_1_3_6_1_4_1_311_2_1_21=Kí Mã Cá nhân Microsoft
+CertDumpEKU_1_3_6_1_4_1_311_2_1_22=Kí Mã Thương mại Microsoft
+CertDumpEKU_1_3_6_1_4_1_311_10_3_1=Kí Danh sách Tin tưởng Microsoft
+CertDumpEKU_1_3_6_1_4_1_311_10_3_2=Đóng dấu Thời gian Microsoft
+CertDumpEKU_1_3_6_1_4_1_311_10_3_3=Mã hóa Microsoft Server Gated
+CertDumpEKU_1_3_6_1_4_1_311_10_3_4=Hệ thống Tập tin Mật hóa Microsoft
+CertDumpEKU_1_3_6_1_4_1_311_10_3_4_1=Khôi phục Tập tin Microsoft
+CertDumpEKU_1_3_6_1_4_1_311_10_3_5=Kiểm định Trình điều khiển Phần cứng Microsoft Windows
+CertDumpEKU_1_3_6_1_4_1_311_10_3_10=Trực thuộc Đủ điều kiện Microsoft
+CertDumpEKU_1_3_6_1_4_1_311_10_3_11=Khôi phục Khóa Microsoft
+CertDumpEKU_1_3_6_1_4_1_311_10_3_12=Kí Tài liệu Microsoft
+CertDumpEKU_1_3_6_1_4_1_311_10_3_13=Kí Chu Kì Microsoft
+CertDumpEKU_1_3_6_1_4_1_311_20_2_2=Đăng nhập Thẻ Thông minh Microsoft
+CertDumpEKU_1_3_6_1_4_1_311_21_6=Tác nhân khôi phục khóa của Microsoft
+CertDumpMSCerttype=Tên Khuôn Chứng chỉ Microsoft
+CertDumpMSNTPrincipal=Tên Chính Microsoft
+CertDumpMSCAVersion=Phiên bản CA Microsoft
+CertDumpMSDomainGUID=GUID Tên miền Microsoft
+CertDumpEKU_2_16_840_1_113730_4_1=Mã hóa Netscape Server Gated
+CertDumpRFC822Name=Địa chỉ email
+CertDumpDNSName=Tên DNS
+CertDumpX400Address=Địa chỉ X.400
+CertDumpDirectoryName=Tên X.500
+CertDumpEDIPartyName=Tên Tổ chức EDI
+CertDumpURI=URI
+CertDumpIPAddress=Địa chỉ IP
+CertDumpRegisterID=OID đã Đăng kí
+CertDumpKeyID=Định danh Khóa
+CertDumpVerisignNotices=Chú thích Người dùng Verisign
+CertDumpUnused=Không dùng
+CertDumpKeyCompromise=Thỏa hiệp Khóa
+CertDumpCACompromise=Thỏa hiệp CA
+CertDumpAffiliationChanged=Sự sáp nhập được Thay đổi
+CertDumpSuperseded=Đã thay thế
+CertDumpCessation=Đình hoãn Tác vụ
+CertDumpHold=Tạm giữ chứng chỉ
+CertDumpOCSPResponder=OCSP
+CertDumpCAIssuers=Nhà cấp phát CA
+CertDumpCPSPointer=Chứng nhận thực hành con trỏ
+CertDumpUserNotice=Thông báo người dùng
+CertDumpLogotype=Biểu trưng
+CertDumpECPublicKey=Khóa Công cộng Đường cong Elliptic
+CertDumpECDSAWithSHA1=Chữ kí X9.62 ECDSA với SHA1
+CertDumpECprime192v1=Đường bầu dục ANSI X9.62 prime192v1 (còn gọi là secp192r1, NIST P-192)
+CertDumpECprime192v2=Đường bầu dục ANSI X9.62 prime192v2
+CertDumpECprime192v3=Đường bầu dục ANSI X9.62 prime192v3
+CertDumpECprime239v1=Đường bầu dục ANSI X9.62 prime239v1
+CertDumpECprime239v2=Đường bầu dục ANSI X9.62 prime239v2
+CertDumpECprime239v3=Đường bầu dục ANSI X9.62 prime239v3
+CertDumpECprime256v1=Đường bầu dục ANSI X9.62 prime256v1 (còn gọi là secp256r1, NIST P-256)
+CertDumpECsecp112r1=Đường bầu dục SECG secp112r1
+CertDumpECsecp112r2=Đường bầu dục SECG secp112r2
+CertDumpECsecp128r1=Đường bầu dục SECG secp128r1
+CertDumpECsecp128r2=Đường bầu dục SECG secp128r2
+CertDumpECsecp160k1=Đường bầu dục SECG secp160k1
+CertDumpECsecp160r1=Đường bầu dục SECG secp160r1
+CertDumpECsecp160r2=Đường bầu dục SECG secp160r2
+CertDumpECsecp192k1=Đường bầu dục SECG secp192k1
+CertDumpECsecp224k1=Đường bầu dục SECG secp224k1
+CertDumpECsecp224r1=Đường bầu dục SECG secp224r1 (còn gọi là NIST P-224)
+CertDumpECsecp256k1=Đường bầu dục SECG secp256k1
+CertDumpECsecp384r1=Đường bầu dục SECG secp384r1 (còn gọi là NIST P-384)
+CertDumpECsecp521r1=Đường bầu dục SECG secp521r1 (còn gọi là NIST P-521)
+CertDumpECc2pnb163v1=Đường bầu dục ANSI X9.62 c2pnb163v1
+CertDumpECc2pnb163v2=Đường bầu dục ANSI X9.62 c2pnb163v2
+CertDumpECc2pnb163v3=Đường bầu dục ANSI X9.62 c2pnb163v3
+CertDumpECc2pnb176v1=Đường bầu dục ANSI X9.62 c2pnb176v1
+CertDumpECc2tnb191v1=Đường bầu dục ANSI X9.62 c2tnb191v1
+CertDumpECc2tnb191v2=Đường bầu dục ANSI X9.62 c2tnb191v2
+CertDumpECc2tnb191v3=Đường bầu dục ANSI X9.62 c2tnb191v3
+CertDumpECc2onb191v4=Đường bầu dục ANSI X9.62 c2onb191v4
+CertDumpECc2onb191v5=Đường bầu dục ANSI X9.62 c2onb191v5
+CertDumpECc2pnb208w1=Đường bầu dục ANSI X9.62 c2pnb208w1
+CertDumpECc2tnb239v1=Đường bầu dục ANSI X9.62 c2tnb239v1
+CertDumpECc2tnb239v2=Đường bầu dục ANSI X9.62 c2tnb239v2
+CertDumpECc2tnb239v3=Đường bầu dục ANSI X9.62 c2tnb239v3
+CertDumpECc2onb239v4=Đường bầu dục ANSI X9.62 c2onb239v4
+CertDumpECc2onb239v5=Đường bầu dục ANSI X9.62 c2onb239v5
+CertDumpECc2pnb272w1=Đường bầu dục ANSI X9.62 c2pnb272w1
+CertDumpECc2pnb304w1=Đường bầu dục ANSI X9.62 c2pnb304w1
+CertDumpECc2tnb359v1=Đường bầu dục ANSI X9.62 c2tnb359v1
+CertDumpECc2pnb368w1=Đường bầu dục ANSI X9.62 c2pnb368w1
+CertDumpECc2tnb431r1=Đường bầu dục ANSI X9.62 c2tnb431r1
+CertDumpECsect113r1=Đường bầu dục SECG sect113r1
+CertDumpECsect113r2=Đường bầu dục SECG sect113r2
+CertDumpECsect131r1=Đường bầu dục SECG sect131r1
+CertDumpECsect131r2=Đường bầu dục SECG sect131r2
+CertDumpECsect163k1=Đường bầu dục SECG sect163k1 (còn gọi là NIST K-163)
+CertDumpECsect163r1=Đường bầu dục SECG sect163r1
+CertDumpECsect163r2=Đường bầu dục SECG sect163r2 (còn gọi là NIST B-163)
+CertDumpECsect193r1=Đường bầu dục SECG sect193r1
+CertDumpECsect193r2=Đường bầu dục SECG sect193r2
+CertDumpECsect233k1=Đường bầu dục SECG sect233k1 (còn gọi là NIST K-233)
+CertDumpECsect233r1=Đường bầu dục SECG sect233r1 (còn gọi là NIST B-233)
+CertDumpECsect239k1=Đường bầu dục SECG sect239k1
+CertDumpECsect283k1=Đường bầu dục SECG sect283k1 (còn gọi là NIST K-283)
+CertDumpECsect283r1=Đường bầu dục SECG sect283r1 (còn gọi là NIST B-283)
+CertDumpECsect409k1=Đường bầu dục SECG sect409k1 (còn gọi là NIST K-409)
+CertDumpECsect409r1=Đường bầu dục SECG sect409r1 (còn gọi là NIST B-409)
+CertDumpECsect571k1=Đường bầu dục SECG sect571k1 (còn gọi là NIST K-571)
+CertDumpECsect571r1=Đường bầu dục SECG sect571r1 (còn gọi là NIST B-571)
+CertDumpRawBytesHeader=Kích cỡ: %S byte / %S bit
+AVATemplate=%S = %S
+
+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.
+PSMERR_HostReusedIssuerSerial=Bạn vừa nhận được một chứng chỉ bất 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:\n\nChứng thư của bạn có cùng số sêri với chứng chỉ khác được cấp bởi cùng một nhà thẩm định chứng chỉ. Vui lòng lấy một chứng chỉ mới có số sêri riêng biệt.
+
+# LOCALIZATION NOTE (SSLConnectionErrorPrefix2): %1$S is the host string, %2$S is more detailed information (localized as well).
+SSLConnectionErrorPrefix2=Đã xảy ra lỗi trong khi kết nối với %1$S. %2$S\n
+
+certErrorIntro=%S sử dụng một chứng chỉ bảo mật không hợp lệ.
+
+certErrorTrust_SelfSigned=Chứng chỉ này không đáng tin vì nó được tự kí.
+certErrorTrust_UnknownIssuer=Chứng chỉ không đáng tin vì người cấp phát không được biết tới.
+certErrorTrust_UnknownIssuer2=Máy chủ có thể không gửi các chứng thực trung gian thích hợp.
+certErrorTrust_UnknownIssuer3=Có thể phải bổ sung một chứng thực gốc.
+certErrorTrust_CaInvalid=Chứng chỉ không đáng tin vì nó được cấp phát bởi một chứng chỉ CA bất hợp lệ.
+certErrorTrust_Issuer=Chứng chỉ không đáng tin vì chứng chỉ của bên cấp phát không đáng tin cậy.
+certErrorTrust_SignatureAlgorithmDisabled=Chứng chỉ 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.
+certErrorTrust_ExpiredIssuer=Chứng chỉ không đáng tin vì chứng chỉ bên cấp phát đã hết hạn.
+certErrorTrust_Untrusted=Chứng chỉ không thuộc về một nguồn đáng tin cậy.
+certErrorTrust_MitM=Kết nối của bạn đang bị chặn bởi proxy TLS. Gỡ cài đặt nếu có thể hoặc định cấu hình thiết bị của bạn để tin tưởng chứng chỉ gốc.
+
+certErrorMismatch=Chứng chỉ không hợp lệ cho tên %S.
+# LOCALIZATION NOTE (certErrorMismatchSinglePrefix): %S is replaced by the domain for which the certificate is valid
+certErrorMismatchSinglePrefix=Chứng chỉ chỉ có giá trị cho %S.
+certErrorMismatchMultiple=Chứng chỉ chỉ có hiệu lực cho các tên sau:
+
+# LOCALIZATION NOTE (certErrorExpiredNow): Do not translate %1$S (date+time of expired certificate) or %2$S (current date+time)
+certErrorExpiredNow=Chứng chỉ bị hết hạn vào %1$S. Thời gian hiện tại là %2$S.
+
+# LOCALIZATION NOTE (certErrorNotYetValidNow): Do not translate %1$S (date+time certificate will become valid) or %2$S (current date+time)
+certErrorNotYetValidNow=Chứng chỉ sẽ không hợp lệ cho đến %1$S. Thời gian hiện tại là %2$S.
+
+certErrorMitM=Các trang web chứng minh danh tính của họ thông qua các chứng chỉ, được cấp bởi các cơ quan chứng nhận.
+# LOCALIZATION NOTE (certErrorMitM2): %S is brandShortName
+certErrorMitM2=%S đượ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 chỉ (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 chỉ đang tuân theo các thực tiễn tốt nhất để bảo mật người dùng.
+# LOCALIZATION NOTE (certErrorMitM3): %S is brandShortName
+certErrorMitM3=%S 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 chỉ đượ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 chỉ 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.
+
+certErrorSymantecDistrustAdministrator=Bạn có thể thông báo cho quản trị viên trang web về vấn đề này.
+
+# LOCALIZATION NOTE (certErrorCodePrefix3): %S is replaced by the error code.
+certErrorCodePrefix3=Mã lỗi: %S
+
+P12DefaultNickname=Chứng chỉ đã nhập
+CertUnknown=Không rõ
+CertNoEmailAddress=(không địa chỉ email)
+CaCertExists=Chứng chỉ này đã được cài từ trước với tư cách là bên thẩm định chứng chỉ.
+NotACACert=Đây không phải là chứng chỉ của bên thẩm định chứng chỉ, do đó nó không được nhập vào danh sách thẩm định chứng chỉ.
+UserCertIgnoredNoPrivateKey=Chứng chỉ cá nhân này không thể cài đặt được vì bạn không giữ khóa riêng tương ứng được tạo khi chứng chỉ được yêu cầu.
+UserCertImported=Chứng chỉ cá nhân của bạn đã được cài. Bạn nên giữ một bản sao của nó.
+CertOrgUnknown=(Không rõ)
+CertNotStored=(Không được Lưu)
+CertExceptionPermanent=Vĩnh viễn
+CertExceptionTemporary=Tạm thời
diff --git a/l10n-vi/security/manager/chrome/pippki/pippki.properties b/l10n-vi/security/manager/chrome/pippki/pippki.properties
new file mode 100644
index 0000000000..5d289f2b4d
--- /dev/null
+++ b/l10n-vi/security/manager/chrome/pippki/pippki.properties
@@ -0,0 +1,85 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Download Cert dialog
+# LOCALIZATION NOTE(newCAMessage1):
+# %S is a string representative of the certificate being downloaded/imported.
+newCAMessage1=Bạn có muốn tin tưởng “%S” cho những mục đích sau?
+unnamedCA=Cơ quan cấp chứng chỉ (chưa được đặt tên)
+
+# PKCS#12 file dialogs
+getPKCS12FilePasswordMessage=Vui lòng nhập mật khẩu đã được sử dụng để mã hóa bản sao lưu chứng chỉ này:
+
+# Client auth
+clientAuthRemember=Ghi nhớ quyết định này
+# LOCALIZATION NOTE(clientAuthNickAndSerial): Represents a single cert when the
+# user is choosing from a list of certificates.
+# %1$S is the nickname of the cert.
+# %2$S is the serial number of the cert in AA:BB:CC hex format.
+clientAuthNickAndSerial=%1$S [%2$S]
+# LOCALIZATION NOTE(clientAuthHostnameAndPort):
+# %1$S is the hostname of the server.
+# %2$S is the port of the server.
+clientAuthHostnameAndPort=%1$S:%2$S
+# LOCALIZATION NOTE(clientAuthMessage1): %S is the Organization of the server
+# cert.
+clientAuthMessage1=Tổ chức: "%S"
+# LOCALIZATION NOTE(clientAuthMessage2): %S is the Organization of the issuer
+# cert of the server cert.
+clientAuthMessage2=Được cấp dưới: "%S"
+# LOCALIZATION NOTE(clientAuthIssuedTo): %1$S is the Distinguished Name of the
+# currently selected client cert, such as "CN=John Doe,OU=Example" (without
+# quotes).
+clientAuthIssuedTo=Cấp cho: %1$S
+# LOCALIZATION NOTE(clientAuthSerial): %1$S is the serial number of the selected
+# cert in AA:BB:CC hex format.
+clientAuthSerial=Số sê-ri: %1$S
+# LOCALIZATION NOTE(clientAuthValidityPeriod):
+# %1$S is the already localized notBefore date of the selected cert.
+# %2$S is the already localized notAfter date of the selected cert.
+clientAuthValidityPeriod=Hợp lệ từ %1$S đến %2$S
+# LOCALIZATION NOTE(clientAuthKeyUsages): %1$S is a comma separated list of
+# already localized key usages the selected cert is valid for.
+clientAuthKeyUsages=Sử dụng khóa: %1$S
+# LOCALIZATION NOTE(clientAuthEmailAddresses): %1$S is a comma separated list of
+# e-mail addresses the selected cert is valid for.
+clientAuthEmailAddresses=Địa chỉ email: %1$S
+# LOCALIZATION NOTE(clientAuthIssuedBy): %1$S is the Distinguished Name of the
+# cert which issued the selected cert.
+clientAuthIssuedBy=Cấp bởi: %1$S
+# LOCALIZATION NOTE(clientAuthStoredOn): %1$S is the name of the PKCS #11 token
+# the selected cert is stored on.
+clientAuthStoredOn=Lưu trữ trên: %1$S
+
+# Page Info
+pageInfo_NoEncryption=Kết nối không được mã hóa
+pageInfo_Privacy_None1=Trang web %S không hỗ trợ mã hóa cho trang bạn đang xem.
+pageInfo_Privacy_None2=Thông tin được gửi qua Internet mà không mã hóa có thể bị người khác xem trong khi nó đang được truyền tải.\u0020
+pageInfo_Privacy_None4=Trang bạn đang xem không được mã hóa trước khi nó được truyền tải trên Internet.
+# LOCALIZATION NOTE (pageInfo_EncryptionWithBitsAndProtocol and pageInfo_BrokenEncryption):
+# %1$S is the name of the encryption standard,
+# %2$S is the key size of the cipher.
+# %3$S is protocol version like "SSL 3" or "TLS 1.2"
+pageInfo_EncryptionWithBitsAndProtocol=Kết nối đã được mã hóa (%1$S, khóa %2$S bit, %3$S)
+pageInfo_BrokenEncryption=Mã hóa bị hỏng (%1$S, khóa %2$S bit, %3$S)
+pageInfo_Privacy_Encrypted1=Trang bạn đang xem được mã hóa trước khi nó được truyền tải trên Internet.
+pageInfo_Privacy_Encrypted2=Mã hóa sẽ gây khó khăn cho những người không được ủy quyền xem thông tin di chuyển giữa các máy tính. Do đó, không ai có thể đọc trang này khi nó di chuyển trên mạng.
+pageInfo_MixedContent=Kết nối được mã hóa một phần
+pageInfo_MixedContent2=Một số phần của trang bạn đang xem không được mã hóa trước khi được truyền tải trên Internet.
+pageInfo_WeakCipher=Kết nối của bạn đến trang web này sử dụng mã hóa yếu và không riêng tư. Những người khác có thể xem thông tin của bạn hoặc sửa đổi hành vi của trang web.
+pageInfo_CertificateTransparency_Compliant=Trang web này tuân thủ chính sách Chứng chỉ minh bạch.
+
+# Token Manager
+password_not_set=(chưa đặt)
+failed_pw_change=Không thể thay đổi mật khẩu chính.
+incorrect_pw=Bạn không nhập đúng mật khẩu chính hiện tại. Hãy thử lại.
+pw_change_ok=Đã thay đổi mật khẩu chính thành công.
+pw_erased_ok=Cảnh báo! Bạn đã xóa mật khẩu chính của bạn.
+pw_not_wanted=Cảnh báo! Bạn vừa quyết định không dùng mật khẩu chính.
+pw_empty_warning=Các mật khẩu web và email, dữ liệu biểu mẫu, và các khóa cá nhân của bạn sẽ không được bảo vệ.
+pw_change2empty_in_fips_mode=Bạn đang ở chế độ FIPS. FIPS yêu cầu mật khẩu chính không được để trống.
+enable_fips=Bật FIPS
+
+resetPasswordConfirmationTitle=Đặt lại mật khẩu chính
+resetPasswordConfirmationMessage=Mật khẩu của bạn đã được đặt lại.
diff --git a/l10n-vi/security/manager/security/certificates/certManager.ftl b/l10n-vi/security/manager/security/certificates/certManager.ftl
new file mode 100644
index 0000000000..eee4de8fc9
--- /dev/null
+++ b/l10n-vi/security/manager/security/certificates/certManager.ftl
@@ -0,0 +1,251 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+certmgr-title =
+ .title = Trình quản lí chứng chỉ
+certmgr-tab-mine =
+ .label = Chứng chỉ của bạn
+certmgr-tab-remembered =
+ .label = Quyết định chứng thực
+certmgr-tab-people =
+ .label = Người khác
+certmgr-tab-servers =
+ .label = Máy chủ
+certmgr-tab-ca =
+ .label = Nhà thẩm định
+certmgr-mine = Bạn có các chứng thực từ các tổ chức để nhận biết bạn
+certmgr-remembered = Những chứng nhận này được sử dụng để nhận dạng bạn với các trang web
+certmgr-people = Bạn có các tập tin chứng thực để nhận biết những người này
+certmgr-servers = Bạn có những tập tin chứng thực để nhận biết những máy chủ này
+certmgr-server = Các mục này xác định các ngoại lệ lỗi chứng chỉ máy chủ
+certmgr-ca = Bạn có những tập tin chứng thực để nhận biết các nhà thẩm định chứng thực này
+certmgr-detail-general-tab-title =
+ .label = Tổng quát
+ .accesskey = T
+certmgr-detail-pretty-print-tab-title =
+ .label = Chi tiết
+ .accesskey = C
+certmgr-pending-label =
+ .value = Hiện đang xác minh chứng chỉ…
+certmgr-subject-label = Cấp cho
+certmgr-issuer-label = Cấp bởi
+certmgr-period-of-validity = Thời gian hiệu lực
+certmgr-fingerprints = Vân tay
+certmgr-cert-detail =
+ .title = Chi tiết chứng chỉ
+ .buttonlabelaccept = Đóng
+ .buttonaccesskeyaccept = C
+certmgr-cert-detail-commonname = Tên thông thường (CN)
+certmgr-cert-detail-org = Tổ chức (O)
+certmgr-cert-detail-orgunit = Đơn vị tổ chức (OU)
+certmgr-cert-detail-serial-number = Số sê-ri
+certmgr-cert-detail-sha-256-fingerprint = Vân tay SHA-256
+certmgr-cert-detail-sha-1-fingerprint = Vân tay SHA1
+certmgr-edit-ca-cert =
+ .title = Chỉnh thiết lập độ tin cậy chứng chỉ CA
+ .style = width: 48em;
+certmgr-edit-cert-edit-trust = Chỉnh thiết lập tin cậy:
+certmgr-edit-cert-trust-ssl =
+ .label = Chứng chỉ này có thể nhận diện trang web.
+certmgr-edit-cert-trust-email =
+ .label = Chứng chỉ này có thể nhận diện người dùng email.
+certmgr-delete-cert =
+ .title = Xóa chứng nhận
+ .style = width: 48em; height: 24em;
+certmgr-cert-host =
+ .label = Máy chủ
+certmgr-cert-name =
+ .label = Tên chứng nhận
+certmgr-cert-server =
+ .label = Máy chủ
+certmgr-override-lifetime =
+ .label = Chu kì
+certmgr-token-name =
+ .label = Thiết bị bảo mật
+certmgr-begins-on = Bắt đầu
+certmgr-begins-label =
+ .label = Bắt đầu
+certmgr-expires-on = Hết hạn vào
+certmgr-expires-label =
+ .label = Hết hạn vào
+certmgr-email =
+ .label = Địa chỉ email
+certmgr-serial =
+ .label = Số sê-ri
+certmgr-view =
+ .label = Xem…
+ .accesskey = e
+certmgr-edit =
+ .label = Chỉnh sửa tin tưởng…
+ .accesskey = E
+certmgr-export =
+ .label = Xuất…
+ .accesskey = u
+certmgr-delete =
+ .label = Xóa…
+ .accesskey = X
+certmgr-delete-builtin =
+ .label = Xóa hoặc không tin tưởng…
+ .accesskey = D
+certmgr-backup =
+ .label = Sao lưu…
+ .accesskey = l
+certmgr-backup-all =
+ .label = Sao lưu toàn bộ…
+ .accesskey = k
+certmgr-restore =
+ .label = Nhập…
+ .accesskey = N
+certmgr-details =
+ .value = Trường chứng nhận
+ .accesskey = F
+certmgr-fields =
+ .value = Giá trị trường
+ .accesskey = V
+certmgr-hierarchy =
+ .value = Cấp bậc chứng thực
+ .accesskey = H
+certmgr-add-exception =
+ .label = Thêm ngoại lệ…
+ .accesskey = x
+exception-mgr =
+ .title = Thêm ngoại lệ bảo mật
+exception-mgr-extra-button =
+ .label = Xác nhận ngoại lệ bảo mật
+ .accesskey = C
+exception-mgr-supplemental-warning = Ngân hàng, cửa hiệu và trang công cộng hợp pháp khác sẽ không yêu cầu bạn làm việc này.
+exception-mgr-cert-location-url =
+ .value = Địa chỉ:
+exception-mgr-cert-location-download =
+ .label = Nhận chứng nhận
+ .accesskey = G
+exception-mgr-cert-status-view-cert =
+ .label = Xem…
+ .accesskey = V
+exception-mgr-permanent =
+ .label = Lưu trữ ngoại lệ này vĩnh viễn
+ .accesskey = L
+pk11-bad-password = Mật khẩu nhập vào không đúng.
+pkcs12-decode-err = Không giải mã tập tin được. Do nó không ở định dạng PKCS #12, bị hỏng, hoặc mật khẩu đã nhập sai.
+pkcs12-unknown-err-restore = Thất bại trong khi khôi phục tập tin PKCS #12 vì những lí do chưa rõ ràng.
+pkcs12-unknown-err-backup = Thất bại trong khi tạo tập tin sao lưu PKCS #12 vì những lí do chưa rõ ràng.
+pkcs12-unknown-err = Thao tác với PKCS #12 thất bại nhưng không rõ lí do.
+pkcs12-info-no-smartcard-backup = Không thể sao lưu các chứng chỉ từ một phần cứng bảo mật, ví dụ như thẻ thông minh.
+pkcs12-dup-data = Chứng chỉ và khóa cá nhân đã có sẵn trên thiết bị bảo mật.
+
+## PKCS#12 file dialogs
+
+choose-p12-backup-file-dialog = Tên tập tin để sao lưu
+file-browse-pkcs12-spec = Tập tin PKCS12
+choose-p12-restore-file-dialog = Chứng chỉ tập tin để nhập
+
+## Import certificate(s) file dialog
+
+file-browse-certificate-spec = Tập tin chứng chỉ
+import-ca-certs-prompt = Chọn tập tin chứa (các) chứng chỉ CA để nhập
+import-email-cert-prompt = Chọn Tập Tin chứa chứng chỉ Email của ai đó để nhập
+
+## For editing certificates trust
+
+# Variables:
+# $certName: the name of certificate
+edit-trust-ca = Chứng chỉ "{ $certName }" đại diện cho một nhà thẩm định chứng chỉ.
+
+## For Deleting Certificates
+
+delete-user-cert-title =
+ .title = Xóa chứng chỉ của bạn
+delete-user-cert-confirm = Bạn có chắc muốn xóa các chứng chỉ này không?
+delete-user-cert-impact = Nếu bạn xóa một trong các chứng chỉ của riêng bạn, bạn không thể dùng nó để nhận diện chính mình được nữa.
+delete-ssl-cert-title =
+ .title = Xóa ngoại lệ chứng chỉ máy chủ
+delete-ssl-cert-confirm = Bạn có chắc bạn muốn xóa các ngoại lệ máy chủ này?
+delete-ssl-cert-impact = Nếu bạn xóa một ngoại lệ máy chủ, bạn khôi phục việc kiểm tra bảo mật thông thường cho máy chủ đó và yêu cầu nó dùng một chứng chỉ hợp lệ.
+delete-ssl-override-title =
+ .title = Xóa ngoại lệ chứng chỉ máy chủ
+delete-ssl-override-confirm = Bạn có chắc bạn muốn xóa ngoại lệ máy chủ này không?
+delete-ssl-override-impact = Nếu bạn xóa một ngoại lệ máy chủ, bạn khôi phục việc kiểm tra bảo mật thông thường cho máy chủ đó và yêu cầu nó dùng một chứng thư hợp lệ.
+delete-ca-cert-title =
+ .title = Xóa hoặc không tin cậy chứng chỉ CA
+delete-ca-cert-confirm = Bạn đã yêu cầu xóa các chứng chỉ CA này. Đối với chứng chỉ có sẵn, tất cả tin tưởng sẽ bị xóa, gây ra cùng hiệu ứng. Bạn có chắc bạn muốn xóa hoặc không tin tưởng?
+delete-ca-cert-impact = Nếu bạn xóa hoặc không tin tưởng một chứng chỉ của nhà thẩm định chứng chỉ (CA), ứng dụng này sẽ không còn tin bất kì chứng chỉ nào được cấp phát bởi CA đó.
+delete-email-cert-title =
+ .title = Xóa các chứng chỉ email
+delete-email-cert-confirm = Bạn có muốn xóa các chứng chỉ email của những người này không?
+delete-email-cert-impact = Nếu bạn xóa chứng chỉ email của một người, bạn sẽ không thể gửi e-mail mật hóa tới người đó được nữa.
+# Used for semi-uniquely representing a cert.
+#
+# Variables:
+# $serialNumber : the serial number of the cert in AA:BB:CC hex format.
+cert-with-serial =
+ .value = Chứng chỉ có số sê-ri: { $serialNumber }
+
+## Cert Viewer
+
+# Title used for the Certificate Viewer.
+#
+# Variables:
+# $certificate : a string representative of the certificate being viewed.
+cert-viewer-title =
+ .title = Trình xem chứng chỉ: “{ $certName }”
+not-present =
+ .value = <Không là một phần của chứng chỉ>
+# Cert verification
+cert-verified = Chứng chỉ này đã được xác minh cho những mục đích sau:
+# Add usage
+verify-ssl-client =
+ .value = Chứng chỉ SSL máy khách
+verify-ssl-server =
+ .value = Chứng chỉ SSL máy chủ
+verify-ssl-ca =
+ .value = Chứng chỉ thẩm định SSL
+verify-email-signer =
+ .value = Chứng chỉ bên kí email
+verify-email-recip =
+ .value = Chứng chỉ bên nhận email
+# Cert verification
+cert-not-verified-cert-revoked = Không thể xác minh chứng chỉ này vì nó đã bị thu hồi.
+cert-not-verified-cert-expired = Không thể xác minh chứng chỉ này vì nó đã hết hạn.
+cert-not-verified-cert-not-trusted = Không thể xác minh chứng chỉ này vì nó không đáng tin.
+cert-not-verified-issuer-not-trusted = Không thể xác minh chứng chỉ này vì người cấp không đáng tin.
+cert-not-verified-issuer-unknown = Không thể xác minh chứng chỉ này vì không rõ người cấp.
+cert-not-verified-ca-invalid = Không thể xác thực chứng chỉ này vì chứng chỉ CA không hợp lệ.
+cert-not-verified_algorithm-disabled = Không thể xác nhận chứng chỉ này vì được ký bằng một thuật toán bị vô hiệu - do thuật toán này không an toàn.
+cert-not-verified-unknown = Không thể xác minh chứng chỉ này vì không rõ lí do.
+# Used to indicate that the user chose not to send a client authentication certificate to a server that requested one in a TLS handshake.
+send-no-client-certificate = Không gửi chứng chỉ máy khách
+# Used when no cert is stored for an override
+no-cert-stored-for-override = (Không được lưu trữ)
+
+## Used to show whether an override is temporary or permanent
+
+permanent-override = Vĩnh viễn
+temporary-override = Tạm thời
+
+## Add Security Exception dialog
+
+add-exception-branded-warning = Bạn đang chuẩn bị thay thế cách { -brand-short-name } định danh trang này.
+add-exception-invalid-header = Trang này đang cố định danh chính nó bằng thông tin bất hợp lệ.
+add-exception-domain-mismatch-short = Trang web sai
+add-exception-domain-mismatch-long = Chứng chỉ thuộc về một trang web khác, điều đó có thể có nghĩa là ai đó đang cố gắng mạo danh trang web này.
+add-exception-expired-short = Thông tin lỗi thời
+add-exception-expired-long = Chứng chỉ hiện không hợp lệ. Nó có thể đã bị đánh cắp hoặc bị mất và có thể được sử dụng bởi ai đó để mạo danh trang web này.
+add-exception-unverified-or-bad-signature-short = Không xác định nhận dạng
+add-exception-unverified-or-bad-signature-long = Chứng chỉ không đáng tin vì không được chứng thực bằng chữ kí bảo mật bởi một hãng đã biết.
+add-exception-valid-short = Chứng chỉ hợp lệ
+add-exception-valid-long = Trang này cung cấp định danh hợp lệ, đã được xác minh. Không cần phải thêm ngoại lệ.
+add-exception-checking-short = Đang kiểm tra thông tin
+add-exception-checking-long = Đang cố gắng nhận dạng trang web này…
+add-exception-no-cert-short = Không có thông tin
+add-exception-no-cert-long = Không thể có được trạng thái nhận dạng cho trang web này.
+
+## Certificate export "Save as" and error dialogs
+
+save-cert-as = Lưu chứng chỉ vào tập tin
+cert-format-base64 = Chứng chỉ X.509 (PEM)
+cert-format-base64-chain = Chứng chỉ có mạch chuỗi X.509 (PEM)
+cert-format-der = Chứng chỉ X.509 (DER)
+cert-format-pkcs7 = Chứng chỉ X.509 (PKCS#7)
+cert-format-pkcs7-chain = Chứng chỉ có mạch chuỗi X.509 (PKCS#7)
+write-file-failure = Lỗi tập tin
diff --git a/l10n-vi/security/manager/security/certificates/deviceManager.ftl b/l10n-vi/security/manager/security/certificates/deviceManager.ftl
new file mode 100644
index 0000000000..ab3f93a97c
--- /dev/null
+++ b/l10n-vi/security/manager/security/certificates/deviceManager.ftl
@@ -0,0 +1,135 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Strings used for device manager
+
+devmgr =
+ .title = Quản lí thiết bị
+ .style = width: 67em; height: 32em;
+
+devmgr-devlist =
+ .label = Mô-đun và thiết bị bảo mật
+
+devmgr-header-details =
+ .label = Chi tiết
+
+devmgr-header-value =
+ .label = Giá trị
+
+devmgr-button-login =
+ .label = Đăng nhập
+ .accesskey = n
+
+devmgr-button-logout =
+ .label = Đăng xuất
+ .accesskey = O
+
+devmgr-button-changepw =
+ .label = Thay đổi mật khẩu
+ .accesskey = P
+
+devmgr-button-load =
+ .label = Nạp
+ .accesskey = p
+
+devmgr-button-unload =
+ .label = Không Nạp
+ .accesskey = K
+
+devmgr-button-enable-fips =
+ .label = Bật FIPS
+ .accesskey = F
+
+devmgr-button-disable-fips =
+ .label = Tắt FIPS
+ .accesskey = F
+
+## Strings used for load device
+
+load-device =
+ .title = Tải trình điều khiển thiết bị PKCS#11
+
+load-device-info = Nhập thông tin cho module bạn muốn thêm.
+
+load-device-modname =
+ .value = Tên mô-đun
+ .accesskey = M
+
+load-device-modname-default =
+ .value = Module PKCS#11 Mới
+
+load-device-filename =
+ .value = Tên tập tin mô-đun
+ .accesskey = f
+
+load-device-browse =
+ .label = Duyệt…
+ .accesskey = B
+
+## Token Manager
+
+devinfo-status =
+ .label = Trạng thái
+
+devinfo-status-disabled =
+ .label = Bị Vô Hiệu
+
+devinfo-status-not-present =
+ .label = Không Có
+
+devinfo-status-uninitialized =
+ .label = Chưa được Nhận diện
+
+devinfo-status-not-logged-in =
+ .label = Chưa đăng nhập
+
+devinfo-status-logged-in =
+ .label = Đã đăng nhập
+
+devinfo-status-ready =
+ .label = Sẵn sàng
+
+devinfo-desc =
+ .label = Mô tả
+
+devinfo-man-id =
+ .label = Nhà sản xuất
+
+devinfo-hwversion =
+ .label = Phiên bản HW
+devinfo-fwversion =
+ .label = Phiên bản FW
+
+devinfo-modname =
+ .label = Mô-đun
+
+devinfo-modpath =
+ .label = Đường dẫn
+
+login-failed = Đăng nhập thất bại
+
+devinfo-label =
+ .label = Nhãn
+
+devinfo-serialnum =
+ .label = Số sê-ri
+
+fips-nonempty-password-required = Chế độ FIPS yêu cầu bạn đặt một mật khẩu chính cho mỗi thiết bị bảo mật. Vui lòng đặt mật khẩu trước khi bật chế độ FIPS.
+
+fips-nonempty-primary-password-required = Chế độ FIPS yêu cầu bạn phải đặt mật khẩu chính cho từng thiết bị bảo mật. Vui lòng đặt mật khẩu trước khi thử bật chế độ FIPS.
+unable-to-toggle-fips = Không thể thay đổi chế độ FIPS cho thiết bị bảo mật. Bạn nên thoát và khởi động lại ứng dụng này.
+load-pk11-module-file-picker-title = Chọn trình điều khiển thiết bị PKCS#11 để tải
+
+# Load Module Dialog
+load-module-help-empty-module-name =
+ .value = Tên mô-đun không thể để trống.
+
+# Do not translate 'Root Certs'
+load-module-help-root-certs-module-name =
+ .value = ‘Root Certs' được dành riêng và không thể được sử dụng làm tên mô-đun.
+
+add-module-failure = Không thể thêm module
+del-module-warning = Bạn có chắc muốn xóa module bảo mật này không?
+del-module-error = Không thể xóa module
diff --git a/l10n-vi/security/manager/security/pippki/pippki.ftl b/l10n-vi/security/manager/security/pippki/pippki.ftl
new file mode 100644
index 0000000000..fde0babb1a
--- /dev/null
+++ b/l10n-vi/security/manager/security/pippki/pippki.ftl
@@ -0,0 +1,91 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+password-quality-meter = Độ an toàn mật khẩu
+
+## Change Password dialog
+
+change-password-window =
+ .title = Thay đổi mật khẩu chính
+
+change-device-password-window =
+ .title = Thay đổi mật khẩu
+
+# Variables:
+# $tokenName (String) - Security device of the change password dialog
+change-password-token = Thiết bị bảo mật: { $tokenName }
+change-password-old = Mật khẩu hiện tại:
+change-password-new = Mật khẩu mới:
+change-password-reenter = Mật khẩu mới (nhập lại):
+
+## Reset Password dialog
+
+reset-password-window =
+ .title = Đặt lại mật khẩu chính
+ .style = width: 40em
+
+pippki-failed-pw-change = Không thể thay đổi mật khẩu.
+pippki-incorrect-pw = Bạn đã không nhập đúng mật khẩu hiện tại. Vui lòng thử lại.
+pippki-pw-change-ok = Đã thay đổi mật khẩu.
+
+pippki-pw-empty-warning = Mật khẩu được lưu trữ và khóa riêng của bạn sẽ không được bảo vệ.
+pippki-pw-erased-ok = Bạn đã xóa mật khẩu của bạn. { pippki-pw-empty-warning }
+pippki-pw-not-wanted = Cảnh báo! Bạn đã quyết định không sử dụng mật khẩu. { pippki-pw-empty-warning }
+
+pippki-pw-change2empty-in-fips-mode = Bạn hiện đang ở chế độ FIPS. FIPS yêu cầu không bỏ trống mật khẩu.
+
+## Reset Primary Password dialog
+
+reset-primary-password-window =
+ .title = Đặt lại mật khẩu chính
+ .style = width: 40em
+reset-password-button-label =
+ .label = Đặt lại
+reset-password-text = Nếu bạn đặt lại mật khẩu chính, toàn bộ các mật khẩu web, email, dữ liệu biểu mẫu, chứng chỉ và khóa cá nhân đã lưu sẽ bị xóa. Bạn có chắc muốn xóa mật khẩu chính của mình không?
+
+reset-primary-password-text = Nếu bạn đặt lại mật khẩu chính, toàn bộ các mật khẩu web, email, dữ liệu biểu mẫu, chứng chỉ và khóa cá nhân đã lưu sẽ bị xóa. Bạn có chắc muốn đặt lại mật khẩu chính của mình không?
+
+pippki-reset-password-confirmation-title = Đặt lại mật khẩu chính
+pippki-reset-password-confirmation-message = Đã đặt lại mật khẩu chính của bạn.
+
+## Downloading cert dialog
+
+download-cert-window =
+ .title = Đang tải Chứng chỉ
+ .style = width: 46em
+download-cert-message = Bạn được hỏi có tin tưởng một CA (Bên thẩm định Chứng chỉ) mới hay không.
+download-cert-trust-ssl =
+ .label = Tin CA này để nhận diện các trang web.
+download-cert-trust-email =
+ .label = Tin CA này để nhận diện những người dùng email.
+download-cert-message-desc = Trước khi tin vào CA này với bất kì mục đích nào, bạn nên kiểm định chứng chỉ, điều khoản và thủ tục của nó (nếu có).
+download-cert-view-cert =
+ .label = Xem
+download-cert-view-text = Kiểm định chứng chỉ của CA
+
+## Client Authorization Ask dialog
+
+client-auth-window =
+ .title = Yêu cầu Nhận diện Người dùng
+client-auth-site-description = Trang này yêu cầu bạn tự nhận diện chính mình với một chứng chỉ:
+client-auth-choose-cert = Chọn một chứng chỉ để thực hiện việc nhận diện này:
+client-auth-cert-details = Thông tin chi tiết của chứng chỉ được chọn:
+
+## Set password (p12) dialog
+
+set-password-window =
+ .title = Chọn một Mật khẩu Sao lưu Chứng chỉ
+set-password-message = Mật khẩu sao lưu chứng chỉ mà bạn đặt ở đây bảo vệ tập tin sao lưu mà bạn sẽ tạo. Bạn phải đặt mật khẩu để tiến hành sao lưu.
+set-password-backup-pw =
+ .value = Mật khẩu sao lưu chứng chỉ:
+set-password-repeat-backup-pw =
+ .value = Mật khẩu sao lưu chứng chỉ (nhập lại):
+set-password-reminder = Quan trọng: Nếu bạn quên mật khẩu sao lưu chứng chỉ, sau này bạn sẽ không thể phục hồi bản sao lưu này. Hãy lưu vào một nơi an toàn.
+
+## Protected Auth dialog
+
+protected-auth-window =
+ .title = Xác thực Mã thông báo được Bảo vệ
+protected-auth-msg = Vui lòng xác thực cho mã thông báo. Phương thức xác thực tùy thuộc vào kiểu mã thông báo của bạn.
+protected-auth-token = Mã thông báo:
diff --git a/l10n-vi/services/sync/sync.properties b/l10n-vi/services/sync/sync.properties
new file mode 100644
index 0000000000..f3b86fb96b
--- /dev/null
+++ b/l10n-vi/services/sync/sync.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/.
+
+# %1: the user name (Ed), %2: the app name (Firefox), %3: the operating system (Android)
+client.name2 = %2$S của %1$S trên %3$S
+
+# %S is the date and time at which the last sync successfully completed
+lastSync2.label = Lần đồng bộ cuối: %S
+
+# signInToSync.description is the tooltip for the Sync buttons when Sync is
+# not configured.
+signInToSync.description = Đăng nhập vào Đồng bộ
+
diff --git a/l10n-vi/toolkit/chrome/alerts/alert.dtd b/l10n-vi/toolkit/chrome/alerts/alert.dtd
new file mode 100644
index 0000000000..684969a541
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/alerts/alert.dtd
@@ -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/. -->
+
+<!ENTITY closeAlert.tooltip "Đóng thông báo này">
+<!ENTITY settings.label "Thiết lập">
diff --git a/l10n-vi/toolkit/chrome/alerts/alert.properties b/l10n-vi/toolkit/chrome/alerts/alert.properties
new file mode 100644
index 0000000000..b5bfe57f83
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/alerts/alert.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/.
+
+# LOCALIZATION NOTE(closeButton.title): Used as the close button text for web notifications on OS X.
+# This should ideally match the string that OS X uses for the close button on alert-type
+# notifications. OS X will truncate the value if it's too long.
+closeButton.title = Đóng
+# LOCALIZATION NOTE(actionButton.label): Used as the button label to provide more actions on OS X notifications. OS X will truncate this if it's too long.
+actionButton.label = …
+# LOCALIZATION NOTE(webActions.disableForOrigin.label): %S is replaced
+# with the hostname origin of the notification.
+webActions.disableForOrigin.label = Ngừng thông báo từ %S
+
+# LOCALIZATION NOTE(source.label): Used to show the URL of the site that
+# sent the notification (e.g., "via mozilla.org"). "%1$S" is the source host
+# and port.
+source.label=thông qua %1$S
+webActions.settings.label = Cài đặt thông báo
+
+# LOCALIZATION NOTE(pauseNotifications.label): %S is replaced with the
+# brandShortName of the application.
+pauseNotifications.label = Tạm dừng thông báo cho đến khi %S khởi động lại
diff --git a/l10n-vi/toolkit/chrome/autoconfig/autoconfig.properties b/l10n-vi/toolkit/chrome/autoconfig/autoconfig.properties
new file mode 100644
index 0000000000..e61f438f11
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/autoconfig/autoconfig.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/.
+
+readConfigTitle = Lỗi Cấu Hình
+readConfigMsg = Thất bại khi đọc tập tin cấu hình. Vui lòng liên hệ người quản trị hệ thống của bạn.
+
+autoConfigTitle = Cảnh báo Tự động Thiết lập
+autoConfigMsg = Netscape.cfg/Tự động Thiết lập thất bại. Vui lòng liên hệ người quản trị hệ thống của bạn. \n Lỗi: %S thất bại:
+
+emailPromptTitle = Địa chỉ Email
+emailPromptMsg = Nhập địa chỉ email của bạn
diff --git a/l10n-vi/toolkit/chrome/global-platform/mac/intl.properties b/l10n-vi/toolkit/chrome/global-platform/mac/intl.properties
new file mode 100644
index 0000000000..71265a9ef1
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/global-platform/mac/intl.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 (intl.ellipsis): Use the unicode ellipsis char, \u2026,
+# or use "..." if \u2026 doesn't suit traditions in your locale.
+intl.ellipsis=…
diff --git a/l10n-vi/toolkit/chrome/global-platform/mac/platformKeys.properties b/l10n-vi/toolkit/chrome/global-platform/mac/platformKeys.properties
new file mode 100644
index 0000000000..e1ce2fd906
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/global-platform/mac/platformKeys.properties
@@ -0,0 +1,34 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#mac
+#this file defines the on screen display names for the various modifier keys
+#these are used in XP menus to show keyboard shortcuts
+
+# Platform: Mac
+# This file defines the on-screen display names for the various modifier keys
+# and the Return key (VK_RETURN).
+# These are used in XP menus to show keyboard shortcuts.
+
+# The Shift key - open up arrow symbol (ctrl-e)
+VK_SHIFT=⇧
+
+# The Command key - clover leaf symbol (ctrl-q)
+VK_META=⌘
+
+# The Win key - never generated by native key event
+VK_WIN=win
+
+# The Option/Alt key - splitting tracks symbol (ctrl-g)
+VK_ALT=⌥
+
+# The Control key - hat symbol (ctrl-f)
+VK_CONTROL=⌃
+
+# The Return key (on the main keyboard or numpad):
+# "Enter" on Windows/Unix, "Return" on Mac
+VK_RETURN=Return
+
+# The separator character used between modifiers (none on Mac OS)
+MODIFIER_SEPARATOR=
diff --git a/l10n-vi/toolkit/chrome/global-platform/unix/intl.properties b/l10n-vi/toolkit/chrome/global-platform/unix/intl.properties
new file mode 100644
index 0000000000..71265a9ef1
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/global-platform/unix/intl.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 (intl.ellipsis): Use the unicode ellipsis char, \u2026,
+# or use "..." if \u2026 doesn't suit traditions in your locale.
+intl.ellipsis=…
diff --git a/l10n-vi/toolkit/chrome/global-platform/unix/platformKeys.properties b/l10n-vi/toolkit/chrome/global-platform/unix/platformKeys.properties
new file mode 100644
index 0000000000..28e77ecaa5
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/global-platform/unix/platformKeys.properties
@@ -0,0 +1,34 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#default
+#this file defines the on screen display names for the various modifier keys
+#these are used in XP menus to show keyboard shortcuts
+
+# Platform: Unix
+# This file defines the on-screen display names for the various modifier keys
+# and the Enter key (VK_RETURN).
+# These are used in XP menus to show keyboard shortcuts.
+
+# The Shift key
+VK_SHIFT=Shift
+
+# The Command key
+VK_META=Meta
+
+# The Win key (Super key and Hyper keys are mapped to DOM Win key)
+VK_WIN=Win
+
+# The Alt key
+VK_ALT=Alt
+
+# The Control key
+VK_CONTROL=Ctrl
+
+# The Enter key (on the main keyboard or numpad):
+# "Enter" on Windows/Unix, "Return" on Mac
+VK_RETURN=Enter
+
+# The separator character used between modifiers
+MODIFIER_SEPARATOR=+
diff --git a/l10n-vi/toolkit/chrome/global-platform/win/intl.properties b/l10n-vi/toolkit/chrome/global-platform/win/intl.properties
new file mode 100644
index 0000000000..71265a9ef1
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/global-platform/win/intl.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 (intl.ellipsis): Use the unicode ellipsis char, \u2026,
+# or use "..." if \u2026 doesn't suit traditions in your locale.
+intl.ellipsis=…
diff --git a/l10n-vi/toolkit/chrome/global-platform/win/platformKeys.properties b/l10n-vi/toolkit/chrome/global-platform/win/platformKeys.properties
new file mode 100644
index 0000000000..2d0dd84b95
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/global-platform/win/platformKeys.properties
@@ -0,0 +1,34 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#default
+#this file defines the on screen display names for the various modifier keys
+#these are used in XP menus to show keyboard shortcuts
+
+# Platform: Windows
+# This file defines the on-screen display names for the various modifier keys
+# and the Enter key (VK_RETURN).
+# These are used in XP menus to show keyboard shortcuts.
+
+# The Shift key
+VK_SHIFT=Shift
+
+# The Command key
+VK_META=Meta
+
+# The Win key
+VK_WIN=Win
+
+# The Alt key
+VK_ALT=Alt
+
+# The Control key
+VK_CONTROL=Ctrl
+
+# The Enter key (on the main keyboard or numpad):
+# "Enter" on Windows/Unix, "Return" on Mac
+VK_RETURN=Enter
+
+# The separator character used between modifiers
+MODIFIER_SEPARATOR=+
diff --git a/l10n-vi/toolkit/chrome/global/aboutReader.properties b/l10n-vi/toolkit/chrome/global/aboutReader.properties
new file mode 100644
index 0000000000..934422f571
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/global/aboutReader.properties
@@ -0,0 +1,66 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#LOCALIZATION NOTE (aboutReader.loading2):
+# Use the unicode ellipsis char, \u2026,
+# or use "..." if \u2026 doesn't suit traditions in your locale.
+aboutReader.loading2=Đang tải…
+aboutReader.loadError=Thất bại khi tải bài viết từ trang
+
+aboutReader.colorScheme.light=Sáng
+aboutReader.colorScheme.dark=Tối
+aboutReader.colorScheme.sepia=Nâu đen
+aboutReader.colorScheme.auto=Tự động
+
+# LOCALIZATION NOTE (aboutReader.estimatedReadTimeValue1): Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is the number of minutes it is estimated to take to read the article
+# example: `3 minutes`
+aboutReader.estimatedReadTimeValue1=#1 phút
+
+#LOCALIZATION NOTE (aboutReader.estimatedReadTimeRange1): Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# When there is some uncertainty in how long the article will take to read show a range of
+# minutes it is expected to take.
+# #1 is the number of minutes it is estimated to take to read the article for a fast reader
+# #2 is the number of minutes it is estimated to take to read the article for a slow reader
+# #2 is the variable used to determine the plural form to use.
+# example: `5-8 minutes`
+aboutReader.estimatedReadTimeRange1=#1-#2 phút
+
+# LOCALIZATION NOTE (aboutReader.fontType.serif, aboutReader.fontType.sans-serif):
+# These are the styles of typeface that are options in the reader view controls.
+aboutReader.fontType.serif=Serif
+aboutReader.fontType.sans-serif=Sans-serif
+
+# LOCALIZATION NOTE (aboutReader.fontTypeSample): String used to sample font types.
+# For followup see: https://bugzilla.mozilla.org/show_bug.cgi?id=1637089
+aboutReader.fontTypeSample=Aa
+
+aboutReader.toolbar.close=Đóng chế độ đọc sách
+aboutReader.toolbar.typeControls=Kiểu hiển thị
+
+# This is used as a label for the Reader View toolbar button.
+# This is a label used for the Save to Pocket option in the toolbar.
+# %S is replaced by Pocket.
+readerView.savetopocket.label=Lưu vào %S
+# This is a label used for done option in the toolbar
+readerView.done.label=Xong
+# These are used for the Reader View toolbar button and the menuitem within the
+# View menu.
+readerView.enter=Vào chế độ đọc sách
+readerView.enter.accesskey=R
+readerView.close=Đóng chế độ đọc sách
+readerView.close.accesskey=R
+
+# These are used as tooltips in Type Control
+aboutReader.toolbar.minus = Giảm cỡ chữ
+aboutReader.toolbar.plus = Tăng cỡ chữ
+aboutReader.toolbar.contentwidthminus = Giảm chiều rộng nội dung
+aboutReader.toolbar.contentwidthplus = Tăng chiều rộng nội dung
+aboutReader.toolbar.lineheightminus = Giảm độ rộng các hàng
+aboutReader.toolbar.lineheightplus = Tăng độ rộng các hàng
+aboutReader.toolbar.colorschemelight = Phối màu sáng
+aboutReader.toolbar.colorschemedark = Phối màu tối
+aboutReader.toolbar.colorschemesepia = Phối màu nâu đen
diff --git a/l10n-vi/toolkit/chrome/global/aboutStudies.properties b/l10n-vi/toolkit/chrome/global/aboutStudies.properties
new file mode 100644
index 0000000000..e174c4695c
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/global/aboutStudies.properties
@@ -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/.
+
+
+# LOCALIZATION NOTE (title): keep "Shield" in English. See
+# https://wiki.mozilla.org/Firefox/Shield/Shield_Studies for more information
+title = Shield nghiên cứu
+removeButton = Xóa
+
+# LOCALIZATION NOTE (activeStudiesList): Title above a list of active studies
+activeStudiesList = Nghiên cứu đang hoạt động
+# LOCALIZATION NOTE (activeStudiesList): Title above a list of completed studies
+completedStudiesList = Nghiên cứu xong
+# LOCALIZATION NOTE (activeStatus): Displayed for an active study
+activeStatus = Hoạt động
+# LOCALIZATION NOTE (completeStatus): Displayed for a study that is already complete
+completeStatus = Hoàn tất
+
+updateButtonWin = Tùy chọn cập nhật
+updateButtonUnix = Tuỳ chỉnh cập nhật
+learnMore = Tìm hiểu thêm
+noStudies = Bạn đã không tham gia vào bất kỳ nghiên cứu nào.
+disabledList = Đây là danh sách các nghiên cứu mà bạn đã tham gia. Không có nghiên cứu mới nào sẽ chạy.
+# LOCALIZATION NOTE (enabledList): %S is brandShortName (e.g. Firefox)
+enabledList = Đây là gì? %S có thể cài đặt và chạy các nghiên cứu theo thời gian.
+
+# LOCALIZATION NOTE (preferenceStudyDescription) $1%S will be replaced with the
+# name of a preference (such as "stream.improvesearch.topSiteSearchShortcuts")
+# and $2%S will be replaced with the value of that preference. Both values will
+# be formatted differently than the surrounding text.
+preferenceStudyDescription = Nghiên cứu này đặt %1$S thành %2$S. \ No newline at end of file
diff --git a/l10n-vi/toolkit/chrome/global/aboutWebrtc.properties b/l10n-vi/toolkit/chrome/global/aboutWebrtc.properties
new file mode 100644
index 0000000000..6bbc156425
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/global/aboutWebrtc.properties
@@ -0,0 +1,172 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 (document_title):
+# The text "WebRTC" is a proper noun and should not be translated.
+# It is the general label for the standards based technology. see http://www.webrtc.org
+document_title = WebRTC nội bộ
+cannot_retrieve_log = Không thể truy xuất dữ liệu nhật ký WebRTC
+
+# LOCALIZATION NOTE (save_page_msg):
+# %1$S will be replaced by a full path file name: the target of the SavePage operation.
+save_page_msg = đã lưu trang vào: %1$S
+
+# LOCALIZATION NOTE (save_page_dialog_title): "about:webrtc" is a internal browser URL and should not be
+# translated. This string is used as a title for a file save dialog box.
+save_page_dialog_title = lưu about:webrtc thành
+
+# LOCALIZATION NOTE (debug_mode_off_state_msg):
+# %1$S will be replaced by the full path file name of the debug log.
+debug_mode_off_state_msg = nhật ký theo dõi có thể được tìm thấy tại: %1$S
+
+# LOCALIZATION NOTE (debug_mode_on_state_msg):
+# %1$S will be replaced by the full path file name of the debug log.
+debug_mode_on_state_msg = chế độ gỡ lỗi hoạt động, theo dõi nhật ký tại: %1$S
+
+# LOCALIZATION NOTE (aec_logging_msg_label, aec_logging_off_state_label,
+# aec_logging_on_state_label, aec_logging_on_state_msg):
+# AEC is an abbreviation for Acoustic Echo Cancellation.
+aec_logging_msg_label = Ghi nhật ký AEC
+aec_logging_off_state_label = Bắt đầu ghi nhật ký AEC
+aec_logging_on_state_label = Dừng ghi nhật ký AEC
+aec_logging_on_state_msg = Bản ghi AEC đang hoạt động (nói chuyện với người gọi trong vài phút và sau đó dừng chụp)
+
+# LOCALIZATION NOTE (aec_logging_off_state_msg):
+# %1$S will be replaced by the full path to the directory containing the captured log files.
+# AEC is an abbreviation for Acoustic Echo Cancellation.
+aec_logging_off_state_msg = các tập tin nhật ký đã chụp có thể được tìm thấy trong: %1$S
+
+# LOCALIZATION NOTE (peer_connection_id_label): "PeerConnection" is a proper noun
+# associated with the WebRTC module. "ID" is an abbreviation for Identifier. This string
+# should not normally be translated and is used as a data label.
+peer_connection_id_label = PeerConnection ID
+
+# LOCALIZATION NOTE (sdp_heading, local_sdp_heading, remote_sdp_heading, sdp_history_heading, sdp_parsing_errors_heading):
+# "SDP" is an abbreviation for Session Description Protocol, an IETF standard.
+# See http://wikipedia.org/wiki/Session_Description_Protocol
+sdp_heading = SDP
+local_sdp_heading = SDP nội bộ
+remote_sdp_heading = SDP từ xa
+
+sdp_history_heading = Lịch sử SDP
+sdp_parsing_errors_heading = Lỗi phân tích SDP
+# LOCALIZATION NOTE (sdp_set_at_timestamp): the local or remote SDP and when it was set
+# %1$S will be replaced by local_sdp_heading or remote sdp_heading and %2$S
+# will be a numeric timestamp.
+sdp_set_at_timestamp = Đặt %1$S tại timestamp %2$S
+# LOCALIZATION NOTE (sdp_set_timestamp): the absolute and relative times
+# when the sdp was set. %1$S and $2$S are both numeric timestamps. The
+# first is the absolute time, the second is the elapsed time since the
+# first sdp was set. ms is an abbreviation for milliseconds.
+sdp_set_timestamp = Timestamp %1$S (+ %2$S ms)
+# LOCALIZATION NOTE (offer, answer):
+# offer and answer describe whether the local sdp is an offer or answer or
+# the remote sdp is an offer or answer. These are appended to the local and
+# remote sdp headings.
+offer = Cung cấp
+answer = Trả lời
+
+# LOCALIZATION NOTE (rtp_stats_heading): "RTP" is an abbreviation for the
+# Real-time Transport Protocol, an IETF specification, and should not
+# normally be translated. "Stats" is an abbreviation for Statistics.
+rtp_stats_heading = Thống kê RTP
+
+# LOCALIZATION NOTE (ice_state, ice_stats_heading): "ICE" is an abbreviation
+# for Interactive Connectivity Establishment, which is an IETF protocol,
+# and should not normally be translated. "Stats" is an abbreviation for
+# Statistics.
+ice_state = Trạng thái ICE
+ice_stats_heading = Thống kê ICE
+ice_pair_bytes_sent = Byte đã gửi
+ice_pair_bytes_received = Byte đã nhận
+ice_component_id = ID thành phần
+
+# LOCALIZATION NOTE (avg_bitrate_label, avg_framerate_label): "Avg." is an abbreviation
+# for Average. These are used as data labels.
+avg_bitrate_label = Tốc độ bit trung bình
+avg_framerate_label = Tốc độ khung trung bình
+
+# LOCALIZATION NOTE (typeLocal, typeRemote): These adjectives are used to label a
+# line of statistics collected for a peer connection. The data represents
+# either the local or remote end of the connection.
+typeLocal = Cục bộ
+typeRemote = Từ xa
+
+# LOCALIZATION NOTE (nominated): This adjective is used to label a table column.
+# Cells in this column contain the localized javascript string representation of "true"
+# or are left blank.
+nominated = Đề cử
+
+# LOCALIZATION NOTE (selected): This adjective is used to label a table column.
+# Cells in this column contain the localized javascript string representation of "true"
+# or are left blank. This represents an attribute of an ICE candidate.
+selected = Chọn
+
+# LOCALIZATION NOTE (trickle_caption_msg2, trickle_highlight_color_name2): ICE
+# candidates arriving after the remote answer arrives are considered trickled
+# (an attribute of an ICE candidate). These are highlighted in the ICE stats
+# table with light blue background. %S is replaced by
+# trickle_highlight_color_name2 ("blue"), highlighted with a light blue
+# background to visually match the trickled ICE candidates.
+trickle_caption_msg2 = Các ứng cử viên bị mắc kẹt (đến sau khi trả lời) được tô sáng bằng %S
+trickle_highlight_color_name2 = màu xanh lam
+
+save_page_label = Lưu trang
+debug_mode_msg_label = Chế độ gỡ lỗi
+debug_mode_off_state_label = Bắt đầu chế độ gỡ lỗi
+debug_mode_on_state_label = Dừng chế độ gỡ lỗi
+stats_heading = Thống kê phiên
+stats_clear = Xóa lịch sử
+log_heading = Nhật ký kết nối
+log_clear = Xóa nhật ký
+log_show_msg = hiển thị nhật ký
+log_hide_msg = ẩn nhật ký
+connection_closed = đã đóng
+priority = Ưu tiên
+fold_show_msg = hiện chi tiết
+fold_show_hint = nhấn chuột để mở rộng mục này
+fold_hide_msg = ẩn chi tiết
+fold_hide_hint = nhấn chuột để thu gọn mục này
+dropped_frames_label = Khung hình bị rơi
+discarded_packets_label = Các gói bị loại bỏ
+decoder_label = Bộ giải mã
+encoder_label = Bộ mã hóa
+received_label = Đã nhận
+packets = gói tin
+lost_label = Đã mất
+jitter_label = Độ rung
+sent_label = Đã gửi
+
+show_tab_label = Hiển thị thẻ
+
+frame_stats_heading = Thống kê khung hình video
+n_a = N/A
+width_px = Chiều rộng (px)
+height_px = Chiều cao (px)
+time_elapsed = Thời gian đã trôi qua (giây)
+rotation_degrees = Xoay (độ)
+# SSRCs are identifiers that represent endpoints in an RTP stream
+# This is an SSRC on the local side of the connection that is receiving RTP
+# This is an SSRC on the remote side of the connection that is sending RTP
+# An option whose value will not be displayed but instead noted as having been
+# provided
+configuration_element_provided = Cung cấp
+# An option whose value will not be displayed but instead noted as having not
+# been provided
+configuration_element_not_provided = Không cung cấp
+# The options set by the user in about:config that could impact a WebRTC call
+custom_webrtc_configuration_heading = Người dùng thiết lập tùy chọn WebRTC
+# Section header for estimated bandwidths of WebRTC media flows
+bandwidth_stats_heading = Băng thông ước tính
+# The ID of the MediaStreamTrack
+# The estimated bandwidth available for sending WebRTC media in bytes per second
+send_bandwidth_bytes_sec = Băng thông gửi (byte/giây)
+# The estimated bandwidth available for receiving WebRTC media in bytes per second
+receive_bandwidth_bytes_sec = Băng thông nhận (byte/giây)
+# Maximum number of bytes per second that will be padding zeros at the ends of packets
+# The amount of time inserted between packets to keep them spaced out
+# The amount of time it takes for a packet to travel from the local machine to the remote machine,
+# and then have a packet return
+round_trip_time_ms = RTT ms
+
diff --git a/l10n-vi/toolkit/chrome/global/appPicker.dtd b/l10n-vi/toolkit/chrome/global/appPicker.dtd
new file mode 100644
index 0000000000..09220e6b75
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/global/appPicker.dtd
@@ -0,0 +1,7 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY NoAppFound.label "Không có ứng dụng nào để mở kiểu tập tin này.">
+<!ENTITY BrowseButton.label "Chọn ứng dụng…">
+<!ENTITY SendMsg.label "Đưa tập tin này qua:">
diff --git a/l10n-vi/toolkit/chrome/global/autocomplete.properties b/l10n-vi/toolkit/chrome/global/autocomplete.properties
new file mode 100644
index 0000000000..f9b7b9b663
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/global/autocomplete.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 (searchWithEngine, searchInPrivateWindowWithEngine): %S will
+# be replaced with the search engine provider's name. This format was chosen
+# because the provider can also end with "Search" (e.g.: MSN Search).
+searchWithEngine = Tìm với %S
+
+searchInPrivateWindowWithEngine = Tìm kiếm với %S trong cửa sổ riêng tư
+
+# LOCALIZATION NOTE (searchInPrivateWindow): Used when the private browsing
+# engine is the same as the default engine.
+searchInPrivateWindow = Tìm kiếm trong cửa sổ riêng tư
+
+# LOCALIZATION NOTE (switchToTab2): This is the same as the older switchToTab
+# string that it's replacing, except it uses title case, so "Switch" and "Tab"
+# are capitalized.
+switchToTab2 = Chuyển sang thẻ
+
+# LOCALIZATION NOTE (visit): This is shown next to autocomplete entries that are
+# simple URLs or sites, which will be visited when the user selects them.
+visit = Truy cập
+
+# LOCALIZATION NOTE (bookmarkKeywordSearch): This is the title of autocomplete
+# entries that are bookmark keyword searches. %1$S will be replaced with the
+# domain name of the bookmark, and %2$S will be replaced with the keyword
+# search text that the user is typing. %2$S will not be empty.
+bookmarkKeywordSearch = %1$S: %2$S
diff --git a/l10n-vi/toolkit/chrome/global/browser.properties b/l10n-vi/toolkit/chrome/global/browser.properties
new file mode 100644
index 0000000000..7902e5ccab
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/global/browser.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/.
+
+formPostSecureToInsecureWarning.title = Cảnh báo bảo mật
+formPostSecureToInsecureWarning.message = Thông tin bạn nhập vào sẽ được gửi thông qua một kết nối không bảo mật và có thể bị một bên thứ ba đọc được.\n\nBạn có chắc chắn muốn gửi thông tin này không?
+formPostSecureToInsecureWarning.continue = Tiếp tục
diff --git a/l10n-vi/toolkit/chrome/global/charsetMenu.dtd b/l10n-vi/toolkit/chrome/global/charsetMenu.dtd
new file mode 100644
index 0000000000..aa93cc650c
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/global/charsetMenu.dtd
@@ -0,0 +1,5 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY charsetMenu2.label "Bảng mã văn bản">
diff --git a/l10n-vi/toolkit/chrome/global/charsetMenu.properties b/l10n-vi/toolkit/chrome/global/charsetMenu.properties
new file mode 100644
index 0000000000..17ccf26699
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/global/charsetMenu.properties
@@ -0,0 +1,127 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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: The property keys ending with ".key" are for access keys.
+# Localizations may add or delete properties where the property key ends with
+# ".key" as appropriate for the localization. The code that uses this data can
+# deal with the absence of an access key for an item.
+#
+# For gbk, gbk.bis and gbk.bis.key are used to trigger string changes in
+# localizations.
+#
+# In the en-US version of this file, access keys are given to the following:
+# * UTF-8
+# * All encodings that are the fallback encoding for some locale in Firefox
+# * All encodings that are the fallback encoding for some locale in IE
+# * All Japanese encodings
+#
+# For the items whose property key does not end in ".key" and whose value
+# includes "(" U+0028 LEFT PARENTHESIS, the "(" character is significant for
+# processing by CharsetMenu.jsm. If your localization does not use ASCII
+# parentheses where en-US does in this file, please file a bug to make
+# CharsetMenu.jsm also recognize the delimiter your localization uses.
+# (When this code was developed, all localizations appeared to use
+# U+0028 LEFT PARENTHESIS for this purpose.)
+
+# Auto-Detect (sub)menu
+charsetMenuCharsets = Bảng mã
+charsetMenuAutodet = Tự động nhận diện
+# 'A' is reserved for Arabic:
+charsetMenuAutodet.key = D
+charsetMenuAutodet.off = (tắt)
+charsetMenuAutodet.off.key = o
+charsetMenuAutodet.ru = Nga
+charsetMenuAutodet.ru.key = R
+charsetMenuAutodet.uk = Ucraina
+charsetMenuAutodet.uk.key = U
+
+# Globally-relevant
+
+_autodetect_all.key = m
+_autodetect_all = Tự động
+UTF-8.key = U
+UTF-8 = Unicode
+windows-1252.key = W
+windows-1252 = Phương Tây
+
+# Arabic
+windows-1256.key = A
+windows-1256 = Ả Rập (Windows)
+ISO-8859-6 = Ả Rập (ISO)
+
+# Baltic
+windows-1257.key = B
+windows-1257 = Bắc Âu (Windows)
+ISO-8859-4 = Baltic (ISO)
+
+# Central European
+windows-1250.key = E
+windows-1250 = Trung Âu (Windows-1250)
+ISO-8859-2.key = l
+ISO-8859-2 = Trung Âu (ISO)
+
+# Chinese, Simplified
+gbk.bis.key = S
+gbk.bis = Hoa giản thể
+
+# Chinese, Traditional
+Big5.key = T
+Big5 = Hoa phồn thể
+
+# Cyrillic
+windows-1251.key = C
+windows-1251 = Kirin (Windows)
+ISO-8859-5 = Kirin (ISO)
+KOI8-R = Kirin (KOI8-R)
+KOI8-U = Kirin (KOI8-U)
+IBM866 = Kirin (DOS)
+
+# UI string in anticipation of Cyrillic analog of bug 1543077;
+# deliberately not in use yet
+
+# LOCALIZATION NOTE (Cyrillic.key): If taken into use, this string will appear
+# instead of the string for windows-1251.key, so the use of the same
+# accelerator is deliberate.
+Cyrillic.key = C
+# LOCALIZATION NOTE (Cyrillic): If taken into use, this string will appear
+# as a single item instead of the five items windows-1251, ISO-8859-5,
+# KOI8-R, KOI8-U, and IBM866, so this string does not need to make sense
+# together with those strings and should be translated the way those were
+# but omitting the part in parentheses.
+Cyrillic = Tiếng Kirin
+
+# Greek
+windows-1253.key = G
+windows-1253 = Hy Lạp (Windows)
+ISO-8859-7.key = O
+ISO-8859-7 = Hy Lạp (ISO)
+
+# Hebrew
+windows-1255.key = H
+windows-1255 = Do Thái
+# LOCALIZATION NOTE (ISO-8859-8): The value for this item should begin with
+# the same word for Hebrew as the value for windows-1255 so that this item
+# sorts right after that one in the collation order for your locale.
+ISO-8859-8 = Hebrew trực quan
+
+# Japanese (NOT AN ENCODING NAME)
+Japanese.key = J
+Japanese = Tiếng Nhật
+
+# Korean
+EUC-KR.key = K
+EUC-KR = Hàn Quốc
+
+# Thai
+windows-874.key = i
+windows-874 = Thái
+
+# Turkish
+windows-1254.key = r
+windows-1254 = Thổ Nhĩ Kì
+
+# Vietnamese
+windows-1258.key = V
+windows-1258 = Việt
+
diff --git a/l10n-vi/toolkit/chrome/global/commonDialog.dtd b/l10n-vi/toolkit/chrome/global/commonDialog.dtd
new file mode 100644
index 0000000000..045ae15034
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/global/commonDialog.dtd
@@ -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/. -->
+
+<!ENTITY editfield0.label "Tên đăng nhập:">
+<!ENTITY editfield1.label "Mật khẩu:">
+<!ENTITY copyCmd.label "Sao chép">
+<!ENTITY copyCmd.accesskey "C">
+<!ENTITY selectAllCmd.label "Chọn tất cả">
+<!ENTITY selectAllCmd.accesskey "B">
diff --git a/l10n-vi/toolkit/chrome/global/commonDialogs.properties b/l10n-vi/toolkit/chrome/global/commonDialogs.properties
new file mode 100644
index 0000000000..a757c40e62
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/global/commonDialogs.properties
@@ -0,0 +1,35 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+Alert=Cảnh báo
+Confirm=Xác nhận
+ConfirmCheck=Xác nhận
+Prompt=Nhắc
+# LOCALIZATION NOTE - %S is brandFullName
+PromptUsernameAndPassword3=Yêu cầu xác minh - %S
+# LOCALIZATION NOTE - %S is brandFullName
+PromptPassword3=Yêu cầu mật khẩu - %S
+Select=Chọn
+OK=OK
+Cancel=Hủy bỏ
+Yes=&Có
+No=&Không
+Save=&Lưu
+Revert=&Hoàn nguyên
+DontSave=&Không lưu
+ScriptDlgGenericHeading=[Ứng dụng JavaScript]
+ScriptDlgHeading=Trang %S cho biết:
+ScriptDlgNullPrincipalHeading=Trang này thông báo:
+ScriptDialogLabel=Không cho trang này tạo các hộp thoại phụ
+ScriptDialogPreventTitle=Xác nhận Tùy chỉnh Hộp thoại
+# LOCALIZATION NOTE (EnterLoginForRealm3, EnterLoginForProxy3):
+# %1 is an untrusted string provided by a remote server. It could try to
+# take advantage of sentence structure in order to mislead the user (see
+# bug 244273). %1 should be integrated into the translated sentences as
+# little as possible. %2 is the url of the site being accessed.
+EnterLoginForRealm3=%2$S yêu cầu tên người dùng và mật khẩu của bạn. Trang web nói: “%1$S”
+EnterLoginForProxy3=Proxy %2$S yêu cầu tên người dùng và mật khẩu. Trang web nói: “%1$S”
+EnterUserPasswordFor2=%1$S yêu cầu tên người dùng và mật khẩu của bạn.
+EnterUserPasswordForCrossOrigin2=%1$S yêu cầu tên người dùng và mật khẩu của bạn. CHÚ Ý: Mật khẩu của bạn sẽ không bị gửi đến các trang web bạn đang truy cập!
+EnterPasswordFor=Nhập mật khẩu cho %1$S trên %2$S
diff --git a/l10n-vi/toolkit/chrome/global/contentAreaCommands.properties b/l10n-vi/toolkit/chrome/global/contentAreaCommands.properties
new file mode 100644
index 0000000000..b43f85236e
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/global/contentAreaCommands.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/.
+
+# context menu strings
+
+SaveImageTitle=Lưu ảnh
+SaveMediaTitle=Lưu đa phương tiện
+SaveVideoTitle=Lưu video
+SaveAudioTitle=Lưu audio
+SaveLinkTitle=Lưu ra tập tin
+DefaultSaveFileName=chỉ mục
+WebPageCompleteFilter=Trang web, đầy đủ
+WebPageHTMLOnlyFilter=Trang web, chỉ HTML
+WebPageXHTMLOnlyFilter=Trang web, chỉ XHTML
+WebPageSVGOnlyFilter=Trang web, chỉ SVG
+WebPageXMLOnlyFilter=Trang web, chỉ XML
+
+# LOCALIZATION NOTE (filesFolder):
+# This is the name of the folder that is created parallel to a HTML file
+# when it is saved "With Images". The %S section is replaced with the
+# leaf name of the file being saved (minus extension).
+filesFolder=%S_files
diff --git a/l10n-vi/toolkit/chrome/global/datetimebox.dtd b/l10n-vi/toolkit/chrome/global/datetimebox.dtd
new file mode 100644
index 0000000000..d1f58b9ae6
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/global/datetimebox.dtd
@@ -0,0 +1,35 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!-- Placeholders for input type=time -->
+
+<!ENTITY time.hour.placeholder "--">
+<!ENTITY time.minute.placeholder "--">
+<!ENTITY time.second.placeholder "--">
+<!ENTITY time.millisecond.placeholder "--">
+<!ENTITY time.dayperiod.placeholder "--">
+
+<!-- Field labels for input type=time -->
+
+<!ENTITY time.hour.label "Giờ">
+<!ENTITY time.minute.label "Phút">
+<!ENTITY time.second.label "Giây">
+<!ENTITY time.millisecond.label "Mili giây">
+<!ENTITY time.dayperiod.label "SA/CH">
+
+<!-- Placeholders for input type=date -->
+
+<!ENTITY date.year.placeholder "yyyy">
+<!ENTITY date.month.placeholder "mm">
+<!ENTITY date.day.placeholder "dd">
+
+<!-- Field labels for input type=date -->
+
+<!ENTITY date.year.label "Năm">
+<!ENTITY date.month.label "Tháng">
+<!ENTITY date.day.label "Ngày">
+
+<!-- Date/time clear button -->
+
+<!ENTITY datetime.reset.label "Xóa">
diff --git a/l10n-vi/toolkit/chrome/global/dialog.properties b/l10n-vi/toolkit/chrome/global/dialog.properties
new file mode 100644
index 0000000000..d19d4688bb
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/global/dialog.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/.
+
+button-accept=OK
+button-cancel=Hủy bỏ
+button-help=Trợ giúp
+button-disclosure=Thông tin thêm
+accesskey-accept=
+accesskey-cancel=
+accesskey-help=H
+accesskey-disclosure=I
diff --git a/l10n-vi/toolkit/chrome/global/dialogOverlay.dtd b/l10n-vi/toolkit/chrome/global/dialogOverlay.dtd
new file mode 100644
index 0000000000..8c5ce4e3ad
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/global/dialogOverlay.dtd
@@ -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/. -->
+
+<!-- WARNING!!! This file is obsoleted by the dialog.xml widget -->
+<!-- OK Cancel Buttons -->
+
+
+<!ENTITY okButton.label "OK">
+<!ENTITY cancelButton.label "Hủy bỏ">
diff --git a/l10n-vi/toolkit/chrome/global/editMenuOverlay.dtd b/l10n-vi/toolkit/chrome/global/editMenuOverlay.dtd
new file mode 100644
index 0000000000..e642f96ea1
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/global/editMenuOverlay.dtd
@@ -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/. -->
+
+<!ENTITY findCmd.label "Tìm">
+<!ENTITY findCmd.key "F">
+<!ENTITY findCmd.accesskey "F">
+<!ENTITY findAgainCmd.label "Tìm tiếp">
+<!ENTITY findAgainCmd.key "G">
+<!ENTITY findAgainCmd.key2 "VK_F3">
+<!ENTITY findAgainCmd.accesskey "g">
diff --git a/l10n-vi/toolkit/chrome/global/extensions.properties b/l10n-vi/toolkit/chrome/global/extensions.properties
new file mode 100644
index 0000000000..724dfdea05
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/global/extensions.properties
@@ -0,0 +1,44 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+csp.error.missing-directive = Không có chính sách nào yêu cầu chỉ thị '%S'
+
+#LOCALIZATION NOTE (csp.error.illegal-keyword) %1$S is the name of a CSP directive, such as "script-src". %2$S is the name of a CSP keyword, usually 'unsafe-inline'.
+csp.error.illegal-keyword = Chỉ thị ‘%1$S’ chứa từ khóa %2$S bị cấm
+
+#LOCALIZATION NOTE (csp.error.illegal-protocol) %2$S a protocol name, such as "http", which appears as "http:", as it would in a URL.
+csp.error.illegal-protocol = Chỉ thị ‘%1$S’ chứa một thứ bị cấm %2$S: nguồn giao thức
+
+#LOCALIZATION NOTE (csp.error.missing-host) %2$S a protocol name, such as "http", which appears as "http:", as it would in a URL.
+csp.error.missing-host = %2$S: giao thức yêu cầu máy chủ lưu trữ trong các chỉ thị ‘%1$S’
+
+#LOCALIZATION NOTE (csp.error.missing-source) %1$S is the name of a CSP directive, such as "script-src". %2$S is the name of a CSP source, usually 'self'.
+csp.error.missing-source = ‘%1$S’ phải được bao gồm trong nguồn %2$S
+
+#LOCALIZATION NOTE (csp.error.illegal-host-wildcard) %2$S a protocol name, such as "http", which appears as "http:", as it would in a URL.
+csp.error.illegal-host-wildcard = %2$S: nguồn ký tự đại diện trong chỉ thị ‘%1$S’ phải bao gồm ít nhất một tên miền phụ không chung chung (ví dụ: *.example.com thay vì *.com)
+
+#LOCALIZATION NOTE (uninstall.confirmation.title) %S is the name of the extension which is about to be uninstalled.
+uninstall.confirmation.title = Gỡ bỏ %S
+
+#LOCALIZATION NOTE (uninstall.confirmation.message) %S is the name of the extension which is about to be uninstalled.
+uninstall.confirmation.message = Tiện ích “%S” yêu cầu gỡ cài đặt. Bạn muốn làm gì?
+
+uninstall.confirmation.button-0.label = Gỡ bỏ
+uninstall.confirmation.button-1.label = Tiếp tục cài đặt
+
+saveaspdf.saveasdialog.title = Lưu thành
+
+#LOCALIZATION NOTE (newTabControlled.message2) %S is the icon and name of the extension which updated the New Tab page.
+newTabControlled.message2 = Một tiện ích mở rộng, %S, đã thay đổi trang này khi bạn mở một thẻ mới.
+newTabControlled.learnMore = Tìm hiểu thêm
+
+#LOCALIZATION NOTE (homepageControlled.message) %S is the icon and name of the extension which updated the homepage.
+homepageControlled.message = Một tiện ích mở rộng, %S, đã thay đổi trang này khi bạn mở trang chủ và cửa sổ mới.
+homepageControlled.learnMore = Tìm hiểu thêm
+
+#LOCALIZATION NOTE (tabHideControlled.message) %1$S is the icon and name of the extension which hid tabs, %2$S is the icon of the all tabs button.
+tabHideControlled.message = Một tiện ích mở rộng, %1$S, đang ẩn một số thẻ của bạn. Bạn vẫn có thể truy cập tất cả các thẻ đó trong %2$S.
+tabHideControlled.learnMore = Tìm hiểu thêm
+
diff --git a/l10n-vi/toolkit/chrome/global/fallbackMenubar.properties b/l10n-vi/toolkit/chrome/global/fallbackMenubar.properties
new file mode 100644
index 0000000000..624610f7a9
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/global/fallbackMenubar.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/.
+
+# OSX only. Default menu label when there is no xul menubar.
+
+quitMenuitem.label=Thoát
+quitMenuitem.key=q
diff --git a/l10n-vi/toolkit/chrome/global/filepicker.properties b/l10n-vi/toolkit/chrome/global/filepicker.properties
new file mode 100644
index 0000000000..862cfe9033
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/global/filepicker.properties
@@ -0,0 +1,17 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE: The extensions to which these descriptions refer
+# now live in toolkit/content/filepicker.properties
+allTitle=Tất cả tập tin
+htmlTitle=Tập tin HTML
+textTitle=Tập tin Văn bản
+imageTitle=Tập tin Hình ảnh
+xmlTitle=Tập tin XML
+xulTitle=Tập tin XUL
+appsTitle=Ứng dụng
+audioTitle=Tập tin Âm thanh
+videoTitle=Tập tin Phim
+
+formatLabel=Định dạng:
diff --git a/l10n-vi/toolkit/chrome/global/findbar.properties b/l10n-vi/toolkit/chrome/global/findbar.properties
new file mode 100644
index 0000000000..d2e1c121a1
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/global/findbar.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/.
+
+# strings used by the Find bar, split from browser.properties
+NotFound=Không tìm thấy
+WrappedToTop=Đã xuống tới cuối trang, bắt đầu lại từ đầu trang
+WrappedToBottom=Đã lên tới đầu trang, bắt đầu lại từ cuối trang
+NormalFind=Tìm trong trang này
+FastFind=Tìm nhanh
+FastFindLinks=Tìm nhanh (chỉ tìm liên kết)
+CaseSensitive=(Phân biệt HOA-thường)
+MatchDiacritics=(Dấu phụ phù hợp)
+EntireWord=(Chỉ toàn bộ từ)
+# LOCALIZATION NOTE (FoundMatches): Semicolon-separated list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is currently selected match and #2 the total amount of matches.
+FoundMatches=#1 trên #2 kết quả
+# LOCALIZATION NOTE (FoundMatchesCountLimit): Semicolon-separated list of plural
+# forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is the total amount of matches allowed before counting stops.
+FoundMatchesCountLimit=Tìm thấy hơn #1 kết quả
diff --git a/l10n-vi/toolkit/chrome/global/global-extension-fields.properties b/l10n-vi/toolkit/chrome/global/global-extension-fields.properties
new file mode 100644
index 0000000000..aa3bd5c189
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/global/global-extension-fields.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 (extension.default-theme@mozilla.org.name, extension.default-theme@mozilla.org.description): This is displayed in about:addons -> Appearance
+extension.default-theme@mozilla.org.name=Mặc định
+extension.default-theme@mozilla.org.description=Một chủ đề với bảng màu hệ điều hành.
+
diff --git a/l10n-vi/toolkit/chrome/global/globalKeys.dtd b/l10n-vi/toolkit/chrome/global/globalKeys.dtd
new file mode 100644
index 0000000000..76b9235713
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/global/globalKeys.dtd
@@ -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/. -->
+
+<!ENTITY openHelp.commandkey "VK_F1">
+<!ENTITY openHelpMac.commandkey "?">
diff --git a/l10n-vi/toolkit/chrome/global/intl.css b/l10n-vi/toolkit/chrome/global/intl.css
new file mode 100644
index 0000000000..2f54eb367d
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/global/intl.css
@@ -0,0 +1,11 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+/*
+ * This file contains all localizable skin settings such as
+ * font, layout, and geometry
+ */
+window {
+ font: 3mm tahoma,arial,helvetica,sans-serif;
+}
diff --git a/l10n-vi/toolkit/chrome/global/intl.properties b/l10n-vi/toolkit/chrome/global/intl.properties
new file mode 100644
index 0000000000..bb595f1b58
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/global/intl.properties
@@ -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/.
+
+# LOCALIZATION NOTE (intl.accept_languages):
+# This is a comma-separated list of valid BCP 47 language tags.
+#
+# Begin with the language tag of your locale. Next, include language
+# tags for other languages that you expect most users of your locale to be
+# able to speak, so that their browsing experience degrades gracefully if
+# content is not available in their primary language.
+#
+# It is recommended that you include "en-US, en" at the end of the list as a
+# last resort. However, if you know that users of your locale would prefer a
+# different variety of English, or if they are not likely to understand
+# English at all, you may opt to include a different English language tag, or
+# to exclude English altogether.
+#
+# For example, the Breton [br] locale might consider including French and
+# British English in their list, since those languages are commonly spoken in
+# the same area as Breton:
+# intl.accept_languages=br, fr-FR, fr, en-GB, en
+intl.accept_languages=vi-vn, vi, en-us, en
+
+# LOCALIZATION NOTE (font.language.group):
+# This preference controls the initial setting of the language drop-down menu
+# in the Content > Fonts & Colors > Advanced preference panel.
+#
+# Set it to the value of one of the menuitems in the "selectLangs" menulist in
+# http://dxr.mozilla.org/mozilla-central/source/browser/components/preferences/fonts.xul
+font.language.group=x-unicode
+
+# LOCALIZATION NOTE (intl.charset.detector):
+# This preference controls the initial setting for the character encoding
+# detector. Valid values are ja_parallel_state_machine for Japanese, ruprob
+# for Russian and ukprob for Ukrainian and the empty string to turn detection
+# off. The value must be empty for locales other than Japanese, Russian and
+# Ukrainian.
+intl.charset.detector=
+
+# LOCALIZATION NOTE (pluralRule): Pick the appropriate plural rule for your
+# language. This will determine how many plural forms of a word you will need
+# to provide and in what order.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+pluralRule=0
+
+# LOCALIZATION NOTE (intl.menuitems.alwaysappendaccesskeys, intl.menuitems.insertseparatorbeforeaccesskeys):
+# Valid values are: true, false, <empty string>
+# Missing preference or empty value equals false.
+intl.menuitems.alwaysappendaccesskeys=
+intl.menuitems.insertseparatorbeforeaccesskeys=true
diff --git a/l10n-vi/toolkit/chrome/global/keys.properties b/l10n-vi/toolkit/chrome/global/keys.properties
new file mode 100644
index 0000000000..d6ea18664b
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/global/keys.properties
@@ -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/.
+
+# LOCALIZATION NOTE : FILE This file contains the application's labels for keys on the keyboard.
+# If you decide to translate this file, you should translate it based on
+# the prevelant kind of keyboard for your target user.
+# LOCALIZATION NOTE : There are two types of keys, those w/ text on their labels
+# and those w/ glyphs.
+# LOCALIZATION NOTE : VK_<…> represents a key on the keyboard.
+#
+# For more information please see bugzilla bug 90888.
+
+# LOCALIZATION NOTE : FILE This file contains the application's labels for keys on the keyboard.
+# If you decide to translate this file, you should translate it based on
+# the prevalent kind of keyboard for your target user.
+# LOCALIZATION NOTE : There are two types of keys, those w/ text on their labels
+# and those w/ glyphs.
+# LOCALIZATION NOTE : VK_<…> represents a key on the keyboard.
+#
+# For more information please see bugzilla bug 90888.
+
+# F1..F10 should probably not be translated unless there are keyboards that actually have other labels
+# F11..F20 might be something else, but are really keyboard specific and not region/language specific
+# there are actually two different F11/F12 keys, I don't know which one these labels represent.
+# eg, F13..F20 on a sparc keyboard are labeled Props, Again .. Find, Cut
+# sparc also has Stop, Again and F11/F12. VK_F11/VK_F12 probably map to Stop/Again
+# LOCALIZATION NOTE : BLOCK Do not translate the next block
+VK_F1=F1
+VK_F2=F2
+VK_F3=F3
+VK_F4=F4
+VK_F5=F5
+VK_F6=F6
+VK_F7=F7
+VK_F8=F8
+VK_F9=F9
+VK_F10=F10
+
+VK_F11=F11
+VK_F12=F12
+VK_F13=F13
+VK_F14=F14
+VK_F15=F15
+VK_F16=F16
+VK_F17=F17
+VK_F18=F18
+VK_F19=F19
+VK_F20=F20
+# LOCALIZATION NOTE : BLOCK end do not translate block
+
+# LOCALIZATION NOTE : BLOCK GLYPHS, DO translate this block
+VK_UP=Mũi tên lên
+VK_DOWN=Mũi tên xuống
+VK_LEFT=Mũi tên trái
+VK_RIGHT=Mũi tên phải
+VK_PAGE_UP=Page Up
+VK_PAGE_DOWN=Page Down
+# LOCALIZATION NOTE : BLOCK end GLYPHS
+
+# Enter, backspace, and Tab might have both glyphs and text
+# if the keyboards usually have a glyph,
+# if there is a meaningful translation,
+# or if keyboards are localized
+# then translate them or insert the appropriate glyph
+# otherwise you should probably just translate the glyph regions
+
+VK_TAB=Tab
+VK_BACK=Backspace
+VK_DELETE=Del
+# LOCALIZATION NOTE : BLOCK end maybe GLYPHS
+# LOCALIZATION NOTE : BLOCK typing state keys
+VK_HOME=Home
+VK_END=End
+
+VK_ESCAPE=Esc
+VK_INSERT=Ins
+# LOCALIZATION NOTE : BLOCK end
diff --git a/l10n-vi/toolkit/chrome/global/mozilla.dtd b/l10n-vi/toolkit/chrome/global/mozilla.dtd
new file mode 100644
index 0000000000..a0cc7758e2
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/global/mozilla.dtd
@@ -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/. -->
+
+<!ENTITY mozilla.title.11.14
+'Cuốn sách của Mozilla, 11:14'>
+
+<!ENTITY mozilla.quote.11.14
+'Beast đã chấp nhận <em>bộ quần áo mới</em> và nghiên cứu cách thức của <em>Thời gian</em> và <em>Không gian</em> và <em>Ánh sáng</em> và <em>Dòng chảy</em> của năng lượng thông qua vũ trụ. Từ những nghiên cứu của mình, Beast đã tạo ra cấu trúc mới từ <em>kim loại bị oxy hóa</em> và tuyên bố vinh quang của họ. Và những người theo dõi Beast đã vui mừng, tìm mục đích mới trong việc <em>giảng dạy</em>.'>
+
+<!ENTITY mozilla.from.11.14
+'từ <strong>Cuốn sách của Mozilla,</strong> 11:14'>
diff --git a/l10n-vi/toolkit/chrome/global/narrate.properties b/l10n-vi/toolkit/chrome/global/narrate.properties
new file mode 100644
index 0000000000..9e0566b9ca
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/global/narrate.properties
@@ -0,0 +1,20 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# "Listen, which allows users to listen to Firefox reading the text,
+# instead of having to read it themselves." This is the name
+# of the feature and it is the label for the popup button.
+listen = Nghe
+back = Quay lại
+start = Bắt đầu
+stop = Dừng
+forward = Chuyển tiếp
+speed = Tốc độ
+selectvoicelabel = Giọng nói:
+# Default voice is determined by the language of the document.
+defaultvoice = Mặc định
+
+# Voice name and language.
+# eg. David (English)
+voiceLabel = %S (%S)
diff --git a/l10n-vi/toolkit/chrome/global/notification.dtd b/l10n-vi/toolkit/chrome/global/notification.dtd
new file mode 100644
index 0000000000..0cf23b768c
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/global/notification.dtd
@@ -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/. -->
+
+<!ENTITY closeNotification.tooltip "Đóng thông báo này">
+
+<!ENTITY checkForUpdates "Kiểm tra cập nhật…">
+
+<!ENTITY learnMoreNoEllipsis "Tìm hiểu thêm">
+
+<!ENTITY defaultButton.label "OK!">
+<!ENTITY defaultButton.accesskey "O">
+
+<!ENTITY moreActionsButton.accessibleLabel "Nhiều hành động hơn">
diff --git a/l10n-vi/toolkit/chrome/global/printdialog.properties b/l10n-vi/toolkit/chrome/global/printdialog.properties
new file mode 100644
index 0000000000..f2cabad6ca
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/global/printdialog.properties
@@ -0,0 +1,52 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 native GTK, Mac and Windows print dialogs.
+
+# GTK titles:
+printTitleGTK=In
+optionsTabLabelGTK=Tùy chọn
+
+# Mac titles:
+optionsTitleMac=Tùy chọn:
+appearanceTitleMac=Bề ngoài:
+pageHeadersTitleMac=Đầu Trang:
+pageFootersTitleMac=Chân Trang:
+
+# Windows titles:
+optionsTitleWindows=Tùy chọn
+
+# TRANSLATOR NOTE: For radio button labels and check button labels, an underscore _
+# before a character will turn that character into an accesskey in the GTK dialog.
+# e.g. "_As laid out" will make A the accesskey.
+# In the Windows labels, use an ampersand (&).
+# On Mac, underscores will be stripped.
+
+shrinkToFit=Bỏ qua Tỉ lệ và Thu _lại cho vừa Độ rộng
+selectionOnly=Chỉ _in phần đã chọn
+printBGOptions=In Phần Nền
+printBGColors=In _Màu của Phần Nền
+printBGImages=In _Hình Ảnh của Phần Nền
+headerFooter=Đầu Trang và Cuối Trang
+left=Trái
+center=Giữa
+right=Phải
+headerFooterBlank=--trống--
+headerFooterTitle=Tiêu đề
+headerFooterURL=URL
+headerFooterDate=Ngày/Giờ
+headerFooterPage=Trang #
+headerFooterPageTotal=Trang # trên tổng #
+headerFooterCustom=Tùy biến…
+customHeaderFooterPrompt=Vui lòng nhập phần văn bản tùy biến của bạn cho phần đầu/cuối trang
+
+summarySelectionOnlyTitle=Lựa chọn In
+summaryShrinkToFitTitle=Co lại cho vừa
+summaryPrintBGColorsTitle=In Màu của Nền
+summaryPrintBGImagesTitle=In Hình Ảnh của Nền
+summaryHeaderTitle=Đầu Trang
+summaryFooterTitle=Chân Trang
+summaryNAValue=N/A
+summaryOnValue=Bật
+summaryOffValue=Tắt
diff --git a/l10n-vi/toolkit/chrome/global/resetProfile.dtd b/l10n-vi/toolkit/chrome/global/resetProfile.dtd
new file mode 100644
index 0000000000..6e0b15c726
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/global/resetProfile.dtd
@@ -0,0 +1,7 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ - You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY refreshProfile.dialog.title "Làm mới &brandShortName;">
+
+<!ENTITY refreshProfile.cleaning.description "Sắp xong rồi…">
diff --git a/l10n-vi/toolkit/chrome/global/resetProfile.properties b/l10n-vi/toolkit/chrome/global/resetProfile.properties
new file mode 100644
index 0000000000..e5c03a8e72
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/global/resetProfile.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: These strings are used for profile reset.
+
+# LOCALIZATION NOTE (resetUnusedProfile.message): %S is brandShortName.
+resetUnusedProfile.message=Có vẻ như bạn đã không dùng %S một thời gian. Bạn có muốn làm mới lại không? Nhân tiện, chào mừng bạn trở lại!
+# LOCALIZATION NOTE (resetUninstalled.message): %S is brandShortName.
+resetUninstalled.message=Có vẻ như bạn đã cài đặt lại %S. Bạn có muốn chúng tôi dọn dẹp nó cho trải nghiệm giống như mới?
+
+# LOCALIZATION NOTE (refreshProfile.resetButton.label): %S is brandShortName.
+refreshProfile.resetButton.label=Làm mới %S…
+refreshProfile.resetButton.accesskey=e
diff --git a/l10n-vi/toolkit/chrome/global/textcontext.dtd b/l10n-vi/toolkit/chrome/global/textcontext.dtd
new file mode 100644
index 0000000000..edd4fbc0b4
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/global/textcontext.dtd
@@ -0,0 +1,24 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY spellAddToDictionary.label "Thêm vào từ điển">
+<!ENTITY spellAddToDictionary.accesskey "v">
+<!ENTITY spellUndoAddToDictionary.label "Hoàn tác việc thêm vào từ điển">
+<!ENTITY spellUndoAddToDictionary.accesskey "n">
+<!ENTITY spellCheckToggle.label "Kiểm tra chính tả">
+<!ENTITY spellCheckToggle.accesskey "K">
+<!ENTITY spellNoSuggestions.label "(Không có gợi ý sửa chính tả)">
+<!ENTITY spellDictionaries.label "Ngôn ngữ">
+<!ENTITY spellDictionaries.accesskey "N">
+
+<!ENTITY searchTextBox.clear.label "Xóa trắng">
+
+<!ENTITY fillLoginMenu.label "Điền thông tin đăng nhập">
+<!ENTITY fillLoginMenu.accesskey "t">
+<!ENTITY fillPasswordMenu.label "Điền mật khẩu">
+<!ENTITY fillPasswordMenu.accesskey "m">
+<!ENTITY fillUsernameMenu.label "Điền tên người dùng">
+<!ENTITY fillUsernameMenu.accesskey "t">
+<!ENTITY noLoginSuggestions.label "(Không có gợi ý đăng nhập)">
+<!ENTITY viewSavedLogins.label "Xem thông tin đăng nhập đã lưu">
diff --git a/l10n-vi/toolkit/chrome/global/tree.dtd b/l10n-vi/toolkit/chrome/global/tree.dtd
new file mode 100644
index 0000000000..ac68e7a1f1
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/global/tree.dtd
@@ -0,0 +1,5 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY restoreColumnOrder.label "Khôi phục thứ tự cột">
diff --git a/l10n-vi/toolkit/chrome/global/videocontrols.dtd b/l10n-vi/toolkit/chrome/global/videocontrols.dtd
new file mode 100644
index 0000000000..03a4ae2981
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/global/videocontrols.dtd
@@ -0,0 +1,52 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY % brandDTD
+ SYSTEM "chrome://branding/locale/brand.dtd">
+ %brandDTD;
+
+<!ENTITY playButton.playLabel "Phát">
+<!ENTITY playButton.pauseLabel "Tạm dừng">
+<!ENTITY muteButton.muteLabel "Tắt tiếng">
+<!ENTITY muteButton.unmuteLabel "Bật tiếng">
+<!ENTITY fullscreenButton.enterfullscreenlabel "Toàn màn hình">
+<!ENTITY fullscreenButton.exitfullscreenlabel "Thoát chế độ toàn màn hình">
+<!ENTITY castingButton.castingLabel "Chiếu ra màn hình">
+<!ENTITY closedCaption.off "Tắt">
+<!-- LOCALIZATION NOTE (volumeScrubber.label): This label is exposed to
+ accessibility software to clarify what the slider is for. -->
+<!ENTITY volumeScrubber.label "Thanh điều khiển âm lượng">
+
+<!-- LOCALIZATION NOTE (pictureInPicture.label): This string is used as part of
+the Picture-in-Picture video toggle button when the mouse is hovering it. -->
+<!ENTITY pictureInPicture.label "Hình trong hình">
+
+<!-- LOCALIZATION NOTE (pictureInPictureToggle.label): This string is used as the
+label for a variation of the Picture-in-Picture video toggle button when the mouse is
+hovering over the video. -->
+<!ENTITY pictureInPictureToggle.label "Xem ở chế độ hình trong hình">
+<!-- LOCALIZATION NOTE (pictureInPictureExplainer): This string is used as part of
+a variation of the Picture-in-Picture video toggle button. When using this variation,
+this string appears below the toggle when the mouse hovers the toggle. -->
+<!ENTITY pictureInPictureExplainer "Phát video ở nền trước trong khi bạn làm những việc khác trong &brandShortName;">
+
+<!ENTITY error.aborted "Đã dừng nạp video.">
+<!ENTITY error.network "Không thể xem video vì lỗi kết nối.">
+<!ENTITY error.decode "Không thể xem video vì tập tin bị hỏng.">
+<!ENTITY error.srcNotSupported "Định dạng video hoặc kiểu MIME không được hỗ trợ.">
+<!ENTITY error.noSource2 "Không có video với định đạng được hỗ trợ.">
+<!ENTITY error.generic "Không thể xem video vì một lỗi chưa biết.">
+
+<!ENTITY status.pictureInPicture "Video này đang phát ở chế độ hình trong hình.">
+
+<!-- LOCALIZATION NOTE (positionAndDuration.nameFormat): the #1 string is the current
+media position, and the #2 string is the total duration. For example, when at
+the 5 minute mark in a 6 hour long video, #1 would be "5:00" and #2 would be
+"6:00:00", result string would be "5:00 / 6:00:00".
+Note that #2 is not always available. For example, when at the 5 minute mark in an
+unknown duration video, #1 would be "5:00" and the string which is surrounded by
+<span> would be deleted, result string would be "5:00".
+-->
+<!ENTITY positionAndDuration.nameFormat "#1<span> / #2</span>">
+
diff --git a/l10n-vi/toolkit/chrome/global/viewSource.properties b/l10n-vi/toolkit/chrome/global/viewSource.properties
new file mode 100644
index 0000000000..0acf2ef651
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/global/viewSource.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/.
+
+goToLineTitle = Đi tới dòng
+goToLineText = Nhập số của dòng
+invalidInputTitle = Nhập vào không đúng
+invalidInputText = Số của dòng nhập vào không đúng.
+outOfRangeTitle = Không tìm thấy dòng
+outOfRangeText = Không tìm thấy dòng được chỉ định.
+viewSelectionSourceTitle = Mã Nguồn DOM của Khối Đã Chọn
+
+context_goToLine_label = Đi tới dòng…
+context_goToLine_accesskey = L
+context_wrapLongLines_label = Cắt những dòng dài
+context_highlightSyntax_label = Tô sáng cú pháp
diff --git a/l10n-vi/toolkit/chrome/global/wizard.properties b/l10n-vi/toolkit/chrome/global/wizard.properties
new file mode 100644
index 0000000000..798ba2a1b4
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/global/wizard.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/.
+
+default-first-title=Chào mừng đến với %S
+default-last-title=Đang hoàn tất %S
+default-first-title-mac=Giới thiệu
+default-last-title-mac=Kết thúc
diff --git a/l10n-vi/toolkit/chrome/mozapps/downloads/downloads.properties b/l10n-vi/toolkit/chrome/mozapps/downloads/downloads.properties
new file mode 100644
index 0000000000..77a64b120d
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/mozapps/downloads/downloads.properties
@@ -0,0 +1,115 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 (shortSeconds): Semi-colon list of plural
+# forms. See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# s is the short form for seconds
+shortSeconds=s
+
+# LOCALIZATION NOTE (shortMinutes): Semi-colon list of plural
+# forms. See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# m is the short form for minutes
+shortMinutes=m
+
+# LOCALIZATION NOTE (shortHours): Semi-colon list of plural
+# forms. See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# h is the short form for hours
+shortHours=h
+
+# LOCALIZATION NOTE (shortDays): Semi-colon list of plural
+# forms. See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# d is the short form for days
+shortDays=d
+
+downloadErrorAlertTitle=Lỗi Tải Xuống
+# LOCALIZATION NOTE (downloadErrorBlockedBy): %S is the name of the blocking
+# extension.
+downloadErrorBlockedBy=Không thể lưu tải xuống vì bị chặn bởi %S.
+# LOCALIZATION NOTE (downloadErrorExtension): used when the blocking extension
+# name is unavailable.
+downloadErrorExtension=Không thể lưu tải xuống do bị chặn bởi tiện ích mở rộng.
+downloadErrorGeneric=Không thể lưu tập tin tải xuống vì có lỗi xảy ra.\n\nVui lòng thử lại lần nữa.
+
+# LOCALIZATION NOTE: we don't have proper plural support in the CPP code; bug 463102
+quitCancelDownloadsAlertTitle=Hủy tất cả các phiên tải xuống?
+quitCancelDownloadsAlertMsg=Nếu bạn thoát ngay lúc này, 1 phiên tải xuống sẽ bị hủy. Bạn có chắc muốn thoát ngay không?
+quitCancelDownloadsAlertMsgMultiple=Nếu bạn thoát ngay lúc này, %S phiên tải xuống sẽ bị hủy. Bạn có chắc muốn thoát ngay không?
+quitCancelDownloadsAlertMsgMac=Nếu bạn thoát ngay lúc này, 1 phiên tải xuống sẽ bị hủy. Bạn có chắc muốn thoát ngay không?
+quitCancelDownloadsAlertMsgMacMultiple=Nếu bạn thoát ngay lúc này, %S phiên tải xuống sẽ bị hủy. Bạn có chắc muốn thoát ngay không?
+offlineCancelDownloadsAlertTitle=Hủy tất cả các phiên tải xuống?
+offlineCancelDownloadsAlertMsg=Nếu bạn ngắt kết nối ngay lúc này, 1 phiên tải xuống sẽ bị hủy. Bạn có chắc muốn ngắt kết nối không?
+offlineCancelDownloadsAlertMsgMultiple=Nếu bạn ngắt kết nối ngay lúc này, %S phiên tải xuống sẽ bị hủy. Bạn có chắc muốn ngắt kết nối không?
+leavePrivateBrowsingCancelDownloadsAlertTitle=Hủy tất cả các phiên tải xuống?
+leavePrivateBrowsingWindowsCancelDownloadsAlertMsg2=Nếu bây giờ bạn đóng tất cả các cửa sổ riêng tư thì một tập tin đang tải xuống sẽ bị hủy. Bạn có chắc chắn muốn rời chế độ duyệt web riêng tư không?
+leavePrivateBrowsingWindowsCancelDownloadsAlertMsgMultiple2=Nếu bây giờ bạn đóng tất cả các cửa sổ riêng tư thì %S tập tin đang tải xuống sẽ bị hủy. Bạn có chắc bạn muốn rời chế độ duyệt web riêng tư không?
+cancelDownloadsOKText=Hủy 1 phiên tải xuống
+cancelDownloadsOKTextMultiple=Hủy %S phiên tải xuống
+dontQuitButtonWin=Đừng Thoát
+dontQuitButtonMac=Đừng Thoát
+dontGoOfflineButton=Vẫn Kết Nối
+dontLeavePrivateBrowsingButton2=Vẫn ở lại chế độ duyệt web riêng tư
+
+# LOCALIZATION NOTE (infiniteRate):
+# If download speed is a JavaScript Infinity value, this phrase is used
+infiniteRate=Rất nhanh
+
+# LOCALIZATION NOTE (statusFormat3): — is the "em dash" (long dash)
+# %1$S transfer progress; %2$S rate number; %3$S rate unit; %4$S time left
+# example: 4 minutes left — 1.1 of 11.1 GB (2.2 MB/sec)
+statusFormat3=%4$S — %1$S (%2$S %3$S/giây)
+
+# LOCALIZATION NOTE (statusFormatInfiniteRate): — is the "em dash" (long dash)
+# %1$S transfer progress; %2$S substitute phrase for Infinity speed; %3$S time left
+# example: 4 minutes left — 1.1 of 11.1 GB (Really fast)
+statusFormatInfiniteRate=%3$S — %1$S (%2$S)
+
+# LOCALIZATION NOTE (statusFormatNoRate): — is the "em dash" (long dash)
+# %1$S transfer progress; %2$S time left
+# example: 4 minutes left — 1.1 of 11.1 GB
+statusFormatNoRate=%2$S — %1$S
+
+bytes=byte
+kilobyte=KB
+megabyte=MB
+gigabyte=GB
+
+# LOCALIZATION NOTE (transferSameUnits2):
+# %1$S progress number; %2$S total number; %3$S total unit
+# example: 1.1 of 333 MB
+transferSameUnits2=%1$S trong %2$S %3$S
+# LOCALIZATION NOTE (transferDiffUnits2):
+# %1$S progress number; %2$S progress unit; %3$S total number; %4$S total unit
+# example: 11.1 MB of 3.3 GB
+transferDiffUnits2=%1$S %2$S trong %3$S %4$S
+# LOCALIZATION NOTE (transferNoTotal2):
+# %1$S progress number; %2$S unit
+# example: 111 KB
+transferNoTotal2=%1$S %2$S
+
+# LOCALIZATION NOTE (timePair3): %1$S time number; %2$S time unit
+# example: 1m; 11h
+timePair3=%1$S%2$S
+# LOCALIZATION NOTE (timeLeftSingle3): %1$S time left
+# example: 1m left; 11h left
+timeLeftSingle3=Còn %1$S
+# LOCALIZATION NOTE (timeLeftDouble3): %1$S time left; %2$S time left sub units
+# example: 11h 2m left; 1d 22h left
+timeLeftDouble3=Còn %1$S %2$S
+timeFewSeconds2=Còn vài giây
+timeUnknown2=Không rõ thời gian còn lại
+
+# LOCALIZATION NOTE (doneScheme2): #1 URI scheme like data: jar: about:
+doneScheme2=%1$S tài nguyên
+# LOCALIZATION NOTE (doneFileScheme): Special case of doneScheme for file:
+# This is used as an eTLD replacement for local files, so make it lower case
+doneFileScheme=tập tin trên máy
+
+# LOCALIZATION NOTE (yesterday): Displayed time for files finished yesterday
+yesterday=Hôm qua
+
+fileExecutableSecurityWarning="%S" là một tập tin thực thi. Các tập tin thực thi có khả năng chứa virus hoặc mã độc và có thể làm tổn hại máy tính của bạn. Hãy thận trọng khi mở tập tin này. Bạn có chắc là mình muốn chạy "%S" không?
+fileExecutableSecurityWarningTitle=Mở Tập Tin Thực Thi?
+
+# Desktop folder name for downloaded files
+downloadsFolder=Trang tải xuống
diff --git a/l10n-vi/toolkit/chrome/mozapps/downloads/settingsChange.dtd b/l10n-vi/toolkit/chrome/mozapps/downloads/settingsChange.dtd
new file mode 100644
index 0000000000..8954b3eb02
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/mozapps/downloads/settingsChange.dtd
@@ -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/. -->
+
+<!ENTITY settingsChangePreferences.label "Thiết lập có thể được thay đổi trong Tùy chỉnh của &brandShortName;.">
+<!ENTITY settingsChangeOptions.label "Thiết lập có thể được thay đổi trong tùy chọn của &brandShortName;.">
diff --git a/l10n-vi/toolkit/chrome/mozapps/downloads/unknownContentType.dtd b/l10n-vi/toolkit/chrome/mozapps/downloads/unknownContentType.dtd
new file mode 100644
index 0000000000..c308e09f1f
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/mozapps/downloads/unknownContentType.dtd
@@ -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/. -->
+
+<!ENTITY intro2.label "Bạn phải chọn để mở:">
+<!ENTITY from.label "từ:">
+<!ENTITY actionQuestion.label "&brandShortName; nên làm gì với tập tin này?">
+
+<!ENTITY openWith.label "Mở Bằng">
+<!ENTITY openWith.accesskey "B">
+<!ENTITY other.label "Khác…">
+
+<!ENTITY saveFile.label "Lưu Tập Tin">
+<!ENTITY saveFile.accesskey "L">
+
+<!ENTITY rememberChoice.label "Tự động xử lí tương tự đối với các tập tin kiểu này kể từ bây giờ trở đi.">
+<!ENTITY rememberChoice.accesskey "T">
+
+<!ENTITY whichIs.label "là:">
+
+<!ENTITY chooseHandlerMac.label "Chọn…">
+<!ENTITY chooseHandlerMac.accesskey "C">
+<!ENTITY chooseHandler.label "Duyệt…">
+<!ENTITY chooseHandler.accesskey "D">
+
+<!ENTITY unknownPromptText.label "Bạn có muốn lưu tập tin này không?">
diff --git a/l10n-vi/toolkit/chrome/mozapps/downloads/unknownContentType.properties b/l10n-vi/toolkit/chrome/mozapps/downloads/unknownContentType.properties
new file mode 100644
index 0000000000..e5fba27841
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/mozapps/downloads/unknownContentType.properties
@@ -0,0 +1,24 @@
+# -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+title=Đang mở %S
+saveDialogTitle=Nhập tên của tập tin để lưu vào…
+defaultApp=%S (mặc định)
+chooseAppFilePickerTitle=Lựa chọn ứng dụng trợ giúp
+badApp=Không tìm thấy ứng dụng bạn chọn ("%S"). Hãy kiểm tra tên tập tin hoặc chọn ứng dụng khác.
+badApp.title=Không tìm thấy ứng dụng
+badPermissions=Tập tin không lưu được vì bạn không có quyền hạn thích hợp. Hãy lưu vào thư mục khác.
+badPermissions.title=Quyền lưu không hợp lệ
+unknownAccept.label=Lưu Tập Tin
+unknownCancel.label=Hủy bỏ
+fileType=Tập tin %S
+# LOCALIZATION NOTE (orderedFileSizeWithType): first %S is type, second %S is size, and third %S is unit
+orderedFileSizeWithType=%1$S (%2$S %3$S)
+pdfHandlerDescription=Định dạng tài liệu di động (PDF)
+avifExtHandlerDescription=Tập tin hình ảnh AV1 (AVIF)
+pdfExtHandlerDescription=Định dạng tài liệu di động (PDF)
+svgExtHandlerDescription=Scalable Vector Graphics (SVG)
+webpExtHandlerDescription=Hình ảnh WebP
+xmlExtHandlerDescription=Extensible Markup Language (XML)
diff --git a/l10n-vi/toolkit/chrome/mozapps/extensions/extensions.dtd b/l10n-vi/toolkit/chrome/mozapps/extensions/extensions.dtd
new file mode 100644
index 0000000000..d9cd4bbb92
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/mozapps/extensions/extensions.dtd
@@ -0,0 +1,5 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY setting.learnmore "Tìm hiểu thêm…">
diff --git a/l10n-vi/toolkit/chrome/mozapps/extensions/extensions.properties b/l10n-vi/toolkit/chrome/mozapps/extensions/extensions.properties
new file mode 100644
index 0000000000..085284ad5b
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/mozapps/extensions/extensions.properties
@@ -0,0 +1,84 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#LOCALIZATION NOTE (notification.incompatible) %1$S is the add-on name, %2$S is brand name, %3$S is application version
+notification.incompatible=%1$S không tương thích với %2$S %3$S.
+#LOCALIZATION NOTE (notification.unsigned, notification.unsignedAndDisabled) %1$S is the add-on name, %2$S is brand name
+notification.unsignedAndDisabled=Không thể kiểm tra tính tương thích của %1$S với %2$S nên nó đã bị vô hiệu hóa.
+notification.unsigned=Không thể kiểm tra tính tương thích của %1$S với %2$S. Bạn nên cẩn thận.
+notification.unsigned.link=Thông tin chi tiết
+#LOCALIZATION NOTE (notification.blocked) %1$S is the add-on name
+notification.blocked=%1$S đã bị vô hiệu hóa vì vấn đề bảo mật hoặc tính ổn định.
+notification.blocked.link=Thông tin Chi tiết
+#LOCALIZATION NOTE (notification.softblocked) %1$S is the add-on name
+notification.softblocked=%1$S được cho là gây ra các vấn đề về bảo mật hoặc tính ổn định.
+notification.softblocked.link=Thông tin Chi tiết
+#LOCALIZATION NOTE (notification.outdated) %1$S is the add-on name
+notification.outdated=Hiện đang có một cập nhật quan trọng cho %1$S.
+notification.outdated.link=Cập nhật Ngay
+#LOCALIZATION NOTE (notification.vulnerableUpdatable) %1$S is the add-on name
+notification.vulnerableUpdatable=%1$S được biết là có lỗi bảo mật và nên được cập nhật.
+notification.vulnerableUpdatable.link=Cập nhật Ngay
+#LOCALIZATION NOTE (notification.vulnerableNoUpdate) %1$S is the add-on name
+notification.vulnerableNoUpdate=%1$S được biết là có lỗi bảo mật. Cẩn thận khi sử dụng.
+notification.vulnerableNoUpdate.link=Thông tin Chi tiết
+#LOCALIZATION NOTE (notification.restartless-uninstall) %1$S is the add-on name
+notification.restartless-uninstall=%1$S sẽ được gỡ cài đặt sau khi bạn đóng thẻ này.
+#LOCALIZATION NOTE (notification.downloadError) %1$S is the add-on name.
+notification.downloadError=Có lỗi khi đang tải %1$S.
+notification.downloadError.retry=Thử lại
+notification.downloadError.retry.tooltip=Thử tải lại tiện ích này
+#LOCALIZATION NOTE (notification.installError) %1$S is the add-on name.
+notification.installError=Có lỗi khi đang cài đặt %1$S.
+notification.installError.retry=Thử lại
+notification.installError.retry.tooltip=Thử tải xuống và cài đặt tiện ích này lần nữa
+#LOCALIZATION NOTE (notification.gmpPending) %1$S is the add-on name.
+notification.gmpPending=%1$S sắp được cài.
+
+#LOCALIZATION NOTE (details.notification.incompatible) %1$S is the add-on name, %2$S is brand name, %3$S is application version
+details.notification.incompatible=%1$S không tương thích với %2$S %3$S.
+#LOCALIZATION NOTE (details.notification.unsigned, details.notification.unsignedAndDisabled) %1$S is the add-on name, %2$S is brand name
+details.notification.unsignedAndDisabled=Không thể kiểm tra tính tương thích của %1$S với %2$S nên nó đã bị vô hiệu hóa.
+details.notification.unsigned=Không thể kiểm tra tính tương thích của %1$S với %2$S. Bạn nên cẩn thận.\u0020
+details.notification.unsigned.link=Thông tin chi tiết
+#LOCALIZATION NOTE (details.notification.blocked) %1$S is the add-on name
+details.notification.blocked=%1$S đã bị vô hiệu hóa vì vấn đề bảo mật hoặc tính ổn định.
+details.notification.blocked.link=Thông tin Chi tiết
+#LOCALIZATION NOTE (details.notification.softblocked) %1$S is the add-on name
+details.notification.softblocked=%1$S được cho là gây ra các vấn đề về bảo mật hoặc tính ổn định.
+details.notification.softblocked.link=Thông tin Chi tiết
+#LOCALIZATION NOTE (details.notification.outdated) %1$S is the add-on name
+details.notification.outdated=Hiện đang có một cập nhật quan trọng cho %1$S.
+details.notification.outdated.link=Cập nhật Ngay
+#LOCALIZATION NOTE (details.notification.vulnerableUpdatable) %1$S is the add-on name
+details.notification.vulnerableUpdatable=%1$S được biết là có lỗi bảo mật và nên được cập nhật.
+details.notification.vulnerableUpdatable.link=Cập nhật Ngay
+#LOCALIZATION NOTE (details.notification.vulnerableNoUpdate) %1$S is the add-on name
+details.notification.vulnerableNoUpdate=%1$S được biết là có lỗi bảo mật. Cẩn thận khi sử dụng.
+details.notification.vulnerableNoUpdate.link=Thông tin Chi tiết
+#LOCALIZATION NOTE (details.notification.restartless-uninstall) %1$S is the add-on name.
+details.notification.restartless-uninstall=%1$S sẽ được gỡ cài đặt sau khi bạn đóng thẻ này.
+#LOCALIZATION NOTE (details.notification.gmpPending) %1$S is the add-on name
+details.notification.gmpPending=%1$S sắp được cài.
+
+type.extension.name=Tiện ích mở rộng
+type.themes.name=Chủ đề
+type.locale.name=Ngôn ngữ
+type.plugin.name=Phần bổ trợ
+type.dictionary.name=Từ điển
+type.service.name=Dịch vụ
+type.legacy.name=Tiện ích mở rộng kế thừa
+type.unsupported.name=Không được hỗ trợ
+
+#LOCALIZATION NOTE(listHeading.discover) %S is the brandShortName
+listHeading.discover=Cá nhân hóa %S của bạn
+listHeading.extension=Quản lí tiện ích của bạn
+listHeading.shortcuts=Quản lý phím tắt tiện ích mở rộng
+listHeading.theme=Quản lí chủ đề của bạn
+listHeading.plugin=Quản lí phần bổ trợ của bạn
+listHeading.locale=Quản lí ngôn ngữ của bạn
+listHeading.dictionary=Quản lí từ điển của bạn
+
+searchLabel.extension=Tìm thêm tiện ích
+searchLabel.theme=Tìm thêm chủ đề
diff --git a/l10n-vi/toolkit/chrome/mozapps/handling/handling.dtd b/l10n-vi/toolkit/chrome/mozapps/handling/handling.dtd
new file mode 100644
index 0000000000..dfa7d2b7c4
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/mozapps/handling/handling.dtd
@@ -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/. -->
+
+<!ENTITY window.emWidth "26em">
+<!ENTITY window.emHeight "26em">
+<!ENTITY ChooseOtherApp.description "Chọn ứng dụng khác">
+<!ENTITY ChooseApp.label "Chọn…">
+<!ENTITY ChooseApp.accessKey "C">
+<!ENTITY accept "Mở liên kết">
diff --git a/l10n-vi/toolkit/chrome/mozapps/handling/handling.properties b/l10n-vi/toolkit/chrome/mozapps/handling/handling.properties
new file mode 100644
index 0000000000..9c7b19b4b9
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/mozapps/handling/handling.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/.
+
+protocol.title=Chạy ứng dụng
+protocol.description=Liên kết này cần được mở bằng một ứng dụng.
+protocol.choices.label=Gửi tới:
+protocol.checkbox.label=Ghi nhớ lựa chọn của tôi cho liên kết %S.
+protocol.checkbox.accesskey=R
+protocol.checkbox.extra=Điều này có thể thay đổi trong phần tùy chỉnh của %S.\u0020
+
+# Displayed under the name of a protocol handler in the Launch Application dialog.
+privatebrowsing.disabled.label=Vô hiệu hóa trong cửa sổ riêng tư
+
+choose.application.title=Ứng dụng khác…
diff --git a/l10n-vi/toolkit/chrome/mozapps/profile/profileSelection.properties b/l10n-vi/toolkit/chrome/mozapps/profile/profileSelection.properties
new file mode 100644
index 0000000000..a7fbecb13e
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/mozapps/profile/profileSelection.properties
@@ -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/.
+
+# LOCALIZATION NOTE: These strings are used for startup/profile problems and the profile manager.
+
+# Application not responding
+# LOCALIZATION NOTE (restartTitle, restartMessageNoUnlocker2, restartMessageUnlocker, restartMessageNoUnlockerMac, restartMessageUnlockerMac): Messages displayed when the application is running but is not responding to commands. %S is the application name.
+restartTitle=Đóng %S
+restartMessageNoUnlocker2=%S đang chạy, nhưng không phản hồi. Để sử dụng %S, trước tiên bạn phải đóng tiến trình %S hiện có, khởi động lại thiết bị của bạn hoặc sử dụng cấu hình khác.
+restartMessageUnlocker=%S đang chạy, nhưng không phản hồi. Tiến trình %S cũ phải được đóng trước khi mở một cửa sổ mới.
+restartMessageNoUnlockerMac=Một bản sao của %S đã được mở. Chỉ có thể mở một bản sao của %S trong cùng một thời điểm.
+restartMessageUnlockerMac=Một bản sao của %S đã được mở. Bản sao đang chạy của %S sẽ tắt để mở cái mới này.
+
+# Profile manager
+# LOCALIZATION NOTE (profileTooltip): First %S is the profile name, second %S is the path to the profile folder.
+profileTooltip=Hồ sơ: '%S' - Đường dẫn: '%S'
+
+pleaseSelectTitle=Chọn Hồ Sơ
+pleaseSelect=Hãy chọn một hồ sơ để bắt đầu %S, hoặc tạo một hồ sơ mới.
+
+renameProfileTitle=Đổi tên hồ sơ
+renameProfilePrompt=Đổi tên hồ sơ "%S" thành:
+
+profileNameInvalidTitle=Tên hồ sơ không hợp lệ
+profileNameInvalid=Không được phép đặt tên hồ sơ là "%S".
+
+chooseFolder=Chọn thư mục hồ sơ
+profileNameEmpty=Không được phép để trống tên hồ sơ.
+invalidChar=Kí tự "%S" không được phép dùng trong tên hồ sơ. Vui lòng chọn một tên khác.
+
+deleteTitle=Xóa hồ sơ
+deleteProfileConfirm=Xóa một hồ sơ cũng sẽ gỡ bỏ nó ra khỏi danh sách các hồ sơ hiện tại, và không thể hoàn tác được.\nBạn có thể chọn xóa dữ liệu của hồ sơ, bao gồm thiết lập, chứng chỉ và các dữ liệu người dùng khác. Tùy chọn này sẽ xóa thư mục "%S", và không thể hoàn tác được.\nBạn có muốn xóa các tập tin dữ liệu của hồ sơ không?
+deleteFiles=Xóa các tập tin
+dontDeleteFiles=Không xóa các tập tin
+
+profileCreationFailed=Không thể tạo hồ sơ. Có thể là do thư mục đã chọn không cho phép ghi vào.
+profileCreationFailedTitle=Thất bại khi tạo hồ sơ
+profileExists=Một hồ sơ có cùng tên này đã tồn tại. Vui lòng chọn một tên khác.
+profileFinishText=Nhấn “Hoàn thành” để tạo hồ sơ mới này.
+profileFinishTextMac=Nhấn “Xong” để tạo hồ sơ mới này.
+profileMissing=Không thể nạp hồ sơ %S của bạn. Có thể nó bị mất hoặc không thể truy cập được.
+profileMissingTitle=Mất Hồ Sơ
+profileDeletionFailed=Không thể xóa hồ sơ vì có thể nó đang được sử dụng.
+profileDeletionFailedTitle=Xóa không thành công
+
+# Profile reset
+# LOCALIZATION NOTE (resetBackupDirectory): Directory name for the profile directory backup created during reset. This directory is placed in a location users will see it (ie. their desktop). %S is the application name.
+resetBackupDirectory=Dữ liệu cũ của %S
+
+flushFailTitle=Các thay đổi chưa được lưu
+# LOCALIZATION NOTE (conflictMessage): %1$S is brandProductName, %2$S is brandShortName.
+conflictMessage=Một bản sao khác của %1$S đã thực hiện các thay đổi đối với hồ sơ. Bạn phải khởi động lại %2$S trước khi thực hiện nhiều thay đổi.
+flushFailMessage=Một lỗi không mong muốn đã khiến các thay đổi của bạn không được lưu.
+# LOCALIZATION NOTE (flushFailRestartButton): $S is brandShortName.
+flushFailRestartButton=Khởi động lại %S
+flushFailExitButton=Thoát
diff --git a/l10n-vi/toolkit/chrome/mozapps/update/updates.properties b/l10n-vi/toolkit/chrome/mozapps/update/updates.properties
new file mode 100644
index 0000000000..98fcc663ed
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/mozapps/update/updates.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/.
+
+# LOCALIZATION NOTE: The 1st %S is brandShortName and 2nd %S is update version
+# where update version from the update xml
+# example: MyApplication 10.0.5
+updateName=%S %S
+
+noThanksButton=Không, Cảm Ơn
+noThanksButton.accesskey=n
+# NOTE: The restartLaterButton string is also used in
+# mozapps/extensions/content/blocklist.js
+restartLaterButton=Khởi động lại Sau
+restartLaterButton.accesskey=l
+restartNowButton=Khởi động lại %S
+restartNowButton.accesskey=K
+
+statusFailed=Cài đặt Thất bại
+
+installSuccess=Bản cập nhật đã được cài đặt thành công
+installPending=Đang đợi Cài đặt
+patchApplyFailure=Không thể cài đặt bản cập nhật (áp dụng bản vá không thành công)
+elevationFailure=Bạn không có đủ quyền cần thiết để cài đặt bản cập nhật này. Vui lòng liên hệ với quản trị viên hệ thống của chúng tôi.
+
+check_error-200=Tập tin cập nhật XML bị sai (200)
+check_error-403=Truy cập bị từ chối (403)
+check_error-404=Tập tin cập nhật XML không tìm thấy (404)
+check_error-500=Lỗi máy chủ nội bộ (500)
+check_error-2152398849=Thất bại (không rõ nguyên nhân)
+check_error-2152398861=Kết nối bị từ chối
+check_error-2152398862=Kết nối bị hết thời gian
+# NS_ERROR_OFFLINE
+check_error-2152398864=Mạng đang ở chế độ ngoại tuyến (chuyển sang trực tuyến)
+check_error-2152398867=Cổng không được cho phép
+check_error-2152398868=Không nhận được dữ liệu nào (vui lòng thử lại)
+check_error-2152398878=Không tìm thấy máy chủ cập nhật (hãy kiểm tra kết nối internet của bạn)
+check_error-2152398890=Không tìm thấy máy chủ proxy (hãy kiểm tra kết nối internet của bạn)
+# NS_ERROR_DOCUMENT_NOT_CACHED
+check_error-2152398918=Mạng đang ở chế độ ngoại tuyến (chuyển sang trực tuyến)
+check_error-2152398919=Trao đổi dữ liệu bị ngắt (vui lòng thử lại)
+check_error-2152398920=Kết nối máy chủ proxy bị từ chối
+check_error-2153390069=Chứng chỉ máy chủ đã hết hạn (vui lòng điều chỉnh đồng hồ hệ thống về lại ngày giờ đúng nếu như nó chưa chính xác)
+check_error-verification_failed=Tính toàn vẹn của bản cập nhật không thể xác minh được
+check_error-move_failed=Không chuẩn bị được bản cập nhật để cài đặt
diff --git a/l10n-vi/toolkit/chrome/passwordmgr/passwordmgr.properties b/l10n-vi/toolkit/chrome/passwordmgr/passwordmgr.properties
new file mode 100644
index 0000000000..14fde0161b
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/passwordmgr/passwordmgr.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/.
+
+rememberPassword = Dùng Trình quản lí mật khẩu để ghi nhớ mật khẩu này.
+savePasswordTitle = Xác nhận
+# LOCALIZATION NOTE (saveLoginMsg, saveLoginMsgNoUser):
+# %1$S is brandShortName, %2$S is the login's hostname.
+saveLoginMsg = Bạn có muốn %1$S lưu thông tin đăng nhập với %2$S không?
+saveLoginMsgNoUser = Bạn có muốn %1$S lưu mật khẩu này với %2$S không?
+saveLoginButtonAllow.label = Lưu
+saveLoginButtonAllow.accesskey = S
+saveLoginButtonDeny.label = Không lưu
+saveLoginButtonDeny.accesskey = D
+saveLoginButtonNever.label = Không bao giờ lưu
+saveLoginButtonNever.accesskey = e
+updateLoginMsg = Bạn có muốn cập nhật thông tin đăng nhập này không?
+updateLoginMsgNoUser = Bạn có muốn cập nhật mật khẩu này không?
+updateLoginMsgAddUsername = Bạn có muốn thêm tên người dùng vào mật khẩu đã lưu không?
+updateLoginButtonText = Cập nhật
+updateLoginButtonAccessKey = U
+updateLoginButtonDeny.label = Không cập nhật
+updateLoginButtonDeny.accesskey = D
+updateLoginButtonDelete.label = Xóa thông tin đăng nhập đã lưu
+updateLoginButtonDelete.accesskey = R
+# LOCALIZATION NOTE (rememberPasswordMsg):
+# 1st string is the username for the login, 2nd is the login's hostname.
+# Note that long usernames may be truncated.
+rememberPasswordMsg = Bạn có muốn lưu lại mật khẩu cho "%1$S" tại %2$S?
+# LOCALIZATION NOTE (rememberPasswordMsgNoUsername):
+# String is the login's hostname.
+rememberPasswordMsgNoUsername = Bạn có muốn lưu lại mật khẩu tại %S?
+# LOCALIZATION NOTE (noUsernamePlaceholder):
+# This is displayed in place of the username when it is missing.
+noUsernamePlaceholder=Không có tên người dùng
+togglePasswordLabel=Hiện mật khẩu
+togglePasswordAccessKey2=h
+notNowButtonText = Không phải bây giờ (&N)
+neverForSiteButtonText = Không bao giờ cho trang này (&v)
+rememberButtonText = Ghi nhớ (&R)
+passwordChangeTitle = Xác nhận thay đổi mật khẩu
+# LOCALIZATION NOTE (updatePasswordMsg):
+# String is the username for the login.
+updatePasswordMsg = Bạn có muốn cập nhật mật khẩu đã lưu của "%S"?
+updatePasswordMsgNoUser = Bạn có muốn cập nhật mật khẩu đã được lưu?
+userSelectText2 = Chọn tài khoản để cập nhật:
+loginsDescriptionAll2=Đăng nhập để các trang web sau đây được lưu trữ trên máy tính của bạn
+
+# LOCALIZATION NOTE (useASecurelyGeneratedPassword):
+# Shown in the autocomplete popup to allow filling a generated password into a password field.
+useASecurelyGeneratedPassword=Sử dụng mật khẩu được tạo an toàn
+# LOCALIZATION NOTE (generatedPasswordWillBeSaved):
+# %S will contain the brandShorterName. This informs the user that the generated password will be automatically saved.
+generatedPasswordWillBeSaved=%S sẽ lưu mật khẩu này cho trang web này.
+# LOCALIZATION NOTE (loginHostAge):
+# This is used to show the context menu login items with their age.
+# 1st string is the username for the login, 2nd is the login's age.
+loginHostAge=%1$S (%2$S)
+# LOCALIZATION NOTE (noUsername):
+# String is used on the context menu when a login doesn't have a username.
+noUsername=Không có tên người dùng
+
+# LOCALIZATION NOTE (displaySameOrigin):
+# String is used on the autocomplete row when the login origin is a domain match with the document origin
+displaySameOrigin=Từ trang web này
+
+# LOCALIZATION NOTE (insecureFieldWarningDescription2):
+# %1$S will contain insecureFieldWarningLearnMore and look like a link to indicate that clicking will open a tab with support information.
+insecureFieldWarningDescription2 = Đây là kết nối không an toàn. Đăng nhập vào đây có thể gây tổn hại cho bạn. %1$S
+insecureFieldWarningLearnMore = Tìm hiểu thêm
+
+# LOCALIZATION NOTE (viewSavedLogins.label):
+# This label is used in the footer of login autocomplete menus.
+viewSavedLogins.label= Xem thông tin đăng nhập đã lưu
diff --git a/l10n-vi/toolkit/chrome/places/places.properties b/l10n-vi/toolkit/chrome/places/places.properties
new file mode 100644
index 0000000000..88f862cbf0
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/places/places.properties
@@ -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/.
+
+BookmarksMenuFolderTitle=Trình đơn dấu trang
+BookmarksToolbarFolderTitle=Thanh dấu trang
+OtherBookmarksFolderTitle=Dấu trang khác
+TagsFolderTitle=Nhãn
+MobileBookmarksFolderTitle=Dấu trang trên di động
+OrganizerQueryHistory=Lịch sử
+OrganizerQueryDownloads=Tải xuống
+OrganizerQueryAllBookmarks=Tất cả dấu trang
+
+# LOCALIZATION NOTE :
+# These are used to generate history containers when history is grouped by date
+finduri-AgeInDays-is-0=Hôm nay
+finduri-AgeInDays-is-1=Hôm qua
+finduri-AgeInDays-is=%S ngày trước đó
+finduri-AgeInDays-last-is=%S ngày gần nhất
+finduri-AgeInDays-isgreater=Cũ hơn %S ngày
+finduri-AgeInMonths-is-0=Tháng này
+finduri-AgeInMonths-isgreater=Cũ hơn %S tháng
+
+# LOCALIZATION NOTE (localhost):
+# This is used to generate local files container when history is grouped by site
+localhost=(tập tin trong máy)
+
+# LOCALIZATION NOTE (backupFileSizeText):
+# The string is used for showing file size of each backup in the "fileRestorePopup" popup
+# %1$S is the file size
+# %2$S is the file size unit
+backupFileSizeText=%1$S %2$S
diff --git a/l10n-vi/toolkit/chrome/pluginproblem/pluginproblem.dtd b/l10n-vi/toolkit/chrome/pluginproblem/pluginproblem.dtd
new file mode 100644
index 0000000000..ef4a71f262
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/pluginproblem/pluginproblem.dtd
@@ -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/. -->
+
+<!-- LOCALIZATION NOTE (tapToPlayPlugin): Mobile (used for touch interfaces) only has one type of plugin possible. -->
+<!ENTITY tapToPlayPlugin "Bấm vào đây để kích hoạt phần bổ trợ.">
+<!ENTITY clickToActivatePlugin "Kích hoạt phần bổ trợ.">
+<!ENTITY checkForUpdates "Kiểm tra cập nhật…">
+<!ENTITY blockedPlugin.label "Phần bổ trợ này bị chặn để bảo vệ bạn.">
+<!ENTITY hidePluginBtn.label "Ẩn phần bổ trợ">
+<!ENTITY managePlugins "Quản lý phần bổ trợ…">
+
+<!-- LOCALIZATION NOTE (reloadPlugin.pre): include a trailing space as needed -->
+<!-- LOCALIZATION NOTE (reloadPlugin.middle): avoid leading/trailing spaces, this text is a link -->
+<!-- LOCALIZATION NOTE (reloadPlugin.post): include a starting space as needed -->
+<!ENTITY reloadPlugin.pre "">
+<!ENTITY reloadPlugin.middle "Tải lại trang">
+<!ENTITY reloadPlugin.post " để thử lại.">
+<!-- LOCALIZATION NOTE (report.please): This and the other report.* strings should be as short as possible, ideally 2-3 words. -->
+<!ENTITY report.please "Gửi báo cáo sự cố">
+<!ENTITY report.submitting "Đang gửi báo cáo…">
+<!ENTITY report.submitted "Báo cáo sự cố đã được gửi.">
+<!ENTITY report.disabled "Báo cáo sự cố đã bị vô hiệu hóa.">
+<!ENTITY report.failed "Gửi không thành công.">
+<!ENTITY report.unavailable "Không có báo cáo nào.">
+<!ENTITY report.comment "Thêm bình luận (bình luận sẽ được hiển thị công khai)">
+<!ENTITY report.pageURL "Thêm URL trang">
+
+<!ENTITY plugin.file "Tập tin">
+<!ENTITY plugin.mimeTypes "Kiểu MIME">
+<!ENTITY plugin.flashProtectedMode.label "Bật chế độ bảo vệ Adobe Flash">
+<!ENTITY plugin.enableBlocklists.label "Chặn nội dung Flash gây nguy hiểm và xâm phạm">
diff --git a/l10n-vi/toolkit/chrome/search/search.properties b/l10n-vi/toolkit/chrome/search/search.properties
new file mode 100644
index 0000000000..4f038fa7b5
--- /dev/null
+++ b/l10n-vi/toolkit/chrome/search/search.properties
@@ -0,0 +1,18 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+addEngineConfirmTitle=Thêm Máy tìm kiếm
+addEngineConfirmation=Thêm "%S" vào danh sách các bộ máy hiện có trên thanh tìm kiếm?\n\nTừ: %S
+addEngineAsCurrentText=Đặt thành máy tìm kiếm hiện tại (&u)
+addEngineAddButtonLabel=Thêm
+
+error_loading_engine_title=Lỗi tải xuống
+# LOCALIZATION NOTE (error_loading_engine_msg2): %1$S = brandShortName, %2$S = location
+error_loading_engine_msg2=%S không thể tải xuống phần bổ trợ tìm kiếm từ:\n%S
+error_duplicate_engine_msg=%S không thể cài đặt phần bổ trợ tìm kiếm từ "%S" bởi vì một máy tìm kiếm cùng tên đã tồn tại.
+
+error_invalid_engine_title=Lỗi cài đặt
+error_invalid_format_title=Định dạng không hợp lệ
+# LOCALIZATION NOTE (error_invalid_engine_msg2): %1$S = brandShortName, %2$S = location (url)
+error_invalid_engine_msg2=%1$S không thể cài đặt công cụ tìm kiếm từ: %2$S
diff --git a/l10n-vi/toolkit/crashreporter/aboutcrashes.ftl b/l10n-vi/toolkit/crashreporter/aboutcrashes.ftl
new file mode 100644
index 0000000000..dbb0b066aa
--- /dev/null
+++ b/l10n-vi/toolkit/crashreporter/aboutcrashes.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/-
+
+
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+crash-reports-title = Báo cáo lỗi
+
+submit-all-button-label = Gửi tất cả
+delete-button-label = Xóa tất cả
+delete-confirm-title = Bạn có chắc không?
+delete-unsubmitted-description = Hành động này sẽ xóa tất cả báo cáo lỗi chưa gửi và không thể hoàn tác.
+delete-submitted-description = Thao tác này sẽ xóa danh sách các báo cáo sự cố đã gửi nhưng sẽ không xóa dữ liệu đã gửi. Điều này không thể hoàn tác được.
+
+crashes-unsubmitted-label = Các báo cáo lỗi chưa gửi
+id-heading = ID báo cáo
+date-crashed-heading = Ngày xảy ra lỗi
+submit-crash-button-label = Gửi
+# This text is used to replace the label of the crash submit button
+# if the crash submission fails.
+submit-crash-button-failure-label = Thất bại
+
+crashes-submitted-label = Các báo cáo lỗi đã gửi
+date-submitted-heading = Ngày gửi
+view-crash-button-label = Xem
+
+no-reports-label = Chưa có báo cáo lỗi nào được gửi.
+no-config-label = Ứng dụng này không thể hiển thị các báo cáo lỗi. Tùy chỉnh <code>breakpad.reportURL</code> phải được thiết lập.
diff --git a/l10n-vi/toolkit/crashreporter/crashreporter.ini b/l10n-vi/toolkit/crashreporter/crashreporter.ini
new file mode 100644
index 0000000000..f92349ebd4
--- /dev/null
+++ b/l10n-vi/toolkit/crashreporter/crashreporter.ini
@@ -0,0 +1,60 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# This file is in the UTF-8 encoding
+[Strings]
+# LOCALIZATION NOTE (isRTL):
+# Leave this entry empty unless your language requires right-to-left layout,
+# for example like Arabic, Hebrew, Persian. If your language needs RTL, please
+# use the untranslated English word "yes" as value
+isRTL=
+CrashReporterTitle=Trình báo cáo lỗi
+# LOCALIZATION NOTE (CrashReporterVendorTitle): %s is replaced with the vendor name. (i.e. "Mozilla")
+CrashReporterVendorTitle=Trình báo cáo lỗi của %s
+# LOCALIZATION NOTE (CrashReporterErrorText): %s is replaced with another string containing detailed information.
+CrashReporterErrorText=Ứng dụng này gặp vấn đề và đã bị lỗi.\n\nThật không may là trình báo lỗi không thể gửi báo cáo đi.\n\nChi tiết: %s
+# LOCALIZATION NOTE (CrashReporterProductErrorText2): The first %s is replaced with the product name (i.e. "Firefox"), the second is replaced with another string containing detailed information. These two substitutions can not be reordered!
+CrashReporterProductErrorText2=%s gặp vấn đề và đã bị lỗi.\n\nThật không may là trình báo lỗi không thể gửi đi.\n\nChi tiết: %s
+CrashReporterSorry=Chúng tôi thành thật xin lỗi
+# LOCALIZATION NOTE (CrashReporterDescriptionText2): The %s is replaced with the product name.
+CrashReporterDescriptionText2=%s gặp vấn đề và đã bị lỗi.\n\nĐể giúp chúng tôi chẩn đoán và sửa chữa, bạn có thể gửi báo cáo lỗi cho chúng tôi.
+CrashReporterDefault=Ứng dụng này được chạy sau khi gặp lỗi để báo cáo vấn đề tới nhà cung cấp ứng dụng. Không nên chạy nó trực tiếp.
+Details=Chi tiết…
+ViewReportTitle=Báo cáo nội dung
+CommentGrayText=Thêm bình luận (bình luận sễ được hiển thị công khai)
+ExtraReportInfo=Báo cáo cũng bao gồm thông tin kĩ thuật về trạng thái ứng dụng lúc bị lỗi.
+# LOCALIZATION NOTE (CheckSendReport): The %s is replaced with the vendor name.
+CheckSendReport=Báo cáo %s về lỗi này để họ có thể sửa nó
+CheckIncludeURL=Bao gồm địa chỉ trang web tôi đang xem
+CheckAllowEmail=Cho phép %s liên hệ với tôi về báo cáo này
+EmailGrayText=Nhập địa chỉ email của bạn ở đây
+ReportPreSubmit2=Báo cáo của bạn sẽ được gửi trước khi bạn thoát hoặc khởi động lại.
+ReportDuringSubmit2=Đang gửi báo cáo của bạn…
+ReportSubmitSuccess=Báo cáo đã được gửi thành công!
+ReportSubmitFailed=Có vấn đề trong khi gửi báo cáo của bạn.
+ReportResubmit=Đang gửi lại các báo cáo không gửi được trước đó…
+# LOCALIZATION NOTE (Quit2): The %s is replaced with the product name.
+Quit2=Thoát %s
+# LOCALIZATION NOTE (Restart): The %s is replaced with the product name.
+Restart=Khởi động lại %s
+Ok=OK
+Close=Đóng
+
+# LOCALIZATION NOTE (CrashID): The %s is replaced with the Crash ID from the server, which is a string like abc12345-6789-0abc-def1-23456abcdef1
+CrashID=ID lỗi: %s
+# LOCALIZATION NOTE (CrashDetailsURL): The %s is replaced with a URL that the user can visit to view the crash details.
+CrashDetailsURL=Bạn có thể xem chi tiết về lỗi tại %s
+ErrorBadArguments=Ứng dụng đã bỏ qua một tham số bất hợp lệ.
+ErrorExtraFileExists=Ứng dụng đã không để lại tập tin dữ liệu.
+ErrorExtraFileRead=Không thể đọc tập tin dữ liệu của ứng dụng.
+ErrorExtraFileMove=Không thể di chuyển tập tin dữ liệu ứng dụng.
+ErrorDumpFileExists=Ứng dụng không để lại tập tin ghi lỗi.
+ErrorDumpFileMove=Không thể di chuyển tập tin ghi lỗi.
+ErrorNoProductName=Ứng dụng không thể nhận diện chính nó.
+ErrorNoServerURL=Ứng dụng không xác định được máy chủ gửi báo cáo lỗi.
+ErrorNoSettingsPath=Không thể tìm thấy thiết lập của trình báo cáo lỗi.
+ErrorCreateDumpDir=Không thể tạo thư mục lưu tập tin ghi lỗi.
+# LOCALIZATION NOTE (ErrorEndOfLife): The %s is replaced with the product name.
+ErrorEndOfLife=Phiên bản %s bạn đang dùng không còn được hỗ trợ. Báo cáo lỗi không còn được chấp nhận cho phiên bản này. Vui lòng nâng cấp lên phiên bản được hỗ trợ.
+
diff --git a/l10n-vi/toolkit/defines.inc b/l10n-vi/toolkit/defines.inc
new file mode 100644
index 0000000000..b9d2f24cae
--- /dev/null
+++ b/l10n-vi/toolkit/defines.inc
@@ -0,0 +1 @@
+#define MOZ_LANG_TITLE Tiếng Việt
diff --git a/l10n-vi/toolkit/toolkit/about/aboutAbout.ftl b/l10n-vi/toolkit/toolkit/about/aboutAbout.ftl
new file mode 100644
index 0000000000..75b235dd2e
--- /dev/null
+++ b/l10n-vi/toolkit/toolkit/about/aboutAbout.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/.
+
+about-about-title = about:about
+about-about-note = Đây là một danh sách các trang “giới thiệu” tiện cho bạn.<br/> Một số có thể gây bối rối. Một số chỉ dành cho mục đích chẩn đoán.<br/> Và một số bị bỏ đi vì chúng yêu cầu các chuỗi truy vấn.
diff --git a/l10n-vi/toolkit/toolkit/about/aboutAddons.ftl b/l10n-vi/toolkit/toolkit/about/aboutAddons.ftl
new file mode 100644
index 0000000000..d5cb0e1c38
--- /dev/null
+++ b/l10n-vi/toolkit/toolkit/about/aboutAddons.ftl
@@ -0,0 +1,426 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+addons-window =
+ .title = Quản lí tiện ích
+addons-page-title = Quản lí tiện ích
+search-header =
+ .placeholder = Tìm kiếm addons.mozilla.org
+ .searchbuttonlabel = Tìm kiếm
+search-header-shortcut =
+ .key = f
+list-empty-installed =
+ .value = Bạn không có tiện ích nào thuộc kiểu này được cài đặt
+list-empty-available-updates =
+ .value = Không tìm thấy cập nhật
+list-empty-recent-updates =
+ .value = Bạn chưa cập nhật tiện ích nào gần đây
+list-empty-find-updates =
+ .label = Kiểm tra cập nhật
+list-empty-button =
+ .label = Tìm hiểu thêm về tiện ích
+help-button = Hỗ trợ tiện ích
+sidebar-help-button-title =
+ .title = Hỗ trợ tiện ích
+preferences =
+ { PLATFORM() ->
+ [windows] Tùy chọn { -brand-short-name }
+ *[other] Tùy chỉnh { -brand-short-name }
+ }
+sidebar-preferences-button-title =
+ .title =
+ { PLATFORM() ->
+ [windows] Tùy chọn { -brand-short-name }
+ *[other] Tùy chỉnh { -brand-short-name }
+ }
+show-unsigned-extensions-button =
+ .label = Không thể xác thực một số tiện ích
+show-all-extensions-button =
+ .label = Hiện tất cả các tiện ích
+cmd-show-details =
+ .label = Hiện thêm thông tin
+ .accesskey = S
+cmd-find-updates =
+ .label = Tìm bản cập nhật
+ .accesskey = F
+cmd-preferences =
+ .label =
+ { PLATFORM() ->
+ [windows] Tùy chọn
+ *[other] Tùy chỉnh
+ }
+ .accesskey =
+ { PLATFORM() ->
+ [windows] O
+ *[other] P
+ }
+cmd-enable-theme =
+ .label = Sử dụng chủ đề
+ .accesskey = W
+cmd-disable-theme =
+ .label = Dừng sử dụng chủ đề
+ .accesskey = W
+cmd-install-addon =
+ .label = Cài đặt
+ .accesskey = I
+cmd-contribute =
+ .label = Đóng góp
+ .accesskey = C
+ .tooltiptext = Đóng góp vào sự phát triển của tiện ích này
+detail-version =
+ .label = Phiên bản
+detail-last-updated =
+ .label = Cập nhật lần cuối
+detail-contributions-description = Nhà phát triển tiện ích này đề nghị bạn hỗ trợ một khoản tài chính nhỏ cho việc phát triển.
+detail-contributions-button = Đóng góp
+ .title = Đóng góp cho sự phát triển của tiện ích mở rộng này
+ .accesskey = C
+detail-update-type =
+ .value = Cập nhật tự động
+detail-update-default =
+ .label = Mặc định
+ .tooltiptext = Chỉ tự động cài đặt cập nhật khi đó là mặc định
+detail-update-automatic =
+ .label = Bật
+ .tooltiptext = Tự động cài đặt cập nhật
+detail-update-manual =
+ .label = Tắt
+ .tooltiptext = Không tự động cài đặt cập nhật
+# Used as a description for the option to allow or block an add-on in private windows.
+detail-private-browsing-label = Chạy trong cửa sổ riêng tư
+# Some add-ons may elect to not run in private windows by setting incognito: not_allowed in the manifest. This
+# cannot be overridden by the user.
+detail-private-disallowed-label = Không được phép trong cửa sổ riêng tư
+detail-private-disallowed-description2 = Tiện ích mở rộng này không chạy trong khi duyệt web riêng tư. <a data-l10n-name="learn-more">Tìm hiểu thêm</a>
+# Some special add-ons are privileged, run in private windows automatically, and this permission can't be revoked
+detail-private-required-label = Yêu cầu quyền truy cập vào cửa sổ riêng tư
+detail-private-required-description2 = Tiện ích mở rộng này có quyền truy cập vào các hoạt động trực tuyến của bạn trong khi duyệt web riêng tư. <a data-l10n-name="learn-more">Tìm hiểu thêm</a>
+detail-private-browsing-on =
+ .label = Cho phép
+ .tooltiptext = Kích hoạt trong duyệt web riêng tư
+detail-private-browsing-off =
+ .label = Không cho phép
+ .tooltiptext = Vô hiệu hóa trong duyệt web riêng tư
+detail-home =
+ .label = Trang chủ
+detail-home-value =
+ .value = { detail-home.label }
+detail-repository =
+ .label = Hồ sơ tiện ích
+detail-repository-value =
+ .value = { detail-repository.label }
+detail-check-for-updates =
+ .label = Kiểm tra cập nhật
+ .accesskey = U
+ .tooltiptext = Kiểm tra cập nhật cho tiện ích này
+detail-show-preferences =
+ .label =
+ { PLATFORM() ->
+ [windows] Tùy chọn
+ *[other] Tùy chỉnh
+ }
+ .accesskey =
+ { PLATFORM() ->
+ [windows] O
+ *[other] P
+ }
+ .tooltiptext =
+ { PLATFORM() ->
+ [windows] Thay đổi tùy chọn của tiện ích này
+ *[other] Thay đổi tùy chỉnh của tiện ích này
+ }
+detail-rating =
+ .value = Xếp hạng
+addon-restart-now =
+ .label = Khởi động lại ngay
+disabled-unsigned-heading =
+ .value = Một số tiện ích đã bị vô hiệu hóa
+disabled-unsigned-description = Những tiện ích sau chưa được kiểm tra tương thích với { -brand-short-name }. Bạn có thể <label data-l10n-name="find-addons">tìm tiện ích thay thế</label> hoặc chờ nhà phát triển cập nhật bản mới.
+disabled-unsigned-learn-more = Tìm hiểu về nỗ lực đảm bảo an toàn trên mạng cho bạn của chúng tôi.
+disabled-unsigned-devinfo = Nếu bạn là lập trình viên và muốn tiện ích của mình được kiểm tra thì có thể đọc <label data-l10n-name="learn-more">tài liệu hướng dẫn</label> của chúng tôi.
+plugin-deprecation-description = Bạn đang thấy thiếu gì đó? Một số phần bổ trợ không còn được hỗ trợ bởi { -brand-short-name }. <label data-l10n-name="learn-more">Tìm hiểu thêm.</label>
+legacy-warning-show-legacy = Hiển thị các tiện ích mở rộng kế thừa
+legacy-extensions =
+ .value = Tiện ích mở rộng kế thừa
+legacy-extensions-description = Các tiện ích mở rộng này không đáp ứng tiêu chuẩn hiện tại của { -brand-short-name } do đó chúng đã bị ngừng hoạt động. <label data-l10n-name="legacy-learn-more">Tìm hiểu về các thay đổi tiện ích</label>
+private-browsing-description2 =
+ { -brand-short-name } đang thay đổi cách các tiện ích mở rộng hoạt động trong trình duyệt riêng tư. Bất kỳ tiện ích mở rộng mới nào bạn thêm vào
+ { -brand-short-name } sẽ không chạy theo mặc định trong cửa sổ riêng tư. Trừ khi bạn cho phép nó trong cài đặt,
+ tiện ích mở rộng sẽ không chạy trong khi duyệt web riêng tư và sẽ không có quyền truy cập vào các hoạt động trực tuyến của bạn.
+ Chúng tôi đã thực hiện thay đổi này để giữ trình duyệt của bạn riêng tư.
+ <label data-l10n-name="private-browsing-learn-more">Tìm hiểu cách quản lý cài đặt tiện ích mở rộng.</label>
+addon-category-discover = Đề xuất
+addon-category-discover-title =
+ .title = Đề xuất
+addon-category-extension = Tiện ích mở rộng
+addon-category-extension-title =
+ .title = Tiện ích mở rộng
+addon-category-theme = Chủ đề
+addon-category-theme-title =
+ .title = Chủ đề
+addon-category-plugin = Phần bổ trợ
+addon-category-plugin-title =
+ .title = Phần bổ trợ
+addon-category-dictionary = Từ điển
+addon-category-dictionary-title =
+ .title = Từ điển
+addon-category-locale = Ngôn ngữ
+addon-category-locale-title =
+ .title = Ngôn ngữ
+addon-category-available-updates = Cập nhật có sẵn
+addon-category-available-updates-title =
+ .title = Cập nhật có sẵn
+addon-category-recent-updates = Cập nhật gần đây
+addon-category-recent-updates-title =
+ .title = Cập nhật gần đây
+
+## These are global warnings
+
+extensions-warning-safe-mode = Tất cả tiện ích đã bị vô hiệu hóa bởi chế độ an toàn.
+extensions-warning-check-compatibility = Việc kiểm tra tính tương thích của tiện ích đã bị vô hiệu hóa. Có thể bạn đang dùng các tiện ích không còn tương thích nữa.
+extensions-warning-check-compatibility-button = Bật
+ .title = Kích hoạt kiểm tra tính tương thích của tiện ích
+extensions-warning-update-security = Việc kiểm tra tính an toàn của các cập nhật tiện ích đã bị vô hiệu hóa. Bạn có thể bị tổn hại nếu cập nhật.
+extensions-warning-update-security-button = Bật
+ .title = Kích hoạt kiểm tra tính bảo mật của cập nhật cho tiện ích
+
+## Strings connected to add-on updates
+
+addon-updates-check-for-updates = Kiểm tra cập nhật
+ .accesskey = C
+addon-updates-view-updates = Xem các cập nhật gần đây
+ .accesskey = V
+
+# This menu item is a checkbox that toggles the default global behavior for
+# add-on update checking.
+
+addon-updates-update-addons-automatically = Tự động cập nhật tiện ích
+ .accesskey = A
+
+## Specific add-ons can have custom update checking behaviors ("Manually",
+## "Automatically", "Use default global behavior"). These menu items reset the
+## update checking behavior for all add-ons to the default global behavior
+## (which itself is either "Automatically" or "Manually", controlled by the
+## extensions-updates-update-addons-automatically.label menu item).
+
+addon-updates-reset-updates-to-automatic = Thiết lập cập nhật tự động tất cả các tiện ích
+ .accesskey = R
+addon-updates-reset-updates-to-manual = Thiết lập cập nhật thủ công tất cả các tiện ích
+ .accesskey = R
+
+## Status messages displayed when updating add-ons
+
+addon-updates-updating = Đang cập nhật tiện ích
+addon-updates-installed = Các tiện ích của bạn đã được cập nhật.
+addon-updates-none-found = Không tìm thấy cập nhật
+addon-updates-manual-updates-found = Xem các cập nhật hiện có
+
+## Add-on install/debug strings for page options menu
+
+addon-install-from-file = Cài đặt tiện ích từ tập tin…
+ .accesskey = I
+addon-install-from-file-dialog-title = Chọn tiện ích để cài đặt
+addon-install-from-file-filter-name = Tiện ích
+addon-open-about-debugging = Gỡ lỗi tiện ích
+ .accesskey = b
+
+## Extension shortcut management
+
+# This is displayed in the page options menu
+addon-manage-extensions-shortcuts = Quản lý phím tắt tiện ích mở rộng
+ .accesskey = s
+shortcuts-no-addons = Bạn không có bất kỳ tiện ích mở rộng nào được kích hoạt.
+shortcuts-no-commands = Các tiện ích mở rộng sau không có phím tắt:
+shortcuts-input =
+ .placeholder = Nhập một phím tắt
+shortcuts-browserAction2 = Kích hoạt nút thanh công cụ
+shortcuts-pageAction = Kích hoạt hành động trang
+shortcuts-sidebarAction = Chuyển đến thanh lề
+shortcuts-modifier-mac = Bao gồmCtrl, Alt, hoặc ⌘
+shortcuts-modifier-other = Bao gồm Ctrl hoặc Alt
+shortcuts-invalid = Kết hợp không hợp lệ
+shortcuts-letter = Nhập một kí tự
+shortcuts-system = Không thể ghi đè một phím tắt { -brand-short-name }
+# String displayed in warning label when there is a duplicate shortcut
+shortcuts-duplicate = Phím tắt trùng lặp
+# String displayed when a keyboard shortcut is already assigned to more than one add-on
+# Variables:
+# $shortcut (string) - Shortcut string for the add-on
+shortcuts-duplicate-warning-message = { $shortcut } đang được sử dụng làm phím tắt trong nhiều trường hợp. Phím tắt trùng lặp có thể gây ra hành vi bất ngờ.
+# String displayed when a keyboard shortcut is already used by another add-on
+# Variables:
+# $addon (string) - Name of the add-on
+shortcuts-exists = Đã được sử dụng bởi { $addon }
+shortcuts-card-expand-button =
+ { $numberToShow ->
+ *[other] Hiển thị { $numberToShow } khác
+ }
+shortcuts-card-collapse-button = Hiện ít hơn
+header-back-button =
+ .title = Quay lại
+
+## Recommended add-ons page
+
+# Explanatory introduction to the list of recommended add-ons. The action word
+# ("recommends") in the final sentence is a link to external documentation.
+discopane-intro =
+ Tiện ích mở rộng và chủ đề giống như các ứng dụng cho trình duyệt của bạn và chúng cho phép
+ bạn bảo vệ mật khẩu, tải video, tìm giao dịch, chặn quảng cáo gây phiền nhiễu, thay đổi
+ trình duyệt của bạn trông như thế nào, và nhiều hơn nữa. Những chương trình phần mềm
+ nhỏ này là thường được phát triển bởi một bên thứ ba. Ở đây, một lựa chọn
+ <a data-l10n-name="learn-more-trigger">đề xuất</a> { -brand-product-name } cho trường hợp
+ bảo mật, hiệu suất và chức năng đặc biệt.
+# Notice to make user aware that the recommendations are personalized.
+discopane-notice-recommendations =
+ Một số trong những khuyến nghị được cá nhân hóa. Nó dựa trên khác
+ tiện ích mở rộng mà bạn đã cài đặt, tùy chọn hồ sơ và thống kê sử dụng.
+discopane-notice-learn-more = Tìm hiểu thêm
+privacy-policy = Chính sách riêng tư
+# Refers to the author of an add-on, shown below the name of the add-on.
+# Variables:
+# $author (string) - The name of the add-on developer.
+created-by-author = bởi <a data-l10n-name="author">{ $author }</a>
+# Shows the number of daily users of the add-on.
+# Variables:
+# $dailyUsers (number) - The number of daily users.
+user-count = Người dùng: { $dailyUsers }
+install-extension-button = Thêm vào { -brand-product-name }
+install-theme-button = Cài đặt chủ đề
+# The label of the button that appears after installing an add-on. Upon click,
+# the detailed add-on view is opened, from where the add-on can be managed.
+manage-addon-button = Quản lý
+find-more-addons = Tìm thêm tiện ích
+# This is a label for the button to open the "more options" menu, it is only
+# used for screen readers.
+addon-options-button =
+ .aria-label = Tùy chọn khác
+
+## Add-on actions
+
+report-addon-button = Báo cáo
+remove-addon-button = Xóa
+# The link will always be shown after the other text.
+remove-addon-disabled-button = Không thể xóa bỏ dữ liệu <a data-l10n-name="link">Tại sao?</a>
+disable-addon-button = Tắt
+enable-addon-button = Bật
+# This is used for the toggle on the extension card, it's a checkbox and this
+# is always its label.
+extension-enable-addon-button-label =
+ .aria-label = Bật
+preferences-addon-button =
+ { PLATFORM() ->
+ [windows] Tùy chọn
+ *[other] Tùy chỉnh
+ }
+details-addon-button = Chi tiết
+release-notes-addon-button = Ghi chú phát hành
+permissions-addon-button = Quyền hạn
+extension-enabled-heading = Đã bật
+extension-disabled-heading = Đã tắt
+theme-enabled-heading = Đã bật
+theme-disabled-heading = Đã tắt
+plugin-enabled-heading = Đã bật
+plugin-disabled-heading = Đã tắt
+dictionary-enabled-heading = Đã bật
+dictionary-disabled-heading = Đã tắt
+locale-enabled-heading = Đã bật
+locale-disabled-heading = Đã tắt
+ask-to-activate-button = Hỏi trước khi kích hoạt
+always-activate-button = Luôn kích hoạt
+never-activate-button = Không bao giờ kích hoạt
+addon-detail-author-label = Tác giả
+addon-detail-version-label = Phiên bản
+addon-detail-last-updated-label = Cập nhật cuối
+addon-detail-homepage-label = Trang chủ
+addon-detail-rating-label = Xêp hạng
+# Message for add-ons with a staged pending update.
+install-postponed-message = Tiện ích mở rộng này sẽ được cập nhật khi { -brand-short-name } khởi động lại.
+install-postponed-button = Cập nhật ngay
+# The average rating that the add-on has received.
+# Variables:
+# $rating (number) - A number between 0 and 5. The translation should show at most one digit after the comma.
+five-star-rating =
+ .title = Xếp hạng { NUMBER($rating, maximumFractionDigits: 1) } trên 5
+# This string is used to show that an add-on is disabled.
+# Variables:
+# $name (string) - The name of the add-on
+addon-name-disabled = { $name } (đã vô hiệu hóa)
+# The number of reviews that an add-on has received on AMO.
+# Variables:
+# $numberOfReviews (number) - The number of reviews received
+addon-detail-reviews-link =
+ { $numberOfReviews ->
+ *[other] { $numberOfReviews } đánh giá
+ }
+
+## Pending uninstall message bar
+
+# Variables:
+# $addon (string) - Name of the add-on
+pending-uninstall-description = <span data-l10n-name="addon-name">{ $addon }</span> đã bị xóa.
+pending-uninstall-undo-button = Hoàn tác
+addon-detail-updates-label = Cho phép cập nhật tự động
+addon-detail-updates-radio-default = Mặc định
+addon-detail-updates-radio-on = Bật
+addon-detail-updates-radio-off = Tắt
+addon-detail-update-check-label = Kiểm tra cập nhật
+install-update-button = Cập nhật
+# This is the tooltip text for the private browsing badge in about:addons. The
+# badge is the private browsing icon included next to the extension's name.
+addon-badge-private-browsing-allowed2 =
+ .title = Được phép trong cửa sổ riêng tư
+ .aria-label = { addon-badge-private-browsing-allowed2.title }
+addon-detail-private-browsing-help = Khi được cho phép, tiện ích mở rộng sẽ có quyền truy cập vào các hoạt động trực tuyến của bạn trong khi duyệt web riêng tư. <a data-l10n-name="learn-more">Tìm hiểu thêm</a>
+addon-detail-private-browsing-allow = Cho phép
+addon-detail-private-browsing-disallow = Không cho phép
+
+## This is the tooltip text for the recommended badges for an extension in about:addons. The
+## badge is a small icon displayed next to an extension when it is recommended on AMO.
+
+addon-badge-recommended2 =
+ .title = { -brand-product-name } chỉ đề xuất các tiện ích mở rộng đáp ứng các tiêu chuẩn của chúng tôi về bảo mật và hiệu suất
+ .aria-label = { addon-badge-recommended2.title }
+addon-badge-line2 =
+ .title = Đây là tiện ích mở rộng chính thức do những người tạo ra { -brand-product-name } xây dựng
+ .aria-label = { addon-badge-line2.title }
+# We hard code "Mozilla" in the string below because the extensions are built
+# by Mozilla and we don't want forks to display "by Fork".
+addon-badge-line3 =
+ .title = Tiện ích mở rộng chính thức do Mozilla xây dựng. Đáp ứng các tiêu chuẩn về bảo mật và hiệu suất.
+ .aria-label = { addon-badge-line3.title }
+addon-badge-verified2 =
+ .title = Tiện ích mở rộng này đã được xem xét để đáp ứng các tiêu chuẩn của chúng tôi về bảo mật và hiệu suất
+ .aria-label = { addon-badge-verified2.title }
+
+##
+
+available-updates-heading = Cập nhật có sẵn
+recent-updates-heading = Cập nhật gần đây
+release-notes-loading = Đang tải…
+release-notes-error = Xin lỗi, nhưng có lỗi xảy ra khi mở ghi chú phát hành.
+addon-permissions-empty = Tiện ích mở rộng này không yêu cầu bất kỳ quyền nào
+addon-permissions-required = Các quyền cần thiết cho chức năng cốt lõi:
+addon-permissions-optional = Các quyền tùy chọn cho chức năng được bổ sung:
+addon-permissions-learnmore = Tìm hiểu thêm về quyền hạn
+recommended-extensions-heading = Tiện ích mở rộng được đề xuất
+recommended-themes-heading = Chủ đề được đề xuất
+# A recommendation for the Firefox Color theme shown at the bottom of the theme
+# list view. The "Firefox Color" name itself should not be translated.
+recommended-theme-1 = Cảm thấy muốn sáng tạo? <a data-l10n-name="link">Xây dựng chủ đề của riêng bạn với Firefox Color.</a>
+
+## Page headings
+
+extension-heading = Quản lí tiện ích của bạn
+theme-heading = Quản lí chủ đề của bạn
+plugin-heading = Quản lí phần bổ trợ của bạn
+dictionary-heading = Quản lí từ điển của bạn
+locale-heading = Quản lí ngôn ngữ của bạn
+updates-heading = Quản lý cập nhật của bạn
+discover-heading = Cá nhân hóa { -brand-short-name } của bạn
+shortcuts-heading = Quản lý phím tắt tiện ích mở rộng
+default-heading-search-label = Tìm thêm tiện ích
+addons-heading-search-input =
+ .placeholder = Tìm kiếm addons.mozilla.org
+addon-page-options-button =
+ .title = Công cụ cho tất cả tiện ích
diff --git a/l10n-vi/toolkit/toolkit/about/aboutCompat.ftl b/l10n-vi/toolkit/toolkit/about/aboutCompat.ftl
new file mode 100644
index 0000000000..e3fd99d5cb
--- /dev/null
+++ b/l10n-vi/toolkit/toolkit/about/aboutCompat.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/.
+
+label-disable = Vô hiệu hóa
+label-enable = Kích hoạt
+label-interventions = Can thiệp
+label-more-information = Thông tin chi tiết: Lỗi { $bug }
+label-overrides = Ghi đè chuỗi đại diện người dùng
+text-disabled-in-about-config = Tính năng này đã bị vô hiệu hóa trong about:config
+text-no-interventions = Không có can thiệp nào đang được sử dụng
+text-no-overrides = Không có ghi đè chuỗi đại diện người dùng nào đang được sử dụng
+text-title = about:compat
diff --git a/l10n-vi/toolkit/toolkit/about/aboutConfig.ftl b/l10n-vi/toolkit/toolkit/about/aboutConfig.ftl
new file mode 100644
index 0000000000..9c838d50b1
--- /dev/null
+++ b/l10n-vi/toolkit/toolkit/about/aboutConfig.ftl
@@ -0,0 +1,109 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+config-window =
+ .title = about:config
+
+## Strings used to display a warning in about:config
+
+# This text should be attention grabbing and playful
+config-about-warning-title =
+ .value = Phần này có thể làm vô hiệu chế độ bảo hành!
+config-about-warning-text = Thay đổi những thiết lập nâng cao này có thể gây hại cho sự ổn định, bảo mật và tính năng của ứng dụng này. Bạn chỉ nên tiếp tục nếu bạn hoàn toàn chắc chắn về những gì mình đang làm.
+config-about-warning-button =
+ .label = Tôi chấp nhận rủi ro!
+config-about-warning-checkbox =
+ .label = Hiện cảnh báo này vào lần sau
+
+config-search-prefs =
+ .value = Tìm kiếm:
+ .accesskey = r
+
+config-focus-search =
+ .key = r
+
+config-focus-search-2 =
+ .key = f
+
+## These strings are used for column headers
+
+config-pref-column =
+ .label = Tên tùy chọn
+config-lock-column =
+ .label = Trạng thái
+config-type-column =
+ .label = Kiểu
+config-value-column =
+ .label = Giá trị
+
+## These strings are used for tooltips
+
+config-pref-column-header =
+ .tooltip = Nhấn để sắp xếp
+config-column-chooser =
+ .tooltip = Nhấn để chọn cột hiển thị
+
+## These strings are used for the context menu
+
+config-copy-pref =
+ .key = C
+ .label = Chép
+ .accesskey = C
+
+config-copy-name =
+ .label = Sao chép tên
+ .accesskey = N
+
+config-copy-value =
+ .label = Sao chép giá trị
+ .accesskey = V
+
+config-modify =
+ .label = Sửa đổi
+ .accesskey = M
+
+config-toggle =
+ .label = Bật-Tắt
+ .accesskey = T
+
+config-reset =
+ .label = Đặt về mặc định
+ .accesskey = R
+
+config-new =
+ .label = Mới
+ .accesskey = w
+
+config-string =
+ .label = Chuỗi kí tự
+ .accesskey = S
+
+config-integer =
+ .label = Số nguyên
+ .accesskey = I
+
+config-boolean =
+ .label = Luận lí
+ .accesskey = B
+
+config-default = mặc định
+config-modified = đã sửa
+config-locked = bị khóa
+
+config-property-string = chuỗi kí tự
+config-property-int = số nguyên
+config-property-bool = luận lí
+
+config-new-prompt = Nhập tên tùy chọn
+
+config-nan-title = Giá trị không hợp lệ
+config-nan-text = Văn bản bạn điền vào không phải là số.
+
+# Variables:
+# $type (String): type of value (boolean, integer or string)
+config-new-title = Giá trị mới { $type }
+
+# Variables:
+# $type (String): type of value (boolean, integer or string)
+config-modify-title = Nhập giá trị { $type }
diff --git a/l10n-vi/toolkit/toolkit/about/aboutGlean.ftl b/l10n-vi/toolkit/toolkit/about/aboutGlean.ftl
new file mode 100644
index 0000000000..ac2d50dbd5
--- /dev/null
+++ b/l10n-vi/toolkit/toolkit/about/aboutGlean.ftl
@@ -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/.
+
+
+### "Glean" and "Glean SDK" should remain in English.
+
+about-glean-page-title = Giới thiệu về Glean
+about-glean-description = <a data-l10n-name="glean-sdk-doc-link">Glean SDK</a> là thư viện thu thập dữ liệu được sử dụng trong các sản phẩm của Mozilla. Trang này dành cho các nhà phát triển và người kiểm tra, những người cần <a data-l10n-name="fog-debug-doc-link">định cấu hình trạng thái gỡ lỗi và ghi nhật ký trong Glean SDK</a>.
+about-glean-warning = Việc sử dụng sai giao diện này có thể làm vỡ { -brand-short-name }.
+tag-pings-label = Gắn thẻ tất cả các ping đã gửi với thẻ này
+log-pings-label = Ghi log tải trọng ping trước khi gửi?
+send-pings-label = Gửi ping được đặt tên
+controls-button-label = Gửi cài đặt
diff --git a/l10n-vi/toolkit/toolkit/about/aboutHttpsOnlyError.ftl b/l10n-vi/toolkit/toolkit/about/aboutHttpsOnlyError.ftl
new file mode 100644
index 0000000000..5e64109bb7
--- /dev/null
+++ b/l10n-vi/toolkit/toolkit/about/aboutHttpsOnlyError.ftl
@@ -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/.
+
+about-httpsonly-insecure-title = Kết nối an toàn không khả dụng
+# Variables:
+# $websiteUrl (String) - Url of the website that failed to load. Example: www.example.com
+about-httpsonly-insecure-explanation-unavailable = Bạn duyệt web ở chế độ chỉ HTTPS và phiên bản HTTPS an toàn của <em>{ $websiteUrl }</em> không khả dụng.
+about-httpsonly-insecure-explanation-reasons = Nhiều khả năng, trang web không hỗ trợ HTTPS, nhưng cũng có khả năng kẻ tấn công đang chặn phiên bản HTTPS.
+about-httpsonly-insecure-explanation-exception = Mặc dù rủi ro bảo mật thấp, nhưng nếu bạn quyết định truy cập phiên bản HTTP của trang web, bạn không nên nhập bất kỳ thông tin nhạy cảm nào như mật khẩu, email hoặc chi tiết thẻ tín dụng.
+about-httpsonly-button-make-exception = Chấp nhận rủi ro và tiếp tục đến trang web
+about-httpsonly-title = { -brand-short-name } đã phát hiện vấn đề bảo mật tiềm ẩn
+# Variables:
+# $websiteUrl (String) - Url of the website that failed to load. Example: www.example.com
+about-httpsonly-explanation-unavailable = Bạn duyệt web ở chế độ chỉ HTTPS và phiên bản HTTPS an toàn của <em>{ $websiteUrl }</em> không khả dụng.
+about-httpsonly-title-alert = Cảnh báo Chế độ chỉ HTTPS
+about-httpsonly-title-connection-not-available = Kết nối an toàn không khả dụng
+# Variables:
+# $websiteUrl (String) - Url of the website that failed to load. Example: www.example.com
+about-httpsonly-explanation-unavailable2 = Bạn đã bật Chế độ chỉ HTTPS để tăng cường bảo mật, và phiên bản HTTPS của <em>{ $websiteUrl }</em> không khả dụng.
+about-httpsonly-explanation-question = Điều gì có thể gây ra điều này?
+about-httpsonly-explanation-nosupport = Rất có thể, trang web chỉ đơn giản là không hỗ trợ HTTPS.
+about-httpsonly-explanation-risk = Nó cũng có thể là một kẻ tấn công có liên quan. Nếu bạn quyết định truy cập trang web, bạn không nên nhập bất kỳ thông tin nhạy cảm nào như mật khẩu, email hoặc chi tiết thẻ tín dụng.
+about-httpsonly-button-accept-and-continue = Chấp nhận rủi ro và tiếp tục
+about-httpsonly-explanation-continue = Nếu bạn tiếp tục, Chế độ chỉ HTTPS sẽ tạm thời bị tắt cho trang web này.
+about-httpsonly-button-continue-to-site = Tiếp tục đến trang web HTTP
+about-httpsonly-button-go-back = Quay lại
+about-httpsonly-link-learn-more = Tìm hiểu thêm…
diff --git a/l10n-vi/toolkit/toolkit/about/aboutMozilla.ftl b/l10n-vi/toolkit/toolkit/about/aboutMozilla.ftl
new file mode 100644
index 0000000000..e299462e27
--- /dev/null
+++ b/l10n-vi/toolkit/toolkit/about/aboutMozilla.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/.
+
+about-mozilla-title-6-27 = Cuốn sách của Mozilla, 6:27
+about-mozilla-quote-6-27 =
+ The Beast tiếp tục nghiên cứu của mình với <em>Tiêu điểm</em> mới, xây dựng các tác phẩm <em>Tham khảo</em>
+ tuyệt vời và suy ngẫm về <em>Thực tế</em> mới. The Beast đã đưa ra những người theo dõi và người giúp đỡ
+ của mình để tạo ra một hình thức nhỏ hơn của chính nó và, thông qua các phương tiện <em>Tinh nghịch</em>,
+ đã gửi nó ra khắp thế giới.
+about-mozilla-from-6-27 = từ <strong>Cuốn sách của Mozilla,</strong> 6:27
diff --git a/l10n-vi/toolkit/toolkit/about/aboutNetworking.ftl b/l10n-vi/toolkit/toolkit/about/aboutNetworking.ftl
new file mode 100644
index 0000000000..7e77f07376
--- /dev/null
+++ b/l10n-vi/toolkit/toolkit/about/aboutNetworking.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/.
+
+about-networking-title = Về thông tin mạng
+about-networking-http = HTTP
+about-networking-sockets = Socket
+about-networking-dns = DNS
+about-networking-dns-clear-cache-button = Xóa bộ nhớ đệm DNS
+about-networking-dns-trr-url = URL DoH
+about-networking-dns-suffix = Hậu tố DNS
+about-networking-websockets = WebSocket
+about-networking-refresh = Cập nhật
+about-networking-auto-refresh = Tự tải lại sau 3 giây
+about-networking-hostname = Tên máy chủ
+about-networking-port = Cổng
+about-networking-http-version = Phiên bản HTTP
+about-networking-ssl = SSL
+about-networking-active = Đang hoạt động
+about-networking-idle = Đang nghỉ
+about-networking-host = Máy chủ
+about-networking-tcp = TCP
+about-networking-sent = Đã gửi
+about-networking-received = Đã nhận
+about-networking-family = Nhóm
+about-networking-trr = TRR
+about-networking-addresses = Địa chỉ
+about-networking-expires = Hết hạn (Giây)
+about-networking-originAttributesSuffix = Khóa cách ly
+about-networking-messages-sent = Tin nhắn đã gửi
+about-networking-messages-received = Tin nhắn đã nhận
+about-networking-bytes-sent = Byte đã gửi
+about-networking-bytes-received = Byte đã nhận
+about-networking-logging = Nhật ký
+about-networking-log-tutorial = Xem <a data-l10n-name="logging">nhật ký HTTP</a> để biết hướng dẫn về cách sử dụng công cụ này.
+about-networking-current-log-file = Tập tin nhật ký hiện tại:
+about-networking-current-log-modules = Mô-đun nhật ký hiện tại:
+about-networking-set-log-file = Đặt tập tin nhật ký
+about-networking-set-log-modules = Đặt mô-đun nhật ký
+about-networking-start-logging = Bắt đầu ghi
+about-networking-stop-logging = Dừng ghi
+about-networking-dns-lookup = Tra cứu DNS
+about-networking-dns-lookup-button = Xem
+about-networking-dns-domain = Tên miền:
+about-networking-dns-lookup-table-column = IP
+about-networking-dns-https-rr-lookup-table-column = HTTP RRs
+about-networking-rcwn = Chỉ số RCWN
+about-networking-rcwn-status = Trạng thái RCWN
+about-networking-rcwn-cache-won-count = Số lượng sử dụng bộ nhớ đệm
+about-networking-rcwn-net-won-count = Số lượng sử dụng mạng
+about-networking-total-network-requests = Tổng số yêu cầu mạng
+about-networking-rcwn-operation = Hoạt động bộ nhớ đệm
+about-networking-rcwn-perf-open = Mở
+about-networking-rcwn-perf-read = Đọc
+about-networking-rcwn-perf-write = Ghi
+about-networking-rcwn-perf-entry-open = Mở mục
+about-networking-rcwn-avg-short = Trung bình ngắn
+about-networking-rcwn-avg-long = Trung bình dài
+about-networking-rcwn-std-dev-long = Độ lệch chuẩn dài
+about-networking-rcwn-cache-slow = Bộ đếm bộ nhớ đệm chậm
+about-networking-rcwn-cache-not-slow = Bộ đếm bộ nhớ đệm không chậm
+about-networking-networkid = ID mạng
+about-networking-networkid-id = ID mạng
+
+## Link is intended as "network link"
+
+about-networking-networkid-is-up = Liên kết hoạt động
+about-networking-networkid-status-known = Tình trạng liên kết đã biết
+
+##
+
diff --git a/l10n-vi/toolkit/toolkit/about/aboutPerformance.ftl b/l10n-vi/toolkit/toolkit/about/aboutPerformance.ftl
new file mode 100644
index 0000000000..6d15c9ca1d
--- /dev/null
+++ b/l10n-vi/toolkit/toolkit/about/aboutPerformance.ftl
@@ -0,0 +1,67 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Page title
+about-performance-title = Trình quản lý tác vụ
+
+## Column headers
+
+column-name = Tên
+column-type = Kiểu
+column-energy-impact = Mức độ tác động
+column-memory = Bộ nhớ
+
+## Special values for the Name column
+
+ghost-windows = Các thẻ đã đóng gần đây
+# Variables:
+# $title (String) - the title of the preloaded page, typically 'New Tab'
+preloaded-tab = Đã tải sẵn: { $title }
+
+## Values for the Type column
+
+type-tab = Thẻ
+type-subframe = Khung phụ
+type-tracker = Trình theo dõi
+type-addon = Tiện ích
+type-browser = Trình duyệt
+type-worker = Worker
+type-other = Khác
+
+## Values for the Energy Impact column
+##
+## Variables:
+## $value (Number) - Value of the energy impact, eg. 0.25 (low),
+## 5.38 (medium), 105.38 (high)
+
+energy-impact-high = Cao ({ $value })
+energy-impact-medium = Trung bình ({ $value })
+energy-impact-low = Thấp ({ $value })
+
+## Values for the Memory column
+##
+## Variables:
+## $value (Number) - How much memory is used
+
+size-KB = { $value } KB
+size-MB = { $value } MB
+size-GB = { $value } GB
+
+## Tooltips for the action buttons
+
+close-tab =
+ .title = Đóng thẻ
+show-addon =
+ .title = Hiển thị trong Trình quản lý tiện ích
+
+# Tooltip when hovering an item of the about:performance table
+# Variables:
+# $totalDispatches (Number) - how many dispatches occured for this page since it loaded
+# $totalDuration (Number) - how much CPU time was used by this page since it loaded
+# $dispatchesSincePrevious (Number) - how many dispatches occured in the last 2 seconds
+# $durationSincePrevious (Number) - how much CPU time was used in the last 2 seconds
+item =
+ .title =
+ Công văn sau khi tải: { $totalDispatches } ({ $totalDuration } ms)
+ Công văn sau giây cuối cùng: { $dispatchesSincePrevious } ({ $durationSincePrevious } ms)
diff --git a/l10n-vi/toolkit/toolkit/about/aboutPlugins.ftl b/l10n-vi/toolkit/toolkit/about/aboutPlugins.ftl
new file mode 100644
index 0000000000..e5b3236847
--- /dev/null
+++ b/l10n-vi/toolkit/toolkit/about/aboutPlugins.ftl
@@ -0,0 +1,35 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+title-label = Thông tin về các phần bổ trợ
+
+installed-plugins-label = Các phần bổ trợ đã cài đặt
+no-plugins-are-installed-label = Không tìm thấy phần bổ trợ nào được cài đặt
+
+deprecation-description = Bạn đang thấy thiếu gì đó? Một số phần bổ trợ không còn được hỗ trợ. <a data-l10n-name="deprecation-link">Tìm hiểu thêm.</a>
+
+## The information of plugins
+##
+## Variables:
+## $pluginLibraries: the plugin library
+## $pluginFullPath: path of the plugin
+## $version: version of the plugin
+
+file-dd = <span data-l10n-name="file">Tập tin:</span> { $pluginLibraries }
+path-dd = <span data-l10n-name="path">Đường dẫn:</span> { $pluginFullPath }
+version-dd = <span data-l10n-name="version">Phiên bản:</span> { $version }
+
+## These strings describe the state of plugins
+##
+## Variables:
+## $blockListState: show some special state of the plugin, such as blocked, outdated
+
+state-dd-enabled = <span data-l10n-name="state">Tình trạng:</span> Đã bật
+state-dd-enabled-block-list-state = <span data-l10n-name="state">Tình trạng:</span> Đã bật ({ $blockListState })
+state-dd-Disabled = <span data-l10n-name="state">Tình trạng:</span> Đã vô hiệu hóa
+state-dd-Disabled-block-list-state = <span data-l10n-name="state">Tình trạng:</span> Đã vô hiệu hóa ({ $blockListState })
+
+mime-type-label = Kiểu MIME
+description-label = Mô tả
+suffixes-label = Phần mở rộng
diff --git a/l10n-vi/toolkit/toolkit/about/aboutProcesses.ftl b/l10n-vi/toolkit/toolkit/about/aboutProcesses.ftl
new file mode 100644
index 0000000000..6446eaa5bb
--- /dev/null
+++ b/l10n-vi/toolkit/toolkit/about/aboutProcesses.ftl
@@ -0,0 +1,133 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 title
+about-processes-title = Quản lý tiến trình
+# The Actions column
+about-processes-column-action =
+ .title = Hành động
+
+## Tooltips
+
+about-processes-shutdown-process =
+ .title = Đóng các thẻ và buộc dừng tiến trình
+about-processes-shutdown-tab =
+ .title = Đóng thẻ
+
+## Column headers
+
+about-processes-column-name = Tên
+about-processes-column-memory-resident = Bộ nhớ
+about-processes-column-cpu-total = CPU
+
+## Process names
+## Variables:
+## $pid (String) The process id of this process, assigned by the OS.
+## $origin (String) The domain name for this process.
+## $type (String) The raw type for this process. Used for unknown processes.
+
+about-processes-browser-process-name = { -brand-short-name } (tiến trình { $pid })
+about-processes-web-process-name = Web (tiến trình { $pid }, được chia sẻ)
+about-processes-web-isolated-process-name = Web (tiến trình { $pid }) cho { $origin }
+about-processes-web-large-allocation = Web (tiến trình { $pid }, lớn) cho { $origin }
+about-processes-with-coop-coep-process-name = Web (tiến trình { $pid }, nhiều trang web riêng biệt) cho { $origin }
+about-processes-file-process-name = Tập tin (tiến trình { $pid })
+about-processes-extension-process-name = Tiện ích mở rộng (tiến trình { $pid })
+about-processes-privilegedabout-process-name = About (tiến trình { $pid })
+about-processes-plugin-process-name = Phần bổ trợ (tiến trình { $pid })
+about-processes-privilegedmozilla-process-name = Web (tiến trình { $pid }) cho các trang web { -vendor-short-name }
+about-processes-gmp-plugin-process-name = Gecko Media Plugins (tiến trình { $pid })
+about-processes-gpu-process-name = GPU (tiến trình { $pid })
+about-processes-vr-process-name = VR (tiến trình { $pid })
+about-processes-rdd-process-name = Bộ giải mã dữ liệu (tiến trình { $pid })
+about-processes-socket-process-name = Mạng (tiến trình { $pid })
+about-processes-remote-sandbox-broker-process-name = Remote Sandbox Broker (tiến trình { $pid })
+about-processes-fork-server-process-name = Máy chủ Fork (tiến trình { $pid })
+about-processes-preallocated-process-name = Đã phân bổ trước (tiến trình { $pid })
+about-processes-unknown-process-name = Khác ({ $type }, tiến trình { $pid })
+# Process
+# Variables:
+# $name (String) The name assigned to the process.
+# $pid (String) The process id of this process, assigned by the OS.
+about-processes-process-name = Tiến trình { $pid }: { $name }
+
+## Details within processes
+
+# Single-line summary of threads
+# Variables:
+# $number (Number) The number of threads in the process. Typically larger
+# than 30. We don't expect to ever have processes with less
+# than 5 threads.
+about-processes-thread-summary = Luồng ({ $number })
+# Thread details
+# Variables:
+# $name (String) The name assigned to the thread.
+# $tid (String) The thread id of this thread, assigned by the OS.
+about-processes-thread-name = Luồng { $tid }: { $name }
+# Tab
+# Variables:
+# $name (String) The name of the tab (typically the title of the page, might be the url while the page is loading).
+about-processes-tab-name = Thẻ: { $name }
+about-processes-preloaded-tab = Thẻ mới được tải trước
+# Single subframe
+# Variables:
+# $url (String) The full url of this subframe.
+about-processes-frame-name-one = Khung phụ: { $url }
+# Group of subframes
+# Variables:
+# $number (Number) The number of subframes in this group. Always ≥ 1.
+# $shortUrl (String) The shared prefix for the subframes in the group.
+about-processes-frame-name-many = Khung phụ ({ $number }): { $shortUrl }
+
+## Displaying CPU (percentage and total)
+## Variables:
+## $percent (Number) The percentage of CPU used by the process or thread.
+## Always > 0, generally <= 200.
+## $total (Number) The amount of time used by the process or thread since
+## its start.
+## $unit (String) The unit in which to display $total. See the definitions
+## of `duration-unit-*`.
+
+# Common case.
+about-processes-cpu-user-and-kernel = { NUMBER($percent, maximumSignificantDigits: 2, style: "percent") } ({ NUMBER($total, maximumFractionDigits: 0) }{ $unit })
+# Special case: data is not available yet.
+about-processes-cpu-user-and-kernel-not-ready = (đang đo)
+# Special case: process or thread is currently idle.
+about-processes-cpu-user-and-kernel-idle = rảnh ({ NUMBER($total, maximumFractionDigits: 2) }{ $unit })
+
+## Displaying Memory (total and delta)
+## Variables:
+## $total (Number) The amount of memory currently used by the process.
+## $totalUnit (String) The unit in which to display $total. See the definitions
+## of `memory-unit-*`.
+## $delta (Number) The absolute value of the amount of memory added recently.
+## $deltaSign (String) Either "+" if the amount of memory has increased
+## or "-" if it has decreased.
+## $deltaUnit (String) The unit in which to display $delta. See the definitions
+## of `memory-unit-*`.
+
+# Common case.
+about-processes-total-memory-size = { NUMBER($total, maximumFractionDigits: 0) }{ $totalUnit } ({ $deltaSign }{ NUMBER($delta, maximumFractionDigits: 0) }{ $deltaUnit })
+# Special case: no change.
+about-processes-total-memory-size-no-change = { NUMBER($total, maximumFractionDigits: 0) }{ $totalUnit }
+
+## Duration units
+
+duration-unit-ns = ns
+duration-unit-us = µs
+duration-unit-ms = ms
+duration-unit-s = s
+duration-unit-m = m
+duration-unit-h = h
+duration-unit-d = d
+
+## Memory units
+
+memory-unit-B = B
+memory-unit-KB = KB
+memory-unit-MB = MB
+memory-unit-GB = GB
+memory-unit-TB = TB
+memory-unit-PB = PB
+memory-unit-EB = EB
diff --git a/l10n-vi/toolkit/toolkit/about/aboutProfiles.ftl b/l10n-vi/toolkit/toolkit/about/aboutProfiles.ftl
new file mode 100644
index 0000000000..6be24b871a
--- /dev/null
+++ b/l10n-vi/toolkit/toolkit/about/aboutProfiles.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/.
+
+
+profiles-title = Thông tin về hồ sơ
+profiles-subtitle = Trang này giúp bạn quản lý hồ sơ của bạn. Mỗi hồ sơ là một thế giới riêng biệt chứa lịch sử, dấu trang, cài đặt và tiện ích.
+profiles-create = Tạo hồ sơ mới
+profiles-restart-title = Khởi động lại
+profiles-restart-in-safe-mode = Khởi động lại và vô hiệu hóa các Tiện ích…
+profiles-restart-normal = Khởi động lại bình thường…
+profiles-conflict = Một bản sao khác của { -brand-product-name } đã thực hiện các thay đổi đối với hồ sơ. Bạn phải khởi động lại { -brand-short-name } trước khi thực hiện nhiều thay đổi.
+profiles-flush-fail-title = Các thay đổi chưa được lưu
+profiles-flush-conflict = { profiles-conflict }
+profiles-flush-failed = Một lỗi không mong muốn đã khiến các thay đổi của bạn không được lưu.
+profiles-flush-restart-button = Khởi động lại { -brand-short-name }
+
+# Variables:
+# $name (String) - Name of the profile
+profiles-name = Hồ sơ: { $name }
+profiles-is-default = Hồ sơ mặc định
+profiles-rootdir = Thư mục gốc
+
+# localDir is used to show the directory corresponding to
+# the main profile directory that exists for the purpose of storing data on the
+# local filesystem, including cache files or other data files that may not
+# represent critical user data. (e.g., this directory may not be included as
+# part of a backup scheme.)
+# In case localDir and rootDir are equal, localDir is not shown.
+profiles-localdir = Thư mục nội bộ
+profiles-current-profile = Hồ sơ này đang được sử dụng nên nó không thể bị xóa.
+profiles-in-use-profile = Hồ sơ này đang được sử dụng trong một ứng dụng khác và nó không thể bị xóa.
+
+profiles-rename = Đổi tên
+profiles-remove = Xóa
+profiles-set-as-default = Đặt làm hồ sơ mặc định
+profiles-launch-profile = Bắt đầu hồ sơ ở trình duyệt mới
+
+profiles-cannot-set-as-default-title = Không thể đặt mặc định
+profiles-cannot-set-as-default-message = Không thể thay đổi hồ sơ mặc định cho { -brand-short-name }.
+
+profiles-yes = có
+profiles-no = không
+
+profiles-rename-profile-title = Đổi tên hồ sơ
+# Variables:
+# $name (String) - Name of the profile
+profiles-rename-profile = Đổi tên hồ sơ { $name }
+
+profiles-invalid-profile-name-title = Tên hồ sơ không hợp lệ
+# Variables:
+# $name (String) - Name of the profile
+profiles-invalid-profile-name = Không được phép đặt tên hồ sơ là “{ $name }”.
+
+profiles-delete-profile-title = Xóa hồ sơ
+# Variables:
+# $dir (String) - Path to be displayed
+profiles-delete-profile-confirm =
+ Xóa một hồ sơ cũng sẽ gỡ bỏ nó ra khỏi danh sách các hồ sơ hiện tại và không thể hoàn tác được.
+ Bạn có thể chọn xóa các tập tin dữ liệu của hồ sơ, bao gồm thiết lập, chứng chỉ và các dữ liệu người dùng khác. Tùy chọn này sẽ xóa thư mục “{ $dir }” và không thể hoàn tác được.
+ Bạn có muốn xóa các tập tin dữ liệu của hồ sơ không?
+profiles-delete-files = Xóa các tập tin
+profiles-dont-delete-files = Không xóa các tập tin
+
+profiles-delete-profile-failed-title = Lỗi
+profiles-delete-profile-failed-message = Đã xảy ra lỗi khi cố gắng xóa hồ sơ này.
+
+
+profiles-opendir =
+ { PLATFORM() ->
+ [macos] Hiển thị trong Finder
+ [windows] Mở thư mục
+ *[other] Mở thư mục
+ }
diff --git a/l10n-vi/toolkit/toolkit/about/aboutRights.ftl b/l10n-vi/toolkit/toolkit/about/aboutRights.ftl
new file mode 100644
index 0000000000..db0da81060
--- /dev/null
+++ b/l10n-vi/toolkit/toolkit/about/aboutRights.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+rights-title = Về quyền lợi của bạn
+rights-intro = { -brand-full-name } là phần mềm tự do mã nguồn mở, được xây dựng bởi một cộng đồng gồm hàng nghìn người trên khắp thế giới. Có vài điều mà bạn nên biết:
+rights-intro-point-1 = { -brand-short-name } cung cấp cho bạn theo điều khoản của <a data-l10n-name="mozilla-public-license-link">giấy phép công cộng Mozilla</a>. Điều này có nghĩa là bạn có thể sử dụng, sao chép và phân phối { -brand-short-name } đến người khác. Bạn cũng được hoan nghênh trong việc chỉnh sửa mã nguồn của { -brand-short-name } cho phù hợp với nhu cầu của mình. Giấy phép công cộng Mozilla cũng cho bạn quyền phân phối phiên bản được chỉnh sửa đó.
+rights-intro-point-2 = Bạn không được trao bất kì giấy phép hay quyền thương hiệu nào đối với thương hiệu của Tổ chức Mozilla hay tổ chức bất kì, bao gồm và không giới hạn tên hoặc logo Firefox. Thông tin thêm về thương hiệu có thể được tìm thấy <a data-l10n-name="mozilla-trademarks-link">tại đây</a>.
+rights-intro-point-3 = Một số tính năng trong { -brand-short-name }, như Trình Báo Cáo Lỗi, cho bạn tùy chọn cung cấp phản hồi tới { -vendor-short-name }. Bằng việc chọn gửi phản hồi, bạn cho { -vendor-short-name } quyền sử dụng phản hồi đó để cải tiến sản phẩm, công bố phản hồi trên trang web, và phân phối phản hồi.
+rights-intro-point-4 = Cách chúng tôi dùng thông tin cá nhân của bạn và phản hồi được gửi tới { -vendor-short-name } thông qua { -brand-short-name } được mô tả trong <a data-l10n-name="mozilla-privacy-policy-link">chính sách riêng tư { -brand-short-name }</a>.
+rights-intro-point-4-unbranded = Bất kì chính sách riêng tư thích hợp nào cho sản phẩm này sẽ được liệt kê tại đây.
+rights-intro-point-5 = Một số tính năng { -brand-short-name } sử dụng dịch vụ thông tin dựa trên web, tuy nhiên, chúng tôi không thể đảm bảo chúng chính xác 100% hoặc không có lỗi. Chi tiết hơn, bao gồm thông tin về cách vô hiệu hóa tính năng dùng những dịch vụ này, có thể được tìm thấy trong <a data-l10n-name="mozilla-service-terms-link">điều khoản dịch vụ</a>.
+rights-intro-point-5-unbranded = Nếu sản phẩm này kết hợp các dịch vụ web, bất kì điều khoản dịch vụ thích hợp nào cho (các) dịch vụ cần phải được liên kết với <a data-l10n-name="mozilla-website-services-link">Các Dịch Vụ Đối Với Trang Web</a>.
+rights-intro-point-6 = Để có thể phát một số loại nội dung video, { -brand-short-name } cần tải xuống một số mô đun giải mã nội dung từ một bên thứ ba.
+rights-webservices-header = Dịch vụ Thông tin Dựa trên Web { -brand-full-name }
+rights-webservices = { -brand-full-name } dùng dịch vụ thông tin dựa trên web ("Dịch Vụ") để cung cấp một số tính năng mà bạn dùng trong phiên bản { -brand-short-name } theo điều khoản được mô tả bên dưới. Nếu bạn không muốn dùng một hoặc nhiều Dịch Vụ hoặc điều khoản bên dưới không chấp nhận được, bạn có thể vô hiệu hóa tính năng hoặc Dịch Vụ. Chỉ dẫn cho cách vô hiệu hóa một tính năng hay Dịch Vụ đặc thù có thể được tìm <a data-l10n-name="mozilla-disable-service-link">tại đây</a>. Các tính năng và dịch vụ khác có thể bị tắt trong phần tùy chỉnh ứng dụng.
+rights-safebrowsing = <strong>Duyệt web An toàn: </strong>Vô hiệu hóa tính năng Duyệt web An toàn là không nên vì nó có thể làm bạn đi vào các trang không an toàn. Nếu bạn muốn vô hiệu hóa hoàn toàn tính năng, hãy theo các bước sau:
+rights-safebrowsing-term-1 = Mở tùy chỉnh ứng dụng
+rights-safebrowsing-term-2 = Chọn lựa chọn Bảo mật
+rights-safebrowsing-term-3 = Bỏ chọn tùy chọn "{ enableSafeBrowsing-label }"
+enableSafeBrowsing-label = Chặn nội dung lừa đảo và không an toàn
+rights-safebrowsing-term-4 = Duyệt web An toàn bây giờ đã bị vô hiệu hóa
+rights-locationawarebrowsing = <strong>Duyệt web Nhận diện Vị trí: </strong>luôn có sẵn. Không có thông tin địa điểm nào được gửi đi mà không có sự cho phép của bạn. Nếu bạn muốn vô hiệu hóa hoàn toàn tính năng này, làm theo các bước sau:
+rights-locationawarebrowsing-term-1 = Trong thanh URL, gõ <code>about:config</code>
+rights-locationawarebrowsing-term-2 = Gõ geo.enabled
+rights-locationawarebrowsing-term-3 = Nhấp đôi vào tùy chỉnh geo.enabled
+rights-locationawarebrowsing-term-4 = Duyệt web Nhận diện Địa điểm bây giờ đã bị vô hiệu hóa
+rights-webservices-unbranded = Tổng quan về các dịch vụ đối với trang web mà sản phẩm này kết hợp, cùng với các chỉ dẫn về cách vô hiệu hóa chúng, nếu thích hợp, sẽ được bao gồm ở đây.
+rights-webservices-term-unbranded = Bất kì điều khoản dịch vụ nào cho sản phẩm này sẽ được liệt kê tại đây.
+rights-webservices-term-1 = { -vendor-short-name } và những bên đóng góp, những bên cấp phép và những đối tác làm việc để cung cấp Dịch Vụ mới và chính xác nhất. Tuy nhiên, chúng tôi không thể đảm bảo rằng thông tin này là toàn diện và không có lỗi. Ví dụ, Dịch vụ Duyệt web An toàn có thể không nhận diện các trang nguy hiểm và có thể nhận diện nhầm các trang an toàn, và trong Dịch vụ Nhận diện Địa điểm, tất cả địa điểm trả lại bởi nhà cung cấp dịch vụ của chúng tôi chỉ là ước tính và chúng tôi lẫn nhà cung cấp dịch vụ không đảm bảo tính chính xác của các địa điểm đó.
+rights-webservices-term-2 = { -vendor-short-name } có thể ngừng hoặc thay đổi Dịch Vụ theo ý mình.
+rights-webservices-term-3 = Bạn được hoan nghênh sử dụng những dịch vụ này trong phiên bản { -brand-short-name } đi kèm, và { -vendor-short-name } trao cho bạn quyền làm vậy. { -vendor-short-name } và những bên cấp phép của nó bảo lưu tất cả quyền khác trong dịch vụ. Những điều khoản này không nhằm giới hạn bất kì quyền nào được trao theo giấy phép mã nguồn mở áp dụng cho { -brand-short-name } và phiên bản mã nguồn tương ứng của { -brand-short-name }.
+rights-webservices-term-4 = <strong>Dịch Vụ được cung cấp theo "nguyên trạng" { -vendor-short-name }, những người đóng góp, các bên cung cấp giấy phép và các bên phân phối không chịu trách nhiệm (trực tiếp hay gián tiếp), bảo đảm bất kỳ điều gì, bao gồm cả việc kinh doanh Dịch Vụ hay đảm bảo Dịch Vụ phục vụ mục đích của bạn. Bạn chịu hoàn toàn rủi ro về chất lượng và hiệu năng của Dịch Vụ khi sử dụng Dịch Vụ cho bất kỳ mục đích nào. Trong một vài phạm vi pháp lý, việc miễn trừ hoặc giới hạn đối với các trách nhiệm gián tiếp là không được phép, vì vậy văn bản từ chối trách nhiệm này có thể không áp dụng đối với bạn.</strong>
+rights-webservices-term-5 = <strong>Trừ khi được yêu cầu bởi luật pháp, { -vendor-short-name }, những người đóng góp, các bên cung cấp giấy phép và phân phối sẽ không có nghĩa vụ đối với bất kì tổn hại gián tiếp, đặc biệt, vô tình, mang tính hậu quả, mang tính trừng phạt hoặc cảnh cáo nào xảy ra bên ngoài hoặc trong bất kì cách thức nào liên quan đến việc sử dụng { -brand-short-name } và Dịch Vụ. Tổng các nghĩa vụ tập hợp trong các điều khoản này không vượt quá $500 (năm trăm đôla). Một số luật xét xử không cho phép sự miễn trừ hoặc giới hạn đối với những tổn hại nào đó, cho nên sự miễn trừ và giới hạn này có thể không áp dụng đối với bạn.</strong>
+rights-webservices-term-6 = { -vendor-short-name } đôi khi có thể cập nhật các điều khoản này khi cần thiết. Các điều khoản này không được sửa đổi hoặc hủy bỏ nếu không có thỏa thuận viết tay của { -vendor-short-name }.
+rights-webservices-term-7 = Những điều khoản này được chi phối theo luật của tiểu bang California, Hoa Kỳ, không bao gồm sự mâu thuẫn của nó với các điều khoản pháp lí. Nếu có bất kì phần nào trong các điều khoản bị xem là bất hợp lệ và không bắt buộc, các phần còn lại sẽ vẫn có đầy đủ tính hiệu lực và bắt buộc. Khi xảy ra mâu thuẫn giữa phiên bản được chuyển ngữ của các điều khoản này và phiên bản tiếng Anh, phiên bản tiếng Anh sẽ là phiên bản chủ đạo.
diff --git a/l10n-vi/toolkit/toolkit/about/aboutServiceWorkers.ftl b/l10n-vi/toolkit/toolkit/about/aboutServiceWorkers.ftl
new file mode 100644
index 0000000000..6f90a1b7d5
--- /dev/null
+++ b/l10n-vi/toolkit/toolkit/about/aboutServiceWorkers.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/.
+
+
+### The term "Service Workers" and "Workers" should not be translated
+
+about-service-workers-title = Về Service Worker
+about-service-workers-main-title = Các Service Worker đã đăng ký
+about-service-workers-warning-not-enabled = Service Worker không được bật.
+about-service-workers-warning-no-service-workers = Không có Service Worker đã đăng ký.
+
+# The original title of service workers' information
+#
+# Variables:
+# $originTitle: original title
+origin-title = Nguồn gốc: { $originTitle }
+
+## These strings are for showing the information of workers.
+##
+## Variables:
+## $name: the name of scope, active cache, waiting cache and the push end point.
+## $url: the url of script specification and current worker.
+
+scope = <strong>Phạm vi:</strong> { $name }
+script-spec = <strong>Tập lệnh Spec:</strong> <a data-l10n-name="link">{ $url }</a>
+current-worker-url = <strong>URL Worker hiện tại:</strong> <a data-l10n-name="link">{ $url }</a>
+active-cache-name = <strong>Tên bộ đệm đang hoạt động:</strong> { $name }
+waiting-cache-name = <strong>Tên bộ đệm đang chờ:</strong> { $name }
+push-end-point-waiting = <strong>Điểm cuối:</strong> { waiting }
+push-end-point-result = <strong>Điểm cuối:</strong> { $name }
+
+# This term is used as a button label (verb, not noun).
+update-button = Cập nhật
+
+unregister-button = Hủy đăng ký
+
+unregister-error = Không thể hủy đăng ký Service Worker này.
+
+waiting = Đang chờ…
diff --git a/l10n-vi/toolkit/toolkit/about/aboutSupport.ftl b/l10n-vi/toolkit/toolkit/about/aboutSupport.ftl
new file mode 100644
index 0000000000..3b36511a9b
--- /dev/null
+++ b/l10n-vi/toolkit/toolkit/about/aboutSupport.ftl
@@ -0,0 +1,385 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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-title = Thông tin xử lý sự cố
+page-subtitle = Trang này chứa thông tin kĩ thuật có thể có ích khi bạn đang cố giải quyết một vấn đề. Nếu bạn đang tìm câu trả lời cho các câu hỏi thông thường về { -brand-short-name }, hãy xem <a data-l10n-name="support-link">trang web hỗ trợ</a> của chúng tôi.
+crashes-title = Trình báo cáo lỗi
+crashes-id = ID báo cáo
+crashes-send-date = Đã gửi
+crashes-all-reports = Tất cả các báo cáo lỗi
+crashes-no-config = Ứng dụng này chưa được thiết lập để hiển thị các báo cáo lỗi.
+extensions-title = Tiện ích mở rộng
+extensions-name = Tên
+extensions-enabled = Đã bật
+extensions-version = Phiên bản
+extensions-id = ID
+support-addons-title = Tiện ích
+support-addons-name = Tên
+support-addons-type = Kiểu
+support-addons-enabled = Đã bật
+support-addons-version = Phiên bản
+support-addons-id = ID
+security-software-title = Phần mềm bảo mật
+security-software-type = Kiểu
+security-software-name = Tên
+security-software-antivirus = Trình chống vi-rút
+security-software-antispyware = Trình chống phần mềm do thám
+security-software-firewall = Tường lửa
+features-title = Tính năng { -brand-short-name }
+features-name = Tên
+features-version = Phiên bản
+features-id = ID
+processes-title = Tiến trình từ xa
+processes-type = Kiểu
+processes-count = Tổng số
+app-basics-title = Cơ bản về ứng dụng
+app-basics-name = Tên
+app-basics-version = Phiên bản
+app-basics-build-id = ID bản dựng
+app-basics-distribution-id = ID phát hành
+app-basics-update-channel = Kênh cập nhật
+# This message refers to the folder used to store updates on the device,
+# as in "Folder for updates". "Update" is a noun, not a verb.
+app-basics-update-dir =
+ { PLATFORM() ->
+ [linux] Cập nhật thư mục
+ *[other] Cập nhật thư mục
+ }
+app-basics-update-history = Lịch sử cập nhật
+app-basics-show-update-history = Hiển thị lịch sử cập nhật
+# Represents the path to the binary used to start the application.
+app-basics-binary = Ứng dụng nhị phân
+app-basics-profile-dir =
+ { PLATFORM() ->
+ [linux] Thư mục hồ sơ
+ *[other] Thư mục hồ sơ
+ }
+app-basics-enabled-plugins = Phần bổ trợ đã bật
+app-basics-build-config = Cấu hình bản dựng
+app-basics-user-agent = Chuỗi đại diện người dùng (User Agent)
+app-basics-os = Hệ điều hành
+# Rosetta is Apple's translation process to run apps containing x86_64
+# instructions on Apple Silicon. This should remain in English.
+app-basics-rosetta = Rosetta Translated
+app-basics-memory-use = Sử dụng bộ nhớ
+app-basics-performance = Hiệu suất
+app-basics-service-workers = Các Service Worker đã đăng ký
+app-basics-profiles = Tiểu sử
+app-basics-launcher-process-status = Quá trình khởi chạy
+app-basics-multi-process-support = Các cửa sổ đa tiến trình
+app-basics-fission-support = Fission Windows
+app-basics-remote-processes-count = Tiến trình từ xa
+app-basics-enterprise-policies = Chính sách doanh nghiệp
+app-basics-location-service-key-google = Khóa dịch vụ định vị Google
+app-basics-safebrowsing-key-google = Khóa Google Safebrowsing
+app-basics-key-mozilla = Khóa dịch vụ định vị Mozilla
+app-basics-safe-mode = Chế độ an toàn
+show-dir-label =
+ { PLATFORM() ->
+ [macos] Hiển thị trong Finder
+ [windows] Mở thư mục
+ *[other] Mở thư mục
+ }
+environment-variables-title = Biến môi trường
+environment-variables-name = Tên
+environment-variables-value = Giá trị
+experimental-features-title = Các tính năng thử nghiệm
+experimental-features-name = Tên
+experimental-features-value = Giá trị
+modified-key-prefs-title = Các tùy chọn quan trọng đã được sửa đổi
+modified-prefs-name = Tên
+modified-prefs-value = Giá trị
+user-js-title = Tinh chỉnh user.js
+user-js-description = Thư mục hồ sơ của bạn chứa một tập tin <a data-l10n-name="user-js-link">user.js</a>, bao gồm các tùy chỉnh không được tạo bởi { -brand-short-name }.
+locked-key-prefs-title = Các tùy chọn quan trọng đã khóa
+locked-prefs-name = Tên
+locked-prefs-value = Giá trị
+graphics-title = Đồ họa
+graphics-features-title = Tính năng
+graphics-diagnostics-title = Chẩn đoán
+graphics-failure-log-title = Nhật ký lỗi
+graphics-gpu1-title = GPU #1
+graphics-gpu2-title = GPU #2
+graphics-decision-log-title = Nhật ký quyết định
+graphics-crash-guards-title = Vô hiệu hóa tính năng bảo vệ sự cố
+graphics-workarounds-title = Cách giải quyết
+# Windowing system in use on Linux (e.g. X11, Wayland).
+graphics-window-protocol = Giao thức cửa sổ
+# Desktop environment in use on Linux (e.g. GNOME, KDE, XFCE, etc).
+graphics-desktop-environment = Môi trường máy tính để bàn
+place-database-title = Cơ sở dữ liệu địa điểm
+place-database-integrity = Tính toàn vẹn
+place-database-verify-integrity = Xác nhận tính toàn vẹn
+a11y-title = Trợ năng
+a11y-activated = Được kích hoạt
+a11y-force-disabled = Ngăn các tùy chọn về trợ năng
+a11y-handler-used = Xử lý truy cập được sử dụng
+a11y-instantiator = Trợ năng truy cập
+library-version-title = Phiên bản thư viện
+copy-text-to-clipboard-label = Sao chép văn bản vào bộ nhớ tạm
+copy-raw-data-to-clipboard-label = Sao chép dữ liệu thô vào bộ nhớ tạm
+sandbox-title = Hộp cát
+sandbox-sys-call-log-title = System Call bị từ chối
+sandbox-sys-call-index = #
+sandbox-sys-call-age = Cách đây vài giây
+sandbox-sys-call-pid = PID
+sandbox-sys-call-tid = TID
+sandbox-sys-call-proc-type = Kiểu quy trình
+sandbox-sys-call-number = Syscall
+sandbox-sys-call-args = Tham số
+safe-mode-title = Thử dùng chế độ an toàn
+restart-in-safe-mode-label = Khởi động lại và vô hiệu hóa các tiện ích…
+clear-startup-cache-title = Hãy thử xóa bộ nhớ đệm khởi động
+clear-startup-cache-label = Xóa bộ nhớ đệm khởi động…
+startup-cache-dialog-title = Xóa bộ nhớ đệm khởi động
+startup-cache-dialog-body = Khởi động lại { -brand-short-name } để xóa bộ nhớ đệm khởi động. Điều này sẽ không thay đổi cài đặt của bạn hoặc xóa các tiện ích mở rộng mà bạn đã thêm vào { -brand-short-name }.
+restart-button-label = Khởi động lại
+
+## Media titles
+
+audio-backend = Âm thanh đầu cuối
+max-audio-channels = Kênh tối đa
+sample-rate = Tỷ lệ mẫu ưu tiên
+roundtrip-latency = Thời gian trễ trọn vòng (độ lệch chuẩn)
+media-title = Đa phương tiện
+media-output-devices-title = Các thiết bị đầu ra
+media-input-devices-title = Thiết bị đầu vào
+media-device-name = Tên
+media-device-group = Nhóm
+media-device-vendor = Nhà cung cấp
+media-device-state = Tình trạng
+media-device-preferred = Ưu tiên
+media-device-format = Định dạng
+media-device-channels = Kênh
+media-device-rate = Tỉ lệ
+media-device-latency = Độ trễ
+media-capabilities-title = Khả năng truyền thông
+# List all the entries of the database.
+media-capabilities-enumerate = Liệt kê cơ sở dữ liệu
+
+##
+
+intl-title = Quốc tế hóa & bản địa hóa
+intl-app-title = Cài đặt ứng dụng
+intl-locales-requested = Yêu cầu ngôn ngữ
+intl-locales-available = Ngôn ngữ có sẵn
+intl-locales-supported = Ngôn ngữ ứng dụng
+intl-locales-default = Ngôn ngữ mặc định
+intl-os-title = Hệ điều hành
+intl-os-prefs-system-locales = Ngôn ngữ hệ thống
+intl-regional-prefs = Cài đặt khu vực
+
+## Remote Debugging
+##
+## The Firefox remote protocol provides low-level debugging interfaces
+## used to inspect state and control execution of documents,
+## browser instrumentation, user interaction simulation,
+## and for subscribing to browser-internal events.
+##
+## See also https://firefox-source-docs.mozilla.org/remote/
+
+remote-debugging-title = Gỡ lỗi từ xa (Giao thức Chromium)
+remote-debugging-accepting-connections = Cho phép kết nối
+remote-debugging-url = URL
+
+##
+
+support-third-party-modules-title = Module của bên thứ ba
+support-third-party-modules-module = Tập tin module
+support-third-party-modules-version = Phiên bản tập tin
+support-third-party-modules-vendor = Thông tin nhà cung cấp
+support-third-party-modules-occurrence = Tần suất xảy ra
+support-third-party-modules-process = Loại tiến trình & ID
+support-third-party-modules-thread = Luồng
+support-third-party-modules-base = Địa chỉ Imagebase
+support-third-party-modules-uptime = Thời gian hoạt động của tiến trình (mili giây)
+support-third-party-modules-duration = Thời lượng tải (mili giây)
+support-third-party-modules-status = Trạng thái
+support-third-party-modules-status-loaded = Đã tải
+support-third-party-modules-status-blocked = Đã chặn
+support-third-party-modules-status-redirected = Đã chuyển hướng
+support-third-party-modules-empty = Không có module của bên thứ ba được tải.
+support-third-party-modules-no-value = (Không có giá trị)
+support-third-party-modules-button-open =
+ .title = Mở vị trí tập tin…
+support-third-party-modules-expand =
+ .title = Hiển thị thông tin chi tiết
+support-third-party-modules-collapse =
+ .title = Thu gọn thông tin chi tiết
+support-third-party-modules-unsigned-icon =
+ .title = Module này chưa được ký
+support-third-party-modules-folder-icon =
+ .title = Mở vị trí tập tin…
+support-third-party-modules-down-icon =
+ .title = Hiển thị thông tin chi tiết
+support-third-party-modules-up-icon =
+ .title = Thu gọn thông tin chi tiết
+# Variables
+# $days (Integer) - Number of days of crashes to log
+report-crash-for-days = Báo cáo lỗi trong { $days } ngày gần đây
+# Variables
+# $minutes (integer) - Number of minutes since crash
+crashes-time-minutes = { $minutes } phút trước
+# Variables
+# $hours (integer) - Number of hours since crash
+crashes-time-hours = { $hours } giờ trước
+# Variables
+# $days (integer) - Number of days since crash
+crashes-time-days = { $days } ngày trước
+# Variables
+# $reports (integer) - Number of pending reports
+pending-reports = Tất cả các báo cáo lỗi (bao gồm cả { $reports } báo cáo chưa gửi trong khoảng thời gian đã cho)
+raw-data-copied = Đã sao chép dữ liệu thô vào bộ nhớ tạm
+text-copied = Đã sao chép văn bản vào bộ nhớ tạm
+
+## The verb "blocked" here refers to a graphics feature such as "Direct2D" or "OpenGL layers".
+
+blocked-driver = Bị chặn đối với phiên bản trình điều khiển đồ họa của bạn.
+blocked-gfx-card = Bị chặn đối với card đồ họa của bạn vì vấn đề trình điều khiển chưa giải quyết được.
+blocked-os-version = Bị chặn đối với phiên bản hệ điều hành của bạn.
+blocked-mismatched-version = Bị chặn đối với phiên bản trình điều khiển đồ họa của bạn không khớp giữa registry và DLL.
+# Variables
+# $driverVersion - The graphics driver version string
+try-newer-driver = Bị chặn đối với phiên bản trình điều khiển đồ họa của bạn. Hãy thử cập nhật trình điều khiển đồ họa lên phiên bản { $driverVersion } hoặc mới hơn.
+# "ClearType" is a proper noun and should not be translated. Feel free to leave English strings if
+# there are no good translations, these are only used in about:support
+clear-type-parameters = Tham số ClearType
+compositing = Cách tổng hợp
+hardware-h264 = Giải mã phần cứng H264
+main-thread-no-omtc = chủ đề chính, không có OMTC
+yes = Có
+no = Không
+unknown = Không rõ
+virtual-monitor-disp = Màn hình ảo
+
+## The following strings indicate if an API key has been found.
+## In some development versions, it's expected for some API keys that they are
+## not found.
+
+found = Đã tìm thấy
+missing = Còn thiếu
+gpu-process-pid = GPUProcessPid
+gpu-process = GPUProcess
+gpu-description = Mô tả
+gpu-vendor-id = ID Nhà cung cấp
+gpu-device-id = ID Thiết bị
+gpu-subsys-id = ID hệ thống con
+gpu-drivers = Trình điều khiển
+gpu-ram = RAM
+gpu-driver-vendor = Nhà cung cấp trình điều khiển
+gpu-driver-version = Phiên bản trình điều khiển
+gpu-driver-date = Ngày ra mắt trình điều khiển
+gpu-active = Hoạt động
+webgl1-wsiinfo = Thông tin WSI Trình điều khiển WebGL 1
+webgl1-renderer = Trình kết xuất trình điều khiển WebGL 1
+webgl1-version = Phiên bản trình điều khiển WebGL 1
+webgl1-driver-extensions = Tiện ích mở rộng trình điều khiển WebGL 1
+webgl1-extensions = Tiện ích mở rộng WebGL 1
+webgl2-wsiinfo = Thông tin WSI Trình điều khiển WebGL 2
+webgl2-renderer = Trình kết xuất trình điều khiển WebGL 2
+webgl2-version = Phiên bản trình điều khiển WebGL 2
+webgl2-driver-extensions = Tiện ích mở rộng trình điều khiển WebGL 2
+webgl2-extensions = Tiện ích mở rộng WebGL 2
+blocklisted-bug = Danh sách chặn do các vấn đề đã biết
+# Variables
+# $bugNumber (string) - String of bug number from Bugzilla
+bug-link = lỗi { $bugNumber }
+# Variables
+# $bugNumber (string) - Bug number on Bugzilla
+support-blocklisted-bug = Bị chặn trong danh sách do các sự cố đã biết: <a data-l10n-name="bug-link">mã lỗi { $bugNumber }</a>
+# Variables
+# $failureCode (string) - String that can be searched in the source tree.
+unknown-failure = Danh sách chặn; mã lỗi { $failureCode }
+d3d11layers-crash-guard = Bộ soạn nhạc D3D11
+d3d11video-crash-guard = Bộ giải mã video D3D11
+d3d9video-crash-guard = Bộ giải mã video D3D9
+glcontext-crash-guard = OpenGL
+wmfvpxvideo-crash-guard = Bộ giải mã video WMF VPX
+reset-on-next-restart = Đặt lại vào lần khởi động lại tiếp theo
+gpu-process-kill-button = Buộc dừng quá trình GPU
+gpu-device-reset = Đặt lại thiết bị
+gpu-device-reset-button = Bắt đầu thiết lập lại phần cứng
+uses-tiling = Sử dụng ốp lát
+content-uses-tiling = Sử dụng ốp lát (Nội dung)
+off-main-thread-paint-enabled = Off Main Thread Painting được kích hoạt
+off-main-thread-paint-worker-count = Bộ đếm Off Main Thread Painting Worker
+target-frame-rate = Tỷ lệ khung mục tiêu
+min-lib-versions = Phiên bản tối thiểu dự kiến
+loaded-lib-versions = Phiên bản đang dùng
+has-seccomp-bpf = Seccomp-BPF (Lọc cuộc gọi hệ thống)
+has-seccomp-tsync = Đồng bộ hóa chủ đề Seccomp
+has-user-namespaces = User Namespaces
+has-privileged-user-namespaces = User Namespaces với các tiến trình ưu tiên
+can-sandbox-content = Nội dung tiến trình Sandboxing
+can-sandbox-media = Media Plugin Sandboxing
+content-sandbox-level = Cấp độ quy trình nội dung hộp cát
+effective-content-sandbox-level = Cấp độ hiệu quả nội dung hộp cát
+sandbox-proc-type-content = nội dung
+sandbox-proc-type-file = nội dung tập tin
+sandbox-proc-type-media-plugin = phần bổ trợ phương tiện
+sandbox-proc-type-data-decoder = bộ giải mã dữ liệu
+startup-cache-title = Bộ nhớ đệm khởi động
+startup-cache-disk-cache-path = Đường dẫn bộ nhớ đệm trên đĩa
+startup-cache-ignore-disk-cache = Bỏ qua bộ nhớ đệm trên đĩa
+startup-cache-found-disk-cache-on-init = Tìm thấy bộ nhớ đệm trên đĩa khi khởi tạo
+startup-cache-wrote-to-disk-cache = Ghi vào bộ nhớ đệm trên đĩa
+launcher-process-status-0 = Đã bật
+launcher-process-status-1 = Vô hiệu hóa do thất bại
+launcher-process-status-2 = Bắt buộc vô hiệu hóa
+launcher-process-status-unknown = Tình trạng không xác định
+# Variables
+# $remoteWindows (integer) - Number of remote windows
+# $totalWindows (integer) - Number of total windows
+multi-process-windows = { $remoteWindows }/{ $totalWindows }
+multi-process-status-0 = Đã bật bởi người dùng
+multi-process-status-1 = Đã bật theo mặc định
+multi-process-status-2 = Đã tắt
+multi-process-status-4 = Vô hiệu hóa bởi các công cụ trợ năng
+multi-process-status-6 = Vô hiệu hóa bởi nhập văn bản không được hỗ trợ
+multi-process-status-7 = Vô hiệu hóa bởi các tiện ích
+multi-process-status-8 = Bắt buộc vô hiệu hóa
+multi-process-status-unknown = Tình trạng không xác định
+# Variables
+# $fissionWindows (integer) - Number of remote windows
+# $totalWindows (integer) - Number of total windows
+fission-windows = { $fissionWindows }/{ $totalWindows }
+fission-status-experiment-control = Đã tắt bởi thử nghiệm
+fission-status-experiment-treatment = Đã bật bởi thử nghiệm
+fission-status-disabled-by-e10s-env = Đã tắt bởi môi trường
+fission-status-enabled-by-env = Đã bật bởi môi trường
+fission-status-disabled-by-safe-mode = Đã tắt bởi chế độ an toàn
+fission-status-enabled-by-default = Đã bật theo mặc định
+fission-status-disabled-by-default = Đã tắt theo mặc định
+fission-status-enabled-by-user-pref = Đã bật bởi người dùng
+fission-status-disabled-by-user-pref = Đã tắt bởi người dùng
+fission-status-disabled-by-e10s-other = E10s bị vô hiệu hóa
+async-pan-zoom = Pan/Zoom không đồng bộ
+apz-none = không có
+wheel-enabled = con lăn đã bật
+touch-enabled = cảm ứng đã bật
+drag-enabled = thanh cuộn kéo đã bật
+keyboard-enabled = bàn phím đã bật
+autoscroll-enabled = tự động cuộn đã bật
+zooming-enabled = pinch-zoom mượt được kích hoạt
+
+## Variables
+## $preferenceKey (string) - String ID of preference
+
+wheel-warning = đầu vào con lăn bất đối xứng đã tắt vì có thiết lập không được hỗ trợ: { $preferenceKey }
+touch-warning = đầu vào cảm ứng không đồng bộ đã tắt vì có thiết lập không được hỗ trợ: { $preferenceKey }
+
+## Strings representing the status of the Enterprise Policies engine.
+
+policies-inactive = Không hoạt động
+policies-active = Hoạt động
+policies-error = Lỗi
+
+## Printing section
+
+support-printing-title = Đang In
+support-printing-troubleshoot = Khắc phục sự cố
+support-printing-clear-settings-button = Xóa cài đặt in đã lưu
+support-printing-modified-settings = Đã sửa đổi cài đặt in
+support-printing-prefs-name = Tên
+support-printing-prefs-value = Giá trị
diff --git a/l10n-vi/toolkit/toolkit/about/aboutTelemetry.ftl b/l10n-vi/toolkit/toolkit/about/aboutTelemetry.ftl
new file mode 100644
index 0000000000..91644c10d2
--- /dev/null
+++ b/l10n-vi/toolkit/toolkit/about/aboutTelemetry.ftl
@@ -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/.
+
+about-telemetry-ping-data-source = Nguồn dữ liệu ping:
+about-telemetry-show-current-data = Dữ liệu hiện tại
+about-telemetry-show-archived-ping-data = Dữ liệu ping đă lưu trữ
+about-telemetry-show-subsession-data = Hiển thị dữ liệu phụ
+about-telemetry-choose-ping = Chọn ping:
+about-telemetry-archive-ping-type = Kiểu ping
+about-telemetry-archive-ping-header = Ping
+about-telemetry-option-group-today = Hôm nay
+about-telemetry-option-group-yesterday = Hôm qua
+about-telemetry-option-group-older = Cũ hơn
+about-telemetry-previous-ping = <<
+about-telemetry-next-ping = >>
+about-telemetry-page-title = Dữ liệu từ xa
+about-telemetry-current-store = Cửa hàng hiện tại:
+about-telemetry-more-information = Tìm kiếm thêm thông tin?
+about-telemetry-firefox-data-doc = <a data-l10n-name="data-doc-link">Tài liệu dữ liệu Firefox</a> chứa các hướng dẫn về cách làm việc với các công cụ dữ liệu của chúng tôi.
+about-telemetry-telemetry-client-doc = <a data-l10n-name="client-doc-link">Tài liệu ứng dụng khách từ xa của Firefox</a> bao gồm các định nghĩa cho các khái niệm, tài liệu API và tham chiếu dữ liệu.
+about-telemetry-telemetry-dashboard = <a data-l10n-name="dashboard-link">Bảng điều khiển từ xa</a> cho phép bạn trực quan hóa dữ liệu Mozilla nhận được thông qua từ xa.
+about-telemetry-telemetry-probe-dictionary = <a data-l10n-name="probe-dictionary-link">Từ điển thăm dò</a> cung cấp chi tiết và mô tả cho các thăm dò được thu thập bởi Telemetry.
+about-telemetry-show-in-Firefox-json-viewer = Mở trong trình xem JSON
+about-telemetry-home-section = Trang chủ
+about-telemetry-general-data-section = Dữ liệu chung
+about-telemetry-environment-data-section = Dữ liệu môi trường
+about-telemetry-session-info-section = Thông tin phiên
+about-telemetry-scalar-section = Scalars
+about-telemetry-keyed-scalar-section = Keyed Scalars
+about-telemetry-histograms-section = Biểu đồ
+about-telemetry-keyed-histogram-section = Keyed Histograms
+about-telemetry-events-section = Sự kiện
+about-telemetry-simple-measurements-section = Các phép đo đơn giản
+about-telemetry-slow-sql-section = Lệnh SQL Chậm
+about-telemetry-addon-details-section = Chi tiết về các tiện ích
+about-telemetry-captured-stacks-section = Captured Stacks
+about-telemetry-late-writes-section = Ghi trễ
+about-telemetry-raw-payload-section = Raw Payload
+about-telemetry-raw = JSON thô
+about-telemetry-full-sql-warning =    GHI CHÚ: Trình gỡ rối SQL chậm đã bật. Chuỗi SQL Đầy đủ có thể hiện ở dưới nhưng chúng không được gửi cho Telemetry. 
+about-telemetry-fetch-stack-symbols = Lấy tên hàm cho ngăn xếp
+about-telemetry-hide-stack-symbols = Hiển thị dữ liệu ngăn xếp thô
+# Selects the correct release version
+# Variables:
+# $channel (String): represents the corresponding release data string
+about-telemetry-data-type =
+ { $channel ->
+ [release] dữ liệu phát hành
+ *[prerelease] dữ liệu tiền phát hành
+ }
+# Selects the correct upload string
+# Variables:
+# $uploadcase (String): represents a corresponding upload string
+about-telemetry-upload-type =
+ { $uploadcase ->
+ [enabled] đã bật
+ *[disabled] đã tắt
+ }
+# Example Output: 1 sample, average = 0, sum = 0
+# Variables:
+# $sampleCount (Integer): amount of histogram samples
+# $prettyAverage (Integer): average of histogram samples
+# $sum (Integer): sum of histogram samples
+about-telemetry-histogram-stats =
+ { $sampleCount ->
+ *[other] { $sampleCount } mẫu, trung bình = { $prettyAverage }, tổng = { $sum }
+ }
+# Variables:
+# $telemetryServerOwner (String): the value of the toolkit.telemetry.server_owner preference. Typically "Mozilla"
+about-telemetry-page-subtitle = Trang này hiển thị thông tin về hiệu năng, phần cứng, việc sử dụng và các tùy chỉnh, được thu thập bởi Telemetry. Các thông tin này được gửi tới { $telemetryServerOwner } để giúp hoàn thiện { -brand-full-name }.
+about-telemetry-settings-explanation = Telemetry đang thu thập { about-telemetry-data-type } và tải lên là <a data-l10n-name="upload-link">{ about-telemetry-upload-type }</a>.
+# Variables:
+# $name (String): ping name, e.g. “saved-session”
+# $timeStamp (String): ping localized timestamp, e.g. “2017/07/08 10:40:46”
+about-telemetry-ping-details = Mỗi thông tin được gửi kèm theo vào “<a data-l10n-name="ping-link">ping</a>”. Bạn đang xem ping { $name }, { $timestamp }.
+about-telemetry-data-details-current = Mỗi thông tin được gửi kèm theo vào “<a data-l10n-name="ping-link">ping</a>”. Bạn đang xem dữ liệu hiện tại.
+# string used as a placeholder for the search field
+# More info about it can be found here:
+# https://firefox-source-docs.mozilla.org/toolkit/components/telemetry/telemetry/data/main-ping.html
+# Variables:
+# $selectedTitle (String): the section name from the structure of the ping.
+about-telemetry-filter-placeholder =
+ .placeholder = Tìm trong { $selectedTitle }
+about-telemetry-filter-all-placeholder =
+ .placeholder = Tìm trong tất cả các phần
+# Variables:
+# $searchTerms (String): the searched terms
+about-telemetry-results-for-search = Kết quả cho “{ $searchTerms }”
+# More info about it can be found here: https://firefox-source-docs.mozilla.org/toolkit/components/telemetry/telemetry/data/main-ping.html
+# Variables:
+# $sectionName (String): the section name from the structure of the ping.
+# $currentSearchText (String): the current text in the search input
+about-telemetry-no-search-results = Xin lỗi! Không có kết quả trong phần { $sectionName } cho “{ $currentSearchText }”
+# Variables:
+# $searchTerms (String): the searched terms
+about-telemetry-no-search-results-all = Xin lỗi! Không có kết quả trong bất kì phần nào cho “{ $searchTerms }”
+# This message is displayed when a section is empty.
+# Variables:
+# $sectionName (String): is replaced by the section name.
+about-telemetry-no-data-to-display = Xin lỗi! Hiện tại không có dữ liệu có sẵn trong “{ $sectionName }”
+# used as a tooltip for the “current” ping title in the sidebar
+about-telemetry-current-data-sidebar = dữ liệu hiện tại
+# used in the “Ping Type” select
+about-telemetry-telemetry-ping-type-all = tất cả
+# button label to copy the histogram
+about-telemetry-histogram-copy = Sao chép
+# these strings are used in the “Slow SQL Statements” section
+about-telemetry-slow-sql-main = Lệnh SQL chậm trên luồng chính
+about-telemetry-slow-sql-other = Lệnh SQL chậm trên luồng bổ trợ
+about-telemetry-slow-sql-hits = Lượt truy cập
+about-telemetry-slow-sql-average = Thời gian trung bình (ms)
+about-telemetry-slow-sql-statement = Câu lệnh
+# these strings are used in the “Add-on Details” section
+about-telemetry-addon-table-id = ID tiện ích
+about-telemetry-addon-table-details = Chi tiết
+# Variables:
+# $addonProvider (String): the name of an Add-on Provider (e.g. “XPI”, “Plugin”)
+about-telemetry-addon-provider = Nhà cung cấp { $addonProvider }
+about-telemetry-keys-header = Thuộc tính
+about-telemetry-names-header = Tên
+about-telemetry-values-header = Giá trị
+# Variables:
+# $stackKey (String): the string key for this stack
+# $capturedStacksCount (Integer): the number of times this stack was captured
+about-telemetry-captured-stacks-title = { $stackKey } (số lần chụp: { $capturedStacksCount })
+# Variables:
+# $lateWriteCount (Integer): the number of the late writes
+about-telemetry-late-writes-title = Ghi trễ #{ $lateWriteCount } lần
+about-telemetry-stack-title = Ngăn xếp:
+about-telemetry-memory-map-title = Bản đồ bộ nhớ:
+about-telemetry-error-fetching-symbols = Xuất hiện một lỗi khi nạp các ký hiệu. Kiểm tra lại kết nối Internet và thử lại.
+about-telemetry-time-stamp-header = dấu thời gian
+about-telemetry-category-header = thể loại
+about-telemetry-method-header = phương thức
+about-telemetry-object-header = đối tượng
+about-telemetry-extra-header = thêm
+about-telemetry-origin-section = Origin Telemetry
+about-telemetry-origin-origin = gốc
+about-telemetry-origin-count = đếm
+# Variables:
+# $telemetryServerOwner (String): the value of the toolkit.telemetry.server_owner preference. Typically "Mozilla"
+about-telemetry-origins-explanation = <a data-l10n-name="origin-doc-link">Firefox Origin Telemetry</a> mã hóa dữ liệu trước khi nó được gửi để { $telemetryServerOwner } có thể đếm tất cả mọi thứ, nhưng không rõ nó có đếm cả { -brand-product-name } hay không. (<a data-l10n-name="prio-blog-link">tìm hiểu thêm</a>)
+# Variables:
+# $process (String): type of process in subsection headers ( e.g. "content", "parent" )
+about-telemetry-process = { $process } tiến trình
diff --git a/l10n-vi/toolkit/toolkit/about/aboutWebrtc.ftl b/l10n-vi/toolkit/toolkit/about/aboutWebrtc.ftl
new file mode 100644
index 0000000000..4db2976016
--- /dev/null
+++ b/l10n-vi/toolkit/toolkit/about/aboutWebrtc.ftl
@@ -0,0 +1,185 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 for about:webrtc, a troubleshooting and diagnostic page
+### for WebRTC calls. See https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API.
+
+# The text "WebRTC" is a proper noun and should not be translated.
+about-webrtc-document-title = WebRTC nội bộ
+# "about:webrtc" is a internal browser URL and should not be
+# translated. This string is used as a title for a file save dialog box.
+about-webrtc-save-page-dialog-title = lưu about:webrtc thành
+
+## AEC is an abbreviation for Acoustic Echo Cancellation.
+
+about-webrtc-aec-logging-msg-label = Ghi nhật ký AEC
+about-webrtc-aec-logging-off-state-label = Bắt đầu ghi nhật ký AEC
+about-webrtc-aec-logging-on-state-label = Dừng ghi nhật ký AEC
+about-webrtc-aec-logging-on-state-msg = Bản ghi AEC đang hoạt động (nói chuyện với người gọi trong vài phút và sau đó dừng chụp)
+
+##
+
+# "PeerConnection" is a proper noun associated with the WebRTC module. "ID" is
+# an abbreviation for Identifier. This string should not normally be translated
+# and is used as a data label.
+about-webrtc-peerconnection-id-label = PeerConnection ID:
+
+## "SDP" is an abbreviation for Session Description Protocol, an IETF standard.
+## See http://wikipedia.org/wiki/Session_Description_Protocol
+
+about-webrtc-sdp-heading = SDP
+about-webrtc-local-sdp-heading = SDP nội bộ
+about-webrtc-local-sdp-heading-offer = SDP nội bộ (Cung cấp)
+about-webrtc-local-sdp-heading-answer = SDP nội bộ (Trả lời)
+about-webrtc-remote-sdp-heading = SDP từ xa
+about-webrtc-remote-sdp-heading-offer = SDP từ xa (Cung cấp)
+about-webrtc-remote-sdp-heading-answer = SDP từ xa (Trả lời)
+about-webrtc-sdp-history-heading = Lịch sử SDP
+about-webrtc-sdp-parsing-errors-heading = Lỗi phân tích SDP
+
+##
+
+# "RTP" is an abbreviation for the Real-time Transport Protocol, an IETF
+# specification, and should not normally be translated. "Stats" is an
+# abbreviation for Statistics.
+about-webrtc-rtp-stats-heading = Thống kê RTP
+
+## "ICE" is an abbreviation for Interactive Connectivity Establishment, which
+## is an IETF protocol, and should not normally be translated.
+
+about-webrtc-ice-state = Trạng thái ICE
+# "Stats" is an abbreviation for Statistics.
+about-webrtc-ice-stats-heading = Thống kê ICE
+about-webrtc-ice-pair-bytes-sent = Byte đã gửi:
+about-webrtc-ice-pair-bytes-received = Byte đã nhận:
+about-webrtc-ice-component-id = ID thành phần
+
+##
+
+
+## "Avg." is an abbreviation for Average. These are used as data labels.
+
+
+##
+
+
+## These adjectives are used to label a line of statistics collected for a peer
+## connection. The data represents either the local or remote end of the
+## connection.
+
+about-webrtc-type-local = Cục bộ
+about-webrtc-type-remote = Từ xa
+
+##
+
+# This adjective is used to label a table column. Cells in this column contain
+# the localized javascript string representation of "true" or are left blank.
+about-webrtc-nominated = Đề cử
+# This adjective is used to label a table column. Cells in this column contain
+# the localized javascript string representation of "true" or are left blank.
+# This represents an attribute of an ICE candidate.
+about-webrtc-selected = Chọn
+about-webrtc-save-page-label = Lưu trang
+about-webrtc-debug-mode-msg-label = Chế độ gỡ lỗi
+about-webrtc-debug-mode-off-state-label = Bắt đầu chế độ gỡ lỗi
+about-webrtc-debug-mode-on-state-label = Dừng chế độ gỡ lỗi
+about-webrtc-stats-heading = Thống kê phiên
+about-webrtc-stats-clear = Xóa lịch sử
+about-webrtc-log-heading = Nhật ký kết nối
+about-webrtc-log-clear = Xóa nhật ký
+about-webrtc-log-show-msg = hiển thị nhật ký
+ .title = nhấn chuột để mở rộng mục này
+about-webrtc-log-hide-msg = ẩn nhật ký
+ .title = nhấn chuột để thu gọn mục này
+
+## These are used to display a header for a PeerConnection.
+## Variables:
+## $browser-id (Number) - A numeric id identifying the browser tab for the PeerConnection.
+## $id (String) - A globally unique identifier for the PeerConnection.
+## $url (String) - The url of the site which opened the PeerConnection.
+## $now (Date) - The JavaScript timestamp at the time the report was generated.
+
+about-webrtc-connection-open = [ { $browser-id } | { $id } ] { $url } { $now }
+about-webrtc-connection-closed = [ { $browser-id } | { $id } ] { $url } (đã đóng) { $now }
+
+##
+
+about-webrtc-priority = Ưu tiên
+about-webrtc-fold-show-msg = hiện chi tiết
+ .title = nhấn chuột để mở rộng mục này
+about-webrtc-fold-hide-msg = ẩn chi tiết
+ .title = nhấn chuột để thu gọn mục này
+about-webrtc-decoder-label = Bộ giải mã
+about-webrtc-encoder-label = Bộ mã hóa
+about-webrtc-show-tab-label = Hiển thị thẻ
+about-webrtc-width-px = Chiều rộng (px)
+about-webrtc-height-px = Chiều cao (px)
+about-webrtc-time-elapsed = Thời gian đã trôi qua (giây)
+about-webrtc-rotation-degrees = Xoay (độ)
+
+## SSRCs are identifiers that represent endpoints in an RTP stream
+
+
+##
+
+# An option whose value will not be displayed but instead noted as having been
+# provided
+about-webrtc-configuration-element-provided = Cung cấp
+# An option whose value will not be displayed but instead noted as having not
+# been provided
+about-webrtc-configuration-element-not-provided = Không cung cấp
+# The options set by the user in about:config that could impact a WebRTC call
+about-webrtc-custom-webrtc-configuration-heading = Người dùng thiết lập tùy chọn WebRTC
+# Section header for estimated bandwidths of WebRTC media flows
+about-webrtc-bandwidth-stats-heading = Băng thông ước tính
+# The estimated bandwidth available for sending WebRTC media in bytes per second
+about-webrtc-send-bandwidth-bytes-sec = Băng thông gửi (byte/giây)
+# The estimated bandwidth available for receiving WebRTC media in bytes per second
+about-webrtc-receive-bandwidth-bytes-sec = Băng thông nhận (byte/giây)
+# The amount of time it takes for a packet to travel from the local machine to the remote machine,
+# and then have a packet return
+about-webrtc-round-trip-time-ms = RTT ms
+
+## These are paths used for saving the about:webrtc page or log files so
+## they can be attached to bug reports.
+## Variables:
+## $path (String) - The path to which the file is saved.
+
+about-webrtc-save-page-msg = đã lưu trang vào: { $path }
+about-webrtc-debug-mode-off-state-msg = nhật ký theo dõi có thể được tìm thấy tại: { $path }
+about-webrtc-debug-mode-on-state-msg = chế độ gỡ lỗi hoạt động, theo dõi nhật ký tại: { $path }
+about-webrtc-aec-logging-off-state-msg = các tập tin nhật ký đã chụp có thể được tìm thấy trong: { $path }
+
+##
+
+# Jitter is the variance in the arrival time of packets.
+# See: https://w3c.github.io/webrtc-stats/#dom-rtcreceivedrtpstreamstats-jitter
+# Variables:
+# $jitter (Number) - The jitter.
+about-webrtc-jitter-label = Độ rung { $jitter }
+# ICE candidates arriving after the remote answer arrives are considered trickled
+# (an attribute of an ICE candidate). These are highlighted in the ICE stats
+# table with light blue background.
+about-webrtc-trickle-caption-msg = Các ứng cử viên bị mắc kẹt (đến sau khi trả lời) được tô sáng bằng màu xanh lam
+
+## "SDP" is an abbreviation for Session Description Protocol, an IETF standard.
+## See http://wikipedia.org/wiki/Session_Description_Protocol
+
+# This is used as a header for local SDP.
+# Variables:
+# $timestamp (Number) - The Unix Epoch time at which the SDP was set.
+about-webrtc-sdp-set-at-timestamp-local = Đặt SDP nội bộ tại timestamp { NUMBER($timestamp, useGrouping: "false") }
+# This is used as a header for remote SDP.
+# Variables:
+# $timestamp (Number) - The Unix Epoch time at which the SDP was set.
+about-webrtc-sdp-set-at-timestamp-remote = Đặt SDP từ xa tại timestamp { NUMBER($timestamp, useGrouping: "false") }
+# This is used as a header for an SDP section contained in two columns allowing for side-by-side comparisons.
+# Variables:
+# $timestamp (Number) - The Unix Epoch time at which the SDP was set.
+# $relative-timestamp (Number) - The timestamp relative to the timestamp of the earliest received SDP.
+about-webrtc-sdp-set-timestamp = Timestamp { NUMBER($timestamp, useGrouping: "false") } (+ { $relative-timestamp } ms)
+
+##
+
diff --git a/l10n-vi/toolkit/toolkit/about/abuseReports.ftl b/l10n-vi/toolkit/toolkit/about/abuseReports.ftl
new file mode 100644
index 0000000000..85b5a72c2b
--- /dev/null
+++ b/l10n-vi/toolkit/toolkit/about/abuseReports.ftl
@@ -0,0 +1,101 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Localized string used as the dialog window title (a new behavior locked
+# behind the "extensions.abuseReport.openDialog" preference).
+# "Report" is a noun in this case, "Report for AddonName".
+#
+# Variables:
+# $addon-name (string) - Name of the add-on being reported
+abuse-report-dialog-title = Báo cáo về { $addon-name }
+
+abuse-report-title-extension = Báo cáo tiện ích mở rộng này cho { -vendor-short-name }
+abuse-report-title-theme = Báo cáo chủ đề này cho { -vendor-short-name }
+abuse-report-subtitle = Vấn đề là gì?
+
+# Variables:
+# $author-name (string) - Name of the add-on author
+abuse-report-addon-authored-by = bởi <a data-l10n-name="author-name">{ $author-name }</a>
+
+abuse-report-learnmore =
+ Không chắc chắn vấn đề cần chọn?
+ <a data-l10n-name="learnmore-link">Tìm hiểu thêm về việc báo cáo tiện ích mở rộng và chủ đề</a>
+
+abuse-report-submit-description = Mô tả vấn đề (tùy chọn)
+abuse-report-textarea =
+ .placeholder = Chúng tôi dễ dàng giải quyết vấn đề hơn nếu chúng tôi có thông tin cụ thể. Hãy mô tả những gì bạn đã trải qua. Cảm ơn bạn đã giúp chúng tôi giữ cho web lành mạnh.
+abuse-report-submit-note =
+ Lưu ý: Không bao gồm thông tin cá nhân (như tên, địa chỉ thư điện tử, số điện thoại, địa chỉ nhà).
+ { -vendor-short-name } giữ một bản ghi vĩnh viễn của các báo cáo này.
+
+## Panel buttons.
+
+abuse-report-cancel-button = Hủy
+abuse-report-next-button = Tiếp
+abuse-report-goback-button = Quay lại
+abuse-report-submit-button = Gửi
+
+## Message bars descriptions.
+
+
+## Variables:
+## $addon-name (string) - Name of the add-on
+
+abuse-report-messagebar-aborted = Báo cáo về <span data-l10n-name="addon-name">{ $addon-name }</span> đã bị hủy.
+abuse-report-messagebar-submitting = Đang gửi báo cáo về <span data-l10n-name="addon-name">{ $addon-name }</span>.
+abuse-report-messagebar-submitted = Cám ơn bạn đã gửi báo cáo. Bạn có muốn xóa <span data-l10n-name="addon-name">{ $addon-name }</span> không?
+abuse-report-messagebar-submitted-noremove = Cảm ơn bạn đã gửi báo cáo.
+abuse-report-messagebar-removed-extension = Cảm ơn bạn đã gửi báo cáo. Bạn đã xóa tiện ích mở rộng <span data-l10n-name="addon-name">{ $addon-name }</span>.
+abuse-report-messagebar-removed-theme = Cảm ơn bạn đã gửi báo cáo. Bạn đã xóa chủ đề <span data-l10n-name="addon-name">{ $addon-name }</span>.
+abuse-report-messagebar-error = Đã xảy ra lỗi khi gửi báo cáo về <span data-l10n-name="addon-name">{ $addon-name }</span>.
+abuse-report-messagebar-error-recent-submit = Báo cáo về <span data-l10n-name="addon-name">{ $addon-name }</span> không thể gửi do đã có một báo cáo khác đã được gửi gần đây.
+
+## Message bars actions.
+
+abuse-report-messagebar-action-remove-extension = Vâng, loại bỏ nó
+abuse-report-messagebar-action-keep-extension = Không, tôi sẽ giữ nó
+abuse-report-messagebar-action-remove-theme = Vâng, loại bỏ nó
+abuse-report-messagebar-action-keep-theme = Không, tôi sẽ giữ nó
+abuse-report-messagebar-action-retry = Thử lại
+abuse-report-messagebar-action-cancel = Hủy
+
+## Abuse report reasons (optionally paired with related examples and/or suggestions)
+
+abuse-report-damage-reason-v2 = Nó làm hỏng máy tính của tôi hoặc làm hỏng dữ liệu của tôi
+abuse-report-damage-example = Ví dụ: bị nhiễm phần mềm độc hại hay đánh cắp dữ liệu
+
+abuse-report-spam-reason-v2 = Nó chứa thư rác hoặc chèn quảng cáo không mong muốn
+abuse-report-spam-example = Ví dụ: chèn quảng cáo trên các trang web
+
+abuse-report-settings-reason-v2 = Nó đã thay đổi công cụ tìm kiếm, trang chủ hoặc thẻ mới của tôi mà không thông báo hoặc hỏi tôi
+abuse-report-settings-suggestions = Trước khi báo cáo tiện ích mở rộng, bạn có thể thử thay đổi cài đặt của mình:
+abuse-report-settings-suggestions-search = Thay đổi cài đặt tìm kiếm mặc định của bạn
+abuse-report-settings-suggestions-homepage = Thay đổi trang chủ và thẻ mới của bạn
+
+abuse-report-deceptive-reason-v2 = Nó tuyên bố là một cái gì đó mà nó không làm
+abuse-report-deceptive-example = Ví dụ: phần mô tả hoặc hình ảnh gây hiểu lầm
+
+abuse-report-broken-reason-extension-v2 = Nó không hoạt động, phá vỡ các trang web hoặc làm chậm { -brand-product-name }
+abuse-report-broken-reason-theme-v2 = Nó không hoạt động hoặc phá vỡ cách trình duyệt hiển thị
+abuse-report-broken-example = Ví dụ: tính năng chậm, khó sử dụng hoặc không hoạt động; các phần của trang web không tải được hoặc trông khác thường
+abuse-report-broken-suggestions-extension =
+ Có vẻ như bạn đã xác định được một lỗi. Ngoài việc gửi báo cáo ở đây, cách tốt nhất
+ để giải quyết vấn đề là liên hệ với nhà phát triển tiện ích mở rộng.
+ <a data-l10n-name="support-link">Truy cập trang web tiện ích mở rộng</a> để nhận thông tin về nhà phát triển.
+abuse-report-broken-suggestions-theme =
+ Có vẻ như bạn đã xác định được một lỗi. Ngoài việc gửi báo cáo ở đây, cách tốt nhất
+ để giải quyết vấn đề là liên hệ với nhà phát triển chủ đề.
+ <a data-l10n-name="support-link">Truy cập trang web chủ đề của</a> để lấy thông tin nhà phát triển.
+
+abuse-report-policy-reason-v2 = Nó chứa nội dung thù địch, bạo lực hoặc bất hợp pháp
+abuse-report-policy-suggestions =
+ Lưu ý: Các vấn đề về bản quyền và nhãn hiệu phải được báo cáo trong một quy trình riêng.
+ <a data-l10n-name="report-infringement-link">Sử dụng các hướng dẫn này</a> để
+ báo cáo vấn đề.
+
+abuse-report-unwanted-reason-v2 = Tôi không bao giờ muốn nó và không biết làm thế nào để thoát khỏi nó
+abuse-report-unwanted-example = Ví dụ: Một ứng dụng đã cài đặt nó mà không có sự cho phép của tôi
+
+abuse-report-other-reason = Điều gì đó khác
+
diff --git a/l10n-vi/toolkit/toolkit/about/certviewer.ftl b/l10n-vi/toolkit/toolkit/about/certviewer.ftl
new file mode 100644
index 0000000000..3e60503689
--- /dev/null
+++ b/l10n-vi/toolkit/toolkit/about/certviewer.ftl
@@ -0,0 +1,120 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+certificate-viewer-certificate-section-title = Chứng chỉ
+
+## Error messages
+
+certificate-viewer-error-message = Chúng tôi không thể tìm thấy thông tin chứng chỉ, hoặc chứng chỉ bị hỏng. Vui lòng thử lại.
+certificate-viewer-error-title = Có gì đó không ổn.
+
+## Certificate information labels
+
+certificate-viewer-algorithm = Thuật toán
+certificate-viewer-certificate-authority = Cơ quan cấp chứng chỉ
+certificate-viewer-cipher-suite = Bộ mật mã
+certificate-viewer-common-name = Tên gọi chung
+certificate-viewer-email-address = Địa chỉ email
+# Variables:
+# $firstCertName (String) - Common Name for the displayed certificate
+certificate-viewer-tab-title = Chứng nhận cho { $firstCertName }
+# Inc. means Incorporated, e.g GitHub is incorporated in Delaware
+certificate-viewer-inc-country = Quốc gia hợp nhất
+certificate-viewer-country = Quốc gia
+certificate-viewer-curve = Đường cong
+certificate-viewer-distribution-point = Điểm phát hành
+certificate-viewer-dns-name = Tên DNS
+certificate-viewer-ip-address = Địa chỉ IP
+certificate-viewer-other-name = Tên khác
+certificate-viewer-exponent = Chỉ số
+certificate-viewer-id = ID
+certificate-viewer-key-exchange-group = Nhóm trao đổi khóa
+certificate-viewer-key-id = ID khóa
+certificate-viewer-key-size = Kích thước khóa
+# Inc. means Incorporated, e.g GitHub is incorporated in Delaware
+certificate-viewer-inc-locality = Địa phương hợp nhất
+certificate-viewer-locality = Thành phố
+certificate-viewer-location = Địa chỉ
+certificate-viewer-logid = ID bản ghi
+certificate-viewer-method = Phương thức
+certificate-viewer-modulus = Mô-đun
+certificate-viewer-name = Tên
+certificate-viewer-not-after = Hiệu lực đến
+certificate-viewer-not-before = Hiệu lực từ
+certificate-viewer-organization = Tổ chức
+certificate-viewer-organizational-unit = Đơn vị tổ chức
+certificate-viewer-policy = Chính sách
+certificate-viewer-protocol = Giao thức
+certificate-viewer-public-value = Giá trị công khai
+certificate-viewer-purposes = Mục đích
+certificate-viewer-qualifier = Hạn định
+certificate-viewer-qualifiers = Hạn định
+certificate-viewer-required = Bắt buộc
+certificate-viewer-unsupported = &lt;không được hỗ trợ&gt;
+# Inc. means Incorporated, e.g GitHub is incorporated in Delaware
+certificate-viewer-inc-state-province = Nhà nước/tỉnh hợp nhất
+certificate-viewer-state-province = Tỉnh
+certificate-viewer-sha-1 = SHA-1
+certificate-viewer-sha-256 = SHA-256
+certificate-viewer-serial-number = Số sê-ri
+certificate-viewer-signature-algorithm = Thuật toán chữ ký
+certificate-viewer-signature-scheme = Sơ đồ chữ ký
+certificate-viewer-timestamp = Dấu thời gian
+certificate-viewer-value = Giá trị
+certificate-viewer-version = Phiên bản
+certificate-viewer-business-category = Hạng mục kinh doanh
+certificate-viewer-subject-name = Tên chủ đề
+certificate-viewer-issuer-name = Tên nhà cung cấp
+certificate-viewer-validity = Tính hiệu lực
+certificate-viewer-subject-alt-names = Tên chủ đề thay thế
+certificate-viewer-public-key-info = Thông tin khóa công khai
+certificate-viewer-miscellaneous = Thông tin khác
+certificate-viewer-fingerprints = Dấu vân tay
+certificate-viewer-basic-constraints = Những ràng buộc cơ bản
+certificate-viewer-key-usages = Công dụng chính
+certificate-viewer-extended-key-usages = Công dụng mở rộng
+certificate-viewer-ocsp-stapling = OCSP Stapling
+certificate-viewer-subject-key-id = ID khóa chủ đề
+certificate-viewer-authority-key-id = ID khóa thẩm quyền
+certificate-viewer-authority-info-aia = Thông tin thẩm quyền (AIA)
+certificate-viewer-certificate-policies = Chính sách chứng chỉ
+certificate-viewer-embedded-scts = SCT tích hợp
+certificate-viewer-crl-endpoints = Điểm cuối CRL
+# This message is used as a row header in the Miscellaneous section.
+# The associated data cell contains links to download the certificate.
+certificate-viewer-download = Nội dung
+# This message is used to replace boolean values (true/false) in several certificate fields, e.g. Certificate Authority
+# Variables:
+# $boolean (String) - true/false value for the specific field
+certificate-viewer-boolean =
+ { $boolean ->
+ [true] Có
+ *[false] Không
+ }
+
+## Variables:
+## $fileName (String) - The file name to save the PEM data in, derived from the common name from the certificate being displayed.
+
+certificate-viewer-download-pem = PEM (chứng chỉ)
+ .download = { $fileName }.pem
+certificate-viewer-download-pem-chain = PEM (chain)
+ .download = { $fileName }-chain.pem
+# The title attribute for Critical Extension icon
+certificate-viewer-critical-extension =
+ .title = Tiện ích mở rộng này đã được đánh dấu là nghiêm trọng, có nghĩa là khách hàng phải từ chối chứng chỉ nếu họ không hiểu nó.
+certificate-viewer-export = Xuất
+ .download = { $fileName }.pem
+
+##
+
+# Label for a tab where we haven't found a better label:
+certificate-viewer-unknown-group-label = (không xác định)
+
+## Labels for tabs displayed in stand-alone about:certificate page
+
+certificate-viewer-tab-mine = Chứng nhận của bạn
+certificate-viewer-tab-people = Mọi người
+certificate-viewer-tab-servers = Máy chủ
+certificate-viewer-tab-ca = Nhà thẩm định
+certificate-viewer-tab-unkonwn = Không rõ
diff --git a/l10n-vi/toolkit/toolkit/about/config.ftl b/l10n-vi/toolkit/toolkit/about/config.ftl
new file mode 100644
index 0000000000..03fcdbf05a
--- /dev/null
+++ b/l10n-vi/toolkit/toolkit/about/config.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 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-show-only-modified = Chỉ hiển thị các tùy chọn đã sửa đổi
+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/toolkit/toolkit/about/url-classifier.ftl b/l10n-vi/toolkit/toolkit/about/url-classifier.ftl
new file mode 100644
index 0000000000..20865c2cb9
--- /dev/null
+++ b/l10n-vi/toolkit/toolkit/about/url-classifier.ftl
@@ -0,0 +1,54 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+url-classifier-title = Thông tin về trình phân loại URL
+url-classifier-search-title = Tìm kiếm
+url-classifier-search-result-title = Kết quả
+url-classifier-search-result-uri = URI: { $uri }
+url-classifier-search-result-list = Danh sách các bảng: { $list }
+url-classifier-search-input = URL
+url-classifier-search-error-invalid-url = URL không hợp lệ
+url-classifier-search-error-no-features = Không có tính năng được chọn
+url-classifier-search-btn = Bắt đầu tìm kiếm
+url-classifier-search-features = Tính năng
+url-classifier-search-listType = Kiểu danh sách
+url-classifier-provider-title = Nhà cung cấp
+url-classifier-provider = Nhà cung cấp
+url-classifier-provider-last-update-time = Thời gian cập nhật lần cuối
+url-classifier-provider-next-update-time = Thời gian cập nhật tiếp theo
+url-classifier-provider-back-off-time = Độ trễ
+url-classifier-provider-last-update-status = Trạng thái cập nhật cuối
+url-classifier-provider-update-btn = Cập nhật
+url-classifier-cache-title = Bộ nhớ đệm
+url-classifier-cache-refresh-btn = Tải lại
+url-classifier-cache-clear-btn = Xóa
+url-classifier-cache-table-name = Tên bảng
+url-classifier-cache-ncache-entries = Số lượng bộ nhớ đệm âm
+url-classifier-cache-pcache-entries = Số lượng bộ nhớ đệm tích cực
+url-classifier-cache-show-entries = Hiển thị mục
+url-classifier-cache-entries = Bộ nhớ đệm của mục
+url-classifier-cache-prefix = Tiền tố
+url-classifier-cache-ncache-expiry = Hết hạn bộ nhớ đệm âm
+url-classifier-cache-fullhash = Hash đầy đủ
+url-classifier-cache-pcache-expiry = Hết hạn bộ nhớ đệm tích cực
+url-classifier-debug-title = Gỡ lỗi
+url-classifier-debug-module-btn = Đặt mô-đun nhật ký
+url-classifier-debug-file-btn = Đặt tập tin nhật ký
+url-classifier-debug-js-log-chk = Đặt nhật ký JS
+url-classifier-debug-sb-modules = Mô-đun nhật ký duyệt web an toàn
+url-classifier-debug-modules = Mô-đun nhật ký hiện tại
+url-classifier-debug-sbjs-modules = Nhật ký JS duyệt web an toàn
+url-classifier-debug-file = Tập tin nhật ký hiện tại
+
+url-classifier-trigger-update = Cập nhật
+url-classifier-not-available = Không có
+url-classifier-disable-sbjs-log = Tắt nhật ký JS duyệt web an toàn
+url-classifier-enable-sbjs-log = Bật nhật ký JS duyệt web an toàn
+url-classifier-enabled = Đã bật
+url-classifier-disabled = Đã tắt
+url-classifier-updating = đang cập nhật
+url-classifier-cannot-update = không thể cập nhật
+url-classifier-success = thành công
+url-classifier-update-error = lỗi cập nhật ({ $error })
+url-classifier-download-error = lỗi tải xuống ({ $error })
diff --git a/l10n-vi/toolkit/toolkit/extensions/blocklist.ftl b/l10n-vi/toolkit/toolkit/extensions/blocklist.ftl
new file mode 100644
index 0000000000..ac275d4887
--- /dev/null
+++ b/l10n-vi/toolkit/toolkit/extensions/blocklist.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
+
+blocklist-window =
+ .title = Có thể do các Tiện ích gây ra lỗi
+ .style = width: 45em; height: 30em
+blocklist-accept =
+ .label = Khởi động lại { -brand-short-name }
+ .accesskey = K
+
+blocklist-label-summary = { -brand-short-name } nhận thấy rằng các tiện ích sau đã từng gây ra các vấn đề bảo mật và ổn định:
+blocklist-soft-and-hard = Những tiện ích có nguy cơ cao gây ra các vấn đề bảo mật và ổn định đã bị chặn. Những cái khác có nguy cơ thấp hơn, nhưng lời khuyên tốt nhất là bạn hãy vô hiệu hóa chúng và khởi động lại.
+blocklist-hard-blocked = Những tiện ích này có nguy cơ cao gây ra các vấn đề bảo mật và ổn định nên đã bị chặn, nhưng cần phải khởi động lại để có thể vô hiệu hóa chúng hoàn toàn.
+blocklist-soft-blocked = Để bảo vệ bạn, lời khuyên tốt nhất là bạn hãy vô hiệu hóa các tiện ích này và khởi động lại trình duyệt.
+blocklist-more-information =
+ .value = Thông tin chi tiết
+
+blocklist-blocked =
+ .label = Đã bị chặn
+blocklist-checkbox =
+ .label = Vô hiệu hóa
diff --git a/l10n-vi/toolkit/toolkit/featuregates/features.ftl b/l10n-vi/toolkit/toolkit/featuregates/features.ftl
new file mode 100644
index 0000000000..37877de22a
--- /dev/null
+++ b/l10n-vi/toolkit/toolkit/featuregates/features.ftl
@@ -0,0 +1,107 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# The title of the experiment should be kept in English as it may be referenced
+# by various online articles and is technical in nature.
+experimental-features-css-masonry2 =
+ .label = CSS: Masonry Layout
+experimental-features-css-masonry-description = Cho phép hỗ trợ cho tính năng thử nghiệm CSS Masonry Layout. Xem <a data-l10n-name="explainer">giải thích</a> để biết mô tả cấp cao về tính năng. Để cung cấp phản hồi, vui lòng nhận xét trong <a data-l10n-name="w3c-su">GitHub issue này</a> hoặc <a data-l10n-name="bug">báo cáo lỗi này</a>.
+# The title of the experiment should be kept in English as it may be referenced
+# by various online articles and is technical in nature.
+experimental-features-web-gpu2 =
+ .label = Web API: WebGPU
+experimental-features-web-gpu-description2 = API mới này cung cấp hỗ trợ cấp thấp để thực hiện tính toán và kết xuất đồ họa bằng cách sử dụng <a data-l10n-name="wikipedia">bộ xử lí đồ họa(GPU)</a> của thiết bị hoặc máy tính của người dùng. <a data-l10n-name="spec">Thông số kĩ thuật</a> vẫn đang được tiến hành. Xem <a data-l10n-name="bugzilla">bug 1602129</a> để biết thêm chi tiết.
+# The title of the experiment should be kept in English as it may be referenced
+# by various online articles and is technical in nature.
+experimental-features-media-avif =
+ .label = Phương tiện: AVIF
+experimental-features-media-avif-description = Với tính năng này được bật, { -brand-short-name } hỗ trợ định dạng tập tin hình ảnh AV1 (AVIF). Đây là định dạng hình ảnh tĩnh, tận dụng các khả năng của thuật toán nén video AV1 để giảm kích thước hình ảnh. Xem <a data-l10n-name="bugzilla">bug 1443863</a> để biết thêm chi tiết.
+# The title of the experiment should be kept in English as it may be referenced
+# by various online articles and is technical in nature.
+experimental-features-web-api-inputmode =
+ .label = Web API: inputmode
+# "inputmode" and "contenteditable" are technical terms and shouldn't be translated.
+experimental-features-web-api-inputmode-description = Việc triển khai thuộc tính toàn cục <a data-l10n-name="mdn-inputmode">inputmode</a> của chúng tôi đã được cập nhật theo <a data-l10n-name="whatwg">thông số của WHATWG</a>, nhưng chúng tôi vẫn cần phải thực hiện các thay đổi khác, như làm cho nó có sẵn trên nội dung của contenteditable. Xem <a data-l10n-name="bugzilla">bug 1205133</a> để biết thêm chi tiết.
+# The title of the experiment should be kept in English as it may be referenced
+# by various online articles and is technical in nature.
+experimental-features-web-api-link-preload =
+ .label = Web API: <link rel="preload">
+# Do not translate "rel", "preload" or "link" here, as they are all HTML spec
+# values that do not get translated.
+experimental-features-web-api-link-preload-description = Thuộc tính <a data-l10n-name="rel">rel</a> có giá trị <code>"preload"</code> trên một phần tử <a data-l10n-name="link">&lt;link&gt;</a> nhằm giúp cung cấp hiệu suất tăng bằng cách cho phép bạn tải xuống các tài nguyên sớm hơn trong vòng đời của trang, đảm bảo rằng chúng có sẵn sớm hơn và ít có khả năng chặn kết xuất trang. Đọc <a data-l10n-name="readmore">“Tải trước nội dung với <code>rel="preload"</code>”</a> hoặc xem <a data-l10n-name="bugzilla">bug 1583604</a> để biết thêm chi tiết.
+# The title of the experiment should be kept in English as it may be referenced
+# by various online articles and is technical in nature.
+experimental-features-css-focus-visible =
+ .label = CSS: Pseudo-class: :focus-visible
+experimental-features-css-focus-visible-description = Cho phép các kiểu mẫu đã được chọn được áp dụng cho các thành phần như nút và điều khiển biểu mẫu, chỉ khi chúng được chọn bằng bàn phím (ví dụ: khi tab giữa các thành phần), chứ không phải khi chúng được chọn bằng chuột hoặc thiết bị trỏ khác. Xem <a data-l10n-name="bugzilla">bug 1617600</a> để biết thêm chi tiết.
+# The title of the experiment should be kept in English as it may be referenced
+# by various online articles and is technical in nature.
+experimental-features-web-api-beforeinput =
+ .label = Web API: beforeinput Event
+# The terms "beforeinput", "input", "textarea", and "contenteditable" are technical terms
+# and shouldn't be translated.
+experimental-features-web-api-beforeinput-description = Sự kiện toàn cục <a data-l10n-name="mdn-beforeinput">beforeinput</a> sẽ xảy ra trên một phần tử <a data-l10n-name="mdn-input">&lt;input&gt;</a> và<a data-l10n-name="mdn-textarea">&lt;textarea&gt;</a>, hoặc bất kỳ yếu tố nào có thuật tính <a data-l10n-name="mdn-contenteditable">contenteditable</a> được bật, ngay lập tức trước khi phần tử giá trị thay đổi. Sự kiện này cho phép các ứng dụng web ghi đè hành vi mặc định của trình duyệt để tương tác với người dùng, ví dụ: ứng dụng web chỉ có thể hủy nhập dữ liệu người dùng cho các ký tự cụ thể hoặc chỉ có thể sửa đổi dán văn bản theo kiểu với các kiểu được phê duyệt.
+# The title of the experiment should be kept in English as it may be referenced
+# by various online articles and is technical in nature.
+experimental-features-css-constructable-stylesheets =
+ .label = CSS: Constructable Stylesheets
+experimental-features-css-constructable-stylesheets-description = Việc bổ sung một hàm tạo vào giao diện <a data-l10n-name="mdn-cssstylesheet">CSSStyleSheet</a> cũng như một loạt các thay đổi liên quan giúp có thể trực tiếp tạo các bảng định kiểu mới mà không cần phải thêm trang tính vào HTML. Điều này giúp tạo các biểu định kiểu có thể tái sử dụng dễ dàng hơn nhiều để sử dụng với <a data-l10n-name="mdn-shadowdom">Shadow DOM</a>. Xem <a data-l10n-name="bugzilla">bug 1520690</a> để biết thêm chi tiết.
+experimental-features-devtools-color-scheme-simulation =
+ .label = Developer Tools: Color Scheme Simulation
+experimental-features-devtools-color-scheme-simulation-description = Thêm một tùy chọn để mô phỏng các lược đồ màu khác nhau cho phép bạn kiểm tra các truy vấn phương tiện <a data-l10n-name="mdn-preferscolorscheme">@prefers-color-scheme</a>. Sử dụng truy vấn phương tiện này cho phép biểu định kiểu của bạn phản hồi xem người dùng thích giao diện người dùng sáng hay tối. Tính năng này cho phép bạn kiểm tra mã của mình mà không phải thay đổi cài đặt trong trình duyệt (hoặc hệ điều hành, nếu trình duyệt tuân theo cài đặt bảng màu toàn hệ thống). Xem <a data-l10n-name="bugzilla1">bug 1550804</a> và <a data-l10n-name="bugzilla2">bug 1137699</a> để biết thêm chi tiết.
+experimental-features-devtools-execution-context-selector =
+ .label = Developer Tools: Execution Context Selector
+experimental-features-devtools-execution-context-selector-description = Tính năng này hiển thị một nút trên dòng lệnh Bảng điều khiển cho phép bạn thay đổi ngữ cảnh trong đó biểu thức bạn nhập sẽ được thực thi. Xem <a data-l10n-name="bugzilla1">bug 1605154</a> và <a data-l10n-name="bugzilla2">bug 1605153</a> để biết thêm chi tiết.
+experimental-features-devtools-compatibility-panel =
+ .label = Developer Tools: Compatibility Panel
+experimental-features-devtools-compatibility-panel-description = Một bảng điều khiển bên lề cho Trình kiểm tra trang cho bạn thông tin chi tiết về trạng thái tương thích trình duyệt chéo của ứng dụng của bạn. Xem <a data-l10n-name="bugzilla">bug 1584464</a> để biết thêm chi tiết.
+# Do not translate 'SameSite', 'Lax' and 'None'.
+experimental-features-cookie-samesite-lax-by-default2 =
+ .label = Cookie: SameSite=Lax theo mặc định
+experimental-features-cookie-samesite-lax-by-default2-description = Xử lý cookie như “SameSite=Lax” theo mặc định nếu không có thuộc tính “SameSite” được chỉ định. Các nhà phát triển phải chọn tham gia vào hiện trạng sử dụng không hạn chế bằng cách xác nhận rõ ràng “SameSite=None”.
+# Do not translate 'SameSite', 'Lax' and 'None'.
+experimental-features-cookie-samesite-none-requires-secure2 =
+ .label = Cookie: SameSite=None yêu cầu thuộc tính bảo mật
+experimental-features-cookie-samesite-none-requires-secure2-description = Cookie với thuộc tính “SameSite=None” yêu cầu thuộc tính bảo mật. Tính năng này yêu cầu “Cookie: SameSite=Lax theo mặc định”.
+# about:home should be kept in English, as it refers to the the URI for
+# the internal default home page.
+experimental-features-abouthome-startup-cache =
+ .label = Bộ nhớ đệm tự chạy của about:home
+experimental-features-abouthome-startup-cache-description = Một bộ nhớ đệm cho tài liệu about:home được tải theo mặc định khi khởi động. Mục đích của bộ nhớ đệm là cải thiện hiệu suất khởi động.
+experimental-features-print-preview-tab-modal =
+ .label = Thiết kế lại bản xem trước trang in
+experimental-features-print-preview-tab-modal-description = Giới thiệu bản xem trước bản in được thiết kế lại và cung cấp bản xem trước bản in trên macOS. Điều này có khả năng gây ra vỡ và không bao gồm tất cả các cài đặt liên quan đến in. Để truy cập tất cả các cài đặt liên quan đến in, hãy chọn “In bằng hộp thoại hệ thống…” từ trong bảng In.
+# The title of the experiment should be kept in English as it may be referenced
+# by various online articles and is technical in nature.
+experimental-features-cookie-samesite-schemeful =
+ .label = Cookies: Schemeful SameSite
+experimental-features-cookie-samesite-schemeful-description = Xem cookie từ cùng một tên miền, nhưng với các chương trình khác nhau (ví dụ: http://example.com và https://example.com) là trang web chéo thay vì cùng một trang web. Cải thiện bảo mật, nhưng có thể khiến một số trang web hoạt động không đúng.
+# "Service Worker" is an API name and is usually not translated.
+experimental-features-devtools-serviceworker-debugger-support =
+ .label = Developer Tools: Service Worker debugging
+# "Service Worker" is an API name and is usually not translated.
+experimental-features-devtools-serviceworker-debugger-support-description = Cho phép hỗ trợ thử nghiệm Service Workers trong thẻ Trình gỡ lỗi. Tính năng này có thể làm chậm Công cụ dành cho nhà phát triển và tăng mức tiêu thụ bộ nhớ.
+# WebRTC global mute toggle controls
+experimental-features-webrtc-global-mute-toggles =
+ .label = WebRTC Global Mute Toggles
+experimental-features-webrtc-global-mute-toggles-description = Thêm điều khiển cho WebRTC global sharing indicator để cho phép người dùng tắt tiếng micrô và máy ảnh của họ.
+# JS JIT Warp project
+experimental-features-js-warp =
+ .label = JavaScript JIT: Warp
+experimental-features-js-warp-description = Kích hoạt Warp, một dự án để cải thiện hiệu suất JavaScript và sử dụng bộ nhớ.
+# Fission is the name of the feature and should not be translated.
+experimental-features-fission =
+ .label = Fission (Cách ly trang web)
+experimental-features-fission-description = Fission (cách ly trang web) là một tính năng thử nghiệm trong { -brand-short-name } để cung cấp thêm một lớp bảo vệ khỏi các lỗi bảo mật. Bằng cách cô lập từng trang web thành một tiến trình riêng biệt, Fission khiến các trang web độc hại khó có thể truy cập các thông tin trên các trang web khác mà bạn đang truy cập. Đây là một thay đổi lớn về kiến trúc trong { -brand-short-name } và chúng tôi đánh giá cao việc bạn thử nghiệm và báo cáo bất kỳ những vẫn đề nào bạn có thể gặp phải. Để biết thêm chi tiết, xem <a data-l10n-name="wiki">wiki</a>.
+# Support for having multiple Picture-in-Picture windows open simultaneously
+experimental-features-multi-pip =
+ .label = Hỗ trợ nhiều cửa sổ Hình-trong-hình
+experimental-features-multi-pip-description = Thử nghiệm cho phép hỗ trợ mở nhiều cửa sổ Hình-trong-hình cùng lúc.
+experimental-features-http3 =
+ .label = Giao thức HTTP/3
+experimental-features-http3-description = Hỗ trợ thử nghiệm cho giao thức HTTP/3.
+# Search during IME
+experimental-features-ime-search =
+ .label = Thanh địa chỉ: hiển thị kết quả trong quá trình thành phần IME
+experimental-features-ime-search-description = IME (Trình chỉnh sửa phương thức nhập) là một công cụ cho phép bạn nhập các ký hiệu phức tạp, chẳng hạn như các ký hiệu được sử dụng trong các ngôn ngữ viết Đông Á hoặc Ấn Độ, bằng bàn phím tiêu chuẩn. Bật thử nghiệm này sẽ giữ cho bảng thanh địa chỉ luôn mở, hiển thị kết quả tìm kiếm và đề xuất, trong khi sử dụng IME để nhập văn bản. Lưu ý rằng IME có thể hiển thị một bảng che các kết quả trên thanh địa chỉ, do đó tùy chọn này chỉ được đề xuất cho IME không sử dụng loại bảng này.
diff --git a/l10n-vi/toolkit/toolkit/global/createProfileWizard.ftl b/l10n-vi/toolkit/toolkit/global/createProfileWizard.ftl
new file mode 100644
index 0000000000..5b29f77ecc
--- /dev/null
+++ b/l10n-vi/toolkit/toolkit/global/createProfileWizard.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/.
+
+create-profile-window =
+ .title = Trình tạo mới hồ sơ
+ .style = width: 45em; height: 32em;
+
+## First wizard page
+
+create-profile-first-page-header =
+ { PLATFORM() ->
+ [macos] Giới thiệu
+ *[other] Chào mừng đến với { create-profile-window.title }
+ }
+
+profile-creation-explanation-1 = { -brand-short-name } lưu các thông tin thiết lập và tùy chọn của bạn trong hồ sơ cá nhân.
+
+profile-creation-explanation-2 = Nếu dùng chung { -brand-short-name } với người khác, bạn có thể dùng hồ sơ để lưu các thông tin riêng cho từng người. Để làm việc này, mỗi người nên tạo một hồ sơ riêng cho mình.
+
+profile-creation-explanation-3 = Nếu là người duy nhất dùng { -brand-short-name }, bạn phải có ít nhất một hồ sơ. Nếu muốn, bạn có thể tạo nhiều hồ sơ cho chính mình để lưu các thiết lập và tùy chọn khác nhau. Ví dụ, có thể bạn muốn có các hồ sơ riêng rẽ cho công việc và cá nhân.
+
+profile-creation-explanation-4 =
+ { PLATFORM() ->
+ [macos] Để bắt đầu tạo hồ sơ, nhấn Tiếp tục.
+ *[other] Để bắt đầu tạo hồ sơ, nhấn Tiến.
+ }
+
+## Second wizard page
+
+create-profile-last-page-header =
+ { PLATFORM() ->
+ [macos] Kết thúc
+ *[other] Đang hoàn tất { create-profile-window.title }
+ }
+
+profile-creation-intro = Nếu tạo vài hồ sơ, bạn có thể tách biệt chúng bằng cách đặt tên. Có thể dùng tên được cung cấp ở đây hoặc tự đặt theo ý bạn.
+
+profile-prompt = Nhập tên hồ sơ mới:
+ .accesskey = N
+
+profile-default-name =
+ .value = Default User
+
+profile-directory-explanation = Thiết lập, tùy chọn và những dữ liệu liên quan đến người dùng sẽ được lưu tại:
+
+create-profile-choose-folder =
+ .label = Chọn thư mục…
+ .accesskey = C
+
+create-profile-use-default =
+ .label = Sử dụng thư mục mặc định
+ .accesskey = S
diff --git a/l10n-vi/toolkit/toolkit/global/handlerDialog.ftl b/l10n-vi/toolkit/toolkit/global/handlerDialog.ftl
new file mode 100644
index 0000000000..717824251e
--- /dev/null
+++ b/l10n-vi/toolkit/toolkit/global/handlerDialog.ftl
@@ -0,0 +1,69 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Please keep the emphasis around the hostname and scheme (ie the
+# `<strong>` HTML tags). Please also keep the hostname as close to the start
+# of the sentence as your language's grammar allows.
+#
+# Variables:
+# $host - the hostname that is initiating the request
+# $scheme - the type of link that's being opened.
+handler-dialog-host = <strong>{ $host }</strong> muốn mở liên kết <strong>{ $scheme }</strong>.
+
+## Permission Dialog
+## Variables:
+## $host - the hostname that is initiating the request
+## $scheme - the type of link that's being opened.
+## $appName - Name of the application that will be opened.
+
+permission-dialog-description = Cho phép trang web này mở liên kết { $scheme }?
+permission-dialog-description-file = Cho phép tập tin này mở liên kết { $scheme }?
+permission-dialog-description-host = Cho phép { $host } mở liên kết { $scheme }?
+permission-dialog-description-app = Cho phép trang web này mở liên kết { $scheme } bằng { $appName }?
+permission-dialog-description-host-app = Cho phép { $host } mở liên kết { $scheme } bằng { $appName }?
+permission-dialog-description-file-app = Cho phép tập tin này mở liên kết { $scheme } bằng { $appName }?
+
+## Please keep the emphasis around the hostname and scheme (ie the
+## `<strong>` HTML tags). Please also keep the hostname as close to the start
+## of the sentence as your language's grammar allows.
+
+permission-dialog-remember = Luôn cho phép <strong>{ $host }</strong> mở các liên kết <strong>{ $scheme }</strong>
+permission-dialog-remember-file = Luôn cho phép tập tin này mở các liên kết <strong>{ $scheme }</strong>
+
+##
+
+permission-dialog-btn-open-link =
+ .label = Mở liên kết
+ .accessKey = O
+permission-dialog-btn-choose-app =
+ .label = Chọn ứng dụng
+ .accessKey = A
+permission-dialog-unset-description = Bạn sẽ cần phải chọn một ứng dụng.
+permission-dialog-set-change-app-link = Chọn một ứng dụng khác.
+
+## Chooser dialog
+## Variables:
+## $scheme - the type of link that's being opened.
+
+chooser-window =
+ .title = Chọn ứng dụng
+ .style = min-width: 26em; min-height: 26em;
+chooser-dialog =
+ .buttonlabelaccept = Mở liên kết
+ .buttonaccesskeyaccept = O
+chooser-dialog-description = Chọn một ứng dụng để mở liên kết { $scheme }.
+# Please keep the emphasis around the scheme (ie the `<strong>` HTML tags).
+chooser-dialog-remember = Luôn sử dụng ứng dụng này để mở các liên kết <strong>{ $scheme }</strong>
+chooser-dialog-remember-extra =
+ { PLATFORM() ->
+ [windows] Lựa chọn này có thể thay đổi trong Tùy chọn { -brand-short-name }.
+ *[other] Lựa chọn này có thể thay đổi trong Tùy chỉnh { -brand-short-name }.
+ }
+choose-other-app-description = Chọn ứng dụng khác
+choose-app-btn =
+ .label = Chọn…
+ .accessKey = C
+choose-other-app-window-title = Ứng dụng khác…
+# Displayed under the name of a protocol handler in the Launch Application dialog.
+choose-dialog-privatebrowsing-disabled = Vô hiệu hóa trong cửa sổ riêng tư
diff --git a/l10n-vi/toolkit/toolkit/global/processTypes.ftl b/l10n-vi/toolkit/toolkit/global/processTypes.ftl
new file mode 100644
index 0000000000..c573d644dc
--- /dev/null
+++ b/l10n-vi/toolkit/toolkit/global/processTypes.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+process-type-web = Nội dung web
+
+# process used to run privileged about pages,
+# such as about:home
+process-type-privilegedabout = Giới thiệu đặc quyền
+
+# process used to run privileged mozilla pages,
+# such as accounts.firefox.com
+process-type-privilegedmozilla = Nội dung Mozilla đặc quyền
+
+process-type-extension = Tiện ích mở rộng
+
+# process used to open file:// URLs
+process-type-file = Tập tin cục bộ
+
+# process used to isolate webpages that requested special
+# permission to allocate large amounts of memory
+process-type-weblargeallocation = Phân bổ lớn
+
+# process used to isolate a webpage from other web pages
+# to improve security
+process-type-webisolated = Nội dung web bị cô lập
+
+# process used to communicate with the GPU for
+# graphics acceleration
+process-type-gpu = GPU
+
+# process used to perform network operations
+process-type-socket = Socket
+
+# process preallocated; may change to other types
+process-type-prealloc = Phân bổ trước
diff --git a/l10n-vi/toolkit/toolkit/global/profileDowngrade.ftl b/l10n-vi/toolkit/toolkit/global/profileDowngrade.ftl
new file mode 100644
index 0000000000..41a32043d9
--- /dev/null
+++ b/l10n-vi/toolkit/toolkit/global/profileDowngrade.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/.
+
+profiledowngrade-window =
+ .title = Bạn vừa chạy phiên bản cũ của { -brand-product-name }
+ .style = width: 490px;
+
+profiledowngrade-window-create =
+ .label = Tạo hồ sơ mới
+
+profiledowngrade-sync = Sử dụng phiên bản { -brand-product-name } cũ hơn có thể làm hỏng dấu trang và lịch sử duyệt web đã được lưu vào cấu hình { -brand-product-name } hiện có. Để bảo vệ thông tin của bạn, hãy tạo một hồ sơ mới cho bản cài đặt này của { -brand-short-name }. Bạn luôn có thể đăng nhập bằng { -fxaccount-brand-name } để đồng bộ hóa dấu trang và lịch sử duyệt giữa các hồ sơ.
+profiledowngrade-nosync = Sử dụng phiên bản { -brand-product-name } cũ hơn có thể làm hỏng dấu trang và lịch sử duyệt web đã được lưu vào cấu hình { -brand-product-name } hiện có. Để bảo vệ thông tin của bạn, hãy tạo một hồ sơ mới cho bản cài đặt này của { -brand-short-name }.
+
+profiledowngrade-quit =
+ .label =
+ { PLATFORM() ->
+ [windows] Thoát
+ *[other] Thoát
+ }
diff --git a/l10n-vi/toolkit/toolkit/global/profileSelection.ftl b/l10n-vi/toolkit/toolkit/global/profileSelection.ftl
new file mode 100644
index 0000000000..27426cb8bb
--- /dev/null
+++ b/l10n-vi/toolkit/toolkit/global/profileSelection.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+profile-selection-window =
+ .title = { -brand-short-name } - Chọn hồ sơ người dùng
+
+profile-selection-button-accept =
+ .label = Khởi động { -brand-short-name }
+
+profile-selection-button-cancel =
+ .label = Thoát
+
+profile-selection-new-button =
+ .label = Tạo hồ sơ…
+ .accesskey = T
+
+profile-selection-rename-button =
+ .label = Đổi tên hồ sơ…
+ .accesskey = n
+
+profile-selection-delete-button =
+ .label = Xóa hồ sơ…
+ .accesskey = X
+
+## Messages used in the profile manager
+
+profile-manager-description = { -brand-short-name } lưu thông tin về các thiết lập, tùy chọn, và các danh mục khác trong hồ sơ người dùng của bạn.
+
+profile-manager-work-offline =
+ .label = Làm việc ngoại tuyến
+ .accesskey = v
+
+profile-manager-use-selected =
+ .label = Sử dụng cấu hình đã chọn mà không hỏi lại khi khởi động
+ .accesskey = s
diff --git a/l10n-vi/toolkit/toolkit/global/resetProfile.ftl b/l10n-vi/toolkit/toolkit/global/resetProfile.ftl
new file mode 100644
index 0000000000..3be7fee23f
--- /dev/null
+++ b/l10n-vi/toolkit/toolkit/global/resetProfile.ftl
@@ -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/.
+
+refresh-profile-dialog =
+ .title = Khôi phục { -brand-short-name }
+refresh-profile-dialog-button =
+ .label = Khôi phục { -brand-short-name }
+refresh-profile-description = Bắt đầu thiết lập mới để khắc phục sự cố và cải thiện hiệu suất.
+refresh-profile-description-details = Điều này sẽ:
+refresh-profile-remove = Xóa các tiện ích và mục tùy chỉnh
+refresh-profile-restore = Khôi phục các thiết lập trình duyệt về mặc định
+refresh-profile = Làm mới { -brand-short-name } như khi mới cài đặt
+refresh-profile-button = Khôi phục { -brand-short-name }…
diff --git a/l10n-vi/toolkit/toolkit/global/textActions.ftl b/l10n-vi/toolkit/toolkit/global/textActions.ftl
new file mode 100644
index 0000000000..c8506c1878
--- /dev/null
+++ b/l10n-vi/toolkit/toolkit/global/textActions.ftl
@@ -0,0 +1,49 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+text-action-undo =
+ .label = Hoàn tác
+ .accesskey = U
+
+text-action-undo-shortcut =
+ .key = Z
+
+text-action-redo =
+ .label = Làm lại
+ .accesskey = R
+
+text-action-redo-shortcut =
+ .key = Y
+
+text-action-cut =
+ .label = Cắt
+ .accesskey = t
+
+text-action-cut-shortcut =
+ .key = X
+
+text-action-copy =
+ .label = Sao chép
+ .accesskey = C
+
+text-action-copy-shortcut =
+ .key = C
+
+text-action-paste =
+ .label = Dán
+ .accesskey = P
+
+text-action-paste-shortcut =
+ .key = V
+
+text-action-delete =
+ .label = Xóa
+ .accesskey = D
+
+text-action-select-all =
+ .label = Chọn tất cả
+ .accesskey = A
+
+text-action-select-all-shortcut =
+ .key = A
diff --git a/l10n-vi/toolkit/toolkit/global/unknownContentType.ftl b/l10n-vi/toolkit/toolkit/global/unknownContentType.ftl
new file mode 100644
index 0000000000..c146511e81
--- /dev/null
+++ b/l10n-vi/toolkit/toolkit/global/unknownContentType.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/.
+
+unknowncontenttype-handleinternally =
+ .label = Mở bằng { -brand-short-name }
+ .accesskey = e
+unknowncontenttype-settingschange =
+ .value =
+ { PLATFORM() ->
+ [windows] Thiết lập có thể được thay đổi trong tùy chọn của { -brand-short-name }.
+ *[other] Thiết lập có thể được thay đổi trong Tùy chỉnh của { -brand-short-name }.
+ }
diff --git a/l10n-vi/toolkit/toolkit/global/videocontrols.ftl b/l10n-vi/toolkit/toolkit/global/videocontrols.ftl
new file mode 100644
index 0000000000..6cfc5840df
--- /dev/null
+++ b/l10n-vi/toolkit/toolkit/global/videocontrols.ftl
@@ -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/.
+
+videocontrols-scrubber =
+ .aria-label = Vị trí
+# This label is used by screenreaders and other assistive technology to indicate
+# to users how much of the video has been loaded from the network. It will be
+# followed by the percentage of the video that has loaded (e.g. "Loading: 13%").
+videocontrols-buffer-bar-label = Đang tải:
+videocontrols-volume-control =
+ .aria-label = Âm lượng
+videocontrols-closed-caption-button =
+ .aria-label = Closed Captions
diff --git a/l10n-vi/toolkit/toolkit/global/wizard.ftl b/l10n-vi/toolkit/toolkit/global/wizard.ftl
new file mode 100644
index 0000000000..8a70912f0e
--- /dev/null
+++ b/l10n-vi/toolkit/toolkit/global/wizard.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/.
+
+wizard-macos-button-back =
+ .label = Quay lại
+ .accesskey = L
+wizard-linux-button-back =
+ .label = Quay lại
+ .accesskey = L
+wizard-win-button-back =
+ .label = < Quay lại
+ .accesskey = L
+
+wizard-macos-button-next =
+ .label = Tiếp tục
+ .accesskey = i
+wizard-linux-button-next =
+ .label = Tiến
+ .accesskey = T
+wizard-win-button-next =
+ .label = Tiến >
+ .accesskey = T
+
+wizard-macos-button-finish =
+ .label = Xong
+wizard-linux-button-finish =
+ .label = Hoàn thành
+wizard-win-button-finish =
+ .label = Hoàn thành
+
+wizard-macos-button-cancel =
+ .label = Hủy bỏ
+wizard-linux-button-cancel =
+ .label = Hủy bỏ
+wizard-win-button-cancel =
+ .label = Hủy bỏ
diff --git a/l10n-vi/toolkit/toolkit/intl/languageNames.ftl b/l10n-vi/toolkit/toolkit/intl/languageNames.ftl
new file mode 100644
index 0000000000..72ce99ec3e
--- /dev/null
+++ b/l10n-vi/toolkit/toolkit/intl/languageNames.ftl
@@ -0,0 +1,213 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+language-name-aa = Afar
+language-name-ab = Abkhazia
+language-name-ach = Acholi
+language-name-ae = Avesta
+language-name-af = Afrikaans
+language-name-ak = Akan
+language-name-am = Amhara
+language-name-an = Aragon
+language-name-ar = Ả Rập
+language-name-as = Assam
+language-name-ast = Asturia
+language-name-av = Avar
+language-name-ay = Aymara
+language-name-az = Azerbaijan
+language-name-ba = Bashkir
+language-name-be = Belarut
+language-name-bg = Bungari
+language-name-bh = Bihar
+language-name-bi = Bislama
+language-name-bm = Bambara
+language-name-bn = Bengal
+language-name-bo = Tây Tạng
+language-name-br = Breton
+language-name-bs = Bosnia
+language-name-ca = Catalan
+language-name-cak = Kaqchikel
+language-name-ce = Chechnya
+language-name-ch = Chamorro
+language-name-co = Corsica
+language-name-cr = Cree
+language-name-crh = Thổ Nhĩ Kỳ
+language-name-cs = Séc
+language-name-csb = Kashubia
+language-name-cu = Xlavơ Cũ
+language-name-cv = Chuvash
+language-name-cy = Wales
+language-name-da = Đan Mạch
+language-name-de = Đức
+language-name-dsb = Hạ Sorbia
+language-name-dv = Divehi
+language-name-dz = Bhutan
+language-name-ee = Ewe
+language-name-el = Hy Lạp
+language-name-en = Anh
+language-name-eo = Quốc tế ngữ
+language-name-es = Tây Ban Nha
+language-name-et = Estonia
+language-name-eu = Basque
+language-name-fa = Ba Tư
+language-name-ff = Fula
+language-name-fi = Phần Lan
+language-name-fj = Fiji
+language-name-fo = Faroe
+language-name-fr = Pháp
+language-name-fur = Friuli
+language-name-fy = Frisia
+language-name-ga = Ai Len
+language-name-gd = Gaelic Xcốtlen
+language-name-gl = Galicia
+language-name-gn = Guarani
+language-name-gu = Gujarat
+language-name-gv = Manx
+language-name-ha = Hausa
+language-name-haw = Hawaii
+language-name-he = Do Thái
+language-name-hi = Hindi
+language-name-hil = Hiligaynon
+language-name-ho = Hiri Motu
+language-name-hr = Croatia
+language-name-hsb = Thượng Sorb
+language-name-ht = Haiti
+language-name-hu = Hungari
+language-name-hy = Armenia
+language-name-hz = Herero
+language-name-ia = Interlingua
+language-name-id = Indonesia
+language-name-ie = Interlingue
+language-name-ig = Igbo
+language-name-ii = Lô Lô
+language-name-ik = Inupiaq
+language-name-io = Ido
+language-name-is = Ai-xơ-len
+language-name-it = Ý
+language-name-iu = Inuktitut
+language-name-ja = Nhật
+language-name-jv = Java
+language-name-ka = Gruzia
+language-name-kab = Kabyle
+language-name-kg = Kongo
+language-name-ki = Kikuyu
+language-name-kj = Kuanyama
+language-name-kk = Kazakh
+language-name-kl = Greenland
+language-name-km = Khơ-me
+language-name-kn = Kannada
+language-name-ko = Hàn Quốc
+language-name-kok = Konkani
+language-name-kr = Kanuri
+language-name-ks = Kashmir
+language-name-ku = Kurd
+language-name-kv = Komi
+language-name-kw = Cornwall
+language-name-ky = Kyrgyz
+language-name-la = Latinh
+language-name-lb = Luxembourg
+language-name-lg = Ganda
+language-name-li = Limburg
+language-name-lij = Liguria
+language-name-ln = Lingala
+language-name-lo = Lào
+language-name-lt = Lithuania
+language-name-ltg = Latgalia
+language-name-lu = Luba-Katanga
+language-name-lv = Latvia
+language-name-mai = Maithili
+language-name-meh = Tây Nam Trahiko Mishtec
+language-name-mg = Malagasy
+language-name-mh = Marshall
+language-name-mi = Maori
+language-name-mix = Mixtepec Mixtec
+language-name-mk = Macedonia
+language-name-ml = Malayalam
+language-name-mn = Mông Cổ
+language-name-mr = Marathi
+language-name-ms = Mã Lai
+language-name-mt = Malta
+language-name-my = Miến Điện
+language-name-na = Nauru
+language-name-nb = Na Uy Bokmål
+language-name-nd = Ndebele, Bắc
+language-name-ne = Nepal
+language-name-ng = Ndonga
+language-name-nl = Hà Lan
+language-name-nn = Na Uy Nynorsk
+language-name-no = Na Uy
+language-name-nr = Nam Ndebele
+language-name-nso = Bắc Sotho
+language-name-nv = Navajo
+language-name-ny = Chichewa
+language-name-oc = Occitan
+language-name-oj = Ojibwa
+language-name-om = Oromo
+language-name-or = Odia
+language-name-os = Ossetia
+language-name-pa = Punjab
+language-name-pi = Pali
+language-name-pl = Ba Lan
+language-name-ps = Pashto
+language-name-pt = Bồ Đào Nha
+language-name-qu = Quechua
+language-name-rm = Rhaeto-Romanic
+language-name-rn = Kirundi
+language-name-ro = Rumani
+language-name-ru = Nga
+language-name-rw = Kinyarwanda
+language-name-sa = Phạn
+language-name-sc = Sardinia
+language-name-sd = Sindhi
+language-name-se = Bắc Sami
+language-name-sg = Trung Phi
+language-name-si = Sinhala
+language-name-sk = Slovak
+language-name-sl = Slovenia
+language-name-sm = Samoa
+language-name-sn = Shona
+language-name-so = Somali
+language-name-son = Songhay
+language-name-sq = Anbani
+language-name-sr = Serbia
+language-name-ss = Siswati
+language-name-st = Nam Sotho
+language-name-su = Sunda
+language-name-sv = Thụy Điển
+language-name-sw = Swahili
+language-name-szl = Silesia
+language-name-ta = Tamil
+language-name-te = Telugu
+language-name-tg = Tajik
+language-name-th = Thái
+language-name-ti = Tigrinya
+language-name-tig = Tigre
+language-name-tk = Turkmenistan
+language-name-tl = Tagalog
+language-name-tlh = Klingon
+language-name-tn = Tswana
+language-name-to = Tonga
+language-name-tr = Thổ Nhĩ Kì
+language-name-trs = Triqui
+language-name-ts = Tsonga
+language-name-tt = Tatar
+language-name-tw = Twi
+language-name-ty = Tahiti
+language-name-ug = Duy Ngô Nhĩ
+language-name-uk = Ucraina
+language-name-ur = Urdu
+language-name-uz = Uzbekistan
+language-name-ve = Venda
+language-name-vi = Việt
+language-name-vo = Volapük
+language-name-wa = Walloon
+language-name-wen = Sorb
+language-name-wo = Wolof
+language-name-xh = Xhosa
+language-name-yi = Yiddish
+language-name-yo = Yoruba
+language-name-za = Tráng
+language-name-zam = Zapotec Miahuatlán
+language-name-zh = Hoa
+language-name-zu = Zulu
diff --git a/l10n-vi/toolkit/toolkit/intl/regionNames.ftl b/l10n-vi/toolkit/toolkit/intl/regionNames.ftl
new file mode 100644
index 0000000000..c2017616fb
--- /dev/null
+++ b/l10n-vi/toolkit/toolkit/intl/regionNames.ftl
@@ -0,0 +1,280 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### Notice: If you're updating this list, you should also
+### update the list in mozIntl.js.
+
+region-name-ad = Andorra
+region-name-ae = Các tiểu vương quốc Ả Rập thống nhất
+region-name-af = Afghanistan
+region-name-ag = Antigua và Barbuda
+region-name-ai = Anguilla
+region-name-al = Anbani
+region-name-am = Armenia
+region-name-ao = Angola
+region-name-aq = Châu Nam Cực
+region-name-ar = Argentina
+region-name-as = Samoa thuộc Mỹ
+region-name-at = Áo
+region-name-au = Úc
+region-name-aw = Aruba
+region-name-az = Azerbaijan
+region-name-ba = Bosnia và Herzegovina
+region-name-bb = Barbados
+region-name-bd = Bangladesh
+region-name-be = Bỉ
+region-name-bf = Burkina Faso
+region-name-bg = Bungari
+region-name-bh = Bahrain
+region-name-bi = Burundi
+region-name-bj = Benin
+region-name-bl = Saint Barthelemy
+region-name-bm = Bermuda
+region-name-bn = Bru-nây
+region-name-bo = Bolivia
+region-name-bq = Bonaire, Sint Eustatius, và Saba
+region-name-br = Brazil
+region-name-bs = Bahamas
+region-name-bt = Bhutan
+region-name-bv = Đảo Bouvet
+region-name-bw = Botswana
+region-name-by = Belarus
+region-name-bz = Belize
+region-name-ca = Canada
+region-name-cc = Quần đảo Cocos (Keeling)
+region-name-cd = Congo (Kinshasa)
+region-name-cf = Cộng hòa Trung Phi
+region-name-cg = Congo (Brazzaville)
+region-name-ch = Thụy Sĩ
+region-name-ci = Bờ biển Ngà
+region-name-ck = Quần đảo Cook
+region-name-cl = Chile
+region-name-cm = Cameroon
+region-name-cn = Trung Quốc
+region-name-co = Colombia
+region-name-cp = Đảo Clipperton
+region-name-cr = Costa Rica
+region-name-cu = Cuba
+region-name-cv = Cabo Verde
+region-name-cw = Curaçao
+region-name-cx = Đảo Giáng Sinh
+region-name-cy = Síp
+region-name-cz = Cộng hòa Séc
+region-name-de = Đức
+region-name-dg = Diego Garcia
+region-name-dj = Djibouti
+region-name-dk = Đan Mạch
+region-name-dm = Dominica
+region-name-do = Cộng hòa Dominica
+region-name-dz = Angiêri
+region-name-ec = Ecuador
+region-name-ee = Estonia
+region-name-eg = Ai Cập
+region-name-eh = Tây Sahara
+region-name-er = Eritrea
+region-name-es = Tây Ban Nha
+region-name-et = Ethiopia
+region-name-fi = Phần Lan
+region-name-fj = Fiji
+region-name-fk = Đảo Falkland (Islas Malvinas)
+region-name-fm = Liên bang Micronesia
+region-name-fo = Quần đảo Faroe
+region-name-fr = Pháp
+region-name-ga = Gabon
+region-name-gb = Vương quốc Anh
+region-name-gd = Grenada
+region-name-ge = Gruzia
+region-name-gf = Guiana thuộc Pháp
+region-name-gg = Guernsey
+region-name-gh = Ghana
+region-name-gi = Gibraltar
+region-name-gl = Greenland
+region-name-gm = Cộng hòa Gambia
+region-name-gn = Guinea
+region-name-gp = Guadeloupe
+region-name-gq = Guinea Xích Đạo
+region-name-gr = Hi Lạp
+region-name-gs = Nam Georgia và Quần đảo Nam Sandwich
+region-name-gt = Guatemala
+region-name-gu = Guam
+region-name-gw = Guinea-Bissau
+region-name-gy = Guyana
+region-name-hk = Hồng Kông
+region-name-hm = Đảo Heard và quần đảo McDonald
+region-name-hn = Honduras
+region-name-hr = Croatia
+region-name-ht = Haiti
+region-name-hu = Hungary
+region-name-id = Indonesia
+region-name-ie = Ai-len
+region-name-il = Israel
+region-name-im = Đảo Man
+region-name-in = Ấn Độ
+region-name-io = Lãnh thổ Ấn Độ Dương thuộc Anh
+region-name-iq = Iraq
+region-name-ir = Iran
+region-name-is = Ai-xơ-len
+region-name-it = Ý
+region-name-je = Jersey
+region-name-jm = Jamaica
+region-name-jo = Gioóc-đa-ni
+region-name-jp = Nhật Bản
+region-name-ke = Kenya
+region-name-kg = Kyrgyzstan
+region-name-kh = Campuchia
+region-name-ki = Kiribati
+region-name-km = Comoros
+region-name-kn = Saint Kitts và Nevis
+region-name-kp = Triều Tiên
+region-name-kr = Hàn Quốc
+region-name-kw = Kuwait
+region-name-ky = Quần đảo Cayman
+region-name-kz = Kazakhstan
+region-name-la = Lào
+region-name-lb = Libăng
+region-name-lc = Saint Lucia
+region-name-li = Liechtenstein
+region-name-lk = Sri Lanka
+region-name-lr = Liberia
+region-name-ls = Lesotho
+region-name-lt = Litva
+region-name-lu = Luxembourg
+region-name-lv = Latvia
+region-name-ly = Libya
+region-name-ma = Marốc
+region-name-mc = Monaco
+region-name-md = Moldova
+region-name-me = Montenegro
+region-name-mf = Saint Martin
+region-name-mg = Madagascar
+region-name-mh = Quần đảo Marshall
+region-name-mk = Cộng hòa Macedonia
+region-name-ml = Mali
+region-name-mm = Miến Điện
+region-name-mn = Mông Cổ
+region-name-mo = Ma Cao
+region-name-mp = Quần đảo Bắc Mariana
+region-name-mq = Martinique
+region-name-mr = Mauritania
+region-name-ms = Montserrat
+region-name-mt = Malta
+region-name-mu = Mauritius
+region-name-mv = Maldives
+region-name-mw = Malawi
+region-name-mx = Mexico
+region-name-my = Malaysia
+region-name-mz = Mozambique
+region-name-na = Namibia
+region-name-nc = Tân Caledonia
+region-name-ne = Niger
+region-name-nf = Đảo Norfolk
+region-name-ng = Nigeria
+region-name-ni = Nicaragua
+region-name-nl = Hà Lan
+region-name-no = Na Uy
+region-name-np = Nepal
+region-name-nr = Nauru
+region-name-nu = Niue
+region-name-nz = New Zealand
+region-name-om = Oman
+region-name-pa = Panama
+region-name-pe = Peru
+region-name-pf = Polynesia thuộc Pháp
+region-name-pg = Papua New Guinea
+region-name-ph = Philippines
+region-name-pk = Pakistan
+region-name-pl = Ba Lan
+region-name-pm = Saint Pierre và Miquelon
+region-name-pn = Đảo Pitcairn
+region-name-pr = Puerto Rico
+region-name-pt = Bồ Đào Nha
+region-name-pw = Palau
+region-name-py = Paraguay
+region-name-qa = Qatar
+region-name-qm = Quần đảo Midway
+region-name-qs = Bassas da India
+region-name-qu = Đảo Juan de Nova
+region-name-qw = Đảo Wake
+region-name-qx = Quần đảo Glorioso
+region-name-qz = Akrotiri
+region-name-re = Reunion
+region-name-ro = Romania
+region-name-rs = Serbia
+region-name-ru = Nga
+region-name-rw = Rwanda
+region-name-sa = Ả Rập Saudi
+region-name-sb = Quần đảo Solomon
+region-name-sc = Seychelles
+region-name-sd = Sudan
+region-name-se = Thụy Điển
+region-name-sg = Singapore
+region-name-sh = Saint Helena, Ascension và Tristan da Cunha
+region-name-si = Slovenia
+region-name-sk = Slovakia
+region-name-sl = Sierra Leone
+region-name-sm = San Marino
+region-name-sn = Senegal
+region-name-so = Somalia
+region-name-sr = Suriname
+region-name-ss = Nam Sudan
+region-name-st = Sao Tome và Principe
+region-name-sv = El Salvador
+region-name-sx = Sint Maarten
+region-name-sy = Xi-ri
+region-name-sz = Swaziland
+region-name-tc = Quần đảo Turks và Caicos
+region-name-td = Sát
+region-name-tf = Vùng đất phía Nam và châu Nam Cực thuộc Pháp
+region-name-tg = Togo
+region-name-th = Thái Lan
+region-name-tj = Tajikistan
+region-name-tk = Tokelau
+region-name-tl = Đông Timor
+region-name-tm = Turkmenistan
+region-name-tn = Tuy-ni-di
+region-name-to = Tonga
+region-name-tr = Thổ Nhĩ Kì
+region-name-tt = Trinidad và Tobago
+region-name-tv = Tuvalu
+region-name-tw = Đài Loan
+region-name-tz = Tanzania
+region-name-ua = Ucraina
+region-name-ug = Uganda
+region-name-us = Hoa Kỳ
+region-name-uy = Uruguay
+region-name-uz = Uzbekistan
+region-name-va = Thành Vatican
+region-name-vc = Saint Vincent và Grenadines
+region-name-ve = Venezuela
+region-name-vg = Quần đảo Virgin thuộc Anh
+region-name-vi = Quần đảo Virgin thuộc Mỹ
+region-name-vn = Việt Nam
+region-name-vu = Vanuatu
+region-name-wf = Wallis và Futuna
+region-name-ws = Samoa
+region-name-xa = Quần đảo Ashmore và Cartier
+region-name-xb = Đảo Baker
+region-name-xc = Quần đảo Biển San hô
+region-name-xd = Dhekelia
+region-name-xe = Đảo Europa
+region-name-xg = Dải Gaza
+region-name-xh = Đảo Howland
+region-name-xj = Jan Mayen
+region-name-xk = Kosovo
+region-name-xl = Đảo San hô Palmyra
+region-name-xm = Rạn san hô Kingman
+region-name-xp = Quần đảo Hoàng Sa
+region-name-xq = Đảo Jarvis
+region-name-xr = Svalbard
+region-name-xs = Quần đảo Trường Sa
+region-name-xt = Đảo Tromelin
+region-name-xu = Đảo Johnston
+region-name-xv = Đảo Navassa
+region-name-xw = Bờ Tây
+region-name-ye = Yemen
+region-name-yt = Mayotte
+region-name-za = Nam Phi
+region-name-zm = Zambia
+region-name-zw = Zimbabwe
diff --git a/l10n-vi/toolkit/toolkit/main-window/autocomplete.ftl b/l10n-vi/toolkit/toolkit/main-window/autocomplete.ftl
new file mode 100644
index 0000000000..71d5e49259
--- /dev/null
+++ b/l10n-vi/toolkit/toolkit/main-window/autocomplete.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/.
+
+
+## Import Logins Autocomplete
+
+# Variables:
+# $browser (String) - Browser name to import logins from.
+# $host (String) - Host name of the current site.
+autocomplete-import-logins =
+ <div data-l10n-name="line1">Nhập thông tin đăng nhập của bạn từ { $browser }</div>
+ <div data-l10n-name="line2">cho { $host } và các trang web khác</div>
+autocomplete-import-logins-info =
+ .tooltiptext = Tìm hiểu thêm
+
+## Variables:
+## $host (String) - Host name of the current site.
+
+autocomplete-import-logins-chrome =
+ <div data-l10n-name="line1">Nhập thông tin đăng nhập của bạn từ Google Chrome</div>
+ <div data-l10n-name="line2">cho { $host } và các trang khác</div>
+autocomplete-import-logins-chromium =
+ <div data-l10n-name="line1">Nhập thông tin đăng nhập của bạn từ Chromium</div>
+ <div data-l10n-name="line2">cho { $host } và các trang khác</div>
+autocomplete-import-logins-chromium-edge =
+ <div data-l10n-name="line1">Nhập thông tin đăng nhập của bạn từ Microsoft Edge</div>
+ <div data-l10n-name="line2">cho { $host } và các trang khác</div>
+
+##
+
+autocomplete-import-learn-more = Tìm hiểu thêm
diff --git a/l10n-vi/toolkit/toolkit/main-window/findbar.ftl b/l10n-vi/toolkit/toolkit/main-window/findbar.ftl
new file mode 100644
index 0000000000..876e172f92
--- /dev/null
+++ b/l10n-vi/toolkit/toolkit/main-window/findbar.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/.
+
+
+### This file contains the entities needed to use the Find Bar.
+
+findbar-next =
+ .tooltiptext = Tìm cụm từ ở phần sau
+findbar-previous =
+ .tooltiptext = Tìm cụm từ ở phần trước
+
+findbar-find-button-close =
+ .tooltiptext = Đóng thanh tìm kiếm
+
+findbar-highlight-all2 =
+ .label = Tô sáng tất cả
+ .accesskey =
+ { PLATFORM() ->
+ [macos] l
+ *[other] a
+ }
+ .tooltiptext = Tô sáng tất cả các cụm từ được tìm thấy
+
+findbar-case-sensitive =
+ .label = Phân biệt HOA-thường
+ .accesskey = C
+ .tooltiptext = Tìm kiếm có phân biệt chữ hoa và chữ thường
+
+findbar-match-diacritics =
+ .label = Dấu phụ phù hợp
+ .accesskey = i
+ .tooltiptext = Phân biệt giữa các chữ cái có dấu và các chữ cái cơ sở của chúng (ví dụ: khi tìm kiếm về “resume”, “résumé” sẽ không khớp)
+
+findbar-entire-word =
+ .label = Toàn bộ từ
+ .accesskey = W
+ .tooltiptext = Chỉ tìm toàn bộ từ
diff --git a/l10n-vi/toolkit/toolkit/payments/payments.ftl b/l10n-vi/toolkit/toolkit/payments/payments.ftl
new file mode 100644
index 0000000000..fda997e19a
--- /dev/null
+++ b/l10n-vi/toolkit/toolkit/payments/payments.ftl
@@ -0,0 +1,69 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 value isn't used directly, but is defined to avoid duplication
+# in the "credit-card-label-*" strings.
+#
+# Variables:
+# $month (String): Numeric month the credit card expires
+# $year (String): Four-digit year the credit card expires
+credit-card-expiration = Hết hạn vào { $month }/{ $year }
+
+## These labels serve as a description of a credit card.
+## The description must include a credit card number, and may optionally
+## include a cardholder name, an expiration date, or both, so we have
+## four variations.
+
+# Label for a credit card with a number only
+#
+# Variables:
+# $number (String): Partially-redacted credit card number
+credit-card-label-number = { $number }
+# Label for a credit card with a number and name
+#
+# Variables:
+# $number (String): Partially-redacted credit card number
+# $name (String): Cardholder name
+credit-card-label-number-name = { $number }, { $name }
+# Label for a credit card with a number and expiration date
+#
+# Variables:
+# $number (String): Partially-redacted credit card number
+credit-card-label-number-expiration = { $number }, { credit-card-expiration }
+# Label for a credit card with a number, name, and expiration date
+#
+# Variables:
+# $number (String): Partially-redacted credit card number
+# $name (String): Cardholder name
+credit-card-label-number-name-expiration = { $number }, { $name }, { credit-card-expiration }
+# Label for a credit card with a number only
+#
+# Variables:
+# $number (String): Partially-redacted credit card number
+# $type (String): Credit card type
+credit-card-label-number-2 = { $number }
+ .aria-label = { $type } { credit-card-label-number-2 }
+# Label for a credit card with a number and name
+#
+# Variables:
+# $number (String): Partially-redacted credit card number
+# $name (String): Cardholder name
+# $type (String): Credit card type
+credit-card-label-number-name-2 = { $number }, { $name }
+ .aria-label = { $type } { credit-card-label-number-name-2 }
+# Label for a credit card with a number and expiration date
+#
+# Variables:
+# $number (String): Partially-redacted credit card number
+# $type (String): Credit card type
+credit-card-label-number-expiration-2 = { $number }, { credit-card-expiration }
+ .aria-label = { $type } { credit-card-label-number-expiration-2 }
+# Label for a credit card with a number, name, and expiration date
+#
+# Variables:
+# $number (String): Partially-redacted credit card number
+# $name (String): Cardholder name
+# $type (String): Credit card type
+credit-card-label-number-name-expiration-2 = { $number }, { $name }, { credit-card-expiration }
+ .aria-label = { $type } { credit-card-label-number-name-expiration-2 }
diff --git a/l10n-vi/toolkit/toolkit/pictureinpicture/pictureinpicture.ftl b/l10n-vi/toolkit/toolkit/pictureinpicture/pictureinpicture.ftl
new file mode 100644
index 0000000000..4760d4af08
--- /dev/null
+++ b/l10n-vi/toolkit/toolkit/pictureinpicture/pictureinpicture.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/.
+
+pictureinpicture-player-title = Hình trong hình
+
+pictureinpicture-pause =
+ .aria-label = Tạm dừng
+pictureinpicture-play =
+ .aria-label = Phát
+
+pictureinpicture-mute =
+ .aria-label = Tắt tiếng
+pictureinpicture-unmute =
+ .aria-label = Bật tiếng
+
+pictureinpicture-unpip =
+ .aria-label = Quay lại thẻ
+
+pictureinpicture-close =
+ .aria-label = Đóng
+
diff --git a/l10n-vi/toolkit/toolkit/preferences/preferences.ftl b/l10n-vi/toolkit/toolkit/preferences/preferences.ftl
new file mode 100644
index 0000000000..3808e9311c
--- /dev/null
+++ b/l10n-vi/toolkit/toolkit/preferences/preferences.ftl
@@ -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/.
+
+password-not-set =
+ .value = (chưa đặt)
+
+failed-pw-change = Không thể thay đổi mật khẩu chính.
+incorrect-pw = Bạn đã không nhập đúng mật khẩu chính hiện tại. Hãy thử lại.
+pw-change-ok = Đã thay đổi mật khẩu chính thành công.
+
+pw-empty-warning = Các mật khẩu web và email, dữ liệu biểu mẫu, và các khóa cá nhân của bạn sẽ không được bảo vệ.
+pw-erased-ok = Bạn đã xóa mật khẩu chính của mình. { pw-empty-warning }
+pw-not-wanted = Cảnh báo! Bạn vừa quyết định không dùng mật khẩu chính. { pw-empty-warning }
+
+pw-change2empty-in-fips-mode = Bạn đang ở chế độ FIPS. FIPS yêu cầu mật khẩu chính không được để trống.
+
+failed-pp-change = Không thể thay đổi mật khẩu chính.
+incorrect-pp = Bạn đã không nhập đúng mật khẩu chính hiện tại. Vui lòng thử lại.
+pp-change-ok = Đã thay đổi mật khẩu chính.
+
+pp-empty-warning = Mật khẩu được lưu trữ và khóa riêng của bạn sẽ không được bảo vệ.
+pp-erased-ok = Bạn đã xóa mật khẩu chính của mình. { pp-empty-warning }
+pp-not-wanted = Cảnh báo! Bạn vừa quyết định không dùng mật khẩu chính. { pp-empty-warning }
+
+pp-change2empty-in-fips-mode = Bạn hiện đang ở chế độ FIPS. FIPS yêu cầu tính năng mật khẩu chính.
+pw-change-success-title = Đã thay đổi mật khẩu
+pw-change-failed-title = Thay đổi mật khẩu thất bại
+pw-remove-button =
+ .label = Xóa
+
+set-password =
+ .title = Thay đổi mật khẩu chính
+
+primary-password-dialog =
+ .title = Mật khẩu chính
+set-password-old-password = Mật khẩu hiện tại:
+set-password-new-password = Nhập mật khẩu mới:
+set-password-reenter-password = Nhập lại mật khẩu mới:
+set-password-meter = Độ an toàn mật khẩu
+set-password-meter-loading = Đang tải
+master-password-admin = Quản trị viên của bạn yêu cầu bạn phải đặt mật khẩu chính để lưu mật khẩu.
+master-password-description = Mật khẩu chính được dùng để bảo vệ các thông tin nhạy cảm khi bạn duyệt web. Nếu tạo một Mật khẩu chính, bạn sẽ được yêu cầu nhập nó trong mỗi phiên làm việc khi { -brand-short-name } truy vấn các thông tin đã được lưu và bảo vệ bởi mật khẩu.
+master-password-warning = Hãy nhớ kĩ mật khẩu chính của mình. Nếu quên, bạn sẽ không thể truy cập các thông tin mà nó bảo vệ.
+
+remove-password =
+ .title = Xóa mật khẩu chính
+primary-password-admin = Quản trị viên của bạn yêu cầu bạn phải đặt mật khẩu chính để lưu thông tin đăng nhập và mật khẩu.
+primary-password-description = Mật khẩu chính được sử dụng để bảo vệ một số thông tin nhạy cảm, như thông tin đăng nhập và mật khẩu, trên thiết bị này. Nếu bạn tạo mật khẩu chính, bạn sẽ được yêu cầu nhập mật khẩu một lần mỗi phiên khi { -brand-short-name } lấy thông tin đã lưu được bảo vệ bởi mật khẩu.
+primary-password-warning = Vui lòng đảm bảo rằng bạn nhớ mật khẩu chính bạn đã đặt. Nếu bạn quên mật khẩu chính, bạn sẽ không thể truy cập bất kỳ thông tin nào được bảo vệ bởi nó trên thiết bị này.
+
+remove-primary-password =
+ .title = Xóa mật khẩu chính
+remove-info =
+ .value = Bạn cần nhập mật khẩu hiện tại của mình để tiếp tục:
+remove-warning1 = Mật khẩu chính của bạn được dùng để bảo vệ các thông tin nhạy cảm như mật khẩu trang web.
+remove-warning2 = Nếu bạn xóa mật khẩu chính, các thông tin của bạn sẽ không được bảo vệ nếu máy tính của bạn bị tấn công.
+remove-primary-password-warning1 = Mật khẩu chính của bạn được sử dụng để bảo vệ thông tin nhạy cảm như thông tin đăng nhập và mật khẩu.
+remove-primary-password-warning2 = Nếu bạn xóa mật khẩu chính, thông tin của bạn sẽ không được bảo vệ nếu máy tính của bạn bị xâm nhập.
+remove-password-old-password =
+ .value = Mật khẩu hiện tại:
diff --git a/l10n-vi/toolkit/toolkit/printing/printDialogs.ftl b/l10n-vi/toolkit/toolkit/printing/printDialogs.ftl
new file mode 100644
index 0000000000..29a3f48db7
--- /dev/null
+++ b/l10n-vi/toolkit/toolkit/printing/printDialogs.ftl
@@ -0,0 +1,111 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+print-setup =
+ .title = Thiết lập trang
+custom-prompt-title = Tùy biến…
+custom-prompt-prompt = Nhập phần văn bản tùy biến của bạn cho phần đầu/cuối trang
+basic-tab =
+ .label = Định dạng & tùy chọn
+advanced-tab =
+ .label = Lề & đầu trang/cuối trang
+format-group-label =
+ .value = Định dạng
+orientation-label =
+ .value = Chiều:
+portrait =
+ .label = Dọc
+ .accesskey = D
+landscape =
+ .label = Ngang
+ .accesskey = N
+scale =
+ .label = Tỉ lệ:
+ .accesskey = T
+scale-percent =
+ .value = %
+shrink-to-fit =
+ .label = Co lại cho vừa độ rộng trang
+ .accesskey = C
+options-group-label =
+ .value = Tùy chọn
+print-bg =
+ .label = In hình nền (màu sắc & hình ảnh)
+ .accesskey = I
+margin-group-label-inches =
+ .value = Lề (inch)
+margin-group-label-metric =
+ .value = Lề (milimét)
+margin-top =
+ .value = Trên:
+ .accesskey = T
+margin-top-invisible =
+ .value = Trên:
+margin-bottom =
+ .value = Dưới:
+ .accesskey = D
+margin-bottom-invisible =
+ .value = Dưới:
+margin-left =
+ .value = Trái:
+ .accesskey = r
+margin-left-invisible =
+ .value = Trái:
+margin-right =
+ .value = Phải:
+ .accesskey = P
+margin-right-invisible =
+ .value = Phải:
+header-footer-label =
+ .value = Đầu trang & Cuối trang
+hf-left-label =
+ .value = Trái:
+hf-center-label =
+ .value = Giữa:
+hf-right-label =
+ .value = Phải:
+header-left-tip =
+ .tooltiptext = Đầu trang bên Trái
+header-center-tip =
+ .tooltiptext = Đầu trang ở Giữa
+header-right-tip =
+ .tooltiptext = Đầu trang bên Phải
+footer-left-tip =
+ .tooltiptext = Cuối trang bên Trái
+footer-center-tip =
+ .tooltiptext = Cuối trang ở Giữa
+footer-right-tip =
+ .tooltiptext = Cuối trang bên Phải
+hf-blank =
+ .label = --trống--
+hf-title =
+ .label = Tiêu đề
+hf-url =
+ .label = URL
+hf-date-and-time =
+ .label = Ngày/Giờ
+hf-page =
+ .label = Trang #
+hf-page-and-total =
+ .label = Trang # trên tổng #
+hf-custom =
+ .label = Tùy biến…
+print-preview-window =
+ .title = Xem trước trang in
+print-title =
+ .value = Tiêu đề:
+print-preparing =
+ .value = Đang chuẩn bị…
+print-progress =
+ .value = Tiến trình:
+print-window =
+ .title = Đang In
+print-complete =
+ .value = Đã in xong.
+# Variables
+# $percent (integer) - Number of printed percentage
+print-percent =
+ .value = { $percent }%
+dialog-cancel-label = Hủy bỏ
+dialog-close-label = Đóng
diff --git a/l10n-vi/toolkit/toolkit/printing/printPreview.ftl b/l10n-vi/toolkit/toolkit/printing/printPreview.ftl
new file mode 100644
index 0000000000..5ecaa2907c
--- /dev/null
+++ b/l10n-vi/toolkit/toolkit/printing/printPreview.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/.
+
+printpreview-simplify-page-checkbox =
+ .label = Đơn giản hóa trang
+ .accesskey = i
+ .tooltiptext = Trang này không thể tự động đơn giản hóa
+printpreview-simplify-page-checkbox-enabled =
+ .label = { printpreview-simplify-page-checkbox.label }
+ .accesskey = { printpreview-simplify-page-checkbox.accesskey }
+ .tooltiptext = Thay đổi giao diện để đọc dễ dàng hơn
+printpreview-close =
+ .label = Đóng
+ .accesskey = g
+printpreview-portrait =
+ .label = Dọc
+ .accesskey = o
+printpreview-landscape =
+ .label = Ngang
+ .accesskey = L
+printpreview-scale =
+ .value = Tỉ lệ:
+ .accesskey = S
+printpreview-shrink-to-fit =
+ .label = Co lại cho vừa
+printpreview-custom =
+ .label = Tùy biến…
+printpreview-print =
+ .label = In…
+ .accesskey = P
+printpreview-of =
+ .value = trên tổng
+printpreview-custom-scale-prompt-title = Tùy biến tỉ lệ
+printpreview-page-setup =
+ .label = Thiết lập trang in…
+ .accesskey = u
+printpreview-page =
+ .value = Trang:
+ .accesskey = a
+# Variables
+# $sheetNum (integer) - The current sheet number
+# $sheetCount (integer) - The total number of sheets to print
+printpreview-sheet-of-sheets = { $sheetNum } của { $sheetCount }
+
+## Variables
+## $percent (integer) - menuitem percent label
+## $arrow (String) - UTF-8 arrow character for navigation buttons
+
+printpreview-percentage-value =
+ .label = { $percent }%
+printpreview-homearrow =
+ .label = { $arrow }
+ .tooltiptext = Trang đầu
+printpreview-previousarrow =
+ .label = { $arrow }
+ .tooltiptext = Trang trước
+printpreview-nextarrow =
+ .label = { $arrow }
+ .tooltiptext = Trang sau
+printpreview-endarrow =
+ .label = { $arrow }
+ .tooltiptext = Trang cuối
+printpreview-homearrow-button =
+ .title = Trang đầu
+printpreview-previousarrow-button =
+ .title = Trang trước
+printpreview-nextarrow-button =
+ .title = Trang tiếp theo
+printpreview-endarrow-button =
+ .title = Trang cuối
diff --git a/l10n-vi/toolkit/toolkit/printing/printUI.ftl b/l10n-vi/toolkit/toolkit/printing/printUI.ftl
new file mode 100644
index 0000000000..5285f49667
--- /dev/null
+++ b/l10n-vi/toolkit/toolkit/printing/printUI.ftl
@@ -0,0 +1,106 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+printui-title = In
+# Dialog title to prompt the user for a filename to save print to PDF.
+printui-save-to-pdf-title = Lưu thành
+# Variables
+# $sheetCount (integer) - Number of paper sheets
+printui-sheets-count =
+ { $sheetCount ->
+ *[other] { $sheetCount } tờ giấy
+ }
+printui-page-range-all = Tất cả
+printui-page-range-custom = Tùy chọn
+printui-page-range-label = Trang
+printui-page-range-picker =
+ .aria-label = Chọn phạm vi trang
+printui-page-custom-range-input =
+ .aria-label = Nhập phạm vi trang tùy chỉnh
+ .placeholder = ví dụ: 2-6, 9, 12-16
+# Section title for the number of copies to print
+printui-copies-label = Bản sao
+printui-orientation = Hướng
+printui-landscape = Ngang
+printui-portrait = Dọc
+# Section title for the printer or destination device to target
+printui-destination-label = Thiết bị đích
+printui-destination-pdf-label = Lưu thành PDF
+printui-more-settings = Nhiều cài đặt hơn
+printui-less-settings = Ít cài đặt hơn
+printui-paper-size-label = Khổ giấy
+# Section title (noun) for the print scaling options
+printui-scale = Tỷ lệ
+printui-scale-fit-to-page-width = Vừa với chiều rộng trang
+# Label for input control where user can set the scale percentage
+printui-scale-pcent = Tỷ lệ
+# Section title (noun) for the two-sided print options
+printui-two-sided-printing = In hai mặt
+printui-duplex-checkbox = In trên cả hai mặt của giấy
+printui-two-sided-printing-off = Tắt
+# Flip the page on the side (like a book).
+printui-two-sided-printing-side-edge = Lật cạnh bên
+# Flip the page on the top (like a vertical calendar).
+printui-two-sided-printing-top-edge = Lật cạnh trên
+# Section title for miscellaneous print options
+printui-options = Tùy chọn
+printui-headers-footers-checkbox = In đầu trang và chân trang
+printui-backgrounds-checkbox = In phần nền
+printui-selection-checkbox = Chỉ in phần được chọn
+printui-color-mode-label = Chế độ màu
+printui-color-mode-color = Màu
+printui-color-mode-bw = Đen và trắng
+printui-margins = Lề
+printui-margins-default = Mặc định
+printui-margins-min = Tối thiểu
+printui-margins-none = Không có
+printui-margins-custom-inches = Tùy chỉnh (inch)
+printui-margins-custom-top = Trên
+printui-margins-custom-top-inches = Trên (inch)
+printui-margins-custom-bottom = Dưới
+printui-margins-custom-bottom-inches = Dưới (inch)
+printui-margins-custom-left = Trái
+printui-margins-custom-left-inches = Trái (inch)
+printui-margins-custom-right = Phải
+printui-margins-custom-right-inches = Phải (inch)
+printui-system-dialog-link = In bằng hộp thoại hệ thống…
+printui-primary-button = In
+printui-primary-button-save = Lưu
+printui-cancel-button = Hủy bỏ
+printui-close-button = Đóng
+printui-loading = Đang chuẩn bị xem trước
+# Reported by screen readers and other accessibility tools to indicate that
+# the print preview has focus.
+printui-preview-label =
+ .aria-label = Xem trước trang in
+printui-pages-per-sheet = Số trang trên mỗi tờ
+# This is shown next to the Print button with an indefinite loading spinner
+# when the user prints a page and it is being sent to the printer.
+printui-print-progress-indicator = Đang in...
+printui-print-progress-indicator-saving = Đang lưu...
+
+## Paper sizes that may be supported by the Save to PDF destination:
+
+printui-paper-a5 = A5
+printui-paper-a4 = A4
+printui-paper-a3 = A3
+printui-paper-a2 = A2
+printui-paper-a1 = A1
+printui-paper-a0 = A0
+printui-paper-b5 = B5
+printui-paper-b4 = B4
+printui-paper-jis-b5 = JIS-B5
+printui-paper-jis-b4 = JIS-B4
+printui-paper-letter = US Letter
+printui-paper-legal = US Legal
+printui-paper-tabloid = Báo khổ nhỏ
+
+## Error messages shown when a user has an invalid input
+
+printui-error-invalid-scale = Tỉ lệ phải là số từ 10 đến 200.
+printui-error-invalid-margin = Vui lòng nhập lề hợp lệ cho khổ giấy đã chọn.
+# Variables
+# $numPages (integer) - Number of pages
+printui-error-invalid-range = Phạm vi phải là số từ 1 đến { $numPages }.
+printui-error-invalid-start-overflow = Số trang “từ” phải nhỏ hơn số trang “đến”.
diff --git a/l10n-vi/toolkit/toolkit/updates/elevation.ftl b/l10n-vi/toolkit/toolkit/updates/elevation.ftl
new file mode 100644
index 0000000000..26648743d9
--- /dev/null
+++ b/l10n-vi/toolkit/toolkit/updates/elevation.ftl
@@ -0,0 +1,18 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+# This is temporary until bug 1521632 is fixed
+
+elevation-update-wizard =
+ .title = Cập nhật Phần mềm
+elevation-details-link-label =
+ .value = Chi tiết
+elevation-error-manual = Bạn có thể cập nhật { -brand-short-name } thủ công thông qua liên kết này và tải bản mới nhất xuống:
+elevation-finished-page = Bản cập nhật đã Sẵn sàng để Cài đặt
+elevation-finished-background-page = Một bản cập nhật bảo mật và ổn định cho { -brand-short-name } đã được tải xuống và đang sẵn sàng để cài đặt.
+elevation-finished-background = Cập nhật:
+elevation-more-elevated =
+ Bản cập nhật này yêu cầu quyền quản trị viên. Bản cập nhật sẽ
+ được cài đặt ở lần khởi động { -brand-short-name } tiếp theo. Bạn có thể khởi động lại
+ { -brand-short-name } ngay bây giờ, tiếp tục làm việc và khởi động lại sau, hoặc từ chối
+ bản cập nhật này.
diff --git a/l10n-vi/toolkit/toolkit/updates/history.ftl b/l10n-vi/toolkit/toolkit/updates/history.ftl
new file mode 100644
index 0000000000..ccae8cff25
--- /dev/null
+++ b/l10n-vi/toolkit/toolkit/updates/history.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/.
+
+history-title = Lịch sử cập nhật
+history-intro = Các bản cập nhật sau đã được cài đặt
+
+close-button-label =
+ .buttonlabelcancel = Đóng
+ .title = Lịch sử cập nhật
+
+no-updates-label = Chưa cài bản cập nhật nào
+name-header = Tên bản cập nhật
+date-header = Ngày cài đặt
+type-header = Kiểu
+state-header = Tình trạng
+
+# Used to display update history
+#
+# Variables:
+# $name (String): name of the update
+# $buildID (String): build identifier from the local updates.xml
+update-full-build-name = { $name } ({ $buildID })
+
+update-details = Chi tiết
+update-installed-on = Cài đặt vào: { $date }
+update-status = Trạng thái: { $status }